/* ──────────────────────────────────────
   THE LITTLE COLLEGE — site styles
   v2.0 · pre-launch
─────────────────────────────────────── */

@font-face{font-family:'Fredoka';font-weight:400;font-style:normal;font-display:swap;src:url('/fonts/fredoka-400.woff2') format('woff2');}
@font-face{font-family:'Fredoka';font-weight:500;font-style:normal;font-display:swap;src:url('/fonts/fredoka-500.woff2') format('woff2');}
@font-face{font-family:'Fredoka';font-weight:600;font-style:normal;font-display:swap;src:url('/fonts/fredoka-600.woff2') format('woff2');}
@font-face{font-family:'Fredoka';font-weight:700;font-style:normal;font-display:swap;src:url('/fonts/fredoka-700.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-weight:400;font-style:normal;font-display:swap;src:url('/fonts/nunito-400.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-weight:600;font-style:normal;font-display:swap;src:url('/fonts/nunito-600.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-weight:700;font-style:normal;font-display:swap;src:url('/fonts/nunito-700.woff2') format('woff2');}
@font-face{font-family:'Nunito';font-weight:800;font-style:normal;font-display:swap;src:url('/fonts/nunito-800.woff2') format('woff2');}

:root {
  --dusk: #78849C;
  --sage: #909C84;
  --terra: #E49084;
  --gold: #F0B460;
  --blush: #F0A890;
  --clay: #E4A884;
  --lilac: #A8A8B4;
  --cream: #FDF4EB;
  --bg: #F6E9DA;
  --bg-soft: #F1E0CE;
  --bg-warm: #F9E6D8;
  --ink-strong: #4A5560;
  --ink: #6C7070;
  --ink-soft: #8A9098;
  --radius: 22px;
  --radius-soft: 14px;
  --max: 1180px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Nunito',system-ui,sans-serif;
  background:var(--bg);
  background-image:
    radial-gradient(circle at 15% 12%, rgba(240,168,144,0.10) 0%, transparent 35%),
    radial-gradient(circle at 85% 28%, rgba(240,180,96,0.08) 0%, transparent 32%),
    radial-gradient(circle at 50% 70%, rgba(144,156,132,0.07) 0%, transparent 38%);
  background-attachment:fixed;
  color:var(--ink);
  line-height:1.7;
  font-weight:500;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }

/* COMING SOON BANNER — scrolling marquee */
.banner {
  background:var(--terra); color:white;
  padding:10px 0; overflow:hidden;
  position:relative; z-index:60;
  white-space:nowrap;
}
.banner-track {
  display:inline-flex;
  animation:scroll-banner 30s linear infinite;
  gap:48px;
  padding-left:48px;
}
.banner:hover .banner-track {
  animation-play-state:paused;
}
.banner-item {
  display:inline-flex; align-items:center; gap:12px;
  font-family:'Nunito',sans-serif; font-weight:700; font-size:13px;
  letter-spacing:0.5px;
  flex-shrink:0;
}
.banner-item .pulse {
  display:inline-block; width:8px; height:8px;
  background:white; border-radius:50%;
  vertical-align:middle; animation:pulse 2s infinite;
  flex-shrink:0;
}
.banner-item .pulse.gold {
  background:#FFD98A;
  box-shadow:0 0 8px rgba(255, 217, 138, 0.6);
}
.banner-item .sep {
  opacity:0.6; font-size:14px;
}
@keyframes scroll-banner {
  0% { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}
@keyframes pulse {
  0%, 100% { opacity:1; transform:scale(1); }
  50% { opacity:0.5; transform:scale(1.3); }
}

/* NAV */
.nav {
  position:sticky; top:0; z-index:50;
  background:rgba(246,233,218,0.92);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(120,132,156,0.1);
}
.nav-inner {
  max-width:var(--max); margin:0 auto; padding:18px 32px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.nav-logo { display:flex; align-items:center; gap:14px; }
.nav-logo-icon { height:64px; width:auto; }
.nav-logo-text {
  display:flex; flex-direction:column; align-items:flex-start;
}
.nav-logo-wordmark { height:30px; width:auto; display:block; }
.nav-logo-text .sub {
  display:block; font-family:'Nunito',sans-serif; font-weight:700;
  font-size:9px; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--sage); margin-top:5px; margin-left:2px;
}
.nav-links { display:flex; align-items:center; gap:32px; list-style:none; }
.nav-links a {
  font-family:'Nunito',sans-serif; font-weight:600; font-size:14px;
  color:var(--ink-strong); transition:color 0.2s; position:relative;
}
.nav-links a:hover { color:var(--terra); }
.nav-links a.active { color:var(--terra); }
.nav-links a.active::after {
  content:''; position:absolute; bottom:-6px; left:50%; transform:translateX(-50%);
  width:5px; height:5px; border-radius:50%; background:var(--terra);
}
.nav-cta {
  background:var(--terra); color:white !important;
  font-family:'Nunito',sans-serif; font-weight:700; font-size:13px;
  padding:11px 22px; border-radius:40px;
  transition:transform 0.15s, box-shadow 0.15s; letter-spacing:0.3px;
}
.nav-cta:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(228,144,132,0.3); color:white !important; }
.nav-toggle { display:none; background:transparent; border:none; cursor:pointer; padding:8px; border-radius:8px; }
.nav-toggle span { display:block; width:22px; height:2px; background:var(--ink-strong); margin:5px 0; border-radius:2px; }

/* LAYOUT */
.container { max-width:var(--max); margin:0 auto; padding:0 32px; }
section { padding:112px 0; position:relative; }
section.tight { padding:72px 0; }
.section-tag {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Nunito',sans-serif; font-weight:700; font-size:11px;
  letter-spacing:3px; text-transform:uppercase;
  color:var(--terra); margin-bottom:16px;
}
.section-tag::before { content:''; width:24px; height:2px; background:var(--terra); }
h1, h2, h3, h4 {
  font-family:'Fredoka',sans-serif; color:var(--ink-strong);
  font-weight:600; letter-spacing:-1px; line-height:1.04;
}
h1 { font-size:66px; }
h2 { font-size:50px; margin-bottom:20px; }
h3 { font-size:28px; margin-bottom:12px; letter-spacing:-0.5px; }
h4 { font-size:20px; letter-spacing:-0.3px; }
p { font-size:16px; line-height:1.75; color:var(--ink); }
.lede { font-size:18px; color:var(--ink); max-width:600px; margin-bottom:48px; line-height:1.7; }

/* BUTTONS */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Nunito',sans-serif; font-weight:700; font-size:14px;
  padding:14px 28px; border-radius:40px; border:none; cursor:pointer;
  transition:transform 0.15s, box-shadow 0.15s, background 0.15s; letter-spacing:0.3px;
}
.btn-primary { background:var(--terra); color:white; }
.btn-primary:hover { background:#D67B6E; transform:translateY(-1px); box-shadow:0 8px 22px rgba(228,144,132,0.3); }
.btn-secondary { background:transparent; color:var(--ink-strong); border:2px solid rgba(120,132,156,0.25); }
.btn-secondary:hover { background:white; border-color:var(--dusk); }

/* CARDS */
.card { background:white; border-radius:var(--radius); padding:36px 32px; border:1.5px solid rgba(120,132,156,0.08); transition:transform 0.2s, box-shadow 0.2s; }
.card-hover:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(120,132,156,0.12); }
.divider { border:none; border-top:1.5px dashed rgba(120,132,156,0.2); max-width:var(--max); margin:0 auto; }

/* ANIMATIONS */
.float-deco { position:absolute; pointer-events:none; z-index:0; animation:float-y 6s ease-in-out infinite; }
.float-deco.delay-1 { animation-delay:1s; }
.float-deco.delay-2 { animation-delay:2s; }
.float-deco.delay-3 { animation-delay:3s; }
.float-deco.slow { animation-duration:9s; }
@keyframes float-y { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-12px) rotate(3deg); } }

/* Gold accent variants */
.section-tag.gold { color:#D4A020; }
.section-tag.gold::before { background:#D4A020; }
.section-tag.sage { color:var(--sage); }
.section-tag.sage::before { background:var(--sage); }

.badge-pulse {
  display:inline-flex; align-items:center; gap:10px;
  background:rgba(240,180,96,0.18); color:#B5862A;
  font-family:'Nunito',sans-serif; font-weight:700; font-size:12px;
  letter-spacing:2.5px; text-transform:uppercase;
  padding:8px 18px; border-radius:40px; margin-bottom:24px;
}
.badge-pulse::before { content:''; width:8px; height:8px; background:var(--gold); border-radius:50%; animation:pulse 2s infinite; }

/* HERO */
.hero {
  background:linear-gradient(135deg, #FDF0E4 0%, #F8E3D0 100%);
  padding:80px 0 100px; position:relative; overflow:hidden;
}

/* Decorative brand pictographs scattered through pages */
.brand-deco {
  position:absolute; pointer-events:none; z-index:0; opacity:0.6;
  animation:float-y 7s ease-in-out infinite;
}
.brand-deco.delay-1 { animation-delay:1.5s; }
.brand-deco.delay-2 { animation-delay:3s; }
.brand-deco.spin-soft { animation:float-spin 12s ease-in-out infinite; }
@keyframes float-spin {
  0%, 100% { transform:translateY(0) rotate(-8deg); }
  50% { transform:translateY(-14px) rotate(8deg); }
}
.hero-inner {
  max-width:var(--max); margin:0 auto; padding:0 32px;
  display:grid; grid-template-columns:1.15fr 1fr; gap:64px; align-items:center;
  position:relative; z-index:1;
}
.hero h1 { font-size:68px; letter-spacing:-1.5px; line-height:0.98; margin-bottom:22px; }
.hero h1 .accent { color:var(--terra); display:inline-block; }
.hero p.hero-sub { font-size:18px; max-width:540px; margin-bottom:14px; line-height:1.7; }
.hero-address {
  display:inline-flex; align-items:center; gap:10px;
  background:white; padding:12px 18px; border-radius:14px;
  margin-bottom:8px; box-shadow:0 4px 16px rgba(120,132,156,0.1);
  border:1.5px solid rgba(228,144,132,0.2);
}
.hero-address svg { flex-shrink:0; }
.hero-address-text { font-family:'Nunito',sans-serif; font-weight:700; font-size:13.5px; color:var(--ink-strong); line-height:1.4; }
.hero-address-text .lbl { display:block; font-size:9.5px; font-weight:700; letter-spacing:2px; color:var(--terra); text-transform:uppercase; margin-bottom:2px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:24px; }
.hero-meta { margin-top:30px; display:flex; gap:12px; flex-wrap:wrap; }
.hero-meta-pill {
  display:flex; align-items:center; gap:8px;
  background:rgba(255,255,255,0.6); padding:9px 15px; border-radius:30px;
  font-family:'Nunito',sans-serif; font-weight:700; font-size:11.5px;
  color:var(--ink-strong); letter-spacing:0.3px;
}
.hero-meta-pill .dot { width:7px; height:7px; border-radius:50%; }
.hero-meta-pill.babies .dot { background:var(--terra); }
.hero-meta-pill.toddlers .dot { background:var(--sage); }
.hero-meta-pill.preschool .dot { background:var(--gold); }
.hero-meta-pill.days .dot { background:var(--dusk); }

.hero-image { position:relative; display:flex; align-items:center; justify-content:center; }
.hero-image-wrap { position:relative; }
.hero-image-wrap > img {
  width:100%; max-width:440px; margin:0 auto; display:block; position:relative; z-index:2;
  animation:wiggle 4s ease-in-out infinite;
  transform-origin:center bottom;
}
.hero-image-wrap > img:hover {
  animation:wiggle-fast 0.6s ease-in-out;
}
.hero-image-wrap > img.hero-photo {
  max-width:440px; border-radius:24px; aspect-ratio:1/1; object-fit:cover;
  box-shadow:0 24px 60px rgba(74,85,96,0.22); animation:none;
}
.hero-image-wrap > img.hero-photo:hover { animation:none; }
@keyframes wiggle {
  0%, 100% { transform:rotate(0deg); }
  25% { transform:rotate(-2deg); }
  50% { transform:rotate(0deg); }
  75% { transform:rotate(2deg); }
}
@keyframes wiggle-fast {
  0%, 100% { transform:rotate(0deg); }
  20% { transform:rotate(-5deg); }
  40% { transform:rotate(4deg); }
  60% { transform:rotate(-3deg); }
  80% { transform:rotate(2deg); }
}


/* Nav logo icon gets a tiny wiggle on hover */
.nav-logo-icon {
  transition:transform 0.2s;
}
.nav-logo:hover .nav-logo-icon {
  animation:wiggle-fast 0.6s ease-in-out;
}

.hero-card-float {
  position:absolute; z-index:3;
  background:white; border-radius:18px; padding:16px 20px;
  box-shadow:0 16px 40px rgba(120,132,156,0.18);
  display:flex; align-items:center; gap:14px;
  animation:float-y 5s ease-in-out infinite;
}
.hero-card-float.opening { bottom:-10px; right:-30px; }
.hero-card-float.ages { top:30px; left:-40px; animation-delay:2s; }
.hero-card-float .float-icon { width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hero-card-float.opening .float-icon { background:var(--cream); }
.hero-card-float.ages .float-icon { background:#E2EBD6; }
.hero-card-float .float-num { font-family:'Fredoka',sans-serif; font-weight:600; font-size:18px; color:var(--terra); line-height:1; }
.hero-card-float.ages .float-num { color:var(--sage); }
.hero-card-float .float-lbl { font-family:'Nunito',sans-serif; font-weight:700; font-size:9px; color:var(--ink-soft); letter-spacing:1.5px; text-transform:uppercase; line-height:1.4; }
.hero-card-float .float-main { font-family:'Nunito',sans-serif; font-weight:800; font-size:13px; color:var(--ink-strong); line-height:1.2; }

.hero-blob { position:absolute; border-radius:50%; filter:blur(40px); opacity:0.5; pointer-events:none; }
.hero-blob.b1 { width:260px; height:260px; background:rgba(228,144,132,0.25); top:10%; right:5%; animation:float-y 8s ease-in-out infinite; }
.hero-blob.b2 { width:200px; height:200px; background:rgba(144,156,132,0.22); bottom:15%; left:8%; animation:float-y 10s ease-in-out infinite; animation-delay:2s; }
.hero-blob.b3 { width:280px; height:280px; background:rgba(240,180,96,0.32); top:40%; left:38%; animation:float-y 11s ease-in-out infinite; animation-delay:1s; }
.hero-blob.b4 { width:180px; height:180px; background:rgba(240,180,96,0.28); top:5%; left:2%; animation:float-y 9s ease-in-out infinite; animation-delay:3s; }

/* HERITAGE */
.heritage { background:white; border-top:1.5px solid rgba(120,132,156,0.08); padding:32px 0; position:relative; overflow:hidden; }
.heritage::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--terra) 0%, var(--gold) 50%, var(--sage) 100%);
}
.heritage-inner {
  max-width:var(--max); margin:0 auto; padding:0 32px;
  display:flex; align-items:center; justify-content:center; gap:20px;
  flex-wrap:wrap; text-align:center;
}
.heritage-line { font-family:'Fredoka',sans-serif; font-weight:500; font-size:19px; color:var(--ink-strong); letter-spacing:-0.2px; }
.heritage-line .accent { color:#B5862A; }
.heritage-pill {
  display:inline-flex; align-items:center; gap:8px;
  background:#FBE9C5; padding:8px 16px; border-radius:30px;
  font-family:'Nunito',sans-serif; font-weight:700; font-size:11px;
  color:#9C7320; letter-spacing:1.5px; text-transform:uppercase;
}

/* PAGE HEADER */
.page-header { background:linear-gradient(135deg, var(--cream) 0%, #F8E7D7 100%); padding:80px 32px 64px; text-align:center; position:relative; overflow:hidden; }
.page-header-inner { max-width:780px; margin:0 auto; position:relative; z-index:1; }
.page-header h1 { font-size:60px; letter-spacing:-1px; margin-bottom:16px; }
.page-header p { font-size:17px; color:var(--ink); line-height:1.7; }
.page-header .crumb { font-family:'Nunito',sans-serif; font-weight:700; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--terra); margin-bottom:14px; }
.page-header-photo { width:100%; max-width:560px; aspect-ratio:16/9; object-fit:cover; border-radius:22px; margin:36px auto 0; display:block; box-shadow:0 18px 48px rgba(74,85,96,0.18); }

/* CTA BAND */
.cta-band { background:var(--dusk); padding:80px 32px; text-align:center; position:relative; overflow:hidden; }
.cta-band::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.06) 0%, transparent 60%); }
.cta-band-inner { max-width:780px; margin:0 auto; position:relative; }
.cta-band h2 { color:white; font-size:48px; letter-spacing:-0.5px; margin-bottom:14px; }
.cta-band p { color:rgba(255,255,255,0.8); font-size:17px; margin-bottom:32px; max-width:520px; margin-left:auto; margin-right:auto; }
.cta-band .btn-primary { background:white; color:var(--terra); }
.cta-band .btn-primary:hover { background:white; color:#C97565; transform:translateY(-1px); box-shadow:0 12px 30px rgba(0,0,0,0.15); }

/* FOOTER — FIXED logo */
.footer { background:#3F454F; padding:72px 32px 40px; color:rgba(255,255,255,0.7); position:relative; overflow:hidden; }
.footer-inner { max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:48px; align-items:flex-start; }
.footer-brand img {
  width:96px; height:auto; margin-bottom:16px;
  background:white; padding:12px; border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,0.15);
}
.footer-brand h4 { font-family:'Fredoka',sans-serif; font-weight:600; font-size:24px; color:white; margin-bottom:6px; letter-spacing:-0.4px; }
.footer-brand .sub { font-family:'Nunito',sans-serif; font-weight:700; font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); }
.footer-brand p { color:rgba(255,255,255,0.55); font-size:13.5px; margin-top:18px; line-height:1.7; max-width:280px; }
.footer-col h5 { font-family:'Nunito',sans-serif; font-weight:800; font-size:11px; color:white; letter-spacing:2px; text-transform:uppercase; margin-bottom:18px; }
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:10px; }
.footer-col a { font-family:'Nunito',sans-serif; font-weight:500; font-size:14px; color:rgba(255,255,255,0.65); transition:color 0.2s; }
.footer-col a:hover { color:var(--terra); }
.footer-bottom { max-width:var(--max); margin:48px auto 0; padding-top:32px; border-top:1px solid rgba(255,255,255,0.08); display:flex; justify-content:space-between; align-items:center; font-family:'Nunito',sans-serif; font-size:12px; color:rgba(255,255,255,0.4); flex-wrap:wrap; gap:12px; }
.footer-bottom .credits a { color:var(--terra); }

/* PILLARS */
.pillars-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.pillar-card { background:white; border-radius:var(--radius); padding:36px 30px; border:1.5px solid rgba(120,132,156,0.08); position:relative; overflow:hidden; }
.pillar-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  border-radius:var(--radius) var(--radius) 0 0;
}
.pillar-card.p1::before { background:linear-gradient(90deg, var(--gold) 0%, #F5C842 100%); }
.pillar-card.p2::before { background:linear-gradient(90deg, var(--sage) 0%, #B8C7A6 100%); }
.pillar-card.p3::before { background:linear-gradient(90deg, var(--terra) 0%, #F0A890 100%); }
.pillar-card .icon { width:64px; height:64px; margin-bottom:18px; display:flex; align-items:center; justify-content:center; }
.pillar-card h3 { font-family:'Fredoka',sans-serif; font-weight:600; font-size:24px; margin-bottom:10px; line-height:1.1; }
.pillar-card.p1 h3 { color:#B5862A; }
.pillar-card.p2 h3 { color:var(--sage); }
.pillar-card.p3 h3 { color:var(--terra); }
.pillar-card p { font-size:14.5px; line-height:1.7; }

/* PROGRAMS — 3 rooms */
.programs-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; margin-top:48px; }
.program-card { background:white; border-radius:var(--radius); padding:0; overflow:hidden; border:1.5px solid rgba(120,132,156,0.08); transition:transform 0.2s, box-shadow 0.2s; }
.program-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(120,132,156,0.12); }
.program-card-head { padding:28px 28px 22px; position:relative; overflow:hidden; }
.program-card.babies .program-card-head { background:#F5E1D5; }
.program-card.toddlers .program-card-head { background:#E2EBD6; }
.program-card.preschool .program-card-head { background:#FBE9C5; }
.program-card-age { font-family:'Nunito',sans-serif; font-weight:700; font-size:10.5px; letter-spacing:3px; text-transform:uppercase; margin-bottom:8px; }
.program-card.babies .program-card-age { color:#C66B57; }
.program-card.toddlers .program-card-age { color:#6F8A4F; }
.program-card.preschool .program-card-age { color:#B5862A; }
.program-card-head h3 { font-family:'Fredoka',sans-serif; font-weight:600; font-size:26px; color:var(--ink-strong); letter-spacing:-0.5px; line-height:1; }
.program-card-body { padding:24px 28px 28px; }
.program-card-body p { font-size:14px; line-height:1.7; margin-bottom:14px; }
.program-card-body ul { list-style:none; padding:0; }
.program-card-body li { font-family:'Nunito',sans-serif; font-weight:600; font-size:13px; color:var(--ink-strong); padding:5px 0; border-bottom:1px dashed rgba(120,132,156,0.15); display:flex; align-items:center; gap:10px; }
.program-card-body li::before { content:''; width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.program-card.babies .program-card-body li::before { background:var(--terra); }
.program-card.toddlers .program-card-body li::before { background:var(--sage); }
.program-card.preschool .program-card-body li::before { background:var(--gold); }
.program-card-body li:last-child { border:none; }
@media (max-width:900px){ .pillars-grid, .programs-grid { grid-template-columns:1fr; } }

/* ── Asymmetric two-column programs preview ── */
.programs-split { display:grid; grid-template-columns:1fr 1.05fr; gap:64px; align-items:center; }
.programs-split-intro h2 { margin-bottom:18px; }
.programs-split-intro .lede { margin-bottom:28px; }
.programs-split-cards { display:flex; flex-direction:column; gap:14px; }
.program-row { background:white; border-radius:var(--radius-soft); padding:24px 26px; border:1.5px solid rgba(120,132,156,0.1); border-left-width:5px; transition:transform 0.2s, box-shadow 0.2s; }
.program-row:hover { transform:translateX(4px); box-shadow:0 12px 32px rgba(120,132,156,0.1); }
.program-row.babies { border-left-color:var(--terra); }
.program-row.toddlers { border-left-color:var(--sage); }
.program-row.preschool { border-left-color:var(--gold); }
.program-row-age { font-family:'Fredoka',sans-serif; font-weight:600; font-size:21px; color:var(--ink-strong); letter-spacing:-0.3px; display:flex; align-items:baseline; gap:12px; margin-bottom:6px; }
.program-row-age span { font-family:'Nunito',sans-serif; font-weight:700; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--ink-soft); }
.program-row.babies .program-row-age span { color:#C66B57; }
.program-row.toddlers .program-row-age span { color:#6F8A4F; }
.program-row.preschool .program-row-age span { color:#B5862A; }
.program-row p { font-size:14.5px; line-height:1.65; margin:0; }
@media (max-width:900px){ .programs-split { grid-template-columns:1fr; gap:36px; } }

/* ── Alternating section backgrounds for rhythm ── */
.section-cream { background:linear-gradient(180deg, #FCF6EF 0%, #FBF2E9 100%); }

/* AESTHETIC IMAGES */
.aesthetic-band { background:linear-gradient(180deg, #F1E0CE 0%, #F6E2D2 100%); padding:80px 0; position:relative; overflow:hidden; }
.aesthetic-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; max-width:var(--max); margin:48px auto 0; padding:0 32px; }
.aesthetic-card { aspect-ratio:1/1; border-radius:var(--radius); overflow:hidden; position:relative; transition:transform 0.3s; }
.aesthetic-card:hover { transform:translateY(-4px); }
.aesthetic-card .scene { width:100%; height:100%; position:relative; display:flex; align-items:center; justify-content:center; }
.aesthetic-card .caption { position:absolute; bottom:18px; left:18px; right:18px; background:rgba(255,255,255,0.92); backdrop-filter:blur(8px); border-radius:12px; padding:10px 14px; font-family:'Nunito',sans-serif; font-weight:700; font-size:11.5px; color:var(--ink-strong); letter-spacing:0.5px; display:flex; align-items:center; gap:8px; }
.aesthetic-card .caption::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--terra); }
.scene-blocks { background:linear-gradient(135deg, #F5E1D5 0%, #ECC9B2 100%); }
.scene-nursery { background:linear-gradient(135deg, #E2EBD6 0%, #C9D7B3 100%); }
.scene-books { background:linear-gradient(135deg, #FBE9C5 0%, #F5D08A 100%); }
.scene-toys { background:linear-gradient(135deg, #F8DAD0 0%, #EFB7A6 100%); }
.scene-circle { background:linear-gradient(135deg, #DEE4EF 0%, #B7C2D7 100%); }
.scene-garden { background:linear-gradient(135deg, #E8EDE0 0%, #BFCBA8 100%); }
@media (max-width:900px){ .aesthetic-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .aesthetic-grid { grid-template-columns:1fr; } }

/* FAQ */
.faq-list { max-width:820px; margin:0 auto; }
.faq-item { background:white; border-radius:var(--radius); padding:0; border:1.5px solid rgba(120,132,156,0.1); margin-bottom:14px; overflow:hidden; }
.faq-question { width:100%; padding:24px 32px; font-family:'Fredoka',sans-serif; font-weight:500; font-size:20px; color:var(--ink-strong); background:transparent; border:none; cursor:pointer; text-align:left; display:flex; align-items:center; justify-content:space-between; gap:18px; letter-spacing:-0.2px; transition:color 0.2s; }
.faq-question:hover { color:var(--terra); }
.faq-question .plus { flex-shrink:0; width:30px; height:30px; border-radius:50%; background:var(--cream); display:flex; align-items:center; justify-content:center; transition:transform 0.3s, background 0.2s; }
.faq-question .plus svg { width:14px; height:14px; }
.faq-item.open .faq-question { color:var(--terra); }
.faq-item.open .faq-question .plus { background:var(--terra); transform:rotate(45deg); }
.faq-item.open .faq-question .plus svg path { stroke:white; }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 0.35s ease, padding 0.3s ease; padding:0 32px; }
.faq-item.open .faq-answer { max-height:600px; padding:0 32px 28px; }
.faq-answer p { font-size:15px; line-height:1.75; color:var(--ink); }

/* CONTACT */
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:48px; }
.contact-info { background:white; border-radius:var(--radius); padding:40px; border:1.5px solid rgba(120,132,156,0.08); }
.contact-info h3 { font-family:'Fredoka',sans-serif; font-weight:600; font-size:24px; color:var(--ink-strong); margin-bottom:24px; }
.contact-row { display:flex; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px dashed rgba(120,132,156,0.15); }
.contact-row:last-child { border:none; }
.contact-row .icon { flex-shrink:0; width:36px; height:36px; border-radius:10px; background:var(--cream); display:flex; align-items:center; justify-content:center; }
.contact-row .label { font-family:'Nunito',sans-serif; font-weight:700; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--ink-soft); margin-bottom:2px; }
.contact-row .value { font-family:'Nunito',sans-serif; font-weight:600; font-size:15px; color:var(--ink-strong); line-height:1.5; }
.contact-row .value a { color:var(--ink-strong); }
.contact-row .value a:hover { color:var(--terra); }
.contact-form { background:white; border-radius:var(--radius); padding:40px; border:1.5px solid rgba(120,132,156,0.08); }
.contact-form h3 { font-family:'Fredoka',sans-serif; font-weight:600; font-size:24px; margin-bottom:6px; }
.contact-form .form-sub { font-size:14px; color:var(--ink); margin-bottom:24px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.form-group-label {
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:16px;
  color:var(--ink-strong); margin:8px 0 16px; padding-bottom:10px;
  border-bottom:1.5px solid rgba(120,132,156,0.12);
}
.form-group-label:not(:first-of-type) { margin-top:28px; }
.form-field .req { color:var(--terra); font-weight:700; }
.form-field { margin-bottom:14px; }
.form-field label { display:block; font-family:'Nunito',sans-serif; font-weight:700; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }
.form-field input, .form-field select, .form-field textarea { width:100%; padding:13px 16px; background:var(--bg); border:1.5px solid rgba(120,132,156,0.15); border-radius:12px; font-family:'Nunito',sans-serif; font-weight:500; font-size:14.5px; color:var(--ink-strong); transition:border 0.2s, background 0.2s; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline:none; border-color:var(--terra); background:white; }
.form-field textarea { resize:vertical; min-height:120px; }
.contact-form button { width:100%; padding:16px; font-size:15px; }
.form-note { margin-top:14px; font-size:12px; color:var(--ink-soft); text-align:center; line-height:1.6; }
@media (max-width:900px){ .contact-grid { grid-template-columns:1fr; gap:24px; } .form-row { grid-template-columns:1fr; } }

/* PROGRAMS PAGE — detail blocks */
.program-detail { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; margin-bottom:96px; }
.program-detail:last-child { margin-bottom:0; }
.program-detail.reverse .pd-visual { order:2; }
.pd-visual { background:var(--cream); border-radius:var(--radius); padding:56px 40px; min-height:380px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:20px; position:relative; overflow:hidden; }
.pd-visual.sage-bg { background:#E8EDE0; }
.pd-visual.gold-bg { background:#FBE9C5; }
.pd-age-big { font-family:'Fredoka',sans-serif; font-weight:600; font-size:88px; color:var(--terra); line-height:1; letter-spacing:-2px; }
.pd-visual.sage-bg .pd-age-big { color:var(--sage); }
.pd-visual.gold-bg .pd-age-big { color:#B5862A; }
.pd-age-label { font-family:'Nunito',sans-serif; font-weight:700; font-size:13px; letter-spacing:3px; text-transform:uppercase; color:var(--ink); }
.pd-text .tag { font-family:'Nunito',sans-serif; font-weight:700; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--terra); margin-bottom:12px; display:inline-flex; align-items:center; gap:8px; }
.pd-text .tag::before { content:''; width:24px; height:2px; background:currentColor; }
.pd-text.sage .tag { color:var(--sage); }
.pd-text.gold .tag { color:#B5862A; }
.pd-text h2 { margin-bottom:18px; }
.pd-text p { font-size:16px; margin-bottom:24px; }
.pd-features { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:24px; }
.pd-feature { background:white; border-radius:12px; padding:14px 18px; font-family:'Nunito',sans-serif; font-weight:600; font-size:13px; color:var(--ink-strong); border:1.5px solid rgba(120,132,156,0.1); display:flex; align-items:center; gap:10px; }
.pd-feature::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--terra); flex-shrink:0; }
.pd-text.sage .pd-feature::before { background:var(--sage); }
.pd-text.gold .pd-feature::before { background:var(--gold); }
@media (max-width:900px){ .program-detail { grid-template-columns:1fr; gap:32px; margin-bottom:64px; } .program-detail.reverse .pd-visual { order:0; } .pd-age-big { font-size:72px; } .pd-features { grid-template-columns:1fr; } }

/* RESPONSIVE */
@media (max-width:900px) {
  .nav-inner { padding:14px 20px; gap:12px; }
  .nav-toggle { display:block; z-index:2; }
  .nav-links {
    position:absolute; top:100%; left:0; right:0;
    background:var(--bg); flex-direction:column; gap:0;
    padding:16px 24px 24px; border-bottom:1px solid rgba(120,132,156,0.1);
    align-items:stretch;
    /* Hide completely when not open */
    visibility:hidden;
    opacity:0;
    transform:translateY(-10px);
    transition:opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
    box-shadow:0 12px 30px rgba(0,0,0,0.06);
  }
  .nav-links.open {
    visibility:visible;
    opacity:1;
    transform:translateY(0);
  }
  .nav-links li {
    width:100%; padding:14px 0;
    border-bottom:1px dashed rgba(120,132,156,0.15);
  }
  .nav-links li:last-child { border:none; padding-top:18px; }
  .nav-links a {
    font-size:16px; display:block;
  }
  .nav-links a.active::after { display:none; }
  .nav-cta { width:100%; text-align:center; padding:14px 22px; }
  /* Animated hamburger */
  .nav-toggle.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2) { opacity:0; }
  .nav-toggle.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

  h1 { font-size:42px; }
  h2 { font-size:34px; }
  h3 { font-size:24px; }
  .hero { padding:48px 0 64px; }
  .hero-inner { grid-template-columns:1fr; gap:32px; }
  .hero h1 { font-size:40px; }
  /* Hide floating cards on mobile — they get in the way */
  .hero-card-float.opening, .hero-card-float.ages { display:none; }
  /* Show logo BELOW headline on mobile, not above */
  .hero-image { order:2; }
  .hero-image-wrap > img { max-width:260px; }
  .hero-blob { display:none; }
  .page-header { padding:56px 24px 48px; }
  .page-header h1 { font-size:38px; }
  section { padding:64px 0; }
  .footer-inner { grid-template-columns:1fr 1fr; gap:32px; }
  .footer-brand { grid-column:1 / -1; }
  .cta-band h2 { font-size:32px; }
}
@media (max-width:520px) {
  .nav-logo-icon { height:64px; }
  .nav-logo-wordmark { height:24px; }
  .container, .nav-inner { padding-left:20px; padding-right:20px; }
  .footer-inner { grid-template-columns:1fr; }
}
