:root{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-3xl:clamp(2.5rem,1rem + 4vw,5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-full:9999px;
  --ease:cubic-bezier(.16,1,.3,1);
  --font-display:'Zodiak',Georgia,serif;
  --font-body:'General Sans','Helvetica Neue',sans-serif;
  --wide:1200px;--narrow:680px;
}
:root,[data-theme="light"]{
  --bg:#f6f1e8;--surface:#fbf8f2;--surface-2:#efe7da;--border:#ddd3c3;--divider:#e7dfd1;
  --text:#14263a;--muted:#55606b;--faint:#8b8f92;--inverse:#fbf8f2;
  --primary:#0d6666;--primary-hover:#0a4f50;--primary-soft:#d6e6e2;
  --navy:#14263a;--sand:#e9dcc6;
  --shadow:0 10px 30px rgba(20,38,58,.08);
}
[data-theme="dark"]{
  --bg:#0f1924;--surface:#14212e;--surface-2:#1a2938;--border:#2a3a4a;--divider:#213140;
  --text:#e8e2d6;--muted:#a3aab0;--faint:#6f7a84;--inverse:#0f1924;
  --primary:#62b6af;--primary-hover:#86cbc4;--primary-soft:#1c3638;
  --navy:#0a121b;--sand:#2a2f33;
  --shadow:0 10px 30px rgba(0,0,0,.3);
}
@media (prefers-color-scheme:dark){:root:not([data-theme]){
  --bg:#0f1924;--surface:#14212e;--surface-2:#1a2938;--border:#2a3a4a;--divider:#213140;
  --text:#e8e2d6;--muted:#a3aab0;--faint:#6f7a84;--inverse:#0f1924;
  --primary:#62b6af;--primary-hover:#86cbc4;--primary-soft:#1c3638;--navy:#0a121b;--sand:#2a2f33;}}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-size-adjust:none;scroll-behavior:smooth;scroll-padding-top:5rem}
body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;color:var(--text);background:var(--bg);transition:background .3s,color .3s}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.1;letter-spacing:-.01em;text-wrap:balance}
h3{font-family:var(--font-body);font-weight:600;font-size:var(--text-lg);letter-spacing:0;line-height:1.3}
p,li{text-wrap:pretty}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:var(--radius-sm)}
.skip{position:absolute;left:-999px;top:0;background:var(--primary);color:var(--inverse);padding:var(--space-2) var(--space-4);z-index:100}
.skip:focus{left:var(--space-4)}
.wrap{width:min(100% - 2*clamp(var(--space-5),4vw,var(--space-12)),var(--wide));margin-inline:auto}
.narrow{max-width:var(--narrow)}
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--primary);margin-bottom:var(--space-4)}
.lede{font-size:var(--text-lg);color:var(--muted);line-height:1.5;max-width:58ch}
.muted{color:var(--muted)}
.small{font-size:var(--text-sm)}

/* header */
.header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--divider)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:4.5rem}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--text)}
.brand svg{width:38px;height:38px;color:var(--primary)}
.brand-name{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.02em;line-height:1}
.brand-sub{display:block;font-family:var(--font-body);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.nav{display:flex;align-items:center;gap:var(--space-6)}
.nav a{font-size:var(--text-sm);text-decoration:none;color:var(--muted);transition:color .18s var(--ease);padding-block:var(--space-2)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--text)}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--primary)}
.actions{display:flex;align-items:center;gap:var(--space-3)}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-full);border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}
.icon-btn:hover{background:var(--surface-2)}
.menu-btn{display:none}
.btn{display:inline-flex;align-items:center;gap:var(--space-2);font:600 var(--text-sm)/1 var(--font-body);padding:.85rem 1.35rem;border-radius:var(--radius-full);text-decoration:none;border:1px solid transparent;transition:background .18s var(--ease),color .18s var(--ease),transform .18s var(--ease);white-space:nowrap}
.btn-primary{background:var(--primary);color:var(--inverse)}
.btn-primary:hover{background:var(--primary-hover)}
.btn-ghost{border-color:var(--border);color:var(--text)}
.btn-ghost:hover{background:var(--surface-2)}
.btn:active{transform:translateY(1px)}
.btn svg{width:16px;height:16px}
@media (max-width:960px){
  .menu-btn{display:grid}
  .nav{position:fixed;inset:4.5rem 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--divider);padding:var(--space-4) var(--space-6) var(--space-6);transform:translateY(-120%);transition:transform .3s var(--ease);z-index:-1}
  .nav.open{transform:none}
  .nav a{font-size:var(--text-base);padding:var(--space-3) 0;border-bottom:1px solid var(--divider)}
  .nav a[aria-current="page"]{box-shadow:none;color:var(--primary)}
  .header .btn-call-text{display:none}
}

/* hero */
.hero{position:relative;min-height:min(86vh,820px);display:grid;align-items:end;color:#fbf8f2;overflow:hidden;isolation:isolate}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,22,34,.15) 0%,rgba(10,22,34,.25) 40%,rgba(10,22,34,.78) 100%)}
.hero .wrap{padding-block:var(--space-24) clamp(var(--space-12),7vw,var(--space-24))}
.hero h1{font-size:var(--text-3xl);max-width:14ch;font-weight:400}
.hero h1 em{font-style:italic;color:#bfe3dd}
.hero p{font-size:var(--text-lg);max-width:46ch;margin-top:var(--space-6);color:rgba(251,248,242,.88);line-height:1.5}
.hero p.eyebrow{font-size:var(--text-xs);margin:0 0 var(--space-4);max-width:none}
.hero .cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
.hero .btn-primary{background:#fbf8f2;color:#14263a}
.hero .btn-primary:hover{background:#e9dcc6}
.hero .btn-ghost{color:#fbf8f2;border-color:rgba(251,248,242,.45)}
.hero .btn-ghost:hover{background:rgba(251,248,242,.12)}

/* info strip */
.strip{background:var(--navy);color:#e8e2d6}
.strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);padding-block:var(--space-10)}
.strip h2{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:#8fcfc7;font-weight:600;margin-bottom:var(--space-2)}
.strip p{font-size:var(--text-sm);color:#cfd6da}
.strip a{color:#fbf8f2}
@media (max-width:760px){.strip .wrap{grid-template-columns:1fr;gap:var(--space-6)}}

/* page header */
.page-head{padding-block:clamp(var(--space-16),8vw,var(--space-24)) var(--space-12);border-bottom:1px solid var(--divider)}
.page-head h1{font-size:var(--text-2xl);max-width:20ch}
.page-head .lede{margin-top:var(--space-5)}

/* split */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(var(--space-8),6vw,var(--space-20));align-items:center}
.split.rev>:first-child{order:2}
.split h2{font-size:var(--text-xl);margin-bottom:var(--space-5)}
.split p+p{margin-top:var(--space-4)}
.split figure img{border-radius:var(--radius-lg);aspect-ratio:4/3;object-fit:cover;width:100%}
@media (max-width:860px){.split{grid-template-columns:1fr}.split.rev>:first-child{order:0}}

/* cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}
@media (max-width:900px){.grid-3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-3)}
.card .num{font-family:var(--font-display);font-size:var(--text-lg);color:var(--primary)}
.card p{color:var(--muted);font-size:var(--text-sm);line-height:1.6}
.card a.more{margin-top:auto;padding-top:var(--space-3);font-size:var(--text-sm);font-weight:600;color:var(--primary);text-decoration:none}
.card a.more:hover{text-decoration:underline}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-6);margin-bottom:var(--space-10);flex-wrap:wrap}
.section-head h2{font-size:var(--text-xl);max-width:22ch}
.alt{background:var(--surface-2)}

/* doctor */
.doctor{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(var(--space-8),6vw,var(--space-20));align-items:start}
.portrait{aspect-ratio:4/5;border-radius:var(--radius-lg);background:linear-gradient(160deg,var(--primary-soft),var(--sand));display:grid;place-items:center;position:relative;overflow:hidden}
.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%;position:absolute;inset:0}
.portrait span{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--primary);opacity:.8}
.portrait small{position:absolute;bottom:var(--space-4);left:var(--space-4);right:var(--space-4);font-size:var(--text-xs);color:var(--muted);text-align:center}
.doctor h2{font-size:var(--text-xl)}
.doctor .role{color:var(--primary);font-weight:600;font-size:var(--text-sm);margin:var(--space-2) 0 var(--space-6)}
.doctor p+p{margin-top:var(--space-4)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4) var(--space-8);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--divider)}
.facts dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.facts dd{font-size:var(--text-sm);margin-top:var(--space-1)}
@media (max-width:860px){.doctor{grid-template-columns:1fr}.portrait{max-width:360px}}
.team{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}
.member{display:grid;grid-template-columns:96px 1fr;gap:var(--space-5);align-items:start;padding:var(--space-6);border:1px solid var(--divider);border-radius:var(--radius-lg);background:var(--surface)}
.avatar{width:96px;height:96px;border-radius:var(--radius-full);background:linear-gradient(160deg,var(--primary-soft),var(--sand));display:grid;place-items:center;font-family:var(--font-display);font-size:var(--text-xl);color:var(--primary)}
.member p{color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-2)}
@media (max-width:760px){.team{grid-template-columns:1fr}.member{grid-template-columns:72px 1fr}.avatar{width:72px;height:72px}}

/* full bleed */
.bleed img{width:100%;height:clamp(260px,42vw,520px);object-fit:cover}

/* callout */
.callout{border-left:3px solid var(--primary);padding:var(--space-5) var(--space-6);background:var(--surface);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:var(--text-sm);color:var(--muted)}
.callout strong{color:var(--text)}

/* lists */
.checks{list-style:none;display:grid;gap:var(--space-3);margin-top:var(--space-5)}
.checks li{padding-left:var(--space-8);position:relative}
.checks li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:8px;border-left:2px solid var(--primary);border-bottom:2px solid var(--primary);transform:rotate(-45deg)}

/* visit */
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}
@media (max-width:760px){.visit-grid{grid-template-columns:1fr}}
.hours{width:100%;border-collapse:collapse;font-size:var(--text-sm);margin-top:var(--space-3)}
.hours td{padding:var(--space-3) 0;border-bottom:1px solid var(--divider)}
.hours td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.big-link{font-family:var(--font-display);font-size:var(--text-xl);color:var(--primary);text-decoration:none}
.big-link:hover{text-decoration:underline}
address{font-style:normal}

/* CTA band */
.band{background:var(--primary);color:var(--inverse)}
.band .wrap{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);padding-block:clamp(var(--space-12),6vw,var(--space-20));flex-wrap:wrap}
.band h2{font-size:var(--text-xl);max-width:20ch}
.band p{opacity:.85;margin-top:var(--space-2);font-size:var(--text-sm)}
.band .btn-primary{background:var(--inverse);color:var(--primary)}
.band .btn-ghost{color:var(--inverse);border-color:color-mix(in srgb,var(--inverse) 45%,transparent)}
.band .btn-ghost:hover{background:color-mix(in srgb,var(--inverse) 12%,transparent)}
.band .cta{display:flex;gap:var(--space-3);flex-wrap:wrap}

/* journal */
.feature{display:grid;grid-template-columns:1.3fr 1fr;gap:0;border:1px solid var(--divider);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);text-decoration:none;color:inherit;margin-bottom:var(--space-6)}
.feature img{width:100%;height:100%;object-fit:cover;min-height:280px}
.feature .body{padding:clamp(var(--space-6),4vw,var(--space-12));display:flex;flex-direction:column;justify-content:center;gap:var(--space-3)}
.feature h2{font-size:var(--text-xl)}
.feature:hover h2{color:var(--primary)}
@media (max-width:760px){.feature{grid-template-columns:1fr}}
.post-card{border:1px solid var(--divider);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);text-decoration:none;color:inherit;display:flex;flex-direction:column}
.post-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.post-card .body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.post-card h3{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg)}
.post-card:hover h3{color:var(--primary)}
.post-card p{font-size:var(--text-sm);color:var(--muted)}
.post-card.soon{opacity:.8}
.post-card .ph{aspect-ratio:16/10;background:linear-gradient(160deg,var(--primary-soft),var(--sand))}
.meta{font-size:var(--text-xs);color:var(--muted);letter-spacing:.04em;display:flex;gap:var(--space-3);flex-wrap:wrap}
.tag{display:inline-block;font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}

/* article */
.article-head{padding-block:clamp(var(--space-12),7vw,var(--space-20)) var(--space-8)}
.article-head h1{font-size:var(--text-2xl);max-width:22ch;margin-block:var(--space-4)}
.article-hero img{width:100%;height:clamp(240px,40vw,480px);object-fit:cover;border-radius:var(--radius-lg)}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:clamp(var(--space-8),6vw,var(--space-20));padding-block:var(--space-12) var(--space-20)}
@media (max-width:900px){.article-layout{grid-template-columns:1fr}}
.prose{max-width:65ch}
.prose h2{font-size:var(--text-lg);font-family:var(--font-body);font-weight:600;margin:var(--space-10) 0 var(--space-3)}
.prose p,.prose ul,.prose ol{margin-bottom:var(--space-4)}
.prose ul,.prose ol{padding-left:var(--space-6)}
.prose li{margin-bottom:var(--space-2)}
.prose a{color:var(--primary)}
.aside{position:sticky;top:6rem;align-self:start;display:grid;gap:var(--space-6)}
.aside .box{border:1px solid var(--divider);border-radius:var(--radius-lg);padding:var(--space-6);background:var(--surface);font-size:var(--text-sm)}
.aside dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;margin-top:var(--space-3)}
.aside dt:first-child{margin-top:0}
.sources{font-size:var(--text-sm);color:var(--muted);border-top:1px solid var(--divider);padding-top:var(--space-6);margin-top:var(--space-10)}
.sources ol{padding-left:var(--space-5)}
.sources a{color:var(--primary);word-break:break-word}
.next-step{background:var(--primary-soft);border-radius:var(--radius-lg);padding:var(--space-6);margin-top:var(--space-8)}
.next-step strong{display:block;margin-bottom:var(--space-2)}

/* faq */
.faq details{border-bottom:1px solid var(--divider);padding-block:var(--space-5)}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:var(--space-4)}
.faq summary::after{content:"+";color:var(--primary);font-size:var(--text-lg);line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:var(--space-3);color:var(--muted);font-size:var(--text-sm);max-width:65ch}

/* footer */
.footer{background:var(--navy);color:#cfd6da;font-size:var(--text-sm)}
.footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-8);padding-block:var(--space-16) var(--space-10)}
.footer h2{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:#8fcfc7;font-weight:600;margin-bottom:var(--space-3)}
.footer a{color:#e8e2d6;text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer ul{list-style:none;display:grid;gap:var(--space-2)}
.footer .brand{color:#fbf8f2}
.footer .brand svg{color:#8fcfc7}
.footer .brand-sub{color:#a3aab0}
.footer .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:var(--space-6);font-size:var(--text-xs);color:#8f99a1;display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
@media (max-width:860px){.footer .wrap{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer .wrap{grid-template-columns:1fr}}

/* reveal */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .js .reveal.in{opacity:1;transform:none}
}
.brand-name,.brand-sub{white-space:nowrap}
@media (max-width:420px){.header .brand-sub{display:none}.brand svg{width:32px;height:32px}}
.article-head .tag{display:block}
.eq-cap{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-3);line-height:1.5}

/* ---- v2 additions ---- */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.has-sub{position:relative;display:flex;align-items:center;gap:2px}
.sub-toggle{background:none;border:0;color:var(--muted);cursor:pointer;display:grid;place-items:center;width:22px;height:28px;border-radius:var(--radius-sm)}
.sub-toggle:hover{color:var(--text)}
.sub{position:absolute;top:calc(100% + 6px);left:-1rem;min-width:240px;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:var(--space-2);display:none;flex-direction:column}
.sub::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.has-sub.open .sub{display:flex}
.nav .sub a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text);box-shadow:none}
.nav .sub a:hover{background:var(--surface-2)}
.nav .sub a[aria-current="page"]{color:var(--primary);box-shadow:none}
.nav .sub a.sub-all{color:var(--primary);font-weight:600;border-top:1px solid var(--divider);margin-top:var(--space-1);padding-top:var(--space-3);border-radius:0}
@media (max-width:960px){
  .nav{max-height:calc(100dvh - 4.5rem);overflow:auto}
  .has-sub{flex-wrap:wrap;gap:0}
  .has-sub>a{flex:1}
  .sub-toggle{display:none}
  .sub{position:static;display:flex;box-shadow:none;border:0;background:transparent;padding:0 0 0 var(--space-4);min-width:0;width:100%}
  .sub::before{display:none}
  .nav .sub a{font-size:var(--text-sm);padding:var(--space-3) 0;border-radius:0;color:var(--muted)}
  .nav .sub a.sub-all{display:none}
}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
@media (max-width:1060px){.grid-4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.grid-4{grid-template-columns:1fr}}
.card-link{text-decoration:none;color:inherit;transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.card-link:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow)}
.card-link .more{margin-top:auto;padding-top:var(--space-3);font-size:var(--text-sm);font-weight:600;color:var(--primary)}
.pillars>div{border-top:2px solid var(--primary);padding-top:var(--space-5)}
.pillars p{color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-2)}
.more-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--primary);font-weight:600;font-size:var(--text-sm);text-decoration:none}
.more-link svg{width:16px;height:16px;transition:transform .2s var(--ease)}
.more-link:hover svg{transform:translateX(3px)}
.crumbs{font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--space-5)}
.crumbs a{color:var(--muted)}
.svc-list{display:grid;gap:clamp(var(--space-12),7vw,var(--space-24))}
.svc-row{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(var(--space-8),6vw,var(--space-16));align-items:center}
.svc-row.rev .svc-img{order:2}
.svc-img img{border-radius:var(--radius-lg);aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s var(--ease)}
.svc-img{display:block;overflow:hidden;border-radius:var(--radius-lg)}
.svc-img:hover img{transform:scale(1.03)}
.svc-row h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}
.svc-row h2 a{text-decoration:none}
.svc-row h2 a:hover{color:var(--primary)}
.svc-row p{color:var(--muted)}
@media (max-width:860px){.svc-row{grid-template-columns:1fr}.svc-row.rev .svc-img{order:0}}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);counter-reset:s}
.steps.steps-3{grid-template-columns:repeat(3,1fr)}
.steps li{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-lg);padding:var(--space-6)}
.steps li>span{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary);font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-4)}
.steps p{color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-2)}
@media (max-width:960px){.steps,.steps.steps-3{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.steps,.steps.steps-3{grid-template-columns:1fr}}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);position:relative;gap:var(--space-6)}
.timeline::before{content:"";position:absolute;left:0;right:0;top:.85rem;height:2px;background:var(--border)}
.timeline>div{position:relative;padding-top:var(--space-10)}
.timeline>div::before{content:"";position:absolute;top:.35rem;left:0;width:1rem;height:1rem;border-radius:50%;background:var(--primary);box-shadow:0 0 0 5px var(--surface-2)}
.timeline .age{font-family:var(--font-display);font-size:var(--text-xl);display:block;line-height:1.1}
.timeline p{color:var(--muted);margin-top:var(--space-2);font-size:var(--text-sm);max-width:30ch}
@media (max-width:760px){.timeline{grid-template-columns:1fr;gap:var(--space-2)}.timeline::before{left:.45rem;right:auto;top:0;bottom:0;width:2px;height:auto}.timeline>div{padding:0 0 var(--space-6) var(--space-10)}.timeline>div::before{top:.4rem}}
.gap-lg{gap:clamp(var(--space-8),6vw,var(--space-20))}
.h2-sm{font-size:var(--text-xl);margin-bottom:var(--space-4)}
.faq-title{font-size:var(--text-xl);margin-bottom:var(--space-6)}
.faq details p a{color:var(--primary)}
.faq-group+.faq-group{margin-top:var(--space-16)}
.faq-group h2{font-size:var(--text-lg);font-family:var(--font-body);font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.1em;font-size:var(--text-xs);margin-bottom:var(--space-2)}
.page-sources{font-size:var(--text-xs);color:var(--muted);border-top:1px solid var(--divider);padding-top:var(--space-5)}
.page-sources ul{list-style:none;margin-top:var(--space-2);display:grid;gap:var(--space-1)}
.page-sources a{color:var(--primary)}
.cov-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);margin-top:var(--space-6)}
.cov-grid>div{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-md);padding:var(--space-5)}
.cov-grid p{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-2)}
@media (max-width:520px){.cov-grid{grid-template-columns:1fr}}
.map-wrap{padding-bottom:clamp(var(--space-12),6vw,var(--space-20))}
.map-wrap iframe{width:100%;height:clamp(280px,40vw,440px);border:0;border-radius:var(--radius-lg);filter:saturate(.85)}
[data-theme="dark"] .map-wrap iframe{filter:invert(.9) hue-rotate(180deg) saturate(.6)}
.back{color:var(--primary);text-decoration:none}
.split h3{margin-top:var(--space-2)}
.mobile-cta{display:none}
@media (max-width:760px){
  .mobile-cta{display:grid;grid-template-columns:1fr 1.4fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--navy);border-top:1px solid rgba(255,255,255,.1)}
  .mobile-cta a{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);color:#fbf8f2;text-decoration:none;font-weight:600;font-size:var(--text-sm)}
  .mobile-cta a:first-child{background:var(--primary);color:#fff}
  [data-theme="dark"] .mobile-cta a:first-child{color:#0f1924}
  .mobile-cta svg{width:16px;height:16px}
  body{padding-bottom:3.4rem}
}
/* language toggle */
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 .9rem;border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text);text-decoration:none;font-size:var(--text-sm);font-weight:600;white-space:nowrap;transition:background .18s var(--ease),border-color .18s var(--ease)}
.lang-btn:hover{background:var(--surface-2);border-color:var(--primary)}
.lang-btn svg{color:var(--primary);flex:none}
.lang-short{display:none}
@media (max-width:1100px){.lang-long{display:none}.lang-short{display:inline}}
@media (max-width:420px){.lang-btn{padding:0 .6rem}.lang-btn svg{display:none}.actions{gap:var(--space-2)}}

/* Keep every header action reachable on narrow phone screens. */
@media (max-width: 520px) {
  .header .wrap { gap: 8px; }
  .header .actions { gap: 6px; flex-shrink: 0; }
  .header .brand { gap: 7px; min-width: 0; }
  .header .brand-name { font-size: 1.05rem; }
  .header .icon-btn { width: 34px; height: 36px; flex-shrink: 0; }
  .header .btn-primary { padding-inline: 10px; }
}
@media (max-width: 360px) {
  .header .wrap { padding-inline: 12px; }
  .header .brand svg { width: 26px; height: 26px; }
  .header .actions { gap: 4px; }
}
@media (max-width: 640px) {
  .grid-2 > *, .grid-3 > *, .grid-4 > *, .visit-grid > * { min-width: 0; }
  .card .btn { max-width: 100%; white-space: normal; line-height: 1.4; }
  .card .btn svg { flex-shrink: 0; }
  .hours { width: 100%; table-layout: fixed; }
}

/* Supplied Shaka Vision logo: retain its full artwork and proportions. */
.brand-logo { display: block; width: 104px; height: 104px; object-fit: contain; background: #fff; border-radius: 6px; flex-shrink: 0; }
.header .wrap { height: 116px; }
.footer .brand-logo { width: 156px; height: 156px; }
@media (max-width: 960px) {
  .nav { top: 116px; max-height: calc(100dvh - 116px); }
}
@media (max-width: 520px) {
  .header .wrap { height: 96px; }
  .header .brand-logo { width: 84px; height: 84px; }
  .nav { top: 96px; max-height: calc(100dvh - 96px); }
}

/* Board certification alongside the doctor's credentials. */
.board-certification{margin-top:var(--space-8);padding:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}
.board-certification-heading{display:flex;align-items:center;gap:var(--space-5)}
.board-certification-heading img{width:140px;height:auto;flex-shrink:0;border-radius:var(--radius-sm);background:#fff}
.board-certification .eyebrow{margin:0 0 var(--space-2)}
.board-certification h3{font-family:var(--font-body);font-size:var(--text-base);line-height:1.45;margin:0}
.board-certification>p{font-size:var(--text-sm);line-height:1.7;margin:var(--space-5) 0 0;color:var(--muted)}
@media(max-width:560px){.board-certification-heading{flex-direction:column;align-items:flex-start}.board-certification-heading img{width:150px}}

/* Audit update: readable booking guidance, disclosed illustrations and reachable controls. */
html{text-size-adjust:100%;scroll-padding-top:132px}
.hero::after{background:linear-gradient(90deg,rgba(10,22,34,.8),rgba(10,22,34,.36)),linear-gradient(0deg,rgba(10,22,34,.45),transparent)}
.hero h1{max-width:18ch}
.hero .hero-visit{font-size:var(--text-sm);padding:.85rem .4rem;text-underline-offset:4px;min-height:44px}
.hero p.booking-note{font-size:var(--text-sm);max-width:64ch;color:#fbf8f2;margin-top:var(--space-4)}
.hero :focus-visible{outline-color:#fff}
.illustration-caption{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-3);line-height:1.5;border-left:3px solid var(--primary);padding-left:var(--space-3)}
.technology-cards{margin-top:var(--space-8)}
.technology-cards h2{font:600 var(--text-lg)/1.3 var(--font-body)}
.source-link{margin-top:var(--space-5)}
.icon-btn,.sub-toggle,.lang-btn{min-width:44px;min-height:44px}
.btn{min-height:44px;line-height:1.35;white-space:normal;text-align:center;justify-content:center}
.mobile-cta a{min-height:48px;justify-content:center}
@media(max-width:960px){.nav{overflow-y:auto}}
.nav .sub a{min-height:44px;display:flex;align-items:center}
@media(max-width:960px){
 .js .nav:not(.open){visibility:hidden;pointer-events:none}
 .js .nav.open{visibility:visible;pointer-events:auto}
 .mobile-cta{grid-template-columns:repeat(3,1fr)}
 .mobile-cta a{font-size:.875rem;padding-inline:.3rem}
}
@media(max-width:520px){
 html{scroll-padding-top:108px}
 .header .icon-btn{width:44px;height:44px}
 .header .btn-primary{width:44px;padding:0}
 .lang-btn{padding:0}
 .hero .wrap{padding-top:var(--space-12)}
 .hero h1{font-size:clamp(2.3rem,9vw,3.3rem)}
}
@media(max-width:360px){
 .header .wrap{height:84px;gap:4px;width:calc(100% - 24px);padding-inline:0}
 .header .brand-logo{width:72px;height:72px}
 .header .actions{gap:4px}
 .nav{top:84px;max-height:calc(100dvh - 84px)}
}
/* Content stays visible; motion is decorative and never needed to access information. */
.js .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
 .header,.mobile-cta,.actions,.band{display:none!important}
 .reveal{opacity:1!important;transform:none!important}
 body{color:#000;background:#fff}
}

@media(max-width:960px){html:not(.js) .header .wrap{height:auto;flex-wrap:wrap}html:not(.js) .nav{position:static;transform:none;flex-basis:100%;order:3;max-height:none}html:not(.js) .menu-btn{display:none}}

.section > .narrow h2{font-size:var(--text-xl);margin-bottom:var(--space-5)}
.section > .narrow p+p{margin-top:var(--space-4)}

/* Contact lens story: retain the original palette, typography and photographic hero. */
.lens-focus{border-bottom:1px solid var(--divider)}
.lens-focus .split{grid-template-columns:1.05fr 1fr;align-items:center}
.lens-focus h2{max-width:20ch}
.lens-focus .btn{margin-top:var(--space-5)}
.lens-focus .small{margin-top:var(--space-4)}
.specialty-links{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:var(--space-5)}
.specialty-links a{color:var(--primary);display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.hero h1{max-width:20ch;font-size:clamp(2.5rem,4.7vw,4.6rem)}
.hero p{max-width:55ch}
@media(max-width:860px){.lens-focus .split{grid-template-columns:1fr}}
@media(max-width:520px){.hero h1{font-size:clamp(2.15rem,8vw,3rem)}.hero .wrap{padding-bottom:var(--space-12)}}

/* Patient-friendly accepted plan lists. */
.plan-list{list-style:none;display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.75rem}
.plan-list li{padding:.55rem 1rem;border-radius:999px;background:var(--primary-soft);color:var(--text);font-weight:600}
.plan-note{max-width:75ch;color:var(--muted);margin-top:var(--space-6)}
.accepted-plans{padding-bottom:var(--space-12)}
.art-banner{padding-top:var(--space-10)}
.art-banner img{width:100%;max-height:480px;object-fit:cover;border-radius:var(--radius-lg)}

/* Authorized manufacturer examples: preserve the full image and its credit. */
.split .manufacturer-figure img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#fff;border-radius:var(--radius-lg)}
.manufacturer-credit{font-size:var(--text-xs);line-height:1.5;color:var(--muted);margin-top:var(--space-3)}
.split .retina-figure img{width:100%;height:auto;aspect-ratio:auto;border-radius:var(--radius-lg);background:#080808;object-fit:contain}
.optos-story{border-bottom:1px solid var(--divider)}

/* Instrument images supplied for the technology cards. */
.technology-cards .technology-instrument{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#fff;border-radius:var(--radius-md);margin-bottom:var(--space-3)}

/* Preserve the full portrait supplied for Our Practice. */
.split .practice-figure img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:var(--radius-lg)}

/* Match menu and page clearance to the actual fixed action bar, including wrapped labels. */
:root{--site-header-height:116px;--action-bar-height:0px}
@media(max-width:760px){
 :root{--action-bar-height:calc(80px + env(safe-area-inset-bottom,0px))}
 .mobile-cta{padding-bottom:env(safe-area-inset-bottom,0px)}
 body{padding-bottom:var(--action-bar-height)}
}
@media(max-width:520px){:root{--site-header-height:96px}}
@media(max-width:360px){:root{--site-header-height:84px}}
@media(max-width:960px){
 .js .nav{max-height:calc(100dvh - var(--site-header-height) - var(--action-bar-height));overscroll-behavior:contain}
}

/* Homepage slogan: 66 percent of headline scale and approved soft coral. */
.hero p.hero-slogan{color:#FFB4A2;font-family:var(--font-display);font-size:clamp(1.65rem,3.102vw,3.036rem);font-weight:400;font-style:italic;line-height:1.1;letter-spacing:-.01em;text-wrap:balance;max-width:36ch}
@media(max-width:520px){.hero p.hero-slogan{font-size:clamp(1.419rem,5.28vw,1.98rem)}}

/* Review preview: one-line slogan on wider screens. */
@media(min-width:700px){.hero p.hero-slogan{max-width:none;white-space:nowrap;text-wrap:nowrap}}

/* Allow the longer Spanish slogan to wrap on smaller tablets. */
@media(min-width:700px) and (max-width:1099px){html[lang="es"] .hero p.hero-slogan{white-space:normal;text-wrap:balance}}
