:root { --navy:#10293a; --navy-deep:#0b1e2b; --paper:#f5f1e9; --paper-deep:#ebe5db; --ink:#18242c; --brass:#b98b50; --brass-light:#d5ad72; --ease:cubic-bezier(.23,1,.32,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; color:var(--ink); background:var(--paper); font-family:Manrope,Arial,sans-serif; }
a { color:inherit; text-decoration:none; } button { font:inherit; } .shell { width:min(100% - 48px,1280px); margin:auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-70px; left:18px; z-index:100; padding:10px 14px; color:var(--paper); background:var(--navy); font-size:13px; transition:top .18s var(--ease); }.skip-link:focus { top:14px; }
.utility-bar { color:#d9d2c7; background:var(--navy-deep); font-size:10px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }.utility-content { height:34px; display:flex; align-items:center; justify-content:space-between; }.utility-content a { color:var(--brass-light); }
.site-header { position:sticky; top:0; z-index:30; background:rgba(245,241,233,.97); border-bottom:1px solid rgba(16,41,58,.12); backdrop-filter:blur(12px); }.header-content { min-height:150px; display:grid; grid-template-columns:1.3fr auto .7fr; align-items:center; gap:20px; }.brand { display:flex; align-items:center; gap:42px; }.brand-mark { width:145px; height:115px; object-fit:contain; object-position:left center; }.brand-wordmark { width:255px; height:68px; object-fit:contain; object-position:left center; }.main-nav { display:flex; gap:34px; align-items:center; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.main-nav a,.text-link { position:relative; padding-bottom:7px; }.main-nav a::after,.text-link::after { content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--brass); transition:right .2s var(--ease); }.main-nav a:hover::after,.text-link:hover::after { right:0; }.header-phone { justify-self:end; color:var(--navy); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.nav-toggle { display:none; }
.hero { position:relative; min-height:670px; overflow:hidden; color:var(--paper); background:var(--navy-deep); isolation:isolate; }.hero-image { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(7,24,36,.97) 0%,rgba(10,29,42,.86) 43%,rgba(10,29,42,.4)),url('./assets/hero-35712465_m.jpg') center/cover no-repeat; opacity:.84; }.hero-content { padding:136px 0 102px; }.eyebrow,.section-label { margin:0; display:flex; align-items:center; gap:10px; color:var(--brass); font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }.eyebrow span { width:34px; height:1px; background:currentColor; }.hero h1,h2,h3 { margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; }.hero h1 { max-width:720px; margin-top:28px; font-size:clamp(68px,8.4vw,126px); line-height:.84; letter-spacing:-.065em; }.hero h1 em,.commitment h2 em,.contact h2 em { color:var(--brass-light); font-weight:400; }.hero-copy { max-width:475px; margin:37px 0 0; color:#d8d7d1; font-size:16px; line-height:1.8; }.hero-actions { display:flex; gap:28px; align-items:center; margin-top:35px; }.button { display:inline-flex; align-items:center; justify-content:center; gap:11px; min-height:48px; padding:0 20px; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; transition:transform .16s var(--ease),background .2s var(--ease); }.button:active { transform:scale(.97); }.button-brass { color:var(--navy-deep); background:var(--brass-light); }.button-brass:hover { background:#ecd0a4; }.text-link { display:inline-flex; align-items:center; gap:9px; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.light { color:var(--paper); }
.section-paper { background:var(--paper); }.split-intro { display:flex; justify-content:space-between; gap:72px; padding-top:132px; }.split-intro h2 { margin-top:22px; color:var(--navy); font-size:clamp(44px,5.2vw,75px); line-height:.9; letter-spacing:-.055em; }.intro-copy { max-width:390px; margin:52px 0 0; color:#52606a; font-size:14px; line-height:1.85; }.practice-list { padding:75px 0 132px; }.practice-item { border-top:1px solid rgba(16,41,58,.2); }.practice-item:last-child { border-bottom:1px solid rgba(16,41,58,.2); }.practice-item summary { min-height:120px; display:grid; grid-template-columns:1fr 44px; align-items:center; list-style:none; cursor:pointer; }.practice-item summary::-webkit-details-marker { display:none; }.practice-item summary span { display:grid; gap:7px; }.practice-item strong { color:var(--navy); font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(35px,4vw,54px); font-weight:500; line-height:.9; letter-spacing:-.045em; }.practice-item small { color:#687078; font-size:12px; }.practice-item b { color:var(--brass); font-family:"Cormorant Garamond",Georgia,serif; font-size:36px; font-weight:400; text-align:right; transition:transform .2s var(--ease); }.practice-item[open] b { transform:rotate(45deg); }.practice-detail { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:0 44px 34px 0; }.practice-detail p { margin:0; color:#4f5960; font-size:13px; line-height:1.8; }
.commitment { display:grid; grid-template-columns:1.03fr .97fr; min-height:590px; }.identity-panel { position:relative; display:grid; place-items:center; overflow:hidden; min-height:430px; background:#ded5c7; }.identity-panel::before { content:""; position:absolute; inset:28px; border:1px solid rgba(16,41,58,.22); }.identity-panel img { width:min(64%,340px); max-height:150px; object-fit:contain; filter:brightness(.39) saturate(.8); }.identity-panel span { position:absolute; left:42px; bottom:37px; color:#65727c; font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }.commitment-panel { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:90px max(48px,calc((100vw - 1280px)/2)); background:var(--navy); color:var(--paper); }.light-label { color:var(--brass-light); }.commitment h2 { margin-top:22px; font-size:clamp(46px,4.6vw,72px); line-height:.88; letter-spacing:-.055em; }.commitment-panel > p:not(.section-label) { max-width:425px; margin:30px 0; color:#d2d2cc; font-size:14px; line-height:1.85; }
.lawyers { padding-bottom:135px; background:linear-gradient(90deg,rgba(245,241,233,.94),rgba(245,241,233,.8),rgba(245,241,233,.94)),url('./assets/hamilton-downtown.jpg') center 45%/cover no-repeat; }.lawyer-grid { display:grid; gap:64px; margin-top:76px; }.lawyer-card { display:grid; grid-template-columns:1.18fr .82fr; min-height:680px; border-top:1px solid rgba(16,41,58,.22); border-bottom:1px solid rgba(16,41,58,.22); outline:none; }.lawyer-card:focus-visible { outline:2px solid var(--brass); outline-offset:5px; }.lawyer-card.reverse { grid-template-columns:.82fr 1.18fr; }.lawyer-card.reverse .portrait-stage { grid-column:2; }.lawyer-card.reverse .lawyer-copy { grid-row:1; }.portrait-stage { position:relative; min-height:680px; overflow:hidden; background:linear-gradient(135deg,#dcd2c3,#b9ab99); }.portrait-stage::before { content:""; position:absolute; z-index:1; inset:22px; border:1px solid rgba(16,41,58,.2); pointer-events:none; }.portrait-stage::after { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(0deg,rgba(8,29,43,.7),transparent 27%); pointer-events:none; }.portrait-stage img { position:absolute; inset:30px; width:calc(100% - 60px); height:calc(100% - 60px); object-fit:contain; filter:grayscale(1) sepia(.12) contrast(.98) brightness(.94); transition:filter .32s var(--ease),transform .32s var(--ease); }.lawyer-card:hover .portrait-stage img,.lawyer-card:focus .portrait-stage img { filter:grayscale(0) saturate(1.03) contrast(1) brightness(1); transform:scale(1.012); }.portrait-stage span { position:absolute; z-index:2; left:30px; bottom:27px; color:#ebe5db; font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }.lawyer-copy { display:flex; flex-direction:column; justify-content:center; padding:70px clamp(38px,7vw,105px); background:#ebe5db; }.lawyer-copy::before { content:""; width:49px; height:1px; margin-bottom:26px; background:var(--brass); }.lawyer-copy h3 { margin-top:13px; color:var(--navy); font-size:clamp(53px,5vw,78px); line-height:.85; letter-spacing:-.065em; }.focus { max-width:490px; margin:33px 0 0; color:#394953; font-size:13px; font-weight:600; line-height:1.82; }.bio { max-width:510px; margin-top:28px; padding-top:24px; border-top:1px solid rgba(16,41,58,.17); }.bio p { margin:0 0 14px; color:#58636a; font-size:12px; line-height:1.75; }.bio p:last-child { margin-bottom:0; }
.property-band { position:relative; min-height:400px; overflow:hidden; color:var(--paper); background:linear-gradient(135deg,#0b1e2b,#15384d); }.property-band::after { content:"CAG"; position:absolute; right:-2vw; bottom:-11vw; color:rgba(213,173,114,.11); font-family:"Cormorant Garamond",Georgia,serif; font-size:min(38vw,530px); font-weight:600; line-height:.7; letter-spacing:-.13em; }.property-band .shell { position:relative; z-index:1; min-height:400px; display:flex; justify-content:flex-end; align-items:flex-end; padding-bottom:65px; }.property-band p { max-width:670px; margin:0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(38px,4.2vw,59px); line-height:.96; letter-spacing:-.05em; }
.contact { color:var(--paper); background:var(--navy); }.contact-layout { display:grid; grid-template-columns:1.02fr .98fr; gap:95px; padding:132px 0 125px; }.contact h2 { margin-top:22px; color:var(--paper); font-size:clamp(51px,5.5vw,79px); line-height:.89; letter-spacing:-.06em; }.contact-copy { max-width:424px; margin:31px 0 34px; color:#d2d2cc; font-size:14px; line-height:1.8; }.contact-details { align-self:end; display:grid; gap:30px; padding-top:37px; border-top:1px solid rgba(213,173,114,.62); }.contact-details > div { padding-bottom:30px; border-bottom:1px solid rgba(245,241,233,.16); }.contact-details h3 { margin:0 0 12px; color:var(--paper); font-family:Manrope,Arial,sans-serif; font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }.contact-details address,.contact-details p { margin:0; color:#d5d2cc; font-size:14px; font-style:normal; line-height:1.8; }.contact-details p a { color:var(--paper); text-decoration:underline; text-underline-offset:4px; }.contact-details span { color:#aeb5b6; }.email-link { display:inline-flex; align-items:center; gap:11px; width:max-content; padding-bottom:7px; color:var(--paper); border-bottom:1px solid var(--brass); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.site-footer { color:#c6c4bc; background:var(--navy-deep); }.footer-content { min-height:150px; display:grid; grid-template-columns:1fr 1.2fr auto auto; align-items:center; gap:24px; }.footer-logo { width:144px; max-height:58px; object-fit:contain; object-position:left center; filter:brightness(1.8) grayscale(1); }.footer-content p,.back-top { margin:0; font-size:8px; font-weight:700; letter-spacing:.11em; line-height:1.6; text-transform:uppercase; }.chamber-logo { width:116px; height:82px; padding:8px 10px; object-fit:contain; background:var(--paper); border:1px solid rgba(213,173,114,.7); box-shadow:0 8px 22px rgba(0,0,0,.16); }.back-top { display:inline-flex; gap:7px; color:var(--brass-light); }
@media (max-width:900px) { .header-content { min-height:110px; grid-template-columns:1fr auto; }.brand { gap:20px; }.brand-mark { width:105px; }.brand-wordmark { width:185px; }.nav-toggle { display:grid; gap:4px; padding:12px; border:0; color:var(--navy); background:transparent; }.nav-toggle span:not(.sr-only) { display:block; width:21px; height:1px; background:currentColor; }.main-nav { position:absolute; top:100%; right:0; left:0; display:none; flex-direction:column; align-items:flex-start; gap:0; padding:18px 24px; background:var(--paper); border-bottom:1px solid rgba(16,41,58,.15); }.main-nav.is-open { display:flex; }.main-nav a { width:100%; padding:14px 0; }.header-phone { display:none; }.commitment { grid-template-columns:1fr; }.identity-panel { min-height:420px; }.commitment-panel { min-height:500px; padding:76px max(20px,calc((100vw - 640px)/2)); }.lawyer-card,.lawyer-card.reverse { grid-template-columns:1.05fr .95fr; min-height:600px; }.lawyer-card.reverse .portrait-stage { grid-column:2; }.portrait-stage { min-height:600px; }.lawyer-copy { padding:54px 45px; }.contact-layout { grid-template-columns:1fr; gap:42px; }.contact-details { max-width:550px; }.footer-content { grid-template-columns:1fr 1fr; padding:32px 0; }.footer-content p { grid-column:1/-1; grid-row:2; }.back-top { justify-self:end; }.chamber-logo { justify-self:end; } }
@media (max-width:620px) { .shell { width:min(100% - 32px,1280px); }.utility-bar { font-size:8px; letter-spacing:.11em; }.header-content { min-height:98px; gap:10px; }.brand { gap:11px; }.brand-mark { width:82px; height:70px; }.brand-wordmark { width:168px; height:44px; }.hero { min-height:590px; }.hero-content { padding:94px 0; }.eyebrow { font-size:8px; letter-spacing:.13em; }.hero h1 { margin-top:24px; font-size:clamp(58px,17vw,82px); }.hero-copy { margin-top:31px; font-size:14px; }.hero-actions { flex-direction:column; align-items:flex-start; gap:19px; margin-top:29px; }.split-intro { display:block; padding-top:86px; }.split-intro h2 { font-size:48px; }.intro-copy { margin-top:27px; font-size:13px; }.practice-list { padding:52px 0 84px; }.practice-item summary { min-height:118px; grid-template-columns:1fr 25px; }.practice-item strong { font-size:38px; }.practice-item small { max-width:235px; font-size:11px; }.practice-detail { display:block; padding:0 0 28px; }.practice-detail p { margin:0 0 15px; font-size:12px; }.identity-panel { min-height:310px; }.commitment-panel { min-height:410px; padding:66px 16px; }.commitment h2 { font-size:51px; }.lawyers { padding-bottom:85px; }.lawyer-grid { margin-top:45px; gap:32px; }.lawyer-card,.lawyer-card.reverse { display:flex; flex-direction:column; min-height:0; }.lawyer-card.reverse .portrait-stage { order:0; }.lawyer-card.reverse .lawyer-copy { order:1; }.portrait-stage { min-height:510px; }.portrait-stage img { inset:21px; width:calc(100% - 42px); height:calc(100% - 42px); }.lawyer-copy { padding:38px 25px 42px; }.portrait-stage span { left:20px; bottom:20px; }.lawyer-copy h3 { font-size:56px; }.property-band,.property-band .shell { min-height:350px; }.property-band .shell { justify-content:flex-start; padding-bottom:42px; }.property-band p { max-width:500px; font-size:42px; }.contact-layout { padding:86px 0 80px; }.contact h2 { font-size:55px; }.contact-copy { font-size:13px; }.footer-content { grid-template-columns:1fr; gap:24px; }.footer-content p { grid-column:auto; grid-row:auto; }.chamber-logo,.back-top { justify-self:start; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.001ms!important; } .lawyer-card:hover .portrait-stage img,.lawyer-card:focus .portrait-stage img { filter:grayscale(1) sepia(.12) contrast(.98) brightness(.94); transform:none; } }

/* Latest live-site readability refinements. */
.practice-item strong { color:#0c3044; font-size:clamp(40px,4.4vw,62px); font-weight:600; letter-spacing:-.05em; }
.practice-item small { color:#3d505a; font-size:14px; font-weight:600; line-height:1.55; }
.practice-detail { max-width:820px; display:block; padding:0 0 42px 3px; border-left:2px solid var(--brass); }
.practice-detail p { padding-left:27px; color:#334852; font-size:15px; line-height:1.85; }
.practice-detail p + p { margin-top:18px; }
.focus { max-width:500px; color:#263e4a; font-size:clamp(15px,1.15vw,17px); font-weight:650; line-height:1.78; }
.bio { max-width:520px; margin-top:30px; padding-top:26px; border-top-color:rgba(16,41,58,.22); }
.bio p { margin-bottom:16px; color:#455964; font-size:clamp(13.5px,.98vw,15px); line-height:1.85; }
@media (max-width:620px) { .practice-item strong { font-size:38px; }.practice-item small { font-size:14px; }.practice-detail { padding:0 0 28px 3px; }.practice-detail p { margin:0; padding-left:20px; font-size:14px; }.practice-detail p + p { margin-top:15px; } }
