:root{
  --teal:#16b3a7;
  --teal-dark:#0e8a80;
  --coral:#ff6b6b;
  --sun:#ffd23f;
  --pink:#ff85c1;
  --navy:#0b2a3b;
  --cream:#fff8ef;
  --ink:#1b2330;
  --muted:#5a6675;
  --shadow:0 18px 40px -18px rgba(11,42,59,.35);
  --radius:22px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Nunito","Quicksand",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--teal-dark);text-decoration:none}
a:hover{color:var(--coral)}
h1,h2,h3,h4{font-family:"Fredoka","Quicksand",sans-serif;font-weight:700;letter-spacing:-.01em;color:var(--navy);line-height:1.1;margin:0 0 .6em}
h1{font-size:clamp(2.2rem,5vw,4rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.6rem)}
h3{font-size:1.35rem}
.container{max-width:1180px;margin:0 auto;padding:0 22px}

/* NAV */
.nav{
  position:sticky;top:0;z-index:50;background:rgba(255,248,239,.92);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid rgba(11,42,59,.06);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;max-width:1280px;margin:0 auto;gap:18px}
.brand{display:flex;align-items:center;gap:12px;font-family:"Fredoka",sans-serif;font-weight:700;color:var(--navy);font-size:1.05rem}
.brand img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--navy);box-shadow:var(--shadow)}
.brand b{color:var(--coral)}
.nav-links{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.nav-links a{color:var(--navy);font-weight:600;padding:8px 12px;border-radius:999px;font-size:.95rem}
.nav-links a:hover{background:var(--sun);color:var(--navy)}
.nav-links a.cta{background:var(--coral);color:#fff;padding:10px 18px}
.nav-links a.cta:hover{background:var(--navy);color:#fff}
.menu-toggle{display:none;background:none;border:0;font-size:1.6rem;color:var(--navy);cursor:pointer}

/* HERO */
.hero{
  position:relative;overflow:hidden;
  padding:90px 0 120px;
  background:
    radial-gradient(1200px 500px at 80% -10%,rgba(255,210,63,.55),transparent 60%),
    radial-gradient(900px 600px at -10% 110%,rgba(22,179,167,.35),transparent 60%),
    linear-gradient(180deg,#fff8ef 0%,#fff2e0 100%);
}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:50px;align-items:center}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;border:1px solid rgba(11,42,59,.08);
  padding:8px 14px;border-radius:999px;font-weight:700;font-size:.85rem;
  color:var(--coral);margin-bottom:18px;box-shadow:var(--shadow)
}
.hero h1 span{color:var(--coral)}
.hero p.lead{font-size:1.15rem;color:var(--muted);max-width:540px;margin:0 0 28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:999px;font-weight:700;
  background:var(--coral);color:#fff;border:0;cursor:pointer;
  box-shadow:var(--shadow);transition:transform .15s ease, background .2s
}
.btn:hover{transform:translateY(-2px);background:var(--navy);color:#fff}
.btn.outline{background:transparent;color:var(--navy);border:2px solid var(--navy);box-shadow:none}
.btn.outline:hover{background:var(--navy);color:#fff}
.btn.sun{background:var(--sun);color:var(--navy)}
.btn.sun:hover{background:var(--navy);color:var(--sun)}
.hero-art{position:relative}
.hero-art img.photo{
  border-radius:32px;box-shadow:var(--shadow);
  border:6px solid #fff;transform:rotate(2deg);
  aspect-ratio:2/1;object-fit:contain;width:100%;
  background:#9fe3dc;display:block
}
.float-badge{
  position:absolute;background:#fff;border-radius:18px;padding:14px 18px;
  box-shadow:var(--shadow);font-weight:700;display:flex;align-items:center;gap:10px
}
.float-badge .dot{width:10px;height:10px;border-radius:50%}
.fb-1{top:-18px;left:-18px;color:var(--teal-dark)}
.fb-1 .dot{background:var(--teal)}
.fb-2{bottom:-18px;right:-12px;color:var(--coral)}
.fb-2 .dot{background:var(--coral)}

/* TEASER */
.teaser-section{
  position:relative;overflow:hidden;
  padding:80px 0 110px;
  background:
    radial-gradient(800px 400px at 90% 10%,rgba(255,210,63,.35),transparent 60%),
    radial-gradient(700px 500px at -5% 90%,rgba(22,179,167,.25),transparent 60%),
    linear-gradient(180deg,var(--cream) 0%,#fff2e0 100%);
}
.teaser-section .section-head{margin-bottom:40px}
.teaser-blob{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55;pointer-events:none;z-index:0}
.teaser-blob-1{width:120px;height:120px;background:var(--coral);top:60px;left:8%;opacity:.18;animation:float 7s ease-in-out infinite}
.teaser-blob-2{width:80px;height:80px;background:var(--teal);bottom:80px;right:10%;opacity:.22;animation:float 9s ease-in-out infinite reverse}
.teaser-blob-3{width:60px;height:60px;background:var(--sun);top:40%;right:6%;opacity:.35;animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
.teaser-frame{position:relative;max-width:920px;margin:0 auto;z-index:1}
.teaser-video{
  position:relative;border-radius:28px;overflow:hidden;background:var(--navy);
  aspect-ratio:16/9;border:6px solid #fff;
  box-shadow:0 40px 80px -30px rgba(11,42,59,.55), 0 0 0 1px rgba(11,42,59,.06);
  transform:rotate(-1deg);transition:transform .4s ease;
}
.teaser-frame:hover .teaser-video{transform:rotate(0deg) scale(1.01)}
.teaser-video video{width:100%;height:100%;display:block;object-fit:cover}
.teaser-frame .float-badge{z-index:3}
.tb-1{top:18px;left:18px;color:var(--teal-dark);transform:rotate(-3deg)}
.tb-1 .dot{background:var(--teal)}
.tb-2{bottom:18px;right:18px;color:var(--coral);transform:rotate(2deg)}
.tb-2 .dot{background:var(--coral)}
@media (max-width:780px){
  .teaser-section{padding:60px 0 80px}
  .teaser-video{transform:none;border-width:4px;border-radius:20px}
  .tb-1{top:10px;left:10px;font-size:.8rem;padding:8px 12px}
  .tb-2{bottom:10px;right:10px;font-size:.8rem;padding:8px 12px}
}

/* MARQUEE */
.marquee{background:var(--navy);color:#fff;overflow:hidden;padding:14px 0;font-family:"Fredoka",sans-serif;letter-spacing:.04em}
.marquee-track{display:flex;gap:60px;animation:scroll 30s linear infinite;white-space:nowrap}
.marquee span{font-size:1.1rem}
.marquee span::before{content:"★ ";color:var(--sun)}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTIONS */
section{padding:90px 0}
.section-head{text-align:center;max-width:680px;margin:0 auto 50px}
.section-head .kicker{color:var(--coral);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;margin-bottom:12px;display:inline-block}
.section-head p{color:var(--muted);font-size:1.05rem}

/* PROGRAM CARDS */
.programs{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{
  background:#fff;border-radius:var(--radius);padding:26px;
  box-shadow:var(--shadow);border:1px solid rgba(11,42,59,.05);
  transition:transform .2s ease, box-shadow .2s ease;
  position:relative;overflow:hidden;display:flex;flex-direction:column
}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -20px rgba(11,42,59,.4)}
.card .ribbon{
  position:absolute;top:18px;right:-46px;transform:rotate(35deg);
  background:var(--sun);color:var(--navy);font-weight:800;font-size:.7rem;
  padding:6px 50px;letter-spacing:.1em
}
.card .icon-wrap{
  width:72px;height:72px;border-radius:20px;display:grid;place-items:center;
  margin-bottom:16px;
}
.card .icon-wrap img{width:48px;height:48px;object-fit:contain}
.card.c1 .icon-wrap{background:#ffe9b3}
.card.c2 .icon-wrap{background:#cff0ec}
.card.c3 .icon-wrap{background:#ffd7e6}
.card.c4 .icon-wrap{background:#ffd0c6}
.card h3{margin-bottom:6px}
.card .age{font-weight:700;color:var(--coral);font-size:.9rem;margin-bottom:10px}
.card p{color:var(--muted);font-size:.95rem;flex:1}
.card a.more{margin-top:14px;font-weight:700;color:var(--navy);display:inline-flex;align-items:center;gap:6px}
.card a.more::after{content:"→";transition:transform .2s}
.card a.more:hover::after{transform:translateX(4px)}

/* FEATURES */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feature{
  background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);
  border:1px solid rgba(11,42,59,.05);text-align:left
}
.feature .icon{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;background:var(--cream);margin-bottom:14px}
.feature .icon img{width:42px;height:42px;object-fit:contain}
.feature h3{font-size:1.1rem}
.feature p{color:var(--muted);font-size:.95rem;margin:0}

/* ABOUT split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.split img{border-radius:24px;box-shadow:var(--shadow);width:100%}
.split .badge{display:inline-block;background:var(--teal);color:#fff;border-radius:999px;padding:6px 14px;font-weight:700;font-size:.8rem;margin-bottom:12px}
.split ul{list-style:none;padding:0;margin:18px 0 0}
.split ul li{padding:10px 0 10px 32px;position:relative;color:var(--muted)}
.split ul li::before{content:"✓";position:absolute;left:0;top:8px;background:var(--sun);color:var(--navy);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.8rem}

/* ICON MOSAIC (replaces photo in why section) */
.icon-mosaic{
  position:relative;aspect-ratio:1/1;border-radius:28px;
  background:
    radial-gradient(circle at 30% 20%,rgba(255,210,63,.4),transparent 50%),
    radial-gradient(circle at 80% 80%,rgba(255,107,107,.35),transparent 55%),
    url("/assets/img/pattern.png") center/180px repeat,
    linear-gradient(135deg,#cff0ec 0%,#ffe9b3 100%);
  box-shadow:var(--shadow);overflow:hidden;
  display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);
  gap:14px;padding:22px;
}
.icon-mosaic .mosaic-tile{
  background:#fff;border-radius:18px;display:grid;place-items:center;
  box-shadow:0 8px 18px -10px rgba(11,42,59,.35);
  transition:transform .3s ease;
  border:2px solid rgba(255,255,255,.8);
}
.icon-mosaic .mosaic-tile:hover{transform:scale(1.08) rotate(-3deg)}
.icon-mosaic .mosaic-tile img{width:60%;height:60%;object-fit:contain}
.icon-mosaic .t1{background:#ffe9b3;transform:rotate(-4deg)}
.icon-mosaic .t2{background:#ffd7e6;transform:rotate(3deg)}
.icon-mosaic .t3{background:#cff0ec;transform:rotate(-2deg)}
.icon-mosaic .t4{background:#ffd0c6;transform:rotate(4deg)}
.icon-mosaic .t5{background:#fff;transform:rotate(-3deg) scale(1.05);z-index:2;box-shadow:0 14px 28px -12px rgba(11,42,59,.45)}
.icon-mosaic .t6{background:#ffe9b3;transform:rotate(2deg)}
.icon-mosaic .t7{background:#cff0ec;transform:rotate(-3deg)}
.icon-mosaic .t8{background:#ffd7e6;transform:rotate(4deg)}
.icon-mosaic .t9{background:#ffd0c6;transform:rotate(-2deg)}
@media (max-width:780px){.icon-mosaic{aspect-ratio:auto;padding:18px;gap:10px}}

/* CTA BAND */
.cta-band{
  background:linear-gradient(120deg,var(--coral),#ff9a6b);
  color:#fff;border-radius:32px;padding:60px 50px;text-align:center;
  position:relative;overflow:hidden;box-shadow:var(--shadow)
}
.cta-band::before,.cta-band::after{
  content:"";position:absolute;border-radius:50%;opacity:.25;
}
.cta-band::before{width:240px;height:240px;background:var(--sun);top:-90px;left:-60px}
.cta-band::after{width:280px;height:280px;background:var(--teal);bottom:-120px;right:-80px}
.cta-band h2{color:#fff;position:relative}
.cta-band p{color:#fff;opacity:.95;position:relative;max-width:600px;margin:0 auto 24px}
.cta-band .btn{position:relative;background:#fff;color:var(--coral)}
.cta-band .btn:hover{background:var(--navy);color:#fff}

/* INFO BLOCKS (program detail) */
.detail-hero{
  position:relative;padding:90px 0 60px;
  background:linear-gradient(180deg,#fff7e1,var(--cream))
}
.detail-hero h1{margin-bottom:6px}
.detail-hero .age{color:var(--coral);font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:.85rem}
.detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
.activity-block{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);margin-bottom:18px}
.activity-block h3{color:var(--coral);font-size:1rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{background:var(--cream);border:1px solid rgba(11,42,59,.08);padding:6px 14px;border-radius:999px;font-size:.9rem;font-weight:600;color:var(--navy)}
.info-card{background:var(--navy);color:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.info-card h3{color:var(--sun)}
.info-card .row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.info-card .row:last-child{border-bottom:0}
.info-card .row span:first-child{opacity:.7}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.contact-card{background:#fff;border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}
.contact-card h3{color:var(--coral);text-transform:uppercase;letter-spacing:.1em;font-size:.9rem}
.contact-card .big{font-size:1.4rem;font-weight:700;color:var(--navy);margin:8px 0}
.map-embed{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);height:340px}
.map-embed iframe{width:100%;height:100%;border:0}

/* FOOTER */
footer{background:var(--navy);color:#cfd9e2;padding:60px 0 30px;margin-top:80px}
footer .ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
footer h4{color:#fff;font-size:1rem;margin-bottom:14px}
footer a{color:#cfd9e2;display:block;padding:4px 0}
footer a:hover{color:var(--sun)}
.copyright{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);text-align:center;color:#8da3b6;font-size:.85rem}

@media (max-width: 960px){
  .programs{grid-template-columns:repeat(2,1fr)}
  .features{grid-template-columns:1fr}
  .hero-grid,.split,.detail-grid,.contact-grid{grid-template-columns:1fr}
  .footer .ft-grid{grid-template-columns:1fr 1fr}
  .menu-toggle{display:block}
  .nav-links{display:none;position:absolute;top:64px;left:14px;right:14px;background:#fff;border-radius:18px;padding:14px;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px}
  .hero{padding:60px 0 80px}
  section{padding:60px 0}
  .cta-band{padding:40px 24px}
}
@media (max-width:560px){
  .programs{grid-template-columns:1fr}
  footer .ft-grid{grid-template-columns:1fr}
}
