
/* Layout concept: an anatomical plate. The practice's logo figure becomes a labeled line drawing, and every service hangs off the body system it treats. Arterial red and venous blue come straight from the logo. One type family built for low vision readers carries the whole site. */
:root{
  --paper:#F5F6F3;      /* plate paper, cool bone */
  --sheet:#FFFFFF;
  --ink:#16263A;        /* logo navy */
  --ink-soft:#4B5868;
  --rule:#C9CFD4;
  --vein:#1F5F99;       /* venous blue: links, figure linework */
  --artery:#B3263E;     /* arterial red: highlights, used sparingly */
  --organ:#E7EDF3;      /* organ fill at rest */
  --organ-hot:#F6D9DE;  /* organ fill when its system is selected */
  --control:#75838F;
  --focus:#16263A;
  --on-ink:#FFFFFF;
  --band:#16263A;
  --f-sans:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Atkinson Hyperlegible Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --s--1:clamp(.9rem,.87rem + .15vw,.98rem);
  --s-0:clamp(1.06rem,1rem + .3vw,1.19rem);
  --s-1:clamp(1.3rem,1.16rem + .55vw,1.6rem);
  --s-2:clamp(1.75rem,1.4rem + 1.4vw,2.6rem);
  --s-3:clamp(2.3rem,1.6rem + 3vw,4.4rem);
  --wrap:1240px;
}
/* Light design for every visitor (dark mode removed 2026-09-30 at the practice's request). */
:root{color-scheme:light}

*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--f-sans);font-size:var(--s-0);line-height:1.6;margin:0;-webkit-font-smoothing:antialiased}
html.large{font-size:112.5%}
h1,h2,h3{font-weight:800;line-height:1.08;letter-spacing:-.02em;text-wrap:balance;margin:0}
h1{font-size:var(--s-3);letter-spacing:-.035em}
h2{font-size:var(--s-2);letter-spacing:-.025em}
h3{font-size:var(--s-1)}
p{margin:0;text-wrap:pretty}
a{color:var(--vein);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--artery)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.band :focus-visible,.foot :focus-visible{outline-color:#FFD27A}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
.mono{font-family:var(--f-mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.num{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-100px;z-index:100;background:var(--ink);color:var(--paper);padding:12px 18px;font-weight:700;text-decoration:none}
.skip:focus{top:12px;color:var(--paper)}
#main:focus{outline:none}
.soft{color:var(--ink-soft)}
.rule-top{border-top:2px solid var(--ink)}
section{padding-block:clamp(56px,7vw,104px)}
#team{padding-top:clamp(64px,9vw,128px)}
#tests{padding-top:clamp(40px,5vw,72px)}

/* Buttons: squared, like a clinic sign, not pills */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:inherit;font-weight:700;padding:14px 22px;min-height:52px;border:2px solid var(--ink);border-radius:3px;cursor:pointer;text-decoration:none;white-space:nowrap;line-height:1.2;transition:background .15s,color .15s}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:var(--vein);border-color:var(--vein);color:var(--paper)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn small{font-weight:400;font-size:.8em;opacity:.85}

/* Utility + header */
.util{border-bottom:1px solid var(--rule);font-size:var(--s--1)}
.util .wrap{display:flex;gap:8px 24px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:8px}
.util .l{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.util .calls{display:flex;gap:20px;flex-wrap:wrap}
.util a{text-decoration:none;font-weight:700}
.textsize{font:inherit;font-weight:700;font-size:var(--s--1);background:transparent;color:var(--ink);border:1px solid var(--control);border-radius:3px;padding:4px 12px;cursor:pointer;min-height:34px}
.textsize[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--paper);border-bottom:2px solid var(--ink)}
.site-head .wrap{display:flex;align-items:center;gap:24px;padding-block:10px}
.logo{display:block;background:#fff;padding:4px 8px;line-height:0}
.logo img{height:48px;width:auto}
.mainnav{display:flex;gap:2px;margin-inline-start:auto}
.mainnav a{color:var(--ink);text-decoration:none;font-weight:500;padding:10px 11px;white-space:nowrap}
.mainnav a:hover{text-decoration:underline;color:var(--ink)}
.menu-toggle{display:none;margin-inline-start:auto;background:none;border:1px solid var(--control);border-radius:3px;padding:10px 12px;color:var(--ink);font:inherit;cursor:pointer;min-height:44px}
@media (max-width:1140px){
  .mainnav{display:none;position:absolute;inset-inline:0;top:100%;flex-direction:column;background:var(--paper);border-bottom:2px solid var(--ink);padding:8px 16px 16px}
  .mainnav.open{display:flex}
  .menu-toggle{display:inline-flex}
}
@media (max-width:620px){.util .calls{display:none}}
@media (max-width:480px){.site-head .wrap{gap:10px}.logo img{height:38px}.site-head .btn{padding:10px 14px;min-height:44px}}

/* ============ HERO: the plate ============ */
.hero{padding-block:clamp(36px,5vw,64px) 0}
.hero-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,88px);align-items:start;padding-bottom:clamp(28px,3vw,44px)}
.hero-top h1{max-width:16ch}
.hero-side{padding-top:.55em}
.hero-side{display:grid;gap:22px;min-width:0}
.hero-side p{font-size:var(--s-1);line-height:1.45;color:var(--ink-soft)}
.book-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.book-pair .btn{flex-direction:column;align-items:flex-start;gap:2px;padding:12px 18px}
.glance{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0;font-size:var(--s--1);border-top:1px solid var(--rule);padding-top:14px}
.glance dt{color:var(--ink-soft)}
.glance dd{margin:0;font-weight:700}
@media (max-width:900px){.hero-top{grid-template-columns:1fr}}
@media (max-width:420px){.book-pair{grid-template-columns:1fr}}

.plate-wrap{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);background:var(--sheet)}
.plate-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:14px;border-bottom:1px solid var(--rule)}
.plate-head p{font-size:var(--s--1)}
.plate{position:relative;aspect-ratio:1000/720;max-width:100%;margin-inline:auto;margin-block:clamp(8px,2vw,24px)}
.plate svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.fig-line{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.fig-faint{fill:none;stroke:var(--rule);stroke-width:1.4;stroke-linecap:round}
.spine{fill:none;stroke:var(--control);stroke-width:5;stroke-dasharray:7 6;stroke-linecap:butt;opacity:.55}
.organ{fill:var(--organ);stroke:var(--vein);stroke-width:1.6;stroke-linejoin:round;transition:fill .2s,stroke .2s}
.vessel{fill:none;stroke:var(--artery);stroke-width:2.4;stroke-linecap:round;opacity:.8}
.leader{stroke:var(--control);stroke-width:1;fill:none;transition:stroke .2s,stroke-width .2s}
.dot{fill:var(--ink);transition:fill .2s}
.sys-on .organ{fill:var(--organ-hot);stroke:var(--artery);stroke-width:2.4}
.sys-on .fig-line.skin{stroke:var(--artery);stroke-width:2.6}
.sys-on .leader{stroke:var(--artery);stroke-width:2}
.sys-on .dot{fill:var(--artery)}
.sys-on .spine{stroke:var(--artery);opacity:.9}
.sys-on .vessel{opacity:1;stroke-width:3.4}

.labels{list-style:none;margin:0;padding:0}
.lab{position:absolute;width:29%;transform:translateY(-.8em);display:grid;gap:2px}
.lab.l{right:70.4%;text-align:right;justify-items:end}
.lab.r{left:70.4%}
.lab h3{font-family:var(--f-mono);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);display:flex;gap:8px;align-items:baseline}
.lab h3 i{font-family:var(--f-sans);font-style:italic;font-weight:400;letter-spacing:0;text-transform:none;font-size:.85rem}
.lab ul{list-style:none;margin:0;padding:0;display:grid}
.lab a{font-weight:700;text-decoration:none;color:var(--ink);line-height:1.35;padding-block:3px;display:inline-block}
.lab a:hover,.lab a:focus-visible{color:var(--artery);text-decoration:underline}
.lab.on h3{color:var(--artery)}
.plate-foot{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding-block:14px;border-top:1px solid var(--rule);font-size:var(--s--1)}
.plate-foot a{font-weight:700}

.sys-pick{display:none}
@media (max-width:900px){
  .plate{aspect-ratio:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:8px 20px;align-items:start;margin-block:18px 8px}
  .plate svg{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:400/700;grid-row:1 / span 2}
  .plate .leader,.plate .dot{display:none}
  .sys-pick{display:grid;gap:0;border-top:2px solid var(--ink)}
  .sys-pick button{font:inherit;font-size:var(--s--1);font-weight:700;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink);padding:10px 4px;min-height:44px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;align-items:center}
  .sys-pick button::after{content:"" / "";width:9px;height:9px;border:1.5px solid var(--control);flex:none}
  .sys-pick button[aria-pressed="true"]{color:var(--artery)}
  .sys-pick button[aria-pressed="true"]::after{background:var(--artery);border-color:var(--artery)}
  .labels{grid-column:1 / -1}
  .lab{position:static;width:auto;transform:none;display:none;border-top:2px solid var(--artery);padding-top:12px}
  .lab.sel{display:grid}
  .lab.l{text-align:left;justify-items:start}
  .lab a{font-size:var(--s-1);padding-block:6px}
}
@media (max-width:420px){.plate{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}}

/* ============ Care team ============ */
.team{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,88px);align-items:start}
.bleed{padding-right:max(clamp(16px,4vw,40px),calc((100% - var(--wrap)) / 2 + clamp(16px,4vw,40px)))}
.bleed .team-photo img{aspect-ratio:4/5;object-position:50% 25%}
.bleed .caption{margin-left:max(clamp(16px,4vw,40px),calc((100vw - var(--wrap)) / 2 + clamp(16px,4vw,40px)))}
.team-photo{margin:0;display:grid;gap:10px}
.team-photo img{width:100%;height:auto;display:block;aspect-ratio:900/1022;object-fit:cover}
.caption{font-size:var(--s--1);color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:8px}
.team-copy{display:grid;gap:22px;min-width:0}
.team-copy > p{max-width:58ch}
.roster{list-style:none;margin:8px 0 0;padding:0;border-top:2px solid var(--ink)}
.roster li{display:grid;grid-template-columns:96px 1fr;gap:20px;padding-block:18px;border-bottom:1px solid var(--rule);align-items:center}
.roster img{width:96px;height:110px;object-fit:cover;object-position:top;display:block}
.roster h3{font-size:var(--s-1)}
.roster .cred{font-family:var(--f-mono);font-size:.8rem;letter-spacing:.04em;color:var(--vein);margin-top:4px}
.roster p{font-size:var(--s--1);color:var(--ink-soft);margin-top:6px}
@media (max-width:880px){.team{grid-template-columns:1fr}.bleed{padding-right:0}.bleed .team-photo img{aspect-ratio:4/3;object-position:50% 22%}.bleed .caption{margin-left:clamp(16px,4vw,40px)}.team-copy{padding-inline:clamp(16px,4vw,40px)}}

/* Day in the office strip */
.strip{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-rows:auto auto;gap:clamp(12px,2vw,22px) clamp(14px,2.4vw,28px);margin-top:clamp(48px,6vw,88px)}
.strip figure{margin:0;display:grid;gap:8px;min-width:0;align-content:start}
.strip figure:first-child{grid-row:1 / span 2;grid-template-rows:1fr auto}
.strip img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}
.strip figure:first-child img{height:100%;aspect-ratio:auto;min-height:320px}
.strip:focus-visible{outline-offset:6px}
@media (max-width:760px){
  .strip{display:grid;grid-template-columns:none;grid-template-rows:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin-inline:calc(-1 * clamp(16px,4vw,40px));padding-inline:clamp(16px,4vw,40px);scroll-padding-inline:clamp(16px,4vw,40px)}
  .strip figure,.strip figure:first-child{grid-row:auto;scroll-snap-align:start;grid-template-rows:none}
  .strip img,.strip figure:first-child img{aspect-ratio:4/5;height:auto;min-height:0}
}

/* ============ Tests table ============ */
.tests-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px clamp(16px,2vw,28px)}
.tests-grid h2,.tests-grid .sec-head{grid-column:1 / span 8}
.tests-grid .margin-note{grid-column:1 / span 3;font-size:var(--s--1);border-top:1px solid var(--rule);padding-top:12px;align-self:start;margin-top:30px}
.tests-grid .tbl-wrap{grid-column:4 / -1}
@media (max-width:880px){.tests-grid{grid-template-columns:1fr}.tests-grid > *{grid-column:1 / -1!important}.tests-grid .margin-note{margin-top:0}}
.split{display:grid;grid-template-columns:4fr 8fr;gap:clamp(28px,5vw,80px);align-items:start}
.split > div:first-child{display:grid;gap:16px;position:sticky;top:110px}
@media (max-width:880px){.split{grid-template-columns:1fr}.split > div:first-child{position:static}}
.tbl-wrap{overflow-x:auto;min-width:0}
table.tests{width:100%;border-collapse:collapse;font-size:var(--s--1)}
.tests caption{text-align:left;padding-bottom:10px}
.tests th,.tests td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-bottom:1px solid var(--rule)}
.tests thead th{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;border-bottom:2px solid var(--ink)}
.tests tbody th{font-size:var(--s-0);font-weight:700;min-width:180px}
.tests tbody th a{color:var(--ink);text-decoration:none}
.tests tbody th a:hover{color:var(--artery);text-decoration:underline}
.also{margin-top:20px;font-size:var(--s--1)}
@media (max-width:560px){
  .tests thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tests,.tests tbody,.tests tr,.tests th,.tests td{display:block;width:100%}
  .tests tr{border-bottom:1px solid var(--rule);padding-block:14px}
  .tests tbody tr:first-child{border-top:2px solid var(--ink)}
  .tests th,.tests td{border:0;padding:0}
  .tests td{color:var(--ink-soft);margin-top:4px}
}

/* ============ Settings of care ============ */
.band{background:var(--band);color:#fff}
.band a{color:#fff}
.band a:hover{color:#FFD27A}
.band h2{max-width:22ch}
.settings{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(28px,4vw,48px);border-top:1px solid rgba(255,255,255,.3)}
.settings > div{padding:22px 22px 6px 0;display:grid;gap:10px;align-content:start}
.settings > div + div{padding-left:22px;border-left:1px solid rgba(255,255,255,.2)}
.settings h3{font-size:var(--s-1)}
.settings p{color:rgba(255,255,255,.84);font-size:var(--s--1)}
.settings .mono{color:#FFD27A}
@media (max-width:900px){.settings{grid-template-columns:1fr 1fr}.settings > div:nth-child(3){padding-left:0;border-left:0}.settings > div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.2)}}
@media (max-width:520px){.settings{grid-template-columns:1fr}.settings > div + div{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.2)}}

/* ============ Offices ============ */
.offices{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);margin-top:clamp(24px,3vw,40px)}
.office{padding:clamp(20px,3vw,36px) clamp(20px,3vw,36px) 0 0;display:grid;gap:14px;align-content:start}
.office + .office{padding-left:clamp(20px,3vw,36px);border-left:1px solid var(--rule)}
.office h3{font-size:var(--s-2)}
.office .phone{font-size:var(--s-2);font-weight:800;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}
.office .phone:hover{color:var(--artery)}
.hours{width:100%;max-width:420px;border-collapse:collapse;font-size:var(--s--1)}
.hours th,.hours td{padding:7px 0;border-top:1px solid var(--rule);text-align:left;font-weight:400}
.hours td{text-align:right}
.office-links{display:flex;gap:8px 20px;flex-wrap:wrap;font-weight:700;font-size:var(--s--1)}
.serves{font-size:var(--s--1);color:var(--ink-soft)}
@media (max-width:760px){.offices{grid-template-columns:1fr}.office + .office{padding-left:0;border-left:0;border-top:1px solid var(--rule);margin-top:24px}}

/* ============ Insurance + FAQ ============ */
.ins-stmt{padding-block:clamp(40px,5vw,72px);border-block:1px solid var(--rule);background:var(--sheet)}
.ins-stmt h2{font-size:var(--s-2);font-weight:700;letter-spacing:-.02em;max-width:30ch;line-height:1.2}
.ins-stmt p{margin-top:16px;max-width:60ch}
.ins{display:grid;grid-template-columns:4fr 8fr;gap:clamp(28px,5vw,80px);border-top:2px solid var(--ink);padding-top:28px}
.ins p.list{font-size:var(--s-1);line-height:1.5}
@media (max-width:880px){.ins{grid-template-columns:1fr}}
.faq-list{border-top:2px solid var(--ink)}
.faq-list details{border-bottom:1px solid var(--rule)}
.faq-list summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:1fr auto;gap:16px;padding:18px 0;font-weight:700}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"Show" / "";font-family:var(--f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--vein);align-self:center}
.faq-list details[open] summary::after{content:"Hide" / ""}
.faq-list details p{padding:0 0 20px;color:var(--ink-soft);max-width:66ch}

.found{display:flex;gap:24px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:24px;font-size:var(--s--1)}
.found img{width:120px;height:auto;background:#fff;padding:6px}
.found p{flex:1 1 360px;color:var(--ink-soft)}

/* ============ Footer ============ */
.foot{background:var(--band);color:rgba(255,255,255,.84);font-size:var(--s--1);padding-block:56px 40px}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{text-decoration:underline;color:#fff}
.foot-cta{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:40px}
.foot-cta h2{color:#fff;max-width:18ch}
.foot .btn-ink{background:#fff;color:#16263A;border-color:#fff}
.foot .btn-ink:hover{background:#FFD27A;border-color:#FFD27A;color:#16263A}
.foot .btn-line{color:#fff;border-color:#fff}
.foot .btn-line:hover{background:#fff;color:#16263A}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px}
.foot .fh{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:#FFD27A;margin:0 0 12px;font-weight:600}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.foot .legal{border-top:1px solid rgba(255,255,255,.2);margin-top:44px;padding-top:24px;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}
.foot .legal nav{display:flex;flex-wrap:wrap;gap:8px 18px}
.sister a{text-decoration:underline}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}

/* ============ Service page ============ */
.crumbs{font-size:var(--s--1);color:var(--ink-soft);padding-top:24px}
.crumbs a{color:var(--ink-soft)}
.svc-top{display:grid;grid-template-columns:1.4fr .6fr;gap:clamp(28px,5vw,72px);align-items:end;padding-block:20px 36px;border-bottom:2px solid var(--ink)}
.svc-top .sys{color:var(--artery);font-weight:600}
.svc-top h1{margin-top:14px;max-width:16ch}
.svc-top .lede{font-size:var(--s-1);color:var(--ink-soft);line-height:1.45;margin-top:18px;max-width:46ch}
.reviewed{display:flex;align-items:center;gap:12px;margin-top:22px;font-size:var(--s--1);color:var(--ink-soft)}
.reviewed img{width:52px;height:52px;object-fit:cover;object-position:top}
.reviewed strong{color:var(--ink);display:block}
.mini-plate{background:var(--sheet);border:1px solid var(--rule);padding:10px;display:grid;gap:6px}
.mini-plate svg{width:100%;height:auto;display:block}
.mini-plate p{font-size:.8rem;color:var(--ink-soft)}
.article{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,5vw,80px);padding-block:clamp(36px,5vw,60px)}
.prose{display:grid;gap:20px;max-width:68ch;min-width:0}
.prose h2{font-size:var(--s-2);margin-top:24px}
.inshort{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding-block:16px 20px;display:grid;gap:8px}
.inshort .mono{color:var(--artery);font-weight:600}
.inshort p{font-size:var(--s-1);line-height:1.5}
.ticks{list-style:none;padding:0;margin:0;display:grid;border-top:1px solid var(--rule)}
.ticks li{padding:12px 0 12px 28px;border-bottom:1px solid var(--rule);position:relative}
.ticks li::before{content:"" / "";position:absolute;left:4px;top:1.15em;width:10px;height:10px;background:var(--vein)}
.urgent{border:2px solid var(--artery);padding:16px 20px;font-size:var(--s--1)}
.urgent strong{color:var(--artery)}
.side{display:grid;gap:28px;align-content:start;position:sticky;top:110px;height:fit-content}
.book-box{border-top:2px solid var(--ink);padding-top:18px;display:grid;gap:14px}
.book-box h2{font-size:var(--s-1)}
.book-box .calls{display:grid;font-size:var(--s--1)}
.book-box .calls a{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);font-weight:700}
.book-box .calls a:hover{color:var(--artery)}
.related{display:grid;gap:4px;border-top:1px solid var(--rule);padding-top:14px}
.related a{font-weight:700;text-decoration:none;padding-block:4px}
.related a:hover{text-decoration:underline}
@media (max-width:920px){.article{grid-template-columns:1fr}.side{position:static}.svc-top{grid-template-columns:minmax(0,1fr) 92px;gap:16px;align-items:start}.mini-plate{padding:6px}.mini-plate p{display:none}}

/* ============ Booking dialog ============ */
dialog{border:2px solid var(--ink);border-radius:4px;padding:0;width:min(560px,calc(100vw - 32px));background:var(--sheet);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(14,23,34,.6)}
.dlg{padding:clamp(22px,4vw,32px);display:grid;gap:20px}
.dlg-head{display:flex;justify-content:space-between;align-items:start;gap:16px}
.dlg-head h2{font-size:var(--s-2)}
.x{background:none;border:1px solid var(--control);border-radius:3px;min-width:44px;height:44px;font:inherit;font-weight:700;cursor:pointer;color:var(--ink);flex:none}
.pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pick button{font:inherit;text-align:left;display:grid;gap:4px;padding:18px;border:2px solid var(--control);border-radius:3px;background:var(--paper);color:var(--ink);cursor:pointer}
.pick button:hover{border-color:var(--ink)}
.pick strong{font-size:var(--s-1)}
.pick span{font-size:var(--s--1);color:var(--ink-soft)}
@media (max-width:480px){.pick{grid-template-columns:1fr}}
.chosen{display:grid;gap:16px}
.callrow{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding-block:14px}
.callrow .big{font-size:var(--s-2);font-weight:800;text-decoration:none;color:var(--ink)}
.form{display:grid;gap:12px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:480px){.form .row{grid-template-columns:1fr}}
.form label{display:grid;gap:6px;font-size:var(--s--1);font-weight:700}
.form input,.form select{font:inherit;font-weight:400;padding:12px 14px;border:1px solid var(--control);border-radius:3px;background:var(--paper);color:var(--ink);width:100%;min-height:48px}
.form [aria-invalid="true"]{border:2px solid var(--artery)}
.err{color:var(--artery);font-weight:700;font-size:.9rem}
.form .note{font-size:.88rem;color:var(--ink-soft)}
.back{background:none;border:0;color:var(--vein);font:inherit;font-weight:700;cursor:pointer;padding:6px 0;justify-self:start;min-height:44px}
.done{border:2px solid var(--vein);padding:18px}

.actionbar{display:none}
@media (max-width:760px){
  .actionbar{display:grid;grid-template-columns:1fr 1fr 1.25fr;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--paper);border-top:2px solid var(--ink);padding-bottom:env(safe-area-inset-bottom,0px)}
  .actionbar a,.actionbar button{font:inherit;font-size:var(--s--1);font-weight:700;display:grid;place-items:center;align-content:center;gap:0;min-height:60px;text-decoration:none;color:var(--ink);background:none;border:0;border-right:1px solid var(--rule);cursor:pointer;line-height:1.15;text-align:center}
  .actionbar a span{font-weight:400;font-size:.8rem;color:var(--ink-soft)}
  .actionbar button{background:var(--ink);color:var(--paper);border:0}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .site-head .btn{display:none}
}
@media (prefers-contrast:more){:root{--ink-soft:var(--ink);--rule:var(--control)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* =====================================================================
   Site wide additions for the full build
   ===================================================================== */
.util .l a{font-weight:700}
.mainnav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.35em}
img{max-width:100%}
.prose a,.lede a,.inshort a{text-decoration:underline}

/* ---------- Inner page hero ---------- */
.p-hero{padding-block:clamp(20px,3vw,32px) clamp(32px,4vw,52px);border-bottom:2px solid var(--ink)}
.p-hero .crumbs{padding-top:0;margin-bottom:clamp(18px,3vw,32px)}
.p-hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,72px);align-items:end}
.p-hero-grid.no-img{grid-template-columns:minmax(0,1fr)}
.p-hero h1{max-width:18ch;margin-top:10px}
.p-hero .kicker{color:var(--artery);font-weight:600}
.p-hero .lede{font-size:var(--s-1);color:var(--ink-soft);line-height:1.45;margin-top:18px;max-width:50ch}
.p-hero-img{margin:0;display:grid;gap:8px;min-width:0}
.p-hero-img img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.p-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
@media (max-width:880px){.p-hero-grid{grid-template-columns:1fr}.p-hero-img{order:-1;margin-inline:calc(-1 * clamp(16px,4vw,40px))}.p-hero-img img{aspect-ratio:16/10}.p-hero-img .caption{padding-inline:clamp(16px,4vw,40px)}}

/* ---------- Service hero with mini plate + photo band ---------- */
.svc-band{margin:0;position:relative;background:var(--organ)}
.svc-band img{display:block;width:100%;height:clamp(220px,34vw,460px);object-fit:cover}
.svc-band figcaption{position:absolute;right:clamp(16px,4vw,40px);bottom:10px;font-size:.78rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}

/* ---------- Article body (prose) ---------- */
.prose h2{scroll-margin-top:110px}
.prose h3{font-size:var(--s-1);margin-top:8px}
.prose ul,.prose ol{margin:0;padding-left:1.2em;display:grid;gap:8px}
.prose ul li::marker{color:var(--vein)}
.prose blockquote{margin:0;border:2px solid var(--artery);padding:16px 20px;font-size:var(--s--1)}
.prose blockquote p{margin:0}
.prose blockquote strong{color:var(--artery)}
.prose table{width:100%;border-collapse:collapse;font-size:var(--s--1)}
.prose th,.prose td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.prose hr{border:0;border-top:1px solid var(--rule);margin:8px 0}
.prose.legal{max-width:72ch}
.prose.cols ul{columns:2 260px;column-gap:40px;display:block}
.prose.cols ul li{break-inside:avoid;margin-bottom:6px}
.legal-wrap{padding-block:clamp(32px,5vw,64px)}

/* ---------- Related cards (image + title, no boxes) ---------- */
.related-row{border-top:2px solid var(--ink);padding-top:22px}
.related-row h2{font-size:var(--s-1);margin-bottom:18px}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px clamp(16px,2vw,28px);list-style:none;margin:0;padding:0}
.rel-grid a{display:grid;gap:10px;text-decoration:none;color:var(--ink)}
.rel-grid img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;background:var(--organ)}
.rel-grid strong{font-size:var(--s-0)}
.rel-grid span{font-size:var(--s--1);color:var(--ink-soft)}
.rel-grid a:hover strong{color:var(--artery);text-decoration:underline}

/* ---------- Services hub ---------- */
.cat{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(20px,4vw,64px);padding-block:clamp(28px,4vw,48px);border-top:1px solid var(--rule)}
.cat:first-of-type{border-top:2px solid var(--ink)}
.cat h2{font-size:var(--s-2);position:sticky;top:110px;align-self:start}
.cat p.soft{font-size:var(--s--1);margin-top:8px}
.svc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(20px,3vw,40px)}
.svc-list li{border-bottom:1px solid var(--rule)}
.svc-list a{display:grid;grid-template-columns:88px 1fr;gap:16px;align-items:center;padding-block:14px;text-decoration:none;color:var(--ink)}
.svc-list img{width:88px;height:66px;object-fit:cover;display:block;background:var(--organ)}
.svc-list strong{display:block;font-size:var(--s-0)}
.svc-list span{display:block;font-size:.9rem;color:var(--ink-soft);line-height:1.4;margin-top:2px}
.svc-list a:hover strong{color:var(--artery);text-decoration:underline}
@media (max-width:900px){.cat{grid-template-columns:1fr}.cat h2{position:static}}
@media (max-width:620px){.svc-list{grid-template-columns:1fr}}

/* ---------- Providers ---------- */
.profiles{display:grid;gap:clamp(40px,6vw,88px);padding-block:clamp(40px,6vw,88px)}
.profile{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,5vw,72px);align-items:center}
.profile:nth-child(even){grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
.profile:nth-child(even) figure{order:2}
.profile figure{margin:0}
.profile img{width:100%;height:auto;aspect-ratio:480/545;object-fit:cover;display:block}
.profile h2{font-size:var(--s-2)}
.profile .cred{font-family:var(--f-mono);font-size:.82rem;letter-spacing:.04em;color:var(--vein);margin-top:8px}
.profile p.bio{margin-top:16px;font-size:var(--s-1);line-height:1.5;color:var(--ink-soft);max-width:44ch}
@media (max-width:760px){.profile,.profile:nth-child(even){grid-template-columns:1fr}.profile:nth-child(even) figure{order:0}.profile figure{max-width:360px}}

/* ---------- Office blocks (contact, location) ---------- */
.office-photo{margin:0}
.office-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.loc-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,5vw,72px);align-items:start;padding-block:clamp(32px,5vw,64px);border-bottom:1px solid var(--rule)}
.loc-grid .office{padding:0}
@media (max-width:860px){.loc-grid{grid-template-columns:1fr}}
.nearest{border-top:2px solid var(--ink);padding-top:18px;display:grid;gap:10px}
.nearest .phone{font-size:var(--s-2);font-weight:800;text-decoration:none;color:var(--ink)}

/* ---------- Inline request form (contact page) ---------- */
.req{border-top:2px solid var(--ink);padding-top:22px;display:grid;gap:14px;max-width:640px}
.req h2{font-size:var(--s-1)}
.form fieldset{border:0;padding:0;margin:0;display:grid;gap:8px}
.form legend{font-size:var(--s--1);font-weight:700;margin-bottom:6px}
.radio-row{display:flex;gap:10px;flex-wrap:wrap}
.radio-row label{display:flex;align-items:center;gap:8px;font-weight:700;border:1px solid var(--control);padding:10px 14px;min-height:48px;cursor:pointer;border-radius:3px}
.radio-row input{width:20px;height:20px;min-height:0;accent-color:var(--ink)}
.hp{position:absolute;left:-9999px}

/* ---------- FAQ hub ---------- */
.faq-index{display:flex;flex-wrap:wrap;gap:8px 20px;padding-block:18px;border-bottom:1px solid var(--rule);font-weight:700;font-size:var(--s--1)}
.faq-group{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(20px,4vw,64px);padding-block:clamp(28px,4vw,48px);border-top:1px solid var(--rule)}
.faq-group:first-of-type{border-top:2px solid var(--ink)}
.faq-group h2{font-size:var(--s-2);position:sticky;top:110px;align-self:start;scroll-margin-top:110px}
.qa{display:grid;gap:26px}
.qa h3{font-size:var(--s-0);font-weight:800}
.qa p{color:var(--ink-soft);margin-top:6px;max-width:66ch}
@media (max-width:900px){.faq-group{grid-template-columns:1fr}.faq-group h2{position:static}}

/* ---------- Blog ---------- */
.post-lead{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,64px);align-items:center;padding-block:clamp(32px,5vw,64px);border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink)}
.post-lead img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;display:block}
.post-lead h2{font-size:var(--s-2)}
.post-lead:hover h2{color:var(--artery);text-decoration:underline}
.post-meta{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.post-list{list-style:none;margin:0;padding:0}
.post-list li{border-bottom:1px solid var(--rule)}
.post-list a{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:24px;align-items:center;padding-block:22px;text-decoration:none;color:var(--ink)}
.post-list img{width:200px;height:auto;aspect-ratio:1200/630;object-fit:cover;display:block}
.post-list h3{font-size:var(--s-1);margin-top:6px}
.post-list p{color:var(--ink-soft);font-size:var(--s--1);margin-top:6px}
.post-list a:hover h3{color:var(--artery);text-decoration:underline}
@media (max-width:760px){.post-lead{grid-template-columns:1fr}.post-lead figure{order:-1}.post-list a{grid-template-columns:1fr 110px;gap:14px}.post-list img{width:110px}}
.post-hero img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;display:block}
.post-hero{margin:0 0 8px}

/* ---------- CTA row (bottom of inner pages) ---------- */
.cta-row{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;border-top:2px solid var(--ink);padding-top:24px}
.cta-row h2{font-size:var(--s-2);max-width:20ch}
.cta-row .btns{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- 404 ---------- */
.nf{padding-block:clamp(56px,10vw,140px);display:grid;gap:18px;max-width:640px}

/* ---------- Analytics consent banner: match the site ---------- */
.analytics-consent-banner{border-radius:4px!important;border:2px solid var(--ink)!important;box-shadow:0 12px 38px rgba(0,0,0,.18)!important;font-family:var(--f-sans)!important;color:#16263A!important}
.analytics-consent-banner strong{color:#16263A!important}
.analytics-consent-actions button,.analytics-privacy-button{border-radius:3px!important;border-color:#16263A!important;color:#16263A!important;font-family:var(--f-sans)!important;min-height:44px}
.analytics-consent-actions button[data-consent=granted]{background:#16263A!important;color:#fff!important}
.analytics-privacy-button{min-height:36px}
@media (max-width:760px){.analytics-privacy-button{bottom:calc(76px + env(safe-area-inset-bottom))!important}.analytics-consent-banner{bottom:calc(76px + env(safe-area-inset-bottom))!important}}

/* ---------- Go-live audit fixes (WCAG 2.4.11 focus not obscured, 2.5.8 target size) ---------- */
html{scroll-padding-top:96px}
@media (max-width:760px){html{scroll-padding-bottom:88px}}
.crumbs a,.legal nav a,.faq-index a,.plate-foot a,.tests th a,.office-links a,.foot li a,.related a,.also a{display:inline-block;min-height:24px;padding-block:3px}
.radio-row input{width:24px;height:24px}
.foot .communities{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2)}
.foot .communities .fh{width:100%;margin:0}
.foot .communities a{display:inline-block;padding-block:5px;min-height:28px}
.foot{padding-bottom:96px}

/* ---------- Conversion additions: ratings, insurance link, inline booking prompts ---------- */
.rating{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);font-size:var(--s--1);min-height:28px}
.rating strong{font-size:var(--s-0)}
.rating:hover{text-decoration:underline}
.rating .star{width:18px;height:18px;fill:#B8860B;flex:none}
.ratings{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0}
.ins-link{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--vein);text-decoration:underline;text-underline-offset:.2em;padding-inline:4px}
.ins-link:hover{color:var(--artery)}
.hero-sub{margin:-8px 0 0}
.cta-inline{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding-block:16px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
.cta-inline p{margin:0;max-width:34ch}
.cta-inline .btns{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cta-inline .btn{min-height:48px;padding:10px 18px}
.book-box .ins-link{justify-self:start;min-height:32px}
.band .rating,.foot .rating{color:#fff}

/* ---------- Patient reviews ---------- */
.reviews{padding-block:clamp(40px,6vw,72px);border-top:1px solid var(--rule)}
.reviews-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 32px;margin-bottom:clamp(20px,3vw,32px)}
.reviews-head h2{margin:0}
.quotes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:0 clamp(20px,3vw,40px)}
.quotes li{border-top:2px solid var(--ink);padding:18px 0 26px}
.quotes li:first-child{border-top-color:var(--artery)}
.quotes figure{margin:0;display:flex;flex-direction:column;height:100%;gap:14px}
.quotes blockquote{margin:0}
.quotes blockquote p{margin:0;font-size:var(--s-0);line-height:1.6;color:var(--ink)}
.quotes blockquote p::before{content:"\201C"}
.quotes blockquote p::after{content:"\201D"}
.quotes figcaption{margin-top:auto;display:flex;flex-direction:column;gap:2px}
.quotes .who{font-weight:700}
.quotes .mono{font-size:var(--s--2,0.78rem)}
.reviews-note{margin:8px 0 0;font-size:var(--s--1)}
.reviews-note a{display:inline-block;min-height:24px;padding-block:2px}

/* ---------- Section rhythm (2026-09-30): alternating grounds and labels so sections read as distinct ---------- */
main > section{position:relative}
.tint,.reviews{background:var(--sheet);border-block:1px solid var(--rule)}
.reviews{border-top:1px solid var(--rule)}
.kicker{font-family:var(--f-mono);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--artery);margin:0 0 10px;display:flex;align-items:center;gap:10px}
.kicker::before{content:"";width:28px;height:2px;background:var(--artery);flex:none}
.band .kicker{color:#FFD27A}.band .kicker::before{background:#FFD27A}
.sec-head h2{margin-top:0}
.ins-home{padding-block:clamp(48px,6vw,88px)}
.ins-home h2{margin:0 0 18px}
.plans{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.plans li{background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--vein);padding:8px 14px;font-weight:600;font-size:var(--s-0)}
.plans li:last-child{border-left-color:var(--rule);font-weight:400;color:var(--ink-soft)}
.cta-row{margin-top:clamp(40px,5vw,64px);background:var(--sheet);border:1px solid var(--rule);border-top:3px solid var(--artery);padding:clamp(20px,3vw,32px)}
.cta-row h2{margin:0}

/* ---------- Footer and dark band accents: pink instead of yellow (2026-09-30) ---------- */
.foot .fh{color:#F28A9E;font-weight:700}
.band .kicker,.settings .mono{color:#F28A9E}.band .kicker::before{background:#F28A9E}
.band a:hover{color:#F28A9E}
.band :focus-visible,.foot :focus-visible{outline-color:#F28A9E}
.foot .btn-ink:hover{background:#F28A9E;border-color:#F28A9E;color:#16263A}
.foot-follow{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2)}
.sicons{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.sicons a{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);color:#fff;transition:background .15s,color .15s,border-color .15s}
.sicons a:hover{background:#F28A9E;border-color:#F28A9E;color:#16263A;text-decoration:none}
.sico{display:block;flex:none}

/* ---------- Follow us cards ---------- */
.follow-sec{padding-block:clamp(48px,6vw,88px)}
.follow-h{margin:0 0 10px}
.follow-intro{max-width:60ch;color:var(--ink-soft);margin:0 0 24px}
.follow-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:16px}
.fcard a{display:flex;gap:16px;align-items:flex-start;height:100%;padding:20px;background:var(--sheet);border:1px solid var(--rule);border-top:4px solid var(--brand,var(--vein));color:var(--ink);text-decoration:none;transition:box-shadow .15s,transform .15s}
.fcard a:hover{box-shadow:0 8px 24px rgba(22,38,58,.12);transform:translateY(-2px);color:var(--ink)}
.fcard-facebook{--brand:#1877F2}.fcard-instagram{--brand:#C13584}.fcard-youtube{--brand:#CC0000}
.fcard-ico{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff;flex:none}
.fcard-body{display:flex;flex-direction:column;gap:3px}
.fcard-name{font-weight:800;font-size:var(--s-1);line-height:1.2}
.fcard-handle{font-family:var(--f-mono);font-size:.82rem;color:var(--ink-soft)}
.fcard-blurb{margin-top:6px}
.fcard-cta{margin-top:10px;font-weight:700;color:var(--vein);text-decoration:underline;text-underline-offset:3px}
@media (prefers-reduced-motion:reduce){.fcard a,.sicons a{transition:none}.fcard a:hover{transform:none}}

/* Thank you states */
.done p{margin:0 0 10px}
.done-follow{margin-top:14px;padding-top:14px;border-top:1px solid var(--rule)}
.done-follow-h{font-weight:700}
.done .sicons a,.thanks .sicons a{border-color:var(--rule);color:var(--ink)}
.done .sicons a:hover{background:var(--vein);border-color:var(--vein);color:#fff}
.done .follow{margin-top:18px;padding-top:18px;border-top:1px solid var(--rule)}
.done .follow-list{grid-template-columns:1fr}
.thanks{padding-block:clamp(48px,7vw,96px);max-width:960px}
.thanks .lede-sm{max-width:62ch;font-size:var(--s-0);margin-bottom:36px}
.thanks .follow{margin-bottom:32px}

/* ---------- Vivian Hanna Foundation feature ---------- */
.vhf{background:#FBEFF2;border-block:1px solid #F0CBD4;padding-block:clamp(48px,7vw,96px)}
.vhf-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,5vw,72px);align-items:center}
.vhf-logo{background:#fff;border:1px solid #F0CBD4;padding:clamp(20px,3vw,36px);display:flex;justify-content:center}
.vhf-logo img{width:100%;max-width:320px;height:auto}
.vhf .kicker{color:#9F285F}.vhf .kicker::before{background:#C9377C}
.vhf h2{margin:0 0 14px}
.vhf-lead{font-size:var(--s-0);max-width:62ch;margin:0 0 22px}
.vhf-points{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:14px}
.vhf-points li{background:#fff;border:1px solid #F0CBD4;border-top:3px solid #C9377C;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.vhf-points strong{color:#5F183D}
.vhf-points span{font-size:var(--s--1);color:var(--ink-soft)}
.vhf-event{background:#fff;border-left:4px solid #C9377C;padding:14px 18px;margin:0 0 22px}
.vhf-event p{margin:0}
.vhf-event-t{font-weight:800;color:#5F183D;margin-bottom:4px!important}
.vhf .btns{display:flex;flex-wrap:wrap;gap:12px}
.btn-vhf{background:#9F285F;border-color:#9F285F;color:#fff}
.btn-vhf:hover{background:#5F183D;border-color:#5F183D;color:#fff}
@media (max-width:880px){.vhf-grid{grid-template-columns:1fr}.vhf-logo{max-width:360px}}
.foot ul.sicons,.done ul.sicons,.thanks ul.sicons{display:flex;flex-wrap:wrap;gap:12px}
.foot .sicons li a,.done .sicons li a{display:inline-flex;align-items:center;justify-content:center;padding:0;min-height:48px}
.foot-follow .fh{margin-bottom:14px}
[hidden]{display:none!important}
.fcard-tiktok{--brand:#111111}

/* ---------- Synergy Health sister practice (uses Synergy's brand tokens) ---------- */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-500.woff2) format("woff2")}
.syn{--sh-navy:#16283F;--sh-clinic:#26456B;--sh-champ:#A8874F;--sh-champ-deep:#7A6034;--sh-alabaster:#FAF8F5;--sh-mist:#D9D4CC;background:var(--sh-alabaster);border-block:1px solid var(--sh-mist);padding-block:clamp(48px,7vw,96px)}
.syn-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:center}
.syn-logo{background:#FDFCFC;border:1px solid var(--sh-mist);border-radius:2px;display:flex;justify-content:center;padding:clamp(8px,2vw,20px)}
.syn-logo img{width:100%;max-width:440px;height:auto}
.syn-eyebrow{font-family:var(--f-mono);font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#7A6034;margin:0 0 10px}
.syn h2{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2rem,4vw,2.75rem);line-height:1.12;color:var(--sh-navy);margin:0 0 14px;letter-spacing:-.006em}
.syn-lead{font-size:var(--s-0);max-width:60ch;color:#2A3442;margin:0 0 22px}
.syn-pillars{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.syn-pillars a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:#fff;border:1px solid var(--sh-mist);border-top:2px solid var(--sh-champ);border-radius:2px;text-decoration:none;color:var(--sh-navy);min-height:48px;transition:border-color .15s,box-shadow .15s}
.syn-pillars a:hover{border-color:var(--sh-champ);box-shadow:0 12px 32px -20px rgba(11,22,34,.35);color:var(--sh-navy)}
.syn-p-name{font-weight:700}
.syn-p-sub{font-size:var(--s--1);color:#7A6034}
.syn-btns{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.syn-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 22px;border:2px solid var(--sh-navy);border-radius:2px;background:var(--sh-navy);color:#fff;font-weight:700;text-decoration:none}
.syn-btn:hover{background:var(--sh-clinic);border-color:var(--sh-clinic);color:#fff}
.syn-btn-line{background:transparent;color:var(--sh-navy)}
.syn-btn-line:hover{background:var(--sh-navy);color:#fff}
.syn-note{font-size:var(--s--1);color:#5A6474;margin:0}
.syn :focus-visible{outline-color:var(--sh-navy)}
@media (max-width:880px){.syn-grid{grid-template-columns:1fr}.syn-logo{max-width:440px}}
@media (max-width:480px){.syn-pillars{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.syn-pillars a{transition:none}}
/* Compact note on related pages */
.syn-note-card{display:flex;gap:18px;align-items:center;margin-block:clamp(28px,4vw,48px) 0;padding:18px 20px;background:#FAF8F5;border:1px solid #D9D4CC;border-left:3px solid #A8874F;border-radius:2px;max-width:820px}
.syn-note-card img{width:88px;height:88px;flex:none;border-radius:2px;background:#FDFCFC}
.syn-note-card p{margin:0 0 6px}
.syn-note-card a{font-weight:700;color:#16283F;text-underline-offset:3px}
.syn-note-card a:hover{color:#26456B}
@media (max-width:520px){.syn-note-card{flex-direction:column;align-items:flex-start}}
