/* ==========================================================
   Little Care Connect: design system
   Powered by JNJ Kids Care Clinic & Vaccination Centre, Madurai
   One source of truth: every colour, size, space, radius and
   shadow below comes from these tokens.
   Fonts: Manrope (headings) + Inter (body). Icons: Lucide.
   ========================================================== */
:root{
  color-scheme:light;
  /* colour: logo blue + baby pink and baby blue backgrounds, logo red for CTAs, neutrals */
  --primary:#2A5FC1;--primary-d:#1B4596;--primary-50:#EAF3FF;--primary-100:#CFE3FA;
  --cta:#D81E3C;--cta-h:#B9162F;--cta-ink:#FFFFFF;
  --ink:#1E2A44;--ink-strong:#101B38;--muted:#566280;--line:#E4E9F5;--rule:#C9D2E8;
  --bg:#FFF4F8;--bg-soft:#EAF3FF;--surface:#FFFFFF;--on-primary:#FFFFFF;
  --paper:#FFFDFB;--paper-edge:#EBDDE4;--cover:#1F4C9E;--cover-d:#14336E;
  --ok:#1E7B4B;--ok-bg:#E6F4EC;--err:#B42318;--err-bg:#FEE4E2;
  --foot-bg:#14295F;--foot-text:#C9D6F2;--foot-strong:#FFFFFF;--foot-line:rgba(255,255,255,.16);--wa:#25D366;--wa-h:#1EBE5B;
  --pink:#FAD3E0;--pink-50:#FFF4F8;--blue-50:#EAF3FF;
  /* shape: two radii, two shadows */
  --radius-sm:8px;--radius-md:16px;
  --shadow-1:0 1px 2px rgba(16,27,56,.06),0 6px 18px -8px rgba(16,27,56,.16);
  --shadow-2:0 2px 4px rgba(16,27,56,.06),0 14px 30px -12px rgba(16,27,56,.26);
  /* spacing: 8px scale */
  --s1:8px;--s2:16px;--s3:24px;--s4:32px;--s6:48px;--s8:64px;--s12:96px;
  --section:clamp(64px,8vw,96px);
  /* type */
  --font-head:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --nav-h:92px;--hh:var(--nav-h);--gutter:clamp(16px,3vw,40px);
  /* names used by the wheel / route / FAQ components */
  --accent:var(--primary);--head-c:var(--ink-strong);--ice:var(--primary-50);--head:var(--font-head);--font:var(--font-body);--r:var(--radius-sm);--r-lg:var(--radius-md);
  --w0:#14336E;--w1:#1F4C9E;--w2:#3E6DBE;--w3:#86A9DF;--w4:#B8CDEE;--w5:#DDE8F8;
  --wt0:#fff;--wt1:#fff;--wt2:#fff;--wt3:#101B38;--wt4:#101B38;--wt5:#101B38;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --primary:#8DB4FF;--primary-d:#B7CDFF;--primary-50:#1E2125;--primary-100:#2A2E34;
  --cta:#FF6B86;--cta-h:#FF8DA1;--cta-ink:#2B0510;
  --ink:#E6E7EA;--ink-strong:#FFFFFF;--muted:#A6A9B0;--line:#2A2C30;--rule:#3A3D43;
  --bg:#0A0A0B;--bg-soft:#111113;--surface:#18191C;--on-primary:#08122B;
  --paper:#232427;--paper-edge:#121315;--cover:#33363B;--cover-d:#202226;
  --foot-bg:#050506;--ok:#6FD39B;--ok-bg:rgba(111,211,155,.14);--err:#FDA29B;--err-bg:rgba(180,35,24,.25);
  --pink:#241B20;--pink-50:#111113;--blue-50:#1A1D22;
  --shadow-1:0 1px 2px rgba(0,0,0,.4),0 6px 18px -8px rgba(0,0,0,.5);
  --shadow-2:0 2px 4px rgba(0,0,0,.4),0 14px 30px -12px rgba(0,0,0,.6);
  --w0:#14336E;--w1:#1F4C9E;--w2:#3E6DBE;--w3:#6F94D6;--w4:#9DB8E6;--w5:#C3D4F0;
  --wt0:#fff;--wt1:#fff;--wt2:#fff;--wt3:#08122B;--wt4:#08122B;--wt5:#08122B;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + var(--s2))}
html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:background-color .25s ease,color .25s ease,border-color .25s ease!important}
body{font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:var(--radius-sm)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type scale ---------- */
h1,h2,h3,h4{font-family:var(--font-head);font-weight:800;color:var(--ink-strong);letter-spacing:-.02em}
h1{font-size:clamp(2.25rem,4.2vw,3.25rem);line-height:1.12}
h2{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.2}
h3{font-size:1.25rem;line-height:1.3}
h4{font-size:1.0625rem;line-height:1.4}
h1,h2,.lead{text-wrap:balance}
.lead{font-size:1.1875rem;color:var(--muted);max-width:34em}
.muted{color:var(--muted)}
.small{font-size:.9375rem}
.eyebrow{display:block;font:700 .8125rem var(--font-head);letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin-bottom:var(--s1)}

/* ---------- layout ---------- */
.wrap{width:min(1180px,100% - 48px);margin-inline:auto}
.wrap.wide{width:min(1280px,100% - 48px)}
section{padding-block:var(--section)}
.soft{background:var(--bg-soft)}
.sec-head{max-width:40rem;margin-bottom:var(--s6)}
.sec-head.c{margin-inline:auto;text-align:center}
.sec-head h2{margin-bottom:var(--s1)}
.sec-head p{color:var(--muted)}
.grid{display:grid;gap:var(--s3)}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center}
.split.top{align-items:start}

/* ---------- icons ---------- */
.i{display:inline-block;flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.ic{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-sm);background:var(--primary-50);color:var(--primary);flex:none}
.ic .i{width:24px;height:24px}

/* ---------- buttons: one size, three styles + the single CTA ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:48px;padding:0 var(--s3);border-radius:var(--radius-sm);border:2px solid transparent;font:700 .9375rem var(--font-head);line-height:1.2;text-align:center;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn .i{width:18px;height:18px}
.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-d);color:#fff}
.btn-secondary{background:transparent;color:var(--primary);border-color:var(--primary)}.btn-secondary:hover{background:var(--primary-50)}
.btn-ghost{background:transparent;color:var(--primary)}.btn-ghost:hover{background:var(--primary-50)}
.btn-cta{background:var(--cta);color:var(--cta-ink)}.btn-cta:hover{background:var(--cta-h)}
.btn-sm{min-height:40px;padding:0 var(--s2);font-size:.875rem}
.btn-light{background:#fff;color:var(--primary-d)}.btn-light:hover{background:var(--primary-50)}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}.btn-outline-light:hover{background:rgba(255,255,255,.12)}
.btns{display:flex;flex-wrap:wrap;gap:var(--s2)}
.link{display:inline-flex;align-items:center;gap:var(--s1);font:700 .9375rem var(--font-head);color:var(--primary)}
.link:hover{color:var(--primary-d);text-decoration:underline}
.link .i{width:16px;height:16px}

/* ---------- loader: medical splash (heartbeat line + 0-100% number), about 3.7s, never blocks ---------- */
#loader{position:fixed;inset:0;z-index:9999;overflow:hidden;background:var(--bg);animation:ldrOut .4s ease 4.95s forwards}
#loader::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px;opacity:.55;-webkit-mask-image:radial-gradient(ellipse at center,#000 0%,transparent 68%);mask-image:radial-gradient(ellipse at center,#000 0%,transparent 68%)}
#loader .ldr-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s3)}
#loader .ldr-logo{width:clamp(140px,18vw,200px);height:auto;overflow:visible;animation:lgBeat 1.15s ease-in-out 1.9s infinite}
#loader .ldr-logo *{transform-box:fill-box;transform-origin:center}
#loader .lg-hd1{animation:lgDrop .7s cubic-bezier(.2,.8,.2,1) .2s both}
#loader .lg-hd2{animation:lgDrop .7s cubic-bezier(.2,.8,.2,1) .4s both}
#loader .lg-c,#loader .lg-t,#loader .lg-h{animation:lgLeft .9s cubic-bezier(.2,.8,.2,1) .35s both}
#loader .lg-o{animation:lgRight .9s cubic-bezier(.2,.8,.2,1) .55s both}
#loader .lg-k{animation:lgPop .8s cubic-bezier(.3,1.4,.5,1) .95s both}
#loader .lg-s{animation:ldrFade .6s ease 1.5s both}
#loader .ldr-name{margin-top:var(--s4);font:800 clamp(1.625rem,3.2vw,2.25rem) var(--font-head);letter-spacing:-.02em;color:var(--ink-strong);animation:ldrUp .7s ease 1.4s both}
#loader .ldr-tag{margin-top:8px;font-size:1rem;color:var(--muted);animation:ldrUp .7s ease 1.65s both}
#loader .ldr-ecg{display:block;width:320px;max-width:80vw;height:auto;margin-top:var(--s4);overflow:visible;animation:ldrFade .5s ease .7s both}
#loader .ecg-track,#loader .ecg-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
#loader .ecg-track{stroke:var(--line)}
#loader .ecg-line{stroke:var(--primary);stroke-dasharray:100;stroke-dashoffset:100;animation:ecgDraw 2.4s linear .8s forwards}
#loader .ldr-pct{margin-top:var(--s1);min-height:1.6em;font:800 1.125rem var(--font-head);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--primary)}
@keyframes ecgDraw{to{stroke-dashoffset:0}}
@keyframes lgBeat{0%,70%,100%{transform:scale(1)}14%{transform:scale(1.055)}28%{transform:scale(1)}42%{transform:scale(1.035)}}
@keyframes lgDrop{from{opacity:0;transform:translateY(-26px) scale(.8)}to{opacity:1;transform:none}}
@keyframes lgLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
@keyframes lgRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes lgPop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}
@keyframes ldrFade{from{opacity:0}to{opacity:1}}
@keyframes ldrUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes ldrOut{to{opacity:0;visibility:hidden;pointer-events:none}}
html.seen #loader{display:none}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--line)}
.site-head.stuck{box-shadow:var(--shadow-1)}
.nav{display:flex;align-items:center;gap:var(--s4);min-height:var(--nav-h);width:100%;padding-inline:var(--gutter)}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand img{width:56px;height:56px;object-fit:contain}
.brand b{font:800 1.375rem var(--font-head);color:var(--ink-strong);letter-spacing:-.02em;white-space:nowrap}
.nav>nav{flex:1;min-width:0}
nav ul{display:flex;align-items:center;justify-content:center;gap:4px}
nav a.l{display:block;padding:12px 14px;font:600 1rem var(--font-head);color:var(--ink);border-radius:var(--radius-sm);white-space:nowrap;transition:color .2s,background-color .2s}
nav a.l:hover{color:var(--primary);background:var(--bg-soft)}
nav a.l.on{color:var(--primary);background:var(--primary-50)}
.m-actions{display:none}
.nav-end{display:flex;align-items:center;gap:var(--s2);flex:none}
.nav-end .book{padding:0 var(--s3)}
.phone{display:none;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--primary);transition:border-color .2s}
.phone:hover{border-color:var(--primary)}
.phone .i{width:18px;height:18px}
.theme,.burger{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-strong);cursor:pointer;transition:border-color .2s}
.theme:hover,.burger:hover{border-color:var(--primary)}
.theme .i-sun{display:none}
:root[data-theme="dark"] .theme .i-sun{display:inline-block}
:root[data-theme="dark"] .theme .i-moon{display:none}
.burger{display:none}
.burger .i-x{display:none}.burger.open .i-x{display:inline-block}.burger.open .i-menu{display:none}

/* ---------- hero ---------- */
.hero{background:var(--bg-soft);padding-block:var(--s8) var(--s12);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s8);align-items:center}
.hero h1{margin-bottom:var(--s2)}
.hero .lead{margin-bottom:var(--s4)}
.hero .btns{margin-bottom:var(--s4)}
.points{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3)}
.points li{display:flex;align-items:center;gap:var(--s1);font-weight:600;font-size:.9375rem;color:var(--ink)}
.points .i{color:var(--primary);width:18px;height:18px}
.hero-bg{position:relative;overflow:hidden;min-height:clamp(540px,64vh,700px);display:flex;align-items:center}
.hero-bg .hero-grid{position:relative;z-index:2;grid-template-columns:minmax(0,680px)}
.hero-slides{position:absolute;inset:0;z-index:0;background:var(--bg-soft)}
.hero-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%;opacity:0;transition:opacity .9s ease}
.hero-slides img.on{opacity:1}
.hero-bg::before{content:"";position:absolute;inset:0;z-index:1;background:var(--bg-soft);opacity:.88}
@supports (background:color-mix(in srgb,red,blue)){.hero-bg::before{opacity:1;background:linear-gradient(90deg,var(--bg-soft) 0%,color-mix(in srgb,var(--bg-soft) 94%,transparent) 42%,color-mix(in srgb,var(--bg-soft) 50%,transparent) 100%)}}
.hero-img{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-2);aspect-ratio:5/4;background:var(--primary-100)}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}

/* ---------- facts strip ---------- */
.facts{padding:0;margin-top:calc(var(--s6) * -1);position:relative;z-index:2}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.fact{display:flex;align-items:center;gap:var(--s2);padding:var(--s3);border-right:1px solid var(--line)}
.fact:last-child{border-right:0}
.fact b{display:block;font:700 1rem var(--font-head);color:var(--ink-strong);line-height:1.3}
.fact span.t{display:block;font-size:.875rem;color:var(--muted);line-height:1.4}

/* ---------- cards ---------- */
.card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--s4);box-shadow:var(--shadow-1);height:100%}
a.card{transition:box-shadow .25s,border-color .25s}
a.card:hover{box-shadow:var(--shadow-2);border-color:var(--primary)}
.card .ic{margin-bottom:var(--s3)}
.card h3{margin-bottom:var(--s1)}
.card p{color:var(--muted);font-size:1rem}
.card .grow{flex:1}
.card .link{margin-top:var(--s3)}
.tags{display:flex;flex-wrap:wrap;gap:var(--s1);margin:var(--s2) 0 var(--s3)}
.tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);background:var(--primary-50);color:var(--primary-d);font:600 .875rem var(--font-body)}
:root[data-theme="dark"] .tag{color:var(--primary)}
.tag .i{width:16px;height:16px}
.checks{display:grid;gap:var(--s2);margin:var(--s3) 0}
.checks li{display:flex;gap:12px;align-items:flex-start;font-weight:500}
.checks .i{width:20px;height:20px;margin-top:3px;color:var(--primary)}

/* ---------- page head (inner pages) ---------- */
.page-head{background:var(--bg-soft);border-bottom:1px solid var(--line);padding-block:var(--s8)}
.page-head .wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center}
.page-head h1{margin-bottom:var(--s2)}
.page-head p{color:var(--muted);font-size:1.125rem;max-width:30em}
.page-head .banner{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.page-bg{position:relative;overflow:hidden;display:flex;align-items:center;min-height:clamp(380px,50vh,520px);padding-block:var(--s8)}
.page-bg .ph-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;z-index:0}
.page-bg::before{content:"";position:absolute;inset:0;z-index:1;background:var(--bg-soft);opacity:.82}
@supports (background:color-mix(in srgb,red,blue)){.page-bg::before{opacity:1;background:linear-gradient(90deg,var(--bg-soft) 0%,color-mix(in srgb,var(--bg-soft) 92%,transparent) 36%,color-mix(in srgb,var(--bg-soft) 18%,transparent) 100%)}}
.page-bg::after{display:none}
.page-bg.has-visual{min-height:0}
.page-bg.has-visual .wrap{grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center}
.page-bg.has-visual::before{opacity:.9;background:var(--bg-soft)}
.page-bg .wrap{position:relative;z-index:2;width:min(1180px,100% - 48px);grid-template-columns:minmax(0,680px)}
.crumbs{display:flex;align-items:center;gap:var(--s1);font:600 .875rem var(--font-head);color:var(--muted);margin-bottom:var(--s2)}
.crumbs a{color:var(--primary)}.crumbs a:hover{text-decoration:underline}
.crumbs .i{width:14px;height:14px}

/* ---------- vaccination checker ---------- */
/* ---------- vaccination checker as a clinic clipboard ---------- */
.clipboard{position:relative;max-width:960px;margin:0 auto;padding:var(--s8) var(--s4) var(--s4);background:var(--cover);border-radius:20px;box-shadow:var(--shadow-2),inset 0 0 0 2px var(--cover-d)}
.clip{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:150px;height:54px;z-index:3;border-radius:12px 12px 8px 8px;background:linear-gradient(180deg,#f6f8f9 0%,#b5bfc4 55%,#dde3e6 100%);box-shadow:0 6px 12px -4px rgba(0,0,0,.45),inset 0 -2px 0 rgba(0,0,0,.12)}
.clip i{position:absolute;left:50%;top:14px;width:62px;height:16px;margin-left:-31px;border-radius:8px;background:#6d787d;box-shadow:inset 0 2px 4px rgba(0,0,0,.5)}
.sheet{position:relative;isolation:isolate;background:var(--paper);border-radius:6px;padding:var(--s6) var(--s6) var(--s4);box-shadow:0 2px 0 var(--paper-edge),0 4px 0 var(--paper),0 6px 0 var(--paper-edge),0 12px 24px -10px rgba(0,0,0,.45)}
.sheet::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 35px,var(--line) 35px,var(--line) 36px);opacity:.55}
.sheet::after{content:"";position:absolute;top:0;bottom:0;left:var(--s4);width:2px;z-index:-1;background:var(--primary-100)}
.sheet-head{display:flex;align-items:center;gap:var(--s2);padding-bottom:var(--s2);margin-bottom:var(--s3);border-bottom:2px solid var(--ink-strong)}
.sh-mark{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:50%;background:var(--bg);border:1px solid var(--line)}
.sh-mark img{width:36px;height:36px;object-fit:contain}
.sh-title{flex:1;min-width:0}
.sh-eyebrow{font:700 .75rem var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.sheet-head h2{font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.2}
.sh-ecg{width:150px;height:40px;flex:none;overflow:visible}
.sh-ecg path{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.sh-ecg .e1{stroke:var(--line)}
.sh-ecg .e2{stroke:var(--primary);stroke-dasharray:100;stroke-dashoffset:100;animation:shEcg 3.2s linear infinite}
@keyframes shEcg{0%{stroke-dashoffset:100}55%{stroke-dashoffset:0}85%,100%{stroke-dashoffset:0;opacity:0}}
.sh-cross{position:relative;width:34px;height:34px;flex:none;border-radius:var(--radius-sm);background:var(--err)}
.sh-cross::before,.sh-cross::after{content:"";position:absolute;left:50%;top:50%;background:#fff;border-radius:2px;transform:translate(-50%,-50%)}
.sh-cross::before{width:18px;height:5px}.sh-cross::after{width:5px;height:18px}
.sheet .checker{padding:0;margin:0}
.sh-lead{color:var(--ink);font-weight:500;margin-bottom:var(--s3);max-width:34em}
.sheet .field label,.sheet .gender legend{font:700 .75rem var(--font-head);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sheet .field input{min-height:46px;padding:0 2px;border:0;border-bottom:2px solid var(--ink-strong);border-radius:0;background:transparent;font-weight:600;font-size:1.0625rem}
.sheet .field input::placeholder{color:var(--muted);font-weight:400}
.sheet .field input:focus{box-shadow:none;border-bottom-color:var(--primary);background:var(--primary-50)}
.sheet .gender{margin:var(--s3) 0}
.sheet .gender label{border:0;padding:6px var(--s3) 6px 0;border-radius:0;font-weight:600}
.sheet .gender label:has(input:checked){background:transparent}
.sh-points{display:grid;grid-template-columns:1fr 1fr;gap:var(--s1) var(--s4);margin:var(--s3) 0 var(--s4)}
.sh-points li{display:flex;align-items:center;gap:12px;font-weight:600;font-size:.9375rem}
.cb{display:grid;place-items:center;width:22px;height:22px;flex:none;border:2px solid var(--primary);border-radius:var(--radius-sm);color:var(--primary)}
.cb .i{width:14px;height:14px}
.sheet .checker .btn{min-height:52px}
.sh-note{display:flex;gap:var(--s1);align-items:flex-start;margin-top:var(--s2);color:var(--muted);font-size:.875rem}
.sh-note .i{width:18px;height:18px;color:var(--primary);margin-top:2px}
.checker-card{display:grid;grid-template-columns:5fr 7fr;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-2);overflow:hidden}
.checker-card .side{background:var(--primary);color:var(--on-primary);padding:var(--s6);display:flex;flex-direction:column;justify-content:center}
.checker-card .side h2{color:inherit;font-size:1.625rem;margin-bottom:var(--s2)}
.checker-card .side p{opacity:.92;margin-bottom:var(--s3)}
.checker-card .side li{display:flex;gap:12px;align-items:center;font-weight:600;margin-bottom:12px}
.checker-card .side .i{width:20px;height:20px}
.checker{padding:var(--s6)}
.checker h2{font-size:1.375rem;margin-bottom:var(--s3)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.field label,.gender legend{display:block;font:700 .875rem var(--font-head);color:var(--ink-strong);margin:0 0 6px}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:0 var(--s2);border-radius:var(--radius-sm);border:1.5px solid var(--rule);background:var(--surface);transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-100)}
.field [aria-invalid="true"]{border-color:var(--err)}
.field .err{display:none;margin-top:6px;font-size:.875rem;font-weight:600;color:var(--err)}
.field.bad .err{display:block}
.gender{border:0;margin:var(--s2) 0 var(--s3);padding:0}
.gender .opts{display:flex;gap:var(--s1);flex-wrap:wrap}
.gender label{display:inline-flex;align-items:center;gap:var(--s1);font-weight:600;cursor:pointer;padding:10px var(--s2);border-radius:var(--radius-sm);border:1.5px solid var(--rule)}
.gender input{width:18px;height:18px;accent-color:var(--primary);margin:0}
.gender label:has(input:checked){border-color:var(--primary);background:var(--primary-50)}
.checker .btn,.form .btn{width:100%}
.form-msg,.form-status{margin-top:var(--s2);font-weight:600;min-height:1.4em;font-size:.9375rem;color:var(--err)}
.form-status.ok{color:var(--ok)}

/* ---------- schedule result ---------- */
.result{background:var(--bg-soft);padding-block:var(--s8)}
.result[hidden]{display:none}
.result h2{margin-bottom:6px;outline:0}
.result .sub2{color:var(--muted);margin-bottom:var(--s4)}
.ms-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s2)}
.ms{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--s2) var(--s2) 14px}
.ms .l{display:block;font:700 1rem var(--font-head);color:var(--ink-strong);margin-bottom:4px}
.ms .d{display:block;font-size:.9375rem;color:var(--muted);margin-bottom:12px;min-height:2.8em}
.ms .s{display:inline-block;font:700 .75rem var(--font-head);padding:3px 10px;border-radius:var(--radius-sm);background:var(--primary-50);color:var(--primary-d)}
:root[data-theme="dark"] .ms .s{color:var(--primary)}
.ms.past .s{background:var(--line);color:var(--muted)}
.ms.soon{border-color:var(--primary)}.ms.soon .s{background:var(--ok-bg);color:var(--ok)}
.res-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s3)}
.res-help{max-width:38em;color:var(--ink);font-weight:500}
.res-sel{display:flex;align-items:center;gap:var(--s1)}
#res-count{margin-right:var(--s1);font:700 .9375rem var(--font-head);color:var(--primary)}
.ms{position:relative;cursor:pointer;transition:border-color .2s,background-color .2s,opacity .2s,box-shadow .2s}
.ms input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ms .tick{position:absolute;top:var(--s2);right:var(--s2);width:24px;height:24px;border:2px solid var(--rule);border-radius:var(--radius-sm);background:var(--surface);transition:background-color .2s,border-color .2s}
.ms.sel{border-color:var(--primary);box-shadow:var(--shadow-1)}
.ms.sel .tick{background:var(--primary);border-color:var(--primary)}
.ms.sel .tick::after{content:"";position:absolute;left:6px;top:1px;width:6px;height:12px;border:solid var(--on-primary);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.ms:not(.sel){opacity:.62;background:var(--bg-soft)}
.ms input:focus-visible ~ .tick{outline:3px solid var(--primary);outline-offset:2px}
.ms .l{padding-right:34px}
.btn[disabled],.btn.is-disabled{opacity:.5;cursor:not-allowed}
.btn.is-disabled{pointer-events:none}
.visit{display:grid;grid-template-columns:1fr 1.5fr auto;gap:var(--s4);align-items:center;margin-top:var(--s4);padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.visit h3{margin-bottom:4px}
.visit p{color:var(--muted);font-size:.9375rem}
.visit ul{display:grid;gap:var(--s1)}
.visit li{display:flex;gap:var(--s1);align-items:flex-start;color:var(--ink);font-size:.9375rem}
.visit li .i{color:var(--primary);margin-top:3px;width:18px;height:18px}
.visit a:not(.btn){font-weight:700;color:var(--ink-strong)}.visit a:not(.btn):hover{color:var(--primary)}
.res-note{margin:var(--s3) 0;color:var(--muted);font-size:.9375rem;max-width:48rem}
.res-actions{display:flex;flex-wrap:wrap;gap:var(--s2)}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);counter-reset:st}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--s4);box-shadow:var(--shadow-1)}
.step::before{counter-increment:st;content:counter(st);display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--primary);color:var(--on-primary);font:800 1.0625rem var(--font-head);margin-bottom:var(--s2)}
.step h3{margin-bottom:6px}.step p{color:var(--muted)}

/* ---------- doctors ---------- */
.doc{display:grid;grid-template-columns:200px 1fr;gap:var(--s4);align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--s4);box-shadow:var(--shadow-1);height:100%}
.doc img,.doc .ph{width:200px;aspect-ratio:3/4;object-fit:cover;object-position:50% 22%;border-radius:var(--radius-sm);background:var(--primary-100)}
.doc .ph{display:grid;place-items:center;color:var(--primary)}.doc .ph .i{width:48px;height:48px}
.doc h3{font-size:1.375rem;margin-bottom:4px}
.doc .role{color:var(--primary);font-weight:700;margin-bottom:var(--s1)}
.doc .qual{color:var(--muted);font-size:.9375rem;margin-bottom:var(--s2)}
.doc .btn{margin-top:var(--s2)}
.quals{display:flex;flex-wrap:wrap;gap:var(--s1);margin:var(--s2) 0 var(--s3)}

/* ---------- info rows, hours, contact ---------- */
.info-list{display:grid;gap:var(--s3)}
.info-row{display:flex;gap:var(--s2);align-items:flex-start}
.info-row h3{font-size:1.0625rem;margin-bottom:2px}
.info-row p,.info-row a{color:var(--muted)}
.info-row a:hover{color:var(--primary)}
.hours{width:100%;border-collapse:collapse}
.hours th,.hours td{text-align:left;padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem}
.hours th{font-weight:600;color:var(--ink-strong)}
.hours td{color:var(--muted);text-align:right}
.note{display:flex;gap:var(--s2);align-items:flex-start;background:var(--primary-50);border-left:4px solid var(--primary);border-radius:var(--radius-sm);padding:var(--s2) var(--s3);color:var(--ink)}
.note .i{color:var(--primary);margin-top:3px}
.map{border-radius:var(--radius-md);overflow:hidden;height:380px;background:var(--primary-50);border:1px solid var(--line)}
.map iframe{width:100%;height:100%;border:0}
.form h3{margin-bottom:6px}.form>p{color:var(--muted);margin-bottom:var(--s3)}
.form .field{margin-bottom:var(--s2)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.kmap{border-radius:var(--radius-md);overflow:hidden;min-height:300px;background:var(--primary-50);border:1px solid var(--line)}
.kmap iframe{width:100%;height:100%;min-height:300px;border:0}


/* ---------- services showcase (home): compact list + one photo panel ---------- */
section.tight{padding-block:var(--s8)}
.sec-row{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);margin-bottom:var(--s4)}
.sec-row h2{max-width:18em;font-size:clamp(1.5rem,2.4vw,2rem)}
.sec-side{max-width:22em;display:grid;gap:var(--s1);justify-items:start;color:var(--muted)}
.showcase{display:grid;grid-template-columns:5fr 6fr;gap:var(--s4);align-items:stretch}
.sc-list{display:grid;gap:var(--s1);align-content:center}
.sc-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:var(--s2);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);transition:border-color .2s,background-color .2s,box-shadow .2s}
.sc-item .n{font:800 .8125rem var(--font-head);letter-spacing:.1em;color:var(--primary)}
.sc-item b{font:700 1.125rem var(--font-head);color:var(--ink-strong)}
.sc-item .go{display:grid;place-items:center;width:36px;height:36px;border:1.5px solid var(--line);border-radius:var(--radius-sm);color:var(--primary);transition:background-color .2s,color .2s,border-color .2s}
.sc-item .go .i{width:16px;height:16px}
.sc-item .sc-desc{display:none;grid-column:2 / span 2;margin-top:6px;color:var(--muted);font-size:.9375rem}
.sc-item:hover,.sc-item.on{border-color:var(--primary);background:var(--primary-50)}
.sc-item.on{box-shadow:inset 4px 0 0 var(--primary)}
.sc-item.on .go,.sc-item:hover .go{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.sc-panels{position:relative;min-height:360px;border-radius:var(--radius-md);overflow:hidden;background:var(--primary-100);box-shadow:var(--shadow-1)}
.sc-panel{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}
.sc-panel.on{opacity:1;visibility:visible}
.sc-panel img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}
.sc-cap{position:absolute;left:var(--s3);right:var(--s3);bottom:var(--s3);display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s2) var(--s3);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-2)}
.sc-cap h3{font-size:1.0625rem;margin-bottom:2px}
.sc-cap p{color:var(--muted);font-size:.875rem;line-height:1.45}
.sc-cap .btn{flex:none}


/* ---------- 3D scene (Contact page): layered logo + orbiting contact icons ---------- */
.scene{--R:230px;position:relative;height:440px;display:grid;place-items:center;perspective:1200px}
.stage{position:relative;width:300px;height:300px;transform-style:preserve-3d;transform:rotateX(calc(-8deg + var(--rx,0deg))) rotateY(var(--ry,0deg));transition:transform .25s ease-out}
.core{position:absolute;inset:0;transform-style:preserve-3d;animation:sway 7s ease-in-out infinite alternate}
.layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.l1{transform:translateZ(0)}.l2{transform:translateZ(34px)}.l3{transform:translateZ(68px)}.l4{transform:translateZ(102px)}
.orb{position:absolute;left:50%;top:50%;width:92px;height:92px;margin:-46px 0 0 -46px;animation:orbit 22s linear infinite;animation-delay:calc(var(--i) * -5.5s)}
.orb svg{display:block;width:100%;height:100%;overflow:visible}
.floor{position:absolute;left:50%;bottom:34px;width:260px;height:36px;margin-left:-130px;border-radius:50%;background:var(--ink-strong);opacity:.12;filter:blur(16px);animation:floorPulse 7s ease-in-out infinite alternate}
.visual{position:relative}
.gl{position:relative;display:none;height:460px}
.gl canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.visual.gl-on .gl{display:block}
.visual.gl-on .scene{display:none}
.visual.gl-on .gl .floor{display:none}
@keyframes sway{from{transform:rotateY(-26deg)}to{transform:rotateY(26deg)}}
@keyframes orbit{0.0%{transform:translate3d(calc(var(--R) * 0.0),0.0px,calc(var(--R) * 1.0))}3.125%{transform:translate3d(calc(var(--R) * 0.1951),6.1px,calc(var(--R) * 0.9808))}6.25%{transform:translate3d(calc(var(--R) * 0.3827),11.3px,calc(var(--R) * 0.9239))}9.375%{transform:translate3d(calc(var(--R) * 0.5556),14.8px,calc(var(--R) * 0.8315))}12.5%{transform:translate3d(calc(var(--R) * 0.7071),16.0px,calc(var(--R) * 0.7071))}15.625%{transform:translate3d(calc(var(--R) * 0.8315),14.8px,calc(var(--R) * 0.5556))}18.75%{transform:translate3d(calc(var(--R) * 0.9239),11.3px,calc(var(--R) * 0.3827))}21.875%{transform:translate3d(calc(var(--R) * 0.9808),6.1px,calc(var(--R) * 0.1951))}25.0%{transform:translate3d(calc(var(--R) * 1.0),0.0px,calc(var(--R) * 0.0))}28.125%{transform:translate3d(calc(var(--R) * 0.9808),-6.1px,calc(var(--R) * -0.1951))}31.25%{transform:translate3d(calc(var(--R) * 0.9239),-11.3px,calc(var(--R) * -0.3827))}34.375%{transform:translate3d(calc(var(--R) * 0.8315),-14.8px,calc(var(--R) * -0.5556))}37.5%{transform:translate3d(calc(var(--R) * 0.7071),-16.0px,calc(var(--R) * -0.7071))}40.625%{transform:translate3d(calc(var(--R) * 0.5556),-14.8px,calc(var(--R) * -0.8315))}43.75%{transform:translate3d(calc(var(--R) * 0.3827),-11.3px,calc(var(--R) * -0.9239))}46.875%{transform:translate3d(calc(var(--R) * 0.1951),-6.1px,calc(var(--R) * -0.9808))}50.0%{transform:translate3d(calc(var(--R) * 0.0),-0.0px,calc(var(--R) * -1.0))}53.125%{transform:translate3d(calc(var(--R) * -0.1951),6.1px,calc(var(--R) * -0.9808))}56.25%{transform:translate3d(calc(var(--R) * -0.3827),11.3px,calc(var(--R) * -0.9239))}59.375%{transform:translate3d(calc(var(--R) * -0.5556),14.8px,calc(var(--R) * -0.8315))}62.5%{transform:translate3d(calc(var(--R) * -0.7071),16.0px,calc(var(--R) * -0.7071))}65.625%{transform:translate3d(calc(var(--R) * -0.8315),14.8px,calc(var(--R) * -0.5556))}68.75%{transform:translate3d(calc(var(--R) * -0.9239),11.3px,calc(var(--R) * -0.3827))}71.875%{transform:translate3d(calc(var(--R) * -0.9808),6.1px,calc(var(--R) * -0.1951))}75.0%{transform:translate3d(calc(var(--R) * -1.0),0.0px,calc(var(--R) * -0.0))}78.125%{transform:translate3d(calc(var(--R) * -0.9808),-6.1px,calc(var(--R) * 0.1951))}81.25%{transform:translate3d(calc(var(--R) * -0.9239),-11.3px,calc(var(--R) * 0.3827))}84.375%{transform:translate3d(calc(var(--R) * -0.8315),-14.8px,calc(var(--R) * 0.5556))}87.5%{transform:translate3d(calc(var(--R) * -0.7071),-16.0px,calc(var(--R) * 0.7071))}90.625%{transform:translate3d(calc(var(--R) * -0.5556),-14.8px,calc(var(--R) * 0.8315))}93.75%{transform:translate3d(calc(var(--R) * -0.3827),-11.3px,calc(var(--R) * 0.9239))}96.875%{transform:translate3d(calc(var(--R) * -0.1951),-6.1px,calc(var(--R) * 0.9808))}100.0%{transform:translate3d(calc(var(--R) * -0.0),-0.0px,calc(var(--R) * 1.0))}}
@keyframes floorPulse{from{transform:scaleX(1)}to{transform:scaleX(.8)}}

/* ---------- doctors book (home): a realistic open book with a page turn ---------- */
.book-m{display:none}
.dbook{--bh:580px;max-width:1040px;margin:0 auto}
.bk-stage{position:relative;height:var(--bh);perspective:2400px;margin-inline:16px}
.bk-cover{position:absolute;inset:-14px -16px -18px;border-radius:14px;background:var(--cover);box-shadow:0 30px 50px -22px rgba(20,41,95,.55),0 10px 18px -8px rgba(20,41,95,.35),inset 0 0 0 2px var(--cover-d)}
.bk-stage::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;margin-left:-1.5px;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,.05) 60%,rgba(0,0,0,.2));z-index:4;pointer-events:none}
.bk-page{position:absolute;top:0;width:50%;height:100%;overflow:hidden;background:var(--paper);color:var(--ink);box-shadow:0 2px 0 var(--paper-edge),0 4px 0 var(--paper),0 6px 0 var(--paper-edge)}
.bk-page::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1}
.bk-left{left:0;border-radius:6px 0 0 6px;z-index:1}
.bk-left::after{background:linear-gradient(to left,rgba(0,0,0,.2),rgba(0,0,0,.05) 9%,transparent 22%)}
.bk-right{right:0;border-radius:0 6px 6px 0;z-index:1}
.bk-right::after{background:linear-gradient(to right,rgba(0,0,0,.2),rgba(0,0,0,.05) 9%,transparent 22%)}
.bk-leaf{position:absolute;top:0;right:0;width:50%;height:100%;z-index:3;transform-origin:left center;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.645,.045,.355,1);will-change:transform}
.bk-face{position:absolute;inset:0;width:100%;overflow:visible;box-shadow:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}
.bk-front{border-radius:0 6px 6px 0}
.bk-front::after{background:linear-gradient(to right,rgba(0,0,0,.2),rgba(0,0,0,.05) 9%,transparent 22%)}
.bk-back{-webkit-transform:rotateY(180deg) translateZ(0);transform:rotateY(180deg) translateZ(0);border-radius:6px 0 0 6px}
.bk-back::after{background:linear-gradient(to right,rgba(0,0,0,.2),rgba(0,0,0,.05) 9%,transparent 22%)}
.bk-front::before,.bk-back::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:rgba(0,0,0,.4);transition:opacity 1.1s ease}
.bk-front::before{opacity:0}
.bk-back::before{opacity:1}
.dbook.turned .bk-leaf{transform:rotateY(-180deg)}
.dbook.turning .bk-corner{pointer-events:none}
.dbook.turned .bk-front::before{opacity:1}
.dbook.turned .bk-back::before{opacity:0}
.bk-photo{height:100%;display:grid;place-content:center;justify-items:center;gap:var(--s2);padding:var(--s4) var(--s4) var(--s6)}
.bk-photo .frame{position:relative;background:#fff;padding:12px 12px 14px;border-radius:4px;box-shadow:0 10px 24px -8px rgba(0,0,0,.35),0 2px 4px rgba(0,0,0,.12);transform:rotate(-1.6deg);width:min(300px,100%)}
.bk-photo .frame::before{content:"";position:absolute;top:-12px;left:50%;width:84px;height:24px;margin-left:-42px;background:rgba(242,155,180,.6);transform:rotate(3deg);box-shadow:0 1px 2px rgba(0,0,0,.15)}
.bk-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;display:block;background:var(--primary-100)}
.bk-photo .cap{font:700 1rem var(--font-head);color:var(--ink-strong);text-align:center}
.bk-info{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:var(--s6) var(--s6) var(--s6) var(--s6)}
.bk-info h3{font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:6px}
.bk-info .role{color:var(--primary);font-weight:700;margin-bottom:var(--s1)}
.bk-info .qual{color:var(--muted);font-size:.9375rem;margin-bottom:var(--s2)}
.bk-info .tags{margin-bottom:var(--s3)}
.folio{position:absolute;bottom:var(--s2);left:0;right:0;text-align:center;font:600 .8125rem var(--font-head);color:var(--muted);letter-spacing:.08em;z-index:1}
.bk-corner{position:absolute;right:0;bottom:0;width:46px;height:46px;border:0;padding:0;cursor:pointer;z-index:2;background:linear-gradient(135deg,transparent 50%,var(--paper-edge) 50%,rgba(0,0,0,.18) 100%);border-bottom-right-radius:6px;transition:width .25s,height .25s}
.bk-corner:hover,.bk-corner:focus-visible{width:70px;height:70px}
.bk-corner.prev{right:auto;left:0;background:linear-gradient(225deg,transparent 50%,var(--paper-edge) 50%,rgba(0,0,0,.18) 100%);border-radius:0 0 0 6px}
.bk-ctrl{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-top:var(--s6)}
.bk-cnt{font:700 .9375rem var(--font-head);color:var(--primary);min-width:8em;text-align:center}
.bk-ctrl .btn[disabled]{opacity:.45;cursor:not-allowed}

/* ---------- consultation console: tabs + a video-call window ---------- */
.tele{display:grid;grid-template-columns:1fr 1.05fr;gap:var(--s6);align-items:center;max-width:1040px;margin:0 auto}
.tele-tabs{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;margin-bottom:var(--s4);background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius-md)}
.tele-tab{display:flex;align-items:center;justify-content:center;gap:var(--s1);min-height:46px;padding:0 var(--s3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font:700 .9375rem var(--font-head);cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s}
.tele-tab .i{width:18px;height:18px}
.tele-tab:hover{color:var(--ink-strong)}
.tele-tab.on{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-1)}
.tele-panel h3{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:var(--s1)}
.tele-intro{color:var(--muted);margin-bottom:var(--s3);max-width:30em}
.tele-label{font:700 .75rem var(--font-head);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s1)}
.tele-panel .tags{margin:0 0 var(--s4)}
.tele-panel .btn{min-width:240px}
.tele:not(.is-live) .tele-tabs{display:none}
.tele:not(.is-live) .tele-panel[hidden]{display:block}
.tele:not(.is-live) .tele-panel+.tele-panel{margin-top:var(--s6)}
.tele.is-live .tele-panel{display:none}.tele.is-live .tele-panel.on{display:block;animation:teleIn .35s ease both}
@keyframes teleIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dev{position:relative;padding:12px;border-radius:22px;background:#12191C;box-shadow:var(--shadow-2),0 0 0 1px rgba(255,255,255,.06) inset}
.dev-bar{display:flex;align-items:center;gap:7px;padding:2px 6px 10px;color:#9aa8ad;font:600 .75rem var(--font-head);letter-spacing:.04em}
.dev-bar span{width:9px;height:9px;border-radius:50%;background:#2a3438}
.dev-bar span:nth-child(1){background:#EE5F76}.dev-bar span:nth-child(2){background:#F5A03A}.dev-bar span:nth-child(3){background:#35b36b}
.dev-bar b{margin-left:auto;font-weight:600}
.dev-screen{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#0c1113}
.scr{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}
.scr.on{opacity:1;visibility:visible}
.scr img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.scr::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(to top,rgba(0,0,0,.72),transparent)}
.scr-pill{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;background:rgba(10,14,16,.62);color:#fff;font:600 .75rem var(--font-head);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.scr-pill i{width:8px;height:8px;border-radius:50%;background:#35d07f;box-shadow:0 0 0 3px rgba(53,208,127,.25)}
.scr-name{position:absolute;left:14px;bottom:70px;z-index:2;color:#fff;display:grid;gap:2px}
.scr-name b{font:800 1.0625rem var(--font-head)}.scr-name span{font-size:.8125rem;opacity:.9}
.scr-self{position:absolute;right:12px;bottom:70px;z-index:2;width:25%;aspect-ratio:3/4;border-radius:10px;border:2px solid rgba(255,255,255,.85);background:#18191C;display:grid;place-content:center;justify-items:center;gap:4px;color:#cfe3e7}
.scr-self .i{width:26px;height:26px}.scr-self small{font:600 .6875rem var(--font-head);letter-spacing:.06em}
.scr-ctrl{position:absolute;left:0;right:0;bottom:12px;z-index:3;display:flex;justify-content:center;gap:var(--s2)}
.scr-ctrl span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.scr-ctrl .end{background:#E5484D;width:56px}
.scr-ctrl .i{width:20px;height:20px}.scr-ctrl .end .i{transform:rotate(135deg)}

/* ---------- speech therapist: portrait with sound waves + speech bubble + visit path ---------- */
.spk{display:grid;grid-template-columns:auto 1fr;gap:var(--s8);align-items:center;max-width:1040px;margin:0 auto}
.spk-portrait{position:relative;width:290px;height:290px;margin-left:var(--s3)}
.spk-portrait img{position:relative;z-index:2;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 22%;border:6px solid var(--surface);box-shadow:var(--shadow-2)}
.wave{position:absolute;inset:0;border-radius:50%;border:2px solid var(--primary);opacity:0;animation:waveOut 3.6s ease-out infinite}
.wave.w2{animation-delay:1.2s}.wave.w3{animation-delay:2.4s}
@keyframes waveOut{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.75);opacity:0}}
.eq{position:absolute;right:-8px;bottom:22px;z-index:3;display:flex;align-items:flex-end;gap:3px;height:54px;padding:13px 14px;background:var(--primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-2)}
.eq i{display:block;width:4px;height:8px;border-radius:2px;background:var(--on-primary);animation:eqBar 1.1s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:-.3s}.eq i:nth-child(3){animation-delay:-.6s}.eq i:nth-child(4){animation-delay:-.15s}.eq i:nth-child(5){animation-delay:-.45s}
@keyframes eqBar{0%,100%{height:6px}50%{height:26px}}
.spk-bubble{position:relative;padding:var(--s6);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.spk-bubble::before{content:"";position:absolute;left:-14px;top:84px;width:26px;height:26px;background:var(--surface);border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}
.spk-bubble h3{font-size:clamp(1.75rem,3vw,2.25rem);margin-bottom:2px}
.spk-clinic{color:var(--muted);font-weight:600;margin-bottom:var(--s2)}
.spk-bio{color:var(--ink);margin-bottom:var(--s2);max-width:34em}
.spk-bubble blockquote{margin:var(--s3) 0;padding:2px 0 2px var(--s3);border-left:4px solid var(--primary);font:700 1.125rem/1.5 var(--font-head);color:var(--ink-strong)}
.spk-bubble .tags{margin:0 0 var(--s3)}
.path{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);max-width:1040px;margin:0 auto}
.path::before{content:"";position:absolute;top:36px;left:16.6%;right:16.6%;border-top:2px dashed var(--rule)}
.path li{position:relative;text-align:center;padding:0 var(--s2)}
.pn{position:relative;z-index:1;display:grid;place-items:center;width:72px;height:72px;margin:0 auto var(--s2);border-radius:50%;background:var(--surface);border:2px solid var(--primary);color:var(--primary);box-shadow:var(--shadow-1)}
.pn .i{width:28px;height:28px}
.path h3{font-size:1.125rem;margin-bottom:6px}
.path p{color:var(--muted);font-size:.9375rem;max-width:20em;margin:0 auto}

/* ---------- doctors page: arch portraits, seals, heartbeat line, staggered text, numerals ---------- */
.sec-clip{overflow:hidden}
.dfeat{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--s8);align-items:center;max-width:1100px;margin:0 auto}
.dfeat.flip{grid-template-columns:1.15fr .85fr}
.d-art{position:relative;width:min(360px,100%);margin-inline:auto;aspect-ratio:3/4}
.d-art::before{content:"";position:absolute;inset:20px -20px -20px 20px;border-radius:999px 999px 28px 28px;background:var(--primary-100)}
.d-arch{position:relative;width:100%;height:100%;border-radius:999px 999px 28px 28px;overflow:hidden;background:var(--primary-100);box-shadow:var(--shadow-2);transition:transform .25s ease-out}
.d-arch img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.seal{position:absolute;z-index:2;width:80px;height:80px}
.seal .sl{display:grid;place-items:center;align-content:center;width:100%;height:100%;border-radius:50%;background:var(--surface);border:2px solid var(--primary);box-shadow:var(--shadow-2);padding:0 3px;font:800 .8125rem/1.1 var(--font-head);color:var(--primary);text-align:center;animation:sealFloat 5s ease-in-out infinite}
.seal small{display:block;margin-top:2px;font:600 .5rem var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.seal .i{width:30px;height:30px}
.seal.seal-w{width:94px;height:94px}.seal.seal-w .sl{font-size:.75rem;letter-spacing:.01em}.seal.seal-w small{font-size:.5rem}
.seal.s1{left:-38px;top:10%}.seal.s2{right:-34px;top:28%}.seal.s3{left:-30px;bottom:24%}.seal.s4{right:-26px;bottom:8%}
.seal.s2 .sl{animation-delay:-1.2s}.seal.s3 .sl{animation-delay:-2.4s}.seal.s4 .sl{animation-delay:-3.6s}
@keyframes sealFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.d-text h2{font-size:clamp(2rem,3.6vw,2.75rem);margin-bottom:var(--s1)}
.d-text .lead{margin-bottom:var(--s2)}
.d-text .quals{margin:0 0 var(--s3)}
.d-text .info-list{margin:var(--s4) 0}
.d-quote{margin:var(--s3) 0;padding:2px 0 2px var(--s3);border-left:4px solid var(--primary);font:700 1.125rem/1.5 var(--font-head);color:var(--ink-strong)}
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6);max-width:1100px;margin:0 auto}
.val{position:relative;padding-top:var(--s3)}
.val::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:var(--rule)}
.val::after{content:"";position:absolute;left:0;top:-1px;width:56px;height:4px;border-radius:2px;background:var(--primary);transition:width .5s ease}
.val:hover::after{width:100%}
.val .num{display:block;font:800 clamp(4.5rem,9vw,6.5rem)/1 var(--font-head);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px var(--primary);transition:color .4s}
.val:hover .num{color:var(--primary-100)}
.val h3{margin:var(--s1) 0 6px;font-size:1.375rem}
.val p{color:var(--muted)}
.js .stagger.rv{opacity:1;transform:none}
.js .stagger>*{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js .stagger.in>*{opacity:1;transform:none}
.stagger>*:nth-child(1){transition-delay:calc(90ms)}
.stagger>*:nth-child(2){transition-delay:calc(180ms)}
.stagger>*:nth-child(3){transition-delay:calc(270ms)}
.stagger>*:nth-child(4){transition-delay:calc(360ms)}
.stagger>*:nth-child(5){transition-delay:calc(450ms)}
.stagger>*:nth-child(6){transition-delay:calc(540ms)}
.stagger>*:nth-child(7){transition-delay:calc(630ms)}
.stagger>*:nth-child(8){transition-delay:calc(720ms)}
.stagger>*:nth-child(9){transition-delay:calc(810ms)}
.js .d-art .d-arch{clip-path:inset(100% 0 0 0);transition:clip-path 1.1s cubic-bezier(.2,.7,.2,1),transform .25s ease-out}
.js .d-art.in .d-arch{clip-path:inset(0 0 0 0)}
.js .d-art::before{opacity:0;transform:translate(-14px,14px);transition:opacity .8s ease .3s,transform .8s ease .3s}
.js .d-art.in::before{opacity:1;transform:none}
.js .d-art .seal{opacity:0;transform:scale(.3);transition:opacity .5s ease,transform .7s cubic-bezier(.3,1.5,.5,1)}
.js .d-art.in .seal{opacity:1;transform:none}
.js .d-art.in .seal.s1{transition-delay:.7s}.js .d-art.in .seal.s2{transition-delay:.85s}.js .d-art.in .seal.s3{transition-delay:1s}.js .d-art.in .seal.s4{transition-delay:1.15s}
.js .vals .val::before{transform-origin:left;transform:scaleX(0);transition:transform .9s ease .2s}
.js .vals.in .val::before{transform:scaleX(1)}

/* ---------- call to action band ---------- */
.cta-band{background:var(--primary);color:var(--on-primary);padding-block:var(--s8)}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap}
.cta-band h2{color:inherit;margin-bottom:6px;font-size:clamp(1.5rem,2.6vw,2rem)}
.cta-band p{opacity:.92;max-width:34em}
:root[data-theme="dark"] .cta-band{background:var(--primary-100);color:var(--ink-strong)}
:root[data-theme="dark"] .cta-band .btn-light{background:var(--primary);color:var(--on-primary)}
:root[data-theme="dark"] .cta-band .btn-outline-light{color:var(--ink-strong);border-color:var(--rule)}

/* ---------- footer ---------- */
.site-foot{background:var(--foot-bg);color:var(--foot-text);padding:var(--s8) 0 var(--s3);font-size:.9375rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1.2fr 1.1fr;gap:var(--s6)}
.site-foot h4{color:var(--foot-strong);font:700 1rem var(--font-head);margin-bottom:var(--s2)}
.site-foot li{margin-bottom:12px}
.site-foot a:hover{color:var(--foot-strong);text-decoration:underline}
.fbrand{display:flex;align-items:center;gap:12px;margin-bottom:var(--s2)}
.fbrand img{width:44px;height:44px;border-radius:50%}
.fbrand b{font:800 1.25rem var(--font-head);color:var(--foot-strong)}
.site-foot .tagline{color:var(--foot-strong);font-weight:600;margin-bottom:var(--s1)}

.copy{border-top:1px solid var(--foot-line);margin-top:var(--s6);padding-top:var(--s3);font-size:.875rem}
.callbar{display:none}

/* ---------- floating WhatsApp (brand green) ---------- */
.wa{position:fixed;right:var(--s3);bottom:var(--s3);z-index:45;width:56px;height:56px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-2);transition:background-color .2s}
.wa:hover{background:var(--wa-h)}.wa .i{width:28px;height:28px}

/* ---------- FAQ ---------- */
.faq{max-width:780px;margin-inline:auto;border-top:1px solid var(--line)}
.q{border-bottom:1px solid var(--line)}
.q button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);text-align:left;background:none;border:0;padding:var(--s3) 0;font:700 1.0625rem var(--font-head);color:var(--ink-strong);cursor:pointer}
.q button .i{transition:transform .25s;color:var(--primary)}.q.open button .i{transform:rotate(180deg)}
.q div{max-height:0;overflow:hidden;transition:max-height .3s;color:var(--muted)}.q.open div{padding-bottom:var(--s3)}

/* ---------- motion: gentle only ---------- */
.js .rv{opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease}
.js .rv.in{opacity:1;transform:none}

/* ---------- contact: reach cards, timings, ticket form ---------- */
.ch-head{max-width:640px;margin:0 auto var(--s6);text-align:center}
.reach{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);margin-bottom:var(--s4)}
.rc{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--s4);overflow:hidden;transition:transform .25s,border-color .25s}
.rc::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--primary);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.rc:hover{transform:translateY(-4px);border-color:var(--primary)}.rc:hover::after{transform:scaleX(1)}
.rc .ic{width:56px;height:56px;border-radius:50%;margin-bottom:var(--s2)}
.rc h3{font-size:1.0625rem;margin-bottom:var(--s1)}
.rc p{color:var(--muted)}.rc p a{display:block;font:700 1.25rem/1.5 var(--font-head);color:var(--ink-strong)}
.rc p a:hover{color:var(--primary)}.rc p .addr,.rc .addr{font-size:1rem;line-height:1.6}
.desk{display:grid;grid-template-columns:5fr 7fr;gap:var(--s4);align-items:start}
.hrs{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--s4)}
.hrs-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s3)}
.hrs-top h3{margin:0}
.live{display:inline-flex;align-items:center;gap:8px;font:700 .8125rem var(--font-head);padding:6px 12px;border-radius:999px;background:var(--primary-50);color:var(--muted)}
.live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted)}
.live.on{color:#4ade80;background:rgba(74,222,128,.12)}.live.on::before{background:#4ade80;animation:livePulse 1.8s ease-out infinite}
.live.off{color:#fbbf24;background:rgba(251,191,36,.12)}.live.off::before{background:#fbbf24}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.6)}100%{box-shadow:0 0 0 9px rgba(74,222,128,0)}}
.days{display:grid;gap:var(--s1)}
.days li{display:flex;justify-content:space-between;gap:var(--s2);padding:14px var(--s2);border-radius:var(--radius-sm);border:1px solid transparent;transition:background .2s}
.days li span{font-weight:600;color:var(--ink-strong)}.days li b{font-weight:500;color:var(--muted);text-align:right}
.days li.now{background:var(--primary-50);border-color:var(--primary)}.days li.now b{color:var(--ink-strong)}
.hrs-note{margin-top:var(--s3);padding-top:var(--s2);border-top:1px dashed var(--line);color:var(--muted);font-size:.9375rem}
.tk{padding:0;overflow:visible;height:auto}
.tk-top{position:relative;padding:var(--s4) var(--s4) var(--s3);border-bottom:2px dashed var(--line);background:linear-gradient(135deg,var(--primary-50),transparent 70%);border-radius:var(--radius-md) var(--radius-md) 0 0}
.tk-top::before,.tk-top::after{content:"";position:absolute;bottom:-13px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:1px solid var(--line)}
.tk-top::before{left:-13px;border-left-color:transparent;border-bottom-color:transparent;transform:rotate(-45deg)}
.tk-top::after{right:-13px;border-right-color:transparent;border-top-color:transparent;transform:rotate(-45deg)}
.tk-no{display:inline-block;font:700 .75rem var(--font-head);letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:var(--s1)}
.tk-top h3{font-size:1.5rem;margin-bottom:6px}.tk-top p{color:var(--muted)}
.tk-body{padding:var(--s4)}
.days li b{white-space:nowrap}.days li{flex-wrap:wrap}

/* ---------- vaccination result: every vaccine, grouped by visit ---------- */
.vgs{display:grid;gap:var(--s2)}
.vg{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;transition:border-color .2s,opacity .2s}
.vg.sel{border-color:var(--primary)}.vg.past:not(.sel){opacity:.7}
.vg-head{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:14px var(--s3);background:var(--primary-50);cursor:pointer}
.vg-age{font:800 1.0625rem var(--font-head);color:var(--ink-strong);flex:1 1 160px}
.vg-date{font-weight:600;color:var(--ink)}
.vg-st{font:700 .75rem var(--font-head);padding:3px 10px;border-radius:var(--radius-sm);background:var(--surface);color:var(--primary-d)}
:root[data-theme="dark"] .vg-st{color:var(--primary)}
.vg-st.past{background:var(--line);color:var(--muted)}.vg-st.soon{background:var(--ok-bg);color:var(--ok)}
.vg-cnt{font-size:.8125rem;color:var(--muted);min-width:6.5em;text-align:right}
.vg input[type=checkbox]{position:absolute;opacity:0;width:24px;height:24px;margin:0;cursor:pointer}
.vg .tick{position:relative;flex:none;width:24px;height:24px;border:2px solid var(--rule);border-radius:var(--radius-sm);background:var(--surface);transition:background-color .2s,border-color .2s}
.vg input:checked + .tick,.vg input:indeterminate + .tick{background:var(--primary);border-color:var(--primary)}
.vg input:checked + .tick::after{content:"";position:absolute;left:6px;top:1px;width:6px;height:12px;border:solid var(--on-primary);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.vg input:indeterminate + .tick::after{content:"";position:absolute;left:4px;top:9px;width:12px;height:2.5px;background:var(--on-primary)}
.vg input:focus-visible + .tick{outline:3px solid var(--primary);outline-offset:2px}
.vlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.vlist li{border-top:1px solid var(--line)}
.vi{position:relative;display:flex;align-items:center;gap:12px;padding:13px var(--s3);cursor:pointer;height:100%}
.vi:hover{background:var(--bg-soft)}
.vn{font-weight:600;color:var(--ink-strong)}
.vlist li:not(.sel) .vn{color:var(--muted);font-weight:500}
.vo{margin-left:auto;font:700 .6875rem var(--font-head);letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}

/* list layout + catch-up plan */
.vlist{display:block}
.vlist li{border-top:1px solid var(--line)}
.vi{padding:12px var(--s3);gap:14px}
.vs{flex:none;width:2.2em;font:700 .8125rem var(--font-head);color:var(--muted);text-align:right}
.vn{flex:1 1 auto}
.vd{margin-left:auto;font-size:.8125rem;color:var(--muted);white-space:nowrap}
.vo+.vd,.vn+.vd{margin-left:var(--s2)}
.vm{margin-left:auto;background:var(--primary-50);color:var(--primary-d);border-color:transparent}
:root[data-theme="dark"] .vm{color:var(--primary)}
.vg input:disabled + .tick{background:var(--bg-soft);border-style:dashed;cursor:not-allowed;opacity:.7}
.vg input:disabled,.vg li.missed .vi,.vg li.missed .vi *{cursor:not-allowed}
.vlist li.missed .vn{color:var(--muted);font-weight:500}
.catch{margin-top:var(--s4);border-color:var(--primary)}
.catch-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3);align-items:flex-end;padding:var(--s3);background:var(--primary-50)}
.catch-top h3{margin:0 0 4px}.catch-top p{color:var(--muted);max-width:42rem}
.catch-date{min-width:220px;margin:0}
.catch .vlist li:not(.given) .vn{color:var(--ink-strong);font-weight:600}
.catch .vlist li.given .vn{color:var(--muted);text-decoration:line-through;font-weight:500}
.catch-sum{padding:14px var(--s3);border-top:1px solid var(--line);font-weight:600;color:var(--ink-strong)}

/* vaccination sheet header: syringe animation */
.sh-inj{width:190px;height:40px;flex:none;overflow:visible}
.sh-inj *{vector-effect:non-scaling-stroke}
.sh-inj .ij-needle{stroke:var(--muted);stroke-width:2;stroke-linecap:round}
.sh-inj .ij-hub{fill:var(--primary-d)}
:root[data-theme="dark"] .sh-inj .ij-hub{fill:var(--primary)}
.sh-inj .ij-barrel{fill:none;stroke:var(--ink-strong);stroke-width:2}
.sh-inj .ij-flange{fill:var(--ink-strong)}
.sh-inj .ij-liq{fill:var(--primary);opacity:.75;transform-box:fill-box;transform-origin:left center;animation:ijLiq 4.6s ease-in-out infinite}
.sh-inj .ij-ticks line{stroke:var(--muted);stroke-width:1.4}
.sh-inj .ij-stop{fill:var(--ink-strong)}
.sh-inj .ij-rod{stroke:var(--ink-strong);stroke-width:3;stroke-linecap:round}
.sh-inj .ij-thumb{fill:var(--ink-strong)}
.sh-inj .ij-plunger{animation:ijPush 4.6s ease-in-out infinite}
.sh-inj .ij-drop{fill:var(--primary);opacity:0;animation:ijDrop 4.6s ease-in infinite}
.sh-inj .ij-drop.d2{animation-delay:.18s}
@keyframes ijPush{0%,12%{transform:translateX(0)}55%,72%{transform:translateX(-80px)}100%{transform:translateX(0)}}
@keyframes ijLiq{0%,12%{transform:scaleX(1)}55%,72%{transform:scaleX(.12)}100%{transform:scaleX(1)}}
@keyframes ijDrop{0%,16%{opacity:0;transform:translate(0,0)}24%{opacity:1}52%{opacity:.9;transform:translate(-12px,4px)}60%,100%{opacity:0;transform:translate(-18px,10px)}}
@media(prefers-reduced-motion:reduce){.sh-inj .ij-plunger,.sh-inj .ij-liq,.sh-inj .ij-drop{animation:none}.sh-inj .ij-plunger{transform:translateX(-30px)}.sh-inj .ij-liq{transform:scaleX(.6)}}

/* logo images: round, crisp */
.brand img,.fbrand img,.sh-mark img{border-radius:50%;object-fit:cover}
.sh-mark img{width:40px;height:40px}
#loader .ldr-logo{border-radius:50%;box-shadow:0 18px 40px -18px rgba(20,41,95,.45)}
.layer{object-fit:contain;border-radius:50%}

/* vaccination loading screen */
.vl{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:var(--s3);background:radial-gradient(60% 50% at 20% 15%,var(--pink),transparent 70%),radial-gradient(60% 55% at 85% 90%,var(--blue-50),transparent 70%),var(--bg);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s}
.vl.on{opacity:1;visibility:visible}
html.vl-lock{overflow:hidden}
.vl-in{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:520px;width:100%}
.vl-logo{width:72px;height:72px;border-radius:50%;margin-bottom:var(--s4);box-shadow:var(--shadow-2)}
.vl .vl-inj{width:min(420px,78vw);height:auto;overflow:visible}
.vl.on .vl-inj .ij-plunger,.vl.on .vl-inj .ij-liq,.vl.on .vl-inj .ij-drop{animation-duration:var(--vl-ms,1.9s);animation-iteration-count:1;animation-timing-function:ease-in-out}
.vl-title{margin-top:var(--s4);font:800 clamp(1.25rem,3vw,1.625rem) var(--font-head);letter-spacing:-.01em;color:var(--ink-strong)}
.vl-sub{margin-top:4px;color:var(--muted);font-weight:600}
.vl-bar{margin-top:var(--s3);width:min(260px,70vw);height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.vl-bar i{display:block;height:100%;width:100%;border-radius:inherit;background:var(--primary);transform:scaleX(0);transform-origin:left}
.vl.on .vl-bar i{animation:vlFill var(--vl-ms,1.9s) cubic-bezier(.4,0,.2,1) forwards}
@keyframes vlFill{to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.vl,.vl.on .vl-bar i{transition:none;animation:none}.vl.on .vl-bar i{transform:scaleX(1)}}

/* ---------- plan your visit: animated journey ---------- */
.path.jr{--j1:calc(16.667% - var(--s4)/3);--j3:calc(83.333% + var(--s4)/3);max-width:1080px;
 background:linear-gradient(var(--rule),var(--rule)) var(--j1) 35px/calc(66.667% + var(--s4)*2/3) 3px no-repeat}
.path.jr::before{content:"";position:absolute;top:35px;left:var(--j1);right:var(--j1);height:3px;border:0;border-radius:3px;background:linear-gradient(90deg,var(--primary),var(--cta));transform-origin:left;transform:scaleX(1)}
.path.jr::after{content:"";position:absolute;top:28px;left:var(--j1);width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--cta);border:4px solid var(--surface);box-shadow:0 0 0 0 color-mix(in srgb,var(--cta) 45%,transparent);opacity:0;z-index:2;pointer-events:none}
.path.jr li{padding:0}
.path.jr .pn{transition:background .3s,color .3s}
.path.jr .jc{margin-top:var(--s3);padding:var(--s3) var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--radius-md);background:linear-gradient(165deg,var(--surface) 30%,var(--blue-50));box-shadow:var(--shadow-1);position:relative;overflow:hidden}
.path.jr .jc::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--pink),var(--primary))}
.path.jr .jk{display:inline-block;margin-bottom:var(--s1);padding:4px 12px;border-radius:999px;background:var(--pink);color:var(--ink-strong);font:800 .6875rem/1.4 var(--font-head);letter-spacing:.12em;text-transform:uppercase}
.path.jr h3{margin-bottom:6px}
.path.jr p{margin:0 auto}
@keyframes jrGoX{0%{left:var(--j1);opacity:0}4%{left:var(--j1);opacity:1}10%{left:var(--j1);animation-timing-function:ease-in-out}38%{left:50%}42%{left:50%;animation-timing-function:ease-in-out}72%{left:var(--j3)}94%{left:var(--j3);opacity:1}100%{left:var(--j3);opacity:0}}
@keyframes jrGoY{0%{top:27px;opacity:0}4%{top:27px;opacity:1}10%{top:27px;animation-timing-function:ease-in-out}38%{top:calc(var(--y2,50%) - 9px)}42%{top:calc(var(--y2,50%) - 9px);animation-timing-function:ease-in-out}72%{top:calc(var(--y3,100%) - 9px)}94%{top:calc(var(--y3,100%) - 9px);opacity:1}100%{top:calc(var(--y3,100%) - 9px);opacity:0}}
@keyframes jrFillX{0%,10%{transform:scaleX(0);opacity:1;animation-timing-function:ease-in-out}38%,42%{transform:scaleX(.5);animation-timing-function:ease-in-out}72%{transform:scaleX(1);opacity:1}94%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@keyframes jrFillY{0%,10%{transform:scaleY(0);opacity:1;animation-timing-function:ease-in-out}38%,42%{transform:scaleY(var(--f2,.5));animation-timing-function:ease-in-out}72%{transform:scaleY(1);opacity:1}94%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes jrPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--cta) 45%,transparent)}70%,100%{box-shadow:0 0 0 14px transparent}}
@keyframes jrBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.js .path.jr.in::after{animation:jrGoX 9s linear infinite,jrPulse 1.4s ease-out infinite}
.js .path.jr.in::before{animation:jrFillX 9s linear infinite}
@keyframes jrN1{0%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}4%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.2);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}8%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.1);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}94%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.1);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}100%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}}
@keyframes jrC1{0%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}3%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}7%{border-color:var(--primary);transform:translateY(-6px);box-shadow:var(--shadow-2,0 18px 38px -18px color-mix(in srgb,var(--primary) 55%,transparent))}94%{border-color:var(--primary);transform:translateY(-6px);box-shadow:var(--shadow-2,0 18px 38px -18px color-mix(in srgb,var(--primary) 55%,transparent))}100%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}}
.js .path.jr.in li:nth-child(1) .pn{animation:jrN1 9s linear infinite}
.js .path.jr.in li:nth-child(1) .jc{animation:jrC1 9s linear infinite}
@keyframes jrN2{0%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}35%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}38%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.2);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}42%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.1);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}94%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.1);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}100%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}}
@keyframes jrC2{0%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}37%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}41%{border-color:var(--primary);transform:translateY(-6px);box-shadow:var(--shadow-2,0 18px 38px -18px color-mix(in srgb,var(--primary) 55%,transparent))}94%{border-color:var(--primary);transform:translateY(-6px);box-shadow:var(--shadow-2,0 18px 38px -18px color-mix(in srgb,var(--primary) 55%,transparent))}100%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}}
.js .path.jr.in li:nth-child(2) .pn{animation:jrN2 9s linear infinite}
.js .path.jr.in li:nth-child(2) .jc{animation:jrC2 9s linear infinite}
@keyframes jrN3{0%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}69%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}72%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.2);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}76%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.1);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}94%{background:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:scale(1.1);box-shadow:0 0 0 10px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow-1)}100%{background:var(--surface);color:var(--primary);border-color:var(--primary);transform:scale(1);box-shadow:0 0 0 0 transparent,var(--shadow-1)}}
@keyframes jrC3{0%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}71%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}75%{border-color:var(--primary);transform:translateY(-6px);box-shadow:var(--shadow-2,0 18px 38px -18px color-mix(in srgb,var(--primary) 55%,transparent))}94%{border-color:var(--primary);transform:translateY(-6px);box-shadow:var(--shadow-2,0 18px 38px -18px color-mix(in srgb,var(--primary) 55%,transparent))}100%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}}
.js .path.jr.in li:nth-child(3) .pn{animation:jrN3 9s linear infinite}
.js .path.jr.in li:nth-child(3) .jc{animation:jrC3 9s linear infinite}
.path.jr .pn .i{transition:transform .3s}
.path.jr li:hover .pn{background:var(--primary);color:var(--on-primary)}
@media(prefers-reduced-motion:reduce){.path.jr::after{display:none}}

/* ---------- consultation: real video-call window ---------- */
.dev{padding:0;border-radius:20px;background:#0E1316;overflow:hidden;box-shadow:var(--shadow-2),0 0 0 1px rgba(255,255,255,.08) inset}
.dev-bar.vc-top{display:flex;align-items:center;gap:10px;padding:11px 16px;background:#161C20;border-bottom:1px solid rgba(255,255,255,.07);color:#B9C6CB;font:600 .75rem var(--font-head);letter-spacing:.02em}
.vc-top .vc-lock{display:grid;place-items:center;color:#35D07F}
.vc-top .vs{width:16px;height:16px}
.vc-top b{margin-left:0;font-weight:700;color:#E6EEF1;margin-right:auto}
.vc-live{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:999px;background:rgba(229,72,77,.16);color:#FFD6D8;font-style:normal;font-variant-numeric:tabular-nums}
.vc-live i{width:8px;height:8px;border-radius:50%;background:#FF5B61;animation:vcBlink 1.4s ease-in-out infinite}
.vc-live time{font:700 .75rem var(--font-head);letter-spacing:.04em}
.vc-sig{display:inline-flex;align-items:flex-end;gap:2px;height:14px}
.vc-sig u{display:block;width:3px;border-radius:1px;background:#35D07F}
.vc-sig u:nth-child(1){height:4px}.vc-sig u:nth-child(2){height:7px}.vc-sig u:nth-child(3){height:10px}.vc-sig u:nth-child(4){height:14px}
.dev-screen{border-radius:0;aspect-ratio:4/3;background:#0A0F11}
.scr-pill{top:14px;left:14px}
.scr-name{left:14px;bottom:88px;display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:14px;background:rgba(10,14,16,.58);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12)}
.scr-name .mic{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#1F9D61;color:#fff}
.scr-name .vs{width:15px;height:15px}
.scr-name div{display:grid;gap:1px}
.scr-name b{font:800 .9375rem var(--font-head)}
.scr-name span{font-size:.75rem;opacity:.85}
.snd{display:inline-flex;align-items:center;gap:2px;height:18px;margin-left:4px}
.snd u{display:block;width:3px;height:100%;border-radius:2px;background:#35D07F;transform:scaleY(.25);animation:vcSnd 1s ease-in-out infinite}
.snd u:nth-child(2){animation-delay:-.3s}.snd u:nth-child(3){animation-delay:-.6s}.snd u:nth-child(4){animation-delay:-.15s}
.scr-self{right:14px;bottom:88px;width:24%;border-radius:14px;border:2px solid rgba(255,255,255,.75);background:linear-gradient(160deg,#334055,#1B2029);overflow:hidden;box-shadow:0 10px 24px -10px rgba(0,0,0,.7)}
.scr-self .vs-user{position:absolute;left:50%;top:46%;width:62%;transform:translate(-50%,-50%);fill:rgba(255,255,255,.28)}
.scr-self small{position:absolute;left:8px;bottom:8px;padding:2px 8px;border-radius:999px;background:rgba(10,14,16,.6);color:#fff;font:700 .6875rem var(--font-head)}
.scr-ctrl{left:50%;right:auto;bottom:14px;transform:translateX(-50%);gap:10px;padding:8px 12px;border-radius:999px;background:rgba(12,16,18,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12)}
.scr-ctrl span{width:42px;height:42px;background:rgba(255,255,255,.14)}
.scr-ctrl .vs{width:19px;height:19px}
.scr-ctrl .end{width:58px;border-radius:999px;background:#E5484D}
.vc-conn{position:absolute;inset:0;z-index:5;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;color:#fff;background:rgba(10,15,17,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;visibility:hidden}
.vc-conn b{font:800 1.125rem var(--font-head);margin-top:var(--s2)}
.vc-conn span{font-size:.875rem;opacity:.8}
.vc-av{position:relative;display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:linear-gradient(160deg,#3B4B63,#1E2530)}
.vc-av .vs-user{width:58%;fill:rgba(255,255,255,.5)}
.vc-av i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(141,180,255,.55);animation:vcRing 2s ease-out infinite}
.vc-av i:nth-child(2){animation-delay:.6s}.vc-av i:nth-child(3){animation-delay:1.2s}
.vc-conn b::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:vcDots 1.2s steps(4) infinite;overflow:hidden;vertical-align:bottom}
.dev.calling .vc-conn{opacity:1;visibility:visible;animation:vcOut .6s ease 2.1s forwards}
.dev.calling .scr-name,.dev.calling .scr-self,.dev.calling .scr-ctrl,.dev.calling .scr-pill{animation:vcPop .55s cubic-bezier(.2,.8,.2,1) 2.25s both}
.dev.calling .scr-ctrl{animation-name:vcPopC}
@keyframes vcOut{to{opacity:0;visibility:hidden}}
@keyframes vcPop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes vcPopC{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes vcSnd{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes vcBlink{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes vcRing{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.9);opacity:0}}
@keyframes vcDots{from{width:0}to{width:1.2em}}
@media(prefers-reduced-motion:reduce){.snd u,.vc-live i,.vc-av i{animation:none}.snd u{transform:scaleY(.6)}}

/* ---------- plan your visit: winding route with a heart travelling between the stops (desktop) ---------- */
@media(min-width:761px){
.path.jr{align-items:start}
.path.jr li:nth-child(odd){margin-top:64px}
.path.jr.rt-on{background:none}
.path.jr.rt-on::before,.path.jr.rt-on::after{display:none}
.path.jr .pn{width:76px;height:76px}
}
.rt-svg{position:absolute;left:0;top:0;z-index:0;pointer-events:none;overflow:visible}
.rt-base{fill:none;stroke:var(--rule);stroke-width:4;stroke-linecap:round;stroke-dasharray:1 11}
.rt-fill{fill:none;stroke:url(#rtGrad);stroke-width:5;stroke-dasharray:1 1;stroke-dashoffset:1;opacity:0}
.rt-t{position:absolute;left:0;top:0;z-index:2;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:3px solid var(--cta);color:var(--cta);offset-rotate:0deg;offset-anchor:50% 50%;offset-distance:0%;opacity:0;pointer-events:none;box-shadow:0 8px 18px -8px color-mix(in srgb,var(--cta) 70%,transparent)}
.rt-t svg{width:18px;height:18px;fill:currentColor;animation:rtBeat 1s ease-in-out infinite}
.rt-t::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--cta);animation:rtRing 1.6s ease-out infinite}
@keyframes rtBeat{0%,100%{transform:scale(1)}14%{transform:scale(1.28)}28%{transform:scale(1)}42%{transform:scale(1.18)}56%{transform:scale(1)}}
@keyframes rtRing{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
@keyframes rtGo{0%{offset-distance:0%;opacity:0}4%{offset-distance:0%;opacity:1}10%{offset-distance:0%;animation-timing-function:ease-in-out}38%{offset-distance:50%}42%{offset-distance:50%;animation-timing-function:ease-in-out}72%{offset-distance:100%}94%{offset-distance:100%;opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes rtFill{0%,10%{stroke-dashoffset:1;opacity:1;animation-timing-function:ease-in-out}38%,42%{stroke-dashoffset:.5;animation-timing-function:ease-in-out}72%{stroke-dashoffset:0;opacity:1}94%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.js .path.jr.rt-on.in .rt-t{animation:rtGo 9s linear infinite}
.js .path.jr.rt-on.in .rt-fill{animation:rtFill 9s linear infinite}
@media(prefers-reduced-motion:reduce){.rt-t{display:none}.rt-fill{stroke-dashoffset:0;opacity:1}.rt-t svg,.rt-t::after{animation:none}}

/* ---------- speech page: location (map card + speech-bubble offers) ---------- */
.loc{display:grid;grid-template-columns:1.08fr .92fr;gap:var(--s3);align-items:stretch}
.loc-card{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.loc-map{position:relative;flex:none;height:168px;overflow:hidden;background:
 repeating-linear-gradient(0deg,transparent 0 33px,color-mix(in srgb,var(--primary) 14%,transparent) 33px 35px),
 repeating-linear-gradient(90deg,transparent 0 41px,color-mix(in srgb,var(--primary) 14%,transparent) 41px 43px),
 linear-gradient(135deg,var(--pink),var(--blue-50))}
.loc-map::before{content:"";position:absolute;left:-10%;right:-10%;top:52%;height:16px;background:color-mix(in srgb,var(--surface) 85%,transparent);transform:rotate(-8deg);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 12%,transparent)}
.loc-map::after{content:"";position:absolute;left:58%;top:-10%;bottom:-10%;width:14px;background:color-mix(in srgb,var(--surface) 85%,transparent);transform:rotate(14deg)}
.loc-map i{position:absolute;left:50%;top:60%;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;border:2px solid var(--cta);opacity:0;animation:locRadar 3.6s ease-out infinite;z-index:1}
.loc-map i.r2{animation-delay:1.2s}.loc-map i.r3{animation-delay:2.4s}
.loc-pin{position:absolute;left:50%;top:60%;z-index:2;width:46px;height:46px;margin:-46px 0 0 -23px;color:var(--cta);filter:drop-shadow(0 6px 6px rgba(0,0,0,.25));animation:locBounce 2.4s ease-in-out infinite;transform-origin:50% 100%}
.loc-pin svg{width:100%;height:100%;fill:var(--cta);stroke:var(--surface);stroke-width:1.4;stroke-linejoin:round}
.loc-pin svg circle{fill:var(--surface);stroke:none}
.loc-body{padding:var(--s4);display:flex;flex-direction:column;gap:var(--s2);flex:1}
.loc-body h3{font-size:1.375rem}
.loc-led{display:flex;align-items:center;gap:12px;margin:0;padding:8px 14px 8px 8px;width:max-content;max-width:100%;border-radius:999px;background:var(--blue-50);border:1px solid var(--line);color:var(--ink)}
.loc-led img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 18%;border:2px solid var(--surface)}
.loc-led span{display:grid;line-height:1.25;font-size:.75rem;color:var(--muted)}.loc-led b{font:800 .9375rem var(--font-head);color:var(--ink-strong)}.loc-led small{font-size:.8125rem;color:var(--muted)}
.loc-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:var(--s1) 0 var(--s2)}
.lt{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:var(--radius-sm);background:var(--bg-soft);border:1px solid var(--line);color:inherit;transition:transform .2s,border-color .2s,box-shadow .2s}
.lt:first-child{grid-column:1 / -1}
a.lt:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:var(--shadow-1)}
.lt .ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--surface);color:var(--primary);border:1px solid var(--line)}
.lt .ic .i{width:19px;height:19px}
.lt-t{display:grid;gap:2px;min-width:0}.lt-t b{font:800 .9375rem var(--font-head);color:var(--ink-strong)}.lt-t small{font-size:.875rem;color:var(--muted);overflow-wrap:anywhere}
.loc-body .btns{margin-top:auto}
.loc-offer{position:relative;display:flex;flex-direction:column;padding:var(--s4);border-radius:var(--radius-md);border:1px solid var(--line);background:linear-gradient(170deg,var(--blue-50),var(--surface) 55%);box-shadow:var(--shadow-1);overflow:hidden}
.loc-wave{display:flex;align-items:center;gap:4px;height:34px;margin-bottom:var(--s2)}
.loc-wave u{display:block;width:5px;height:100%;border-radius:3px;background:linear-gradient(var(--primary),var(--cta));transform:scaleY(.2);animation:locWave 1.3s ease-in-out infinite}
.loc-wave u:nth-child(2){animation-delay:-.2s}.loc-wave u:nth-child(3){animation-delay:-.45s}.loc-wave u:nth-child(4){animation-delay:-.7s}.loc-wave u:nth-child(5){animation-delay:-.35s}.loc-wave u:nth-child(6){animation-delay:-.9s}.loc-wave u:nth-child(7){animation-delay:-.1s}
.loc-offer h3{font-size:1.375rem;margin-bottom:6px}
.loc-offer>p{color:var(--muted);margin:0 0 var(--s3)}
.bubs{display:flex;flex-wrap:wrap;gap:12px 10px;margin:0 0 var(--s4);flex:1;align-content:center;justify-content:center;row-gap:16px}
.bubs li{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:20px 20px 20px 5px;background:var(--surface);border:1px solid var(--line);color:var(--ink-strong);font:700 .9375rem var(--font-head);box-shadow:var(--shadow-1);animation:locFloat 5.5s ease-in-out infinite;transition:background .2s,color .2s,border-color .2s}
.bubs li:nth-child(even){border-radius:20px 20px 5px 20px;background:var(--pink)}
.bubs li:nth-child(2){animation-delay:-1s}.bubs li:nth-child(3){animation-delay:-2s}.bubs li:nth-child(4){animation-delay:-3s}.bubs li:nth-child(5){animation-delay:-4s}.bubs li:nth-child(6){animation-delay:-1.5s}.bubs li:nth-child(7){animation-delay:-2.5s}
.bubs li:hover{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.bubs li .i{width:16px;height:16px;color:var(--primary);flex:none}.bubs li:hover .i{color:var(--on-primary)}
.loc-offer .btn{width:100%}
@keyframes locRadar{0%{transform:scale(.6);opacity:.8}100%{transform:scale(5);opacity:0}}
@keyframes locBounce{0%,100%{transform:translateY(0)}45%{transform:translateY(-12px)}60%{transform:translateY(0) scale(1.06,.94)}}
@keyframes locWave{0%,100%{transform:scaleY(.2)}50%{transform:scaleY(1)}}
@keyframes locFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.loc-map i,.loc-pin,.bubs li{animation:none}.loc-wave u{animation:none;transform:scaleY(.6)}}

/* ---------- contact: reception panel with a week strip ---------- */
.desk.cdesk{grid-template-columns:5fr 7fr;align-items:start}.desk.cdesk .tk{position:sticky;top:104px}
.rd-panel{position:relative;overflow:hidden;padding:var(--s4);border:0;color:#fff;background:linear-gradient(160deg,var(--cover) 0%,var(--foot-bg) 100%);box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:var(--s2)}
.rd-glow{position:absolute;right:-90px;top:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--pink) 55%,transparent),transparent 68%);pointer-events:none}
.rd-panel::after{content:"";position:absolute;left:-60px;bottom:-80px;width:220px;height:220px;border-radius:50%;border:2px dashed rgba(255,255,255,.16);pointer-events:none}
.rd-panel>*{position:relative;z-index:1}.rd-panel>.rd-glow{position:absolute;z-index:0}
.rd-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);flex-wrap:wrap}
.rd-panel .eyebrow{color:var(--pink)}
.rd-panel h3{color:#fff;font-size:clamp(1.5rem,2.4vw,1.875rem);margin:0}
.rd-sub{color:rgba(255,255,255,.78);margin:0 0 var(--s1)}
.rd-panel .live{background:rgba(255,255,255,.12);color:#fff}
.rd-panel .live.on{color:#6EE7A0;background:rgba(74,222,128,.16)}
.rd-panel .live.off{color:#FCD34D;background:rgba(251,191,36,.16)}
.rd-call{display:flex;align-items:center;gap:14px;padding:12px 18px 12px 12px;border-radius:999px;background:#fff;color:#14295F;transition:transform .2s,box-shadow .2s}
.rd-call:hover{transform:translateY(-3px);box-shadow:0 14px 26px -14px rgba(0,0,0,.6)}
.rd-call small{display:block;font:600 .75rem var(--font-head);color:#5A6785;letter-spacing:.02em}
.rd-call b{display:block;font:800 1.25rem/1.25 var(--font-head);color:#14295F;letter-spacing:.01em}
.rd-ring{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#D81E3C;color:#fff}
.rd-ring .i{width:21px;height:21px;animation:rdWig 3.2s ease-in-out infinite;transform-origin:50% 50%}
.rd-ring::before,.rd-ring::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #D81E3C;opacity:0;animation:rdRing 3.2s ease-out infinite}
.rd-ring::after{animation-delay:.5s}
.rd-wa{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 20px;border-radius:999px;border:2px solid rgba(255,255,255,.55);color:#fff;font:700 .9375rem var(--font-head);transition:background .2s,color .2s,border-color .2s}
.rd-wa .i{width:20px;height:20px}
.rd-wa:hover{background:#fff;color:#14295F;border-color:#fff}
.rd-addr{display:flex;gap:10px;align-items:flex-start;margin:var(--s1) 0 0;color:rgba(255,255,255,.86);font-size:.9375rem;line-height:1.55}
.rd-addr .i{flex:none;width:20px;height:20px;margin-top:2px;color:var(--pink)}
.rd-panel .days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:var(--s2)}
.rd-panel .days li{display:grid;justify-items:center;gap:2px;padding:10px 0;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);color:#fff}
.rd-panel .days li b{font:800 .75rem var(--font-head);color:#fff;white-space:nowrap}
.rd-panel .days li small{font:600 .6875rem var(--font-head);color:rgba(255,255,255,.7)}
.rd-panel .days li.appt{background:transparent;border-style:dashed}
.rd-panel .days li.now{background:#fff;border-color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.22);transform:translateY(-3px)}
.rd-panel .days li.now b{color:#14295F}.rd-panel .days li.now small{color:#D81E3C;font-weight:800}
.rd-leg{margin:0;color:rgba(255,255,255,.8);font-size:.875rem;line-height:1.7}
.rd-leg b{color:#fff;margin-right:6px}
.rd-panel .hrs-note{margin:auto 0 0;padding-top:var(--s2);border-top:1px dashed rgba(255,255,255,.28);color:rgba(255,255,255,.75);font-size:.875rem}
@keyframes rdWig{0%,70%,100%{transform:rotate(0)}74%{transform:rotate(-16deg)}78%{transform:rotate(14deg)}82%{transform:rotate(-12deg)}86%{transform:rotate(10deg)}90%{transform:rotate(0)}}
@keyframes rdRing{0%,68%{transform:scale(1);opacity:0}72%{opacity:.7}100%{transform:scale(1.9);opacity:0}}
@media(prefers-reduced-motion:reduce){.rd-ring .i,.rd-ring::before,.rd-ring::after{animation:none}}

/* ---------- custom cursor: a syringe that follows the mouse, with a heartbeat ring that shows a medical cross over anything clickable (mouse only) ---------- */
.cc-dot,.cc-ring,.cc-pulse{position:fixed;left:0;top:0;z-index:2147483000;pointer-events:none;opacity:0;will-change:transform}
html.cc-on .cc-dot,html.cc-on .cc-ring{opacity:1;transition:opacity .2s}
html.cc-on.cc-out .cc-dot,html.cc-on.cc-out .cc-ring,html.cc-on.cc-native .cc-dot,html.cc-on.cc-native .cc-ring{opacity:0}
html.cc-on,html.cc-on *{cursor:none!important}
html.cc-on input,html.cc-on textarea,html.cc-on select,html.cc-on iframe{cursor:auto!important}
.cc-syr{position:absolute;left:-2px;top:-10px;width:58px;height:20px;display:block;transform-origin:2px 10px;transform:rotate(45deg) scale(1.15);transition:transform .25s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 0 1.5px #fff) drop-shadow(0 3px 3px rgba(0,0,0,.3))}
.cc-syr svg{display:block;width:100%;height:100%;overflow:visible}
.cc-syr .s-needle{stroke:#8E9BB0;stroke-width:1.6;stroke-linecap:round}
.cc-syr .s-hub{fill:#14295F}
.cc-syr .s-barrel{fill:rgba(255,255,255,.92);stroke:#14295F;stroke-width:1.6}
.cc-syr .s-liq{fill:var(--cta);transform-origin:0 50%;transition:transform .3s ease}
.cc-syr .s-tick{stroke:#14295F;stroke-width:1;opacity:.55}
.cc-syr .s-flange{fill:#14295F}
.cc-syr .s-plunger{transition:transform .3s ease}
.cc-syr .s-rod{stroke:#14295F;stroke-width:2;stroke-linecap:round}
.cc-syr .s-thumb{fill:#14295F}
.cc-ring i{position:absolute;left:0;top:0;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--primary) 65%,transparent);transform:translate(-50%,-50%) scale(1);transition:transform .3s cubic-bezier(.2,.8,.2,1),background-color .25s,border-color .25s}
.cc-ring i::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1.5px solid var(--cta);opacity:0;animation:ccBeatRing 1.8s ease-out infinite}
.cc-ring svg{width:16px;height:16px;fill:var(--cta);stroke:#fff;stroke-width:1.2;stroke-linejoin:round;opacity:0;transform:scale(.3) rotate(-90deg);transition:opacity .2s,transform .35s cubic-bezier(.2,.8,.2,1)}
html.cc-link .cc-ring i{transform:translate(-50%,-50%) scale(1.5);background:color-mix(in srgb,var(--pink) 75%,transparent);border-color:var(--cta)}
html.cc-link .cc-ring svg{opacity:1;transform:scale(1) rotate(0);animation:ccBeat 1.1s ease-in-out infinite}
html.cc-link .cc-syr{transform:rotate(45deg) scale(1.3)}
html.cc-link .cc-syr .s-plunger{animation:ccPush 1.1s ease-in-out infinite}
html.cc-link .cc-syr .s-liq{animation:ccLiq 1.1s ease-in-out infinite}
html.cc-down .cc-ring i{transform:translate(-50%,-50%) scale(.75)}
html.cc-down .cc-syr{transform:rotate(45deg) scale(1)}
html.cc-link.cc-down .cc-ring i{transform:translate(-50%,-50%) scale(1.25)}
.cc-pulse{width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:2px solid var(--cta);opacity:.9;animation:ccPulse .6s ease-out forwards}
@keyframes ccPulse{to{transform:scale(5);opacity:0}}
@keyframes ccBeat{0%,100%{transform:scale(1)}18%{transform:scale(1.22)}36%{transform:scale(1)}54%{transform:scale(1.12)}72%{transform:scale(1)}}
@keyframes ccBeatRing{0%{transform:scale(1);opacity:0}8%{opacity:.55}60%,100%{transform:scale(1.9);opacity:0}}
@keyframes ccPush{0%,100%{transform:translateX(0)}45%{transform:translateX(-9px)}}
@keyframes ccLiq{0%,100%{transform:scaleX(1)}45%{transform:scaleX(.62)}}
@media(prefers-reduced-motion:reduce){html.cc-link .cc-ring svg,html.cc-link .cc-syr .s-plunger,html.cc-link .cc-syr .s-liq,.cc-ring i::after{animation:none}.cc-pulse{display:none}}
@media print{.cc-dot,.cc-ring,.cc-pulse{display:none}}

/* contact: neat week strip (centred tiles, equal size) */
.rd-panel .days{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:stretch}
.rd-panel .days li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:68px;padding:10px 2px;text-align:center;border-radius:14px;transform:none}
.rd-panel .days li b{display:block;width:100%;text-align:center;font:800 .75rem/1 var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.rd-panel .days li small{display:block;width:100%;text-align:center;padding-top:6px;border-top:1px solid rgba(255,255,255,.18);font:600 .75rem/1 var(--font-head);letter-spacing:.02em}
.rd-panel .days li.appt small{border-top-style:dashed}
.rd-panel .days li.now{transform:none;box-shadow:0 0 0 3px rgba(255,255,255,.28),0 10px 20px -10px rgba(0,0,0,.6)}
.rd-panel .days li.now small{border-top-color:rgba(20,41,95,.18)}

/* ---------- doctors page dividers: growth chart (pediatrician) and voice wave (speech therapist) ---------- */
.d-steps{display:block;width:290px;max-width:100%;height:auto;margin-bottom:var(--s3);overflow:visible}
.d-steps .fp{transform-box:fill-box;transform-origin:center;opacity:.92}
.d-steps .fl{fill:var(--primary)}.d-steps .fr{fill:var(--cta)}
.js .d-text.in .d-steps .fp{animation:dfStep 6.5s ease-in-out infinite both;animation-delay:calc(var(--k) * .6s)}
@keyframes dfStep{0%{opacity:0;transform:scale(.3)}5%{opacity:1;transform:scale(1.2)}9%{transform:scale(1)}78%{opacity:.95;transform:scale(1)}92%,100%{opacity:0;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.js .d-text.in .d-talk .tb,.js .d-text.in .d-steps .fp{animation:none}}

/* Monisha: speech bubbles that grow from a first sound to a word to a greeting */
.d-talk{display:flex;align-items:flex-end;gap:12px;margin-bottom:var(--s3);flex-wrap:wrap}
.d-talk .tb{position:relative;display:inline-block;border-radius:18px 18px 18px 4px;font-family:var(--font-head);font-weight:800;line-height:1.1;border:1.5px solid var(--primary);transform-origin:0 100%}
.d-talk .tb1{padding:7px 13px;font-size:.8125rem;background:var(--blue-50);color:var(--primary)}
.d-talk .tb2{padding:10px 17px;font-size:1.0625rem;background:var(--pink);color:var(--ink-strong);border-color:var(--cta)}
.d-talk .tb3{padding:13px 22px;font-size:1.375rem;background:var(--primary);color:var(--on-primary)}
.js .d-text.in .d-talk .tb{animation:dtPop 7s ease-in-out infinite both;animation-delay:calc(var(--k, 0) * 1s)}
.d-talk .tb2{--k:1}.d-talk .tb3{--k:2}
@keyframes dtPop{0%{opacity:0;transform:scale(.2)}6%{opacity:1;transform:scale(1.18)}11%{transform:scale(1)}20%{transform:translateY(-3px)}28%,80%{opacity:1;transform:scale(1)}92%,100%{opacity:0;transform:scale(1)}}
/* ---------- specialities wheel (Services page) ---------- */
.wheel{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,6vw,88px);align-items:center}
.wheel-chart{position:relative;width:100%;max-width:470px;margin-inline:auto;aspect-ratio:1}
.wheel-chart svg{width:100%;height:100%;display:block;overflow:visible}
.wseg{transition:transform .38s cubic-bezier(.2,.8,.2,1),opacity .3s ease,filter .3s ease;outline:none;transform-origin:200px 200px}
.wseg path{stroke:transparent;stroke-width:3;transition:stroke .2s ease}
.wseg text{font:700 14px var(--head);letter-spacing:.06em;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.wseg-0 path{fill:var(--w0)}.wseg-0 text{fill:var(--wt0)}
.wseg-1 path{fill:var(--w1)}.wseg-1 text{fill:var(--wt1)}
.wseg-2 path{fill:var(--w2)}.wseg-2 text{fill:var(--wt2)}
.wseg-3 path{fill:var(--w3)}.wseg-3 text{fill:var(--wt3)}
.wseg-4 path{fill:var(--w4)}.wseg-4 text{fill:var(--wt4)}
.wseg-5 path{fill:var(--w5)}.wseg-5 text{fill:var(--wt5)}
.js-wheel .wseg{cursor:pointer;opacity:.62}
.js-wheel .wseg.on{opacity:1;transform:translate(var(--dx),var(--dy));filter:drop-shadow(0 6px 10px rgba(15,34,39,.22))}
.wseg:focus-visible path{stroke:var(--head-c)}
.wheel-core{position:absolute;inset:22%;border-radius:50%;display:grid;place-items:center;text-align:center;padding:10px;pointer-events:none}
.wc{grid-area:1/1;display:none;flex-direction:column;align-items:center;gap:8px}
.wc.on{display:flex;animation:wcIn .35s ease both}
.wc-i{width:30px;height:30px;color:var(--accent)}
.wc b{font:700 clamp(.9rem,1.9vw,1.12rem) var(--head);color:var(--head-c);line-height:1.2;max-width:11ch}
@keyframes wcIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.wtabs{border-top:1px solid var(--line);margin-bottom:28px;display:none}
.js-wheel .wtabs{display:block}
.wtab{width:100%;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:16px 8px;font:600 1rem var(--head);color:var(--muted);cursor:pointer;transition:color .2s,background-color .2s,padding .25s}
.wtab .n{font:700 .8rem var(--head);letter-spacing:.08em;color:var(--accent)}
.wtab .i{width:16px;height:16px;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s;color:var(--accent)}
.wtab:hover{color:var(--head-c)}
.wtab[aria-selected="true"]{color:var(--head-c);background:var(--ice);padding-left:var(--s2)}
.wtab[aria-selected="true"] .i{opacity:1;transform:none}
.wd{padding:2px 0}
.wd .n{display:block;font:700 .8rem var(--head);letter-spacing:.12em;color:var(--accent);margin-bottom:8px}
.wd h3{font-size:1.45rem;margin-bottom:10px}
.wd p{color:var(--muted);max-width:480px}
.js-wheel .wd{display:none}.js-wheel .wd.on{display:block;animation:wcIn .35s ease both}
.wheel:not(.js-wheel) .wd{border-top:1px solid var(--line);padding:22px 0}
.wheel:not(.js-wheel) .wheel-chart{display:none}
@media(max-width:960px){.wheel{grid-template-columns:1fr}.wheel-chart{max-width:400px}}
@media(prefers-reduced-motion:reduce){.wseg,.wc.on,.wd.on{transition-duration:.01ms!important;animation:none!important}}

/* ---------- vaccination route map (Services page) ---------- */
.route{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.route-map{position:relative;aspect-ratio:1000/400;background-color:var(--ice);
  background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:50px 50px;background-position:-1px -1px;display:none}
.js-route .route-map{display:block}
.route-svg{position:absolute;inset:0;width:100%;height:100%}
.route-land path{fill:none;stroke:var(--rule);stroke-width:1.6;stroke-dasharray:2 7;stroke-linecap:round;opacity:.9}
.route-path{fill:none;stroke:var(--surface);stroke-width:15;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgba(15,34,39,.12))}
.route-prog{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.route-mark{position:absolute;left:0;top:0;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--head-c);color:var(--bg);display:grid;place-items:center;z-index:3;pointer-events:none;box-shadow:var(--shadow-1);will-change:left,top}
.route-mark .i{width:22px;height:22px;transform:rotate(-12deg)}
.rstop{position:absolute;z-index:2;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:0;padding:6px;cursor:pointer}
.rstop .pin{position:relative;isolation:isolate;width:36px;height:36px;display:grid;place-items:center;font:700 .78rem var(--head);color:var(--head-c);transition:color .25s}
.rstop .pin::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--surface);border:2px solid var(--accent);transition:background-color .25s,transform .25s}
.rstop .lab{position:absolute;top:calc(100% + 2px);white-space:nowrap;font:700 .82rem var(--head);color:var(--head-c);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 10px;box-shadow:none}
.rstop:hover .pin::before,.rstop.on .pin::before{background:var(--accent);transform:rotate(-45deg) scale(1.14)}
.rstop:hover .pin,.rstop.on .pin{color:var(--bg)}
.rstop:focus-visible .pin{outline:2px solid var(--head-c);outline-offset:3px}
.route-detail{display:none;grid-template-columns:200px 1fr;gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(20px,3vw,32px);border-top:1px solid var(--line)}
.js-route .route-detail{display:grid}
.rimgs{position:relative;aspect-ratio:4/3;border-radius:var(--radius-sm);overflow:hidden;background:var(--ice)}
.rimgs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease}
.rimgs img.on{opacity:1}
.rimgs img[data-i="0"]{object-position:45% 40%}.rimgs img[data-i="1"]{object-position:50% 40%}.rimgs img[data-i="2"]{object-position:55% 45%}.rimgs img[data-i="3"]{object-position:40% 40%}
.rd{display:none}.rd.on{display:block;animation:wcIn .35s ease both}
.rd .n{display:block;font:700 .78rem var(--head);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.rd h3{font-size:1.45rem;margin-bottom:8px}.rd p{color:var(--muted);font-size:1.02rem}
/* list: the no-JS version and the phone version of the route */
.route-list{position:relative;padding:8px clamp(20px,3vw,32px) 24px 52px}
.js-route .route-list{display:none}
.route-list::before{content:"";position:absolute;left:30px;top:26px;bottom:30px;border-left:2px dashed var(--accent);opacity:.55}
.route-list li{position:relative;padding:18px 0}
.route-list li::before{content:"";position:absolute;left:-30px;top:24px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--accent)}
.route-list .age{display:block;font:700 .8rem var(--head);letter-spacing:.06em;color:var(--accent);margin-bottom:2px}
.route-list h3{font-size:1.05rem;margin-bottom:2px}.route-list p{color:var(--muted)}
@media(max-width:760px){
  .js-route .route-map,.js-route .route-detail{display:none}
  .js-route .route-list{display:block}
}
@media(max-width:560px){.route-detail{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.rd.on{animation:none}.rimgs img{transition-duration:.01ms;transform:none}}

/* ---------- responsive ---------- */
@media(min-width:1361px) and (max-width:1499px){nav a.l{padding:12px 10px}.nav{gap:var(--s3)}}
@media(min-width:1500px){nav a.l{padding:12px 16px}}
@media(max-width:1360px){
  .burger{display:inline-grid}
  .nav>nav{flex:none}
  .nav-end{margin-left:auto}
  nav ul{position:absolute;inset:100% 0 auto 0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:var(--surface);padding:var(--s1) var(--gutter) var(--s3);border-bottom:1px solid var(--line);box-shadow:var(--shadow-2);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,transform .2s,visibility .2s;max-height:calc(100vh - var(--nav-h));overflow:auto}
  nav ul.open{opacity:1;visibility:visible;transform:none}
  nav a.l{padding:16px 4px;border-radius:0;border-bottom:1px solid var(--line);font-size:1.0625rem;background:transparent}
  nav a.l.on{background:transparent}
  .m-actions{display:grid;gap:var(--s1);padding-top:var(--s2)}
  .m-actions .btn{width:100%}
}
@media(max-width:1024px){.sec-row{align-items:flex-start;flex-direction:column;gap:var(--s2)}}
@media(max-width:1024px){.visit{grid-template-columns:1fr 1fr}.visit .btn{justify-self:start}}
@media(max-width:700px){.visit{grid-template-columns:1fr;padding:var(--s3)}.res-sel{flex-wrap:wrap}}
@media(max-width:1100px){.dbook{--bh:640px}.bk-info{padding:var(--s4)}}
@media(max-width:760px){.dbook{display:none}.book-m{display:grid}}
@media(max-width:900px){.sh-ecg{display:none}}
@media(max-width:1100px){.seal.s1{left:-12px}.seal.s3{left:-8px}.seal.s2{right:-12px}.seal.s4{right:-8px}}
@media(max-width:900px){.dfeat,.dfeat.flip{grid-template-columns:1fr;gap:var(--s6)}.dfeat.flip .d-art{order:-1}.d-art{width:min(300px,78%)}.vals{grid-template-columns:1fr;gap:var(--s4)}.val{display:grid;grid-template-columns:auto 1fr;column-gap:var(--s3);align-items:center}.val .num{grid-row:1 / span 2;font-size:4rem}}
@media(max-width:600px){.seal{width:62px;height:62px}.seal .sl{font-size:.6875rem;padding:0 2px}.seal small{font-size:.4375rem}.seal.seal-w{width:74px;height:74px}.seal.seal-w .sl{font-size:.625rem}.seal.seal-w small{font-size:.4375rem}.seal.s1{left:-12px}.seal.s2{right:-12px}.seal.s3{left:-10px}.seal.s4{right:-8px}.seal .i{width:24px;height:24px}.d-art::before{inset:14px -10px -14px 10px}}
@media(max-width:900px){.spk{grid-template-columns:1fr;gap:var(--s6);justify-items:center}.spk-portrait{margin-left:0;width:240px;height:240px}.spk-bubble::before{left:50%;top:-14px;margin-left:-13px;border-left:1px solid var(--line);border-top:1px solid var(--line);border-bottom:0}}
@media(max-width:760px){.path{grid-template-columns:1fr;gap:var(--s4);padding-left:0}.path::before{top:36px;bottom:36px;left:36px;right:auto;border-top:0;border-left:2px dashed var(--rule)}.path li{display:grid;grid-template-columns:72px 1fr;column-gap:var(--s2);text-align:left;padding:0;align-items:center}.pn{margin:0;grid-row:1 / span 2}.path h3{align-self:end}.path p{margin:0;max-width:none;align-self:start}}
@media(max-width:600px){.spk-bubble{padding:var(--s4)}.spk-portrait{width:210px;height:210px}}
@media(max-width:900px){.tele{grid-template-columns:1fr;gap:var(--s4)}.tele-dev{order:-1}.tele-tabs{display:grid}}
@media(max-width:600px){.tele-panel .btn{min-width:0;width:100%}.dev{padding:8px;border-radius:16px}.scr-name{bottom:62px}.scr-self{bottom:62px}}
@media(max-width:600px){.clipboard{padding:var(--s8) var(--s2) var(--s2)}.sheet{padding:var(--s4) var(--s3) var(--s3)}.sheet::after{left:var(--s2)}.sh-points{grid-template-columns:1fr}.sh-cross{display:none}}
@media(max-width:900px){.page-bg{min-height:0;padding-block:var(--s6)}.page-bg::before{background:var(--bg-soft)!important;opacity:.9!important}}
@media(max-width:900px){.page-bg.has-visual .wrap{grid-template-columns:1fr;gap:var(--s4)}}
@media(max-width:600px){.page-bg .wrap{width:calc(100% - 32px)}}
@media(max-width:900px){.showcase{grid-template-columns:1fr}.sc-panels{display:none}.sc-item .sc-desc{display:block}.sc-item{padding:var(--s2)}.sc-item.on:not(:hover){background:var(--surface);border-color:var(--line);box-shadow:none}.sc-item.on:not(:hover) .go{background:transparent;border-color:var(--line);color:var(--primary)}}
@media(max-width:900px){.phone{display:inline-grid}}
@media(max-width:900px){.hero-bg::before{background:var(--bg-soft)!important;opacity:.9!important}.hero-bg{min-height:0}}
@media(max-width:760px){.nav-end .book{display:none}}
@media(max-width:1024px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .facts .wrap{grid-template-columns:repeat(2,1fr)}
  .fact:nth-child(2){border-right:0}.fact:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .ms-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .hero-grid,.page-head .wrap,.split,.checker-card,.g2,.g3,.steps{grid-template-columns:1fr}
  .hero-img{max-width:640px}
  .page-head .banner{max-width:640px}
  .hero{padding-block:var(--s6) var(--s8)}
  .facts{margin-top:calc(var(--s4) * -1)}
  .doc{grid-template-columns:160px 1fr}.doc img,.doc .ph{width:160px}
}
@media(min-width:901px) and (max-width:1020px){.scene{transform:scale(.7)}}
@media(min-width:1021px) and (max-width:1100px){.scene{transform:scale(.8)}}
@media(min-width:1101px) and (max-width:1199px){.scene{transform:scale(.92)}}
@media(min-width:1200px) and (max-width:1399px){.scene{transform:scale(1.05)}}
@media(min-width:1400px){.scene{transform:scale(1.18)}}
@media(max-width:900px){.scene{height:400px}.gl{height:420px}}
@media(max-width:600px){.scene{--R:200px;height:330px;transform:scale(.68)}.gl{height:350px}}
@media(max-width:350px){.scene{transform:scale(.58)}}
@media(max-width:600px){
  :root{--nav-h:76px}
  .wrap,.wrap.wide{width:calc(100% - 32px)}
  #loader .ldr-ecg{width:240px}
  .g4,.fields,.form .row,.foot-grid{grid-template-columns:1fr}
  .facts .wrap{grid-template-columns:1fr}
  .fact{border-right:0;border-bottom:1px solid var(--line);padding:var(--s2)}.fact:last-child{border-bottom:0}
  .ms-grid{grid-template-columns:repeat(2,1fr)}
  .doc{grid-template-columns:1fr}.doc img,.doc .ph{width:140px}
  .checker,.checker-card .side{padding:var(--s3)}
  .card{padding:var(--s3)}
  .btns .btn,.res-actions .btn,.cta-band .btn{width:100%}
  .brand b{font-size:1.125rem}.brand img{width:46px;height:46px}
  .nav{gap:var(--s1)}.nav-end{gap:var(--s1)}
  .callbar{display:flex;position:fixed;inset:auto 0 0 0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding:var(--s1) var(--s2)}
  .callbar .btn{width:100%}
  .wa{right:var(--s2);bottom:80px;width:52px;height:52px}
  body{padding-bottom:64px}
  .map{height:300px}
}
@media(max-width:430px){.brand{gap:8px}.brand img{width:42px;height:42px}.brand b{font-size:1.0625rem}}
@media(max-width:380px){.brand b{font-size:1rem}.brand img{width:40px;height:40px}.theme,.burger,.phone{width:36px;height:36px}}
@media(max-width:350px){.phone{display:none!important}.brand b{font-size:.9375rem}}
@media(prefers-reduced-motion:reduce){.core{animation:none!important;transform:rotateY(-16deg)}.orb{animation:none!important;transform:translate3d(calc(var(--R) * var(--sx)),0,calc(var(--R) * var(--cz)))}.floor{animation:none!important}#loader,#loader *{animation:none!important;opacity:1!important;transform:none!important}#loader{animation:ldrOutRm .3s ease 1.2s forwards!important;opacity:1!important}#loader .ldr-pct{display:none!important}#loader .ecg-line{stroke-dashoffset:0!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}}
@media print{.site-head,.wa,.callbar,.site-foot,.cta-band,.hero,.page-head,#loader,.res-bar,.res-actions,.res-hint,.form-msg,.visit,.tick{display:none!important}.ms:not(.sel){display:none!important}.ms{opacity:1!important}.result{background:#fff}body{padding:0}}
@keyframes ldrOutRm{to{opacity:0;visibility:hidden}}

@media(max-width:1000px){.reach{grid-template-columns:1fr}.desk{grid-template-columns:1fr}}
@media(max-width:600px){.tk-top,.tk-body,.hrs,.rc{padding:var(--s3)}.tk-top h3{font-size:1.25rem}.rc p a{font-size:1.125rem}}

/* ---------- desktop header: floating capsule with a pill nav track ---------- */
@media(min-width:1361px){
  .site-head{background:transparent;border-bottom:0;padding:10px var(--gutter) 0;box-shadow:none!important}
  .site-head .nav{max-width:1440px;margin-inline:auto;min-height:72px;padding:8px 10px 8px 22px;gap:var(--s3);border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 10px 30px -18px rgba(0,0,0,.35);transition:box-shadow .3s,border-color .3s}
  .site-head.stuck .nav{box-shadow:0 18px 40px -16px rgba(0,0,0,.45);border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}
  .site-head .brand img{width:48px;height:48px}
  .site-head .brand b{font-size:1.25rem}
  .site-head nav ul{display:inline-flex;gap:2px;padding:5px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line)}
  .site-head .nav>nav{display:flex;justify-content:center}
  .site-head nav a.l{border-radius:999px;padding:10px 16px;font-size:.96rem;position:relative}
  .site-head nav a.l:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}
  .site-head nav a.l.on{background:var(--surface);color:var(--primary);box-shadow:0 1px 2px rgba(0,0,0,.18),0 6px 14px -8px rgba(0,0,0,.4)}
  .site-head nav a.l.on::before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--primary);vertical-align:middle;animation:navBeat 2s ease-in-out infinite}
  .site-head .nav-end .book{border-radius:999px;min-height:52px;padding:0 var(--s4)}
  .site-head .theme{width:52px;height:52px;border-radius:50%;background:var(--bg-soft)}
}
@keyframes navBeat{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.55}}
@media(min-width:1361px) and (max-width:1499px){
  .site-head .nav{gap:var(--s2);padding-left:16px}
  .site-head nav a.l{padding:10px 10px;font-size:.9rem}
  .site-head nav a.l.on::before{margin-right:6px}
  .site-head .brand b{font-size:1.125rem}
  .site-head .nav-end .book{padding:0 var(--s3)}
}

@media(max-width:600px){.vg-head{padding:12px var(--s2)}.vi{padding:12px var(--s2)}.vlist{grid-template-columns:1fr}.vg-cnt{text-align:left}}
@media print{.vg li:not(.sel),.vg:not(.sel){display:none!important}.vg{break-inside:avoid;opacity:1!important}.vg-cnt{display:none}}

@media(max-width:600px){.vi{flex-wrap:wrap;padding:12px var(--s2);gap:8px 12px}.vm,.vd{margin-left:calc(24px + 12px + 2.2em + 12px)}.catch-top{padding:var(--s2)}.catch-date{width:100%}}
@media print{.catch li.given{display:none!important}.vg.catch{display:block!important}}
.nav-end .book-v{border:2px solid var(--rule);background:var(--surface);color:var(--ink-strong)}
.nav-end .book-v:hover{border-color:var(--primary);color:var(--primary)}
@media(min-width:1361px){.site-head .nav-end .book-v{min-height:52px;padding:0 var(--s3);border-radius:999px}}
@media(min-width:1361px) and (max-width:1499px){.site-head .nav-end{gap:var(--s1)}.site-head .nav-end .book-v{padding:0 var(--s2);font-size:.9rem}.site-head .nav-end .book{font-size:.9rem}}
@media(max-width:1360px){.nav-end .book-v{display:none}}
@media(min-width:1361px) and (max-width:1419px){.nav-end .book-v{display:none}}
@media(min-width:1500px){.site-head .nav{max-width:1640px}}
@media(min-width:1500px) and (max-width:1719px){.site-head nav a.l{padding:10px 12px}.site-head .nav{gap:var(--s2)}}
@media(max-width:900px){.sh-inj{width:150px}}
@media(max-width:600px){.sh-inj{width:110px}}
@media(max-width:430px){.sh-inj{display:none}}
/* Book Vaccine button replaces the Vaccination link where it is visible */
@media(min-width:1430px){.site-head .nav-vacc{display:none}}
.nav-end .book-v.is-on{border-color:var(--primary);color:var(--primary);background:var(--primary-50)}

@media(max-width:760px){
.path.jr{background:linear-gradient(var(--rule),var(--rule)) 34px 36px/4px var(--tl,calc(100% - 72px)) no-repeat;padding:0}
.path.jr::before{top:36px;bottom:auto;height:var(--tl,calc(100% - 72px));width:4px;left:34px;right:auto;border:0;transform-origin:top;transform:scaleY(1);background:linear-gradient(180deg,var(--primary),var(--cta))}
.path.jr::after{left:36px;top:27px}
.path.jr li{grid-template-columns:72px 1fr;align-items:start}
.path.jr .pn{grid-row:1}
.path.jr .jc{grid-column:2;grid-row:1;margin-top:0;text-align:left}
.path.jr p{margin:0;max-width:none}
.js .path.jr.in::after{animation:jrGoY 9s linear infinite,jrPulse 1.4s ease-out infinite}
.js .path.jr.in::before{animation:jrFillY 9s linear infinite}
}

@media(max-width:600px){.dev{border-radius:16px}.dev-bar.vc-top{padding:9px 12px}.vc-top b{font-size:.6875rem}.scr-name{bottom:74px;left:10px;padding:6px 10px 6px 6px}.scr-name .mic{width:26px;height:26px}.scr-name b{font-size:.8125rem}.snd{display:none}.scr-self{bottom:74px;right:10px;width:27%}.scr-ctrl{bottom:10px;padding:6px 8px;gap:8px}.scr-ctrl span{width:38px;height:38px}.scr-ctrl .end{width:52px}.scr-pill{top:10px;left:10px}.vc-av{width:72px;height:72px}}
@media(max-width:900px){.loc{grid-template-columns:1fr}}
@media(max-width:600px){.loc-tiles{grid-template-columns:1fr}.loc-body,.loc-offer{padding:var(--s3)}.loc-map{height:140px}.loc-led{width:auto;border-radius:20px}}
@media(max-width:1000px){.desk.cdesk{grid-template-columns:1fr}}
@media(max-width:600px){.rd-panel{padding:var(--s3)}.rd-call b{font-size:1.125rem}.rd-panel .days{gap:4px}.rd-panel .days li{padding:8px 0;border-radius:12px}.rd-panel .days li b{font-size:.6875rem}.rd-panel .days li small{font-size:.625rem}}
@media(max-width:1000px){.desk.cdesk .tk{position:static}}
@media(max-width:600px){.rd-panel .days{gap:4px}.rd-panel .days li{min-height:58px;padding:8px 0;gap:5px;border-radius:12px}.rd-panel .days li b{font-size:.625rem;letter-spacing:.04em}.rd-panel .days li small{font-size:.625rem;padding-top:5px}}
/* ---------- icon registry (Lucide) ---------- */
.i-apple{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-apple' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z' /%3E%3Cpath d='M10 2c1 .5 2 2 2 5' /%3E%3C/svg%3E")}
.i-arrow-right{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-arrow-right' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3Cpath d='m12 5 7 7-7 7' /%3E%3C/svg%3E")}
.i-baby{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-baby' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M9 12h.01' /%3E%3Cpath d='M15 12h.01' /%3E%3Cpath d='M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5' /%3E%3Cpath d='M19 6.3a9 9 0 0 1 1.8 3.9 2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1' /%3E%3C/svg%3E")}
.i-book-open{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-book-open' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 7v14' /%3E%3Cpath d='M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z' /%3E%3C/svg%3E")}
.i-calendar-check{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-calendar-check' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M8 2v4' /%3E%3Cpath d='M16 2v4' /%3E%3Crect width='18' height='18' x='3' y='4' rx='2' /%3E%3Cpath d='M3 10h18' /%3E%3Cpath d='m9 16 2 2 4-4' /%3E%3C/svg%3E")}
.i-check{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-check' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 6 9 17l-5-5' /%3E%3C/svg%3E")}
.i-chevron-down{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-chevron-down' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m6 9 6 6 6-6' /%3E%3C/svg%3E")}
.i-clipboard-check{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-clipboard-check' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1' /%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' /%3E%3Cpath d='m9 14 2 2 4-4' /%3E%3C/svg%3E")}
.i-clock{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-clock' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpolyline points='12 6 12 12 16 14' /%3E%3C/svg%3E")}
.i-graduation-cap{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-graduation-cap' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z' /%3E%3Cpath d='M22 10v6' /%3E%3Cpath d='M6 12.5V16a6 3 0 0 0 12 0v-3.5' /%3E%3C/svg%3E")}
.i-heart-pulse{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-heart-pulse' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z' /%3E%3Cpath d='M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27' /%3E%3C/svg%3E")}
.i-map-pin{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-map-pin' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0' /%3E%3Ccircle cx='12' cy='10' r='3' /%3E%3C/svg%3E")}
.i-menu{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-menu' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cline x1='4' x2='20' y1='12' y2='12' /%3E%3Cline x1='4' x2='20' y1='6' y2='6' /%3E%3Cline x1='4' x2='20' y1='18' y2='18' /%3E%3C/svg%3E")}
.i-message-circle{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-message-circle' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M7.9 20A9 9 0 1 0 4 16.1L2 22Z' /%3E%3C/svg%3E")}
.i-phone{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-phone' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z' /%3E%3C/svg%3E")}
.i-ruler{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-ruler' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z' /%3E%3Cpath d='m14.5 12.5 2-2' /%3E%3Cpath d='m11.5 9.5 2-2' /%3E%3Cpath d='m8.5 6.5 2-2' /%3E%3Cpath d='m17.5 15.5 2-2' /%3E%3C/svg%3E")}
.i-shield-check{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-shield-check' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z' /%3E%3Cpath d='m9 12 2 2 4-4' /%3E%3C/svg%3E")}
.i-stethoscope{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-stethoscope' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11 2v2' /%3E%3Cpath d='M5 2v2' /%3E%3Cpath d='M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1' /%3E%3Cpath d='M8 15a6 6 0 0 0 12 0v-3' /%3E%3Ccircle cx='20' cy='10' r='2' /%3E%3C/svg%3E")}
.i-syringe{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-syringe' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m18 2 4 4' /%3E%3Cpath d='m17 7 3-3' /%3E%3Cpath d='M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5' /%3E%3Cpath d='m9 11 4 4' /%3E%3Cpath d='m5 19-3 3' /%3E%3Cpath d='m14 4 6 6' /%3E%3C/svg%3E")}
.i-thermometer{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-thermometer' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z' /%3E%3C/svg%3E")}
.i-whatsapp{--i:url("data:image/svg+xml,%3Csvg role='img' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EWhatsApp%3C/title%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z'/%3E%3C/svg%3E")}
.i-sun{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-sun' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='4' /%3E%3Cpath d='M12 2v2' /%3E%3Cpath d='M12 20v2' /%3E%3Cpath d='m4.93 4.93 1.41 1.41' /%3E%3Cpath d='m17.66 17.66 1.41 1.41' /%3E%3Cpath d='M2 12h2' /%3E%3Cpath d='M20 12h2' /%3E%3Cpath d='m6.34 17.66-1.41 1.41' /%3E%3Cpath d='m19.07 4.93-1.41 1.41' /%3E%3C/svg%3E")}
.i-moon{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-moon' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z' /%3E%3C/svg%3E")}
.i-users{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-users' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' /%3E%3Ccircle cx='9' cy='7' r='4' /%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87' /%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75' /%3E%3C/svg%3E")}
.i-x{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-x' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M18 6 6 18' /%3E%3Cpath d='m6 6 12 12' /%3E%3C/svg%3E")}
@media(max-width:960px){.photo{max-width:340px}}
.ring{transform:rotate(-90deg)}
.banner{height:auto}
.i-video{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-video' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5' /%3E%3Crect x='2' y='6' width='14' height='12' rx='2' /%3E%3C/svg%3E")}
.i-smartphone{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-smartphone' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Crect width='14' height='20' x='5' y='2' rx='2' ry='2' /%3E%3Cpath d='M12 18h.01' /%3E%3C/svg%3E")}
.i-heart{--i:url("data:image/svg+xml,%3Csvg class='lucide lucide-heart' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z' /%3E%3C/svg%3E")}

/* ===== Vaccination checker: clear for parents (how-to strip, missed vaccines, catch-up date) ===== */
.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin:0 0 var(--s3);padding:0;list-style:none}
.how li{display:flex;align-items:flex-start;gap:12px;padding:14px var(--s2);background:var(--primary-50);border-radius:var(--radius-md);font-size:.9375rem;line-height:1.4;color:var(--ink)}
.how b{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--primary);color:var(--on-primary);font:800 .875rem var(--font-head)}
.res-bar .eyebrow{display:block;margin-bottom:4px}
.catch{margin:0 0 var(--s4);padding:0;border-color:#d97706;scroll-margin-top:96px}
.catch-top{background:#fff7ed}
:root[data-theme="dark"] .catch-top{background:rgba(251,191,36,.1)}
.catch-top .eyebrow{color:#b45309}
:root[data-theme="dark"] .catch-top .eyebrow{color:#fbbf24}
.catch-top p{color:var(--ink)}
.catch-date input{width:100%;min-height:48px;font-size:1rem;cursor:pointer}
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.quick button{min-height:40px;padding:8px 14px;border:1.5px solid var(--primary);border-radius:999px;background:var(--surface);color:var(--primary-d);font:700 .875rem var(--font-head);cursor:pointer;transition:background-color .2s,color .2s}
:root[data-theme="dark"] .quick button{color:var(--primary)}
.quick button:hover,.quick button[aria-pressed="true"],:root[data-theme="dark"] .quick button:hover,:root[data-theme="dark"] .quick button[aria-pressed="true"]{background:var(--primary);color:var(--on-primary)}
.quick button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.catch.flash{animation:catchflash 1.4s ease}
@keyframes catchflash{0%,100%{box-shadow:0 0 0 0 rgba(217,119,6,0)}30%{box-shadow:0 0 0 6px rgba(217,119,6,.35)}}
.vg.past,.vg.past:not(.sel){opacity:1;border-color:#d97706}
.vg-head-btn{width:100%;border:0;text-align:left;font:inherit;color:inherit;background:#fff7ed}
:root[data-theme="dark"] .vg-head-btn{background:rgba(251,191,36,.1)}
.vg-head-btn:hover{filter:brightness(.97)}
.vg-head-btn:focus-visible{outline:3px solid var(--primary);outline-offset:-3px}
.vg-head-btn .vg-st.past{background:#d97706;color:#fff}
.vg-head-btn .vg-cnt{color:#b45309;font-weight:700;text-decoration:underline;min-width:0}
:root[data-theme="dark"] .vg-head-btn .vg-cnt{color:#fbbf24}
.vg li.missed .vi,.vg li.missed .vi *{cursor:pointer}
.vlist li.missed .vn{color:var(--ink-strong);font-weight:600}
.vlist li.missed .vm{background:#fff7ed;color:#b45309;border-color:#fcd34d}
@media(max-width:700px){.how{grid-template-columns:1fr}}
@media print{.how,.quick{display:none!important}}
@media(prefers-reduced-motion:reduce){.catch.flash{animation:none}}

/* ---------- vaccination result: list-type chart (S.No | Age | Vaccine | Recommended date) ---------- */
.vt-top{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s3)}
.vt-top h2{margin:6px 0 0}
.vt-info{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 var(--s4);overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.vt-info>div{padding:16px 22px;border-right:1px solid var(--line)}
.vt-info>div:last-child{border-right:0}
.vt-info dt{font:700 .75rem var(--font-head);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.vt-info dd{margin:6px 0 0;font:800 1.0625rem var(--font-head);color:var(--primary);overflow-wrap:anywhere}
.vt{overflow:hidden;margin-bottom:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1)}
.vt-row{display:grid;grid-template-columns:64px 190px 1fr 230px;align-items:center;column-gap:14px;padding:13px 22px;border-top:1px solid var(--line);color:var(--ink)}
.vt-row:nth-child(odd):not(.vt-head){background:color-mix(in srgb,var(--blue-50) 55%,var(--surface))}
.vt-row.first{border-top:2px solid color-mix(in srgb,var(--pink) 80%,var(--line))}
.vt-head{padding:16px 22px;border-top:0;background:var(--primary);color:var(--on-primary);font:700 .875rem var(--font-head)}
.vt-no{color:var(--muted);font-variant-numeric:tabular-nums}
.vt-age{font:800 .9375rem var(--font-head);color:var(--primary)}
.vt-head .vt-age,.vt-head .vt-no{color:inherit;font:inherit}
.vt-vac{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--ink-strong);font-weight:500}
.vt-opt{font-style:normal;padding:2px 9px;border-radius:999px;background:var(--pink);color:var(--ink-strong);font:700 .6875rem var(--font-head)}
.vt-date{display:flex;align-items:center;justify-content:space-between;gap:12px}
.vt-date b{font-weight:800;color:var(--ink-strong);font-variant-numeric:tabular-nums}
.vt-head .vt-date{font:inherit}
.vt-st{padding:3px 11px;border-radius:999px;background:var(--blue-50);color:var(--primary);font:700 .6875rem var(--font-head);white-space:nowrap}
.vt-st.soon{background:color-mix(in srgb,#F5A524 18%,transparent);color:#9A6200}
:root[data-theme="dark"] .vt-st.soon{color:#FBBF4A}
.vt-st.past{background:color-mix(in srgb,var(--cta) 14%,transparent);color:var(--cta)}
.vt-st.given{background:color-mix(in srgb,#35C47B 18%,transparent);color:#17794A}
:root[data-theme="dark"] .vt-st.given{color:#6EE7A0}
.vt .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:760px){
 .vt-info{grid-template-columns:1fr 1fr}.vt-info>div:nth-child(2){border-right:0}.vt-info>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
 .vt-head{display:none}
 .vt-row{grid-template-columns:34px 1fr auto;grid-template-areas:"age age age" "no vac date";row-gap:6px;padding:12px 16px}
 .vt-row .vt-age{grid-area:age}.vt-row:not(.first) .vt-age{display:none}.vt-row:not(.first){grid-template-areas:"no vac date"}
 .vt-no{grid-area:no}.vt-vac{grid-area:vac}.vt-date{grid-area:date;flex-direction:column;align-items:flex-end;gap:4px}
 .vt-top .btn{width:100%}
}
@media print{.vt-top .btn{display:none}.vt{box-shadow:none}.vt-head{background:#2A5FC1!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* catch-up date column */
.vt-row{grid-template-columns:64px 176px 1fr 200px 190px}
.vt-cu{display:flex;align-items:center;min-width:0}
.vt-na{color:var(--muted)}
.vt-cui{width:100%;min-height:40px;padding:0 10px;border:1.5px solid color-mix(in srgb,var(--cta) 45%,var(--line));border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-strong);font:700 .875rem var(--font-head);cursor:pointer}
.vt-cui:focus{outline:2px solid var(--primary);outline-offset:1px}
.vt-row:not(.past) .vt-cui,.vt-row.past .vt-na{display:none}
.vt-head .vt-cu{font:inherit}
@media(max-width:1100px){.vt-row{grid-template-columns:48px 150px 1fr 170px 170px;column-gap:10px}}
@media(max-width:760px){
 .vt-row{grid-template-columns:34px 1fr auto;grid-template-areas:"age age age" "no vac date" "cu cu cu"}
 .vt-row:not(.first){grid-template-areas:"no vac date" "cu cu cu"}
 .vt-cu{grid-area:cu}
 .vt-row:not(.past) .vt-cu{display:none}
 .vt-row.past .vt-cu::before{content:"Catch-up date";flex:none;margin-right:12px;font:700 .75rem var(--font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
 .vt-cui{min-height:44px}
}

.vt-legend{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 var(--s2);color:var(--muted);font-size:.875rem}
.vt-legend span{display:inline-flex;align-items:center;gap:8px}
.vt-legend .vt-st{font-weight:700}

/* video call: taller frame so the whole head and shoulders fit with room above */
.dev-screen{aspect-ratio:1/1}
.scr img{object-position:50% 6%}
@media(max-width:600px){.dev-screen{aspect-ratio:5/6}}

/* ---------- services: vaccination timeline ---------- */
.tl{position:relative;max-width:1040px;margin:0 auto;padding:var(--s2) 0}
.tl-list{position:relative;display:grid;row-gap:var(--s6)}
.tl-item{display:grid;grid-template-columns:1fr 68px 1fr;align-items:center;transition:opacity .5s ease}
.tl-item:nth-child(odd) .tl-card{grid-column:1;grid-row:1}
.tl-item:nth-child(even) .tl-card{grid-column:3;grid-row:1}
.tl-node{grid-column:2;grid-row:1;position:relative;z-index:2;justify-self:center;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--surface);border:3px solid var(--primary);color:var(--primary);font:800 1rem var(--font-head);box-shadow:var(--shadow-1);transition:background .35s,color .35s,transform .35s,box-shadow .35s}
.tl-card{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1);transition:transform .35s ease,box-shadow .35s ease,border-color .35s}
.tl-card img{display:block;width:100%;aspect-ratio:16/8;object-fit:cover}
.tl-body{padding:var(--s3) var(--s3) var(--s4)}
.tl-age{display:inline-block;margin-bottom:var(--s1);padding:4px 12px;border-radius:999px;background:var(--pink);color:var(--ink-strong);font:800 .75rem var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.tl-body h3{margin:0 0 var(--s2);font-size:1.3125rem}
.tl-chips{display:flex;flex-wrap:wrap;gap:8px}
.tl-chips li{padding:6px 13px;border-radius:999px;background:var(--blue-50);color:var(--primary);font:700 .875rem var(--font-head)}
.tl-line{position:absolute;z-index:1;left:50%;top:0;width:4px;height:0;margin-left:-2px;border-radius:4px;background:repeating-linear-gradient(var(--rule) 0 6px,transparent 6px 12px)}
.tl-fill{position:absolute;left:0;top:0;width:100%;height:calc(var(--p,1) * 100%);border-radius:4px;background:linear-gradient(var(--primary),var(--cta))}
.tl-syr{position:absolute;left:50%;top:0;z-index:3;display:grid;place-items:center;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:var(--cta);color:#fff;box-shadow:0 0 0 6px color-mix(in srgb,var(--cta) 22%,transparent)}
.tl-syr .i{width:20px;height:20px}
.js .tl-item:not(.on){opacity:.55}
.js .tl-item.on .tl-node{background:var(--primary);color:var(--on-primary);transform:scale(1.1);box-shadow:0 0 0 8px color-mix(in srgb,var(--primary) 18%,transparent)}
.js .tl-item.on .tl-card{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:var(--shadow-2)}
@media(max-width:760px){
 .tl-line{left:27px;margin-left:-2px}
 .tl-syr{left:27px}
 .tl-item{grid-template-columns:56px 1fr;column-gap:14px;align-items:start}
 .tl-item .tl-card,.tl-item:nth-child(odd) .tl-card,.tl-item:nth-child(even) .tl-card{grid-column:2;grid-row:1}
 .tl-node{grid-column:1;justify-self:start;width:54px;height:54px;margin-top:6px}
 .tl-list{row-gap:var(--s4)}
}
@media(prefers-reduced-motion:reduce){.tl-item,.tl-node,.tl-card{transition:none}}
.form-note{margin:0 0 var(--s2);color:var(--muted);font-size:.8125rem}

/* ---------- blog + reels ---------- */
.bc{display:block;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1);color:inherit;transition:transform .25s,box-shadow .25s,border-color .25s}
.bc:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--primary) 40%,var(--line))}
.bc-img{display:block;overflow:hidden;aspect-ratio:16/10;background:var(--blue-50)}
.bc-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.bc:hover .bc-img img{transform:scale(1.05)}
.bc-body{display:grid;gap:8px;padding:var(--s3)}
.bc-cat{display:inline-block;justify-self:start;padding:4px 12px;border-radius:999px;background:var(--pink);color:var(--ink-strong);font:800 .6875rem var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.bc-t{font:800 1.1875rem/1.3 var(--font-head);color:var(--ink-strong)}
.bc-ex{color:var(--muted);font-size:.9375rem}
.bc-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;color:var(--muted);font-size:.8125rem}
.bc-meta i{display:inline-flex;align-items:center;gap:6px;font-style:normal;font:700 .8125rem var(--font-head);color:var(--primary)}
.bc-meta i .i{width:16px;height:16px;transition:transform .2s}.bc:hover .bc-meta i .i{transform:translateX(4px)}
.bc-feat{display:grid;grid-template-columns:1.1fr 1fr;margin-bottom:var(--s4)}
.bc-feat .bc-img{aspect-ratio:auto;min-height:320px}
.bc-feat .bc-body{align-content:center;padding:var(--s6)}
.bc-feat .bc-t{font-size:clamp(1.5rem,2.6vw,2rem)}
.bc-feat .bc-ex{font-size:1.0625rem}
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.posts{display:grid;gap:var(--s8);max-width:780px;margin:0 auto var(--s6)}
.post{scroll-margin-top:120px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-1);overflow:hidden}
.post-head{padding:var(--s4) var(--s4) var(--s2)}
.post-head h2{margin:10px 0 6px;font-size:clamp(1.6rem,3vw,2.25rem)}
.post-meta{margin:0;color:var(--muted);font-size:.875rem}
.post-img{display:block;width:100%;aspect-ratio:16/8;object-fit:cover}
.post-body{padding:var(--s3) var(--s4) var(--s2);color:var(--ink)}
.post-body p{margin:0 0 var(--s2);font-size:1.0625rem;line-height:1.7}
.post-body h3{margin:var(--s3) 0 var(--s1);font-size:1.25rem}
.post-body ul{margin:0 0 var(--s2);padding-left:1.3em;list-style:disc}
.post-body li{margin-bottom:8px;font-size:1.0625rem;line-height:1.65}
.post-body li::marker{color:var(--primary)}
.post-body a{color:var(--primary);font-weight:700;text-decoration:underline}
.post-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s2) var(--s4) var(--s4)}
.reels{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s8);align-items:center;max-width:1040px;margin:0 auto}
.reels-info h2{margin:6px 0 var(--s2);font-size:clamp(1.75rem,3.4vw,2.5rem);overflow-wrap:anywhere}
.reels-info p{color:var(--muted);font-size:1.0625rem;margin-bottom:var(--s3)}
.reels-pts{display:grid;gap:10px;margin-top:var(--s3)}
.reels-pts li{display:flex;gap:10px;align-items:flex-start;color:var(--ink)}
.reels-pts .i{flex:none;width:20px;height:20px;margin-top:2px;color:var(--primary)}
.btn .ig-ico{flex:none;width:20px;height:20px;margin-right:8px}
.phone-frame{position:relative;width:min(340px,100%);margin-inline:auto;padding:12px;border-radius:44px;background:#0E1316;box-shadow:var(--shadow-2),0 0 0 2px #2a3338 inset}
.pf-notch{position:absolute;left:50%;top:18px;z-index:3;width:84px;height:22px;margin-left:-42px;border-radius:14px;background:#0E1316}
.pf-screen{position:relative;overflow:hidden;height:600px;border-radius:32px;background:#fff}
.ig-embed{display:block;width:100%;height:100%;border:0;pointer-events:none;background:#fff}
.ig-hit{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:center;padding:20px;background:linear-gradient(transparent 55%,rgba(8,14,32,.55))}
.ig-hit span{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;background:#fff;color:#14295F;font:800 .9375rem var(--font-head);box-shadow:0 10px 24px -10px rgba(0,0,0,.5);transition:transform .2s}
.ig-hit:hover span{transform:translateY(-3px)}
.ig-hit .ig-ico{width:20px;height:20px;color:#D81E3C}
@media(max-width:960px){.bgrid{grid-template-columns:repeat(2,1fr)}.bc-feat{grid-template-columns:1fr}.bc-feat .bc-img{min-height:0;aspect-ratio:16/9}.reels{grid-template-columns:1fr;gap:var(--s6)}.reels-info{text-align:center}.reels-info .btns,.reels-pts{justify-content:center}.reels-pts{justify-items:start;max-width:420px;margin-inline:auto}}
@media(max-width:600px){.bgrid{grid-template-columns:1fr}.bc-feat .bc-body{padding:var(--s3)}.post-head,.post-body,.post-foot{padding-left:var(--s3);padding-right:var(--s3)}.post-foot .btn{width:100%}.pf-screen{height:560px}}
/* header: room for the Blog and Reels links */
@media(min-width:1361px) and (max-width:1499px){.site-head nav a.l{padding:10px 6px;font-size:.84rem}.site-head nav ul{gap:0}}
@media(min-width:1500px) and (max-width:1719px){.site-head nav a.l{padding:10px 9px;font-size:.9rem}}
@media(min-width:1720px){.site-head nav a.l{padding:10px 14px}}

/* reels: Instagram card instead of a phone frame */
.ig-card{width:min(480px,100%);margin-inline:auto;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-2)}
.ig-top{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(90deg,var(--blue-50),var(--pink));border-bottom:1px solid var(--line);font:700 .8125rem var(--font-head);color:var(--ink-strong)}
.ig-dots{display:inline-flex;gap:6px}.ig-dots i{width:9px;height:9px;border-radius:50%;background:var(--rule)}
.ig-view{position:relative;aspect-ratio:1/.9;background:#fff}
.ig-view .ig-embed{position:absolute;inset:0}

.ig-view::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fff 0 22%,transparent 22%),repeating-linear-gradient(90deg,transparent 0 calc(33.333% - 3px),#fff calc(33.333% - 3px) 33.333%),repeating-linear-gradient(180deg,transparent 0 calc(39% - 3px),#fff calc(39% - 3px) 39%),linear-gradient(135deg,var(--pink),var(--blue-50))}
.ig-view .ig-embed{opacity:0;background:transparent;transition:opacity .5s ease}
.ig-view .ig-embed.ready{opacity:1}
@media(max-width:600px){.ig-view{aspect-ratio:1/1.2}.reels-pts li{text-align:left}}

/* catch-up dates removed: the doctor decides the timing (list is back to four columns) */
.vt-row{grid-template-columns:64px 190px 1fr 230px}
@media(max-width:1100px){.vt-row{grid-template-columns:48px 160px 1fr 200px}}
@media(max-width:760px){
 .vt-row{grid-template-columns:34px 1fr auto;grid-template-areas:"age age age" "no vac date"}
 .vt-row:not(.first){grid-template-areas:"no vac date"}
}
/* featured article: even padding around the text, image and text columns match */
@media(min-width:961px){.bc-feat{grid-template-columns:1fr 1fr}.bc-feat .bc-body{padding:var(--s6)}}
.bc-feat .bc-body{gap:12px}
.bc-feat .bc-meta{margin-top:var(--s2)}
@media(max-width:960px){.bc-feat{grid-template-columns:1fr}.bc-feat .bc-img{min-height:0;aspect-ratio:16/9}.bc-feat .bc-body{padding:var(--s3)}}

/* ---------- menu: five main links plus a "More" card ---------- */
.nav-more{display:none}
.more-panel{display:none}
@media(min-width:1361px){
 .site-head nav .nav-extra,.site-head nav .nav-vacc{display:none!important}
 .site-head nav .nav-more{display:block;position:relative}
 .site-head nav a.l,.site-head .more-btn{padding:10px 13px;font-size:.94rem}
 .more-btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;background:transparent;color:var(--ink);font-family:var(--font-head);font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .2s,color .2s}
 .more-btn:hover,.more-btn[aria-expanded="true"]{background:color-mix(in srgb,var(--primary) 12%,transparent)}
 .more-btn.on{background:var(--surface);color:var(--primary);box-shadow:0 1px 2px rgba(0,0,0,.18),0 6px 14px -8px rgba(0,0,0,.4)}
 .more-chev{width:15px;height:15px;transition:transform .25s}
 .more-btn[aria-expanded="true"] .more-chev{transform:rotate(180deg)}
 .more-panel{display:grid;grid-template-columns:1fr 1fr;gap:6px;position:absolute;top:calc(100% + 16px);left:50%;z-index:60;width:500px;padding:10px;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2),0 30px 60px -30px rgba(20,41,95,.45);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-8px) scale(.98);transform-origin:50% 0;transition:opacity .2s ease,transform .25s cubic-bezier(.2,.8,.2,1),visibility .2s}
 .more-panel::before{content:"";position:absolute;left:50%;top:-8px;width:14px;height:14px;margin-left:-7px;background:var(--surface);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
 .nav-more.open .more-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1)}
 .mt{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;color:var(--ink-strong);transition:background-color .2s,transform .2s}
 .mt:hover,.mt:focus-visible{background:var(--blue-50);transform:translateY(-2px)}
 .mt.on{background:var(--pink)}
 .mt-ic{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--blue-50);color:var(--primary);transition:background-color .2s,color .2s}
 .mt:hover .mt-ic,.mt.on .mt-ic{background:var(--primary);color:var(--on-primary)}
 .mt-ic .i,.mt-ic .mi{width:21px;height:21px}
 .mt-t{display:grid;gap:2px;min-width:0}
 .mt-t b{font:800 .95rem var(--font-head);color:var(--ink-strong)}
 .mt-t small{font-size:.78rem;color:var(--muted);line-height:1.3}
 .nav-more.open .mt{animation:mtIn .35s ease both}
 .nav-more.open .mt:nth-child(2){animation-delay:.04s}.nav-more.open .mt:nth-child(3){animation-delay:.08s}.nav-more.open .mt:nth-child(4){animation-delay:.12s}
}
@media(min-width:1500px){.site-head nav a.l,.site-head .more-btn{padding:10px 16px;font-size:.96rem}}
@media(min-width:1720px){.site-head nav a.l,.site-head .more-btn{padding:10px 18px}}
@keyframes mtIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.more-panel,.more-chev,.mt{transition:none!important;animation:none!important}}
@media(min-width:1361px){.site-head .more-btn{height:41px;line-height:1}}

/* ---------- vaccine loading screen: realistic syringe ---------- */
.vl{--rs-ink:#14295F;--rs-g1:rgba(255,255,255,.96);--rs-g2:rgba(205,223,255,.55)}
:root[data-theme="dark"] .vl{--rs-ink:#B9CCF6;--rs-g1:rgba(255,255,255,.16);--rs-g2:rgba(141,180,255,.1)}
.vl .vl-rsyr{display:block;width:min(500px,88vw);height:auto;overflow:visible;filter:drop-shadow(0 14px 18px rgba(20,41,95,.18))}
.vl-rsyr .rs-st{stroke:var(--rs-ink)}
.vl-rsyr .rs-marks path{stroke:var(--rs-ink);stroke-width:1;opacity:.7}
.vl-rsyr .rs-marks text{fill:var(--rs-ink);font:700 7px var(--font-head,sans-serif);opacity:.8}
.vl-rsyr .rs-pl{transform:translateX(78px)}
.vl-rsyr .rs-liq{transform-box:fill-box;transform-origin:0 50%}
.vl-rsyr .rs-drop{fill:#F7819C;stroke:#D81E3C;stroke-width:.6;opacity:0}
.vl-rsyr .rs-spray{fill:none;stroke:#F7819C;stroke-width:1.6;stroke-linecap:round;opacity:0;transform-box:fill-box;transform-origin:100% 50%}
.vl-rsyr .rs-tipglow{opacity:0}
.vl-rsyr .rs-glint{opacity:0}
.vl.on .vl-rsyr .rs-pl,.vl.on .vl-rsyr .rs-liq,.vl.on .vl-rsyr .rs-drop,.vl.on .vl-rsyr .rs-spray,.vl.on .vl-rsyr .rs-tipglow,.vl.on .vl-rsyr .rs-glint{animation-duration:var(--vl-ms,1.9s);animation-iteration-count:1;animation-fill-mode:both;animation-timing-function:ease-in-out}
.vl.on .vl-rsyr .rs-pl{animation-name:rsPush}
.vl.on .vl-rsyr .rs-liq{animation-name:rsLiq}
.vl.on .vl-rsyr .rs-d1{animation-name:rsDrop1}
.vl.on .vl-rsyr .rs-d2{animation-name:rsDrop2}
.vl.on .vl-rsyr .rs-d3{animation-name:rsDrop3}
.vl.on .vl-rsyr .rs-spray{animation-name:rsSpray}
.vl.on .vl-rsyr .rs-tipglow{animation-name:rsGlow}
.vl.on .vl-rsyr .rs-glint{animation-name:rsGlint;animation-timing-function:linear}
@keyframes rsPush{0%,10%{transform:translateX(78px)}82%,100%{transform:translateX(2px)}}
@keyframes rsLiq{0%,10%{transform:scaleX(1)}82%,100%{transform:scaleX(.026)}}
@keyframes rsDrop1{0%,24%{opacity:0;transform:translate(0,0) scale(.6)}30%{opacity:1;transform:translate(-2px,2px) scale(1)}58%{opacity:1;transform:translate(-9px,24px) scale(.9)}66%,100%{opacity:0;transform:translate(-11px,36px) scale(.5)}}
@keyframes rsDrop2{0%,42%{opacity:0;transform:translate(0,0) scale(.6)}48%{opacity:1;transform:translate(-2px,2px) scale(1)}76%{opacity:1;transform:translate(-8px,24px) scale(.9)}84%,100%{opacity:0;transform:translate(-10px,36px) scale(.5)}}
@keyframes rsDrop3{0%,62%{opacity:0;transform:translate(0,0) scale(.6)}68%{opacity:1;transform:translate(-2px,2px) scale(1)}92%{opacity:1;transform:translate(-9px,24px) scale(.9)}100%{opacity:0;transform:translate(-11px,36px) scale(.5)}}
@keyframes rsSpray{0%,18%{opacity:0;transform:scaleX(0)}28%{opacity:.85;transform:scaleX(1)}78%{opacity:.7;transform:scaleX(1)}90%,100%{opacity:0;transform:scaleX(.4)}}
@keyframes rsGlow{0%,18%{opacity:0}35%,75%{opacity:1}92%,100%{opacity:0}}
@keyframes rsGlint{0%{opacity:0;transform:skewX(-18deg) translateX(0)}12%{opacity:.9}55%{opacity:.9;transform:skewX(-18deg) translateX(215px)}60%,100%{opacity:0;transform:skewX(-18deg) translateX(215px)}}
@media(prefers-reduced-motion:reduce){.vl.on .vl-rsyr *{animation:none!important}.vl-rsyr .rs-pl{transform:translateX(30px)}.vl-rsyr .rs-liq{transform:scaleX(.4)}}

/* ---------- vaccination sheet: realistic syringe in the record header (loops) ---------- */
.sh-rsyr{--rs-ink:#14295F;--rs-g1:rgba(255,255,255,.96);--rs-g2:rgba(205,223,255,.55);flex:none;display:block;width:260px;height:auto;overflow:visible;filter:drop-shadow(0 8px 10px rgba(20,41,95,.16))}
:root[data-theme="dark"] .sh-rsyr{--rs-ink:#B9CCF6;--rs-g1:rgba(255,255,255,.16);--rs-g2:rgba(141,180,255,.1)}
.sh-rsyr .rs-st{stroke:var(--rs-ink)}
.sh-rsyr .rs-marks path{stroke:var(--rs-ink);stroke-width:1;opacity:.7}
.sh-rsyr .rs-marks text{fill:var(--rs-ink);font:700 7px var(--font-head,sans-serif);opacity:.8}
.sh-rsyr .rs-pl{transform:translateX(78px);animation:shPush 5.2s ease-in-out infinite}
.sh-rsyr .rs-liq{transform-box:fill-box;transform-origin:0 50%;animation:shLiq 5.2s ease-in-out infinite}
.sh-rsyr .rs-drop{fill:#F7819C;stroke:#D81E3C;stroke-width:.6;opacity:0}
.sh-rsyr .rs-d1{animation:shDrop 5.2s ease-in infinite;animation-delay:0s}
.sh-rsyr .rs-d2{animation:shDrop 5.2s ease-in infinite;animation-delay:.55s}
.sh-rsyr .rs-d3{animation:shDrop 5.2s ease-in infinite;animation-delay:1.1s}
.sh-rsyr .rs-spray{fill:none;stroke:#F7819C;stroke-width:1.6;stroke-linecap:round;opacity:0;transform-box:fill-box;transform-origin:100% 50%;animation:shSpray 5.2s ease-in-out infinite}
.sh-rsyr .rs-tipglow{opacity:0;animation:shGlow 5.2s ease-in-out infinite}
.sh-rsyr .rs-glint{opacity:0;animation:shGlint 5.2s linear infinite}
@keyframes shPush{0%,10%{transform:translateX(78px)}56%,64%{transform:translateX(2px)}90%,100%{transform:translateX(78px)}}
@keyframes shLiq{0%,10%{transform:scaleX(1)}56%,64%{transform:scaleX(.026)}90%,100%{transform:scaleX(1)}}
@keyframes shDrop{0%,16%{opacity:0;transform:translate(0,0) scale(.6)}20%{opacity:1;transform:translate(-2px,2px) scale(1)}34%{opacity:1;transform:translate(-9px,24px) scale(.9)}38%,100%{opacity:0;transform:translate(-11px,36px) scale(.5)}}
@keyframes shSpray{0%,14%{opacity:0;transform:scaleX(0)}22%{opacity:.85;transform:scaleX(1)}54%{opacity:.7;transform:scaleX(1)}62%,100%{opacity:0;transform:scaleX(.4)}}
@keyframes shGlow{0%,14%{opacity:0}26%,52%{opacity:1}62%,100%{opacity:0}}
@keyframes shGlint{0%,8%{opacity:0;transform:skewX(-18deg) translateX(0)}14%{opacity:.9}46%{opacity:.9;transform:skewX(-18deg) translateX(215px)}50%,100%{opacity:0;transform:skewX(-18deg) translateX(215px)}}
@media(max-width:900px){.sh-rsyr{width:200px}}
@media(max-width:600px){.sh-rsyr{width:150px}}
@media(max-width:430px){.sh-rsyr{display:none}}
@media(prefers-reduced-motion:reduce){.sh-rsyr *{animation:none!important}.sh-rsyr .rs-pl{transform:translateX(30px)}.sh-rsyr .rs-liq{transform:scaleX(.4)}}

/* ---------- date picker: baby pink and blue calendar ---------- */
input.dp-view,.field input.dp-view{cursor:pointer;padding-right:46px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D81E3C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:22px}
html.cc-on input.dp-view{cursor:none!important}
.dp-pop{position:fixed;z-index:1000;width:322px;max-width:calc(100vw - 16px);padding:12px;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:0 24px 60px -20px rgba(20,41,95,.45),0 4px 12px rgba(20,41,95,.08);color:var(--ink);font-family:var(--font-head);animation:dpIn .18s ease both}
@keyframes dpIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.dp-head{display:flex;align-items:center;gap:6px;padding:8px;margin-bottom:10px;border-radius:16px;background:linear-gradient(100deg,var(--pink),var(--blue-50))}
.dp-mid{flex:1;display:flex;justify-content:center;gap:4px;min-width:0}
.dp-title{font:800 1rem var(--font-head);color:var(--ink-strong);padding:8px}
.dp-nav{flex:none;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--surface);color:var(--primary);font:800 1.4rem/1 var(--font-head);cursor:pointer;box-shadow:0 1px 3px rgba(20,41,95,.15);transition:transform .15s,background-color .15s}
.dp-nav:hover:not(:disabled){background:var(--primary);color:var(--on-primary);transform:scale(1.06)}
.dp-nav:disabled{opacity:.35;cursor:default}
.dp-pick{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:0;border-radius:999px;background:var(--surface);color:var(--ink-strong);font:800 .9375rem var(--font-head);cursor:pointer;box-shadow:0 1px 3px rgba(20,41,95,.15);transition:background-color .15s,color .15s}
.dp-pick:hover{background:var(--primary);color:var(--on-primary)}
.dp-car{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-dow{padding:6px 0;text-align:center;color:var(--primary);font:800 .75rem var(--font-head)}
.dp-gap{display:block}
.dp-day{aspect-ratio:1;min-height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink-strong);font:600 .9375rem var(--font-head);cursor:pointer;transition:background-color .12s,color .12s,transform .12s}
.dp-day:hover:not(:disabled){background:var(--blue-50);transform:scale(1.08)}
.dp-day.now{box-shadow:inset 0 0 0 2px var(--pink);color:var(--cta)}
.dp-day.on{background:var(--primary);color:var(--on-primary);box-shadow:0 6px 12px -6px var(--primary);transform:none}
.dp-day:disabled{opacity:.28;cursor:default}
.dp-cells{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dp-cell{min-height:48px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg-soft);color:var(--ink-strong);font:700 .9375rem var(--font-head);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,transform .15s}
.dp-cell:hover:not(:disabled){background:var(--blue-50);border-color:var(--primary);transform:translateY(-2px)}
.dp-cell.now{border-color:var(--cta);color:var(--cta)}
.dp-cell.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.dp-cell:disabled{opacity:.3;cursor:default}
.dp-quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.dp-quick span{width:100%;color:var(--muted);font:700 .6875rem var(--font-head);letter-spacing:.1em;text-transform:uppercase}
.dp-chip{padding:7px 12px;border:0;border-radius:999px;background:var(--pink);color:var(--ink-strong);font:700 .75rem var(--font-head);cursor:pointer;transition:background-color .15s,color .15s}
.dp-chip:hover:not(:disabled){background:var(--primary);color:var(--on-primary)}
.dp-chip:disabled{opacity:.4;cursor:default}
.dp-foot{display:flex;justify-content:space-between;margin-top:10px;padding:0 4px}
.dp-link{border:0;background:none;color:var(--primary);font:800 .8125rem var(--font-head);text-decoration:underline;cursor:pointer;padding:8px 6px}
.dp-link:disabled{opacity:.4;text-decoration:none;cursor:default}
.dp-pop button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.dp-back{position:fixed;inset:0;z-index:999;background:rgba(10,20,50,.45)}
@media(max-width:520px){.dp-pop{left:8px!important;right:8px;top:auto!important;bottom:8px;width:auto;max-width:none;padding:14px;border-radius:26px}.dp-day{min-height:44px}}
@media(prefers-reduced-motion:reduce){.dp-pop{animation:none}}

/* a date in the past is not shown as an alarm: we do not know what was given */
.vt-st.past{background:var(--pink);color:var(--ink-strong)}

/* ---------- vaccination result: simple chart (vaccine + date), new look ---------- */
#schedule-result{position:relative;padding-block:var(--s8);background:
 radial-gradient(60% 45% at 6% 6%,color-mix(in srgb,var(--pink) 95%,transparent),transparent 72%),
 radial-gradient(55% 50% at 96% 94%,color-mix(in srgb,var(--blue-50) 100%,transparent),transparent 72%),
 radial-gradient(color-mix(in srgb,var(--primary) 18%,transparent) 1.3px,transparent 1.7px) 0 0/26px 26px,
 var(--bg)}
.vt-info{border:0;border-radius:24px;box-shadow:0 18px 40px -26px rgba(20,41,95,.45)}
.vt-info>div{position:relative}
.vt-info>div::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(var(--primary),var(--cta))}
.vt{border:0;border-radius:28px;box-shadow:0 30px 60px -34px rgba(20,41,95,.55),0 2px 6px rgba(20,41,95,.06)}
.vt-head{position:relative;overflow:hidden;padding:20px 28px;background:linear-gradient(100deg,#234FA8,#2A5FC1 45%,#5B8DEF);letter-spacing:.02em}
.vt-head::after{content:"";position:absolute;right:-40px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(250,211,224,.55),transparent 70%);pointer-events:none}
.vt-head>*{position:relative;z-index:1}
.vt-row{padding:15px 28px;grid-template-columns:64px 200px 1fr 190px}
.vt-row:nth-child(odd):not(.vt-head){background:color-mix(in srgb,var(--pink) 26%,var(--surface))}
.vt-row:nth-child(even):not(.vt-head){background:var(--surface)}
.vt-row.first{border-top:2px solid color-mix(in srgb,var(--primary) 22%,var(--line))}
.vt-row.first .vt-age{justify-self:start;padding:5px 14px;border-radius:999px;background:var(--blue-50);color:var(--primary);font:800 .8125rem var(--font-head);white-space:nowrap}
.vt-vac{font-weight:600}
.vt-date{justify-content:flex-end}
.vt-date b{padding:7px 16px;border-radius:12px;background:color-mix(in srgb,var(--pink) 60%,transparent);color:var(--ink-strong);font:800 .9375rem var(--font-head)}
.vt-head .vt-date{justify-content:flex-end}
.vt-note{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin:0 0 var(--s4);padding:var(--s3) var(--s4);border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 40px -28px rgba(20,41,95,.45)}
.vt-note-ic{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,var(--pink),var(--blue-50));color:var(--primary)}
.vt-note-ic .i{width:28px;height:28px}
.vt-note>div{flex:1;min-width:220px}
.vt-note h3{margin:0 0 4px;font-size:1.125rem}
.vt-note p{margin:0;color:var(--muted)}
@media(max-width:1100px){.vt-row{grid-template-columns:48px 170px 1fr 170px}}
@media(max-width:760px){
 .vt-row{padding:14px 16px;grid-template-columns:34px 1fr auto;grid-template-areas:"age age age" "no vac date"}
 .vt-row:not(.first){grid-template-areas:"no vac date"}
 .vt-row.first .vt-age{justify-self:start}
 .vt-date b{padding:6px 12px;font-size:.875rem}
 .vt-note{padding:var(--s3)}.vt-note .btn{width:100%}
}

/* ---------- growth charts page ---------- */
.gc{position:relative;padding-block:var(--s6);background:
 radial-gradient(55% 40% at 4% 4%,color-mix(in srgb,var(--pink) 95%,transparent),transparent 72%),
 radial-gradient(50% 45% at 98% 60%,color-mix(in srgb,var(--blue-50) 100%,transparent),transparent 72%),
 radial-gradient(color-mix(in srgb,var(--primary) 14%,transparent) 1.2px,transparent 1.6px) 0 0/26px 26px,var(--bg)}
.gc-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:var(--s4)}
.gc-tab{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1.5px solid var(--line);border-radius:22px;background:var(--surface);color:var(--ink-strong);text-align:left;cursor:pointer;font-family:var(--font-head);box-shadow:var(--shadow-1);transition:transform .2s,box-shadow .2s,border-color .2s,background-color .2s}
.gc-tab:hover{transform:translateY(-3px);border-color:var(--primary)}
.gc-tab b{display:block;font-weight:800;font-size:.9688rem}
.gc-tab small{display:block;margin-top:2px;color:var(--muted);font:600 .75rem var(--font-head)}
.gc-ti{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--pink),var(--blue-50));color:var(--primary)}
.gc-ti svg{width:22px;height:22px}
.gc-tab.on{background:linear-gradient(120deg,#234FA8,#2A5FC1 55%,#5B8DEF);border-color:transparent;color:#fff;box-shadow:0 18px 34px -18px rgba(42,95,193,.8)}
.gc-tab.on small{color:#D8E5FF}
.gc-tab.on .gc-ti{background:rgba(255,255,255,.18);color:#fff}
.gc-head{margin-bottom:var(--s3)}
.gc-head h2{margin:0 0 6px;font-size:clamp(1.5rem,2.6vw,2rem)}
.gc-head p{margin:0;color:var(--muted);max-width:56rem}
.gc-layout{display:grid;grid-template-columns:380px 1fr;gap:var(--s4);align-items:start}
.gc-form{position:sticky;top:104px;display:grid;gap:var(--s2);padding:var(--s3);border-radius:28px;background:var(--surface);border:1px solid var(--line);box-shadow:0 26px 50px -32px rgba(20,41,95,.55)}
.gc-form::before{content:"";display:block;height:6px;margin:calc(var(--s3) * -1) calc(var(--s3) * -1) var(--s1);border-radius:28px 28px 0 0;background:linear-gradient(90deg,var(--pink),var(--primary))}
.gc-f{display:grid;gap:8px}
.gc-lab{font:800 .8125rem var(--font-head);color:var(--ink-strong);letter-spacing:.02em}
.gc-lab em{font-style:normal;font-weight:600;color:var(--muted);margin-left:6px}
.gc-f small{color:var(--muted);font-size:.8125rem}
.gc-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;padding:5px;border-radius:16px;background:var(--bg-soft);border:1px solid var(--line)}
.gc-seg label{position:relative}
.gc-seg input{position:absolute;opacity:0;pointer-events:none}
.gc-seg span{display:grid;place-items:center;min-height:44px;padding:0 10px;border-radius:12px;color:var(--muted);font:700 .9rem var(--font-head);text-align:center;cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s}
.gc-seg.sm span{min-height:38px;font-size:.8125rem}
.gc-seg input:checked+span{background:var(--primary);color:var(--on-primary);box-shadow:0 8px 16px -8px var(--primary)}
.gc-seg input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.gc-in{position:relative;display:block}
.gc-in input{width:100%;min-height:50px;padding:0 54px 0 16px;border:1.5px solid var(--rule);border-radius:14px;background:var(--surface);color:var(--ink-strong);font:700 1.0625rem var(--font-head);transition:border-color .2s,box-shadow .2s}
.gc-in input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-100)}
.gc-in i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font:700 .8125rem var(--font-head);font-style:normal;pointer-events:none}
.gc-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gc-dob .dp-view{width:100%}
.gc-act{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--s1)}
.gc-act .btn{flex:1}
.gc-out{min-width:0}
.gc-empty{display:grid;gap:6px;place-items:center;text-align:center;min-height:320px;padding:var(--s4);border:2px dashed color-mix(in srgb,var(--primary) 35%,var(--line));border-radius:28px;background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--muted)}
.gc-empty b{font:800 1.25rem var(--font-head);color:var(--ink-strong)}
.gc-err{padding:16px 20px;border-radius:18px;background:var(--pink);color:var(--ink-strong);font-weight:700;border:1px solid color-mix(in srgb,var(--cta) 40%,transparent)}
.gc-flag{margin:0 0 var(--s2);padding:12px 16px;border-radius:14px;background:var(--blue-50);color:var(--primary);font-weight:600}
.gc-sum{display:grid;grid-template-columns:repeat(5,1fr);margin-bottom:var(--s3);overflow:hidden;border-radius:22px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.gc-sum span{padding:14px 18px;border-right:1px solid var(--line)}
.gc-sum span:last-child{border-right:0}
.gc-sum small{display:block;color:var(--muted);font:700 .6875rem var(--font-head);letter-spacing:.1em;text-transform:uppercase}
.gc-sum b{display:block;margin-top:4px;font:800 1.0625rem var(--font-head);color:var(--primary)}
.gc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:var(--s3)}
.gc-card{display:grid;gap:12px;align-content:start;padding:var(--s3);border-radius:26px;background:var(--surface);border:1px solid var(--line);box-shadow:0 22px 44px -32px rgba(20,41,95,.55);position:relative;overflow:hidden}
.gc-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--primary)}
.gc-card.warn::before{background:#F08CAA}.gc-card.bad::before{background:var(--cta)}
.gc-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.gc-card h3{margin:0;font-size:1.0625rem}
.gc-chip{flex:none;padding:5px 12px;border-radius:999px;background:var(--blue-50);color:var(--primary);font:800 .6875rem var(--font-head);letter-spacing:.02em;text-align:right}
.gc-card.warn .gc-chip{background:var(--pink);color:var(--ink-strong)}
.gc-card.bad .gc-chip{background:color-mix(in srgb,var(--cta) 16%,transparent);color:var(--cta)}
.gc-val{display:flex;align-items:baseline;gap:8px;margin:0}
.gc-val b{font:800 2.25rem/1 var(--font-head);letter-spacing:-.02em;color:var(--ink-strong)}
.gc-val small{color:var(--muted);font:700 .9375rem var(--font-head)}
.gc-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;color:var(--muted);font-size:.875rem}
.gc-meta b{color:var(--ink-strong)}
.gc-note{margin:0;color:var(--muted);font-size:.875rem;line-height:1.55}
.gc-scale{padding-top:8px}
.gc-track{position:relative;height:12px;border-radius:999px;background:linear-gradient(90deg,#F5A0BC 0%,#F9CADB 20%,#BFD4FA 34%,#7FA7F0 50%,#BFD4FA 66%,#F9CADB 80%,#F5A0BC 100%)}
.gc-mark{position:absolute;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:#fff;border:4px solid var(--ink-strong);box-shadow:0 0 0 5px color-mix(in srgb,var(--cta) 22%,transparent)}
.gc-ticks{display:flex;justify-content:space-between;margin-top:8px;padding:0 3%;color:var(--muted);font:700 .6875rem var(--font-head)}
.gc-chart{margin:4px 0 0}
.gc-svg{overflow:hidden;border-radius:16px;border:1px solid var(--line);background:#fff}
.gc-svg svg{display:block;width:100%;height:auto}
.gc-dl{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.gc-disc{margin:var(--s3) 0 0;color:var(--muted);font-size:.8125rem;line-height:1.6}
.gc-disc b{color:var(--ink-strong)}
.gc-range{padding:6px 2px}
.gc-rbar{position:relative;height:16px;border-radius:999px;background:var(--blue-50)}
.gc-rbar i{position:absolute;top:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#F5A0BC,#7FA7F0 50%,#F5A0BC)}
.gc-rbar b{position:absolute;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:#fff;border:4px solid var(--ink-strong)}
.gc-rlab{display:flex;justify-content:space-between;margin-top:10px;font:800 .9375rem var(--font-head);color:var(--ink-strong)}
.gc-rlab small{display:block;color:var(--muted);font-weight:600;font-size:.75rem}
.gc-rlab span:last-child{text-align:right}
.gc-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:var(--s3)}
.gc-fg{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.gc-fg button{min-height:40px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:700 .8125rem var(--font-head);cursor:pointer}
.gc-fg button.on{background:var(--primary);color:var(--on-primary)}
.gc-libgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s3)}
.gc-lib{overflow:hidden;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:0 22px 44px -32px rgba(20,41,95,.55)}
.gc-lib[hidden]{display:none}
.gc-thumb{border-bottom:1px solid var(--line);background:#fff}
.gc-thumb svg{display:block;width:100%;height:auto}
.gc-libb{display:grid;gap:10px;padding:var(--s2) var(--s3) var(--s3)}
.gc-libb h3{margin:0;font-size:1rem}
.gc-tag{justify-self:start;padding:4px 12px;border-radius:999px;font:800 .6875rem var(--font-head);letter-spacing:.06em;text-transform:uppercase}
.gc-tag.who{background:var(--blue-50);color:var(--primary)}.gc-tag.iap{background:var(--pink);color:var(--ink-strong)}
.gc-about{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--s6);align-items:start}
.gc-about h2{margin:6px 0 var(--s2)}
.gc-about p{color:var(--muted)}
.gc-src{display:grid;gap:12px}
.gc-src li{padding:16px 18px;border-radius:18px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:.9375rem}
.gc-src li b{display:block;margin-bottom:4px;color:var(--ink-strong);font-family:var(--font-head)}
@media(max-width:1100px){.gc-tabs{grid-template-columns:repeat(2,1fr)}.gc-layout{grid-template-columns:1fr}.gc-form{position:static}.gc-about{grid-template-columns:1fr}}
@media(max-width:600px){.gc-sum{grid-template-columns:1fr 1fr}.gc-sum span:nth-child(even){border-right:0}.gc-sum span:nth-child(-n+4){border-bottom:1px solid var(--line)}.gc-sum span:nth-child(5){grid-column:1/-1;border-right:0}.gc-grid{grid-template-columns:1fr}.gc-tab{padding:12px}.gc-ti{width:38px;height:38px}.gc-fg{width:100%}.gc-fg button{flex:1;padding:0 8px}.gc-libgrid{grid-template-columns:1fr}.gc-val b{font-size:1.9rem}}
@media(prefers-reduced-motion:reduce){.gc-tab,.gc-in input{transition:none}}
.mt:last-child:nth-child(odd){grid-column:1 / -1}
/* growth calculator: no native spinner arrows, so the unit label (years, months, kg, cm) sits cleanly at the right */
.gc-in input[type=number]{-moz-appearance:textfield;appearance:textfield;padding-right:72px}
.gc-in input[type=number]::-webkit-inner-spin-button,.gc-in input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0;display:none}
.gc-in i{right:16px;min-width:44px;text-align:right}
.gc-pair .gc-in input{padding-right:78px}
.gc-empty{align-content:center}

/* growth page: one connected tab bar with duotone icons */
.gc-tabs{gap:0;overflow:hidden;margin-bottom:var(--s4);border-radius:26px;background:var(--surface);border:1px solid var(--line);box-shadow:0 24px 48px -34px rgba(20,41,95,.55)}
.gc-tab{position:relative;gap:16px;padding:20px 22px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;color:var(--ink-strong);transition:background-color .25s}
.gc-tab:last-child{border-right:0}
.gc-tab:hover{transform:none;background:color-mix(in srgb,var(--blue-50) 55%,var(--surface))}
.gc-tab::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--pink),var(--primary));transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.gc-ti{width:52px;height:52px;border-radius:16px;background:linear-gradient(145deg,var(--blue-50),var(--pink));color:var(--primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 14%,transparent);transition:background .25s,color .25s,box-shadow .25s}
.gc-ti svg{width:32px;height:32px}
.gc-ti .a{fill:color-mix(in srgb,var(--pink) 85%,#fff);stroke:currentColor}
.gc-ti .d{fill:var(--cta);stroke:none}
.gc-tt{display:grid;gap:2px;min-width:0}
.gc-tt em{font:800 .625rem var(--font-head);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--cta)}
.gc-tt b{font:800 1rem var(--font-head);color:var(--ink-strong)}
.gc-tt small{display:block;margin:0;color:var(--muted);font:500 .8125rem var(--font-body)}
.gc-tab.on{background:linear-gradient(180deg,color-mix(in srgb,var(--blue-50) 70%,var(--surface)),var(--surface));box-shadow:none;color:var(--ink-strong)}
.gc-tab.on::after{transform:scaleX(1)}
.gc-tab.on .gc-ti{background:linear-gradient(145deg,#234FA8,#5B8DEF);color:#fff;box-shadow:0 12px 22px -12px rgba(42,95,193,.9)}
.gc-tab.on .gc-ti .a{fill:rgba(255,255,255,.28);stroke:#fff}
.gc-tab.on .gc-ti .d{fill:#FFD9E6}
.gc-tab.on .gc-tt b{color:var(--primary)}
.gc-tab.on small{color:var(--muted)}
.gc-tab:focus-visible{outline:2px solid var(--primary);outline-offset:-4px}
@media(max-width:1100px){.gc-tabs{grid-template-columns:repeat(2,1fr)}.gc-tab:nth-child(2){border-right:0}.gc-tab:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:600px){.gc-tab{padding:14px 12px;gap:10px}.gc-ti{width:42px;height:42px;border-radius:13px}.gc-ti svg{width:26px;height:26px}.gc-tt b{font-size:.875rem}.gc-tt small{display:none}.gc-tt em{font-size:.5625rem}}
.loc-map.gmap{height:260px;background:var(--blue-50)}
.loc-map.gmap::before,.loc-map.gmap::after{display:none}
.loc-map.gmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:600px){.loc-map.gmap{height:220px}}
.i-instagram{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='20' x='2' y='2' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' x2='17.51' y1='6.5' y2='6.5'/%3E%3C/svg%3E")}

/* ---------- loader v7 "Aurora Bloom": drifting aurora, spinning light rays, ink-reveal logo, shockwaves, typed name, particles (js/loader-fx.js) - about 5s, 2D only ---------- */
#loader .fx-aurora{position:absolute;inset:0;overflow:hidden;opacity:0;animation:ldrFade 1s ease .05s both}
#loader .fx-aurora i{position:absolute;width:62vmax;height:62vmax;border-radius:50%;filter:blur(46px);animation:fxDrift 9s ease-in-out infinite alternate;will-change:transform}
#loader .fx-aurora .a1{left:-18vmax;top:-16vmax;background:radial-gradient(closest-side,rgba(246,163,193,.62),transparent)}
#loader .fx-aurora .a2{right:-20vmax;bottom:-22vmax;background:radial-gradient(closest-side,rgba(95,134,230,.5),transparent);animation-delay:-3s}
#loader .fx-aurora .a3{left:22vw;top:24vh;width:40vmax;height:40vmax;background:radial-gradient(closest-side,rgba(190,170,255,.34),transparent);animation-delay:-6s;animation-duration:11s}
#loader .fx-stage{position:relative;width:400px;height:400px;flex:none}
#loader .fx-rays{position:absolute;left:50%;top:50%;width:min(150vmin,980px);height:min(150vmin,980px);margin:calc(min(150vmin,980px) / -2) 0 0 calc(min(150vmin,980px) / -2);border-radius:50%;opacity:0;-webkit-mask-image:radial-gradient(closest-side,#000 8%,transparent 70%);mask-image:radial-gradient(closest-side,#000 8%,transparent 70%);animation:fxRaysIn 1.4s ease .3s forwards,fxSpin 36s linear infinite}
#loader .fx-rays.r1{background:repeating-conic-gradient(from 0deg,rgba(246,163,193,.34) 0 5deg,transparent 5deg 20deg)}
#loader .fx-rays.r2{background:repeating-conic-gradient(from 10deg,rgba(95,134,230,.26) 0 3deg,transparent 3deg 24deg);animation:fxRaysIn 1.4s ease .5s forwards,fxSpinR 52s linear infinite}
#loader .fx-wave{position:absolute;left:50%;top:50%;width:250px;height:250px;margin:-125px 0 0 -125px;border-radius:50%;border:2px solid rgba(246,163,193,.85);opacity:0;animation:fxWave 2.6s cubic-bezier(.1,.6,.3,1) infinite}
#loader .fx-wave.w1{animation-delay:1.05s}#loader .fx-wave.w2{animation-delay:1.9s;border-color:rgba(95,134,230,.55)}#loader .fx-wave.w3{animation-delay:2.75s}
#loader .fx-ring{position:absolute;left:50%;top:50%;width:360px;height:360px;margin:-180px 0 0 -180px;overflow:visible;opacity:0;animation:ldrFade .8s ease .9s both}
#loader .fx-ring circle{fill:none}
#loader .fx-ring .tick{stroke:rgba(42,95,193,.35);stroke-width:7;stroke-dasharray:1.6 16.4;transform-origin:180px 180px;animation:fxSpin 40s linear infinite}
#loader .fx-ring .trk{stroke:var(--line);stroke-width:6}
#loader .fx-ring .prg{stroke:url(#fxg);stroke-width:6;stroke-linecap:round;stroke-dasharray:992.7;stroke-dashoffset:992.7;animation:fxFill 4.2s linear .5s forwards;filter:drop-shadow(0 0 7px rgba(95,134,230,.6))}
#loader .fx-ring .head{transform-origin:180px 180px;animation:fxSpin 4.2s linear .5s forwards;filter:drop-shadow(0 0 8px rgba(246,163,193,.9))}
#loader .fx-logo{position:absolute;left:50%;top:50%;width:230px;height:230px;margin:-115px 0 0 -115px;animation:fxReveal 1.15s cubic-bezier(.2,.85,.2,1) .3s both}
#loader .fx-disc{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.92),0 0 0 8px #dbe5ff,0 0 60px rgba(246,163,193,.55),0 0 110px rgba(95,134,230,.3);animation:fxGlow 2.6s ease-in-out 1.5s infinite,fxPulse .55s ease 4.65s both}
#loader .fx-disc img{display:block;width:100%;height:100%;border-radius:50%}
#loader .fx-sheen{position:absolute;inset:-20% -60%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.8) 50%,transparent 58%);transform:translateX(-70%);animation:fxSheen 2.6s ease-in-out 1.5s infinite}
#loader .fx-name{display:flex;flex-wrap:wrap;justify-content:center;margin:var(--s2) 0 0;font:800 clamp(1.0625rem,2.4vw,1.4rem) var(--font-head);letter-spacing:.34em;color:var(--ink-strong);text-indent:.34em}
#loader .fx-name span{display:inline-block;opacity:0;animation:fxChar .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(1.1s + var(--i) * .055s)}
#loader .fx-name .sp{width:.8em}
#loader .fx-cap{position:relative;width:min(92vw,420px);height:1.7em;margin-top:var(--s1);text-align:center;font:600 1rem var(--font-head);color:var(--muted)}
#loader .fx-cap span{position:absolute;inset:0;opacity:0;animation:fxCap 1.5s ease both}
#loader .fx-cap span:nth-child(1){animation-delay:.5s}#loader .fx-cap span:nth-child(2){animation-delay:2s}#loader .fx-cap span:nth-child(3){animation-delay:3.5s;animation-name:fxCapEnd;animation-duration:1.3s}
#loader .ldr-bar{width:min(320px,72vw);height:6px;margin-top:var(--s1);border-radius:999px;background:var(--line);overflow:hidden;animation:ldrFade .5s ease .4s both;box-shadow:0 0 16px rgba(95,134,230,.35)}
#loader .ldr-bar i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f6a3c1,var(--primary));transform-origin:left;transform:scaleX(0);animation:ldrBar 4.2s linear .5s forwards}
#loader .fx-cv{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:3}
#loader .fx-flash{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 44%,color-mix(in srgb,var(--surface) 96%,#fff),transparent 62%);animation:fxFlash .75s ease-out 4.7s both}
@keyframes fxDrift{from{transform:translate(-7%,-5%) scale(1)}to{transform:translate(9%,7%) scale(1.22)}}
@keyframes fxSpin{to{transform:rotate(360deg)}}
@keyframes fxSpinR{to{transform:rotate(-360deg)}}
@keyframes fxRaysIn{to{opacity:1}}
@keyframes fxWave{0%{opacity:.9;transform:scale(.6)}100%{opacity:0;transform:scale(2.15)}}
@keyframes fxFill{to{stroke-dashoffset:0}}
@keyframes fxReveal{from{clip-path:circle(0% at 50% 50%);opacity:0;transform:scale(.62);filter:blur(14px)}to{clip-path:circle(75% at 50% 50%);opacity:1;transform:scale(1);filter:blur(0)}}
@keyframes fxGlow{0%,100%{box-shadow:0 0 0 6px rgba(255,255,255,.92),0 0 0 8px #dbe5ff,0 0 50px rgba(246,163,193,.45),0 0 90px rgba(95,134,230,.22)}50%{box-shadow:0 0 0 6px rgba(255,255,255,.92),0 0 0 8px #dbe5ff,0 0 78px rgba(246,163,193,.75),0 0 130px rgba(95,134,230,.42)}}
@keyframes fxPulse{0%{transform:scale(1)}45%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes fxSheen{0%{transform:translateX(-70%)}55%,100%{transform:translateX(70%)}}
@keyframes fxChar{from{opacity:0;transform:translateY(16px) scale(.8);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes fxCap{0%{opacity:0;transform:translateY(8px)}18%,78%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px)}}
@keyframes fxCapEnd{0%{opacity:0;transform:translateY(8px)}22%,100%{opacity:1;transform:none}}
@keyframes fxFlash{0%{opacity:0}28%{opacity:1}100%{opacity:0}}
@keyframes ldrBar{to{transform:scaleX(1)}}
@media(max-height:820px){#loader .fx-stage{transform:scale(.86);margin:-26px 0}}
@media(max-width:600px){#loader .fx-stage{transform:scale(.74);margin:-52px 0 -46px}#loader .fx-name{letter-spacing:.2em;text-indent:.2em}}
@media(prefers-reduced-motion:reduce){#loader .fx-aurora i,#loader .fx-rays,#loader .fx-wave,#loader .fx-disc,#loader .fx-sheen,#loader .tick{animation:none}#loader .fx-rays{opacity:.6}#loader .fx-ring .prg{animation:none;stroke-dashoffset:300}#loader .fx-ring .head{animation:none;transform:rotate(240deg)}#loader .fx-flash{display:none}}

/* ---------- speech page: the original journey animation, tightened so the section takes less space ---------- */
.jr-sec{padding-block:var(--s6)}
.jr-sec .sec-head{margin-bottom:var(--s3)}
.jr-sec .sec-head h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.jr-sec .path.jr li:nth-child(odd){margin-top:34px}
.jr-sec .path.jr .jc{margin-top:var(--s2);padding:var(--s2) var(--s3) var(--s3)}
.jr-sec .path.jr .pn{width:60px;height:60px}
.jr-sec .path.jr .pn .i{width:24px;height:24px}
.jr-sec .path.jr::before{top:29px}
.jr-sec .path.jr::after{top:22px}

/* growth page: combined WHO + IAP chart (0-18 years) in the chart library */
.gc-comb{margin-bottom:var(--s5);padding:var(--s4);border-radius:28px;border:1px solid var(--line);background:linear-gradient(180deg,var(--pink),var(--surface) 38%);box-shadow:var(--shadow-1)}
.gc-combhead{max-width:760px;margin-bottom:var(--s3)}
.gc-combhead h3{margin:6px 0 6px;font-size:clamp(1.25rem,2.4vw,1.625rem)}
.gc-combhead p{margin:0;color:var(--muted)}
.gc-combbody{display:grid;gap:var(--s4)}
.gc-combbody .gc-form{position:static;box-shadow:none;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:start}
.gc-combbody .gc-form .gc-act{grid-column:1/-1}
.gc-combout{min-width:0}
.gc-combout .gc-chart{max-width:860px;margin:0 auto}
@media(max-width:1000px){.gc-comb{padding:var(--s3)}}
.gc-combbody .gc-form::before{grid-column:1/-1}
@media(max-width:700px){.gc-combout .gc-svg{overflow-x:auto;-webkit-overflow-scrolling:touch}.gc-combout .gc-svg svg{width:780px;max-width:none}.gc-combout .gc-chart::before{content:"Swipe sideways to see the whole chart, or download it below.";display:block;margin:0 0 8px;font-size:.8125rem;color:var(--muted)}}

/* growth tabs: refined single-weight icons */
.gc-ti{width:54px;height:54px;border-radius:17px;background:linear-gradient(150deg,#fff,var(--blue-50) 55%,var(--pink));color:var(--primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 16%,transparent),0 8px 16px -12px rgba(42,95,193,.55)}
.gc-ti svg{width:26px;height:26px}
.gc-tab:hover .gc-ti{transform:translateY(-2px)}
.gc-tab.on .gc-ti{background:linear-gradient(150deg,#1E4AA0,#5B8DEF);color:#fff;box-shadow:0 14px 24px -12px rgba(42,95,193,.95),inset 0 1px 0 rgba(255,255,255,.35)}
@media(max-width:600px){.gc-ti{width:44px;height:44px;border-radius:14px}.gc-ti svg{width:22px;height:22px}}

/* growth tabs: two-card layout + click animation */
.gc-tabs{grid-template-columns:repeat(2,1fr);border-radius:30px;background:linear-gradient(120deg,#fff,color-mix(in srgb,var(--pink) 35%,#fff) 60%,color-mix(in srgb,var(--blue-50) 80%,#fff))}
.gc-tab{padding:26px 30px;gap:20px;overflow:hidden;isolation:isolate;transition:background-color .3s,transform .2s}
.gc-tab:nth-child(2){border-right:0}
.gc-tab:active{transform:scale(.985)}
.gc-tab .gc-tt b{font-size:1.1875rem;transition:color .25s}
.gc-tab::before{content:"";position:absolute;z-index:-1;right:-30px;top:-40px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--pink) 70%,transparent),transparent 70%);opacity:0;transform:scale(.4);transition:opacity .45s,transform .6s cubic-bezier(.2,.8,.2,1)}
.gc-tab.on::before,.gc-tab:hover::before{opacity:1;transform:scale(1)}
.gc-tab::after{transition:transform .55s cubic-bezier(.2,.8,.2,1);transform-origin:left}
.gc-tab.on .gc-ti{transform:scale(1.06)}
.gc-tab.pop .gc-ti{animation:gcIcon .6s cubic-bezier(.3,1.5,.5,1)}
.gc-rip{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;background:color-mix(in srgb,var(--primary) 22%,transparent);transform:scale(0);animation:gcRip .7s ease-out forwards}
.gc-panel.enter{animation:gcIn .55s cubic-bezier(.2,.8,.2,1)}
.gc-panel.enter .gc-head,.gc-panel.enter .gc-form,.gc-panel.enter .gc-out,.gc-panel.enter .gc-comb{animation:gcUp .6s cubic-bezier(.2,.8,.2,1) both}
.gc-panel.enter .gc-form{animation-delay:.08s}.gc-panel.enter .gc-out{animation-delay:.16s}.gc-panel.enter .gc-comb{animation-delay:.1s}
@keyframes gcIcon{0%{transform:scale(1) rotate(0)}40%{transform:scale(1.28) rotate(-10deg)}70%{transform:scale(.96) rotate(5deg)}100%{transform:scale(1.06) rotate(0)}}
@keyframes gcRip{to{transform:scale(1);opacity:0}}
@keyframes gcIn{from{opacity:0}to{opacity:1}}
@keyframes gcUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:600px){.gc-tabs{grid-template-columns:1fr}.gc-tab{padding:16px 18px;border-right:0}.gc-tab:nth-child(-n+1){border-bottom:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){.gc-tab.pop .gc-ti,.gc-panel.enter,.gc-panel.enter *,.gc-rip{animation:none!important}}
.gc-in.gc-txt input{padding-right:16px;text-transform:none}

/* growth charts entry: ink bloom + growth curve */
html.dr-lock{overflow:hidden}
html.door-pre::after{content:"";position:fixed;inset:0;z-index:2147483000;background:linear-gradient(135deg,#1E4AA0,#2A5FC1 55%,#D9548A)}
.dr{position:fixed;inset:0;z-index:2147483001;overflow:hidden;pointer-events:all}
.dr-bg{position:absolute;inset:0;background:linear-gradient(135deg,#1E4AA0,#2A5FC1 55%,#D9548A);clip-path:circle(0 at var(--cx) var(--cy))}
.dr-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,rgba(255,201,218,.55),transparent 45%),radial-gradient(circle at 15% 85%,rgba(91,141,239,.5),transparent 50%)}
.dr-mid{position:absolute;left:50%;top:50%;width:min(560px,90vw);transform:translate(-50%,-50%);display:grid;justify-items:center;gap:22px}
.dr-chart{width:100%;height:auto;overflow:visible;border-radius:16px;box-shadow:0 30px 70px rgba(8,20,60,.45);font-family:Manrope,Inter,Helvetica,Arial,sans-serif}
.dr-t{font-size:10.5px;font-weight:800;fill:#14295F}.dr-t.r{text-anchor:end;font-size:9px;fill:#33466F}
.dr-tx text{font-size:8.5px;fill:#5A6B95}.dr-ax{font-size:9.5px;font-weight:800;fill:#14295F}.dr-pl{font-size:8.5px;font-weight:800}
.dr-j{stroke:#8FA8DE;stroke-width:1;stroke-dasharray:4 3;fill:none}
.dr-g path{stroke:#E1E9FA;stroke-width:.6;fill:none}.dr-g path.mj{stroke:#BFCDEB;stroke-width:.9}
.dr-c{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.dr-dot{fill:#D9548A;stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 0 5px rgba(217,84,138,.9))}
.dr-seal{display:flex;align-items:center;gap:14px;padding:14px 22px;border-radius:20px;background:rgba(255,255,255,.96);box-shadow:0 24px 60px rgba(8,20,60,.45);opacity:0;transform:translateY(14px) scale(.94)}
.dr-seal img{border-radius:50%}
.dr-seal b{display:block;font:800 1.25rem var(--font-head);color:#14295F}
.dr-seal small{display:block;color:#5A6B95;font:600 .8125rem var(--font-head)}
.dr-close .dr-bg{animation:drBloom .75s cubic-bezier(.6,0,.2,1) forwards}
.dr-close .dr-c{animation:drLine 1.1s cubic-bezier(.45,0,.2,1) forwards;animation-delay:calc(.5s + var(--k) * .09s)}
.dr-close .dr-chart{animation:drPop .6s .35s cubic-bezier(.2,1.2,.4,1) both}
.dr-close .dr-pl{opacity:0;animation:drFade .4s 1.55s forwards}
.dr-close .dr-seal{animation:drPop .5s 1.25s cubic-bezier(.2,1.3,.4,1) forwards}
.dr-close .dr-dot{opacity:0;animation:drFade .2s .55s forwards}
@keyframes drBloom{to{clip-path:circle(150vmax at var(--cx) var(--cy))}}
@keyframes drLine{to{stroke-dashoffset:0}}
@keyframes drFade{from{opacity:0}to{opacity:1}}
@keyframes drPop{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}
.dr-seal{opacity:0}
.dr-shut .dr-bg{clip-path:circle(150vmax at 50% 50%)}
.dr-shut .dr-c{stroke-dashoffset:0}
.dr-shut .dr-seal{opacity:1;transform:none}
.dr-shut.dr-open{pointer-events:none}
.dr-shut.dr-open .dr-mid{animation:drLift .55s cubic-bezier(.5,0,.8,.4) forwards}
.dr-shut.dr-open .dr-bg{animation:drIris 1.05s .3s cubic-bezier(.7,0,.2,1) forwards}
@keyframes drLift{to{opacity:0;transform:translate(-50%,-62%) scale(1.12)}}
@keyframes drIris{to{clip-path:circle(0 at 50% 50%)}}
@media(prefers-reduced-motion:reduce){.dr-close .dr-bg,.dr-close .dr-c,.dr-close .dr-g,.dr-close .dr-chart,.dr-close .dr-pl,.dr-close .dr-seal,.dr-close .dr-dot,.dr-shut.dr-open .dr-mid,.dr-shut.dr-open .dr-bg{animation:none}.dr-close .dr-bg{clip-path:circle(150vmax at 50% 50%)}.dr-close .dr-c{stroke-dashoffset:0}.dr-close .dr-seal,.dr-close .dr-pl{opacity:1;transform:none}}
html.door-pre::after{animation:drFail .4s 4s forwards}
@keyframes drFail{to{opacity:0;visibility:hidden}}

/* child's sex: boy = blue, girl = pink */
.gc-seg input[name="sex"][value="g"]:checked+span{background:linear-gradient(135deg,#E0457B,#F27FA9);color:#fff;box-shadow:0 8px 16px -8px #E0457B}
.gc-seg input[name="sex"][value="g"]:focus-visible+span{outline-color:#E0457B}
.gc-seg input[name="sex"][value="b"]:checked+span{background:linear-gradient(135deg,#234FA8,#4C86E6);color:#fff}
.gc-seg:has(input[name="sex"][value="g"]:checked){background:#FFEAF2;border-color:#F8CADB}

/* growth chart: pen-sweep reveal (on-screen only; downloads stay static) */
@media(prefers-reduced-motion:no-preference){
.gc-svg .cv{stroke-dasharray:1;stroke-dashoffset:1;animation:cvDraw 1.9s cubic-bezier(.45,0,.2,1) forwards;animation-delay:var(--d,0s)}
.gc-svg .cl{opacity:0;animation:clIn .5s ease 2.4s forwards}
.gc-svg .sweep{animation:cvSweep 2.2s cubic-bezier(.45,0,.2,1) forwards}
.gc-svg .cb-in{opacity:0;animation:cbRise .7s cubic-bezier(.2,.8,.2,1) 1s forwards}
.gc-svg .cb-mph{opacity:0;animation:cbSlide .8s cubic-bezier(.2,.8,.2,1) 1.4s forwards}
.gc-svg .cb-mk{opacity:0;animation:cbRise .6s cubic-bezier(.3,1.4,.5,1) 2.5s forwards}
@keyframes cvDraw{to{stroke-dashoffset:0}}
@keyframes clIn{to{opacity:1}}
@keyframes cvSweep{0%{opacity:.9;transform:translateX(0)}92%{opacity:.9}100%{opacity:0;transform:translateX(580px)}}
@keyframes cbRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes cbSlide{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
}

/* vaccine roadmap */
.vr-sec{padding-block:var(--s6)}
.vr-tool{max-width:760px;margin:0 auto var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:22px;background:linear-gradient(120deg,#fff,color-mix(in srgb,var(--pink) 40%,#fff) 70%,color-mix(in srgb,var(--blue-50) 80%,#fff));box-shadow:0 24px 48px -34px rgba(20,41,95,.5)}
.vr-tool form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.vr-tool .field{flex:1 1 240px}
.vr-tool label em{font-style:normal;font-weight:600;color:var(--muted);margin-left:6px}
.vr-msg{min-height:1.4em;margin:12px 0 0;color:var(--primary);font-weight:700}
.vr-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 auto var(--s4)}
.vr-filters button{min-height:42px;padding:0 18px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:700 .875rem var(--font-head);cursor:pointer;transition:background-color .2s,color .2s,transform .2s}
.vr-filters button:hover{transform:translateY(-2px);border-color:var(--primary)}
.vr-filters button.on{background:linear-gradient(135deg,#234FA8,#4C86E6);border-color:transparent;color:#fff}
.vr-line{position:relative;list-style:none;margin:0 auto;padding:0;max-width:980px}
.vr-line::before{content:"";position:absolute;left:50%;top:6px;bottom:6px;width:4px;margin-left:-2px;border-radius:4px;background:linear-gradient(180deg,#F27FA9,#5B8DEF 60%,#234FA8)}
.vr-stop{position:relative;width:50%;padding:0 38px 28px 0;box-sizing:border-box}
.vr-stop:nth-child(even){margin-left:50%;padding:0 0 28px 38px}
.vr-stop[hidden]{display:none}
.vr-dot{position:absolute;top:22px;right:-11px;width:22px;height:22px;border-radius:50%;background:#fff;border:5px solid #D9548A;box-shadow:0 0 0 5px color-mix(in srgb,var(--pink) 70%,transparent);z-index:1}
.vr-stop:nth-child(even) .vr-dot{right:auto;left:-11px;border-color:#2A5FC1;box-shadow:0 0 0 5px color-mix(in srgb,var(--blue-50) 90%,transparent)}
.vr-card{padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 18px 38px -28px rgba(20,41,95,.55);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.vr-card:hover{transform:translateY(-4px);box-shadow:0 26px 44px -26px rgba(20,41,95,.6)}
.vr-card header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin-bottom:10px}
.vr-card h3{margin:0;font-size:1.1875rem;color:var(--primary)}
.vr-when{padding:3px 12px;border-radius:999px;background:var(--blue-50);color:var(--primary);font:700 .75rem var(--font-head)}
.vr-v{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.vr-v li{padding:6px 13px;border-radius:999px;background:linear-gradient(135deg,#fff,var(--pink));border:1px solid color-mix(in srgb,var(--cta) 22%,var(--line));color:var(--ink-strong);font:700 .8125rem var(--font-head)}
.vr-n{margin:12px 0 0;color:var(--muted);font-size:.9063rem;line-height:1.55}
.vr-stop.past .vr-card{opacity:.62}
.vr-stop.past .vr-dot{border-color:#9AA7C4}
.vr-stop.next .vr-card{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent),0 26px 44px -26px rgba(20,41,95,.6)}
.vr-stop.next .vr-when{background:#D9548A;color:#fff}
.vr-extra{max-width:760px;margin:var(--s4) auto 0;padding:var(--s3);border:1.5px dashed var(--line);border-radius:20px;background:color-mix(in srgb,var(--blue-50) 55%,var(--surface))}
.vr-extra h2{margin:0 0 8px;font-size:1.25rem}
.vr-extra p{margin:0 0 12px;color:var(--muted)}
.vr-src{max-width:760px;margin:var(--s3) auto 0;color:var(--muted);font-size:.875rem;text-align:center}
@media(max-width:760px){.vr-line::before{left:14px;margin-left:0}.vr-stop,.vr-stop:nth-child(even){width:100%;margin-left:0;padding:0 0 22px 40px}.vr-dot,.vr-stop:nth-child(even) .vr-dot{left:4px;right:auto}.vr-stop:nth-child(even) .vr-dot{border-color:#D9548A;box-shadow:0 0 0 5px color-mix(in srgb,var(--pink) 70%,transparent)}}
@media(prefers-reduced-motion:reduce){.vr-card,.vr-filters button{transition:none}}

/* photo credit under the vaccination timeline */
.photo-credit{margin-top:var(--s4);text-align:center;font-size:.78rem;color:var(--muted)}
.photo-credit a{color:inherit;text-decoration:underline}

/* Phone polish: comfortable tap targets and readable small labels */
@media(max-width:768px){
  .site-foot li{margin-bottom:0}
  .site-foot li a{display:inline-flex;align-items:center;min-height:44px}
  .crumbs a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;margin:-12px 0}
  .link,.post-foot .link{min-height:44px}
  .post-body p a,.res-note a,.sec-head p a{padding:10px 0}
  .bc-cat,.jk{font-size:.75rem}
}

/* Photo gallery (home page) */
.gal-sec{padding-block:var(--s8)}
.gal-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2)}
.gal-t{position:relative;display:block;width:100%;padding:0;border:0;border-radius:var(--radius-md);overflow:hidden;background:var(--surface);cursor:zoom-in;box-shadow:var(--shadow-1);transition:transform .3s ease,box-shadow .3s ease}
.gal-t img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
.gal-t span{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;color:#fff;font:700 .8125rem var(--font-head);text-align:left;background:linear-gradient(to top,rgba(10,20,50,.72),transparent)}
.gal-t:hover,.gal-t:focus-visible{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.gal-t:hover img{transform:scale(1.05)}
.gal-t:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.gal-lb{width:min(94vw,1100px);max-height:92vh;padding:0;border:0;border-radius:var(--radius-md);background:#0b1020;color:#fff;overflow:visible}
.gal-lb::backdrop{background:rgba(8,12,28,.78)}
.gal-lb figure{margin:0;display:grid}
.gal-lb img{display:block;width:100%;max-height:80vh;object-fit:contain;border-radius:var(--radius-md) var(--radius-md) 0 0;background:#0b1020}
.gal-lb figcaption{padding:12px 56px 14px;text-align:center;font:600 .95rem var(--font-head)}
.gal-x,.gal-nav{position:absolute;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#10213f;font:400 1.8rem/1 var(--font-head);cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.gal-x{top:10px;right:10px}
.gal-nav{top:50%;transform:translateY(-50%)}
.gal-prev{left:10px}.gal-next{right:10px}
.gal-x:focus-visible,.gal-nav:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
@media(max-width:900px){.gal-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.gal-grid{grid-template-columns:repeat(2,1fr);gap:10px}.gal-t span{font-size:.75rem;padding:22px 8px 8px}.gal-lb figcaption{padding:10px 16px 12px}.gal-nav{top:40%}}
@media(prefers-reduced-motion:reduce){.gal-t,.gal-t img{transition:none}}

/* roadmap: dose count and optional tag */
.vr-count{margin:0 0 var(--s3);padding:12px 18px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font:600 .9375rem var(--font-head);display:inline-block}
.vr-count b{color:var(--primary);font-size:1.15em}
.vr-v li .vr-opt{font-style:normal;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--primary-50);color:var(--primary);font:700 .6875rem var(--font-head)}

/* Dark mode fixes: panels that kept a light gradient */
:root[data-theme="dark"] .gc-tabs{background:linear-gradient(120deg,var(--surface),color-mix(in srgb,var(--pink) 14%,var(--surface)) 60%,color-mix(in srgb,var(--primary) 14%,var(--surface)))}
:root[data-theme="dark"] .vr-tool{background:linear-gradient(120deg,var(--surface),color-mix(in srgb,var(--pink) 14%,var(--surface)) 70%,color-mix(in srgb,var(--primary) 14%,var(--surface)))}
:root[data-theme="dark"] .vr-v li{background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--pink) 22%,var(--surface)));border-color:var(--line);color:var(--ink-strong)}
:root[data-theme="dark"] .vr-v li .vr-opt{background:color-mix(in srgb,var(--primary) 22%,var(--surface));color:var(--primary)}

/* the blue table header keeps white text in dark mode */
.vt-head,.vt-head .vt-age,.vt-head .vt-no,.vt-head .vt-vac,.vt-head .vt-date{color:#fff}

/* ---------- loading screen: 3D toy-block scene (pure CSS 3D, no library) ---------- */
#loader{animation:ldrOut .45s ease 3.6s forwards}
#loader::before{opacity:.35}
#loader .l3-stage{position:relative;width:360px;height:340px;flex:none;perspective:1000px;perspective-origin:50% 38%;transform:scale(1.3);margin:44px 0 36px}
#loader .l3-floor{position:absolute;left:50%;bottom:-70px;width:980px;height:980px;margin-left:-490px;transform:rotateX(78deg);transform-origin:50% 50%;background-image:linear-gradient(rgba(42,95,193,.28) 2px,transparent 2px),linear-gradient(90deg,rgba(224,82,127,.26) 2px,transparent 2px);background-size:56px 56px;-webkit-mask-image:radial-gradient(circle,#000 0,transparent 55%);mask-image:radial-gradient(circle,#000 0,transparent 55%);animation:l3Grid 2.4s linear infinite;opacity:0;animation-name:l3Grid,ldrFade;animation-duration:2.4s,.8s;animation-iteration-count:infinite,1;animation-fill-mode:none,both}
#loader .l3-tilt{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .25s ease-out}
#loader .l3-scene{position:absolute;inset:0;transform-style:preserve-3d;animation:l3Float 3.6s ease-in-out infinite}
#loader .l3-cube{position:absolute;left:50%;top:46%;width:132px;height:132px;margin:-66px 0 0 -66px;transform-style:preserve-3d;transform:rotateX(-22deg) rotateY(-30deg);animation:l3Spin 6.5s cubic-bezier(.45,.05,.35,1) infinite}
#loader .l3-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:24px;border:3px solid #fff;background:linear-gradient(145deg,#ffffff,#ffe4ee 55%,#dbe7ff);box-shadow:inset 0 0 26px rgba(95,134,230,.28),0 0 30px rgba(246,163,193,.35)}
#loader .l3-face img{width:76%;height:76%;border-radius:50%;box-shadow:0 8px 18px -8px rgba(20,41,95,.5)}
#loader .f-front{transform:translateZ(66px)}
#loader .f-back{transform:rotateY(180deg) translateZ(66px)}
#loader .f-right{transform:rotateY(90deg) translateZ(66px)}
#loader .f-left{transform:rotateY(-90deg) translateZ(66px)}
#loader .f-top{transform:rotateX(90deg) translateZ(66px)}
#loader .f-bottom{transform:rotateX(-90deg) translateZ(66px)}
#loader .l3-ic{display:block;width:56%;height:56%;background:linear-gradient(135deg,#e0527f,#2a5fc1);-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
#loader .ic-syringe{--m:url(../assets/icons/syringe.svg)}
#loader .ic-heart{--m:url(../assets/icons/heart.svg)}
#loader .ic-steth{--m:url(../assets/icons/stethoscope.svg)}
#loader .ic-shield{--m:url(../assets/icons/shield-check.svg)}
#loader .ic-baby{--m:url(../assets/icons/baby.svg)}
#loader .l3-ring{position:absolute;left:50%;top:46%;width:270px;height:270px;margin:-135px 0 0 -135px;border-radius:50%;border:2px solid rgba(95,134,230,.5);transform-style:preserve-3d;box-shadow:0 0 18px rgba(95,134,230,.25)}
#loader .l3-ring.r1{--t:rotateX(72deg);animation:l3Orbit 3.4s linear infinite}
#loader .l3-ring.r2{--t:rotateY(70deg) rotateZ(25deg);width:236px;height:236px;margin:-118px 0 0 -118px;border-color:rgba(224,82,127,.5);box-shadow:0 0 18px rgba(224,82,127,.22);animation:l3Orbit 4.4s linear infinite reverse}
#loader .l3-ring.r3{--t:rotateX(55deg) rotateY(50deg);width:300px;height:300px;margin:-150px 0 0 -150px;border-color:rgba(150,170,235,.45);animation:l3Orbit 5.6s linear infinite}
#loader .l3-orb{position:absolute;left:50%;top:-10px;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fff 0,var(--c) 45%,var(--d) 100%);box-shadow:0 0 16px var(--c)}
#loader .o1{--c:#f6a3c1;--d:#d4417a}
#loader .o2{--c:#7fa2f0;--d:#2a5fc1;width:16px;height:16px;margin-left:-8px;top:-8px}
#loader .o3{--c:#ffd1e1;--d:#e0527f;width:14px;height:14px;margin-left:-7px;top:-7px}
#loader .l3-shadow{position:absolute;left:50%;bottom:6px;width:190px;height:34px;margin-left:-95px;border-radius:50%;background:radial-gradient(ellipse,rgba(20,41,95,.42),transparent 70%);animation:l3Shadow 3.6s ease-in-out infinite}
#loader .fx-name span{animation-delay:calc(.55s + var(--i) * .045s)}
#loader .fx-cap span:nth-child(1){animation-delay:.35s;animation-duration:1.2s}
#loader .fx-cap span:nth-child(2){animation-delay:1.45s;animation-duration:1.2s}
#loader .fx-cap span:nth-child(3){animation-delay:2.55s;animation-duration:1s}
#loader .ldr-bar i{animation-duration:3s;animation-delay:.4s}
#loader .fx-flash{animation-delay:3.1s}
@keyframes l3Spin{0%{transform:rotateX(-22deg) rotateY(-30deg)}100%{transform:rotateX(-3deg) rotateY(360deg)}}
@keyframes l3Land{0%{transform:scale(1)}45%{transform:scale(1.14)}100%{transform:scale(1)}}
@keyframes l3Float{0%,100%{transform:translateY(8px)}50%{transform:translateY(-10px)}}
@keyframes l3Shadow{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(.8);opacity:.55}}
@keyframes l3Orbit{from{transform:var(--t) rotateZ(0)}to{transform:var(--t) rotateZ(360deg)}}
@keyframes l3Grid{from{background-position:0 0}to{background-position:0 56px}}
@media(max-height:820px){#loader .l3-stage{transform:scale(1.05);margin:14px 0 10px}}
@media(max-width:600px){#loader .l3-stage{transform:scale(.88);margin:-8px 0 -14px}}
@media(prefers-reduced-motion:reduce){#loader .l3-scene,#loader .l3-cube,#loader .l3-ring,#loader .l3-shadow,#loader .l3-floor{animation:none}#loader .l3-cube{transform:rotateX(-18deg) rotateY(-24deg)}#loader .l3-floor{opacity:.6}}
:root[data-theme="dark"] #loader .l3-face{background:linear-gradient(145deg,#2a2d38,#33283a 55%,#232c45);border-color:rgba(255,255,255,.35)}
:root[data-theme="dark"] #loader .l3-face img{background:#fff}

/* clinic board shown in every page banner */
.page-bg .wrap{row-gap:var(--s4)}
.ph-sign{grid-column:1/-1;justify-self:start;width:min(100%,680px);margin:0;padding:10px 14px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-2)}
.ph-sign img{display:block;width:100%;height:auto}
@media(max-width:600px){.ph-sign{padding:8px 10px;border-radius:14px}}
@media print{.ph-sign{display:none}}

/* banner pages: the clinic board is the banner (no photo behind it) */
.page-board{min-height:0;padding-block:var(--s7) var(--s7);background:var(--bg-soft)}
.page-board::before,.page-board::after{display:none}
.page-board .ph-bg{display:none}
.page-board .wrap{grid-template-columns:minmax(0,1fr);row-gap:var(--s4)}
.page-board.has-visual .wrap{grid-template-columns:1fr 1fr}
.page-board .ph-sign{order:-1;justify-self:center;width:100%;max-width:1100px;padding:12px 18px;border-radius:22px}
@media(max-width:900px){.page-board.has-visual .wrap{grid-template-columns:1fr}}
@media(max-width:600px){.page-board{padding-block:var(--s4) var(--s5)}.page-board .ph-sign{padding:8px 10px;border-radius:14px}}

/* clinic board: wide banner that blends into the page background (no card, no photo) */
.page-board{background:var(--bg-soft);padding-block:var(--s6) var(--s6)}
.page-board .wrap{width:min(1500px,100% - 40px)}
.page-board .ph-sign{max-width:none;width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.page-board .ph-sign img{display:block;width:100%;height:auto}
.page-board .ph-sign .sign-d{display:none}
:root[data-theme="dark"] .page-board .ph-sign .sign-l{display:none}
:root[data-theme="dark"] .page-board .ph-sign .sign-d{display:block}
.page-board .wrap>div:not(.ph-sign){width:min(1180px,100%);margin-inline:auto}
@media(max-width:600px){.page-board{padding-block:var(--s3) var(--s5)}.page-board .wrap{width:calc(100% - 24px)}}

/* clinic board banner: softer colours and a calm entrance (slide up, light sweep, hover lift) */
.page-board .ph-sign{position:relative;isolation:isolate;animation:boardIn 1s cubic-bezier(.2,.8,.2,1) .1s both;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.page-board .ph-sign img{filter:saturate(.74) brightness(1.04) contrast(.95);opacity:.96}
:root[data-theme="dark"] .page-board .ph-sign img{filter:saturate(.7) brightness(.96) contrast(.95);opacity:.94}
.page-board .ph-sign::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(105deg,transparent 43%,rgba(255,255,255,.5) 50%,transparent 57%) 160% 0/260% 100% no-repeat;-webkit-mask:url(../assets/clinic-board-light.png) center/100% 100% no-repeat;mask:url(../assets/clinic-board-light.png) center/100% 100% no-repeat;animation:boardShine 7.5s ease-in-out 1.6s infinite}
:root[data-theme="dark"] .page-board .ph-sign::after{background:linear-gradient(105deg,transparent 43%,rgba(255,255,255,.34) 50%,transparent 57%) 160% 0/260% 100% no-repeat;-webkit-mask-image:url(../assets/clinic-board-dark.png);mask-image:url(../assets/clinic-board-dark.png)}
@media(hover:hover){.page-board .ph-sign:hover{transform:translateY(-4px) scale(1.006)}}
.page-board .wrap>div:not(.ph-sign)>*{animation:boardText .8s cubic-bezier(.2,.8,.2,1) both}
.page-board .wrap>div:not(.ph-sign)>:nth-child(1){animation-delay:.35s}
.page-board .wrap>div:not(.ph-sign)>:nth-child(2){animation-delay:.45s}
.page-board .wrap>div:not(.ph-sign)>:nth-child(3){animation-delay:.55s}
.page-board .wrap>div:not(.ph-sign)>:nth-child(4){animation-delay:.65s}
.page-board .wrap>div:not(.ph-sign)>:nth-child(n+5){animation-delay:.75s}
@keyframes boardIn{from{opacity:0;transform:translateY(26px) scale(.97);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes boardShine{0%,55%{background-position:160% 0}100%{background-position:-60% 0}}
@keyframes boardText{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.page-board .ph-sign,.page-board .wrap>div:not(.ph-sign)>*{animation:none}.page-board .ph-sign::after{display:none}.page-board .ph-sign:hover{transform:none}}

/* Website banners (10 designs, one per page) */
.page-board .ph-sign.ph-ban{border-radius:20px;overflow:hidden;box-shadow:0 14px 40px rgba(11,37,89,.16)}
.page-board .ph-sign.ph-ban img{filter:none;opacity:1;width:100%;height:auto;display:block}
.page-board .ph-sign.ph-ban::after{display:none}
.page-board .ph-sign.ph-ban picture{display:block}
@media(hover:hover){.page-board .ph-sign.ph-ban:hover{transform:none}}
@media(max-width:600px){.page-board .ph-sign.ph-ban{border-radius:14px}}
/* Contact page: branded background merged behind the text and the 3D object */
.page-board.has-visual .wrap{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;padding:clamp(24px,4vw,60px);width:min(1500px,100% - 40px);align-items:center;box-shadow:0 18px 50px rgba(11,37,89,.28)}
.page-board.has-visual .ph-sign.ph-merge{position:absolute;inset:0;z-index:-1;margin:0;max-width:none;width:100%;justify-self:stretch;border-radius:0;box-shadow:none;transform:none;animation:none}
.page-board.has-visual .ph-sign.ph-merge picture{display:block;height:100%}
.page-board.has-visual .ph-sign.ph-merge img{width:100%;height:100%;object-fit:cover;object-position:85% 50%;filter:none;opacity:1}
.page-board.has-visual .ph-sign.ph-merge::after{display:none}
.page-board.has-visual .wrap h1,.page-board.has-visual .wrap p,.page-board.has-visual .wrap .crumbs,.page-board.has-visual .wrap .crumbs a,.page-board.has-visual .wrap .crumbs span{color:#fff}
.page-board.has-visual .wrap .eyebrow{color:#ff9aa5}
.page-board.has-visual .wrap p{color:#d6e0f5}
.page-board.has-visual .wrap .crumbs a{opacity:.85}
@media(max-width:900px){.page-board.has-visual .wrap{padding:28px 22px 12px}.page-board.has-visual .ph-sign.ph-merge img{object-position:50% 100%}}

/* Loading screen: the cube spins once and lands with the logo facing the front */
#loader .l3-cube{animation:l3Spin 2.6s cubic-bezier(.3,.1,.15,1) .2s both}
#loader .l3-scene{animation:l3Float 3.6s ease-in-out infinite}
#loader .f-front{box-shadow:inset 0 0 26px rgba(95,134,230,.28),0 0 30px rgba(246,163,193,.35);animation:l3Glow .9s ease 2.8s both}
@keyframes l3Glow{0%{box-shadow:inset 0 0 26px rgba(95,134,230,.28),0 0 30px rgba(246,163,193,.35)}50%{box-shadow:inset 0 0 26px rgba(95,134,230,.28),0 0 70px rgba(246,163,193,.95),0 0 110px rgba(95,134,230,.6)}100%{box-shadow:inset 0 0 26px rgba(95,134,230,.28),0 0 46px rgba(246,163,193,.7),0 0 80px rgba(95,134,230,.4)}}
@media(prefers-reduced-motion:reduce){#loader .l3-cube{animation:none;transform:rotateX(-3deg) rotateY(0)}}

/* Loading screen: percentage shown inside a round progress ring that turns into a tick at 100% */
#loader .ldr-pct{position:relative;width:78px;height:78px;min-height:0;margin-top:var(--s2);display:grid;place-items:center;border-radius:50%;font:800 1.2rem/1 var(--font-head);letter-spacing:0;color:var(--ink-strong);background:var(--surface);box-shadow:0 10px 28px -10px rgba(42,95,193,.5),0 0 0 1px var(--line);transition:box-shadow .4s ease}
#loader .ldr-pct::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#f6a3c1,#5f86e6 calc(var(--p,0) * 1%),transparent 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px))}
#loader .ldr-pct .lp-n{position:relative;white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums}
#loader .ldr-pct .lp-n i{display:inline;position:static;font-style:normal;font-size:.62em;margin-left:1px;color:var(--muted)}
#loader .ldr-pct .lp-k{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:scale(.3);transition:opacity .3s ease,transform .45s cubic-bezier(.3,1.6,.5,1)}
#loader .ldr-pct .lp-k svg{width:34px;height:34px;fill:none;stroke:#fff;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
#loader .ldr-pct.done{background:linear-gradient(135deg,#e0527f,#2a5fc1);box-shadow:0 0 0 6px rgba(95,134,230,.18),0 0 34px rgba(246,163,193,.8);animation:pctPop .6s cubic-bezier(.3,1.5,.5,1)}
#loader .ldr-pct.done::before{opacity:0}
#loader .ldr-pct.done .lp-n{opacity:0}
#loader .ldr-pct.done .lp-k{opacity:1;transform:none}
@keyframes pctPop{0%{transform:scale(.88)}60%{transform:scale(1.14)}100%{transform:scale(1)}}
@media(max-height:820px){#loader .ldr-pct{width:64px;height:64px;font-size:1.05rem;margin-top:var(--s1)}#loader .ldr-pct .lp-k svg{width:28px;height:28px}}

/* Loading screen: baby pink and baby blue background (same in light and dark mode), sharper logo */
#loader{--bg:#fdeef4;--line:rgba(42,95,193,.16);--ink-strong:#1d2f63;--muted:#4f628f;--surface:#fff;background:linear-gradient(135deg,#ffd9e8 0%,#fdeef4 32%,#e6f0ff 68%,#bcd7ff 100%)}
#loader::before{opacity:.5}
#loader .fx-aurora .a1{background:radial-gradient(closest-side,rgba(255,170,200,.7),transparent)}
#loader .fx-aurora .a2{background:radial-gradient(closest-side,rgba(140,185,255,.7),transparent)}
#loader .fx-aurora .a3{background:radial-gradient(closest-side,rgba(255,255,255,.7),transparent)}
#loader .l3-face img{width:84%;height:84%;object-fit:contain;image-rendering:auto;box-shadow:0 6px 16px -8px rgba(20,41,95,.4)}
:root[data-theme="dark"] #loader .l3-face{background:linear-gradient(145deg,#ffffff,#ffe4ee 55%,#dbe7ff);border-color:#fff}
:root[data-theme="dark"] #loader .l3-face img{background:transparent}
#loader .ldr-pct{box-shadow:0 10px 26px -10px rgba(42,95,193,.45),0 0 0 1px rgba(42,95,193,.18)}

/* Home, About the clinic: collage of two clinic-front photos */
.cl-collage{position:relative;width:100%;aspect-ratio:1/.92;isolation:isolate}
.cl-collage figure{position:absolute;margin:0;overflow:hidden;border:7px solid var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-2);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease,z-index 0s .25s}
.cl-collage figure img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:clZoom 14s ease-in-out infinite alternate}
.cl-collage .cl-a{left:0;top:0;width:55%;aspect-ratio:4/5;transform:rotate(-3deg);z-index:1;animation:clBobA 7s ease-in-out infinite}
.cl-collage .cl-b{right:0;bottom:0;width:52%;aspect-ratio:4/5;transform:rotate(3deg);z-index:2;animation:clBobB 8s ease-in-out -2s infinite}
.cl-collage .cl-b img{animation-delay:-7s}
.cl-collage .cl-seal{position:absolute;left:41%;bottom:5%;width:19%;aspect-ratio:1;border-radius:50%;z-index:3;border:5px solid var(--surface);background:#fff;box-shadow:0 12px 26px -10px rgba(20,41,95,.5);animation:clPop .9s cubic-bezier(.3,1.5,.5,1) .5s both}
.cl-blob{position:absolute;border-radius:50%;z-index:-1;filter:blur(2px)}
.cl-blob.b1{left:-6%;bottom:-4%;width:42%;aspect-ratio:1;background:rgba(246,163,193,.55)}
.cl-blob.b2{right:-4%;top:-5%;width:36%;aspect-ratio:1;background:rgba(127,162,240,.45)}
.js .cl-collage.rv{opacity:0;transform:translateY(30px) scale(.96);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.js .cl-collage.rv.in{opacity:1;transform:none}
@media(hover:hover){.cl-collage figure:hover{z-index:4;box-shadow:0 26px 54px rgba(11,37,89,.3);transform:rotate(0) translateY(-8px) scale(1.04);animation-play-state:paused}}
@keyframes clZoom{from{transform:scale(1.04)}to{transform:scale(1.12) translateY(-1%)}}
@keyframes clBobA{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-8px)}}
@keyframes clBobB{0%,100%{transform:rotate(3deg) translateY(0)}50%{transform:rotate(2deg) translateY(8px)}}
@keyframes clPop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
@media(max-width:560px){.cl-collage figure{border-width:4px}.cl-collage .cl-seal{border-width:3px}}
@media(prefers-reduced-motion:reduce){.cl-collage figure,.cl-collage figure img,.cl-collage .cl-seal{animation:none}.js .cl-collage.rv{opacity:1;transform:none}}

/* Services: full vaccination schedule as a card grid (48 doses, 20 visits) */
.vx-sec{padding-block:var(--s7)}
.vx-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,2vw,22px);max-width:640px;margin:var(--s4) auto 0}
.vx-stats div{text-align:center;padding:var(--s2) var(--s1);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.vx-stats b{display:block;font:800 clamp(1.5rem,4vw,2.25rem)/1.1 var(--font-head);background:linear-gradient(135deg,#e0527f,#2a5fc1);-webkit-background-clip:text;background-clip:text;color:transparent}
.vx-stats span{font-size:.875rem;color:var(--muted)}
.vx-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:var(--s4) 0 var(--s4)}
.vx-tabs button{font:600 .9375rem var(--font-head);padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-strong);cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}
.vx-tabs button:hover{transform:translateY(-2px);border-color:var(--primary)}
.vx-tabs button.on{background:linear-gradient(135deg,#e0527f,#2a5fc1);color:#fff;border-color:transparent}
.vx-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:clamp(14px,2vw,22px)}
.vx-card{--c:#e0527f;position:relative;display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.vx-card::before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:var(--c)}
.vx-card[data-g="kid"]{--c:#2a5fc1}.vx-card[data-g="teen"]{--c:#8a63d2}
.vx-card[hidden]{display:none}
.vx-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vx-no{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);font:800 .8125rem var(--font-head)}
.vx-age{font:700 1.0625rem var(--font-head);color:var(--ink-strong);flex:1 1 auto}
.vx-ct{font-size:.75rem;font-weight:700;letter-spacing:.03em;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 12%,transparent);color:var(--c)}
.vx-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.vx-pills li{padding:5px 11px;border-radius:8px;font-size:.875rem;font-weight:600;color:var(--ink-strong);background:var(--bg-soft);border:1px solid var(--line)}
.vx-note{margin:0;font-size:.8125rem;line-height:1.5;color:var(--muted);padding-top:var(--s1);border-top:1px dashed var(--line)}
.vx-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:var(--s5)}
@media(hover:hover){.vx-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(11,37,89,.18)}}
.js .vx-card.rv{opacity:0;transform:translateY(26px) scale(.97);transition:opacity .6s ease calc(var(--i) * 70ms),transform .6s cubic-bezier(.2,.8,.2,1) calc(var(--i) * 70ms),box-shadow .35s}
.js .vx-card.rv.in{opacity:1;transform:none}
@media(max-width:560px){.vx-grid{grid-template-columns:1fr}.vx-sec{padding-block:var(--s5)}}
@media(prefers-reduced-motion:reduce){.js .vx-card.rv{opacity:1;transform:none;transition:none}}

/* Services schedule: breathing room around the two buttons */
section.vx-sec{padding-block:clamp(48px,7vw,88px)}
.vx-cta{margin-top:clamp(32px,5vw,56px)!important;padding-bottom:clamp(8px,2vw,24px)}
.vx-cta .btn{min-width:200px;justify-content:center}
@media(max-width:560px){.vx-cta{flex-direction:column;align-items:stretch}.vx-cta .btn{min-width:0}}

/* Services schedule: tidier phone layout */
@media(max-width:560px){.vx-stats span{display:block;font-size:.8125rem;line-height:1.3}.vx-stats div{padding:14px 6px}.vx-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.vx-tabs button{padding:10px 8px;font-size:.875rem}}

/* Contact header: the background fills the whole rounded card, edge to edge (an absolutely placed grid item must not be tied to the padded grid area) */
.page-board.has-visual .ph-sign.ph-merge{grid-column:auto;grid-row:auto;left:0;top:0;right:0;bottom:0;width:auto;height:auto}

/* Contact: clinic hours as a clear day-by-day list (morning and evening on separate lines, today highlighted) */
.hrs-box{margin-top:var(--s1)}
.hrs-h{display:flex;align-items:center;gap:8px;margin:0 0 10px;font:800 .8125rem var(--font-head);letter-spacing:.14em;text-transform:uppercase;color:var(--pink)}
.hrs-h .i{width:18px;height:18px}
.hrs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.hrs-list li{display:grid;grid-template-columns:104px 1fr;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#fff}
.hrs-list .d{font:800 .9375rem var(--font-head);color:#fff}
.hrs-list .ts{display:flex;flex-direction:column;gap:3px}
.hrs-list .t{display:flex;align-items:baseline;gap:10px;font:600 .875rem var(--font-head);color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums}
.hrs-list .t em{flex:none;width:58px;font:700 .6875rem var(--font-head);font-style:normal;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.hrs-list .appt{background:transparent;border-style:dashed}
.hrs-list .t-appt{color:rgba(255,255,255,.85);font-weight:600}
.hrs-list li.now{background:#fff;border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.26),0 12px 22px -12px rgba(0,0,0,.6)}
.hrs-list li.now .d{color:#14295F}
.hrs-list li.now .d::after{content:"Today";display:block;width:max-content;margin-top:3px;padding:2px 8px;border-radius:99px;background:#D81E3C;color:#fff;font:800 .625rem var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.hrs-list li.now .t{color:#14295F}
.hrs-list li.now .t em{color:#D81E3C}
@media(max-width:380px){.hrs-list li{grid-template-columns:88px 1fr;padding:10px}.hrs-list .t{font-size:.8125rem;gap:6px}.hrs-list .t em{width:52px}}

.hrs-list .ap{font-weight:800;font-size:.75em;letter-spacing:.04em;margin-left:1px;padding:1px 5px;border-radius:5px;background:rgba(255,255,255,.18)}
.hrs-list li.now .ap{background:rgba(216,30,60,.12);color:#D81E3C}
