:root{
  --ink:#1B2559;--ink-soft:#4A557F;--wave:#2F7BEF;--wave-deep:#1F5FC7;--sun:#FFC83D;--leaf:#5DB85C;--pink:#FF6FA3;
  --sky:#F4F8FF;--paper:#FFFFFF;--line:#DCE5F5;
  --r-lg:28px;--r-md:18px;--r-sm:12px;
  --shadow:0 3px 0 rgba(27,37,89,.12);
  --f-head:"Fredoka",system-ui,sans-serif;--f-body:"Figtree",system-ui,sans-serif;
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--sky);color:var(--ink);font:400 17px/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--wave-deep)}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:600;line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,5.4vw,4.1rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.7rem)}
h3{font-size:1.35rem}
p{margin:0 0 1em;max-width:68ch}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:99}

/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:18px;height:76px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex-shrink:0}
.brand img{height:56px;width:auto}
.brand span{font-family:var(--f-head);font-weight:600;font-size:1.25rem;line-height:1}
.brand small{display:block;font:500 .72rem var(--f-body);color:var(--ink-soft);margin-top:3px}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav a{font-weight:600;font-size:.95rem;color:var(--ink);text-decoration:none;padding:8px 12px;border-radius:999px}
.nav a:hover{background:var(--sky)}
.nav a[aria-current=page]{background:#E6EFFF;color:var(--wave-deep)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 1rem var(--f-body);padding:13px 22px;border-radius:999px;border:2px solid transparent;cursor:pointer;text-decoration:none;transition:transform .15s}
.btn:active{transform:translateY(1px)}
.btn-pay{background:var(--sun);color:var(--ink);box-shadow:0 3px 0 var(--sun-deep,#D9A21C)}
.btn-pay:hover{filter:brightness(1.05)}
.btn-blue{background:var(--wave);color:#fff;box-shadow:0 3px 0 var(--wave-deep)}
.btn-blue:hover{filter:brightness(1.08)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--wave)}
.top .btn{padding:10px 18px;font-size:.95rem}
.menu-btn{display:none;margin-left:auto;background:none;border:2px solid var(--line);border-radius:12px;padding:8px 10px;cursor:pointer}
.menu-btn svg{display:block}
@media (max-width:1060px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:12px 20px 20px;border-bottom:1px solid var(--line);gap:2px;margin:0}
  .nav.open{display:flex}
  .nav a{padding:12px 14px}
  .nav .btn{margin-top:8px}
}

/* hero */
.hero{background:var(--wave);color:#fff;position:relative;padding:64px 0 120px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.hero h1{color:#fff}
.hero p{font-size:1.15rem;color:#E4EEFF}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.hero .btn-ghost:hover{border-color:#fff}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:30px;padding:0;list-style:none;font-weight:600;color:#fff}
.hero-facts li{display:flex;align-items:center;gap:8px}
.hero-facts li::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--sun)}
.photos{position:relative;height:440px}
.photo{position:absolute;background:#fff;padding:10px 10px 34px;border-radius:6px;box-shadow:0 14px 30px rgba(10,30,90,.28)}
.photo img{width:100%;height:100%;object-fit:cover;border-radius:3px;background:#C9DAF8}
.photo.p1{width:62%;height:300px;left:0;top:30px;transform:rotate(-6deg)}
.photo.p2{width:58%;height:280px;right:0;top:0;transform:rotate(5deg)}
.photo.p3{width:52%;height:230px;left:22%;bottom:0;transform:rotate(-1.5deg)}
.waves{position:absolute;left:0;right:0;bottom:-1px;height:110px;pointer-events:none}
.waves svg{position:absolute;bottom:0;width:200%;height:100%}
.waves .w1{fill:var(--wave-soft,#7FB0F6);opacity:.6;animation:drift 18s linear infinite}
.waves .w2{fill:var(--sky);animation:drift 11s linear infinite reverse}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.waves svg{animation:none!important}html{scroll-behavior:auto}}
@media (max-width:860px){
  .hero{padding:40px 0 100px}
  .hero .wrap{grid-template-columns:1fr}
  .photos{height:320px}
  .photo.p1{height:210px}.photo.p2{height:200px}.photo.p3{height:170px}
}

/* page header (inner pages) */
.page-head{background:var(--wave);color:#fff;padding:48px 0 96px;position:relative;overflow:hidden}
.page-head h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.4rem)}
.page-head p{color:#E4EEFF;font-size:1.12rem;margin:0}
.page-head .waves{height:80px}

/* sections */
section.block{padding:72px 0}
section.white{background:#fff}
.lead{font-size:1.15rem;color:var(--ink-soft)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split.rev>:first-child{order:2}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:32px}.split.rev>:first-child{order:0}}
.pic{border-radius:var(--r-lg);overflow:hidden;background:#C9DAF8;aspect-ratio:4/3}
.pic img{width:100%;height:100%;object-fit:cover}
.head-row{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.head-row p{margin:0}

/* programs: each a different colour sticker */
.programs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.prog{border-radius:var(--r-lg);padding:26px 24px 28px;color:var(--ink);position:relative}
.prog .age{display:inline-block;font:600 .85rem var(--f-body);background:rgba(255,255,255,.7);padding:4px 12px;border-radius:999px;margin-bottom:14px}
.prog h3{font-size:1.5rem}
.prog p{font-size:.98rem;margin:0}
.prog.c-yellow{background:#FFE7A3}.prog.c-green{background:#CDEBC9}.prog.c-pink{background:#FFD3E3}.prog.c-blue{background:#CFE0FF}.prog.c-purple{background:#E2D8FF}.prog.c-orange{background:#FFD9BF}
@media (max-width:980px){.programs{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.programs{grid-template-columns:1fr}}

/* program detail rows */
.prog-row{display:grid;grid-template-columns:320px 1fr;gap:40px;padding:40px 0;border-top:2px dashed var(--line);align-items:start}
.prog-row:first-of-type{border-top:0}
.prog-row .pic{aspect-ratio:1/1}
.prog-row ul{columns:2;column-gap:28px;padding-left:20px;margin:0}
.prog-row li{margin-bottom:6px;break-inside:avoid}
@media (max-width:760px){.prog-row{grid-template-columns:1fr;gap:20px}.prog-row ul{columns:1}}

/* facilities */
.facilities{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 28px;list-style:none;padding:0;margin:0}
.facilities li{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.facilities .ic{flex:0 0 42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#E6EFFF;color:var(--wave-deep)}
.facilities strong{display:block;font-family:var(--f-head);font-weight:600;font-size:1.08rem}
.facilities span{font-size:.94rem;color:var(--ink-soft)}
@media (max-width:860px){.facilities{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.facilities{grid-template-columns:1fr}}

/* steps (real sequence) */
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:14px}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start}
.steps li::before{content:counter(s);width:44px;height:44px;border-radius:50%;background:var(--sun);display:grid;place-items:center;font:600 1.15rem var(--f-head)}
.steps strong{display:block}

/* gallery */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:220px;gap:14px}
.gallery .g{border-radius:var(--r-md);overflow:hidden;background:#C9DAF8}
.gallery .g:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover}
@media (max-width:700px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:160px}.gallery .g:first-child{grid-column:span 2;grid-row:span 1}}

/* CTA band */
.cta-band{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:44px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.cta-band h2{color:#fff;margin-bottom:.25em}
.cta-band p{color:#C8D0EE;margin:0}
.cta-band .ctas{display:flex;gap:12px;flex-wrap:wrap}

/* forms */
.form-card{background:#fff;border-radius:var(--r-lg);padding:34px;border:1px solid var(--line)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.form-grid .full{grid-column:1/-1}
@media (max-width:620px){.form-grid{grid-template-columns:1fr}.form-card{padding:22px}}
label{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px}
label .opt{font-weight:400;color:var(--ink-soft)}
input,select,textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--sky);border:2px solid var(--line);border-radius:var(--r-sm);padding:12px 14px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--wave);background:#fff}
textarea{min-height:110px;resize:vertical}
.hp{position:absolute;left:-9999px}
.form-note{font-size:.9rem;color:var(--ink-soft);margin-top:12px}
.alert{border-radius:var(--r-sm);padding:14px 16px;margin-top:16px;font-weight:600;display:none}
.alert.ok{display:block;background:#E3F5E1;color:#21622A}
.alert.err{display:block;background:#FFE5EC;color:#9A1D44}

/* info list */
.info-list{list-style:none;padding:0;margin:0;display:grid;gap:18px}
.info-list li{display:flex;gap:14px}
.info-list .ic{flex:0 0 44px;height:44px;border-radius:14px;background:#FFF1C7;display:grid;place-items:center}
.info-list strong{display:block;font-family:var(--f-head);font-weight:600}
.map{border:0;width:100%;height:360px;border-radius:var(--r-lg);display:block}

/* payment */
.pay-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:start}
@media (max-width:900px){.pay-layout{grid-template-columns:1fr}}
.methods{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.methods{grid-template-columns:1fr}}
.method{position:relative}
.method input{position:absolute;opacity:0;pointer-events:none}
.method label{display:flex;gap:12px;align-items:center;margin:0;padding:14px 16px;border:2px solid var(--line);border-radius:var(--r-md);background:#fff;cursor:pointer;font-weight:600}
.method label small{display:block;font-weight:400;color:var(--ink-soft);font-size:.84rem}
.method .dot{flex:0 0 20px;height:20px;border-radius:50%;border:2px solid var(--line)}
.method input:checked+label{border-color:var(--wave);background:#F0F6FF}
.method input:checked+label .dot{border:6px solid var(--wave)}
.method input:focus-visible+label{outline:3px solid var(--sun);outline-offset:2px}
.amount-wrap{position:relative}
.amount-wrap span{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-weight:700}
.amount-wrap input{padding-left:32px;font-size:1.25rem;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{border:2px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;font:600 .9rem var(--f-body);cursor:pointer;color:var(--ink)}
.chip:hover{border-color:var(--wave)}
.side-card{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:28px}
.side-card h3{color:#fff}
.side-card p,.side-card li{color:#C8D0EE;font-size:.96rem}
.side-card ul{padding-left:18px;margin:0}
.upi-box{display:none;margin-top:22px;background:#FFF8DF;border:2px dashed #E9B92C;border-radius:var(--r-md);padding:22px}
.upi-box.show{display:block}
.upi-inner{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:center}
@media (max-width:560px){.upi-inner{grid-template-columns:1fr}}
#upiQr{background:#fff;padding:10px;border-radius:12px;width:200px;height:200px}
#upiQr img,#upiQr canvas{width:100%!important;height:auto!important}
.upi-id{font:700 1.1rem var(--f-body);background:#fff;border-radius:10px;padding:8px 12px;display:inline-block;margin:4px 0 10px;word-break:break-all}
.secure{display:flex;gap:8px;align-items:center;font-size:.88rem;color:var(--ink-soft);margin-top:12px}

/* status page */
.status-card{max-width:560px;margin:0 auto;text-align:center;background:#fff;border-radius:var(--r-lg);padding:44px 30px;border:1px solid var(--line)}
.status-ic{width:76px;height:76px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;font-size:2.2rem;color:#fff}
.status-ic.ok{background:var(--leaf)}.status-ic.fail{background:var(--pink)}.status-ic.wait{background:var(--sun);color:var(--ink)}
.status-card table{margin:20px auto;text-align:left;border-collapse:collapse}
.status-card td{padding:6px 12px;border-bottom:1px solid var(--line)}
.status-card td:first-child{color:var(--ink-soft)}

/* footer */
footer{background:var(--ink);color:#C8D0EE;margin-top:0;padding:60px 0 28px;font-size:.95rem}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px}
footer h4{color:#fff;font-size:1.1rem}
footer a{color:#fff;text-decoration:none}
footer a:hover{text-decoration:underline}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
footer .logo-f{background:#fff;border-radius:16px;padding:8px;display:inline-block;margin-bottom:12px}
footer .logo-f img{height:56px}
footer .base{border-top:1px solid #33407A;margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.88rem}
@media (max-width:860px){footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer .cols{grid-template-columns:1fr}}

/* floating whatsapp/pay on mobile */
.mobile-bar{display:none}
@media (max-width:700px){
  .mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fff;border-top:1px solid var(--line);padding:10px 12px;gap:10px}
  .mobile-bar .btn{flex:1;padding:12px}
  body{padding-bottom:70px}
}
.img-missing{background:linear-gradient(135deg,#CFE0FF,#FFE7A3)}

/* ---- v3 additions ---- */
.btn-wide{width:100%;margin-top:20px}.btn-big{font-size:1.1rem}
.mt{margin-top:22px}.m0{margin:0}.small{font-size:.9rem;margin:10px 0 0}
.form-title{font-size:1.7rem}
.age-pill{display:inline-block;background:#FFF1C7;padding:4px 12px;border-radius:999px;font-weight:600;font-size:.85rem;margin-bottom:10px}
.small-h{font-size:1.1rem;margin-top:18px}
.utr-row{display:flex;gap:10px;flex-wrap:wrap}.utr-row input{flex:1;min-width:200px}
.split.top{align-items:start}.split.no-media{grid-template-columns:1fr}
.split .steps{margin:20px 0 28px}
.facilities{margin-top:24px}.gallery{margin-top:24px}
.programs.n3{grid-template-columns:repeat(3,1fr)}.programs.n2{grid-template-columns:repeat(2,1fr)}
@media (max-width:980px){.programs.n3{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.programs.n3,.programs.n2{grid-template-columns:1fr}}
.ph{display:block;width:100%;height:100%;min-height:120px;background:linear-gradient(135deg,#CFE0FF,#FFE7A3)}
.prose>*:last-child{margin-bottom:0}.prose ul,.prose ol{padding-left:22px}.prose li{margin-bottom:6px}
.prose h3{margin-top:22px}.split .prose{margin-bottom:18px}
.legal{max-width:760px}.legal h2{font-size:1.5rem;margin-top:34px}.legal h2:first-child{margin-top:0}.legal p,.legal li{color:var(--ink-soft)}.legal strong{color:var(--ink)}
.vwrap{display:block;position:relative;width:100%;aspect-ratio:16/9;max-width:100%}
.vwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pic.is-video,.g.is-video{aspect-ratio:16/9;background:#000}
.pic video,.g video,.photo video,.video-frame video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.video-frame{border-radius:var(--r-lg);overflow:hidden;background:#000;margin-top:20px;max-width:960px}
.video-frame video{object-fit:contain;aspect-ratio:16/9;height:auto}
.gallery figure{margin:0;position:relative}
.gallery figcaption{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);color:var(--ink);font-size:.82rem;font-weight:600;padding:4px 10px;border-radius:999px;max-width:calc(100% - 20px)}
.gallery .g.is-video figcaption{bottom:auto;top:10px}
.photos-1 .photo.p2{width:80%;height:360px;left:10%;top:20px}
.photos-2 .photo.p2{top:0}.photos-2 .photo.p1{top:120px}
/* testimonials */
.tgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:28px}
.tcard{margin:0;background:var(--sky);border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;gap:16px}
section.block:not(.white) .tcard{background:#fff}
.tcard blockquote{margin:0;font-size:1.06rem;line-height:1.6;flex:1}
.tcard blockquote::before{content:"\201C";display:block;font:600 3rem/0.6 var(--f-head);color:var(--wave);margin-bottom:10px}
.tcard figcaption{display:flex;align-items:center;gap:12px;font-size:.92rem;color:var(--ink-soft)}
.tcard figcaption strong{display:block;color:var(--ink);font-family:var(--f-head);font-weight:600;font-size:1.05rem}
.av{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:0 0 48px}
.av-i{display:grid;place-items:center;background:var(--sun);color:var(--ink);font:600 1.2rem var(--f-head)}
.stars{color:#F5A623;letter-spacing:2px;font-size:1.05rem}.stars .off{color:#D5DCEB}
/* footer legal */
.legal-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:34px;font-size:.9rem}
.legal-links a{color:#C8D0EE}
footer .base{margin-top:18px}
.wordmark{font-family:var(--f-head);font-weight:600;font-size:1.3rem;color:var(--ink)}
footer .logo-f .wordmark{font-size:1.1rem}
.wa-float{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:45;width:56px;height:56px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.2)}
@media (max-width:700px){.wa-float{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}

/* gallery grid layout + lightbox */
.head-row+.lead{margin-top:-18px}
.gallery.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-rows:220px}
.gallery.grid .g:first-child{grid-row:auto;grid-column:auto}
.gallery.grid .g.is-video{grid-column:span 2;grid-row:span 2}
@media (max-width:700px){.gallery.grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.gallery.grid .g.is-video{grid-column:1/-1;grid-row:span 1;aspect-ratio:16/9;height:auto}}
.g[data-full]{cursor:zoom-in}
.g[data-full] img{transition:transform .25s}.g[data-full]:hover img{transform:scale(1.04)}
.lb{position:fixed;inset:0;z-index:100;background:rgba(10,15,40,.92);display:grid;place-items:center;padding:56px 16px}
.lb img{max-width:min(1100px,100%);max-height:calc(100vh - 140px);border-radius:12px;object-fit:contain}
.lb p{color:#fff;text-align:center;margin:12px auto 0;font-weight:600}
.lb button{position:absolute;background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:999px;width:48px;height:48px;font-size:1.5rem;cursor:pointer}
.lb button:hover{background:rgba(255,255,255,.28)}
.lb .x{top:max(14px,env(safe-area-inset-top,0px));right:14px}.lb .pv{left:12px;top:50%}.lb .nx{right:12px;top:50%}
@media (prefers-reduced-motion:reduce){.g[data-full] img{transition:none}}
