/* Shree Prannath Hospital: corporate theme, version 3
   Layout modelled on the client's reference (large multi speciality hospital site):
   two-tier header, full-width banner slider, side quick tabs, info cards,
   about + stat grid, accreditations, plan-style price cards, big footer.
   Colours stay logo-led: royal blue, diya saffron, cross red. */
:root{
  --blue:#1F2FC4; --blue-deep:#141F86; --navy:#0B1350; --blue-50:#EFF1FD; --blue-100:#DDE2FA;
  --saffron:#F28C18; --saffron-deep:#C86A06; --saffron-50:#FFF5E8;
  --red:#E31E24; --red-50:#FDEBEC;
  --ink:#1A1D3A; --ink-2:#555A78; --ink-3:#8488A3;
  --bg:#FFFFFF; --tint:#F7F8FC; --line:#E7E9F2;
  --r:14px;
  --shadow:0 14px 40px -20px rgba(11,19,80,.3);
  
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:15.5px;line-height:1.75;color:var(--ink-2);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;color:var(--ink);line-height:1.25;text-wrap:balance}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
button{font:inherit}
.container{max-width:1240px;margin-inline:auto;padding-inline:24px}
@media (max-width:520px){.container{padding-inline:16px}}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:10px 14px;border-radius:8px;z-index:200}
.skip-link:focus{left:8px}
:focus-visible{outline:3px solid var(--saffron);outline-offset:2px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:8px;font-weight:600;font-size:14px;letter-spacing:.02em;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;text-transform:uppercase;transition:background .15s,color .15s,border-color .15s}
.btn svg{width:16px;height:16px;flex:none}
.btn--sm{padding:8px 16px;font-size:12.5px}
.btn--primary{background:var(--blue);color:#fff}
.btn--primary:hover{background:var(--blue-deep)}
.btn--accent{background:var(--saffron);color:#fff}
.btn--accent:hover{background:var(--saffron-deep)}
.btn--red{background:var(--red);color:#fff}
.btn--red:hover{background:#B8161B}
.btn--outline{border-color:var(--blue);color:var(--blue);background:#fff}
.btn--outline:hover{background:var(--blue);color:#fff}
.btn--light{background:#fff;color:var(--blue-deep)}
.btn--white{background:#fff;color:var(--red)}
.btn--ghost{border-color:rgba(255,255,255,.6);color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.12)}

.section{padding-block:90px}
.section--tint{background:var(--tint)}
.section--blue{background:linear-gradient(135deg,var(--navy),var(--blue-deep));color:#D7DBF8}
@media (max-width:760px){.section{padding-block:60px}}
.k-kicker{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--saffron-deep)}
.k-head{text-align:center;max-width:780px;margin:0 auto 48px;display:grid;gap:10px;justify-items:center}
.k-head h2{font-size:clamp(26px,3.2vw,38px);font-weight:700;position:relative;padding-bottom:16px}
.k-head h2::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:64px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--blue),var(--saffron))}
.k-head p{font-size:16px}
.k-head--light h2{color:#fff}
.k-head--light .k-kicker{color:#FFC27A}
.k-center{margin-top:36px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.k-link{color:var(--blue);font-weight:600;text-decoration:underline}

/* two-tier header */
.k-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:#fff;box-shadow:0 6px 20px -14px rgba(11,19,80,.45)}
.k-top__in{display:flex;align-items:center;gap:20px;padding-block:12px}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto;min-width:0}
.brand img{width:76px;height:auto;flex:none}
/* the wordmark matches the blue in the crest exactly (#0000FF sampled from
   logo.png, 18,869 px of it) rather than the site token --blue-deep */
.brand b{display:block;font-size:26px;font-weight:700;color:#0000FF;line-height:1.1;letter-spacing:-.01em;white-space:nowrap}
/* the trust line takes the red from the crest (#FF0000, 6,299 px of it)
   rather than the saffron token */
.brand small{display:block;font-size:13px;font-weight:500;color:#FF0000;letter-spacing:.04em;white-space:nowrap}
.k-top__right{display:flex;align-items:center;gap:22px}
.k-contact{display:flex;align-items:center;gap:10px;white-space:nowrap}
.k-ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none}
.k-ic svg{width:19px;height:19px}
.k-ic--blue{background:var(--blue-50);color:var(--blue);box-shadow:0 0 0 4px rgba(31,47,196,.08)}
.k-ic--red{background:var(--red);color:#fff;box-shadow:0 0 0 4px rgba(227,30,36,.15)}
.k-contact small{display:block;font-size:11.5px;color:var(--ink-3);line-height:1.2}
.k-contact b{font-size:15.5px;color:var(--ink);line-height:1.3}
.menu-btn{display:none;background:var(--blue-50);border:0;border-radius:8px;padding:9px;cursor:pointer;color:var(--blue-deep)}
.menu-btn svg{width:24px;height:24px;display:block}
.k-nav{background:var(--blue)}
.k-nav__in{display:flex;justify-content:space-between}
.k-nav a{display:inline-flex;align-items:center;gap:4px;padding:13px 8px;font-size:14px;font-weight:500;color:#fff;white-space:nowrap;border-bottom:3px solid transparent}
.k-nav a svg{width:14px;height:14px;opacity:.8}
.k-nav a:hover,.k-nav a[aria-current]{border-bottom-color:var(--saffron);background:rgba(255,255,255,.06)}
@media (max-width:1180px){.k-nav{display:none}.menu-btn{display:block}.k-contact:first-child{display:none}}
@media (max-width:760px){.k-contact{display:none}.brand b{font-size:19px}.brand small{display:none}.brand img{width:60px}}
@media (max-width:380px){.brand img{width:50px}.brand b{font-size:17px}.k-top__in{gap:12px}}
@media (max-width:420px){.k-donate{display:none}}
.drawer{border-top:1px solid var(--line);background:#fff}
.drawer .container{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px;padding-block:10px}
.drawer a{padding:12px;font-weight:500;border-radius:8px}
.drawer a:hover{background:var(--blue-50)}

/* side quick tabs + help pill */
.side-tabs--left{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:55;display:grid;gap:8px}
.side-tab{display:flex;align-items:center;gap:8px;writing-mode:vertical-rl;transform:rotate(180deg);padding:16px 10px;font-size:13px;font-weight:600;color:#fff;border-radius:0 10px 10px 0;box-shadow:var(--shadow)}
.side-tabs--left .side-tab{border-radius:10px 0 0 10px}
.side-tab svg{width:16px;height:16px;transform:rotate(90deg)}
.side-tab--blue{background:var(--blue)}
.side-tab--navy{background:var(--navy)}
.side-tab--saffron{background:var(--saffron)}
.side-tabs--right{position:fixed;right:0;top:50%;transform:translateY(-50%) rotate(180deg);z-index:55;border-radius:10px 0 0 10px}
.help-pill{position:fixed;right:18px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:56;display:flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;border-radius:999px;background:#25D366;color:#fff;font-weight:600;font-size:14px;box-shadow:0 12px 28px -12px rgba(0,0,0,.45)}
.help-pill svg{width:34px;height:34px;padding:7px;border-radius:50%;background:rgba(255,255,255,.2)}
/* The tabs are fixed to the viewport edges while content is capped at 1240px
   with 24px gutters, so below ~1292px the container fills the window and the
   tabs sit on top of the copy (measured: they clipped the banner headline at
   1024px). Hide them until there is real margin to sit in. */
@media (max-width:1300px){.side-tabs--left,.side-tabs--right{display:none}}
@media (max-width:1000px){.help-pill{display:none}}

/* banner slider */
.k-banner{position:relative;overflow:hidden;background:var(--navy);height:clamp(420px,52vw,600px)}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none}
.hero__slide.is-active{opacity:1;pointer-events:auto}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.k-banner__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,19,80,.93) 0%,rgba(11,19,80,.88) 32%,rgba(11,19,80,.66) 54%,rgba(11,19,80,.22) 76%,rgba(11,19,80,0) 92%)}
/* Between the phone layout and a roomy desktop the 620px caption column runs
   past the horizontal scrim and onto the bright building wall, where white
   type measured 1.21:1. Flatten the scrim across this band. */
@media (min-width:761px) and (max-width:1180px){.k-banner__shade{background:linear-gradient(90deg,rgba(11,19,80,.94) 0%,rgba(11,19,80,.9) 50%,rgba(11,19,80,.78) 76%,rgba(11,19,80,.55) 100%)}}
.k-banner__cap{position:relative;height:100%;display:grid;align-content:center;gap:16px;color:#fff;max-width:1240px}
.k-banner__cap>*{max-width:620px}
.k-banner__tag{justify-self:start;display:inline-block;padding:6px 14px;border-radius:6px;background:var(--saffron);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.k-banner h1,.k-banner h2{font-size:clamp(30px,4.4vw,54px);font-weight:700;color:#fff;letter-spacing:-.01em}
.k-banner p{font-size:clamp(15.5px,1.6vw,18px);color:#DDE1FA}
.k-banner__btns{display:flex;gap:12px;flex-wrap:wrap}
.k-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:var(--blue-deep);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow)}
.k-arrow svg{width:20px;height:20px}
.k-arrow--prev{left:22px}
.k-arrow--next{right:22px}
/* The prev arrow is pinned 22px from the viewport edge and is 46px wide, so
   it clears the caption only once the 1240px container has ~76px of outer
   margin, i.e. from 1344px up. Below that it sat on the first characters of
   the headline (measured 1.21:1 against white type). Dots and autoplay still
   drive the slider, so both arrows come out together rather than leaving an
   odd single arrow. */
@media (max-width:1343px){.k-arrow{display:none}}
.k-dots{position:absolute;left:50%;bottom:92px;transform:translateX(-50%);z-index:3;display:flex;gap:8px}
.k-dots button{width:11px;height:11px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer;padding:0}
.k-dots button[aria-current="true"]{background:var(--saffron);border-color:var(--saffron)}
@media (max-width:760px){.k-banner{height:auto;min-height:520px}.hero__slide{position:absolute}.hero__slide.is-active{position:relative;min-height:520px}.k-banner__cap{padding-block:48px 130px;height:auto;min-height:520px;align-content:end}.k-banner__shade{background:linear-gradient(0deg,rgba(11,19,80,.95) 0%,rgba(11,19,80,.86) 42%,rgba(11,19,80,.62) 72%,rgba(11,19,80,.3) 100%)}.k-arrow{display:none}.k-dots{bottom:96px}.k-banner__btns{display:grid;grid-template-columns:1fr;width:100%}}

/* info cards (overlap banner) */
.k-info{position:relative;z-index:4;margin-top:-72px}
.k-info__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.k-info__card{display:flex;gap:16px;align-items:flex-start;padding:24px;border-radius:var(--r);background:#fff;box-shadow:var(--shadow);border-bottom:4px solid var(--blue)}
.k-info__card:nth-child(1){border-bottom-color:var(--red)}
.k-info__card:nth-child(3){border-bottom-color:var(--saffron)}
.k-info__ic{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--blue-50);color:var(--blue)}
.k-info__ic svg{width:26px;height:26px}
.k-info__ic--red{background:var(--red-50);color:var(--red)}
.k-info__ic--saffron{background:var(--saffron-50);color:var(--saffron-deep)}
.k-info__card h3{font-size:17px;font-weight:600;color:var(--blue-deep)}
.k-info__card p{font-size:14px;margin:2px 0 12px}
@media (max-width:900px){.k-info__grid{grid-template-columns:1fr}.k-info{margin-top:-64px}.k-info__card{padding:18px}}

/* about */
.k-about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:64px;align-items:center}
.k-about__media{position:relative;padding:20px}
.k-about__ring{position:absolute;inset:0 40px 40px 0;border:2px dashed var(--saffron);border-radius:24px}
.k-about__media img{position:relative;border-radius:20px;width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow)}
.k-about__badge{position:absolute;right:0;bottom:30px;display:grid;justify-items:center;width:150px;height:150px;border-radius:50%;background:var(--blue);color:#fff;text-align:center;align-content:center;box-shadow:0 0 0 8px #fff,var(--shadow)}
.k-about__badge b{font-size:40px;line-height:1;font-weight:700}
.k-about__badge span{font-size:12.5px;line-height:1.3;padding-inline:14px;margin-top:4px}
.k-about__text{display:grid;gap:16px}
.k-about__text h2{font-size:clamp(24px,2.8vw,34px);font-weight:700}
.k-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.k-stat{padding:18px 16px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 20px -16px rgba(11,19,80,.35);display:grid;gap:2px}
.k-stat__ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--saffron-50);color:var(--saffron-deep);margin-bottom:6px}
.k-stat__ic svg{width:20px;height:20px}
.k-stat b{font-size:24px;font-weight:700;color:var(--blue-deep);line-height:1.2;font-variant-numeric:tabular-nums}
.k-stat small{font-size:12.5px;line-height:1.4}
@media (max-width:980px){.k-about{grid-template-columns:minmax(0,1fr);gap:40px}.k-about__media{max-width:480px;margin-inline:auto}}
@media (max-width:560px){.k-stats{grid-template-columns:1fr 1fr}.k-about__badge{width:112px;height:112px}.k-about__badge b{font-size:30px}.k-about__badge span{font-size:11px}}

/* leadership */
.k-leaders{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.k-leader{background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);display:grid;grid-template-rows:auto 1fr}
.k-leader__ph{aspect-ratio:16/12;max-width:100%;overflow:hidden;background:var(--blue-100)}
.k-leader__ph img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.k-leader__body{padding:28px 30px 30px;display:grid;gap:12px;align-content:start;position:relative}
.k-leader__role{justify-self:start;margin-top:-50px;padding:8px 16px;border-radius:8px;background:var(--saffron);color:#fff;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.k-leader h3{font-size:22px;font-weight:700;color:var(--blue-deep)}
.k-leader blockquote{margin:0;padding:14px 18px;border-radius:10px;background:var(--blue-50);border-left:4px solid var(--blue);font-style:italic;color:var(--ink);font-size:15.5px}
.k-leader p{font-size:14.5px}
.k-leader__stats{display:flex;gap:28px;padding-top:14px;border-top:1px solid var(--line)}
.k-leader__stats span{display:grid;font-size:12.5px}
.k-leader__stats b{font-size:24px;font-weight:700;color:var(--blue);line-height:1.2}
@media (max-width:900px){.k-leaders{grid-template-columns:1fr}.k-leader__body{padding:22px}}

/* accreditations */
.k-certs{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.k-cert{text-align:center;padding:34px 22px 28px;border-radius:var(--r);background:#fff;border:1px solid var(--line);border-top:4px solid var(--blue);box-shadow:0 10px 26px -20px rgba(11,19,80,.4);display:grid;gap:8px;justify-items:center;transition:transform .2s,box-shadow .2s}
.k-cert:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.k-cert__medal{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#fff,var(--saffron-50));border:3px solid var(--saffron);color:var(--saffron-deep);margin-bottom:8px}
.k-cert__medal svg{width:34px;height:34px}
.k-cert h3{font-size:16.5px;font-weight:600;color:var(--blue-deep)}
.k-cert p{font-size:13.5px}
@media (max-width:980px){.k-certs{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.k-certs{gap:12px}.k-cert{padding:22px 12px 18px}.k-cert__medal{width:58px;height:58px}.k-cert__medal svg{width:26px;height:26px}.k-cert h3{font-size:14.5px}.k-cert p{font-size:12.5px}}

/* specialities */
.k-spec{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.k-spec__card{position:relative;padding:28px 24px;border-radius:var(--r);background:#fff;border:1px solid var(--line);display:grid;gap:10px;align-content:start;overflow:hidden;transition:transform .2s,box-shadow .2s}
.k-spec__card::before{content:"";position:absolute;left:0;top:0;right:0;height:0;background:var(--blue);transition:height .3s;z-index:0}
.k-spec__card>*{position:relative;z-index:1}
.k-spec__card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.k-spec__card:hover::before{height:100%}
.k-spec__card:hover h3,.k-spec__card:hover p,.k-spec__card:hover .k-more{color:#fff}
.k-spec__card:hover .k-spec__ic{background:rgba(255,255,255,.16);color:#fff}
.k-spec__ic{width:60px;height:60px;border-radius:50%;background:var(--blue-50);color:var(--blue);display:grid;place-items:center;transition:background .2s,color .2s}
.k-spec__ic svg{width:28px;height:28px}
.k-spec__card h3{font-size:17px;font-weight:600;transition:color .2s}
.k-spec__card p{font-size:13.5px;line-height:1.6;transition:color .2s}
.k-more{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--saffron-deep);text-transform:uppercase;letter-spacing:.04em;transition:color .2s}
.k-more svg{width:14px;height:14px}
.k-spec__card--all{background:var(--saffron-50);border-color:#F7DDBD}
@media (max-width:1000px){.k-spec{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.k-spec{gap:12px}.k-spec__card{padding:18px 14px}.k-spec__ic{width:46px;height:46px}.k-spec__ic svg{width:22px;height:22px}.k-spec__card h3{font-size:15px}.k-spec__card p{font-size:12.5px}}

/* plans + rates */
.k-plans{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.k-plan{position:relative;padding:30px 24px 26px;border-radius:var(--r);background:#fff;border:1px solid var(--line);text-align:center;display:grid;gap:8px;justify-items:center;box-shadow:0 10px 26px -20px rgba(11,19,80,.4)}
.k-plan__lbl{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.k-plan b{font-size:38px;font-weight:700;color:var(--blue-deep);line-height:1.1;font-variant-numeric:tabular-nums}
.k-plan p{font-size:13.5px;min-height:44px}
.k-plan--hl{background:linear-gradient(160deg,var(--blue),var(--blue-deep));border-color:transparent;color:#D8DCF9}
.k-plan--hl::before{content:"Most used";position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:3px 12px;border-radius:999px;background:var(--saffron);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.05em;white-space:nowrap}
.k-plan--hl .k-plan__lbl{color:#FFC27A}
.k-plan--hl b{color:#fff}
.k-rates{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}
.k-rate{border-radius:var(--r);background:var(--tint);border:1px solid var(--line);padding:24px 26px}
.k-rate h3{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:17px;font-weight:600;color:var(--blue-deep);padding-bottom:12px;border-bottom:2px solid var(--blue-100);margin-bottom:6px}
.k-rate h3 span{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--saffron-deep);white-space:nowrap}
.k-rate li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
.k-rate li:last-child{border-bottom:0}
.k-rate li b{color:var(--ink);font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.k-note{margin-top:22px;text-align:center;font-size:14.5px}
@media (max-width:1000px){.k-plans{grid-template-columns:1fr 1fr}.k-rates{grid-template-columns:1fr}}
@media (max-width:480px){.k-plans{gap:12px}.k-plan{padding:24px 12px 18px}.k-plan b{font-size:28px}.k-plan p{font-size:12.5px;min-height:0}.k-plan .btn{width:100%}.k-rate{padding:18px}}

/* schemes on blue */
.k-schemes{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.k-scheme{padding:26px 22px;border-radius:var(--r);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);display:grid;gap:8px;align-content:start}
.k-scheme__tag{justify-self:start;padding:3px 10px;border-radius:6px;background:rgba(255,255,255,.14);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.k-scheme__tag--free{background:var(--saffron)}
.k-scheme h3{font-size:17px;font-weight:600;color:#fff}
.k-scheme p{font-size:14px}
.k-why{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.k-why>div{padding:26px;border-radius:var(--r);background:#fff;color:var(--ink-2)}
.k-why h3{font-size:19px;font-weight:700;color:var(--blue-deep);margin-bottom:12px}
.k-why li{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:14.5px;padding:5px 0}
.k-why svg{width:20px;height:20px;color:var(--saffron-deep);margin-top:3px}
/* .k-scheme was written only for the navy .section--blue band on the home page:
   white text on rgba(255,255,255,.07). Reused on a light page it rendered white
   on white and was invisible unless selected. Light is now the default and the
   dark treatment is scoped to the band it was designed for. */
.k-scheme{background:#fff;border-color:var(--line);box-shadow:0 12px 30px -24px rgba(11,19,80,.5)}
.k-scheme__tag{background:var(--blue-50);color:var(--blue-deep)}
.k-scheme__tag--free{background:var(--saffron);color:#fff}
.k-scheme h3{color:var(--blue-deep)}
.k-scheme p{color:var(--ink-2)}

.section--blue .k-scheme{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.15);box-shadow:none}
.section--blue .k-scheme__tag{background:rgba(255,255,255,.14);color:#fff}
.section--blue .k-scheme__tag--free{background:var(--saffron);color:#fff}
.section--blue .k-scheme h3{color:#fff}
.section--blue .k-scheme p{color:#D7DBF8}

@media (max-width:1000px){.k-schemes{grid-template-columns:1fr 1fr}.k-why{grid-template-columns:1fr}}
@media (max-width:480px){.k-schemes{grid-template-columns:1fr}}

/* seva cards */
.k-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.k-card{border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:0 12px 30px -22px rgba(11,19,80,.5);border:1px solid var(--line);display:grid;grid-template-rows:auto 1fr}
.k-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.k-card>div{padding:20px;display:grid;gap:6px;align-content:start;border-top:3px solid var(--saffron)}
.k-card h3{font-size:16.5px;font-weight:600;color:var(--blue-deep)}
.k-card p{font-size:13.5px}
/* .k-card was written for an image on top (grid-template-rows:auto 1fr) with
   the copy in a padded <div>. Cards built without an image inherit those rows,
   so the heading row absorbs the slack and leaves a hole above the text, and
   there is no padding at all. Give that variant its own box. */
.k-card:not(:has(img)){
  grid-template-rows:none;align-content:start;
  padding:24px;gap:10px;border-top:3px solid var(--saffron);
}
.k-card:not(:has(img)) h3{margin:0}
.k-card:not(:has(img)) p{margin:0;color:var(--ink-2);line-height:1.6}
@media (max-width:480px){.k-card:not(:has(img)){padding:18px;gap:8px}}
@media (max-width:1000px){.k-cards{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.k-cards{gap:12px}.k-card>div{padding:14px}.k-card h3{font-size:14.5px}.k-card p{font-size:12.5px}}
.k-inst{margin-top:56px;padding:40px;border-radius:20px;background:var(--tint);border:1px solid var(--line)}
.k-inst__head{text-align:center;display:grid;gap:6px;margin-bottom:28px}
.k-inst__head h3{font-size:clamp(22px,2.6vw,28px);font-weight:700}
.k-inst__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.k-inst__item{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center;padding:12px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.k-inst__item img{width:110px;height:90px;object-fit:cover;border-radius:10px}
.k-inst__item b{display:block;font-size:14.5px;color:var(--blue-deep);line-height:1.35}
.k-inst__item small{font-size:12.5px}
.k-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}
.k-chips li{padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:500;color:var(--ink)}
.k-pinjrat{margin-top:24px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 26px;border-radius:14px;background:linear-gradient(120deg,var(--saffron),#F6A84A);color:#fff}
.k-pinjrat span{display:block;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.9}
.k-pinjrat b{display:block;font-size:20px;color:#fff}
.k-pinjrat small{display:block;font-size:14px;max-width:640px}
.k-pinjrat .btn{background:#fff;color:var(--saffron-deep)}
@media (max-width:1000px){.k-inst__grid{grid-template-columns:1fr}}
@media (max-width:560px){.k-inst{padding:20px 14px}.k-inst__item{grid-template-columns:88px 1fr}.k-inst__item img{width:88px;height:74px}.k-chips li{font-size:12px;padding:6px 11px}.k-pinjrat{padding:18px}.k-pinjrat .btn{width:100%}}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:14px}
.gallery button{position:relative;padding:0;border:0;border-radius:12px;overflow:hidden;cursor:zoom-in;background:var(--blue-100)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery button:hover img{transform:scale(1.07)}
.gallery span{position:absolute;inset:auto 0 0 0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(11,19,80,.85));color:#fff;font-size:13.5px;font-weight:500;text-align:left}
@media (max-width:900px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:10px}.gallery span{font-size:12px;padding:20px 10px 8px}}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(6,10,40,.92);display:grid;place-items:center;padding:24px}
.lightbox figure{margin:0;display:grid;gap:10px;max-width:min(1100px,100%)}
.lightbox img{max-height:80vh;width:auto;margin-inline:auto;border-radius:10px}
.lightbox figcaption{color:#fff;text-align:center;font-weight:500}
.lightbox__close{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-size:24px;cursor:pointer}

/* reviews */
.k-reviews{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.k-review{padding:24px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:0 10px 26px -20px rgba(11,19,80,.4);display:grid;gap:12px;align-content:start}
.k-review__top{display:flex;gap:12px;align-items:center}
.k-av{width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:600}
.k-review__top b{display:block;font-size:15px;color:var(--ink)}
.stars{color:var(--saffron);letter-spacing:2px;font-size:14px}
.k-review p{font-size:13.5px;font-style:italic;color:var(--ink-3)}
.k-vid{position:relative;aspect-ratio:16/10;max-width:100%;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--navy));display:grid;place-items:center;color:#fff}
.k-vid svg{width:48px;height:48px}
.k-vid em{position:absolute;left:10px;top:10px;font-style:normal;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--saffron);padding:3px 8px;border-radius:4px}
.k-review--video b{font-size:15px;color:var(--ink)}
.k-review--video small{font-size:13px;margin-top:-10px}
@media (max-width:1000px){.k-reviews{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.k-reviews{grid-template-columns:1fr}}

/* donate */
.k-donate-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.k-donate__text{display:grid;gap:16px}
.k-donate__text h2{font-size:clamp(24px,3vw,36px);font-weight:700}
.k-donate__btns{display:flex;gap:12px;flex-wrap:wrap}
.k-donate__meta{font-size:13px;color:var(--ink-3)}
.k-gives{display:grid;gap:14px}
.k-give{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;padding:20px 24px;border-radius:var(--r);background:#fff;border-left:5px solid var(--saffron);box-shadow:0 10px 26px -20px rgba(11,19,80,.45)}
.k-give b{font-size:26px;font-weight:700;color:var(--blue-deep);white-space:nowrap;font-variant-numeric:tabular-nums}
.k-give p{font-size:14.5px}
@media (max-width:900px){.k-donate-wrap{grid-template-columns:minmax(0,1fr);gap:28px}.k-give{grid-template-columns:1fr;gap:2px;padding:16px 18px}.k-donate__btns{display:grid;grid-template-columns:1fr}}

/* faq */
.k-faq{max-width:900px;margin-inline:auto;display:grid;gap:12px}
.k-faq details{border-radius:12px;border:1px solid var(--line);background:#fff;overflow:hidden}
.k-faq details[open]{border-color:var(--blue-100);box-shadow:0 10px 26px -20px rgba(11,19,80,.45)}
.k-faq summary{list-style:none;cursor:pointer;position:relative;padding:18px 58px 18px 22px;font-weight:600;font-size:15.5px;color:var(--ink)}
.k-faq summary::-webkit-details-marker{display:none}
.k-faq details[open] summary{background:var(--blue);color:#fff}
.k-faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:6px;background:var(--blue-50);color:var(--blue);display:grid;place-items:center;font-size:20px;line-height:1}
.k-faq details[open] summary::after{content:"\2212";background:var(--saffron);color:#fff}
.k-faq details p{padding:16px 22px 20px;font-size:15px}
@media (max-width:520px){.k-faq summary{font-size:14.5px;padding:15px 52px 15px 16px}.k-faq details p{padding:14px 16px 16px;font-size:14px}}

/* emergency cta */
.k-cta{background:linear-gradient(120deg,var(--red),#B5151A);color:#fff}
.k-cta__in{display:flex;justify-content:space-between;align-items:center;gap:18px 30px;flex-wrap:wrap;padding-block:34px}
.k-cta h2{font-size:clamp(20px,2.6vw,28px);font-weight:700;color:#fff}
.k-cta p{color:#FFD9DA;font-size:14.5px}
.k-cta__btns{display:flex;gap:12px;flex-wrap:wrap}
.k-cta .btn--white{font-size:17px;letter-spacing:.02em}
@media (max-width:640px){.k-cta__in{text-align:center;justify-content:center}.k-cta__btns{display:grid;grid-template-columns:1fr;width:100%}}

/* footer */

/* hidden by default; the query below turns it on for small screens */
.action-bar{display:none}

@media (max-width:1000px){
  .action-bar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:70;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -8px 24px -16px rgba(11,19,80,.4)}
  .action-bar a{display:grid;justify-items:center;gap:2px;padding:9px 4px;font-size:11.5px;font-weight:600;color:var(--ink-2)}
  .action-bar svg{width:21px;height:21px}
  .action-bar .ab-em{color:var(--red)}
  .action-bar .ab-wa{color:#128C4A}
  .action-bar .ab-book{color:var(--blue)}
  .action-bar .ab-don{color:var(--saffron-deep)}
  body{padding-bottom:64px}
}
@media (max-width:640px){body{font-size:14.5px}.k-head{margin-bottom:32px}.k-head p{font-size:14.5px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* === INNER PAGES :: build-inner-pages.py === */
/* The header is sticky, so a jump to #surgical-sciences (or any home page
   anchor) landed with the heading hidden behind it. Measured header height is
   141px desktop, 87px tablet, 74px phone. */
html{scroll-padding-top:156px}
@media (max-width:900px){html{scroll-padding-top:100px}}
@media (max-width:560px){html{scroll-padding-top:88px}}

.page-hero{background:var(--navy);color:#fff;padding:52px 0 56px}
/* the global h1,h2,h3,h4 rule sets var(--ink), which is invisible on navy */
.page-hero h1{color:#fff;margin:.2rem 0 .7rem;font-size:clamp(28px,4.2vw,46px);line-height:1.12;letter-spacing:-.02em}
.page-hero p{margin:0;max-width:64ch;color:#C5CBF0;font-size:16.5px;line-height:1.65}
.crumbs{font-size:13px;color:#9AA2D8}
.crumbs a{color:#fff;text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span{padding:0 .45rem;opacity:.55}

.prose{max-width:72ch}
/* wide enough for a two column tick list, still short enough to read: a full
   1240px measure is roughly 150 characters a line */
.prose--wide{max-width:980px;margin-inline:auto;margin-top:28px}
.prose p{color:var(--ink-2);font-size:15.5px;line-height:1.78;margin:0 0 1rem}
.prose h3{font-size:18px;font-weight:600;color:var(--blue-deep);margin:2rem 0 .7rem}
.prose h3:first-child{margin-top:0}
.prose b{color:var(--ink);font-weight:600}

.ticks{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:10px}
.ticks--2{grid-template-columns:1fr 1fr}
.ticks li{position:relative;padding-left:30px;color:var(--ink-2);font-size:15px;line-height:1.6}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:16px;height:16px;border-radius:50%;background:var(--saffron-50);border:1.5px solid var(--saffron)}
.ticks li::after{content:"";position:absolute;left:5px;top:.72em;width:5px;height:8px;border:solid var(--saffron-deep);border-width:0 2px 2px 0;transform:rotate(45deg)}

/* ---- department bands: image one side, content the other, alternating ---- */
.dsec{position:relative;overflow:hidden;padding-block:72px;background:var(--bg)}
.dsec--tint{background:var(--tint)}
.dsec__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:52px;align-items:center;position:relative;z-index:1}
.dsec--alt .dsec__media{order:2}

/* the group's own icon, oversized and faint, bleeding off the edge */
.dsec__mark{position:absolute;top:50%;right:-90px;width:420px;height:420px;
  transform:translateY(-50%);color:var(--blue);opacity:.04;pointer-events:none;z-index:0}
.dsec--alt .dsec__mark{right:auto;left:-90px}

.dsec__media{position:relative;margin:0}
.dsec__media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  border-radius:var(--r);box-shadow:0 26px 54px -32px rgba(11,19,80,.7)}
.dsec__media::after{content:"";position:absolute;inset:0;border-radius:var(--r);
  border:1px solid rgba(255,255,255,.35);pointer-events:none}
.dsec__badge{position:absolute;left:18px;bottom:18px;display:flex;align-items:center;gap:9px;
  padding:10px 16px;border-radius:999px;background:rgba(11,19,80,.86);color:#fff;
  font-size:13px;font-weight:600;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.dsec__badge svg{width:17px;height:17px;color:var(--marigold,#FFC87A)}

.dsec__kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:.7rem;
  padding:6px 13px;border-radius:999px;background:var(--blue-50);
  border:1px solid var(--blue-100);color:var(--blue-deep);
  font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.dsec__kicker svg{width:15px;height:15px;color:var(--blue)}
.dsec__body h2{font-family:var(--font-head);font-size:clamp(28px,3.4vw,42px);
  font-weight:700;line-height:1.12;color:var(--ink);letter-spacing:-.01em}
.dsec__sub{margin-top:.5rem;font-size:14px;font-weight:600;color:var(--saffron-deep);
  letter-spacing:.01em}
.dsec__text{margin-top:1rem;font-size:16px;line-height:1.75;color:var(--ink-2)}
.dsec__body h3{margin:1.6rem 0 .8rem;font-size:13px;font-weight:700;color:var(--ink-3);
  letter-spacing:.1em;text-transform:uppercase}
.dsec__list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:1fr 1fr;gap:9px 18px}
.dsec__list li{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;
  color:var(--ink-2);line-height:1.5}
.dsec__list svg{width:17px;height:17px;flex:none;margin-top:1px;color:var(--saffron)}
.dsec__cta{display:inline-flex;align-items:center;gap:9px;margin-top:1.7rem;
  padding:12px 22px;border-radius:999px;background:var(--blue);color:#fff;
  font-size:14px;font-weight:600;text-decoration:none;
  transition:background .25s ease,gap .25s ease,transform .25s ease}
.dsec__cta svg{width:16px;height:16px}
.dsec__cta:hover{background:var(--blue-deep);gap:14px;transform:translateY(-2px)}

/* The hiding rule is gated on .js-anim, which only the script sets. Without JS,
   or with reduced motion, all seven bands are simply visible — an animation
   must never be able to leave real content at opacity 0. */
@media (prefers-reduced-motion:no-preference){
  .js-anim .dsec[data-reveal]{opacity:0;transform:translateY(26px)}
  .js-anim .dsec[data-reveal].is-in{opacity:1;transform:none;
    transition:opacity .6s ease,transform .6s cubic-bezier(.22,.8,.3,1)}
}
@media (max-width:980px){
  .dsec{padding-block:52px}
  .dsec__grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .dsec--alt .dsec__media{order:0}
  .dsec__mark{width:300px;height:300px;right:-70px;opacity:.035}
}
@media (max-width:560px){
  .dsec{padding-block:40px}
  .dsec__list{grid-template-columns:1fr}
  .dsec__badge{left:12px;bottom:12px;padding:8px 13px;font-size:12px}
}

/* speciality cards, image-led */
.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
.spec-card{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;
  background:#fff;border:1px solid var(--line);text-decoration:none;
  box-shadow:0 14px 34px -26px rgba(11,19,80,.55);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.spec-card:hover{transform:translateY(-4px);border-color:var(--blue-100);
  box-shadow:0 22px 44px -26px rgba(11,19,80,.55)}
.spec-card__img{display:block;overflow:hidden;background:var(--tint)}
.spec-card__img img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  transition:transform .5s cubic-bezier(.22,.8,.3,1)}
.spec-card:hover .spec-card__img img{transform:scale(1.05)}
.spec-card__body{position:relative;display:flex;flex-direction:column;gap:7px;
  padding:22px 22px 20px;flex:1}
.spec-card__ic{position:absolute;top:-26px;right:20px;width:52px;height:52px;border-radius:14px;
  display:grid;place-items:center;background:var(--blue);color:#fff;
  box-shadow:0 10px 22px -12px rgba(11,19,80,.8)}
.spec-card__ic svg{width:24px;height:24px}
.spec-card strong{font-size:18px;font-weight:700;color:var(--blue-deep);line-height:1.25;
  padding-right:46px}
.spec-card em{font-style:normal;font-size:13.5px;color:var(--ink-2);line-height:1.6;flex:1}
.spec-card__more{display:inline-flex;align-items:center;gap:7px;margin-top:4px;
  font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--saffron-deep)}
.spec-card__more svg{width:15px;height:15px;transition:transform .25s ease}
.spec-card:hover .spec-card__more svg{transform:translateX(4px)}
@media (max-width:1000px){.spec-grid{grid-template-columns:1fr 1fr;gap:18px}}
@media (max-width:620px){.spec-grid{grid-template-columns:1fr}}

.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:start;margin-top:28px}
.contact-map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:var(--tint)}
.contact-map iframe{display:block;width:100%;height:420px;border:0}

/* The info cards are a home page component sized around short button labels
   ("Call Now"). Inner pages use longer ones, and a grid item will not shrink
   below its min-content, so at 320px the card pushed 2px past the viewport.
   Letting the item and its text column shrink, and the label wrap, fixes it
   for any label length rather than just the ones written today. */
.k-info__card{min-width:0}
.k-info__card>div{min-width:0}

@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;gap:26px}
  .contact-map iframe{height:320px}
  .ticks--2{grid-template-columns:1fr}
  .page-hero{padding:38px 0 42px}
}
@media (max-width:420px){
  .k-info__card .btn{white-space:normal;text-align:left}
}
/* === end inner pages === */

/* === COVERAGE HIGHLIGHT :: coverage.py === */
.cov{background:var(--navy);padding-block:26px}
.cov__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cov__item{
  /* grid rather than flex so the label sits above its caption, with the
     icon spanning both rows */
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;
  column-gap:14px;min-width:0;
  padding:16px 18px;border-radius:var(--r);
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
}
.cov__ic{grid-row:1 / span 2}
.cov__item b,.cov__item span:last-child{grid-column:2}
.cov__item--hl{background:rgba(242,140,24,.18);border-color:var(--saffron)}
.cov__ic{
  width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.14);color:var(--marigold,#FFC87A);
}
.cov__item--hl .cov__ic{background:var(--saffron);color:#fff}
.cov__ic svg{width:23px;height:23px}
.cov__item b{display:block;font-size:17px;font-weight:700;color:#fff;line-height:1.15;letter-spacing:-.01em}
.cov__item span:last-child{display:block;font-size:12.5px;color:#C5CBF0;margin-top:2px}
.cov__item--hl span:last-child{color:#FFE6C4}
@media (max-width:1000px){.cov__list{grid-template-columns:1fr 1fr}}
@media (max-width:560px){
  .cov{padding-block:18px}
  .cov__list{grid-template-columns:1fr;gap:10px}
  .cov__item{padding:13px 14px;gap:12px}
  .cov__ic{width:40px;height:40px}
  .cov__ic svg{width:20px;height:20px}
  .cov__item b{font-size:15.5px}
}
/* === end coverage highlight === */

/* === COVERAGE BAND MOTION :: covanim.py === */
/* hover + focus, always on (a transform is cheap and does not disorient) */
.cov__item{transition:transform .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease}
.cov__ic{transition:transform .25s ease}
/* the reveal rule below is .cov[data-anim].is-in .cov__item -> (0,4,0) and sets
   transform:none, so the hover has to be scoped to win on specificity. Both
   forms are listed so hover still works when JS never set data-anim. */
.cov__item:hover,.cov__item:focus-within,
.cov[data-anim].is-in .cov__item:hover,
.cov[data-anim].is-in .cov__item:focus-within{
  transform:translateY(-3px);
  background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.32);
  box-shadow:0 14px 30px -18px rgba(0,0,0,.65);
}
.cov__item:hover .cov__ic,.cov__item:focus-within .cov__ic,
.cov[data-anim].is-in .cov__item:hover .cov__ic{transform:scale(1.09)}
.cov__item--hl:hover,.cov__item--hl:focus-within,
.cov[data-anim].is-in .cov__item--hl:hover{
  background:rgba(242,140,24,.27);border-color:var(--saffron);
}

@media (prefers-reduced-motion:no-preference){
  /* staggered reveal. Only JS sets data-anim, so no-JS keeps the tiles visible */
  .cov[data-anim] .cov__item{opacity:0;transform:translateY(16px)}
  .cov[data-anim].is-in .cov__item{
    opacity:1;transform:none;
    transition:opacity .55s ease,transform .55s cubic-bezier(.22,.8,.3,1);
  }
  .cov[data-anim].is-in .cov__item:nth-child(1){transition-delay:.00s}
  .cov[data-anim].is-in .cov__item:nth-child(2){transition-delay:.09s}
  .cov[data-anim].is-in .cov__item:nth-child(3){transition-delay:.18s}
  .cov[data-anim].is-in .cov__item:nth-child(4){transition-delay:.27s}

  /* the accredited tile keeps a slow halo so the eye lands on it */
  .cov[data-anim].is-in .cov__item--hl .cov__ic{
    animation:covHalo 3.4s ease-in-out 1.1s infinite;
  }
  @keyframes covHalo{
    0%,100%{box-shadow:0 0 0 0 rgba(242,140,24,.55)}
    50%    {box-shadow:0 0 0 11px rgba(242,140,24,0)}
  }
}
/* === end coverage band motion === */

/* === DEPARTMENT PAGE :: build-department.py === */
.page-hero--dept{padding-block:44px 52px}
.dept-kicker{
  display:inline-block;margin-bottom:.55rem;padding:5px 12px;border-radius:6px;
  background:rgba(242,140,24,.22);border:1px solid rgba(242,140,24,.5);
  color:var(--marigold,#FFC87A);font-size:11.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;
}
.dept-hero__btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:1.6rem}

.dept{background:var(--bg);padding-block:56px 64px}
/* no align-items:start here. The side column has to stretch the full height of
   the row, otherwise it collapses to its content height and the sticky block
   inside it has zero slack to travel through (measured: both were 1414px). */
.dept__grid{display:grid;grid-template-columns:minmax(0,1fr) 348px;gap:48px}
.dept__main{min-width:0}
.dept__side{min-width:0}

.dept__figure{margin:0 0 32px}
.dept__figure img{width:100%;height:auto;border-radius:var(--r);display:block;box-shadow:var(--shadow)}
.dept__figure figcaption{margin-top:.7rem;font-size:13px;color:var(--ink-3)}
.dept__lead{font-size:17px;line-height:1.72;color:var(--ink-2)}
.dept__main h2{
  font-size:23px;font-weight:700;color:var(--blue-deep);letter-spacing:-.015em;
  margin:2.4rem 0 .9rem;padding-top:1.4rem;border-top:1px solid var(--line);
}
.dept__main h2:first-of-type{border-top:0;padding-top:0}

.dept__units{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:1.2rem 0 .5rem}
.dept__unit{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:13px;align-items:start;
  padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--tint)}
.dept__unit-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
  background:var(--blue-50);color:var(--blue)}
.dept__unit-ic svg{width:20px;height:20px}
.dept__unit h3{font-size:15.5px;font-weight:600;color:var(--blue-deep);margin-bottom:2px}
.dept__unit p{font-size:13.5px;color:var(--ink-2);line-height:1.55}

.steps{list-style:none;counter-reset:s;margin:1.1rem 0 0;padding:0;display:grid;gap:14px}
.steps li{counter-increment:s;position:relative;padding-left:48px;color:var(--ink-2);
  font-size:15px;line-height:1.7}
.steps li::before{
  content:counter(s);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;background:var(--blue);color:#fff;
  font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;
}
.steps b{color:var(--ink)}

/* ---- sticky sidebar ---- */
.dept__sticky{position:sticky;top:170px;display:grid;gap:16px}
.dept__foot{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:1.1rem}
.foot-card{border:1px solid var(--line);border-radius:var(--r);background:var(--tint);padding:18px 20px}
.foot-card h2{font-size:15.5px;font-weight:700;color:var(--blue-deep);margin:0 0 .7rem;padding:0;border:0}
.foot-card .k-link{display:inline-block;margin-top:.8rem;font-size:13.5px;font-weight:600}
.side-card{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:20px 20px 22px;box-shadow:0 10px 30px -26px rgba(11,19,80,.6)}
.side-card h2{font-size:16px;font-weight:700;color:var(--blue-deep);margin-bottom:.7rem}
.side-card p{font-size:13.5px;color:var(--ink-2);line-height:1.6}
.side-card .k-link{display:inline-block;margin-top:.85rem;font-size:13.5px;font-weight:600}
.btn--block{display:flex;width:100%;justify-content:center;margin-top:.6rem}

.side-card--urgent{background:var(--navy);border-color:var(--navy)}
.side-card--urgent h2{color:#fff}
.side-card--urgent p{color:#C5CBF0}

.side-facts{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px 14px;align-items:center}
.side-facts dt{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-3)}
.side-facts dt svg{width:15px;height:15px;color:var(--blue);flex:none}
.side-facts dd{margin:0;font-size:13.5px;font-weight:600;color:var(--ink);text-align:right}

.side-card--rate{background:var(--saffron-50);border-color:var(--saffron-soft,#FFE6C4)}
.side-rates{list-style:none;margin:0;padding:0;display:grid;gap:0}
.side-rates li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;
  border-bottom:1px dashed var(--line);font-size:13.5px;color:var(--ink-2)}
.side-rates li:last-child{border-bottom:0}
.side-rates b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.side-note{margin-top:.6rem;font-size:12px;color:var(--ink-3)}

.side-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.side-pills li{font-size:12.5px;font-weight:600;color:var(--blue-deep);
  background:var(--blue-50);border:1px solid var(--blue-100);border-radius:999px;padding:5px 11px}

.side-links{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.side-links a{display:block;padding:8px 0;font-size:13.5px;color:var(--ink-2);
  text-decoration:none;border-bottom:1px solid var(--line)}
.side-links li:last-child a{border-bottom:0}
.side-links a:hover{color:var(--blue)}

@media (max-width:1100px){
  .dept__grid{grid-template-columns:minmax(0,1fr) 300px;gap:32px}
}
@media (max-width:900px){
  .dept__grid{grid-template-columns:minmax(0,1fr)}
  .dept__foot{grid-template-columns:1fr}
  .dept__sticky{position:static}
  .dept__units{grid-template-columns:1fr}
  .dept{padding-block:40px 48px}
}
@media (max-width:560px){
  .side-facts{grid-template-columns:1fr;gap:4px 0}
  .side-facts dd{text-align:left;margin-bottom:.45rem}
  .steps li{padding-left:42px}
}
/* === end department page === */

/* === FOOTER :: build-footer.py === */
/* One scale for the whole footer. The previous rule sized every <b> in the
   brand column at 21px, which caught the phone numbers and broke them across
   lines; numbers now carry their own size. */
.k-footer{background:var(--navy);color:#B7BDE8;font-size:14px;line-height:1.6}
.k-footer__cols{
  display:grid;grid-template-columns:1.65fr 1fr 1fr 1fr 1.25fr;
  gap:30px 34px;padding-block:60px 42px;
}

.k-footer__brand{display:grid;gap:16px;align-content:start}
.k-footer__lg{display:flex;align-items:center;gap:13px;text-decoration:none}
.k-footer__lg img{width:66px;height:66px;flex:none;background:#fff;border-radius:50%;padding:4px}
.k-footer__lg b{display:block;color:#fff;font-size:19px;font-weight:700;line-height:1.2;letter-spacing:-.01em}
.k-footer__lg small{display:block;margin-top:3px;color:var(--marigold,#FFC87A);font-size:12px;font-weight:500}
.k-footer__brand>p{font-size:13.5px;color:#A9B0E0;max-width:38ch;margin:0}

.k-footer__contact{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.k-footer__contact li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:center}
.k-footer__contact small{display:block;font-size:11.5px;color:#8E97D4;letter-spacing:.03em}
.k-footer__contact a{display:block;font-size:15.5px;font-weight:700;color:#fff;text-decoration:none;
  white-space:nowrap;font-variant-numeric:tabular-nums}
.k-footer__contact a:hover{color:var(--marigold,#FFC87A)}

.k-footer__ic{
  width:36px;height:36px;flex:none;border-radius:9px;display:grid;place-items:center;
  background:rgba(255,255,255,.09);color:#C5CBF0;
}
.k-footer__ic svg{width:17px;height:17px}
.k-footer__ic--red{background:rgba(227,30,36,.22);color:#FF8A8E}
.k-footer__ic--saffron{background:rgba(242,140,24,.2);color:var(--marigold,#FFC87A)}
.k-footer__ic--wa{background:rgba(37,211,102,.18);color:#5BE584}

.k-footer h4{
  font-size:14px;font-weight:600;color:#fff;margin:0 0 15px;
  padding-bottom:9px;border-bottom:2px solid var(--saffron);display:inline-block;
}
.k-footer__links{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.k-footer__links a{
  position:relative;display:inline-block;padding-left:15px;
  font-size:13.5px;color:#B7BDE8;text-decoration:none;transition:color .2s ease,padding-left .2s ease;
}
.k-footer__links a::before{
  content:"";position:absolute;left:0;top:.52em;width:5px;height:5px;border-radius:50%;
  background:var(--saffron);opacity:.65;transition:opacity .2s ease;
}
.k-footer__links a:hover{color:#fff;padding-left:19px}
.k-footer__links a:hover::before{opacity:1}

.k-footer__reach{display:grid;gap:13px;margin:0 0 18px;padding:0;list-style:none}
.k-footer__reach li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:start}
.k-footer__reach span:last-child{font-size:13.5px;color:#B7BDE8;line-height:1.55;padding-top:2px}
.k-footer__reach a{color:#B7BDE8;text-decoration:none;word-break:break-word}
.k-footer__reach a:hover{color:#fff;text-decoration:underline}
.k-footer__cta{width:100%;justify-content:center}

.k-footer__bot{background:rgba(0,0,0,.22);border-top:1px solid rgba(255,255,255,.07)}
.k-footer__bot .container{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;
  gap:10px 24px;padding-block:17px;font-size:12.5px;color:#9AA2D8;
}
.k-footer__bot nav{display:flex;gap:20px;flex-wrap:wrap}
.k-footer__bot a{color:#9AA2D8;text-decoration:none}
.k-footer__bot a:hover{color:#fff;text-decoration:underline}
.k-footer__bot b{color:#fff;font-weight:600}

@media (max-width:1180px){
  .k-footer__cols{grid-template-columns:1.6fr 1fr 1fr;gap:34px 30px}
  .k-footer__brand{grid-column:1/-1}
}
@media (max-width:760px){
  .k-footer__cols{grid-template-columns:1fr 1fr;gap:28px 20px;padding-block:44px 30px}
}
@media (max-width:520px){
  .k-footer__cols{grid-template-columns:1fr}
  .k-footer__lg img{width:58px;height:58px}
  .k-footer__lg b{font-size:17.5px}
  .k-footer__bot .container{flex-direction:column;align-items:flex-start;text-align:left}
}
/* === end footer === */

/* === TYPOGRAPHY :: build-type.py === */
:root{
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-head:'Cormorant Garamond',Georgia,'Times New Roman',serif;
}
body{font-family:var(--font);font-size:16px;letter-spacing:0}

/* Display faces. Cormorant runs light and small for its point size, so every
   heading gets more weight and a touch more size than the sans did. */
.k-banner h1,.k-banner h2,
.page-hero h1,
.k-head h2,
.dept__main h2,
.k-about__text h2,
.k-cta h2,
.donate h2,
.foot-card h2{
  font-family:var(--font-head);font-weight:600;letter-spacing:-.005em;
}
.k-banner h1,.k-banner h2{font-size:clamp(38px,5.4vw,66px);line-height:1.06;font-weight:700}
.page-hero h1{font-size:clamp(34px,5vw,56px);line-height:1.08;font-weight:700}
.k-head h2{font-size:clamp(30px,3.9vw,46px);line-height:1.12}
.dept__main h2{font-size:30px;line-height:1.18;font-weight:700}
.k-cta h2{font-size:clamp(24px,2.9vw,34px);line-height:1.2;font-weight:700}

/* Everything below display size stays in the sans. A light serif at 15px on a
   phone is where readability goes, and this site is read by patients' families
   on cheap handsets. */
.k-info__card h3,.k-spec__card h3,.k-scheme h3,.k-card h3,.k-leader h3,
.k-inst__item h3,.dept__unit h3,.side-card h2,.k-footer h4,.cov__item b,
.k-plan__lbl,.k-rate h3,.k-faq summary,.prose h3,.k-stat b,.k-plan b{
  font-family:var(--font);
}
.side-card h2{font-size:16px;font-weight:700}
.foot-card h2{font-family:var(--font);font-size:15.5px;font-weight:700}

/* body copy, matched to the reference measure */
.prose p,.dept__lead,.k-head p{font-size:16.5px;line-height:1.75}
.dept__lead{font-size:18px;line-height:1.7}
.steps li,.ticks li{font-size:15.5px;line-height:1.7}
@media (max-width:560px){
  .prose p,.k-head p{font-size:15.5px}
  .dept__lead{font-size:16.5px}
  .dept__main h2{font-size:25px}
}
/* === end typography === */

/* === NAV DROPDOWN :: build-nav.py === */
.k-nav__in{position:relative}
.k-drop{position:static;display:flex}
.k-drop>a svg{transition:transform .22s ease}
.k-drop:hover>a svg,.k-drop:focus-within>a svg{transform:rotate(180deg)}

.k-drop__menu{
  position:absolute;left:0;right:0;top:100%;z-index:80;
  margin:0;padding:16px;list-style:none;
  background:#fff;border-radius:0 0 var(--r) var(--r);
  box-shadow:0 26px 50px -24px rgba(11,19,80,.55);
  border-top:3px solid var(--saffron);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .2s ease,transform .22s ease,visibility .22s;
}
ul.k-drop__menu{display:grid;gap:4px}
.k-drop__menu--4{grid-template-columns:repeat(4,1fr)}
.k-drop__menu--5{grid-template-columns:repeat(5,1fr)}
.k-drop:hover>.k-drop__menu,
.k-drop:focus-within>.k-drop__menu{opacity:1;visibility:visible;transform:none}

.k-drop__menu a{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:center;
  padding:11px 12px;border-radius:10px;border-bottom:0;color:var(--ink);white-space:normal;
}
.k-drop__menu a:hover{background:var(--blue-50);border-bottom:0}
.k-drop__ic{width:38px;height:38px;flex:none;border-radius:10px;display:grid;place-items:center;
  background:var(--blue-50);color:var(--blue)}
.k-drop__menu a:hover .k-drop__ic{background:var(--blue);color:#fff}
.k-drop__ic svg{width:19px;height:19px;opacity:1}
.k-drop__menu b{display:block;font-size:13.5px;font-weight:600;color:var(--blue-deep);line-height:1.25}
.k-drop__menu small{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-3);line-height:1.35}

.k-drop__all{grid-column:1/-1;border-top:1px solid var(--line);margin-top:6px;padding-top:8px}
.k-drop__all a{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;
  grid-template-columns:none;font-size:13px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--saffron-deep)}
.k-drop__all a:hover{background:var(--saffron-50)}
.k-drop__all svg{width:15px;height:15px;opacity:1}

/* Our Trust: three columns of plain links, not icon rows */
.k-mega{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 32px}
.k-mega__col h4{margin:4px 0 10px;padding-bottom:8px;font-size:12px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--saffron-deep);
  border-bottom:1px solid var(--line)}
.k-mega__col ul{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.k-mega__col a{display:block;padding:8px 10px;border-radius:8px;border-bottom:0;
  font-size:13.5px;color:var(--ink-2);white-space:normal}
.k-mega__col a:hover{background:var(--blue-50);color:var(--blue-deep);border-bottom:0}
.k-mega__all{grid-column:1/-1;border-top:1px solid var(--line);margin-top:6px;padding-top:8px}
.k-mega__all a{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;
  border-bottom:0;font-size:13px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--saffron-deep)}
.k-mega__all a:hover{background:var(--saffron-50);border-bottom:0}
.k-mega__all svg{width:15px;height:15px;opacity:1}

.drawer__sub{font-size:13.5px;color:var(--ink-2);padding-left:26px!important;position:relative}
.drawer__sub::before{content:"";position:absolute;left:12px;top:50%;width:6px;height:1px;background:var(--saffron)}

@media (max-width:1240px){
  .k-nav a{padding:13px 6px;font-size:13.5px}
  .k-drop__menu--5{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:1000px){.k-drop__menu{display:none}}
/* === end nav dropdown === */

/* === SITEMAP === */
.smap{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 34px}
.smap__col h3{margin:0 0 12px;padding-bottom:9px;font-size:12px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--saffron-deep);
  border-bottom:1px solid var(--line)}
.smap__col ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.smap__col a{font-size:13.5px;color:var(--ink-2);text-decoration:none}
.smap__col a:hover{color:var(--blue);text-decoration:underline}
@media (max-width:980px){.smap{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.smap{grid-template-columns:1fr;gap:24px}}
/* === end sitemap === */

/* === VIDEO GALLERY === */
.vgal{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 24px}
.vgal__card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(16,42,67,.05);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.vgal__card:hover{transform:translateY(-3px);border-color:rgba(27,91,160,.35);
  box-shadow:0 14px 30px rgba(16,42,67,.12)}
.vgal__thumb{position:relative;aspect-ratio:16/9;margin:0;background:
  linear-gradient(135deg,var(--blue),var(--navy));display:grid;place-items:center;
  border:0;padding:0;width:100%;color:#fff;cursor:pointer;overflow:hidden}
.vgal__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vgal__thumb iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vgal__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.94);
  display:grid;place-items:center;box-shadow:0 6px 18px rgba(16,42,67,.3);
  transition:transform .25s ease,background .25s ease}
.vgal__play svg{width:26px;height:26px;color:var(--saffron-deep)}
.vgal__card:hover .vgal__play{transform:translate(-50%,-50%) scale(1.09);background:#fff}
.vgal__dur{position:absolute;right:9px;bottom:9px;font-size:11.5px;font-weight:600;
  color:#fff;background:rgba(10,30,52,.84);padding:2px 7px;border-radius:4px;
  font-variant-numeric:tabular-nums}
.vgal__tag{position:absolute;left:9px;top:9px;font-size:10.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--saffron);
  padding:3px 8px;border-radius:4px}
.vgal__meta{padding:15px 17px 17px;display:flex;flex-direction:column;gap:6px;flex:1}
.vgal__meta h3{margin:0;font-size:16.5px;line-height:1.3}
.vgal__meta p{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
/* empty slot: the shot list, before anything is filmed */
.vgal__card--slot{border-style:dashed;background:var(--tint);box-shadow:none}
.vgal__card--slot:hover{transform:none;box-shadow:none;border-color:var(--line)}
.vgal__card--slot .vgal__thumb{cursor:default;background:
  linear-gradient(135deg,rgba(27,91,160,.14),rgba(16,42,67,.2))}
.vgal__card--slot .vgal__play{background:rgba(255,255,255,.5);box-shadow:none}
.vgal__card--slot .vgal__play svg{color:var(--navy);opacity:.5}
.vgal__card--slot:hover .vgal__play{transform:translate(-50%,-50%)}
/* featured: first video spans two columns */
.vgal__card--feat{grid-column:span 2}
.vgal__card--feat .vgal__meta h3{font-size:21px}
.vgal__note{margin:22px 0 0;font-size:13px;color:var(--ink-2);text-align:center}
@media (max-width:980px){.vgal{grid-template-columns:1fr 1fr}
  .vgal__card--feat{grid-column:span 2}}
@media (max-width:620px){.vgal{grid-template-columns:1fr;gap:20px}
  .vgal__card--feat{grid-column:span 1}
  .vgal__card--feat .vgal__meta h3{font-size:18px}
  .vgal__play{width:48px;height:48px}.vgal__play svg{width:20px;height:20px}}
/* === end video gallery === */

/* a plan card with no figure: the big <b> is sized for "Rs 10", not a phrase */
.k-plan__ask{font-size:19px;line-height:1.25;color:var(--ink-2);font-weight:600}
@media (max-width:620px){.k-plan__ask{font-size:17px}}

/* === PAGE BLOCKS: timeline, facts, quote, callout, photo grid === */
.tline{list-style:none;margin:0;padding:0 0 0 30px;position:relative;display:grid;gap:26px}
.tline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(var(--saffron),rgba(27,91,160,.35))}
.tline li{position:relative}
.tline li::before{content:"";position:absolute;left:-30px;top:5px;width:16px;height:16px;
  border-radius:50%;background:#fff;border:3px solid var(--saffron)}
.tline b{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--saffron-deep);margin-bottom:3px}
.tline h3{margin:0 0 4px;font-size:17px}
.tline p{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-2)}

.facts{display:grid;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:#fff}
.facts__row{display:grid;grid-template-columns:minmax(150px,.42fr) 1fr;gap:18px;
  padding:15px 20px;border-bottom:1px solid var(--line)}
.facts__row:last-child{border-bottom:0}
.facts__row:nth-child(odd){background:var(--tint)}
.facts__row dt{margin:0;font-size:13.5px;font-weight:700;color:var(--navy)}
.facts__row dd{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-2)}
@media (max-width:620px){.facts__row{grid-template-columns:1fr;gap:4px}}

.pquote{margin:0;padding:30px 34px;border-radius:16px;background:var(--navy);color:#fff;
  position:relative;overflow:hidden}
.pquote::before{content:"\201C";position:absolute;right:18px;top:-18px;font-size:150px;
  font-family:Cormorant Garamond,serif;color:rgba(255,255,255,.12);line-height:1}
.pquote p{margin:0;font-family:Cormorant Garamond,serif;font-size:25px;line-height:1.45;
  font-style:italic;position:relative}
.pquote footer{margin-top:14px;font-size:13px;color:rgba(255,255,255,.72);
  letter-spacing:.04em}
@media (max-width:620px){.pquote{padding:22px 22px}.pquote p{font-size:20px}}

.callout{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;padding:22px 26px;
  border-radius:14px;border:1px solid rgba(240,138,34,.4);background:rgba(240,138,34,.08)}
.callout__ic{flex:none;width:46px;height:46px;border-radius:12px;background:var(--saffron);
  display:grid;place-items:center;color:#fff}
.callout__ic svg{width:24px;height:24px}
.callout div{flex:1 1 300px;min-width:0}
.callout h3{margin:0 0 4px;font-size:17px}
.callout p{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-2)}

.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.photos figure{margin:0;border-radius:12px;overflow:hidden;position:relative;background:var(--tint)}
.photos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;
  transition:transform .4s ease}
.photos figure:hover img{transform:scale(1.04)}
.photos figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 10px;
  font-size:12.5px;color:#fff;background:linear-gradient(transparent,rgba(10,30,52,.85))}
@media (max-width:860px){.photos{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.photos{grid-template-columns:1fr}}
/* === end page blocks === */

.section--tight{padding-top:0}

/* === PAGE IMAGE BAND === */
.pimg{margin:0;position:relative;border-radius:16px;overflow:hidden;background:var(--tint);
  box-shadow:0 10px 30px rgba(16,42,67,.1)}
.pimg img{display:block;width:100%;aspect-ratio:21/8;object-fit:cover}
.pimg--ph img{aspect-ratio:21/7;object-fit:contain;background:var(--tint)}
.pimg figcaption{position:absolute;left:0;right:0;bottom:0;padding:38px 22px 15px;
  color:#fff;font-size:13.5px;line-height:1.5;
  background:linear-gradient(transparent,rgba(10,30,52,.82))}
.pimg--ph figcaption{position:static;padding:12px 16px;color:var(--ink-2);background:none;
  border-top:1px solid var(--line);font-size:13px}
@media (max-width:620px){.pimg img{aspect-ratio:16/9}
  .pimg figcaption{padding:30px 15px 12px;font-size:12.5px}}
/* === end page image band === */

/* === IMAGE HERO === */
.page-hero--img{position:relative;padding:0;background:var(--navy);overflow:hidden}
.page-hero--img .ph__bg{position:absolute;inset:0}
.page-hero--img .ph__bg img{width:100%;height:100%;object-fit:cover;display:block}
.page-hero--img .ph__bg::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(10,30,52,.92) 0%,rgba(10,30,52,.55) 26%,transparent 52%),
    linear-gradient(100deg,rgba(10,30,52,.94) 0%,rgba(10,30,52,.88) 42%,
      rgba(10,30,52,.6) 72%,rgba(10,30,52,.5) 100%)}
.page-hero--img .container{position:relative;padding-top:60px;padding-bottom:62px}
.page-hero--img .ph__kicker{display:inline-flex;align-items:center;gap:7px;
  font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#fff;background:var(--saffron);padding:5px 11px;border-radius:999px;
  margin-bottom:14px}
.page-hero--img .ph__kicker svg{width:14px;height:14px}
.page-hero--img h1{max-width:19ch}
.page-hero--img p{color:#D4DAF5;max-width:58ch}
.ph__acts{display:flex;flex-wrap:wrap;gap:11px;margin-top:22px}
.ph__stats{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  margin-top:34px;border-top:1px solid rgba(255,255,255,.18)}
.ph__stat{padding:18px 20px 0}
.ph__stat b{display:block;font-family:Cormorant Garamond,serif;font-size:32px;
  line-height:1;color:#fff}
.ph__stat span{display:block;margin-top:5px;font-size:12.5px;line-height:1.45;
  color:#B9C2E8}
@media (max-width:820px){.page-hero--img .container{padding-top:44px;padding-bottom:46px}
  .ph__stats{grid-template-columns:1fr;gap:14px;margin-top:26px}
  .ph__stat{padding:14px 0 0;border-top:1px solid rgba(255,255,255,.12)}
  .ph__stat:first-child{border-top:0}
  .ph__stat b{font-size:26px}}
/* === end image hero === */

/* === QUICK ANSWER (AEO) === */
.qa{border:1px solid var(--line);border-left:4px solid var(--saffron);border-radius:12px;
  background:#fff;padding:22px 26px;box-shadow:0 1px 2px rgba(16,42,67,.05)}
.qa__q{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:12px;
  font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--saffron-deep)}
.qa__q svg{width:15px;height:15px}
.qa h2{margin:0 0 9px;font-size:21px;line-height:1.3}
.qa__a{margin:0;font-size:16px;line-height:1.68;color:var(--ink)}
.qa__facts{list-style:none;margin:16px 0 0;padding:14px 0 0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 22px;
  border-top:1px solid var(--line)}
.qa__facts li{display:flex;gap:8px;align-items:flex-start;font-size:14px;
  line-height:1.5;color:var(--ink-2)}
.qa__facts svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--blue)}
@media (max-width:620px){.qa{padding:18px 18px}.qa h2{font-size:18px}.qa__a{font-size:15px}}
/* === end quick answer === */

/* ===========================================================================
   TYPOGRAPHY SCALE
   Matched to the reference build at aliceblue-gull-675149.hostingersite.com,
   which uses the same two families we already load (Cormorant Garamond for
   display, Inter for text) but sets them larger: body copy 18px/1.7 against
   our 16.5px, headings roughly 15% up.

   Overrides live in one block at the end of the file so the change is one
   diff and can be lifted out again. Backup: style.css.bak-before-type-*.
   =========================================================================== */
html{font-size:17px}
body{font-size:1rem;line-height:1.7}

.prose p,.prose li{font-size:18px;line-height:1.72}
.prose--wide p{max-width:72ch}
h1{font-size:clamp(34px,5.2vw,56px);line-height:1.12}
.page-hero h1{font-size:clamp(34px,5.2vw,56px)}
.page-hero p{font-size:18px;line-height:1.68}
.section h2,.k-head h2{font-size:clamp(24px,2.6vw,30px);line-height:1.25;font-weight:600}
.k-head p{font-size:17px;line-height:1.65}
.k-kicker{font-size:12.5px;letter-spacing:.11em}
h3{font-size:19px;line-height:1.35}

.k-nav a,.k-drop>a{font-size:15px}
.k-drop__menu a b,.k-drop__menu li a b{font-size:14.5px}
.k-drop__menu small{font-size:13px}

.k-card h3,.k-info__card h3{font-size:18px}
.k-card p,.k-info__card p{font-size:15.5px;line-height:1.62}
.k-stat b{font-size:34px}
.k-stat p{font-size:14.5px;line-height:1.55}
.ticks li{font-size:17px;line-height:1.62}
.steps li{font-size:17px;line-height:1.66}

.qa h2{font-size:23px}
.qa__a{font-size:18px;line-height:1.7}
.qa__facts li{font-size:15px}

.faq summary,.k-faq summary{font-size:17px}
.faq p,.k-faq p{font-size:16.5px;line-height:1.7}

.facts__row dt{font-size:15px}
.facts__row dd{font-size:16px;line-height:1.65}
.tline h3{font-size:18.5px}
.tline p{font-size:16px;line-height:1.62}
.pquote p{font-size:28px}
.callout h3{font-size:18.5px}
.callout p{font-size:16px}
.photos figcaption,.pimg figcaption{font-size:14.5px}
.k-note{font-size:15px;line-height:1.6}
.crumbs{font-size:14px}
.btn{font-size:15px}
.btn--sm{font-size:14px}

@media (max-width:820px){
  html{font-size:16.5px}
  .prose p,.prose li{font-size:17px}
  .section h2,.k-head h2{font-size:clamp(22px,5.4vw,26px)}
  .qa__a{font-size:17px}
  .pquote p{font-size:22px}
}
@media (max-width:480px){
  html{font-size:16px}
  .prose p,.prose li{font-size:16.5px}
}
/* === end typography scale === */

/* === TOP SPACING ===
   The quick-answer block sat flush against the hero on any page that had no
   image band between them, so the card appeared welded to the navy. */
#quick-answer{padding-top:38px}
#quick-answer + .section{padding-top:14px}
@media (max-width:620px){#quick-answer{padding-top:26px}}

/* === MOTION ===
   Every element that gets hidden is also observed directly, so it receives
   .is-in itself. The earlier version hid descendants and tagged only their
   section, which left content permanently invisible wherever the section was
   not one the observer watched. Off entirely under prefers-reduced-motion,
   and main.js drops the js-anim class after 3s so nothing can be stranded. */
@media (prefers-reduced-motion:no-preference){
  .js-anim .rv{opacity:0;transform:translateY(16px);
    transition:opacity .6s cubic-bezier(.22,.61,.36,1),
               transform .6s cubic-bezier(.22,.61,.36,1)}
  .js-anim .rv.is-in{opacity:1;transform:none}
  .js-anim .rv.rv--d1{transition-delay:.07s}
  .js-anim .rv.rv--d2{transition-delay:.14s}
  .js-anim .rv.rv--d3{transition-delay:.21s}

  .k-card,.k-info__card,.facts__row,.callout,.photos figure{
    transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
  .k-card:hover,.k-info__card:hover{transform:translateY(-4px)}
  .btn{transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
  .btn:hover{transform:translateY(-2px)}
  .k-link{background-image:linear-gradient(var(--saffron),var(--saffron));
    background-size:0 1.5px;background-repeat:no-repeat;background-position:0 100%;
    transition:background-size .3s ease}
  .k-link:hover{background-size:100% 1.5px}
}
/* === end motion === */

/* === VIDEO LISTING CARDS ===
   The gallery is a listing now, so each card is a link to that film's own
   page rather than an inline player. */
a.vgal__card--link{text-decoration:none;color:inherit}
.vgal__card--link .vgal__thumb{display:grid;place-items:center;cursor:pointer}
.vgal__card--link .vgal__meta{display:flex}
.vgal__more{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:10px;
  font-size:14px;font-weight:600;color:var(--blue)}
.vgal__more svg{width:15px;height:15px;transition:transform .25s ease}
.vgal__card--link:hover .vgal__more svg{transform:translateX(4px)}
.vgal__card--link:focus-visible{outline:3px solid var(--saffron);outline-offset:3px}
.vgal--single{grid-template-columns:1fr}
.vgal--single .vgal__card--feat{grid-column:1}
.vgal--single .vgal__thumb{aspect-ratio:16/9}
@media (max-width:980px){.vgal--single .vgal__card--feat{grid-column:1}}
/* === end video listing === */

/* === SPLIT INTRO: image one side, boxes stacked the other ===
   The full-width band cropped a portrait photograph of a seven-storey
   building into a letterbox, which cut the building in half. In a column the
   photograph keeps its own shape and is actually legible, and the boxes read
   better stacked one per row than squeezed three across. */
.splitlay{display:grid;grid-template-columns:minmax(0,0.84fr) minmax(0,1fr);
  gap:34px;align-items:start}
.splitlay__media{margin:0;position:sticky;top:170px;border-radius:16px;overflow:hidden;
  background:var(--tint);box-shadow:0 10px 30px rgba(16,42,67,.1)}
/* no crop: the element takes the photograph's own ratio from its width and
   height attributes, which build-pageimage reads off the file itself */
.splitlay__media img{display:block;width:100%;height:auto;background:#fff}
.splitlay__media--ph img{background:var(--tint);padding:8px}
.splitlay__media figcaption{padding:12px 16px;font-size:14px;line-height:1.5;
  color:var(--ink-2);border-top:1px solid var(--line);background:#fff}
.splitlay__body{display:grid;gap:16px;min-width:0}
/* one box per row, whatever grid they came from */
.splitlay__body .k-cards,
.splitlay__body .k-info__grid{display:grid;grid-template-columns:1fr;gap:16px}
.splitlay__body .k-card,
.splitlay__body .k-info__card{width:100%}
.splitlay__head{margin-bottom:4px}
@media (max-width:980px){
  .splitlay{grid-template-columns:1fr;gap:24px}
  .splitlay__media{position:static;top:auto}
  .splitlay__media img{height:auto}
}
/* === end split intro === */
