:root{--ink:#11171b;--ink2:#182027;--cream:#f3efe6;--sea:#9db8a9;--line:rgba(157,184,169,.22);--mute:rgba(243,239,230,.72)}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{overflow-x:clip;background:var(--ink);color:var(--cream);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.2rem;line-height:1.65}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;line-height:1.12;letter-spacing:.005em}
h1{font-size:clamp(2.6rem,5.5vw,4.6rem)}
h2{font-size:clamp(2.2rem,4.4vw,3.4rem)}
a{color:var(--sea);text-decoration:none;transition:.3s}
a:hover{color:var(--cream)}
.tiny,.eyebrow,.navbar .nav-link,.btn,.stat small,.office dt,footer small{font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;font-weight:400}
.eyebrow{color:var(--sea);display:block;margin-bottom:1.2rem}
.sub{font-style:italic;font-size:1.35rem;color:var(--mute);letter-spacing:.02em}
/* nav (c): name stacked over link row */
.navbar{background:rgba(17,23,27,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:.9rem 0}
.navbar .container{flex-direction:column}
.navbar-brand{margin:0;text-align:center;font-size:1.55rem;letter-spacing:.3em;text-transform:uppercase;font-weight:300;color:var(--cream);line-height:1.2}
.navbar-brand small{display:block;font-family:'Jost',sans-serif;font-size:.58rem;letter-spacing:.38em;color:var(--sea);margin-top:3px}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center;width:100%}
.navbar .nav-link{color:rgba(243,239,230,.8);padding:.7rem 1.1rem!important}
.navbar .nav-link:hover{color:var(--sea)}
.navbar-toggler{position:absolute;right:12px;top:18px;border:1px solid var(--line);border-radius:0}
.navbar-toggler-icon{filter:invert(1)}
@media(max-width:991px){.navbar-brand{font-size:1.05rem;letter-spacing:.2em;padding-right:44px}.navbar .container{align-items:flex-start}.navbar-brand{text-align:left}.navbar-collapse{padding-top:.5rem}}
/* buttons */
.btn{border-radius:0;padding:15px 36px}
.btn-sea{background:var(--sea);color:var(--ink);border:1px solid var(--sea)}
.btn-sea:hover{background:transparent;color:var(--sea)}
.btn-ghost{border:1px solid rgba(243,239,230,.35);color:var(--cream)}
.btn-ghost:hover{border-color:var(--sea);color:var(--sea)}
/* hero */
.hero{position:relative;padding:64px 0 72px;overflow:hidden;background:linear-gradient(160deg,var(--ink2),var(--ink))}
.hero .rose{position:absolute;right:-140px;top:-120px;width:560px;opacity:.07;pointer-events:none}
.hero h1{margin:0 0 1rem}
.hero .portrait{border:1px solid var(--line);padding:10px}
.hero .portrait img{display:block;width:100%;height:auto;max-height:min(66vh,480px);object-fit:cover;object-position:35% 30%;border-radius:2px}
.hero .portrait figcaption{font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sea);padding-top:.8rem;text-align:center}
.hero .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem}
.coords{font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.3em;color:rgba(157,184,169,.7);margin-top:2.2rem;text-transform:uppercase}
/* sections */
section{padding:96px 0;position:relative}
@media(max-width:767px){section{padding:64px 0}.hero{padding:40px 0 56px}}
.alt{background:var(--ink2)}
.rule{border:0;border-top:1px solid var(--line);margin:0}
.tick{display:block;height:9px;margin:0 auto 0;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 12px);opacity:.9}
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0;background:var(--ink)}
.stat{text-align:center;padding:10px}
.stat b{display:block;font-weight:300;font-size:2.6rem;line-height:1;color:var(--cream)}
.stat small{color:var(--sea);display:block;margin-top:.7rem;font-size:.62rem}
/* practice index */
.index{list-style:none;padding:0;margin:0;columns:2;column-gap:60px}
.index li{break-inside:avoid;border-bottom:1px solid var(--line);padding:.85rem 0;font-size:1.55rem;font-weight:300;display:flex;justify-content:space-between;align-items:baseline}
.index li span{font-family:'Jost',sans-serif;font-size:.6rem;letter-spacing:.25em;color:var(--sea);text-transform:uppercase}
@media(max-width:767px){.index{columns:1}.index li{font-size:1.35rem}}
.also{color:var(--mute);font-size:1.05rem;margin-top:2rem}
.also b{font-family:'Jost',sans-serif;font-weight:400;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sea);display:block;margin-bottom:.5rem}
/* about */
.about p{max-width:820px;color:rgba(243,239,230,.88)}
.timeline{list-style:none;padding:0;margin:2rem 0 0;border-left:1px solid var(--line)}
.timeline li{padding:0 0 1.4rem 1.6rem;position:relative}
.timeline li::before{content:"";position:absolute;left:-4px;top:.7rem;width:7px;height:7px;background:var(--sea);transform:rotate(45deg)}
.timeline b{font-family:'Jost',sans-serif;font-weight:400;font-size:.7rem;letter-spacing:.26em;color:var(--sea);display:block}
/* reviews */
.quote{border-top:1px solid var(--line);padding-top:1.6rem;height:100%}
.quote p{font-style:italic;font-size:1.28rem;color:var(--cream)}
.quote small{font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sea)}
/* offices */
.office{border:1px solid var(--line);padding:28px;height:100%}
.office h3{font-size:2rem;margin-bottom:.4rem}
.office dl{margin:1.2rem 0 0}
.office dt{color:var(--sea);margin-top:.9rem;font-size:.62rem}
.office dd{margin:0;color:var(--cream)}
.office .map{border:0;width:100%;height:240px;margin-top:1.4rem;filter:grayscale(.7) contrast(1.05)}
.big-phone{font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--cream);display:block}
footer{border-top:1px solid var(--line);padding:48px 0 40px;text-align:center;color:var(--mute)}
footer .fname{font-size:1.3rem;letter-spacing:.3em;text-transform:uppercase;font-weight:300;color:var(--cream)}
footer small{display:block;margin-top:1rem;color:rgba(243,239,230,.55)}
footer .social a{margin:0 .9rem;font-family:'Jost',sans-serif;font-size:.65rem;letter-spacing:.26em;text-transform:uppercase}
footer .legal{font-size:.95rem;max-width:760px;margin:1.6rem auto 0;color:rgba(243,239,230,.5)}
