/* ============================================================================
   Dr. Sibani Sankar Tripathy — Physiotherapist & Chiropractor, Bhubaneswar
   Design system. Direction: CLINICAL AUTHORITY.
   Palette derived from his own site (#1a3c6e accent, #f5f8fc tint).
   Type: Newsreader (display) + Public Sans (body), both local variable fonts.
   ========================================================================== */

@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:200 800;
  font-display:swap;
  src:url('fonts/newsreader.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Public Sans';
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('fonts/public-sans.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ---------- TOKENS ---------- */
:root{
  color-scheme:light;

  /* Navy ramp, built out from his #1a3c6e */
  --navy-950:#081729;
  --navy-900:#0f2547;
  --navy-800:#14315c;
  --navy-700:#1a3c6e;   /* HIS colour. Primary. 9.6:1 on white. */
  --navy-600:#24508d;
  --navy-500:#3468ad;
  --navy-300:#8fb0d6;
  --navy-200:#c2d5ea;
  --navy-100:#dce6f3;
  --navy-50:#f5f8fc;    /* HIS background tint */

  /* Neutrals — very slightly cool, to sit with the navy */
  --ink:#101720;
  --slate:#3c4a5a;
  --mute:#64748b;
  --faint:#94a3b3;
  --line:#e2e8f0;
  --line-soft:#eef2f7;
  --paper:#ffffff;
  --paper-2:#fafbfd;

  /* Reserved accents — used narrowly, never decoratively */
  --wa:#25d366;         /* WhatsApp ONLY */
  --wa-ink:#0b6b33;
  --star:#c8892b;       /* review stars ONLY */
  --flag:#b4532a;       /* [to confirm] markers ONLY */
  --flag-bg:#fdf3ee;

  /* Semantic */
  --bg:var(--paper);
  --bg-alt:var(--navy-50);
  --bg-invert:var(--navy-900);
  --text:var(--ink);
  --text-2:var(--slate);
  --text-3:var(--mute);
  --text-invert:#eaf1fa;
  --brand:var(--navy-700);
  --brand-hover:var(--navy-800);
  --border:var(--line);
  --card:var(--paper);

  /* Type */
  --display:'Newsreader',Georgia,'Times New Roman',serif;
  --body:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  --t-xs:clamp(.75rem,.72rem + .12vw,.8125rem);
  --t-sm:clamp(.8125rem,.79rem + .14vw,.875rem);
  --t-base:clamp(1rem,.97rem + .16vw,1.0625rem);
  --t-md:clamp(1.0625rem,1.02rem + .22vw,1.1875rem);
  --t-lg:clamp(1.1875rem,1.11rem + .38vw,1.375rem);
  --t-xl:clamp(1.375rem,1.24rem + .62vw,1.75rem);
  --t-2xl:clamp(1.625rem,1.4rem + 1.05vw,2.25rem);
  --t-3xl:clamp(2rem,1.62rem + 1.75vw,3rem);
  --t-4xl:clamp(2.375rem,1.8rem + 2.6vw,3.875rem);

  /* Space — 4px base */
  --s-1:.25rem; --s-2:.5rem;  --s-3:.75rem; --s-4:1rem;
  --s-5:1.5rem; --s-6:2rem;   --s-7:2.5rem; --s-8:3rem;
  --s-9:4rem;   --s-10:5rem;  --s-11:6.5rem; --s-12:8rem;

  --wrap:1180px;
  --wrap-narrow:760px;
  --gutter:clamp(1.125rem,4vw,2.5rem);

  --r-sm:4px; --r:8px; --r-lg:14px; --r-xl:22px; --r-pill:999px;

  --shadow-1:0 1px 2px rgba(16,23,32,.05),0 1px 3px rgba(16,23,32,.04);
  --shadow-2:0 2px 6px rgba(16,23,32,.05),0 8px 20px rgba(16,23,32,.06);
  --shadow-3:0 4px 12px rgba(16,23,32,.07),0 18px 44px rgba(16,23,32,.09);
  --ring:0 0 0 3px var(--paper),0 0 0 6px var(--navy-500);

  /* Motion — calm. No bounce, no overshoot. */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --fast:160ms; --mid:280ms; --slow:520ms;
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--body);
  font-size:var(--t-base);
  line-height:1.65;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--brand);text-decoration-thickness:1px;text-underline-offset:3px}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}
::selection{background:var(--navy-200);color:var(--navy-900)}

/* ---------- TYPE ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.12;letter-spacing:-.015em;color:var(--text);text-wrap:balance}
h1{font-size:var(--t-4xl);letter-spacing:-.025em}
h2{font-size:var(--t-3xl);letter-spacing:-.02em}
h3{font-size:var(--t-xl)}
h4{font-size:var(--t-lg)}
p{text-wrap:pretty}
.lede{font-size:var(--t-md);color:var(--text-2);line-height:1.6;max-width:62ch}
.eyebrow{
  font-family:var(--body);font-size:var(--t-xs);font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;color:var(--brand);
  display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--border);max-width:120px}
.eyebrow--center{justify-content:center}
.eyebrow--center::after{display:none}

/* ---------- LAYOUT ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--narrow{max-width:var(--wrap-narrow)}
.section{padding-block:clamp(3.5rem,8vw,var(--s-11))}
.section--alt{background:var(--bg-alt)}
.section--tight{padding-block:clamp(2.5rem,5vw,var(--s-9))}
.stack>*+*{margin-top:var(--s-4)}
.grid{display:grid;gap:var(--s-5)}
@media(min-width:640px){.grid--2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.grid--3{grid-template-columns:repeat(3,1fr)}}
.skip{
  position:absolute;left:var(--s-4);top:-100px;z-index:200;
  background:var(--brand);color:#fff;padding:var(--s-3) var(--s-4);
  border-radius:var(--r);font-weight:600;transition:top var(--fast) var(--ease);
}
.skip:focus{top:var(--s-4)}

/* ---------- BUTTONS ---------- */
.btn{
  --btn-bg:var(--brand); --btn-fg:#fff; --btn-bd:var(--brand);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  font-family:var(--body);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;
  padding:.875rem 1.5rem;min-height:48px;
  background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-bd);
  border-radius:var(--r);cursor:pointer;text-decoration:none;
  transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),
             transform var(--fast) var(--ease),box-shadow var(--fast) var(--ease);
}
.btn:hover{--btn-bg:var(--brand-hover);--btn-bd:var(--brand-hover);transform:translateY(-1px);box-shadow:var(--shadow-2)}
.btn:active{transform:translateY(0)}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--brand);--btn-bd:var(--border)}
.btn--ghost:hover{--btn-bg:var(--navy-50);--btn-fg:var(--brand-hover);--btn-bd:var(--navy-300)}
.btn--wa{--btn-bg:var(--wa);--btn-fg:#06301a;--btn-bd:var(--wa)}
.btn--wa:hover{--btn-bg:#1fbb59;--btn-bd:#1fbb59}
.btn--lg{font-size:var(--t-base);padding:1rem 1.75rem;min-height:54px}
.btn--block{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn svg{width:18px;height:18px;flex:none}

/* ---------- HEADER ---------- */
.hdr{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px) saturate(1.3);border-bottom:1px solid var(--border)}
@supports not (backdrop-filter:blur(1px)){.hdr{background:var(--bg)}}
.hdr__in{display:flex;align-items:center;gap:var(--s-5);min-height:72px}
.brand{display:flex;align-items:center;gap:var(--s-3);text-decoration:none;color:var(--text);flex:none}
.brand__mark{width:38px;height:38px;flex:none}
.brand__name{font-family:var(--display);font-size:var(--t-md);font-weight:600;line-height:1.1;letter-spacing:-.02em}
.brand__role{font-family:var(--body);font-size:var(--t-xs);color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.nav{margin-left:auto;display:none;align-items:center;gap:var(--s-1)}
@media(min-width:1130px){.nav{display:flex}}
.nav a{
  font-size:var(--t-sm);font-weight:500;color:var(--text-2);text-decoration:none;
  padding:.5rem .7rem;border-radius:var(--r-sm);white-space:nowrap;
  transition:color var(--fast) var(--ease),background var(--fast) var(--ease);
}
.nav a:hover{color:var(--brand);background:var(--navy-50)}
.nav a[aria-current="page"]{color:var(--brand);font-weight:600}
.hdr__cta{display:none;margin-left:var(--s-3);white-space:nowrap;flex:none}
@media(min-width:1130px){.hdr__cta{display:inline-flex}}
.burger{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:none;border:1px solid var(--border);border-radius:var(--r);cursor:pointer}
@media(min-width:1130px){.burger{display:none}}
.burger span{display:block;width:19px;height:1.5px;background:var(--text);position:relative;transition:transform var(--mid) var(--ease),opacity var(--fast) var(--ease)}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:19px;height:1.5px;background:var(--text);transition:inherit}
.burger span::before{top:-6px}.burger span::after{top:6px}
.burger[aria-expanded="true"] span{transform:rotate(45deg)}
.burger[aria-expanded="true"] span::before{transform:rotate(-90deg) translateX(6px)}
.burger[aria-expanded="true"] span::after{opacity:0}
.mnav{display:none;border-top:1px solid var(--border);background:var(--bg);padding:var(--s-4) 0 var(--s-6)}
.mnav[data-open="true"]{display:block}
@media(min-width:1130px){.mnav{display:none !important}}
.mnav a{display:block;padding:.875rem var(--s-1);font-size:var(--t-md);font-weight:500;color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-soft)}
.mnav a[aria-current="page"]{color:var(--brand);font-weight:600}
.mnav .btn{margin-top:var(--s-4)}

/* ---------- ANNOUNCE BAR ---------- */
.announce{background:var(--navy-900);color:#dbe7f5;font-size:var(--t-sm);text-align:center;padding:.6rem var(--gutter)}
.announce a{color:#fff;font-weight:600;text-decoration-color:rgba(255,255,255,.45)}
.announce a:hover{text-decoration-color:#fff}

/* ---------- HERO ---------- */
.hero{position:relative;padding-block:clamp(2.5rem,7vw,var(--s-10)) clamp(3rem,7vw,var(--s-10));overflow:hidden}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(60% 70% at 78% 18%,color-mix(in srgb,var(--navy-100) 60%,transparent),transparent 70%),
    linear-gradient(178deg,var(--navy-50),transparent 55%);
}
.hero__grid{display:grid;gap:var(--s-7);align-items:center}
@media(min-width:900px){.hero__grid{grid-template-columns:1.08fr .92fr;gap:var(--s-9)}}
.hero h1{margin-bottom:var(--s-5)}
.hero h1 em{font-style:italic;color:var(--brand)}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}
.hero__portrait{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-3);background:var(--navy-100);aspect-ratio:1/1}
.hero__portrait img{width:100%;height:100%;object-fit:cover}
.hero__badge{
  position:absolute;left:var(--s-4);bottom:var(--s-4);right:var(--s-4);
  background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(10px);
  border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-4);
  display:flex;align-items:center;gap:var(--s-3);box-shadow:var(--shadow-2);
}

/* ---------- CREDENTIAL / STAT ROW ---------- */
.creds{display:grid;gap:var(--s-4);grid-template-columns:repeat(2,1fr);margin-top:var(--s-7);padding-top:var(--s-6);border-top:1px solid var(--border)}
@media(min-width:760px){.creds{grid-template-columns:repeat(4,1fr)}}
.cred__n{font-family:var(--display);font-size:var(--t-2xl);font-weight:600;color:var(--brand);line-height:1;letter-spacing:-.02em}
.cred__l{font-size:var(--t-xs);color:var(--text-3);margin-top:var(--s-2);letter-spacing:.05em;text-transform:uppercase;font-weight:500}

/* ---------- STARS ---------- */
.stars{display:inline-flex;gap:2px;color:var(--star)}
.stars svg{width:16px;height:16px;fill:currentColor}
.rating{display:inline-flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}
.rating__n{font-weight:700;font-size:var(--t-sm)}
.rating__c{font-size:var(--t-sm);color:var(--text-3)}

/* ---------- CARDS ---------- */
.card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--s-6);box-shadow:var(--shadow-1);
  transition:transform var(--mid) var(--ease),box-shadow var(--mid) var(--ease),border-color var(--mid) var(--ease);
}
.card--link:hover{transform:translateY(-3px);box-shadow:var(--shadow-3);border-color:var(--navy-300)}
.card h3{margin-bottom:var(--s-3)}
.card p{color:var(--text-2);font-size:var(--t-sm)}
.card__ico{width:44px;height:44px;border-radius:var(--r);background:var(--navy-50);color:var(--brand);display:grid;place-items:center;margin-bottom:var(--s-5);border:1px solid var(--navy-100)}
.card__ico svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6}
.card__more{display:inline-flex;align-items:center;gap:var(--s-2);margin-top:var(--s-5);font-size:var(--t-sm);font-weight:600;color:var(--brand);text-decoration:none}
.card--link:hover .card__more svg{transform:translateX(3px)}
.card__more svg{width:15px;height:15px;transition:transform var(--fast) var(--ease)}
a.card{text-decoration:none;color:inherit;display:block}

/* ---------- REVIEW ---------- */
.review{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4);box-shadow:var(--shadow-1)}
.review blockquote{font-family:var(--display);font-size:var(--t-md);line-height:1.55;color:var(--text)}
.review__who{display:flex;align-items:center;gap:var(--s-3);margin-top:auto;padding-top:var(--s-4);border-top:1px solid var(--line-soft)}
.review__av{width:38px;height:38px;border-radius:50%;background:var(--navy-100);color:var(--brand);display:grid;place-items:center;font-weight:700;font-size:var(--t-sm);flex:none}
.review__nm{font-weight:600;font-size:var(--t-sm)}
.review__mt{font-size:var(--t-xs);color:var(--text-3)}

/* ---------- FLAG (placeholders needing the doctor's confirmation) ---------- */
.flag{
  display:inline-flex;align-items:center;gap:.4em;
  background:var(--flag-bg);color:var(--flag);border:1px dashed currentColor;
  border-radius:var(--r-sm);padding:.15em .5em;
  font-family:var(--body);font-size:.78em;font-weight:600;font-style:normal;
  letter-spacing:.02em;vertical-align:middle;
}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--border)}
.faq__i{border-bottom:1px solid var(--border)}
.faq__q{
  width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);
  background:none;border:0;cursor:pointer;text-align:left;padding:var(--s-5) 0;
  font-family:var(--display);font-size:var(--t-lg);font-weight:500;color:var(--text);line-height:1.3;
}
.faq__q:hover{color:var(--brand)}
.faq__sign{flex:none;width:24px;height:24px;position:relative;margin-top:4px;color:var(--brand)}
.faq__sign::before,.faq__sign::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transform:translate(-50%,-50%);transition:transform var(--mid) var(--ease),opacity var(--fast) var(--ease)}
.faq__sign::before{width:13px;height:1.5px}
.faq__sign::after{width:1.5px;height:13px}
.faq__q[aria-expanded="true"] .faq__sign::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--mid) var(--ease)}
.faq__a[data-open="true"]{grid-template-rows:1fr}
.faq__a>div{overflow:hidden}
.faq__a p{color:var(--text-2);padding-bottom:var(--s-5);max-width:70ch}

/* ---------- BOOKING / SLOT PICKER ---------- */
.book{background:var(--card);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-2);overflow:hidden}
.book__hd{padding:var(--s-6);border-bottom:1px solid var(--border);background:var(--navy-50)}
.book__bd{padding:var(--s-6)}
.book__demo{
  display:flex;gap:var(--s-3);align-items:flex-start;
  background:var(--flag-bg);border:1px dashed var(--flag);color:var(--flag);
  border-radius:var(--r);padding:var(--s-4);font-size:var(--t-sm);margin-bottom:var(--s-6);
}
.book__demo svg{width:18px;height:18px;flex:none;margin-top:2px;stroke:currentColor;fill:none;stroke-width:1.8}
.steps{display:flex;gap:var(--s-2);margin-bottom:var(--s-6);flex-wrap:wrap}
.step{display:flex;align-items:center;gap:var(--s-2);font-size:var(--t-xs);font-weight:600;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase}
.step__n{width:22px;height:22px;border-radius:50%;background:var(--line);color:var(--text-3);display:grid;place-items:center;font-size:11px}
.step[data-on="true"]{color:var(--brand)}
.step[data-on="true"] .step__n{background:var(--brand);color:#fff}
.step__sep{width:16px;height:1px;background:var(--border)}

.cal__hd{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4)}
.cal__mo{font-family:var(--display);font-size:var(--t-lg);font-weight:600}
.cal__nav{display:flex;gap:var(--s-2)}
.cal__btn{width:38px;height:38px;border:1px solid var(--border);background:var(--bg);border-radius:var(--r);cursor:pointer;display:grid;place-items:center;color:var(--text-2)}
.cal__btn:hover:not([disabled]){border-color:var(--navy-300);color:var(--brand)}
.cal__btn[disabled]{opacity:.35;cursor:not-allowed}
.cal__btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal__dow{text-align:center;font-size:var(--t-xs);font-weight:600;color:var(--text-3);padding-bottom:var(--s-2);text-transform:uppercase;letter-spacing:.04em}
.cal__d{
  aspect-ratio:1;min-height:40px;border:1px solid transparent;background:var(--bg);
  border-radius:var(--r);cursor:pointer;font-size:var(--t-sm);font-weight:500;color:var(--text);
  display:grid;place-items:center;position:relative;
  transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease);
}
.cal__d:hover:not([disabled]){background:var(--navy-50);border-color:var(--navy-200)}
.cal__d[disabled]{color:var(--faint);cursor:not-allowed;background:transparent}
.cal__d[disabled]::after{content:"";position:absolute;width:14px;height:1px;background:var(--line);transform:rotate(-20deg)}
.cal__d[aria-pressed="true"]{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.cal__d[data-today="true"]:not([aria-pressed="true"]){box-shadow:inset 0 0 0 1.5px var(--navy-300)}
.cal__empty{visibility:hidden}

.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:var(--s-2);margin-top:var(--s-5)}
.slot{
  padding:.7rem .5rem;border:1px solid var(--border);background:var(--bg);border-radius:var(--r);
  cursor:pointer;font-size:var(--t-sm);font-weight:500;font-variant-numeric:tabular-nums;
  transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),color var(--fast) var(--ease);
}
.slot:hover{background:var(--navy-50);border-color:var(--navy-300)}
.slot[aria-pressed="true"]{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.slots__none{color:var(--text-3);font-size:var(--t-sm);padding:var(--s-5) 0}

.field{margin-bottom:var(--s-4)}
.field label{display:block;font-size:var(--t-sm);font-weight:600;margin-bottom:var(--s-2)}
.field .req{color:var(--flag)}
.field input,.field textarea,.field select{
  width:100%;padding:.8rem .9rem;border:1px solid var(--border);border-radius:var(--r);
  background:var(--bg);color:var(--text);font-size:var(--t-base);
  transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease);
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--navy-500);box-shadow:0 0 0 3px var(--navy-100)}
.field textarea{min-height:96px;resize:vertical}
.field__hint{font-size:var(--t-xs);color:var(--text-3);margin-top:var(--s-2)}
.field__err{font-size:var(--t-xs);color:var(--flag);margin-top:var(--s-2);font-weight:600;display:none}
.field[data-invalid="true"] input,.field[data-invalid="true"] textarea{border-color:var(--flag)}
.field[data-invalid="true"] .field__err{display:block}

.confirm{text-align:center;padding:var(--s-6) 0}
.confirm__ico{width:60px;height:60px;border-radius:50%;background:var(--navy-50);color:var(--brand);display:grid;place-items:center;margin:0 auto var(--s-5);border:1px solid var(--navy-100)}
.confirm__ico svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2}
.confirm__sum{background:var(--navy-50);border:1px solid var(--navy-100);border-radius:var(--r-lg);padding:var(--s-5);margin:var(--s-5) 0;text-align:left}
.confirm__row{display:flex;justify-content:space-between;gap:var(--s-4);padding:.45rem 0;font-size:var(--t-sm);border-bottom:1px solid var(--navy-100)}
.confirm__row:last-child{border-bottom:0}
.confirm__row dt{color:var(--text-3)}
.confirm__row dd{font-weight:600;text-align:right}

/* ---------- CONTACT / INFO LIST ---------- */
.info{display:grid;gap:var(--s-5)}
.info__i{display:flex;gap:var(--s-4);align-items:flex-start}
.info__ico{width:40px;height:40px;border-radius:var(--r);background:var(--navy-50);color:var(--brand);display:grid;place-items:center;flex:none;border:1px solid var(--navy-100)}
.info__ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}
.info__l{font-size:var(--t-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:2px}
.info__v{font-weight:500}
.info__v a{color:var(--text);text-decoration:none}
.info__v a:hover{color:var(--brand);text-decoration:underline}

.hours{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
.hours th,.hours td{text-align:left;padding:.6rem 0;border-bottom:1px solid var(--line-soft)}
.hours td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.hours tr[data-today="true"]{color:var(--brand);font-weight:700}

/* ---------- FOOTER ---------- */
.ftr{background:var(--bg-invert);color:#c3d3e6;padding-block:var(--s-9) var(--s-6);margin-top:var(--s-8)}
.ftr h4{color:#fff;font-size:var(--t-sm);font-family:var(--body);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--s-4)}
.ftr a{color:#c3d3e6;text-decoration:none}
.ftr a:hover{color:#fff;text-decoration:underline}
.ftr__grid{display:grid;gap:var(--s-7)}
@media(min-width:760px){.ftr__grid{grid-template-columns:1.4fr 1fr 1fr}}
.ftr__li{display:flex;flex-direction:column;gap:var(--s-3);font-size:var(--t-sm)}
.ftr__bot{margin-top:var(--s-8);padding-top:var(--s-5);border-top:1px solid rgba(255,255,255,.12);font-size:var(--t-xs);color:#8ba4c0;display:flex;flex-wrap:wrap;gap:var(--s-4);justify-content:space-between}

/* ---------- FLOATING MOBILE ACTION BAR ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;gap:var(--s-2);
  padding:var(--s-3) var(--s-4);padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);
  border-top:1px solid var(--border);
}
.dock .btn{flex:1;padding-inline:var(--s-3)}
@media(min-width:1130px){.dock{display:none}}
@media(max-width:1129px){body{padding-bottom:84px}}

/* ---------- MOTION ---------- */
/* Reveal-on-scroll. SAFETY NET: the keyframe below force-reveals everything after
   2.5s no matter what, so a JS failure or a never-firing IntersectionObserver can
   never leave the page permanently blank. .is-in wins first in the normal case. */
[data-reveal]{
  opacity:0;transform:translateY(18px);
  transition:opacity var(--slow) var(--ease-out),transform var(--slow) var(--ease-out);
  animation:reveal-safety 1ms linear 2.5s forwards;
}
[data-reveal].is-in{opacity:1;transform:none;animation:none}
@keyframes reveal-safety{to{opacity:1;transform:none}}
[data-reveal-d="1"]{transition-delay:80ms}
[data-reveal-d="2"]{transition-delay:160ms}
[data-reveal-d="3"]{transition-delay:240ms}
[data-reveal-d="4"]{transition-delay:320ms}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important}
  .btn:hover,.card--link:hover{transform:none}
}

/* ---------- PRINT ---------- */
@media print{
  .hdr,.dock,.announce,.book,.mnav,.skip{display:none !important}
  body{color:#000;background:#fff}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em;color:#555}
}

/* ---------- PHOTO CARDS ----------------------------------------------------
   .cond  — homepage "Conditions treated": photo behind a navy gradient (option B)
   .svc   — service pages "You may also need": photo with an overlapping card (option C)
   -------------------------------------------------------------------------- */
.cond,.svc{display:block;text-decoration:none;color:inherit}
.cond img,.svc img{width:100%;height:100%;object-fit:cover;display:block}

.cond{
  position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:300px;
  display:flex;align-items:flex-end;background:var(--navy-800);box-shadow:var(--shadow-2);
  transition:transform var(--mid) var(--ease),box-shadow var(--mid) var(--ease);
}
.cond:hover{transform:translateY(-3px);box-shadow:var(--shadow-3)}
.cond__art{position:absolute;inset:0;transition:transform var(--slow) var(--ease-out)}
.cond:hover .cond__art{transform:scale(1.05)}
.cond__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(9,26,50,.95) 12%,rgba(15,37,71,.72) 46%,rgba(20,49,92,.22) 100%)}
.cond__bd{position:relative;padding:var(--s-6);color:#fff}
.cond__bd h3{color:#fff;margin-bottom:var(--s-3)}
.cond__bd p{color:#cddcee;font-size:var(--t-sm)}
.cond__more{display:inline-flex;align-items:center;gap:var(--s-2);margin-top:var(--s-5);font-size:var(--t-sm);font-weight:600;color:#fff}
.cond__more svg{width:15px;height:15px;transition:transform var(--fast) var(--ease)}
.cond:hover .cond__more svg{transform:translateX(3px)}
.cond:focus-visible{box-shadow:var(--ring)}

.svc{position:relative;padding-bottom:var(--s-5)}
.svc__art{display:block;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;background:var(--navy-100)}
.svc__art img{transition:transform var(--slow) var(--ease-out)}
.svc:hover .svc__art img{transform:scale(1.05)}
.svc__panel{
  display:block;position:relative;margin:-64px var(--s-4) 0;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--s-5);box-shadow:var(--shadow-2);
  transition:transform var(--mid) var(--ease),box-shadow var(--mid) var(--ease);
}
.svc:hover .svc__panel{transform:translateY(-4px);box-shadow:var(--shadow-3)}
.svc__eyebrow{display:block;font-size:var(--t-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--s-2)}
.svc__panel h3{margin-bottom:var(--s-2);font-size:var(--t-lg)}
.svc__panel p{color:var(--text-2);font-size:var(--t-sm)}
.svc__more{display:inline-flex;align-items:center;gap:var(--s-2);margin-top:var(--s-4);font-size:var(--t-sm);font-weight:600;color:var(--brand)}
.svc__more svg{width:15px;height:15px;transition:transform var(--fast) var(--ease)}
.svc:hover .svc__more svg{transform:translateX(3px)}
.svc:focus-visible .svc__panel{box-shadow:var(--ring)}

/* ---------- VIDEO CARDS ----------------------------------------------------
   Click-to-load facade. Nothing contacts YouTube until the patient presses
   play — the thumbnail is served locally, so the page stays offline-capable
   and sets no third-party cookies on load.
   -------------------------------------------------------------------------- */
.vid{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);display:flex;flex-direction:column;transition:transform var(--mid) var(--ease),box-shadow var(--mid) var(--ease),border-color var(--mid) var(--ease)}
.vid:hover{transform:translateY(-3px);box-shadow:var(--shadow-3);border-color:var(--navy-300)}
.vid__frame{position:relative;aspect-ratio:16/9;background:var(--navy-900);overflow:hidden}
.vid__frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--slow) var(--ease-out),filter var(--mid) var(--ease)}
.vid:hover .vid__frame img{transform:scale(1.04);filter:brightness(.9)}
.vid__play{
  position:absolute;inset:0;width:100%;height:100%;border:0;cursor:pointer;
  background:linear-gradient(to top,rgba(9,26,50,.5),rgba(9,26,50,.05));
  display:grid;place-items:center;padding:0;
}
.vid__play::after{
  content:"";width:62px;height:62px;border-radius:50%;
  background:rgba(255,255,255,.94);box-shadow:0 4px 18px rgba(0,0,0,.35);
  clip-path:none;
  background-image:linear-gradient(transparent,transparent);
  transition:transform var(--mid) var(--ease),background-color var(--fast) var(--ease);
}
.vid__play svg{position:absolute;width:26px;height:26px;fill:var(--navy-700);pointer-events:none;translate:2px 0}
.vid__play:hover::after{transform:scale(1.08);background-color:#fff}
.vid__play:focus-visible{box-shadow:var(--ring)}
.vid__dur{
  position:absolute;right:var(--s-3);bottom:var(--s-3);
  background:rgba(9,26,50,.88);color:#fff;font-size:var(--t-xs);font-weight:600;
  padding:.2rem .45rem;border-radius:var(--r-sm);font-variant-numeric:tabular-nums;pointer-events:none;
}
.vid__bd{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2);flex:1}
.vid__bd h3{font-size:var(--t-md);line-height:1.3}
.vid__meta{margin-top:auto;padding-top:var(--s-3);font-size:var(--t-xs);color:var(--text-3);display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4)}
.vid__ch{font-weight:600;color:var(--text-2)}
.vid__lang{display:inline-block;align-self:flex-start;background:var(--navy-50);color:var(--brand);border:1px solid var(--navy-100);border-radius:var(--r-pill);padding:.1rem .5rem;font-size:var(--t-xs);font-weight:600}
.vid__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid__note{font-size:var(--t-xs);color:var(--text-3);margin-top:var(--s-5)}
