:root{color-scheme:light}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#faf9f5;color:#141413}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}

/* ============================================================
   BRAND TOKENS — every value here is driven by the brand panel
   ============================================================ */
:root{
  --brand:#000000;         /* their header black, sampled from the live site */
  --sec:#7A5C33;           /* links and accents — sampled from the reception timber */
  --act:#7A5C33;           /* the booking-action colour */
  --page:#FFFFFF;
  --band:#F5F3F0;
  --ink:#111111; --ink-2:#4D4A46; --ink-3:#6D6963;
  --line:#E2DED8;
  --rad:3px;
  --hfont:'Montserrat'; --bfont:'Open Sans';
  --hdr-ink:#FFFFFF;       /* text colour on the header bar */

  /* derived */
  --brand-d:color-mix(in srgb, var(--brand) 82%, #000);
  --brand-t:color-mix(in srgb, var(--brand) 8%, var(--page));
  --brand-t2:color-mix(in srgb, var(--brand) 16%, var(--page));
  --sec-t:color-mix(in srgb, var(--sec) 12%, var(--page));
  --act-d:color-mix(in srgb, var(--act) 84%, #000);
  --act-t:color-mix(in srgb, var(--act) 10%, var(--page));

  /* semantic — deliberately outside the brand system */
  --ok:#2F6B44; --ok-t:#E7F0E9;
  --warn:#8A6212; --warn-t:#F7EFDC;
  --alert:#A8331B; --alert-t:#F8E3DE;

  /* chart categoricals — CVD-validated against white */
  --c1:#A8331B; --c2:#0070A8; --c3:#B57A00; --c4:#4A47A5; --c5:#4E7A22;
  --grid:#EBE7E1; --sunk:#F0EDE8;

  --sh:0 1px 2px rgba(20,16,10,.06), 0 10px 26px -20px rgba(20,16,10,.4);
  --sh-l:0 2px 5px rgba(20,16,10,.08), 0 22px 46px -26px rgba(20,16,10,.45);
  --maxw:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
body{
  margin:0; background:var(--page); color:var(--ink);
  font-family:var(--bfont), -apple-system, "Segoe UI", system-ui, sans-serif;
  font-size:16.5px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{font-family:var(--hfont), var(--bfont), sans-serif; margin:0; color:var(--brand); text-wrap:balance; line-height:1.18; letter-spacing:-.008em}
h1{font-size:clamp(1.95rem,4.2vw,3rem); font-weight:700}
h2{font-size:clamp(1.5rem,2.7vw,2.1rem); font-weight:700}
h3{font-size:1.2rem; font-weight:600}
h4{font-size:1.02rem; font-weight:600}
p{margin:0}
a{color:var(--sec)}
button{font:inherit; color:inherit; cursor:pointer}
:focus-visible{outline:3px solid var(--act); outline-offset:2px; border-radius:3px}
img,svg{max-width:100%}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 22px}
.narrow{max-width:790px; margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace}
.num{font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--hfont),sans-serif; font-size:.7rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--sec)}
.lead{font-size:1.1rem; color:var(--ink-2)}

/* ---------- utility bar ---------- */
.util{background:#000; color:var(--hdr-ink); font-size:.82rem; border-bottom:1px solid rgba(255,255,255,.1)}
.util .wrap{display:flex; align-items:center; gap:8px 22px; height:38px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none}
.util .wrap::-webkit-scrollbar{display:none}
.util a,.util button{color:inherit; text-decoration:none; opacity:.92; white-space:nowrap; display:flex; align-items:center; gap:7px; background:none; border:0; padding:0}
.util a:hover,.util button:hover{opacity:1; text-decoration:underline}
.util .sp{margin-left:auto}
.util .dot{width:8px;height:8px;border-radius:50%;background:#3DDC84;flex-shrink:0}
.util .closed .dot{background:#FF5A4E}

/* ---------- header ---------- */
header.site{background:var(--brand); color:var(--hdr-ink); position:sticky; top:0; z-index:60; box-shadow:var(--sh)}
.hdr{display:flex; align-items:center; gap:18px; min-height:104px}
.hdr > .btn{display:none}
@media(min-width:1080px){.hdr > .btn{display:inline-flex}}
.logo{display:flex; flex-direction:column; align-items:center; text-decoration:none; color:inherit; flex-shrink:0; line-height:1}
.logo em{font-style:normal; font-family:var(--hfont),sans-serif; font-weight:300; font-size:.72rem; letter-spacing:.42em; text-transform:uppercase; opacity:.95; padding-left:.42em}
.logo b{font-family:var(--hfont),sans-serif; font-weight:800; font-size:1.72rem; letter-spacing:.045em; text-transform:uppercase; color:inherit; margin-top:5px}
@media(max-width:520px){.logo b{font-size:1.3rem}.logo em{font-size:.6rem;letter-spacing:.34em}}
nav.main{display:none; gap:2px; align-items:center; margin:0 auto}
@media(min-width:1080px){nav.main{display:flex}}
nav.main button,nav.main a{background:none; border:0; color:inherit; padding:9px 13px; font-size:.94rem; border-radius:var(--rad); opacity:.72; white-space:nowrap; text-decoration:none}
nav.main button:hover,nav.main a:hover{opacity:1; text-decoration:none}
nav.main button[aria-current="page"],nav.main a[aria-current="page"]{opacity:1; box-shadow:inset 0 -2px 0 rgba(255,255,255,.9); text-decoration:none}
.burger{display:grid; place-items:center; width:44px; height:44px; background:rgba(255,255,255,.1); border:0; border-radius:var(--rad); color:inherit; margin-left:auto}
@media(min-width:1080px){.burger{display:none}}
.mobmenu{display:none; background:var(--brand-d); color:var(--hdr-ink); border-top:1px solid rgba(255,255,255,.14)}
.mobmenu.open{display:block}
.mobmenu .wrap{padding-top:8px; padding-bottom:14px; display:grid; gap:1px}
.mobmenu button,.mobmenu a{background:none; border:0; color:inherit; text-align:left; padding:12px 4px; font-size:1rem; border-bottom:1px solid rgba(255,255,255,.1); text-decoration:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; text-decoration:none;
  border:2px solid transparent; padding:12px 22px; border-radius:var(--rad); font-family:var(--hfont),sans-serif;
  font-size:.92rem; font-weight:600; letter-spacing:.01em; white-space:nowrap; transition:background .15s,border-color .15s,transform .1s}
.btn:active{transform:translateY(1px)}
.btn-act{background:var(--act); color:#fff}
.btn-act:hover{background:var(--act-d)}
.btn-brand{background:var(--brand); color:#fff}
.btn-brand:hover{background:var(--brand-d)}
.btn-out{background:transparent; border-color:currentColor; color:var(--brand)}
.btn-out:hover{background:var(--brand-t)}
.btn-onbrand{background:rgba(0,0,0,.5); color:var(--hdr-ink); border-color:rgba(255,255,255,.55); backdrop-filter:blur(3px)}
.btn-onbrand:hover{background:rgba(0,0,0,.7); border-color:#fff}
.btn-white{background:#fff; color:#0C0C0C; border-color:#fff; text-transform:uppercase; letter-spacing:.13em; font-weight:700; font-size:.78rem; padding:14px 24px}
.btn-white:hover{background:rgba(255,255,255,.86)}
.btn-white.btn-sm{padding:11px 18px; font-size:.72rem}
.btn-ghost{background:none; color:var(--sec); padding-left:6px; padding-right:6px}
.btn-ghost:hover{text-decoration:underline}
.btn-sm{padding:9px 16px; font-size:.85rem}
.btn-lg{padding:15px 28px; font-size:1rem}
.btn-block{width:100%}

/* ---------- sections ---------- */
.view{display:none}
.view.on{display:block}
section{padding:62px 0}
section.band{background:var(--band)}
section.tint{background:var(--brand-t)}
section.pad-s{padding:44px 0}
.sechead{max-width:64ch; margin-bottom:34px}
.sechead .eyebrow{display:block; margin-bottom:10px}
.sechead p{margin-top:12px; color:var(--ink-2)}
.rowhead{display:flex; flex-wrap:wrap; gap:16px; align-items:flex-end; justify-content:space-between; margin-bottom:32px}
.rowhead > div{max-width:60ch}

/* ---------- hero ---------- */
.hero{background:var(--brand); color:#fff; padding:0; position:relative; overflow:hidden}
.hero canvas{display:none}
.heroin{position:relative; z-index:2; display:grid; gap:30px; padding:52px 0 56px}
@media(min-width:960px){.heroin{grid-template-columns:1.04fr .96fr; gap:52px; align-items:center; padding:68px 0 74px}}
/* the practice's own reception photograph */
.heroshot{position:relative; height:230px; background-position:38% 50%; background-size:cover; background-repeat:no-repeat}
.heroshot::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 50%,rgba(0,0,0,.35))}
@media(min-width:960px){
  .heroshot{position:absolute; inset:0; width:100%; height:auto; z-index:1; background-position:44% 50%}
  .heroshot::after{background:linear-gradient(93deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.93) 26%,rgba(0,0,0,.78) 44%,rgba(0,0,0,.52) 66%,rgba(0,0,0,.42) 100%)}
}
.hero h1{color:#fff; margin-bottom:18px}
.hero .eyebrow{color:#fff; opacity:.72}
.hero .lead{color:rgba(255,255,255,.9); max-width:50ch; margin-bottom:26px}
.hero .cta{display:flex; flex-wrap:wrap; gap:11px}
.herofacts{display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:28px; padding-top:22px; border-top:1px solid rgba(255,255,255,.22)}
.herofacts span{font-size:.83rem; color:rgba(255,255,255,.8)}
.herofacts b{color:#fff; font-weight:700}

/* triage launcher card */
.tcard{background:var(--page); border-radius:var(--rad); box-shadow:var(--sh-l); overflow:hidden; color:var(--ink)}
.tcard .th{padding:17px 22px; background:var(--band); border-bottom:1px solid var(--line)}
.tcard .th h3,.tcard .th h2{font-size:1.08rem;font-weight:600}
.tcard .th p{font-size:.85rem; color:var(--ink-3); margin-top:3px}
.tcard .tb{padding:20px 22px 22px}
.regiongrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(128px,1fr)); gap:8px; margin-top:14px}
.rbtn{background:var(--page); border:1.5px solid var(--line); border-radius:var(--rad); padding:11px 12px; text-align:left; font-size:.9rem; line-height:1.28; color:var(--ink); transition:border-color .12s, background .12s}
.rbtn:hover{border-color:var(--sec); background:var(--sec-t)}
.rbtn small{display:block; font-size:.72rem; color:var(--ink-3); margin-top:2px}

/* ---------- the reception wall, as navigation ---------- */
.wall{position:relative; background:#6E5230; overflow:hidden; border-top:1px solid rgba(0,0,0,.35)}
.wall::before{content:""; position:absolute; inset:0;
  background-position:center; background-size:cover; pointer-events:none;}
.wall::after{content:""; position:absolute; inset:0; background:linear-gradient(100deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.58) 42%,rgba(0,0,0,.34) 70%,rgba(0,0,0,.46) 100%); pointer-events:none}
.wallin{position:relative; z-index:1; padding:52px 0 56px}
.wall .eyebrow{color:rgba(255,255,255,.72)}
.walllist{margin-top:20px; display:flex; flex-wrap:wrap; align-items:baseline; gap:0 14px; max-width:min(58ch,66%)}
@media(max-width:900px){.walllist{max-width:100%}}
.walllist a,.walllist span{color:#fff; text-decoration:none; text-transform:uppercase; letter-spacing:.02em; font-family:var(--hfont),sans-serif; line-height:1.12;
  text-shadow:0 1px 2px rgba(0,0,0,.35)}
.walllist a.big{font-size:clamp(1.7rem,3.6vw,2.7rem); font-weight:800}
.walllist a.mid{font-size:clamp(1.05rem,1.9vw,1.35rem); font-weight:700}
.walllist span.sm{font-size:clamp(.78rem,1.25vw,.92rem); font-weight:400; letter-spacing:.09em; color:rgba(255,255,255,.86)}
.walllist a:hover{color:#F4E3CE; text-decoration:underline; text-underline-offset:4px}
.walllist i.plus{font-style:normal; color:rgba(255,255,255,.55); font-weight:300}
.wallnote{position:relative; z-index:1; margin-top:26px; padding-top:20px; border-top:1px solid rgba(255,255,255,.22); max-width:62ch; color:rgba(255,255,255,.86); font-size:.94rem}
.wallnote a{color:#fff}

/* ---------- cards & grids ---------- */
.g2{display:grid; gap:24px} @media(min-width:820px){.g2{grid-template-columns:1fr 1fr}}
.g3{display:grid; gap:18px} @media(min-width:760px){.g3{grid-template-columns:repeat(3,1fr)}}
.g4{display:grid; gap:16px} @media(min-width:640px){.g4{grid-template-columns:1fr 1fr}} @media(min-width:1000px){.g4{grid-template-columns:repeat(4,1fr)}}
.g2>*,.g3>*,.g4>*{min-width:0}
.card{background:var(--page); border:1px solid var(--line); border-radius:var(--rad); padding:24px; box-shadow:var(--sh)}
.card.plain{box-shadow:none}
.card h3{margin-bottom:9px}
.card p{color:var(--ink-2); font-size:.95rem}

.condcard{background:var(--page); border:1px solid var(--line); border-radius:var(--rad); padding:0; text-align:left; overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--sh); transition:box-shadow .15s, transform .15s}
.condcard:hover{box-shadow:var(--sh-l); transform:translateY(-2px)}
.condcard .cc-top{padding:22px 22px 16px; flex:1}
.condcard h3{margin-bottom:8px; font-size:1.12rem}
.condcard p{font-size:.9rem; color:var(--ink-2)}
.condcard .cc-stat{padding:12px 22px; background:var(--band); border-top:1px solid var(--line); font-size:.78rem; color:var(--ink-3); font-variant-numeric:tabular-nums}
.condcard .cc-stat b{color:var(--brand); font-weight:700}

.pillars{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden}
@media(min-width:620px){.pillars{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.pillars{grid-template-columns:repeat(3,1fr)}}
.pillars>div{background:var(--page); padding:24px}
.pillars h3{font-size:1.05rem; margin-bottom:8px; display:flex; align-items:center; gap:10px}
.pillars h3 i{width:26px;height:26px;border-radius:50%;background:var(--sec-t);color:var(--sec);display:grid;place-items:center;font-style:normal;font-size:.72rem;font-weight:700;flex-shrink:0}
.pillars p{font-size:.92rem; color:var(--ink-2)}

/* ---------- stat tiles ---------- */
.tiles{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden}
@media(min-width:720px){.tiles{grid-template-columns:repeat(3,1fr)}}
.tile{background:var(--page); padding:26px 24px}
.tile dt{font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); margin-bottom:14px; font-family:var(--hfont),sans-serif}
.tile dd{margin:0}
.tile .big{font-family:var(--hfont),sans-serif; font-weight:700; font-size:2.9rem; line-height:1; color:var(--brand); font-variant-numeric:tabular-nums; display:block}
.tile .big em{font-style:normal; font-size:1.15rem; margin-left:2px; color:var(--ink-2)}
.tile .cap{display:block; margin-top:12px; font-size:.9rem; color:var(--ink-2)}
.tile .n{display:block; margin-top:10px; font-size:.74rem; color:var(--ink-3); font-variant-numeric:tabular-nums}

/* ---------- alerts / callouts ---------- */
.alertbox{border-radius:var(--rad); padding:26px 28px; border:1px solid var(--alert); background:var(--alert-t)}
.alertbox h2,.alertbox h3{color:var(--alert)}
.alertbox ul{list-style:none; margin:16px 0 0; padding:0; display:grid; gap:11px}
@media(min-width:780px){.alertbox ul{grid-template-columns:1fr 1fr; gap:11px 28px}}
.alertbox li{display:flex; gap:11px; font-size:.94rem; color:var(--ink-2)}
.alertbox li b{color:var(--alert); flex-shrink:0}
.note{border-left:4px solid var(--sec); background:var(--sec-t); border-radius:0 var(--rad) var(--rad) 0; padding:18px 22px}
.note p{font-size:.94rem; color:var(--ink-2)}
.note p+p{margin-top:9px}
.sample{display:inline-flex; align-items:center; gap:7px; font-size:.68rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; padding:5px 10px; border-radius:3px; background:var(--warn-t); color:var(--warn); border:1px solid currentColor; font-family:var(--hfont),sans-serif}

/* ---------- tables ---------- */
details summary::-webkit-details-marker{display:none}
details summary::before{content:"+"; color:var(--sec); font-weight:700; margin-right:10px; font-family:ui-monospace,monospace}
details[open] summary::before{content:"\2013"}
.tw{overflow-x:auto; border:1px solid var(--line); border-radius:var(--rad); background:var(--page)}
table{border-collapse:collapse; width:100%; font-size:.93rem; min-width:440px}
th,td{text-align:left; padding:13px 18px; border-bottom:1px solid var(--line)}
th{font-family:var(--hfont),sans-serif; font-size:.7rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3); background:var(--band)}
tr:last-child td{border-bottom:0}
td.n{font-variant-numeric:tabular-nums}
tbody tr:hover{background:var(--brand-t)}

/* ---------- charts ---------- */
figure.fig{margin:0; background:var(--page); border:1px solid var(--line); border-radius:var(--rad); padding:24px; box-shadow:var(--sh)}
figure.fig .ftitle{font-family:var(--hfont),sans-serif; font-weight:600; font-size:1.08rem; color:var(--brand); margin:8px 0 4px}
figure.fig .fsub{font-size:.85rem; color:var(--ink-3); max-width:58ch}
.bars{margin-top:20px; display:grid; gap:13px}
.brow{display:grid; grid-template-columns:minmax(88px,150px) minmax(0,1fr) 76px; gap:12px; align-items:center}
.brow>*{min-width:0}
.brow .k{font-size:.86rem; color:var(--ink-2); text-align:right; line-height:1.25}
.btrack{height:22px; background:var(--sunk); border-radius:3px; position:relative}
.bfill{position:absolute; inset:0 auto 0 0; width:0; border-radius:0 4px 4px 0; transition:width .8s cubic-bezier(.2,.7,.3,1)}
.bval{font-size:.8rem; color:var(--ink-2); font-variant-numeric:tabular-nums}
.axis{margin-top:14px; padding-top:9px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:.72rem; color:var(--ink-3); font-variant-numeric:tabular-nums}
.legend{display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line)}
.legend span{display:flex; align-items:center; gap:7px; font-size:.82rem; color:var(--ink-2)}
.sw{width:11px;height:11px;border-radius:2px;flex-shrink:0}
.cw{overflow-x:auto; margin-top:16px}
svg .gl{stroke:var(--grid); stroke-width:1}
svg text{font-family:var(--bfont),sans-serif; font-size:10.5px; fill:var(--ink-3)}
svg text.dl{font-weight:700; font-size:11px}

/* ---------- forms ---------- */
.field{display:grid; gap:6px; margin-bottom:16px}
.field label{font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); font-family:var(--hfont),sans-serif}
select,input[type=text],input[type=email],textarea{font:inherit; font-size:.95rem; padding:12px 13px; border:1.5px solid var(--line); border-radius:var(--rad); background:var(--page); color:var(--ink); width:100%}
select:focus,input:focus,textarea:focus{border-color:var(--sec)}
textarea{min-height:110px; resize:vertical}

/* ---------- body map & exercise library ---------- */
.atlasgrid{display:grid; gap:28px}
@media(min-width:940px){.atlasgrid{grid-template-columns:minmax(280px,380px) minmax(0,1fr); gap:40px; align-items:start}}
.mapwrap{background:var(--band); border:1px solid var(--line); border-radius:var(--rad); padding:18px}
@media(min-width:940px){.mapwrap{position:sticky; top:120px}}
.bodypart{fill:var(--brand); fill-opacity:0; cursor:pointer; transition:fill-opacity .18s ease}
.bodypart:hover{fill-opacity:.14}
.bodypart.on{fill:var(--sec); fill-opacity:.9}
.bodypart:focus-visible{outline:none; fill-opacity:.3}
.mapwrap svg{display:block; width:100%; max-width:214px; height:auto; margin:0 auto; filter:drop-shadow(0 6px 18px rgba(20,16,10,.10))}
.maplegend{margin-top:14px; padding-top:14px; border-top:1px solid var(--line); font-size:.84rem; color:var(--ink-3)}
.maplist{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px}
.maplist button,.maplist a{background:var(--page); border:1px solid var(--line); border-radius:20px; padding:6px 12px; font-size:.8rem; color:var(--ink-2); text-decoration:none}
.maplist button.on,.maplist a.on{background:var(--brand); border-color:var(--brand); color:#fff; text-decoration:none}
.maplist button:hover,.maplist a:hover{border-color:var(--sec); text-decoration:none}

.structrow{display:grid; grid-template-columns:auto minmax(0,1fr); gap:13px; padding:13px 0; border-bottom:1px solid var(--line); align-items:start}
.structrow:last-child{border-bottom:0}
.structrow .dot{width:9px;height:9px;border-radius:50%;background:var(--sec);margin-top:8px}
.structrow b{display:block; font-family:var(--hfont),sans-serif; font-size:.98rem; color:var(--brand)}
.structrow p{font-size:.9rem; color:var(--ink-2); margin-top:3px}
.structrow em{display:block; font-style:normal; font-size:.86rem; color:var(--ink-3); margin-top:5px}

.filters{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:20px; padding-bottom:18px; border-bottom:1px solid var(--line)}
.filters .flabel{font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); font-family:var(--hfont),sans-serif; margin-right:4px}
.fchip{background:var(--page); border:1px solid var(--line); border-radius:20px; padding:7px 14px; font-size:.84rem; color:var(--ink-2)}
.fchip.on{background:var(--sec); border-color:var(--sec); color:#fff}
.fchip:hover{border-color:var(--sec)}

.exgrid{display:grid; gap:14px}
@media(min-width:680px){.exgrid{grid-template-columns:1fr 1fr}}
.excard{background:var(--page); border:1px solid var(--line); border-radius:var(--rad); text-align:left; padding:0; overflow:hidden; box-shadow:var(--sh); display:flex; flex-direction:column; transition:box-shadow .15s, transform .15s}
.excard:hover{box-shadow:var(--sh-l); transform:translateY(-2px)}
.exthumb{position:relative; aspect-ratio:16/9; background:var(--brand); display:grid; place-items:center; overflow:hidden}
.exthumb svg{opacity:.5}
.exthumb .ph{position:absolute; left:10px; top:10px; font-size:.62rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:4px 9px; border-radius:3px; font-family:var(--hfont),sans-serif; color:#fff}
.exthumb .dur{position:absolute; right:10px; bottom:10px; font-size:.72rem; color:rgba(255,255,255,.85); font-variant-numeric:tabular-nums}
.exbody{padding:15px 17px 16px; flex:1; display:flex; flex-direction:column; gap:6px}
.exbody h4{font-size:1.02rem; color:var(--brand)}
.exbody .dose{font-size:.82rem; color:var(--ink-2); font-variant-numeric:tabular-nums}
.exbody .why{font-size:.86rem; color:var(--ink-3)}
.extags{display:flex; flex-wrap:wrap; gap:5px; margin-top:auto; padding-top:10px}
.extag{font-size:.68rem; padding:3px 8px; border:1px solid var(--line); border-radius:20px; color:var(--ink-3)}

.phase-settle{background:#5C6B73}
.phase-rebuild{background:var(--sec)}
.phase-return{background:#4E7A22}
.exbody .pill{display:inline-flex; align-items:center; gap:6px; font-size:.72rem; color:var(--ink-3)}
.exbody .pill i{width:8px;height:8px;border-radius:50%;display:block}

.exdetail .kvlist{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden; margin-top:16px}
@media(min-width:620px){.exdetail .kvlist{grid-template-columns:1fr 1fr}}
.exdetail .kvlist > div{background:var(--page); padding:14px 16px; min-width:0}
.exdetail .kvlist dt{font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px; font-family:var(--hfont),sans-serif}
.exdetail .kvlist dd{margin:0; font-size:.92rem; color:var(--ink-2)}
.exdetail ol{margin:14px 0 0; padding-left:20px; color:var(--ink-2); font-size:.93rem}
.exdetail ol li{margin-bottom:7px}
.stagebar{display:flex; gap:2px; margin:18px 0 0; border-radius:var(--rad); overflow:hidden}
.stagebar div{flex:1; padding:10px 12px; background:var(--band); font-size:.78rem; color:var(--ink-3); text-align:center}
.stagebar div.on{background:var(--sec); color:#fff; font-weight:700}

.muscgrid{display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.musccard{background:var(--page); border:1px solid var(--line); border-radius:var(--rad); padding:0; text-align:left; overflow:hidden; cursor:pointer; transition:box-shadow .15s,transform .15s}
.musccard:hover{box-shadow:var(--sh-l); transform:translateY(-2px)}
.musccard img{display:block; width:100%; aspect-ratio:1/1; object-fit:cover; background:var(--band)}
.musccard span{display:block; padding:9px 11px 11px}
.musccard b{display:block; font-family:var(--hfont),sans-serif; font-size:.84rem; color:var(--brand); line-height:1.25}
.musccard em{display:block; font-style:normal; font-size:.72rem; color:var(--ink-3); margin-top:3px}
.muscrole{display:inline-block; font-size:.62rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:2px 7px; border-radius:20px; margin-top:6px}
.role-p{background:var(--sec); color:#fff}
.role-s{background:var(--band); color:var(--ink-3); border:1px solid var(--line)}
.muschero{display:grid; gap:18px; margin-bottom:4px}
@media(min-width:560px){.muschero{grid-template-columns:200px minmax(0,1fr)}}
.muschero img{width:100%; border-radius:var(--rad); border:1px solid var(--line); background:var(--band)}
.attrib{font-size:.72rem; color:var(--ink-3); margin-top:8px; line-height:1.5}
.attrib a{color:var(--ink-3)}
.dl2{display:grid; gap:10px; margin-top:14px}
.dl2 > div{display:grid; grid-template-columns:minmax(96px,128px) minmax(0,1fr); gap:12px; padding:9px 0; border-bottom:1px solid var(--line)}
.dl2 dt{font-size:.7rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3); font-family:var(--hfont),sans-serif; padding-top:2px}
.dl2 dd{margin:0; font-size:.92rem; color:var(--ink-2)}
.srclist{margin:10px 0 0; padding-left:18px; font-size:.82rem; color:var(--ink-3)}
.srclist li{margin-bottom:5px}
.srclist a{color:var(--sec)}
.chipline{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.schip{font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:3px 9px; border-radius:20px; background:var(--band); color:var(--ink-2); border:1px solid var(--line)}
.schip.acute{background:#F6E3DE; color:#A8331B; border-color:#A8331B}
.schip.early{background:#F7EFDC; color:#8A6212; border-color:#8A6212}
.schip.mid{background:var(--sec-t); color:var(--sec); border-color:var(--sec)}
.schip.late{background:#E7F0E9; color:#2F6B44; border-color:#2F6B44}
.schip.rts{background:var(--brand); color:#fff; border-color:var(--brand)}
.warn{border-left:4px solid var(--alert); background:var(--alert-t); border-radius:0 var(--rad) var(--rad) 0; padding:14px 18px; margin-top:14px}
.warn p{font-size:.88rem; color:var(--ink-2)}
.warn b{color:var(--alert)}
.statline{display:flex; flex-wrap:wrap; gap:8px 22px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:16px 0 24px}
.statline span{font-size:.84rem; color:var(--ink-3)}
.statline b{color:var(--brand); font-family:var(--hfont),sans-serif; font-weight:700}

/* ---------- practitioner console ---------- */
.clinicgrid{display:grid; gap:22px}
@media(min-width:1040px){.clinicgrid{grid-template-columns:340px minmax(0,1fr); gap:30px; align-items:start}}
.clinicgrid>*{min-width:0}
.sheet{background:var(--page); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden; box-shadow:var(--sh)}
@media(min-width:1040px){.sheet{position:sticky; top:118px; max-height:calc(100vh - 150px); overflow-y:auto}}
.sheet .sh-head{padding:14px 16px; background:var(--band); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:10px}
.sheet .sh-head h3{font-size:.98rem; margin-right:auto}
.daytabs{display:flex; gap:2px; padding:8px 10px; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none}
.daytabs::-webkit-scrollbar{display:none}
.daytabs button,.daytabs a{background:none; border:0; padding:7px 11px; border-radius:var(--rad); font-size:.82rem; color:var(--ink-3); white-space:nowrap; text-decoration:none}
.daytabs button.on,.daytabs a.on{background:var(--brand); color:#fff; font-weight:600; text-decoration:none}
.slot{display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:10px; align-items:center; width:100%; text-align:left;
  padding:11px 14px; background:none; border:0; border-bottom:1px solid var(--line); cursor:pointer}
.slot:hover{background:var(--band)}
.slot.on{background:var(--sec-t); box-shadow:inset 3px 0 0 var(--sec)}
.slot .t{font-size:.8rem; color:var(--ink-3); font-variant-numeric:tabular-nums}
.slot b{display:block; font-size:.92rem; color:var(--brand); font-family:var(--hfont),sans-serif}
.slot span.sub{display:block; font-size:.76rem; color:var(--ink-3); margin-top:2px}
.slot.free{opacity:.55}
.slot.free b{color:var(--ink-3); font-weight:400; font-style:italic}
.state{font-size:.6rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; padding:3px 8px; border-radius:20px; white-space:nowrap; font-family:var(--hfont),sans-serif}
.state.pre{background:#F7EFDC; color:#8A6212; border:1px solid #8A6212}
.state.tx{background:var(--sec-t); color:var(--sec); border:1px solid var(--sec)}
.state.post{background:#E7F0E9; color:#2F6B44; border:1px solid #2F6B44}
.state.none{background:var(--band); color:var(--ink-3); border:1px solid var(--line)}
.ptabs{display:flex; gap:2px; border-bottom:2px solid var(--line); margin:18px 0 0}
.ptabs button,.ptabs a{background:none; border:0; padding:11px 16px; font-family:var(--hfont),sans-serif; font-size:.9rem; font-weight:600; color:var(--ink-3); border-bottom:2px solid transparent; margin-bottom:-2px; text-decoration:none}
.ptabs button.on,.ptabs a.on{color:var(--brand); border-bottom-color:var(--act); text-decoration:none}
.ptabs button:hover,.ptabs a:hover{color:var(--ink); text-decoration:none}
.ppane{display:none; padding-top:22px}
.ppane.on{display:block}
.metric{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden}
@media(min-width:620px){.metric{grid-template-columns:repeat(3,1fr)}}
.metric>div{background:var(--page); padding:15px 17px}
.metric dt{font-size:.66rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3); margin-bottom:8px; font-family:var(--hfont),sans-serif}
.metric dd{margin:0; font-family:var(--hfont),sans-serif; font-weight:700; font-size:1.6rem; color:var(--brand); font-variant-numeric:tabular-nums; line-height:1}
.metric dd small{display:block; font-family:var(--bfont),sans-serif; font-weight:400; font-size:.78rem; color:var(--ink-3); margin-top:6px; line-height:1.4}
.adh{display:flex; gap:3px; margin-top:8px}
.adh i{flex:1; height:22px; border-radius:2px; display:grid; place-items:center; font-size:.58rem; font-style:normal; color:var(--ink-3); background:var(--sunk)}
.adh i.y{background:var(--ok); color:#fff}
.adh i.p{background:var(--warn); color:#fff}
.rxrow{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:start; padding:13px 0; border-bottom:1px solid var(--line)}
.rxrow img{width:56px;height:42px;object-fit:cover;border-radius:3px;background:var(--band)}
.rxrow b{font-family:var(--hfont),sans-serif; font-size:.92rem; color:var(--brand)}
.rxrow .dz{font-size:.82rem; color:var(--ink-2); margin-top:3px}
.rxrow .dz input{font-size:.82rem; padding:5px 8px; width:100%; max-width:230px}
.picker{background:var(--band); border:1px solid var(--line); border-radius:var(--rad); padding:16px; margin-top:16px}
.picklist{max-height:320px; overflow-y:auto; margin-top:12px; background:var(--page); border:1px solid var(--line); border-radius:var(--rad)}
.pickrow{display:flex; gap:11px; align-items:center; width:100%; text-align:left; padding:10px 13px; background:none; border:0; border-bottom:1px solid var(--line); cursor:pointer; font-size:.88rem}
.pickrow:hover{background:var(--sec-t)}
.pickrow b{font-family:var(--hfont),sans-serif; color:var(--brand); font-weight:600}
.pickrow span{display:block; font-size:.74rem; color:var(--ink-3); margin-top:2px}
.pickrow .add{margin-left:auto; color:var(--sec); font-weight:700; font-size:1.1rem}
.noteblock{background:var(--band); border-radius:var(--rad); padding:14px 16px; font-size:.9rem; color:var(--ink-2); margin-top:12px}
.noteblock b{color:var(--brand)}

/* ---------- messaging ---------- */
.thread{display:grid; gap:12px; max-height:360px; overflow-y:auto; padding:4px 2px 4px 0}
.bub{max-width:82%; padding:11px 14px; border-radius:12px; font-size:.92rem; line-height:1.5}
.bub .meta{display:block; font-size:.7rem; margin-top:6px; opacity:.7}
.bub.them{background:var(--band); color:var(--ink-2); border-bottom-left-radius:3px; justify-self:start}
.bub.us{background:var(--brand); color:#fff; border-bottom-right-radius:3px; justify-self:end}
.bub.us .meta{color:rgba(255,255,255,.7)}
.canned{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px}
.canned button,.canned a{background:var(--page); border:1px solid var(--line); border-radius:20px; padding:7px 13px; font-size:.8rem; color:var(--ink-2); text-align:left; cursor:pointer; text-decoration:none}
.canned button:hover,.canned a:hover{border-color:var(--sec); background:var(--sec-t); color:var(--sec); text-decoration:none}
.msgbar{display:flex; gap:8px; margin-top:14px; align-items:flex-end}
.msgbar textarea{min-height:52px; font-size:.92rem}
.inbox{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden}
.inbox button,.inbox a{background:var(--page); border:0; text-align:left; padding:13px 15px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; cursor:pointer; text-decoration:none}
.inbox button:hover,.inbox a:hover{background:var(--band); text-decoration:none}
.inbox button.on,.inbox a.on{background:var(--sec-t); box-shadow:inset 3px 0 0 var(--sec); text-decoration:none}
.inbox b{font-family:var(--hfont),sans-serif; font-size:.92rem; color:var(--brand)}
.inbox span.pv{display:block; font-size:.8rem; color:var(--ink-3); margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.inbox span.when{font-size:.72rem; color:var(--ink-3); white-space:nowrap}
.unread{width:8px;height:8px;border-radius:50%;background:var(--act);display:inline-block;margin-left:6px;vertical-align:middle}

/* ---------- availability strip ---------- */
.availbar{background:var(--ok-t); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.availbar .wrap{display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; padding:13px 22px}
.availbar .live{display:inline-flex; align-items:center; gap:8px; font-size:.9rem; color:var(--ink)}
.availbar .pulse{width:9px;height:9px;border-radius:50%;background:var(--ok);position:relative;flex-shrink:0}
.availbar .pulse::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--ok);opacity:.5;animation:pl 2.2s ease-out infinite}
@keyframes pl{0%{transform:scale(.7);opacity:.7}100%{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:reduce){.availbar .pulse::after{animation:none}}
.availbar b{font-family:var(--hfont),sans-serif}
.availbar .slots{display:flex; flex-wrap:wrap; gap:6px}
.availbar .slots a{font-size:.82rem; background:var(--page); border:1px solid var(--line); border-radius:20px; padding:5px 12px; text-decoration:none; color:var(--ink-2); font-variant-numeric:tabular-nums}
.availbar .slots a:hover{border-color:var(--ok); color:var(--ok)}
.availbar .sp{margin-left:auto; font-size:.78rem; color:var(--ink-3)}

/* ---------- video ---------- */
.vidgrid{display:grid; gap:16px}
@media(min-width:700px){.vidgrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1020px){.vidgrid{grid-template-columns:repeat(3,1fr)}}
.vid{background:var(--page); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden; text-align:left; box-shadow:var(--sh); display:flex; flex-direction:column}
.vidshot{position:relative; aspect-ratio:16/9; background:linear-gradient(135deg,#1c1c1c,#2e2620 60%,#3d3126); display:grid; place-items:center}
.vidshot .play{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:#141414}
.vidshot .tbd{position:absolute; left:10px; top:10px; font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:4px 9px; border-radius:3px; background:rgba(0,0,0,.55); color:#fff; border:1px solid rgba(255,255,255,.35); font-family:var(--hfont),sans-serif}
.vidshot .len{position:absolute; right:10px; bottom:10px; font-size:.72rem; color:rgba(255,255,255,.9); font-variant-numeric:tabular-nums}
.vid .vb{padding:15px 17px 17px; flex:1}
.vid h4{font-size:1rem; color:var(--brand); line-height:1.35}
.vid p{font-size:.84rem; color:var(--ink-3); margin-top:6px}
.vidfeat{display:grid; gap:0; border:1px solid var(--line); border-radius:var(--rad); overflow:hidden; box-shadow:var(--sh)}
@media(min-width:860px){.vidfeat{grid-template-columns:1.25fr 1fr}}
.vidfeat .vidshot{aspect-ratio:16/9; height:100%}
.vidfeat .vb{padding:26px 28px; background:var(--page); display:flex; flex-direction:column; justify-content:center}

/* ---------- reviews ---------- */
.revhead{display:flex; flex-wrap:wrap; gap:14px 28px; align-items:center; padding:18px 22px; background:var(--band); border:1px solid var(--line); border-radius:var(--rad); margin-bottom:18px}
.revscore{font-family:var(--hfont),sans-serif; font-weight:700; font-size:2.3rem; line-height:1; color:var(--brand); font-variant-numeric:tabular-nums}
.stars{display:inline-flex; gap:2px; color:var(--act)}
.revsrc{display:flex; flex-wrap:wrap; gap:8px 18px; margin-left:auto; font-size:.84rem; color:var(--ink-3)}
.revsrc b{color:var(--ink-2); font-family:var(--hfont),sans-serif}
.revgrid{display:grid; gap:16px}
@media(min-width:760px){.revgrid{grid-template-columns:repeat(3,1fr)}}
.rev{background:var(--page); border:1px solid var(--line); border-radius:var(--rad); padding:20px 22px; box-shadow:var(--sh); display:flex; flex-direction:column; gap:10px}
.rev .ph{height:11px; border-radius:3px; background:var(--sunk)}
.rev .ph.s{width:72%} .rev .ph.m{width:92%} .rev .ph.l{width:100%}
.rev footer{margin-top:auto; padding-top:12px; border-top:1px solid var(--line); font-size:.78rem; color:var(--ink-3)}

/* ---------- automations ---------- */
.autorow{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:start; padding:16px 0; border-bottom:1px solid var(--line)}
.autorow:last-child{border-bottom:0}
.sw{width:42px;height:24px;border-radius:20px;background:var(--line);border:0;position:relative;cursor:pointer;flex-shrink:0;transition:background .18s}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .18s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.sw[aria-pressed="true"]{background:var(--ok)}
.sw[aria-pressed="true"]::after{transform:translateX(18px)}
.autorow h4{font-size:.98rem; color:var(--brand); display:flex; flex-wrap:wrap; align-items:center; gap:4px}
.autorow .trg{display:block; font-size:.78rem; color:var(--ink-3); margin-top:3px; font-family:ui-monospace,monospace}
.autorow .txt{display:block; max-width:72ch; font-size:.88rem; color:var(--ink-2); margin-top:8px; font-style:italic; background:var(--band); border-radius:var(--rad); padding:10px 13px}
.autorow .cnt{font-size:.76rem; color:var(--ink-3); white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums}
.autotag{font-size:.6rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; padding:3px 8px; border-radius:20px; font-family:var(--hfont),sans-serif; margin-left:8px; vertical-align:middle}
.autotag.auto{background:var(--ok-t); color:var(--ok); border:1px solid var(--ok)}
.autotag.draft{background:var(--warn-t); color:var(--warn); border:1px solid var(--warn)}

/* ---------- suburb ---------- */
.subtabs{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:22px}
.subtabs button,.subtabs a,.subtabs a,.subtabs a{background:var(--page); border:1px solid var(--line); border-radius:20px; padding:8px 15px; font-size:.86rem; color:var(--ink-2); text-decoration:none}
.subtabs button.on,.subtabs a.on,.subtabs a.on,.subtabs a.on{background:var(--brand); border-color:var(--brand); color:#fff; font-weight:600; text-decoration:none}
.subtabs button:hover,.subtabs a:hover,.subtabs a:hover,.subtabs a:hover{border-color:var(--sec); text-decoration:none}
.journey{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden}
@media(min-width:700px){.journey{grid-template-columns:repeat(3,1fr)}}
.journey>div{background:var(--page); padding:18px 20px}
.journey dt{font-size:.68rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3); margin-bottom:8px; font-family:var(--hfont),sans-serif}
.journey dd{margin:0; font-size:.94rem; color:var(--ink-2)}
.journey dd b{display:block; font-family:var(--hfont),sans-serif; font-size:1.05rem; color:var(--brand); margin-bottom:4px}

/* ---------- footer ---------- */
footer.site{background:var(--brand); color:rgba(255,255,255,.82); padding:52px 0 26px; margin-top:0}
footer.site h4,footer.site h3{color:#fff; font-size:.74rem; letter-spacing:.15em; text-transform:uppercase; margin-bottom:14px; font-weight:700}
footer.site a,footer.site button{color:rgba(255,255,255,.82); text-decoration:none; background:none; border:0; padding:0; text-align:left; font-size:.92rem}
footer.site a:hover,footer.site button:hover{color:#fff; text-decoration:underline}
.fgrid{display:grid; gap:30px; margin-bottom:34px}
@media(min-width:780px){.fgrid{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.fbot{border-top:1px solid rgba(255,255,255,.18); padding-top:20px; display:flex; flex-wrap:wrap; gap:10px 26px; font-size:.8rem; align-items:center}

/* ---------- sticky mobile bar ---------- */
.mobar{position:fixed; left:0; right:0; bottom:0; z-index:55; background:var(--page); border-top:1px solid var(--line); padding:9px 12px calc(9px + env(safe-area-inset-bottom)); display:flex; gap:8px; box-shadow:0 -6px 22px -16px rgba(0,0,0,.5)}
.mobar .btn{flex:1; min-width:0; padding-left:6px; padding-right:6px; font-size:.82rem}
@media(min-width:1080px){.mobar{display:none}}
body{padding-bottom:72px}
@media(min-width:1080px){body{padding-bottom:0}}

/* ============================================================
   PROTOTYPE CHROME — brand panel + symptom-check modal.
   Not part of the site; styled independently of brand tokens.
   ============================================================ */

@media(min-width:1080px){}
























/* annotation layer */
.anno{display:none}
body.notes .anno{display:block; background:var(--page); border:1px solid var(--act); border-left-width:4px; border-radius:var(--rad); padding:17px 20px; margin:20px 0; box-shadow:var(--sh)}
.anno .ah{display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin-bottom:8px}
.anno .atag{font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; background:var(--act); color:#fff; padding:3px 8px; border-radius:3px; font-family:var(--hfont),sans-serif}
.anno .aph{font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; border:1px solid var(--line); color:var(--ink-3); padding:3px 8px; border-radius:3px; font-family:var(--hfont),sans-serif}
.anno h4{color:var(--ink); margin-bottom:6px}
.anno p{font-size:.9rem; color:var(--ink-2); max-width:76ch}
.anno p+p{margin-top:8px}
.anno code{font-family:ui-monospace,monospace; font-size:.86em; background:var(--band); padding:1px 5px; border-radius:3px}
.anno pre{background:var(--band); border:1px solid var(--line); border-radius:var(--rad); padding:15px 17px; overflow-x:auto; font-family:ui-monospace,monospace; font-size:.75rem; line-height:1.6; color:var(--ink-2); margin:10px 0 0}

/* ---------- symptom-check modal ---------- */
.modal{position:fixed; inset:0; z-index:110; display:none; align-items:flex-start; justify-content:center; padding:20px; overflow-y:auto; background:rgba(15,25,23,.62)}
.modal.on{display:flex}
.mbox{background:var(--page); width:min(720px,100%); border-radius:var(--rad); box-shadow:0 30px 70px -20px rgba(0,0,0,.5); margin:auto; overflow:hidden}
.mhead{display:flex; align-items:center; gap:14px; padding:18px 24px; background:var(--brand); color:#fff}
.mhead h2{color:#fff; font-size:1.1rem; margin-right:auto}
.mhead .x{background:rgba(255,255,255,.16); border:0; color:#fff; width:32px; height:32px; border-radius:var(--rad); font-size:1.1rem; line-height:1}
.mprog{display:flex; gap:4px; padding:0 24px; margin-top:16px}
.mprog i{flex:1; height:3px; background:var(--line); border-radius:2px; transition:background .3s}
.mprog i.on{background:var(--act)}
.mbody{padding:22px 24px 26px}
.step{display:none} .step.on{display:block}
.step .qn{font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--sec); font-family:var(--hfont),sans-serif}
.step h3{margin:9px 0 8px; font-size:1.35rem}
.step .qs{color:var(--ink-2); font-size:.94rem; margin-bottom:20px; max-width:58ch}
.opts{display:grid; gap:8px; margin-bottom:22px}
@media(min-width:600px){.opts.two{grid-template-columns:1fr 1fr}}
.opt{display:flex; gap:12px; align-items:flex-start; text-align:left; background:var(--page); border:1.5px solid var(--line); border-radius:var(--rad); padding:14px 16px; transition:border-color .12s,background .12s}
.opt:hover{border-color:var(--sec)}
.opt.sel{border-color:var(--sec); background:var(--sec-t)}
.opt .bx{width:18px;height:18px;border:1.5px solid var(--line);border-radius:3px;flex-shrink:0;margin-top:2px;display:grid;place-items:center;font-size:.7rem;color:transparent}
.opt.sel .bx{background:var(--sec);border-color:var(--sec);color:#fff}
.opt b{display:block; font-size:.94rem; font-weight:600; margin-bottom:2px}
.opt span{display:block; font-size:.85rem; color:var(--ink-2)}
.mfoot{display:flex; gap:10px; align-items:center; padding-top:18px; border-top:1px solid var(--line)}
.mfoot .sp{margin-left:auto}
.res{border-radius:var(--rad); border:1.5px solid var(--line); overflow:hidden}
.res .rh{padding:22px 24px; border-bottom:1px solid var(--line)}
.res .rh h3{margin:8px 0 8px; font-size:1.45rem}
.res .rh p{font-size:.98rem; color:var(--ink-2); max-width:56ch}
.res.go{border-color:var(--ok)} .res.go .rh{background:var(--ok-t)} .res.go .rh h3{color:var(--ok)}
.res.gp{border-color:var(--warn)} .res.gp .rh{background:var(--warn-t)} .res.gp .rh h3{color:var(--warn)}
.res.er{border-color:var(--alert)} .res.er .rh{background:var(--alert-t)} .res.er .rh h3{color:var(--alert)}
.res .rb{padding:22px 24px; display:grid; gap:18px}
.kv{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden}
@media(min-width:600px){.kv{grid-template-columns:1fr 1fr}}
.kv>div{background:var(--page); padding:15px 17px; min-width:0}
.kv dt{font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px; font-family:var(--hfont),sans-serif}
.kv dd{margin:0; font-size:.94rem}
.kv dd b{font-weight:700; color:var(--brand)}
.kv dd small{display:block; color:var(--ink-3); font-size:.82rem; margin-top:4px; line-height:1.45}
/* ---------- guided tour ---------- */
.tour{position:fixed; inset:0; z-index:140; display:none; background:rgba(12,12,12,.72); padding:0; overflow-y:auto; -webkit-overflow-scrolling:touch}
.tour.on{display:block}
.tbox{background:var(--page); width:min(960px,100%); margin:0 auto; min-height:100%; display:flex; flex-direction:column; box-shadow:0 0 90px rgba(0,0,0,.45)}
@media(min-width:1000px){.tour{padding:26px 20px}.tbox{min-height:auto; border-radius:var(--rad); overflow:visible; min-height:calc(100vh - 52px)}.thead{border-radius:var(--rad) var(--rad) 0 0}.tfoot{border-radius:0 0 var(--rad) var(--rad)}}
.thead{background:var(--brand); color:#fff; display:flex; align-items:center; gap:14px; padding:15px 22px; flex-shrink:0}
.thead img{height:22px; width:auto}
.thead .tlabel{font-family:var(--hfont),sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; opacity:.72; padding-left:14px; border-left:1px solid rgba(255,255,255,.3)}
@media(max-width:620px){.thead .tlabel{border:0; padding-left:0; font-size:.62rem; white-space:nowrap}}
@media(max-width:480px){.thead .tlabel{display:none}}
.thead img{max-width:58vw}
.thead .tx{margin-left:auto; background:rgba(255,255,255,.14); border:0; color:#fff; width:34px; height:34px; border-radius:var(--rad); font-size:1.2rem; line-height:1; flex-shrink:0}
.thead .tx:hover{background:rgba(255,255,255,.28)}

.trail{display:flex; gap:3px; padding:0; background:var(--band); border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none; flex-shrink:0}
.trail::-webkit-scrollbar{display:none}
.trail button,.trail a{flex:1 0 auto; background:none; border:0; border-bottom:3px solid transparent; padding:11px 14px; font-size:.76rem; color:var(--ink-3); white-space:nowrap; font-family:var(--hfont),sans-serif; font-weight:600; text-decoration:none}
.trail button:hover,.trail a:hover{color:var(--ink); text-decoration:none}
.trail button.on,.trail a.on{color:var(--brand); border-bottom-color:var(--act); background:var(--page); text-decoration:none}
.trail button.done,.trail a.done{color:var(--sec); text-decoration:none}
.trail button i,.trail a i{font-style:normal; font-variant-numeric:tabular-nums; opacity:.6; margin-right:6px; text-decoration:none}

.tbody{padding:30px 26px 34px; flex:1}
@media(min-width:820px){.tbody{padding:42px 46px 46px}}
.tbody .teyebrow{font-family:var(--hfont),sans-serif; font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--sec)}
.tbody h2{margin:11px 0 14px; font-size:clamp(1.5rem,3.4vw,2.1rem); max-width:22ch}
.tbody .tlead{font-size:1.04rem; color:var(--ink-2); max-width:64ch}
.tbody .tlead+.tlead{margin-top:12px}
.tsec{margin-top:26px}
.tgrid{display:grid; gap:14px}
@media(min-width:700px){.tgrid.two{grid-template-columns:1fr 1fr}.tgrid.three{grid-template-columns:repeat(3,1fr)}}
.tgrid>*{min-width:0}
.tcard2{border:1px solid var(--line); border-radius:var(--rad); padding:18px 20px; background:var(--page)}
.tcard2 h4{font-size:1rem; margin-bottom:7px}
.tcard2 p{font-size:.91rem; color:var(--ink-2)}
.tcard2 .tmeta{display:block; font-size:.76rem; color:var(--ink-3); margin-top:9px; font-variant-numeric:tabular-nums}
.tperson{display:grid; grid-template-columns:auto minmax(0,1fr); gap:15px; align-items:start; border:1px solid var(--line); border-radius:var(--rad); padding:18px 20px}
.tinit{width:52px; height:52px; border-radius:50%; background:var(--brand); color:#fff; display:grid; place-items:center; font-family:var(--hfont),sans-serif; font-weight:700; font-size:1rem; letter-spacing:.04em; flex-shrink:0}
.tperson b{display:block; font-family:var(--hfont),sans-serif; font-size:1.04rem; color:var(--brand)}
.tperson .tq{display:block; font-size:.78rem; color:var(--ink-3); margin-top:3px; line-height:1.45}
.tperson p{font-size:.9rem; color:var(--ink-2); margin-top:9px}
.ttags{display:flex; flex-wrap:wrap; gap:5px; margin-top:10px}
.ttag{font-size:.68rem; padding:3px 9px; border:1px solid var(--line); border-radius:20px; color:var(--ink-3)}
.tsteps{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--rad); overflow:hidden; margin-top:18px}
@media(min-width:760px){.tsteps{grid-template-columns:repeat(3,1fr)}}
.tsteps>div{background:var(--page); padding:18px 20px}
.tsteps dt{font-family:var(--hfont),sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--sec); margin-bottom:8px}
.tsteps dd{margin:0; font-size:.9rem; color:var(--ink-2)}
.tsteps dd b{display:block; color:var(--brand); font-family:var(--hfont),sans-serif; font-size:.98rem; margin-bottom:4px}
.tchoices{display:grid; gap:9px; margin-top:20px}
@media(min-width:620px){.tchoices{grid-template-columns:1fr 1fr}}
.tchoice{display:flex; gap:12px; align-items:flex-start; text-align:left; background:var(--page); border:1.5px solid var(--line); border-radius:var(--rad); padding:14px 16px}
.tchoice:hover{border-color:var(--sec)}
.tchoice.sel{border-color:var(--sec); background:var(--sec-t)}
.tchoice .bx{width:18px; height:18px; border:1.5px solid var(--line); border-radius:50%; flex-shrink:0; margin-top:2px; display:grid; place-items:center; font-size:.66rem; color:transparent}
.tchoice.sel .bx{background:var(--sec); border-color:var(--sec); color:#fff}
.tchoice b{display:block; font-size:.95rem; font-weight:600}
.tchoice span{display:block; font-size:.84rem; color:var(--ink-2); margin-top:2px}
.tfor{border-left:4px solid var(--sec); background:var(--sec-t); border-radius:0 var(--rad) var(--rad) 0; padding:13px 17px; margin-top:22px; font-size:.92rem; color:var(--ink-2)}
.tfor b{color:var(--sec); font-family:var(--hfont),sans-serif}
.tdeep{margin-top:24px; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:9px; align-items:center}
.tdeep .dl{font-size:.78rem; color:var(--ink-3); margin-right:4px; font-family:var(--hfont),sans-serif; letter-spacing:.09em; text-transform:uppercase; font-weight:700}
.thours{width:100%; min-width:0; font-size:.88rem}
.thours td{padding:5px 0; border:0}
.thours td:last-child{text-align:right; font-variant-numeric:tabular-nums}
.tfoot{position:sticky; bottom:0; background:var(--page); border-top:1px solid var(--line); padding:13px 22px calc(13px + env(safe-area-inset-bottom)); display:flex; gap:10px; align-items:center; flex-shrink:0; z-index:2}
@media(min-width:820px){.tfoot{padding-left:46px; padding-right:46px}}
.tfoot .tcount{font-size:.78rem; color:var(--ink-3); font-variant-numeric:tabular-nums; margin-left:auto; white-space:nowrap}
@media(max-width:560px){.tfoot .tskip{display:none}}
.tdone{display:grid; gap:10px; margin-top:22px}
@media(min-width:700px){.tdone{grid-template-columns:repeat(3,1fr)}}
.tdoor{border:1px solid var(--line); border-radius:var(--rad); padding:20px; text-align:left; background:var(--page); display:flex; flex-direction:column; gap:7px; box-shadow:var(--sh); text-decoration:none; color:inherit}
.tdoor:hover{box-shadow:var(--sh-l); transform:translateY(-2px)}
.tdoor.lead{border-color:var(--act); border-width:2px}
.tdoor b{font-family:var(--hfont),sans-serif; font-size:1.02rem; color:var(--brand)}
.tdoor span{font-size:.86rem; color:var(--ink-2)}
.tdoor em{font-style:normal; font-size:.7rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--act); font-family:var(--hfont),sans-serif}

/* tour nudge on the homepage */
.tnudge{position:fixed; right:16px; bottom:84px; z-index:100; width:min(320px,calc(100vw - 32px)); background:var(--page); border:1px solid var(--line); border-left:4px solid var(--act); border-radius:var(--rad); box-shadow:var(--sh-l); padding:16px 18px; display:none}
.tnudge.on{display:block; animation:tnIn .35s cubic-bezier(.2,.8,.3,1)}
@keyframes tnIn{from{opacity:0; transform:translateY(10px)}to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){.tnudge.on{animation:none}}
@media(min-width:1080px){.tnudge{bottom:20px}}
.tnudge b{display:block; font-family:var(--hfont),sans-serif; font-size:.98rem; color:var(--brand); margin-bottom:5px; padding-right:22px}
.tnudge p{font-size:.86rem; color:var(--ink-2); margin-bottom:12px}
.tnudge .tnx{position:absolute; top:9px; right:10px; background:none; border:0; color:var(--ink-3); font-size:1.1rem; line-height:1; padding:3px}
.tnudge .tnb{display:flex; gap:8px}

.funfact{margin-top:26px;border-top:2px solid var(--sec);background:var(--band);padding:16px 18px;border-radius:var(--rad)}
.ff-l{font-family:var(--hfont),sans-serif;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--sec);margin:0 0 6px}
.ff-b{font-size:.92rem;line-height:1.62;color:var(--ink-2);margin:0;max-width:68ch}
.bldg{margin:0;min-width:0}
.bldg-ph{aspect-ratio:4/3;border:1px dashed var(--line);background:var(--page);border-radius:var(--rad);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;color:var(--ink-3);min-width:0}
.bldg-t{font-family:var(--hfont);font-weight:700;color:var(--ink-2);margin:12px 0 6px;font-size:.95rem}
.bldg-b{font-size:.82rem;line-height:1.55;max-width:38ch}
#nextAvail{color:inherit;text-decoration:none;opacity:.88}
#nextAvail:hover{opacity:1;text-decoration:underline}
@media(max-width:760px){.bldg-ph{aspect-ratio:16/10}}


/* OFFICIAL MARKS — Fisher Demirov Osteopaths.
   Supplied artwork, background removed, white and black variants.
   Do not re-set these in type. */
.logomark{display:block; width:222px; height:auto}
@media(max-width:560px){.logomark{width:168px}}
.wordmark{display:block; width:196px; height:auto; margin-bottom:14px}


/* Photographs lifted from the practice's own homepage and embedded, so the page is self-contained. */
.heroshot{background-image:url("/img/reception.df040d82.jpg")}
.wall::before{background-image:url("/img/wall.d7d818eb.jpg"); background-position:22% 46%}

@media(max-width:1079px){.heroin{grid-template-columns:minmax(0,1fr);padding-left:22px;padding-right:22px}.hero .btn{white-space:normal;max-width:100%}}
.subtabs a{text-decoration:none}
@media(max-width:819px){.atlasgrid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.btn{white-space:normal;max-width:100%}}

/* patch10: fees table fits at 375 */
@media(max-width:520px){.tw table{min-width:0}.tw th,.tw td{padding:11px 10px}}
/* patch10: bottom bar labels stay on one line */
.mobar .btn{white-space:nowrap;letter-spacing:0;font-size:.78rem}
/* patch10: exercise cards without a still read as a deliberate panel */
/* patch12 */
@media(max-width:420px){.mobar .btn{padding-left:2px;padding-right:2px;font-size:.74rem}}
@media(max-width:340px){.mobar .btn{font-size:.68rem}}
@media(max-width:520px){.util .wrap>#openNow{order:-1}}
.mobmenu a[aria-current="page"]{font-weight:700;box-shadow:inset 3px 0 0 rgba(255,255,255,.9);padding-left:12px}
/* patch15 */
@media(max-width:600px){.wall .wallin{padding-left:22px;padding-right:22px}}
.dl2 dd,.exdetail p,.exdetail li,.exdetail dd{overflow-wrap:anywhere}
.exdetail .btn{white-space:normal;text-align:left;max-width:100%}
@media(max-width:560px){.dl2>div{grid-template-columns:minmax(0,1fr);gap:4px}.dl2 dt{padding-top:0}}
.sr:focus{position:fixed;left:8px;top:8px;width:auto;height:auto;clip:auto;overflow:visible;white-space:normal;padding:10px 16px;background:#fff;color:#000;z-index:200;border-radius:4px}
.mobmenu.open{max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);overflow-y:auto}
.tphoto{width:64px;height:80px;object-fit:cover;object-position:center top;border-radius:var(--rad);flex-shrink:0;display:block}
.availbar .slots a.all{border-color:var(--ok);color:var(--ok);font-weight:600}
@media(max-width:600px){.mhead{flex-wrap:wrap;row-gap:4px}.mhead h2{flex:1 1 0;min-width:0;overflow-wrap:anywhere}.mhead #mSub{order:3;flex:1 0 100%}}
/* patch16 */
@media(max-width:374px){.mobar{gap:6px;padding-left:8px;padding-right:8px}.mobar .btn{padding-left:2px;padding-right:2px}.mobar .btn[data-check]{flex:1.4}}
@media(max-width:400px){.tfoot{gap:8px;padding-left:14px;padding-right:14px}.tfoot .btn{white-space:nowrap;padding-left:12px;padding-right:12px}#tBack[style*="hidden"]{display:none}}
@media(max-width:360px){.mhead{padding-left:16px;padding-right:16px;gap:10px}.mhead h2{font-size:1rem;overflow-wrap:break-word}}
/* patch17 */
@media(min-width:1000px){.tfoot{bottom:-26px}}
@media(min-width:1080px) and (max-width:1139px){.hdr{gap:10px}nav.main a{padding-left:8px;padding-right:8px}}

/* patch22 */
h2.as-h3{font-size:1.2rem;font-weight:600}
.util #openNow:not(.open):not(.closed) .dot{background:#9A968F}
.res .kv dd a,.res .kv dd a:visited{color:inherit;text-decoration:underline;text-underline-offset:2px}
.mbody .res a[href^="tel:"]{display:inline-flex;align-items:center;min-height:44px}
html.menu-open{overflow:hidden;overflow-anchor:none}
@media(max-width:600px){
.util .wrap{height:auto;min-height:38px;flex-wrap:wrap;overflow:visible;gap:2px 18px;padding-top:6px;padding-bottom:6px}
.util .sp{display:none}
.util a,.util button{min-height:26px}
.util .wrap>#openNow{order:1}
.util .wrap>a[href^="tel:"]{order:2}
.util .wrap>a[href="/contact/"]:not(#openNow){order:3}
.util .wrap>button{order:4}
}
@media(max-width:520px){.util .wrap>#nextAvail{display:none}}
@media(max-width:380px){.util{font-size:.78rem}.util .wrap{column-gap:14px}}
