:root{--ink:#14201c;--paper:#f7f5f0;--gold:#957f5a;--line:#d8d3c8;--muted:#eeebe4;--serif:"Cormorant Garamond",Georgia,serif;--sans:Montserrat,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7}.site-header{height:98px;padding:0 clamp(28px,5.7vw,106px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{text-decoration:none;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}.brand span{display:block;font:500 clamp(21px,1.35vw,27px)/1 var(--serif)}.brand small{display:block;margin-top:8px;color:var(--gold);font-size:10px;font-weight:600;letter-spacing:.42em}.site-header nav{display:flex;gap:42px}.site-header nav a{color:#36403c;text-decoration:none;font-size:15px}.site-header nav a:hover{color:var(--gold)}.menu-toggle{display:none}.hero{min-height:calc(100vh - 98px);padding:clamp(60px,7vw,110px) clamp(28px,5.7vw,106px) 70px;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,.9fr);gap:clamp(50px,7vw,130px);align-items:center}.eyebrow{margin:0 0 28px;text-transform:uppercase;letter-spacing:.28em;color:#8b7047;font-size:13px;font-weight:600}.hero h1{margin:0;font:500 clamp(62px,7.3vw,132px)/.86 var(--serif);letter-spacing:-.045em}.hero h1 em{color:var(--gold);font-weight:500}.intro{max-width:830px;margin:44px 0 0;color:#3d4844;font-size:clamp(16px,1.2vw,21px)}.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:43px}.button{display:inline-flex;min-height:64px;padding:0 26px;align-items:center;justify-content:center;text-decoration:none;font-weight:500;font-size:15px}.primary{background:var(--ink);color:#fff}.secondary{border:1px solid var(--ink);color:var(--ink)}.portrait-wrap{margin:0;align-self:stretch;min-height:520px;overflow:hidden;background:#fff}.portrait-wrap img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 42%}.content-section{padding:110px clamp(28px,10vw,185px);border-top:1px solid var(--line)}.content-section.muted{background:var(--muted)}.section-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1fr);gap:10vw}.section-grid h2,.contact-section h2{margin:0;font:500 clamp(42px,4vw,72px)/1 var(--serif);letter-spacing:-.03em}.section-grid p{margin:0;color:#4a5550;font-size:18px}.area-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bdb7aa}.area-list span{padding:17px 0;border-bottom:1px solid #bdb7aa}.area-list span:nth-child(odd){margin-right:25px}.contact-section{padding:110px clamp(28px,10vw,185px);background:var(--ink);color:#fff}.contact-section .eyebrow{color:#c2aa7e}.contact-section p:not(.eyebrow){font-size:18px;margin:25px 0 36px;color:#d9dedb}.button.light{border:1px solid #fff;color:#fff}footer{display:flex;justify-content:space-between;gap:20px;padding:28px clamp(28px,5.7vw,106px);font-size:13px;background:#0b1210;color:#bfc6c2}
@media(max-width:900px){.site-header{height:82px}.menu-toggle{display:block;border:0;background:transparent;font:500 14px var(--sans);color:var(--ink)}.site-header nav{display:none;position:absolute;left:0;right:0;top:82px;background:var(--paper);padding:25px 28px;border-bottom:1px solid var(--line);flex-direction:column;gap:18px}.site-header nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:55px}.portrait-wrap{min-height:auto;aspect-ratio:1.04}.hero h1{font-size:clamp(58px,16vw,92px)}.section-grid{grid-template-columns:1fr;gap:35px}.content-section,.contact-section{padding-top:80px;padding-bottom:80px}}
@media(max-width:540px){.brand span{font-size:19px}.brand small{font-size:8px}.hero{gap:40px}.portrait-wrap{aspect-ratio:.9}.actions{align-items:stretch;flex-direction:column}.button{width:100%}.area-list{grid-template-columns:1fr}.area-list span:nth-child(odd){margin-right:0}footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.section-grid p+p{margin-top:24px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 7vw;margin-top:60px;border-top:1px solid rgba(255,255,255,.28)}.contact-card{padding:28px 0;border-bottom:1px solid rgba(255,255,255,.28)}.contact-card h3{margin:0 0 14px;color:#c2aa7e;font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.contact-card a{display:block;width:max-content;max-width:100%;color:#fff;text-decoration:none;overflow-wrap:anywhere}.contact-card a+a{margin-top:6px}.contact-card p{margin:0!important;font-size:16px!important;line-height:1.8}.contact-card.addresses{grid-column:1/-1}.contact-card address{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;font-style:normal;color:#d9dedb}.contact-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}.contact-card.addresses{grid-column:auto}.contact-card address{grid-template-columns:1fr;gap:18px}.contact-actions{flex-direction:column}.contact-actions .button{width:100%}}
.areas-section h2{max-width:720px;margin:0 0 68px;font:500 clamp(52px,5vw,82px)/.92 var(--serif);letter-spacing:-.035em}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #c9c3b7;border-left:1px solid #c9c3b7}.practice-card{min-height:276px;padding:46px 40px 36px;border-right:1px solid #c9c3b7;border-bottom:1px solid #c9c3b7}.practice-card>span{display:block;margin-bottom:45px;color:#9a7d4d;font-size:12px}.practice-card h3{margin:0 0 18px;font:500 clamp(25px,1.8vw,31px)/1.12 var(--serif);letter-spacing:-.02em}.practice-card p{margin:0;color:#4a5550;font-size:15px;line-height:1.65}
@media(max-width:900px){.practice-grid{grid-template-columns:repeat(2,1fr)}.practice-card{padding:38px 30px}.areas-section h2{margin-bottom:48px}}
@media(max-width:600px){.practice-grid{grid-template-columns:1fr}.practice-card{min-height:auto;padding:32px 25px}.practice-card>span{margin-bottom:28px}.areas-section h2{font-size:clamp(46px,14vw,64px)}}

/* Mobile refinement */
@media(max-width:900px){
  body{overflow-x:hidden}
  .site-header{padding-inline:24px}
  .site-header nav{z-index:10;box-shadow:0 18px 35px rgba(20,32,28,.08)}
  .hero{min-height:auto;padding:60px 24px 72px;gap:50px}
  .hero-copy{max-width:720px}
  .portrait-wrap{width:100%;max-height:760px}
  .content-section,.contact-section{padding-inline:24px}
}

@media(max-width:600px){
  .site-header{height:74px;padding-inline:20px}
  .brand span{font-size:18px;letter-spacing:.02em}
  .brand small{margin-top:6px;font-size:8px;letter-spacing:.34em}
  .menu-toggle{padding:10px 0;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
  .site-header nav{top:74px;padding:24px 20px 28px;gap:0}
  .site-header nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
  .site-header nav a:last-child{border-bottom:0}

  .hero{padding:44px 20px 64px;gap:38px}
  .eyebrow{margin-bottom:20px;font-size:10px;line-height:1.6;letter-spacing:.22em}
  .hero h1{font-size:clamp(49px,14.5vw,61px);line-height:.91;letter-spacing:-.04em}
  .intro{margin-top:28px;font-size:16px;line-height:1.7}
  .actions{margin-top:30px;gap:10px}
  .button{min-height:56px;padding-inline:18px;font-size:14px}
  .portrait-wrap{aspect-ratio:4/5;max-height:none}
  .portrait-wrap img{object-position:50% 38%}

  .content-section,.contact-section{padding:66px 20px}
  .section-grid{gap:28px}
  .section-grid h2,.contact-section h2{font-size:clamp(43px,12.5vw,54px);line-height:.98;letter-spacing:-.025em}
  .section-grid p{font-size:16px;line-height:1.75}
  .section-grid p+p{margin-top:20px}

  .areas-section h2{margin-bottom:40px;font-size:clamp(45px,13vw,56px);line-height:.94}
  .practice-card{padding:28px 22px 30px}
  .practice-card>span{margin-bottom:24px}
  .practice-card h3{margin-bottom:14px;font-size:27px}
  .practice-card p{font-size:15px;line-height:1.65}

  .contact-grid{margin-top:40px}
  .contact-card{padding:24px 0}
  .contact-card h3{margin-bottom:12px;font-size:11px}
  .contact-card a,.contact-card p,.contact-card address{font-size:15px}
  .contact-card address{gap:0}
  .contact-card address span{padding:14px 0}
  .contact-card address span:first-child{padding-top:0}
  .contact-card address span+span{border-top:1px solid rgba(255,255,255,.14)}
  .contact-actions{margin-top:30px;gap:10px}
  footer{padding:26px 20px;gap:8px;font-size:12px;line-height:1.6}
}

@media(max-width:380px){
  .brand span{font-size:16px}
  .hero h1{font-size:46px}
  .section-grid h2,.contact-section h2{font-size:41px}
  .areas-section h2{font-size:43px}
  .contact-card a{font-size:14px}
}
