/* The Destination Smile — V3 site system. One stylesheet for every page. */
:root{
  --emerald:#073E3A; --emerald-deep:#04302D; --emerald-night:#032321;
  --ink:#0B2F2C; --text:#2A4744; --muted:#51655F;
  --white:#fff; --soft:#F8FAF7; --mist:#EDF2ED;
  --gold:#BF923A; --gold-text:#8A651E; --gold-pale:#DDBA65; --cream:#F6ECD4;
  --line:rgba(7,62,58,.16); --line-strong:rgba(7,62,58,.32); --line-gold:rgba(191,146,58,.6);
  --line-on-dark:rgba(255,255,255,.2);
  --serif:"Newsreader","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:"Albert Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --shell:1320px; --gutter:clamp(20px,5vw,72px);
  --section:clamp(72px,10vw,152px);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--sans);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0 0 1.25em}
p:last-child{margin-bottom:0}
h1,h2,h3,h4{font-family:var(--serif);font-weight:300;color:var(--ink);margin:0;letter-spacing:-.018em;text-wrap:balance}
h1{font-size:clamp(2.85rem,7.1vw,6.6rem);line-height:.98;letter-spacing:-.03em}
h2{font-size:clamp(2.2rem,4.5vw,4.1rem);line-height:1.04;letter-spacing:-.025em}
h3{font-size:clamp(1.4rem,1.9vw,1.75rem);line-height:1.2;font-weight:400}
h4{font-size:1.25rem;line-height:1.3;font-weight:400}
h1 em,h2 em,.band-lines em{font-style:italic;font-weight:300;color:var(--gold-text)}
ul,ol{margin:0;padding:0}
address{font-style:normal}
:focus-visible{outline:2px solid var(--gold-text);outline-offset:3px;border-radius:1px}
.on-dark :focus-visible,.utility :focus-visible{outline-color:var(--gold-pale)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:16px;top:-80px;z-index:100;background:var(--emerald);color:#fff;padding:12px 18px;text-decoration:none}
.skip-link:focus{top:12px}
.shell{width:100%;max-width:calc(var(--shell) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}

/* ---------- shared atoms ---------- */
.eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 28px;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.eyebrow::before{content:"";flex:none;width:36px;height:1px;background:var(--gold)}
.on-dark .eyebrow{color:var(--gold-pale)}
.lede{font-family:var(--serif);font-size:clamp(1.3rem,1.9vw,1.6rem);line-height:1.42;color:var(--ink);font-weight:400;letter-spacing:-.008em}
.on-dark{color:rgba(255,255,255,.86)}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4,.on-dark .lede{color:#fff}
.on-dark h1 em,.on-dark h2 em,.on-dark .band-lines em{color:var(--gold-pale)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:56px;padding:16px 30px;background:var(--emerald);color:#fff;border:1px solid var(--emerald);font-family:var(--sans);font-size:.9375rem;font-weight:600;letter-spacing:.02em;text-decoration:none;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.button::after{content:"";width:18px;height:1px;background:currentColor;box-shadow:0 0 0 0 currentColor;transition:width .25s var(--ease)}
.button:hover{background:var(--emerald-night);border-color:var(--emerald-night)}
.button:hover::after{width:28px}
.button--light{background:#fff;color:var(--emerald);border-color:#fff}
.button--light:hover{background:var(--cream);border-color:var(--cream);color:var(--emerald-night)}
.button--small{min-height:46px;padding:11px 22px;font-size:.875rem}
.link{display:inline-flex;align-items:center;gap:12px;padding:6px 0;font-weight:600;font-size:.9375rem;letter-spacing:.01em;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);transition:gap .25s var(--ease),border-color .25s}
.link::after{content:"";width:16px;height:1px;background:currentColor;transition:width .25s var(--ease)}
.link:hover::after{width:26px}
.on-dark .link{color:#fff;border-color:var(--gold-pale)}
.phone-link{font-family:var(--serif);font-size:1.375rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-gold);white-space:nowrap}
.phone-link:hover{border-color:var(--gold-text)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;margin-top:40px}
.caption{margin:12px 0 0;font-size:.8125rem;line-height:1.5;color:var(--muted);letter-spacing:.01em}
.on-dark .caption{color:rgba(255,255,255,.78)}
.fine{font-size:.9375rem;line-height:1.6;color:var(--muted)}
.on-dark .fine{color:rgba(255,255,255,.78)}
.prose a,.ledger a,.faq-list a,.fine a,.consult a:not(.button),.stage a{color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px;text-decoration-thickness:1px}
.prose a:hover,.ledger a:hover,.faq-list a:hover,.fine a:hover{text-decoration-color:currentColor}

/* ---------- header ---------- */
.utility{background:var(--emerald-night);color:rgba(255,255,255,.86);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.utility .shell{display:flex;justify-content:space-between;gap:24px;padding-block:9px}
.utility a{color:#fff;text-decoration:none}
.utility a:hover{color:var(--gold-pale)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:clamp(20px,3vw,48px);min-height:92px}
.brand{flex:none;display:block;line-height:0}
.brand img{height:62px;width:auto}
.nav{display:flex;gap:clamp(18px,2.2vw,36px);margin-left:auto}
.nav a{position:relative;padding:8px 0;font-size:.9375rem;font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.header-phone{font-family:var(--serif);font-size:1.125rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.header-phone:hover{color:var(--gold-text)}
.menu{display:none}
.menu summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:48px;padding:0 4px;font-weight:600;font-size:.9375rem;color:var(--ink);cursor:pointer}
.menu summary::-webkit-details-marker{display:none}
.menu summary::before{content:"";width:22px;height:9px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.menu[open] summary::before{height:0;border-bottom:0}
.menu-panel{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px var(--gutter) 28px;max-height:calc(100vh - 120px);overflow:auto}
.menu-panel a{display:flex;justify-content:space-between;align-items:center;min-height:56px;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:1.375rem;color:var(--ink);text-decoration:none}
.menu-panel a.button{margin-top:22px;border:1px solid var(--emerald);font-family:var(--sans);font-size:.9375rem;color:#fff;justify-content:center}

/* ---------- home hero ---------- */
.hero{position:relative;padding-top:clamp(40px,6vw,88px);padding-bottom:clamp(56px,7vw,104px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);align-items:center}
.hero h1{margin-bottom:36px}
.hero .lede{max-width:25em}
.hero-body{max-width:33em;margin-top:20px}
.hero-qualifier{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);max-width:33em}
.hero-figure{position:relative;margin:0}
.arch-wrap{position:relative;padding:16px 16px 0}
.arch-wrap::before{content:"";position:absolute;inset:0;border:1px solid var(--gold);border-bottom:0;border-radius:999px 999px 0 0;pointer-events:none}
.arch-frame{border-radius:999px 999px 0 0;overflow:hidden;aspect-ratio:4/5;background:var(--mist)}
.arch-frame img{width:100%;height:100%;object-fit:cover}
.hero-figure .caption{text-align:right}
.doctor-chip{position:absolute;left:-56px;bottom:56px;display:flex;align-items:center;gap:18px;padding:16px 26px 16px 16px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:border-color .25s}
.doctor-chip:hover{border-color:var(--gold)}
.doctor-chip img{width:76px;height:76px;border-radius:50%;object-fit:cover;object-position:50% 22%}
.doctor-chip span{display:block}
.chip-kicker{font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text)}
.chip-name{font-family:var(--serif);font-size:1.3125rem;line-height:1.25}
.chip-role{font-size:.875rem;color:var(--muted)}
.assurances{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.assurances ul{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.assurances li{padding:28px 32px 28px 0;font-family:var(--serif);font-size:1.1875rem;line-height:1.35;color:var(--ink)}
.assurances li+li{padding-left:32px;border-left:1px solid var(--line)}
.assurances small{display:block;margin-top:4px;font-family:var(--sans);font-size:.9375rem;color:var(--muted)}

/* ---------- photographic band ---------- */
.band{position:relative;isolation:isolate;display:flex;align-items:stretch;min-height:min(92vh,820px);background:var(--emerald-night);color:#fff;overflow:hidden}
.band picture,.band>img{position:absolute;inset:0;z-index:-2}
.band img{width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,35,33,.72) 0%,rgba(3,35,33,.35) 34%,rgba(3,35,33,0) 50%),linear-gradient(0deg,rgba(3,35,33,.82) 0%,rgba(3,35,33,0) 40%)}
.band-inner{display:flex;flex-direction:column;justify-content:space-between;gap:48px;padding-block:clamp(56px,6.5vw,96px) clamp(48px,5vw,72px)}
.band-lines{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,3.7vw,3.5rem);line-height:1.16;letter-spacing:-.022em;color:#fff;max-width:22em}
.band-lines span{display:block}
.band-note{margin:0;max-width:30em;padding-top:20px;border-top:1px solid var(--gold-pale);color:rgba(255,255,255,.92)}
.band--short{min-height:min(70vh,600px)}
.band .caption{position:absolute;right:var(--gutter);bottom:18px;margin:0;color:rgba(255,255,255,.8)}

/* ---------- sections ---------- */
.section{padding-block:var(--section)}
.section--soft{background:var(--soft)}
.section--tight{padding-block:clamp(56px,7vw,104px)}
.dark{background:var(--emerald);position:relative}
.arched{border-radius:50% 50% 0 0/clamp(36px,6vw,104px) clamp(36px,6vw,104px) 0 0}
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);row-gap:48px;align-items:center}
.split-media{grid-column:1/7;margin:0}
.split-copy{grid-column:8/13}
.split--flip .split-media{grid-column:7/13;order:2}
.split--flip .split-copy{grid-column:1/6;order:1}
.split--top{align-items:start}
.split-media img{width:100%}
.split-copy h2{margin-bottom:32px}
.split-copy .lede{margin-bottom:24px}
.split-copy .link,.prose .link{margin-top:32px}
.pull-up{margin-top:calc(-1*clamp(96px,13vw,208px));position:relative;z-index:2}
.media-frame{position:relative}
.media-frame+.caption{margin-top:30px}
.media-frame::after{content:"";position:absolute;left:-16px;bottom:-16px;width:42%;height:42%;border-left:1px solid var(--gold);border-bottom:1px solid var(--gold);pointer-events:none}
.split--flip .media-frame::after{left:auto;right:-16px;border-left:0;border-right:1px solid var(--gold)}
.section-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);row-gap:24px;align-items:end;margin-bottom:clamp(48px,6vw,88px)}
.section-head>div{grid-column:1/8}
.section-head>p{grid-column:9/13;margin:0}
.prose{max-width:44rem}
.prose h2{font-size:clamp(1.9rem,3vw,2.75rem);margin:2.2em 0 .7em}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.8em 0 .5em}
.prose ul,.prose ol{margin:0 0 1.25em 1.2em}
.prose li{margin-bottom:.5em;padding-left:.3em}
.prose li::marker{color:var(--gold-text)}
.notice{margin:2em 0;padding:24px 28px;border:1px solid var(--line-strong);border-left:2px solid var(--gold);background:var(--soft);font-size:.9375rem;line-height:1.6;color:var(--ink)}

/* ledger: hairline definition rows */
.ledger{margin:0;border-bottom:1px solid var(--line)}
.ledger>div{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:8px clamp(20px,3vw,48px);padding:26px 0;border-top:1px solid var(--line)}
.ledger dt{font-family:var(--serif);font-size:clamp(1.25rem,1.6vw,1.5rem);line-height:1.25;color:var(--ink)}
.ledger dd{margin:0}
.on-dark .ledger,.on-dark .ledger>div{border-color:var(--line-on-dark)}
.on-dark .ledger dt{color:#fff}
.ledger--stack>div{grid-template-columns:1fr}
.split-copy .ledger{margin-top:40px}

/* stages: one line, several moments */
.stages{list-style:none;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));border-top:1px solid var(--gold)}
.stage{position:relative;padding:36px clamp(16px,2.2vw,36px) 0 0}
.stage::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.stage-label{display:block;margin-bottom:18px;font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.stage h3{margin-bottom:14px}
.stage p{font-size:1rem}
.on-dark .stage-label{color:var(--gold-pale)}

/* duo of craft images */
.duo{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);row-gap:32px;margin-top:clamp(64px,8vw,120px);align-items:start}
.duo figure{margin:0}
.duo figure:first-child{grid-column:1/6;margin-top:clamp(40px,6vw,96px)}
.duo figure:last-child{grid-column:6/13}

/* inset panel (comfort) */
.panel{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);margin-top:clamp(72px,9vw,136px);padding:clamp(40px,6vw,96px) clamp(24px,5vw,80px);background:var(--emerald-night);overflow:hidden}
.panel picture{position:absolute;inset:0;z-index:-2}
.panel picture img{width:100%;height:100%;object-fit:cover}
.panel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,35,33,.94) 0%,rgba(3,35,33,.78) 44%,rgba(3,35,33,.1) 86%)}
.panel-copy{grid-column:1/8}
.panel-copy h2{margin-bottom:28px}

/* faq */
.faq{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);row-gap:48px;align-items:start}
.faq-head{grid-column:1/5;position:sticky;top:132px}
.faq-head h2{margin-bottom:28px}
.faq-list{grid-column:6/13;border-bottom:1px solid var(--line)}
.faq-list details{border-top:1px solid var(--line)}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font-family:var(--serif);font-size:clamp(1.25rem,1.6vw,1.5rem);line-height:1.3;color:var(--ink);cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";flex:none;width:17px;height:17px;background:linear-gradient(var(--gold-text),var(--gold-text)) center/100% 1px no-repeat,linear-gradient(var(--gold-text),var(--gold-text)) center/1px 100% no-repeat;transition:transform .3s var(--ease)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list summary:hover{color:var(--emerald)}
.faq-answer{padding:0 56px 30px 0;max-width:42rem}

/* consultation: the same closing on every page */
.consult{position:relative;background:var(--emerald);padding-block:clamp(88px,11vw,168px) clamp(72px,9vw,128px);overflow:hidden}
.consult-arc{position:absolute;left:50%;top:clamp(28px,4vw,56px);width:min(1180px,92vw);transform:translateX(-50%);opacity:.9;pointer-events:none}
.consult-grid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);row-gap:56px;align-items:start}
.consult-copy{grid-column:1/7}
.consult-copy h2{margin-bottom:28px}
.consult-phone{display:inline-block;margin:36px 0 8px;font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,4.4vw,4rem);line-height:1;letter-spacing:-.02em;color:#fff;text-decoration:none!important;border-bottom:1px solid var(--gold-pale);padding-bottom:10px}
.consult-phone:hover{color:var(--gold-pale)}
.consult-info{grid-column:8/13}
.consult-info .ledger dt{font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-pale);padding-top:5px}
.consult-info .ledger>div{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
.consult-info .ledger dd{color:#fff}
.hours{display:grid;grid-template-columns:auto 1fr;gap:4px 24px;margin:0}
.hours dt,.hours dd{margin:0;font:inherit!important;letter-spacing:0!important;text-transform:none!important;color:#fff!important;padding:0!important}

/* everyday care strip */
.everyday{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);row-gap:32px;align-items:start}
.everyday-head{grid-column:1/6}
.everyday-head h2{font-size:clamp(1.9rem,3vw,2.75rem);margin-bottom:20px}
.everyday-list{grid-column:7/13;list-style:none;border-bottom:1px solid var(--line)}
.everyday-list a{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:22px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);transition:padding .3s var(--ease)}
.everyday-list a:hover{padding-left:12px}
.everyday-list strong{font-family:var(--serif);font-weight:400;font-size:clamp(1.25rem,1.6vw,1.5rem)}
.everyday-list span{font-size:.9375rem;color:var(--muted);text-align:right}

/* ---------- sub-page hero ---------- */
.page-hero{padding-top:clamp(48px,6vw,96px);padding-bottom:clamp(56px,7vw,104px)}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);align-items:end}
.page-hero h1{font-size:clamp(2.6rem,5.6vw,5.1rem);line-height:1.02;margin-bottom:32px}
.page-hero .lede{max-width:30em}
.page-hero-figure{margin:0}
.page-hero--plain .page-hero-grid{grid-template-columns:minmax(0,9fr) minmax(0,3fr)}
.page-hero--plain{border-bottom:1px solid var(--line);padding-bottom:clamp(40px,5vw,72px)}
.crumb{display:block;margin-bottom:clamp(28px,4vw,56px);font-size:.8125rem;color:var(--muted)}
.crumb a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line-gold)}
.crumb a:hover{color:var(--ink)}
.urgent{margin-top:32px;padding:20px 24px;border:1px solid var(--line-strong);border-left:2px solid var(--gold);max-width:36em;font-size:1rem;color:var(--ink)}

/* services index */
.care-group{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);row-gap:24px;padding-block:clamp(48px,6vw,88px);border-top:1px solid var(--line-strong)}
.care-group:first-of-type{border-top:0;padding-top:0}
.care-group>header{grid-column:1/5}
.care-group>header h2{font-size:clamp(1.9rem,3vw,2.75rem);margin-bottom:16px}
.care-group>.ledger{grid-column:6/13}

/* ---------- footer ---------- */
.site-footer{background:var(--soft);border-top:1px solid var(--line);padding-block:clamp(56px,7vw,96px) 40px;font-size:.9375rem}
.footer-top{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2.6fr));gap:40px clamp(24px,3vw,48px)}
.footer-brand img{height:84px;width:auto}
.footer-brand p{margin-top:24px;font-family:var(--serif);font-size:1.1875rem;line-height:1.4;color:var(--ink);max-width:16em}
.site-footer h2{margin-bottom:18px;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.site-footer ul{list-style:none}
.site-footer li a,.site-footer address a{display:inline-block;padding:5px 0;color:var(--ink);text-decoration:none}
.site-footer li a:hover,.site-footer address a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.site-footer address{color:var(--ink);line-height:1.7}
.footer-legal{margin-top:clamp(40px,5vw,72px);padding-top:28px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px 48px;font-size:.8125rem;line-height:1.65;color:var(--muted)}
.footer-legal p{margin:0 0 6px}
.footer-legal strong{color:var(--ink);font-weight:600}
.footer-policies{display:flex;flex-wrap:wrap;gap:6px 22px;justify-content:flex-end;align-content:start}
.footer-policies a{color:var(--muted);text-decoration:none;padding:3px 0;border-bottom:1px solid transparent}
.footer-policies a:hover{color:var(--ink);border-color:var(--gold)}
.mobile-actions{display:none}

/* ---------- motion ---------- */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .js .reveal{opacity:1;transform:none}
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav,.header-phone{display:none}
  .header-inner{min-height:80px}
  .header-inner .button{margin-left:auto}
  .menu{display:block}
  .brand img{height:54px}
  .doctor-chip{left:-24px}
}
@media (max-width:900px){
  .hero-grid,.page-hero-grid,.page-hero--plain .page-hero-grid{grid-template-columns:minmax(0,1fr)}
  .hero-figure{max-width:520px;width:100%;margin-inline:auto}
  .page-hero-figure{max-width:440px}
  .doctor-chip{left:0;bottom:40px}
  .split-media,.split-copy,.split--flip .split-media,.split--flip .split-copy{grid-column:1/-1}
  .split--flip .split-media{order:0}
  .split-media.arch-wrap{max-width:440px}
  .section-head>div,.section-head>p{grid-column:1/-1}
  .stages{grid-template-columns:minmax(0,1fr);border-top:0;border-left:1px solid var(--gold);margin-left:4px}
  .stage{padding:0 0 40px 32px}
  .stage:last-child{padding-bottom:0}
  .stage::before{top:6px;left:-5px}
  .duo figure:first-child,.duo figure:last-child{grid-column:1/-1;margin-top:0}
  .panel-copy{grid-column:1/-1}
  .panel::after{background:linear-gradient(0deg,rgba(3,35,33,.95) 0%,rgba(3,35,33,.82) 60%,rgba(3,35,33,.45) 100%)}
  .faq-head,.faq-list{grid-column:1/-1;position:static}
  .consult-copy,.consult-info{grid-column:1/-1}
  .everyday-head,.everyday-list{grid-column:1/-1}
  .care-group>header,.care-group>.ledger{grid-column:1/-1}
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand{grid-column:1/-1}
  .footer-legal{grid-template-columns:minmax(0,1fr)}
  .footer-policies{justify-content:flex-start}
  .assurances ul{grid-template-columns:minmax(0,1fr)}
  .assurances li,.assurances li+li{padding:20px 0;border-left:0}
  .assurances li+li{border-top:1px solid var(--line)}
  .band::after{background:linear-gradient(180deg,rgba(3,35,33,.8) 0%,rgba(3,35,33,.4) 40%,rgba(3,35,33,0) 55%),linear-gradient(0deg,rgba(3,35,33,.88) 0%,rgba(3,35,33,0) 45%)}
  .pull-up{margin-top:calc(-1*clamp(64px,16vw,120px))}
}
@media (max-width:760px){
  body{font-size:1rem;padding-bottom:64px}
  .utility .shell{justify-content:center}
  .utility .utility-contact{display:none}
  .header-inner .button{display:none}
  .menu{margin-left:auto}
  .header-inner{min-height:72px}
  .brand img{height:48px}
  .actions{gap:20px}
  .actions .button{width:100%}
  .ledger>div,.consult-info .ledger>div{grid-template-columns:minmax(0,1fr);padding:22px 0}
  .faq-answer{padding-right:0}
  .everyday-list a{flex-direction:column;gap:2px}
  .everyday-list span{text-align:left}
  .media-frame::after{left:-8px;bottom:-8px}
  .split--flip .media-frame::after{right:-8px}
  .band .caption{left:var(--gutter);right:var(--gutter);bottom:12px}
  .band-inner{padding-bottom:64px}
  .mobile-actions{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;background:var(--emerald-night)}
  .mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:64px;padding:8px 10px;color:#fff;font-weight:600;font-size:.9375rem;text-decoration:none;text-align:center}
  .mobile-actions a+a{background:var(--cream);color:var(--emerald-night)}
}
@media (max-width:480px){
  .footer-top{grid-template-columns:minmax(0,1fr)}
  .doctor-chip{position:relative;left:auto;bottom:auto;margin:-36px 12px 0;z-index:2}
  .hero-figure .caption{text-align:left}
  .chip-name{font-size:1.1875rem}
  .doctor-chip img{width:64px;height:64px}
}
@media print{.site-header,.utility,.mobile-actions,.consult-arc{display:none}}

/* ---------- round 2 refinements ---------- */
.media-tall img{aspect-ratio:4/3;object-fit:cover}
.options{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(56px,7vw,104px);border-top:1px solid var(--line-strong)}
.options li{padding:28px clamp(16px,2.4vw,40px) 4px 0}
.options li+li{padding-left:clamp(16px,2.4vw,40px);border-left:1px solid var(--line)}
.options strong{display:block;margin-bottom:8px;font-family:var(--serif);font-weight:400;font-size:clamp(1.25rem,1.6vw,1.5rem);line-height:1.25;color:var(--ink)}
.options-label{margin:clamp(56px,7vw,104px) 0 0;font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.options-label+.options{margin-top:18px}
.grounded{padding-bottom:0}
.grounded .split{align-items:end}
.grounded .split-copy{padding-bottom:var(--section)}
.faq-head{grid-column:1/6}
.faq-head h2{font-size:clamp(2.1rem,3.6vw,3.3rem)}
.faq-list{grid-column:7/13}
.consult-arc{top:clamp(30px,4.4vw,70px);width:min(420px,60vw)}
.consult{padding-top:clamp(120px,13vw,200px)}
.consult-copy{grid-column:1/7}
.consult-info{grid-column:8/13}
.consult-info .ledger>div{grid-template-columns:minmax(0,1fr);gap:10px}
.consult-info .ledger dt{padding-top:0}
.hours dd{white-space:nowrap}
.footer-legal{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
@media (max-width:900px){
  .options{grid-template-columns:minmax(0,1fr)}
  .options li,.options li+li{padding:22px 0;border-left:0}
  .options li+li{border-top:1px solid var(--line)}
  .grounded .split-copy{padding-bottom:0}
  .grounded .split-media{margin-top:16px}
  .faq-head,.faq-list{grid-column:1/-1}
  .consult-copy,.consult-info{grid-column:1/-1}
  .footer-legal{grid-template-columns:minmax(0,1fr)}
  .media-tall img{aspect-ratio:4/3}
}
@media (max-width:420px){.hours{grid-template-columns:minmax(0,1fr);gap:0}.hours dd{margin-bottom:10px!important}}
.split-copy.cost-copy{grid-column:1/6}
.cost-list{grid-column:7/13}
@media (max-width:900px){.split-copy.cost-copy,.cost-list{grid-column:1/-1}}

/* ---------- people band + rendered figures ---------- */
.band--people{min-height:min(92vh,760px)}
.band--people picture{left:auto;right:0;width:72%}
.band--people img{object-position:70% 50%}
.band--people::after{background:linear-gradient(90deg,var(--emerald-night) 0%,var(--emerald-night) 28%,rgba(3,35,33,.86) 40%,rgba(3,35,33,.25) 62%,rgba(3,35,33,0) 78%),linear-gradient(0deg,rgba(3,35,33,.55) 0%,rgba(3,35,33,0) 30%)}
.band--people .band-lines{max-width:11.5em;font-size:clamp(1.9rem,3.2vw,3rem)}
.band--people .band-lines span+span{margin-top:.5em}
.band--people .band-note{max-width:24em}
.faq-figure,.everyday-figure{margin:clamp(32px,4vw,56px) 0 0;max-width:340px}
.faq-figure img,.everyday-figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:900px){
  .band--people{display:block;min-height:0}
  .band--people picture{position:relative;display:block;width:100%;z-index:0}
  .band--people img{aspect-ratio:4/3;height:auto}
  .band--people::after{display:none}
  .band--people .band-inner{padding-block:40px 64px}
  .band--people .band-lines{max-width:none}
  .band--people .caption{position:static;padding:0 var(--gutter) 20px}
  .faq-figure,.everyday-figure{max-width:280px}
}

/* ---------- pass 2 ---------- */
.wide-figure{margin:clamp(56px,7vw,104px) 0 0 auto;max-width:820px}
.wide-figure img{width:100%}
.consult-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--line-on-dark)}
.consult-steps li{padding-top:22px;font-size:1rem;line-height:1.55;color:rgba(255,255,255,.9)}
.consult-steps span{display:block;margin-bottom:8px;font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-pale)}
.link{min-height:48px}
.phone-link{display:inline-flex;align-items:center;min-height:48px}
.site-footer li a,.site-footer address a{padding:11px 0}
.footer-policies a{padding:13px 0}
.crumb a{display:inline-block;padding:13px 0}
.crumb{margin-bottom:clamp(14px,3vw,42px)}
.consult-info a{display:inline-block;padding:12px 0}
@media (max-width:760px){.consult-steps{grid-template-columns:minmax(0,1fr)}.consult-steps li{padding:18px 0;border-bottom:1px solid var(--line-on-dark)}.consult-steps{border-top:1px solid var(--line-on-dark)}}
.crumb a{border-bottom:0;text-decoration:underline;text-decoration-color:var(--line-gold);text-underline-offset:4px}

/* ---------- pass 4 ---------- */
.path-pause{margin-top:clamp(64px,8vw,120px)}
.path-pause .split-media{grid-column:1/6}
.path-pause .split-copy{grid-column:7/13}
.path-pause .band-lines{font-size:clamp(1.9rem,3.4vw,3.1rem);max-width:13em}
.path-pause .band-lines em{color:var(--gold-text)}
.panel::after{background:linear-gradient(90deg,rgba(3,35,33,.9) 0%,rgba(3,35,33,.72) 40%,rgba(3,35,33,.12) 68%,rgba(3,35,33,0) 100%)}
.band:not(.band--people)::after{background:linear-gradient(180deg,rgba(3,35,33,.78) 0%,rgba(3,35,33,.45) 38%,rgba(3,35,33,0) 58%),linear-gradient(0deg,rgba(3,35,33,.86) 0%,rgba(3,35,33,.2) 42%,rgba(3,35,33,0) 60%)}
.band:not(.band--people) .band-note{text-shadow:0 1px 14px rgba(3,35,33,.7)}
.page-hero-figure .arch-frame img{object-position:62% 50%}
@media (max-width:900px){.path-pause .split-media,.path-pause .split-copy{grid-column:1/-1}
  .panel::after{background:linear-gradient(0deg,rgba(3,35,33,.93) 0%,rgba(3,35,33,.8) 60%,rgba(3,35,33,.5) 100%)}}
@media (max-width:900px){.panel::after{background:linear-gradient(0deg,rgba(3,35,33,.9) 0%,rgba(3,35,33,.7) 55%,rgba(3,35,33,.35) 100%)}.panel picture img{object-position:30% 50%}}

/* ---------- pass 5 ---------- */
.photo-tag{position:absolute;right:30px;bottom:14px;z-index:1;font-size:.8125rem;line-height:1.3;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.75),0 0 2px rgba(0,0,0,.6);letter-spacing:.01em}
.hero-figure .arch-frame{position:relative}
.hero-figure .arch-frame::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;background:linear-gradient(0deg,rgba(3,35,33,.55),rgba(3,35,33,0));pointer-events:none}
.band,.panel{background:radial-gradient(120% 90% at 78% 40%,#0c4a44 0%,#06302d 46%,#032321 100%)}
@media (max-width:480px){.doctor-chip{margin:14px 0 0}}
