:root{--sand:#f7f1e7;--sand2:#efe5d4;--shell:#fffdf8;--ink:#2b3a3a;--muted:#5b6b69;--teal:#3a78b5;--teal-d:#275a8c;--coral:#e0876a;--coral-ink:#9c4a2b;--r:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--sand);color:var(--ink);font:400 17px/1.65 "Nunito Sans",system-ui,sans-serif;overflow-x:hidden;padding-bottom:calc(80px + env(safe-area-inset-bottom))}
h1,h2,h3{font-family:Bitter,Georgia,serif;font-weight:600;line-height:1.2;color:var(--teal-d)}
h1{font-size:2.1rem;margin:.3em 0}h2{font-size:1.6rem;margin:0 0 .5em}h3{font-size:1.2rem;margin:.2em 0}
a{color:var(--teal-d)}img,video{max-width:100%;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
section{padding:48px 0}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border-radius:999px;background:linear-gradient(180deg,#3a78b5,#275a8c);color:#fff;font-weight:700;text-decoration:none}
.btn:hover{background:#1f4b76}.btn.ghost{background:transparent;color:var(--teal-d);border:2px solid var(--teal)}
header.top{background:var(--shell);border-bottom:1px solid var(--sand2)}
header.top .wrap{display:flex;justify-content:space-between;align-items:center;min-height:64px;gap:12px}
.logo{font-family:Bitter,Georgia,serif;font-weight:600;color:var(--teal-d);text-decoration:none}
.top nav{display:none}.top nav a{margin-left:18px;text-decoration:none;font-weight:600;padding:12px 0}
.hero{background:radial-gradient(circle at 85% 10%,#cfe4f6 0,transparent 55%),var(--sand)}
.eyebrow{color:var(--coral-ink);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}
.card{background:var(--shell);border-radius:var(--r);padding:24px;box-shadow:0 6px 24px rgba(43,58,58,.06)}
.vid{border-radius:var(--r);overflow:hidden;background:#000;aspect-ratio:16/9}.vid video{width:100%;height:100%}
.grid{display:grid;gap:20px}
.chips{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none}
.chips li{padding:0;border:0;background:none}.chips a{display:flex;align-items:center;min-height:46px;padding:0 18px;background:var(--shell);border:1px solid var(--sand2);border-radius:999px;text-decoration:none;font-weight:600;color:var(--teal-d)}
.steps{counter-reset:s;list-style:none;padding:0}.steps li{counter-increment:s;position:relative;padding-left:52px;margin-bottom:18px}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:700}
.price{font-family:Bitter,Georgia,serif;font-size:3rem;color:var(--coral-ink);margin:0}
.alt{background:var(--shell);border-block:1px solid var(--sand2)}
details{background:var(--sand);border-radius:16px;margin-bottom:12px;padding:0 20px}
summary{cursor:pointer;font-weight:700;min-height:48px;display:flex;align-items:center}
.ph{background:#fff3c4;padding:0 4px;border-radius:4px}
body>footer{background:var(--teal-d);color:#eaf3fb;padding:40px 0;border-top:1px solid rgba(255,255,255,.15)}body>footer a{color:#fff}
.bar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--shell);box-shadow:0 -4px 16px rgba(0,0,0,.08);z-index:9}
.bar a{min-height:48px;white-space:nowrap;padding:12px 14px}.bar a:first-child{flex:2}.bar a.ghost{flex:1}
@media(min-width:800px){h1{font-size:3rem}body{padding-bottom:0}.bar{display:none}.top nav{display:block}
.hero-split{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}.g2{grid-template-columns:1fr 1fr}section{padding:72px 0}}
/* shared template additions */
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;background:#fff;padding:8px;z-index:20}
.menu{position:relative}.menu summary{list-style:none;min-height:48px;padding:0 18px;border:2px solid var(--teal);border-radius:999px;color:var(--teal-d)}
.menu summary::-webkit-details-marker{display:none}
.menu[open] .menu-panel{position:absolute;right:0;top:56px;background:var(--shell);border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.15);padding:8px;min-width:240px;z-index:30}
.menu-panel a{display:block;padding:12px 14px;text-decoration:none;font-weight:600}
.top details.menu{background:none;margin:0;padding:0}
.crumbs{font-size:.9rem;padding-top:16px}.crumbs a{text-decoration:none;display:inline-block;padding:10px 0}
.reviewed{margin:0;color:var(--muted)}.reviewed small{font-size:.85rem}
.prose{max-width:720px}.prose h2{margin-top:1.6em}
.cta-box{background:var(--shell);border-radius:var(--r);padding:24px;margin:32px auto;max-width:720px;box-shadow:0 6px 24px rgba(43,58,58,.06)}
.foot-grid{display:grid;gap:24px}.foot-grid ul{list-style:none;padding:0;margin:0}.foot-grid li{margin:6px 0}
body>footer h2{color:#fff;font-size:1.1rem}
@media(min-width:800px){.foot-grid{grid-template-columns:1.3fr 1fr 1fr}.top .menu{display:none}}
/* mobile header + menu fixes */
header.top{position:relative;z-index:40}
.menu[open] .menu-panel{position:fixed;left:16px;right:16px;top:72px;min-width:0;max-height:calc(100dvh - 96px);overflow:auto;overscroll-behavior:contain}
.logo{white-space:nowrap;font-size:1.15rem}
.cta-box p:last-child{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:0}
@media(min-width:800px){.cta-box{padding:32px 40px}}
.menu-h{margin:10px 14px 2px;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.top nav a{white-space:nowrap}
@media(min-width:800px) and (max-width:1000px){.top nav a{margin-left:12px;font-size:.95rem}}
/* home: quality of life check teaser */
.qol{align-items:center}
.qol-body{width:100%;max-width:220px;margin:0 auto;display:block}
.qol-fig{fill:#d6cab6}
.qol-body a .hit{fill:transparent}
.qol-body a .glow{fill:var(--coral);opacity:.22;transition:opacity .2s}
.qol-body a .core{fill:#f6d3c6;stroke:#9c4a2b;stroke-width:1.5;transition:fill .2s}
.qol-body a:hover .core,.qol-body a:focus-visible .core{fill:var(--coral)}
.qol-body a:hover .glow,.qol-body a:focus-visible .glow{opacity:.28}
.qol-body > a{cursor:pointer}.qol-body > a:hover .qol-fig{fill:#cbbda6}
/* UI review pass */
.hero .prose h1{max-width:20ch}
.prose > h2:first-child{margin-top:0}h2{text-wrap:balance}
@media(min-width:800px){h2{font-size:2.1rem}h3{font-size:1.35rem}body{font-size:18px}}
.btn.ghost:hover{background:#e6eff8}
:focus-visible{outline:3px solid var(--teal-d);outline-offset:3px}body>footer :focus-visible,.closing :focus-visible{outline-color:#fff}
.qol-body > a:focus-visible .qol-fig{stroke:var(--teal-d);stroke-width:3}
/* trust line */
.trust{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;padding:0;margin:4px 0 0;font-weight:700;font-size:.95rem}
.trust a{color:inherit;text-decoration:none}.trust span{color:#a86f00}
/* mid-page CTA */
.checks{list-style:none;padding:0;margin:0 0 16px}.checks li{position:relative;padding-left:30px;margin:8px 0}
.checks li::before{content:"\2713";position:absolute;left:0;top:0;font-weight:800;color:var(--teal-d)}
.cta-box .cta-btns{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 12px}
/* header */
.hdr-book{display:none}
.hdr-phone{width:48px;height:48px;min-height:48px;padding:0;flex:none}
.hdr-num{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.menu summary .m-close{display:none}.menu[open] summary .m-open{display:none}.menu[open] summary .m-close{display:inline}
.menu[open]::before{content:"";position:fixed;inset:0;background:rgba(43,58,58,.35);z-index:29}
.menu-panel a.menu-book{display:flex;color:#fff;margin:4px 4px 8px;text-align:center}
@media(max-width:420px){.logo{font-size:1.05rem}}
@media(min-width:800px){header.top{position:sticky;top:0;z-index:40}.hdr-book{display:inline-flex;white-space:nowrap}
.top nav .nav-map{display:none}
.hdr-phone{width:auto;height:auto;min-height:0;background:none;color:var(--teal-d);font-weight:700;padding:8px 0}.hdr-phone:hover{background:none;text-decoration:underline}.hdr-phone svg{display:none}
.hdr-num{position:static;width:auto;height:auto;clip:auto}}
@media(min-width:800px) and (max-width:1060px){.hdr-phone{display:none}}
/* hero buttons on phones */
@media(max-width:799px){.hero .ctas .ghost{display:none}.hero .ctas .btn{width:100%}.hero-split .ctas .ghost{display:inline-flex}}
/* FAQ */
#faq summary{justify-content:space-between;gap:12px}#faq summary::-webkit-details-marker{display:none}
#faq summary::after{content:"+";font:600 1.5rem/1 Bitter,Georgia,serif;color:var(--teal-d);flex:none}
#faq details[open] summary::after{content:"\2212"}#faq details{border:1px solid #d9ccb6}
/* closing band */
.closing{background:var(--teal-d);color:#eaf3fb;text-align:center}.closing h2{color:#fff}.closing a{color:#fff}
.closing .btn{background:#fff;color:var(--teal-d)}.closing .btn:hover{background:#e6eff8}
/* home pain check teaser */
#pain-check{background:linear-gradient(180deg,#eaf2fa,#f3f7fb)}
.qol-tap{text-align:center;font-weight:700;color:var(--teal-d);margin:8px 0 0}
@media(prefers-reduced-motion:no-preference){.qol-body a .glow{animation:qolpulse 2.4s ease-in-out infinite}}
@keyframes qolpulse{0%,100%{opacity:.18}50%{opacity:.4}}
.qol-body a:hover .glow,.qol-body a:focus-visible .glow{animation:none;opacity:.45}
/* home condition cards */
.conds{grid-template-columns:1fr}
.cond{display:block;background:var(--shell);border:1px solid var(--sand2);border-radius:var(--r);padding:20px 22px;text-decoration:none;color:var(--ink);box-shadow:0 6px 24px rgba(43,58,58,.05)}
.cond h3{margin:0 0 6px}.cond p{margin:0 0 10px}.cond-go{font-weight:700;color:var(--teal-d)}
.cond:hover{border-color:var(--teal)}.cond-check{background:#eaf2fa}
@media(min-width:640px){.conds{grid-template-columns:1fr 1fr}}@media(min-width:1000px){.conds{grid-template-columns:1fr 1fr 1fr}}
/* headshot */
.doc-head{display:flex;align-items:center;gap:16px}.doc-head h1,.doc-head h2{margin:0}
.headshot{width:80px;height:80px;border-radius:50%;object-fit:cover;flex:none;border:3px solid var(--shell);box-shadow:0 4px 14px rgba(43,58,58,.15)}
/* reviews */
blockquote{margin:20px 0;padding:18px 20px;background:var(--shell);border-left:4px solid var(--coral);border-radius:0 16px 16px 0;font:500 1.15rem/1.5 Bitter,Georgia,serif}
blockquote p{margin:0 0 8px}blockquote footer{font:700 .95rem/1.4 "Nunito Sans",system-ui,sans-serif;color:var(--muted)}
.rating{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0}.rating .stars{color:#a86f00;font-size:1.6rem;letter-spacing:2px}
.rating strong{font:600 3rem/1 Bitter,Georgia,serif;color:var(--teal-d)}.rating span:last-child{font-weight:700}
/* videos */
.vid{position:relative}
.vid-cap{font-weight:700;color:var(--teal-d);margin:10px 0 0}
.vid-play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border:0;border-radius:50%;background:rgba(39,90,140,.92);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.vid-play[hidden]{display:none}.vid-play:hover{background:#1f4b76}
/* footer */
.foot-btns{display:flex;flex-direction:column;gap:10px}
body>footer .btn.ghost{color:#fff;border-color:#fff;width:100%}body>footer .btn.ghost:hover{background:rgba(255,255,255,.12)}
.foot-grid li a{display:block;padding:8px 0}.foot-grid li{margin:0}
@media(max-width:799px){.foot-grid>div:not(:first-child){display:none}}
@media(min-width:800px){.foot-btns{max-width:300px}}
/* motion */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
