:root {
    --cream:#FFF7EF; --yellow:#FFD45A; --coral:#FF7F6E; --sage:#8DB68A;
    --sky:#9CCEF2; --teal:#63C1BE; --navy:#22314D; --peach:#FFCBA4;
    --mint:#C7EAD9; --lavender:#DDB7E6; --sand:#E8DCC8; --gray:#B7AFA3;
  }
  * { box-sizing:border-box; margin:0; padding:0; }
  body { font-family:'Poppins',sans-serif; color:var(--navy); background:var(--cream); line-height:1.6; }
  h1,h2,h3,h4 { font-family:'Baloo 2',sans-serif; font-weight:700; }
  img { max-width:100%; display:block; }
  a { color:inherit; text-decoration:none; }
  .container { max-width:1140px; margin:0 auto; padding:0 24px; }
  .eyebrow { font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--sage); font-weight:600; margin-bottom:8px; }
  .btn { display:inline-block; font-family:'Poppins',sans-serif; font-weight:600; font-size:16px; padding:14px 28px; border-radius:999px; border:none; cursor:pointer; }
  .btn-primary { background:var(--coral); color:white; }
  .btn-ghost { background:transparent; color:white; border:2px solid white; }
  .btn-ghost-navy { background:transparent; color:var(--navy); border:2px solid var(--navy); }
  section { padding:72px 0; }

  /* HEADER */
  header { background:var(--cream); padding:20px 0; position:sticky; top:0; z-index:10; border-bottom:1px solid rgba(34,49,77,0.08); }
  header .container { display:flex; align-items:center; justify-content:space-between; }
  .logo img { height:38px; }
  nav ul { display:flex; gap:32px; list-style:none; }
  nav a { font-weight:500; font-size:15px; }
  .header-actions { display:flex; gap:16px; align-items:center; }
  .menu-toggle { display:none; background:none; border:none; font-size:26px; color:var(--navy); cursor:pointer; }

  /* HERO */
  .hero { background:var(--peach); padding:80px 0; }
  .hero .container { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
  .hero h1 { font-size:52px; line-height:1.1; margin-bottom:20px; }
  .hero p.sub { font-size:18px; color:var(--navy); opacity:0.8; margin-bottom:28px; max-width:440px; }
  .hero .cta-row { display:flex; gap:16px; }
  .hero-img { border-radius:28px; overflow:hidden; }

  /* ABOUT */
  .about .container { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
  .about h2 { font-size:36px; margin-bottom:16px; }
  .about p { margin-bottom:16px; color:#444; }
  .about-img { border-radius:24px; overflow:hidden; }

  /* PROGRAMS */
  .programs { background:white; }
  .section-head { text-align:center; max-width:600px; margin:0 auto 48px; }
  .section-head h2 { font-size:36px; margin-bottom:12px; }
  .program-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .program-card { border-radius:24px; padding:28px 22px; box-shadow:0px 8px 24px rgba(34,49,77,0.08); text-align:left; background:white; border-top:6px solid var(--sage); }
  .program-card .badge-dot { width:44px; height:44px; border-radius:50%; margin-bottom:14px; }
  .program-card h3 { font-size:20px; margin-bottom:4px; }
  .program-card .age { color:var(--gray); font-size:13px; margin-bottom:10px; }
  .program-card p { font-size:14px; color:#555; }

  /* GALLERY */
  .gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:140px; gap:12px; }
  .gallery-grid img { width:100%; height:100%; object-fit:cover; border-radius:16px; }
  .gallery-grid > div:nth-child(1) { grid-row:span 2; grid-column:span 2; }

  /* TESTIMONIALS */
  .testimonials { background:var(--mint); }
  .testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .t-card { background:white; border-radius:24px; padding:28px; }
  .t-card .quote-mark { font-family:'Baloo 2',sans-serif; font-size:40px; color:var(--coral); }
  .t-card p { font-size:15px; margin:8px 0 16px; }
  .t-card .attribution { font-weight:600; font-size:14px; }

  /* ENROLLMENT CTA */
  .enrollment { background:var(--navy); color:var(--cream); text-align:center; }
  .enrollment h2 { color:var(--cream); font-size:36px; margin-bottom:12px; }
  .enrollment p { max-width:500px; margin:0 auto 28px; opacity:0.85; }

  /* FAQ */
  .faq-item { border-bottom:1px solid var(--sand); padding:20px 0; }
  .faq-item summary { font-weight:600; font-size:18px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; }
  .faq-item summary::-webkit-details-marker { display:none; }
  .faq-item summary::after { content:'+'; font-size:22px; color:var(--sage); }
  .faq-item[open] summary::after { content:'–'; }
  .faq-item p { margin-top:12px; color:#555; font-size:15px; }

  /* CONTACT */
  .contact { background:white; }
  .contact .container { display:grid; grid-template-columns:1fr 1fr; gap:56px; }
  .contact form { display:flex; flex-direction:column; gap:14px; }
  .contact input, .contact textarea { padding:14px 16px; border-radius:14px; border:1px solid var(--sand); font-family:'Poppins',sans-serif; font-size:15px; }
  .contact-info div { margin-bottom:20px; }
  .contact-info .label { font-weight:600; font-size:13px; text-transform:uppercase; color:var(--sage); }

  /* FOOTER */
  footer { background:var(--navy); color:var(--cream); padding:56px 0 24px; }
  .footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px; margin-bottom:32px; }
  .footer-grid h4 { color:var(--cream); font-size:16px; margin-bottom:14px; }
  .footer-grid ul { list-style:none; }
  .footer-grid li { margin-bottom:8px; font-size:14px; opacity:0.85; }
  .footer-bottom { border-top:1px solid rgba(255,247,239,0.2); padding-top:20px; display:flex; justify-content:space-between; font-size:13px; opacity:0.7; }

  /* MOBILE */
  @media (max-width: 860px) {
    .header-actions .btn { display:none; }
    .header-actions .btn.mobile-visible { display:inline-block; }
    .menu-toggle { display:block; }
    nav { display:none; position:absolute; top:100%; left:0; right:0; background:var(--cream); box-shadow:0 12px 24px rgba(34,49,77,0.12); }
    nav.nav-open { display:block; }
    nav ul { flex-direction:column; gap:0; padding:8px 24px 20px; }
    nav ul li { border-bottom:1px solid rgba(34,49,77,0.08); }
    nav a { display:block; padding:14px 0; font-size:17px; }
    section { padding:48px 0; }
    .hero { padding:48px 0; }
    .hero .container, .about .container, .contact .container { grid-template-columns:1fr; }
    .hero .container > div:first-child { order:1; }
    .hero-img, .about-img { order:2; }
    .hero h1 { font-size:32px; }
    .hero p.sub { font-size:16px; }
    .btn { padding:13px 22px; font-size:15px; }
    .cta-row { flex-wrap:wrap; }
    .program-grid { grid-template-columns:1fr; }
    .testimonial-grid { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr; gap:24px; }
    .gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:110px; }
    .footer-bottom { flex-direction:column; gap:8px; text-align:center; }
    table.rate-table { display:block; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch; }
    .value-pillars { grid-template-columns:repeat(2,1fr); }
    .steps-list li { gap:12px; }
  }
  @media (max-width: 480px) {
    .container { padding:0 16px; }
    .hero h1 { font-size:28px; }
    .page-hero h1 { font-size:30px; }
    .gallery-grid { grid-template-columns:1fr 1fr; }
    .gallery-grid > div:nth-child(1) { grid-column:span 2; grid-row:span 1; }
  }
/* ---------- Whimsy: decorative background illustrations ---------- */
.hero, .page-hero, footer { position:relative; overflow:hidden; }
.hero .container, .page-hero .container, footer .container { position:relative; z-index:1; }
.decor { position:absolute; pointer-events:none; z-index:0; opacity:0.9; }
.decor svg { display:block; width:100%; height:100%; }
.decor-firefly { width:56px; height:56px; animation: fly 16s ease-in-out infinite; }
.decor-leaf { width:40px; height:40px; animation: sway 7s ease-in-out infinite; }
.decor-flower { width:36px; height:36px; animation: float-med 8s ease-in-out infinite; }
.decor-cloud { width:70px; height:70px; animation: drift 22s ease-in-out infinite; opacity:0.7; }
.decor-sparkle { width:24px; height:24px; animation: twinkle 3.5s ease-in-out infinite; }
.decor-heart { width:28px; height:28px; animation: float-med 6.5s ease-in-out infinite; }

@keyframes fly {
  0%   { transform: translate(0,0) rotate(0deg); }
  20%  { transform: translate(30px,-22px) rotate(6deg); }
  40%  { transform: translate(55px,6px) rotate(-4deg); }
  60%  { transform: translate(30px,28px) rotate(5deg); }
  80%  { transform: translate(-10px,10px) rotate(-3deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes sway {
  0%,100% { transform: rotate(-6deg) translateY(0); }
  50%     { transform: rotate(8deg) translateY(-8px); }
}
@keyframes float-med {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(-14px) rotate(6deg); }
}
@keyframes drift {
  0%,100% { transform: translateX(0); }
  50%     { transform: translateX(26px); }
}
@keyframes twinkle {
  0%,100% { opacity:0.4; transform:scale(0.85) rotate(0deg); }
  50%     { opacity:1; transform:scale(1.05) rotate(20deg); }
}

@media (max-width: 860px) {
  .decor { transform: scale(0.6); opacity:0.6; }
  .decor-cloud, .decor-flower:nth-of-type(n+2) { display:none; }
}
@media (max-width: 480px) {
  .decor-leaf, .decor-heart { display:none; }
}

.page-hero { background:var(--peach); padding:56px 0; text-align:center; }
.page-hero h1 { font-size:40px; margin-bottom:8px; }
.page-hero p { max-width:600px; margin:0 auto; opacity:0.85; }
table.rate-table { width:100%; border-collapse:collapse; margin:20px 0 32px; background:white; border-radius:16px; overflow:hidden; box-shadow:0px 8px 24px rgba(34,49,77,0.06); }
table.rate-table th { background:var(--navy); color:var(--cream); text-align:left; padding:12px 16px; font-size:14px; }
table.rate-table td { padding:12px 16px; font-size:14px; border-bottom:1px solid var(--sand); }
table.rate-table tr:last-child td { border-bottom:none; }
.program-block { margin-bottom:56px; padding-bottom:40px; border-bottom:1px solid var(--sand); }
.program-block:last-child { border-bottom:none; }
.program-block h2 { font-size:30px; margin-bottom:4px; }
.program-block .meta { color:var(--sage); font-weight:600; font-size:14px; margin-bottom:16px; }
.steps-list { counter-reset: step; list-style:none; }
.steps-list li { display:flex; gap:16px; margin-bottom:24px; align-items:flex-start; }
.steps-list li::before { counter-increment: step; content: counter(step); flex-shrink:0; width:36px; height:36px; border-radius:50%; background:var(--coral); color:white; font-weight:700; display:flex; align-items:center; justify-content:center; }
.value-pillars { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.value-pillar { text-align:center; padding:20px; }
.value-pillar .dot { width:48px; height:48px; border-radius:50%; background:var(--sage); margin:0 auto 12px; }
.confirm-note { background:var(--mint); border-left:4px solid var(--sage); padding:12px 16px; border-radius:8px; font-size:13px; color:var(--navy); margin:12px 0; }
.resource-list { list-style:none; }
.resource-list li { padding:14px 0; border-bottom:1px solid var(--sand); display:flex; justify-content:space-between; align-items:center; }
@media (max-width:860px) {
  .value-pillars { grid-template-columns:repeat(2,1fr); }
}
