:root {
  --blue: #1E6FCC;
  --blue-dark: #124f9a;
  --yellow: #F5C518;
  --yellow-soft: #FFF3BF;
  --pink: #F0308A;
  --ink: #17324D;
  --muted: #5B6D7F;
  --line: #DDE7F2;
  --paper: #FFFFFF;
  --soft: #F6FAFF;
  --teal: #23A6A1;
  --green: #61B45C;
  --orange: #F28C28;
  --shadow: 0 24px 60px rgba(30, 111, 204, .13);
  --radius: 16px;
  --slab: "Roboto Slab", Georgia, serif;
  --sans: "Roboto", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  overflow-x: hidden;
}

.doodle-layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.page-doodle {
  position: absolute;
  width: 130px;
  height: 130px;
  padding: 18px;
  box-sizing: content-box;
  opacity: .28;
  background-repeat: no-repeat;
  background-position: center;
  background-origin: content-box;
  background-clip: content-box;
  background-size: contain;
  animation: doodleFloat 8s ease-in-out infinite;
}

.section-doodle {
  position: absolute;
  padding: 18px;
  box-sizing: content-box;
  background-repeat: no-repeat;
  background-position: center;
  background-origin: content-box;
  background-clip: content-box;
  background-size: contain;
  z-index: 1;
  pointer-events: none;
}

.section-doodle.doodle-rainbow,
.section-doodle.doodle-rocket,
.section-doodle.doodle-flask,
.section-doodle.doodle-clock,
.section-doodle.doodle-sun {
  left: auto;
  right: 5%;
  top: 28px;
  width: 126px;
  height: 126px;
  opacity: .2;
}

.section-doodle.doodle-rocket {
  width: 150px;
  height: 190px;
  top: -22px;
}

.section-doodle.doodle-rainbow {
  left: 4%;
  right: auto;
  top: 34px;
  opacity: .14;
}

.section-doodle.doodle-flask {
  right: 3%;
  top: auto;
  bottom: 32px;
  opacity: .18;
}

.section-doodle.doodle-clock {
  left: 3%;
  right: auto;
  top: auto;
  bottom: 24px;
  opacity: .18;
}

.section-doodle.doodle-sun {
  right: 6%;
  top: 36px;
  width: 96px;
  height: 96px;
  opacity: .18;
}

.curriculum-showcase .section-doodle,
.proof .section-doodle,
.final-cta .section-doodle {
  opacity: .28;
  filter: brightness(1.8);
}

.doodle-rainbow {
  left: -22px;
  top: 118px;
  opacity: .35;
  background-image: url("data:image/svg+xml,%3Csvg width='140' height='140' viewBox='0 0 140 140' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='%23FFFFFF' stroke-width='5' stroke-linecap='round' stroke-linejoin='round' opacity='.75'%3E%3Cpath d='M15 95a55 55 0 0 1 110 0'/%3E%3Cpath d='M31 95a39 39 0 0 1 78 0'/%3E%3Cpath d='M47 95a23 23 0 0 1 46 0'/%3E%3Cpath d='M30 91c-12-10-30 7-17 21 10 11 28 4 28-9'/%3E%3Cpath d='M99 92c6-17 30-11 31 7 1 18-24 25-33 9'/%3E%3Cpath d='M18 35l3 7 7 3-7 3-3 7-3-7-7-3 7-3 3-7Z'/%3E%3Cpath d='M119 28l2 5 5 2-5 2-2 5-2-5-5-2 5-2 2-5Z'/%3E%3C/g%3E%3C/svg%3E");
}

.doodle-rocket {
  right: 8%;
  top: 780px;
  animation-delay: -2s;
  width: 150px;
  height: 190px;
  background-image: url("data:image/svg+xml,%3Csvg width='150' height='190' viewBox='0 0 150 190' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M75 9C49 9 38 60 36 98c-2 37 11 63 39 63s41-26 39-63C112 60 101 9 75 9Z' fill='%23FFFFFF' stroke='%236D7BFF'/%3E%3Cpath d='M39 62c22 4 50 4 72 0M36 82c25 5 53 5 78 0M40 143c21 8 49 8 70 0' stroke='%23FF8FD7'/%3E%3Ccircle cx='75' cy='94' r='22' fill='%23EAF7FF' stroke='%236D7BFF'/%3E%3Ccircle cx='75' cy='94' r='12' fill='%23FFFFFF' stroke='%23FFD84D'/%3E%3Cpath d='M70 98 78 88M81 101l8-10' stroke='%23FF9B45'/%3E%3Cpath d='M41 120C23 135 16 158 18 180c14-9 25-27 30-52' fill='%23FFF3BF' stroke='%236D7BFF'/%3E%3Cpath d='M109 120c18 15 25 38 23 60-14-9-25-27-30-52' fill='%23FFF3BF' stroke='%236D7BFF'/%3E%3Cpath d='M58 156c-6 10-8 21-7 33l13-15 8 16 8-23 8 23 8-16 13 15c1-12-1-23-7-33' fill='%23FFE071' stroke='%23FF9B45'/%3E%3Cpath d='M59 178c-4 11-4 22 1 33l11-18 8 22 11-25' stroke='%23FF8FD7'/%3E%3Cpath d='M95 30c8 8 13 20 16 35' stroke='%2323A6A1'/%3E%3Cpath d='M47 91c-4 16-4 34 0 51' stroke='%2323A6A1'/%3E%3C/g%3E%3C/svg%3E");
}

.doodle-flask {
  right: -24px;
  top: 1320px;
  animation-delay: -4s;
  background-image: url("data:image/svg+xml,%3Csvg width='140' height='140' viewBox='0 0 140 140' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='%23FFFFFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' opacity='.62'%3E%3Cpath d='M72 15h38'/%3E%3Cpath d='M78 24 62 83c-7 25 10 43 35 43s43-18 35-43l-16-59'/%3E%3Cpath d='M71 77c19-14 35 12 54-3'/%3E%3Cpath d='M84 45h20'/%3E%3Ccircle cx='91' cy='93' r='4'/%3E%3Ccircle cx='108' cy='108' r='3'/%3E%3Ccircle cx='113' cy='88' r='3'/%3E%3C/g%3E%3C/svg%3E");
}

.doodle-clock {
  left: 4%;
  top: 2180px;
  animation-delay: -1s;
  background-image: url("data:image/svg+xml,%3Csvg width='140' height='140' viewBox='0 0 140 140' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='%23B9B9FF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' opacity='.65'%3E%3Ccircle cx='70' cy='72' r='42'/%3E%3Ccircle cx='70' cy='72' r='34'/%3E%3Cpath d='M70 72 55 55M70 72l21-14'/%3E%3Cpath d='M38 30c-12 4-19 14-20 26'/%3E%3Cpath d='M102 30c12 4 19 14 20 26'/%3E%3Cpath d='M45 113l-8 12M95 113l8 12M42 22l-16 18M98 22l16 18'/%3E%3C/g%3E%3C/svg%3E");
}

.doodle-sun {
  right: 12%;
  top: 2920px;
  width: 110px;
  height: 110px;
  animation-delay: -3s;
  background-image: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='%23B9B9FF' stroke-width='4' stroke-linecap='round' opacity='.68'%3E%3Ccircle cx='60' cy='60' r='28'/%3E%3Cpath d='M60 12v17M60 91v17M12 60h17M91 60h17M26 26l12 12M82 82l12 12M94 26 82 38M38 82 26 94'/%3E%3Cpath d='M50 56c2 3 6 5 10 5s8-2 10-5'/%3E%3Cpath d='M49 47h.1M71 47h.1'/%3E%3C/g%3E%3C/svg%3E");
}

img,
svg {
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input {
  font: inherit;
}

.container {
  position: relative;
  z-index: 3;
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
}

.section-pad {
  padding: 96px 0;
}

.hero,
.stats-strip-section,
.requirements,
.model,
.why-band,
.who,
.curriculum-showcase,
.support,
.testimonials,
.proof,
.gallery,
.faqs,
.final-cta {
  position: relative;
}

.cursor-glow {
  position: fixed;
  left: 0;
  top: 0;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(30, 111, 204, .3) 0%, rgba(30, 111, 204, .14) 34%, rgba(30, 111, 204, 0) 72%);
  filter: blur(18px);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-50%, -50%, 0);
  transition: opacity .25s ease;
  z-index: 2;
  mix-blend-mode: multiply;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid rgba(221, 231, 242, .75);
  backdrop-filter: blur(18px);
}

.nav-shell {
  position: relative;
  width: min(1180px, calc(100% - 32px));
  min-height: 82px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.brand-link {
  display: inline-flex;
  align-items: center;
  padding: 10px 14px 10px 0;
}

.brand-logo {
  width: 112px;
  height: 78px;
  object-fit: contain;
  transform: rotate(0deg);
  transition: transform .28s ease;
}

.brand-link:hover .brand-logo {
  transform: rotate(-16deg);
}

.site-brand-name {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: var(--blue);
  font-family: var(--slab);
  font-size: clamp(22px, 2.3vw, 34px);
  font-weight: 900;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}

.nav-cta {
  z-index: 1;
  flex: 0 0 auto;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  font-weight: 700;
  color: #244660;
}

.nav-links a:not(.btn) {
  position: relative;
  padding: 10px 0;
}

.nav-links a:not(.btn)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 4px;
  width: 0;
  height: 3px;
  background: var(--pink);
  border-radius: 40px;
  transition: width .25s ease;
}

.nav-links a:hover::after {
  width: 100%;
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: var(--radius);
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-direction: column;
}

.nav-toggle span {
  width: 20px;
  height: 2px;
  background: var(--blue);
}

.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 24px;
  border: 0;
  border-radius: var(--radius);
  font-weight: 800;
  cursor: pointer;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.btn-primary,
.btn-small {
  background: var(--yellow);
  color: #172B45;
  box-shadow: 0 14px 28px rgba(245, 197, 24, .28);
}

.btn-small {
  min-height: 44px;
  padding: 0 18px;
}

.btn:hover {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 20px 40px rgba(240, 48, 138, .2), 0 14px 34px rgba(245, 197, 24, .32);
}

.spark-btn::before,
.btn-small::before {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  top: 10px;
  right: 14px;
  background: var(--pink);
  clip-path: polygon(50% 0, 60% 38%, 100% 50%, 60% 62%, 50% 100%, 40% 62%, 0 50%, 40% 38%);
  opacity: 0;
  transform: scale(.4) rotate(0deg);
}

.spark-btn:hover::before,
.btn-small:hover::before {
  animation: spark .7s ease;
}

.btn-pulse {
  animation: ctaPulse 7s infinite;
}

.text-link {
  font-weight: 800;
  color: var(--blue);
}

.hero {
  position: relative;
  min-height: calc(100vh - 82px);
  display: flex;
  align-items: center;
  overflow: visible;
  background: #17324D;
}

.hero-banner {
  overflow: hidden;
}

.admission-hero {
  padding: 88px 0;
}

.hero-banner {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(12, 35, 65, .82) 0%, rgba(12, 35, 65, .64) 38%, rgba(12, 35, 65, .28) 100%),
    linear-gradient(180deg, rgba(30, 111, 204, .12), rgba(240, 48, 138, .12));
}

.hero-banner picture,
.hero-banner img {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-banner img {
  object-fit: cover;
  object-position: center;
}

.stats-strip-section::before,
.requirements::before,
.model::before,
.why-band::before,
.who::before,
.curriculum-showcase::before,
.support::before,
.testimonials::before,
.proof::before,
.gallery::before,
.faqs::before,
.final-cta::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% - 1px);
  width: 100%;
  height: 60px;
  z-index: 1;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1440' height='96' viewBox='0 0 1440 96' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 36 C240 78 480 0 720 36 C960 78 1200 0 1440 36 V96 H0 Z' fill='white'/%3E%3C/svg%3E");
}

.model::before,
.support::before,
.gallery::before {
  background-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1440' height='96' viewBox='0 0 1440 96' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 36 C240 78 480 0 720 36 C960 78 1200 0 1440 36 V96 H0 Z' fill='%23F6FAFF'/%3E%3C/svg%3E");
}

.curriculum-showcase::before,
.proof::before,
.final-cta::before {
  background-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1440' height='96' viewBox='0 0 1440 96' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 36 C240 78 480 0 720 36 C960 78 1200 0 1440 36 V96 H0 Z' fill='%231E6FCC'/%3E%3C/svg%3E");
}

.curriculum-showcase::before {
  background-color: var(--blue);
  background-image:
    radial-gradient(rgba(255, 255, 255, .14) 1px, transparent 1px),
    radial-gradient(circle 280px at 14% 168px, rgba(245, 197, 24, .26), transparent);
  background-size: 22px 22px, 100% 100%;
  background-repeat: repeat, no-repeat;
  background-position: 0 15px, 0 0;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1440' height='96' viewBox='0 0 1440 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 36 C240 78 480 0 720 36 C960 78 1200 0 1440 36 V96 H0 Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1440' height='96' viewBox='0 0 1440 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 36 C240 78 480 0 720 36 C960 78 1200 0 1440 36 V96 H0 Z' fill='black'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
  gap: 56px;
  align-items: center;
}

.eyebrow {
  display: inline-flex;
  color: var(--pink);
  font-weight: 800;
  letter-spacing: .02em;
  margin-bottom: 16px;
}

.eyebrow.light {
  color: var(--yellow);
}

h1,
h2,
h3 {
  margin: 0;
  font-family: var(--slab);
  line-height: 1.08;
  color: var(--ink);
  letter-spacing: 0;
}

h1 {
  font-size: clamp(40px, 4.6vw, 58px);
}

h2 {
  font-size: clamp(34px, 4vw, 52px);
}

h3 {
  font-size: 24px;
}

p {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.hero-subhead {
  max-width: 640px;
  margin-top: 24px;
  font-size: 20px;
}

.admission-hero h1,
.admission-hero .hero-subhead {
  color: #fff;
}

.hero-eyebrow {
  padding: 0;
  margin-bottom: 18px;
  border-radius: 0;
  background: transparent;
  color: var(--yellow);
  box-shadow: none;
}

.admission-hero .text-link {
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .24);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
  margin-top: 34px;
}

.stats-strip-section {
  padding: 28px 0 72px;
  background: #fff;
}

.stats-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding: 26px 34px;
  background: #fff;
  border: 1px solid rgba(221, 231, 242, .95);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(23, 50, 77, .08);
}

.stat-card {
  position: relative;
  padding: 0 34px;
  transition: transform .28s ease;
}

.stat-card:hover {
  transform: translateY(-4px);
}

.stat-card:hover strong {
  color: var(--blue);
}

.stat-card:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 4px;
  width: 1px;
  height: calc(100% - 8px);
  background: var(--line);
}

.stat-card span {
  display: block;
  margin-bottom: 8px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.stat-card:nth-child(1) span,
.stat-card:nth-child(3) span {
  color: var(--pink);
}

.stat-card:nth-child(4) span {
  color: var(--yellow);
}

.stat-card strong {
  display: block;
  font-family: var(--slab);
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.05;
  color: #172B45;
}

.stat-card p {
  margin-top: 6px;
  font-weight: 800;
  line-height: 1.3;
}

.hero-visual {
  position: relative;
}

.media-frame {
  position: relative;
  min-height: 580px;
  border-radius: 16px 16px 92px 16px;
  overflow: hidden;
  box-shadow: var(--shadow);
  isolation: isolate;
}

.media-frame::before {
  content: "";
  position: absolute;
  inset: 16px;
  border: 2px solid rgba(245, 197, 24, .9);
  border-radius: 16px 16px 72px 16px;
  z-index: 2;
  pointer-events: none;
}

.media-frame img {
  width: 100%;
  height: 100%;
  min-height: 580px;
  object-fit: cover;
  transition: transform .8s ease;
}

.media-frame:hover img {
  transform: scale(1.035);
}

.hero-card {
  position: absolute;
  z-index: 3;
  display: grid;
  gap: 2px;
  padding: 16px 18px;
  background: rgba(255, 255, 255, .94);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 16px 40px rgba(23, 50, 77, .16);
  transition: transform .28s ease, box-shadow .28s ease;
}

.media-frame:hover .hero-card {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(23, 50, 77, .2);
}

.hero-card strong {
  font-family: var(--slab);
  color: var(--blue);
  font-size: 28px;
}

.hero-card span {
  font-size: 13px;
  font-weight: 800;
  color: var(--muted);
}

.mini-card-one {
  left: 28px;
  bottom: 34px;
}

.mini-card-two {
  right: 26px;
  top: 30px;
}

.float-shape {
  position: absolute;
  border-radius: 999px;
  opacity: .4;
  pointer-events: none;
  animation: drift 14s ease-in-out infinite;
}

.shape-one {
  width: 120px;
  height: 120px;
  left: 4%;
  top: 18%;
  border: 2px solid var(--yellow);
}

.shape-two {
  width: 74px;
  height: 74px;
  right: 4%;
  bottom: 16%;
  background: rgba(240, 48, 138, .1);
  animation-delay: -4s;
}

.section-heading {
  position: relative;
  text-align: center;
  max-width: 720px;
  margin: 0 auto 46px;
}

.section-heading p,
.split-heading p {
  margin-top: 16px;
}

.doodle {
  position: absolute;
  width: 84px;
  height: 34px;
  background: url("data:image/svg+xml,%3Csvg width='100' height='40' viewBox='0 0 100 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 23C21 2 32 38 47 16C57 2 69 4 75 19C80 33 91 27 96 14' stroke='%23F0308A' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: .9;
}

.doodle-left {
  left: -62px;
  top: 8px;
}

.requirement-grid,
.persona-grid,
.support-grid,
.proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.feature-card {
  position: relative;
  min-height: 260px;
  padding: 34px;
  background: #fff;
  border: 2px solid var(--yellow);
  border-radius: var(--radius);
  box-shadow: 0 12px 34px rgba(30, 111, 204, .08);
  transition: transform .28s ease, box-shadow .28s ease;
}

.feature-card:hover,
.model-card:hover,
.persona-card:hover,
.support-item:hover,
.quote-card:hover,
.proof-stat:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}

.feature-card:hover .icon-badge {
  animation: iconBounce .55s ease;
}

.icon-badge {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  margin-bottom: 28px;
  background: var(--yellow);
  border-radius: 50%;
}

.icon-badge svg {
  width: 34px;
  height: 34px;
  stroke: var(--blue);
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.icon-badge svg.icon-rupee {
  width: 30px;
  height: 30px;
  fill: var(--blue);
  stroke: none;
}

.feature-card span {
  color: var(--pink);
  font-weight: 800;
}

.feature-card h3 {
  margin-top: 8px;
}

.feature-card p {
  font-weight: 700;
  margin-top: 8px;
}

.model,
.support,
.gallery {
  background: var(--soft);
}

.split-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 36px;
  align-items: end;
  margin-bottom: 42px;
}

.horizontal-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(310px, 1fr);
  gap: 18px;
  overflow-x: auto;
  padding: 10px 0 28px;
  scroll-snap-type: x mandatory;
}

.horizontal-track::-webkit-scrollbar {
  height: 8px;
}

.horizontal-track::-webkit-scrollbar-thumb {
  background: var(--blue);
  border-radius: 60px;
}

.model-card {
  scroll-snap-align: start;
  min-height: 390px;
  padding: 0;
  background: #fff;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  overflow: hidden;
  transition: transform .28s ease, box-shadow .28s ease;
}

.model-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  transition: transform .5s ease;
}

.model-card:hover img {
  transform: scale(1.05);
}

.model-card:hover .model-index {
  animation: iconBounce .55s ease;
  background: var(--yellow);
  color: #172B45;
}

.model-content {
  padding: 24px;
}

.model-index {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 22px;
  background: rgba(30, 111, 204, .1);
  color: var(--blue);
  border-radius: 50%;
  font-weight: 900;
}

.model-card h3,
.persona-card h3 {
  margin-bottom: 12px;
}

.persona-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(30, 111, 204, .08);
  transition: transform .28s ease, box-shadow .28s ease;
}

.persona-card img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  transition: transform .5s ease;
}

.persona-card:hover img {
  transform: scale(1.05);
}

.persona-card h3,
.persona-card p {
  padding-inline: 24px;
}

.persona-card h3 {
  padding-top: 24px;
}

.persona-card p {
  padding-bottom: 28px;
}

.curriculum-grid,
.lead-grid,
.faq-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1fr);
  gap: 56px;
  align-items: center;
}

.curriculum-showcase {
  position: relative;
  background:
    radial-gradient(circle at 14% 18%, rgba(245, 197, 24, .2), transparent 22%),
    radial-gradient(circle at 90% 72%, rgba(240, 48, 138, .18), transparent 20%),
    var(--blue);
  overflow: visible;
}

.curriculum-showcase::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .16;
  background-image: radial-gradient(rgba(255, 255, 255, .85) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}

.curriculum-showcase .container {
  position: relative;
  z-index: 1;
}

.curriculum-showcase h2,
.curriculum-showcase p {
  color: #fff;
}

.curriculum-showcase h2 {
  max-width: 520px;
}

.curriculum-showcase .reveal:first-child {
  max-width: 620px;
}

.curriculum-stack {
  display: grid;
  gap: 18px;
}

.curriculum-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 22px;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: var(--radius);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .08);
  transition: transform .28s ease, background .28s ease, box-shadow .28s ease;
}

.curriculum-card:hover {
  transform: translateY(-6px);
  background: rgba(255, 255, 255, .18);
  box-shadow: 0 24px 54px rgba(0, 0, 0, .16);
}

.curriculum-card span {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: var(--radius);
  background: var(--yellow);
  color: #172B45;
  font-family: var(--slab);
  font-size: 22px;
  font-weight: 900;
}

.curriculum-card h3 {
  color: #fff;
  font-size: 25px;
  margin-bottom: 8px;
}

.curriculum-card p {
  font-weight: 500;
  line-height: 1.55;
}

.curriculum-card.featured {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .26);
  transform: none;
}

.curriculum-card.featured:hover {
  transform: translateY(-6px);
}

.curriculum-card.featured span {
  background: var(--yellow);
  color: #172B45;
}

.curriculum-card.featured h3,
.curriculum-card.featured p {
  color: #fff;
}

.check-list {
  display: grid;
  gap: 14px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.check-list li {
  position: relative;
  padding-left: 34px;
  color: #244660;
  font-weight: 700;
}

.check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 20px;
  height: 20px;
  background: var(--yellow);
  border-radius: 50%;
  box-shadow: inset 0 0 0 6px #fff, 0 0 0 2px var(--yellow);
}

.flow-diagram {
  position: relative;
  min-height: 430px;
  border-radius: var(--radius);
  background: radial-gradient(circle at center, rgba(245, 197, 24, .22), transparent 38%), #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.flow-node,
.flow-core {
  position: absolute;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 16px;
  border-radius: var(--radius);
  font-family: var(--slab);
  font-weight: 800;
}

.flow-node {
  background: #fff;
  border: 2px solid var(--blue);
  color: var(--blue);
  min-width: 160px;
  animation: floatNode 4s ease-in-out infinite;
}

.node-one {
  left: 34px;
  top: 46px;
}

.node-two {
  right: 30px;
  top: 120px;
  animation-delay: -1.2s;
}

.node-three {
  left: 58px;
  bottom: 56px;
  animation-delay: -2s;
}

.flow-core {
  width: 180px;
  height: 180px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  box-shadow: 0 20px 38px rgba(30, 111, 204, .22);
}

.flow-line {
  position: absolute;
  height: 3px;
  background: linear-gradient(90deg, var(--pink), var(--yellow));
  transform-origin: left;
  animation: drawLine 2.4s ease both infinite alternate;
}

.line-one {
  width: 160px;
  left: 168px;
  top: 118px;
  transform: rotate(23deg);
}

.line-two {
  width: 155px;
  right: 156px;
  bottom: 146px;
  transform: rotate(139deg);
}

.support-grid {
  grid-template-columns: repeat(4, 1fr);
}

.support-item {
  padding: 28px;
  background: #fff;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  overflow: hidden;
  transition: transform .28s ease, box-shadow .28s ease;
}

.support-item img {
  width: calc(100% + 56px);
  height: 140px;
  margin: -28px -28px 22px;
  object-fit: cover;
  transition: transform .45s ease, filter .45s ease;
}

.support-item:hover span {
  color: var(--pink);
}

.support-item:hover img {
  transform: scale(1.06);
  filter: saturate(1.08);
}

.support-item span {
  display: inline-flex;
  margin-bottom: 18px;
  color: var(--blue);
  font-family: var(--slab);
  font-size: 22px;
  font-weight: 800;
}

.testimonial-rail {
  overflow: hidden;
  padding: 12px 0;
}

.testimonial-track {
  display: flex;
  width: max-content;
  gap: 18px;
  animation: slideRail 24s linear infinite;
}

.testimonial-rail:hover .testimonial-track {
  animation-play-state: paused;
}

.quote-card {
  width: 360px;
  min-height: 210px;
  padding: 28px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(30, 111, 204, .08);
  transition: transform .28s ease, box-shadow .28s ease;
}

.quote-card p {
  font-size: 18px;
  color: #244660;
}

.quote-card strong {
  display: block;
  margin-top: 22px;
  color: var(--blue);
}

.proof {
  background: #fff;
}

.proof-grid {
  position: relative;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  padding: 48px 86px;
  overflow: hidden;
  border-radius: 18px;
  background: #F8A7E4;
  color: #111;
}

.proof-stat {
  position: relative;
  z-index: 1;
  min-height: 228px;
  padding: 34px 24px;
  text-align: center;
  border-radius: 8px;
  background: #fff;
  transition: transform .28s ease, box-shadow .28s ease;
}

.proof-stat:hover {
  box-shadow: 0 22px 48px rgba(0, 0, 0, .12);
}

.proof-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin: 0 auto 12px;
  color: #4AA3FF;
  font-family: var(--slab);
  font-weight: 900;
}

.proof-stat strong {
  display: block;
  font-family: var(--sans);
  font-size: clamp(34px, 4vw, 44px);
  line-height: 1.1;
}

.proof-stat span:last-child {
  display: block;
  margin-top: 12px;
  color: #111;
  font-size: 16px;
  font-weight: 500;
}

.masonry-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 190px;
  gap: 16px;
}

.gallery-item {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius);
  background: #dbe8f5;
}

.stats-strip-section,
.requirements,
.why-band,
.who,
.support,
.testimonials,
.proof,
.gallery,
.faqs,
.final-cta {
  overflow: visible;
}

.gallery-item.tall {
  grid-column: span 2;
  grid-row: span 2;
}

.gallery-item.wide {
  grid-column: span 2;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.gallery-item figcaption {
  position: absolute;
  inset: auto 12px 12px 12px;
  padding: 10px 12px;
  background: rgba(23, 50, 77, .78);
  color: #fff;
  border-radius: var(--radius);
  font-weight: 800;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .25s ease, transform .25s ease;
}

.gallery-item:hover img {
  transform: scale(1.07);
}

.gallery-item:hover figcaption {
  opacity: 1;
  transform: translateY(0);
}

.faq-grid {
  align-items: start;
}

.accordion {
  display: grid;
  gap: 14px;
}

details {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(30, 111, 204, .06);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  will-change: height;
}

details:hover {
  transform: translateY(-3px);
  border-color: rgba(30, 111, 204, .34);
  box-shadow: 0 16px 36px rgba(30, 111, 204, .11);
}

details[open] {
  border-color: rgba(30, 111, 204, .22);
}

details[open] summary {
  color: var(--pink);
}

summary {
  position: relative;
  cursor: pointer;
  padding: 22px 58px 22px 24px;
  font-family: var(--slab);
  font-weight: 800;
  color: var(--ink);
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}

summary::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 12px;
  height: 12px;
  border-right: 3px solid var(--blue);
  border-bottom: 3px solid var(--blue);
  transform: translateY(-64%) rotate(45deg);
  transition: transform .25s ease;
}

details[open] summary::after {
  transform: translateY(-30%) rotate(225deg);
}

details p {
  padding: 0 24px 24px;
}

details ul {
  margin: 0;
  padding: 0 24px 24px 46px;
  color: var(--muted);
  line-height: 1.65;
}

.faq-age-table {
  padding: 0 24px 24px;
}

.faq-age-table h3 {
  margin: 0 0 8px;
  color: var(--blue);
  font-family: var(--sans);
  font-size: 16px;
}

.faq-age-table p {
  padding: 0;
  margin: 0 0 18px;
}

.final-cta {
  background:
    radial-gradient(circle at 85% 20%, rgba(245, 197, 24, .2), transparent 26%),
    var(--blue);
}

.final-cta h2,
.final-cta p {
  color: #fff;
}

.lead-form {
  display: grid;
  gap: 14px;
  padding: 28px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .18);
  transition: transform .28s ease, box-shadow .28s ease;
}

.hidden-field {
  display: none;
}

.hero-form {
  align-self: stretch;
  gap: 12px;
  padding: 26px 24px;
  background: #FFE59B;
  border: 0;
  border-radius: 10px;
  box-shadow: 0 24px 54px rgba(0, 0, 0, .2);
}

.hero-form h2 {
  max-width: 300px;
  margin: 0 auto;
  color: #252525;
  font-family: var(--sans);
  font-size: 18px;
  line-height: 1.12;
  text-align: center;
}

.hero-form p {
  margin-bottom: 4px;
}

.school-finder {
  display: grid;
  gap: 10px;
  margin: 4px 0 16px;
  text-align: center;
}

.school-finder span {
  color: #2c2c2c;
  font-size: 13px;
  font-weight: 800;
}

.school-finder div {
  display: grid;
  grid-template-columns: 1fr 136px;
  gap: 12px;
}

.school-finder button {
  min-height: 34px;
  border: 1px solid var(--pink);
  border-radius: 2px;
  background: rgba(255, 255, 255, .16);
  color: var(--pink);
  font-size: 13px;
  cursor: pointer;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 10px;
}

.form-grid-full {
  grid-column: 1 / -1;
}

.lead-form select:disabled {
  background: #f3f3f3;
  color: #888;
  cursor: not-allowed;
}

.lead-form { position: relative; }

.form-success {
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 36px 28px;
  z-index: 5;
  animation: form-success-fade .35s ease-out both;
  box-shadow: 0 12px 36px rgba(30, 111, 204, .10);
}
.form-success[hidden] { display: none; }
.form-success-icon {
  width: 72px;
  height: 72px;
  margin-bottom: 18px;
  filter: drop-shadow(0 8px 18px rgba(245, 197, 24, .35));
  animation: form-success-pop .55s cubic-bezier(.18, .9, .35, 1.25) .12s both;
}
.form-success h3 {
  font-family: var(--slab);
  font-size: 26px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
  letter-spacing: -0.005em;
}
.form-success p {
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.55;
  max-width: 320px;
  margin: 0;
}
@keyframes form-success-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes form-success-pop {
  0% { transform: scale(0.4); opacity: 0; }
  60% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

.btn-spinner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn-spinner-icon {
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: btn-spin .7s linear infinite;
  display: inline-block;
}
@keyframes btn-spin {
  to { transform: rotate(360deg); }
}
.lead-form button[disabled] {
  opacity: .85;
  cursor: wait;
}

.lead-form select {
  width: 100%;
  min-height: 38px;
  padding: 0 10px;
  border: 0;
  border-radius: 18px;
  background: #fff;
  color: var(--ink);
  outline: none;
}

.hero-form label {
  gap: 5px;
  color: #202020;
  font-size: 13px;
}

.hero-form input,
.hero-form select {
  min-height: 34px;
  border: 0;
  border-radius: 18px;
  background: #fff;
  font-size: 13px;
}

.hero-form .btn {
  min-height: 36px;
  margin-top: 4px;
  border: 1px solid var(--pink);
  border-radius: 2px;
  background: rgba(255, 255, 255, .12);
  color: var(--pink);
  box-shadow: none;
  font-size: 13px;
  font-weight: 500;
}

.cta-panel {
  display: grid;
  gap: 16px;
  padding: 30px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .18);
}

.cta-panel h3 {
  color: var(--ink);
}

.curriculum-ribbon {
  position: relative;
  margin: 0 auto 60px;
  padding: 58px 32px 48px;
  overflow: hidden;
  text-align: center;
  border-radius: 18px;
  background:
    radial-gradient(circle at 20% 10%, rgba(255, 255, 255, .18), transparent 20%),
    radial-gradient(circle at 74% 82%, rgba(255, 255, 255, .14), transparent 22%),
    #F8A7E4;
}

.curriculum-ribbon::before,
.proof-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .16;
  pointer-events: none;
  background:
    linear-gradient(155deg, transparent 0 24%, rgba(255, 255, 255, .46) 24% 36%, transparent 36% 100%),
    radial-gradient(circle at 98% 80%, rgba(255, 255, 255, .55), transparent 18%);
}

.curriculum-ribbon h2,
.requirements .section-heading h2,
.why-band h2,
.testimonials h2 {
  color: #2A6CE6;
  text-shadow: 1px 1px 0 #fff, -1px -1px 0 rgba(255, 255, 255, .75);
}

.curriculum-ribbon h3 {
  position: relative;
  margin-top: 42px;
  color: #262626;
  font-family: var(--sans);
  font-size: 20px;
  text-transform: uppercase;
}

.curriculum-ribbon p {
  position: relative;
  margin-top: 18px;
  color: #3f3f3f;
}

.slider-dots {
  position: relative;
  display: inline-flex;
  gap: 7px;
  align-items: center;
  margin-top: 30px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #fff;
}

.slider-dots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d5c8dc;
}

.slider-dots span:first-child {
  background: #7c2e8f;
}

.program-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.program-card {
  min-height: 510px;
  padding: 42px 26px 34px;
  text-align: center;
  border-radius: 18px;
  transition: transform .28s ease, box-shadow .28s ease;
}

.program-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}

.program-card h3 {
  font-family: var(--sans);
  font-size: 18px;
  font-style: italic;
  line-height: 1.1;
}

.program-card span {
  display: block;
  margin: 3px 0 16px;
  color: #172B45;
  font-size: 17px;
  font-weight: 900;
  font-style: italic;
}

.program-card p {
  min-height: 136px;
  color: #243349;
  font-size: 14px;
  font-style: italic;
  line-height: 1.45;
}

.program-card img {
  width: min(230px, 100%);
  height: 210px;
  margin: 34px auto 0;
  object-fit: cover;
  border-radius: 46% 54% 42% 58% / 54% 42% 58% 46%;
}

.program-link-cta {
  position: relative;
  display: inline-flex;
  margin-top: 20px;
  color: var(--blue);
  font-weight: 900;
  letter-spacing: 0;
}

.program-link-cta::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -5px;
  height: 3px;
  border-radius: 999px;
  background: var(--pink);
  transition: right .24s ease;
}

.program-link-cta:hover {
  color: var(--pink);
  transform: translateY(-2px);
}

.program-link-cta:hover::after {
  right: 0;
}

.program-playgroup { background: #8993F7; }
.program-nursery { background: #FAFE76; }
.program-jkg { background: #FBD089; }
.program-skg { background: #86BDF2; }

.why-band {
  background: #fff;
}

.why-band .container {
  position: relative;
  overflow: hidden;
  padding: 50px 48px 56px;
  border-radius: 18px;
  background: #ADD0FF;
}

.why-band .section-heading {
  margin-bottom: 36px;
}

.why-band .section-heading p {
  max-width: 720px;
  margin-inline: auto;
  color: #16304c;
  font-size: 14px;
  line-height: 1.55;
}

.why-icon-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
  max-width: 1040px;
  margin: 0 auto;
}

.why-icon-card {
  min-height: 158px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 16px;
  padding: 20px 16px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 14px 28px rgba(30, 111, 204, .08);
  text-align: center;
}

.why-icon {
  width: 46px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50% 45% 55% 48%;
  background: #FFE690;
  color: var(--ink);
  font-family: var(--slab);
  font-weight: 900;
}

.why-icon-card h3 {
  max-width: 124px;
  color: #222;
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.2;
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  align-items: center;
}

.testimonial-grid .quote-card {
  position: relative;
  width: auto;
  min-height: 330px;
  padding: 40px 28px;
  border: 0;
  border-radius: 0 0 14px 14px;
  box-shadow: none;
}

.testimonial-grid .quote-card::after {
  content: "";
  position: absolute;
  right: 0;
  top: -20px;
  border-style: solid;
  border-width: 0 0 24px 20px;
}

.quote-yellow {
  background: #FFE399;
}

.quote-yellow::after {
  border-color: transparent transparent #FFE399 transparent;
}

.quote-cream {
  background: #FFF2DF;
  transform: translateY(-58px);
}

.quote-cream::after {
  border-color: transparent transparent #FFF2DF transparent;
}

.testimonial-grid .quote-card p {
  color: #252525;
  font-size: 16px;
  line-height: 1.55;
}

.testimonial-grid .quote-card strong {
  color: #111;
  line-height: 1.35;
}

.lead-form label {
  display: grid;
  gap: 8px;
  font-weight: 800;
  color: #244660;
}

.lead-form input {
  width: 100%;
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  outline: none;
  transition: border .2s ease, box-shadow .2s ease;
}

.lead-form input:focus,
.lead-form select:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(30, 111, 204, .12);
}

.lead-form:hover {
  transform: translateY(-4px);
}

.floating-enroll-cta {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 45;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 22px;
  background: var(--yellow);
  color: #17324D;
  border: 2px solid rgba(23, 50, 77, .08);
  border-radius: 999px;
  font-weight: 900;
  box-shadow: 0 16px 36px rgba(245, 197, 24, .35);
  animation: whatsBounce 3s infinite;
}

.floating-enroll-cta:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 44px rgba(245, 197, 24, .45);
}

.carousel-dots {
  display: none;
}

.site-footer {
  padding: 58px 0 24px;
  background: #0F2238;
  color: #fff;
}

.footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(240px, .8fr);
  gap: 56px;
  align-items: start;
}

.footer-logo {
  width: 72px;
  height: 72px;
  object-fit: contain;
  margin-bottom: 20px;
}

.site-footer p,
.site-footer a,
.footer-bottom {
  color: rgba(255, 255, 255, .72);
}

.site-footer h3 {
  color: #fff;
  font-size: 20px;
  margin-bottom: 18px;
}

.site-footer a {
  display: block;
  margin: 10px 0;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 42px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .16);
  font-size: 14px;
}

.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s ease, transform .7s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes spark {
  0% { opacity: 0; transform: scale(.4) rotate(0deg); }
  35% { opacity: 1; transform: scale(1.2) rotate(90deg); }
  100% { opacity: 0; transform: translate(12px, -12px) scale(.3) rotate(180deg); }
}

@keyframes ctaPulse {
  0%, 72%, 100% { box-shadow: 0 14px 28px rgba(245, 197, 24, .28); }
  78% { box-shadow: 0 0 0 10px rgba(245, 197, 24, .16), 0 14px 28px rgba(245, 197, 24, .28); }
  86% { box-shadow: 0 0 0 0 rgba(245, 197, 24, 0), 0 14px 28px rgba(245, 197, 24, .28); }
}

@keyframes drift {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(18px, -22px, 0); }
}

@keyframes iconBounce {
  0%, 100% { transform: translateY(0); }
  45% { transform: translateY(-9px); }
}

@keyframes doodleWiggle {
  0%, 100% { transform: rotate(-10deg) translateX(0); }
  35% { transform: rotate(-16deg) translateX(-4px); }
  70% { transform: rotate(-6deg) translateX(3px); }
}

@keyframes floatNode {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@keyframes drawLine {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}

@keyframes barGrow {
  to { height: var(--h); }
}

@keyframes lineDraw {
  to { stroke-dashoffset: 0; }
}

@keyframes slideRail {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@keyframes whatsBounce {
  0%, 100% { transform: translateY(0); }
  12% { transform: translateY(-6px); }
  24% { transform: translateY(0); }
}

@keyframes doodleFloat {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(-1deg); }
  50% { transform: translate3d(10px, -14px, 0) rotate(2deg); }
}

@media (max-width: 980px) {
  .nav-toggle {
    display: flex;
  }

  .nav-links {
    position: fixed;
    left: 16px;
    right: 16px;
    top: 88px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
  }

  .nav-links.is-open {
    display: flex;
  }

  .hero-grid,
  .curriculum-grid,
  .lead-grid,
  .faq-grid,
  .split-heading {
    grid-template-columns: 1fr;
  }

  .hero {
    min-height: auto;
  }

  .admission-hero {
    padding: 72px 0;
  }

  .media-frame,
  .media-frame img {
    min-height: 420px;
  }

  .requirement-grid,
  .persona-grid,
  .support-grid,
  .proof-grid {
    grid-template-columns: 1fr;
  }

  .program-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .jumbo-program-grid,
  .eyfs-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .eyfs-grid .support-item,
  .eyfs-grid .support-item:nth-child(1),
  .eyfs-grid .support-item:nth-child(2),
  .eyfs-grid .support-item:nth-child(3),
  .eyfs-grid .support-item:nth-child(4),
  .eyfs-grid .support-item:nth-child(5),
  .eyfs-grid .support-item:nth-child(6),
  .eyfs-grid .support-item:nth-child(7) {
    grid-column: auto;
    grid-row: auto;
    max-width: none;
    justify-self: stretch;
  }

  .admission-flow {
    grid-template-columns: 1fr;
  }

  .admission-flow::before {
    display: none;
  }

  .why-icon-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .testimonial-grid {
    grid-template-columns: 1fr;
  }

  .quote-cream {
    transform: none;
  }

  .proof-grid {
    grid-template-columns: repeat(2, 1fr);
    padding: 36px;
  }

  .stats-strip {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 28px;
  }

  .stat-card:nth-child(2)::after {
    display: none;
  }

  .curriculum-card.featured,
  .curriculum-card.featured:hover {
    transform: translateY(-6px);
  }

  .masonry-gallery {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-item.tall {
    grid-column: span 1;
  }

  .gallery-item.wide {
    grid-column: span 2;
  }
}

@media (max-width: 620px) {
  .container {
    width: min(100% - 28px, 1160px);
  }

  .section-pad {
    padding: 70px 0;
  }

  .nav-shell {
    width: calc(100% - 24px);
    min-height: 74px;
  }

  .brand-logo {
    width: 96px;
    height: 68px;
  }

  h1 {
    font-size: 40px;
  }

  .hero-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .admission-hero .hero-actions {
    align-items: stretch;
  }

  .stats-strip-section {
    padding: 20px 0 58px;
  }

  .stats-strip {
    grid-template-columns: 1fr;
    padding: 24px;
  }

  .stat-card {
    padding: 0 0 20px;
  }

  .stat-card:not(:last-child)::after {
    left: 0;
    right: auto;
    top: auto;
    bottom: 0;
    width: 100%;
    height: 1px;
  }

  .stat-card:nth-child(2)::after {
    display: block;
  }

  .btn {
    width: 100%;
  }

  .media-frame,
  .media-frame img {
    min-height: 360px;
  }

  .hero-card {
    position: static;
    margin: 10px;
  }

  .form-grid,
  .school-finder div,
  .program-grid,
  .jumbo-program-grid,
  .admission-flow,
  .eyfs-grid,
  .why-icon-grid,
  .proof-grid {
    grid-template-columns: 1fr;
  }

  .eyfs-grid .support-item,
  .eyfs-grid .support-item:nth-child(1),
  .eyfs-grid .support-item:nth-child(2),
  .eyfs-grid .support-item:nth-child(3),
  .eyfs-grid .support-item:nth-child(4),
  .eyfs-grid .support-item:nth-child(5),
  .eyfs-grid .support-item:nth-child(6),
  .eyfs-grid .support-item:nth-child(7) {
    grid-column: auto;
    grid-row: auto;
    max-width: none;
    justify-self: stretch;
  }

  .admission-flow::before {
    display: none;
  }

  .curriculum-ribbon,
  .why-band .container {
    padding-inline: 20px;
  }

  .program-card {
    min-height: auto;
  }

  .program-card p {
    min-height: auto;
  }

  .media-frame {
    display: grid;
  }

  .media-frame::before {
    inset: 10px;
  }

  .flow-diagram {
    min-height: 520px;
  }

  .flow-node,
  .flow-core {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    animation: none;
  }

  .node-one {
    top: 34px;
  }

  .node-two {
    top: 145px;
  }

  .node-three {
    bottom: 34px;
  }

  .flow-core {
    top: 50%;
    transform: translate(-50%, -50%);
  }

  .flow-line {
    display: none;
  }

  .curriculum-card {
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 18px;
  }

  .curriculum-card span {
    width: 42px;
    height: 42px;
    font-size: 19px;
  }

  .curriculum-card h3 {
    font-size: 21px;
  }

  .masonry-gallery {
    grid-template-columns: 1fr;
    grid-auto-rows: 230px;
  }

  .gallery-item.wide {
    grid-column: span 1;
  }

  .gallery-item.tall {
    grid-column: span 1;
  }

  .footer-grid,
  .footer-bottom {
    grid-template-columns: 1fr;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }
}

/* Unified admissions landing polish */
.hero-banner::after {
  background:
    linear-gradient(90deg, rgba(12, 35, 65, .78) 0%, rgba(12, 35, 65, .58) 42%, rgba(12, 35, 65, .24) 100%),
    linear-gradient(180deg, rgba(30, 111, 204, .08), rgba(30, 111, 204, .04));
}

.hero-form {
  position: relative;
  overflow: hidden;
  padding: 28px;
  background: rgba(255, 255, 255, .96);
  border: 1px solid rgba(221, 231, 242, .95);
  border-top: 6px solid var(--yellow);
  border-radius: var(--radius);
  box-shadow: 0 24px 60px rgba(8, 27, 48, .22);
}

.hero-form h2 {
  max-width: 360px;
  color: var(--ink);
  font-family: var(--slab);
  font-size: 22px;
  line-height: 1.18;
}

.school-finder {
  margin: 6px 0 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--soft);
}

.school-finder span {
  color: var(--blue);
  font-size: 12px;
  letter-spacing: .02em;
}

.school-finder button,
.hero-form .btn {
  min-height: 40px;
  border: 0;
  border-radius: 10px;
  background: var(--yellow);
  color: #172B45;
  font-weight: 800;
  box-shadow: 0 10px 22px rgba(245, 197, 24, .24);
}

.hero-form .btn {
  min-height: 46px;
  margin-top: 8px;
  font-size: 15px;
}

.hero-form label {
  color: #244660;
  font-size: 12px;
  font-weight: 900;
}

.hero-form input,
.hero-form select,
.lead-form select {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.program-intro {
  max-width: 820px;
}

.program-grid {
  gap: 22px;
}

.program-card {
  min-height: 0;
  padding: 28px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(30, 111, 204, .07);
  text-align: left;
  overflow: hidden;
  isolation: isolate;
  transform: translateY(0);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.program-card::before {
  content: "";
  display: block;
  width: 54px;
  height: 5px;
  margin-bottom: 22px;
  border-radius: 999px;
  background: var(--blue);
  transition: width .3s ease, background .3s ease;
}

.jumbo-program-grid .program-card:nth-child(1)::before {
  background: #6D7BFF;
}

.jumbo-program-grid .program-card:nth-child(2)::before {
  background: #FFD84D;
}

.jumbo-program-grid .program-card:nth-child(3)::before {
  background: #FF8FD7;
}

.jumbo-program-grid .program-card:nth-child(4)::before {
  background: #FF9B45;
}

.jumbo-program-grid .program-card:nth-child(5)::before {
  background: #23A6A1;
}

.jumbo-program-grid .program-card:nth-child(6)::before {
  background: #1E6FCC;
}

.program-nursery::before {
  background: var(--yellow);
}

.program-jkg::before {
  background: var(--orange);
}

.program-skg::before {
  background: var(--teal);
}

.program-card h3 {
  color: var(--ink);
  font-family: var(--slab);
  font-size: 22px;
  font-style: normal;
}

.program-card span {
  margin: 8px 0 14px;
  color: var(--pink);
  font-size: 14px;
  font-style: normal;
}

.program-card p {
  min-height: 0;
  color: var(--muted);
  font-size: 14px;
  font-style: normal;
  line-height: 1.62;
}

.program-card img {
  width: 100%;
  height: 180px;
  margin-top: 24px;
  border-radius: 12px;
  transition: transform .5s ease, filter .5s ease;
}

.program-card:hover {
  transform: translateY(-9px);
  border-color: rgba(30, 111, 204, .28);
  box-shadow: 0 24px 56px rgba(30, 111, 204, .16);
}

.program-card:hover::before {
  width: 86px;
}

.program-card:hover img {
  transform: scale(1.055);
  filter: saturate(1.08) contrast(1.02);
}

.program-card:hover h3 {
  color: var(--blue);
}

.jumbo-program-grid {
  grid-template-columns: repeat(4, 1fr);
}

.admission-flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.admission-flow::before {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  top: 45px;
  height: 4px;
  background: linear-gradient(90deg, var(--yellow), var(--pink), var(--teal));
  border-radius: 999px;
}

.admission-flow article {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 12px;
  padding: 30px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-align: center;
  box-shadow: 0 10px 28px rgba(30, 111, 204, .07);
}

.admission-flow article span {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--yellow);
  color: var(--blue);
  font-family: var(--slab);
  font-size: 26px;
  font-weight: 900;
}

.admission-flow article h3 {
  margin-top: 4px;
}

.eyfs-grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.eyfs-grid .support-item {
  min-height: 0;
  padding: 20px;
}

.eyfs-grid .support-item img {
  width: calc(100% + 40px);
  height: 220px;
  margin: -20px -20px 22px;
  object-position: center;
}

.eyfs-grid .support-item span {
  margin-bottom: 14px;
  font-size: 22px;
  line-height: 1.12;
}

.eyfs-grid .support-item p {
  margin: 0;
  font-size: 15px;
  line-height: 1.58;
}

.eyfs-grid .support-item:nth-child(7) {
  grid-column: auto;
}

.why-icon-card p {
  padding: 0 20px 22px;
  margin-top: 0;
  font-size: 14px;
  line-height: 1.55;
}

.jumbo-testimonial-track {
  animation-duration: 46s;
}

.testimonials .testimonial-rail {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 12px 0 22px;
}

.testimonials .testimonial-track {
  padding-left: 24px;
}

.testimonials .quote-card {
  flex: 0 0 360px;
  width: 360px;
}

.why-band {
  background:
    linear-gradient(180deg, rgba(255, 177, 237, .38), rgba(255, 177, 237, .16)),
    var(--soft);
}

.why-band .container {
  padding: 52px;
  overflow: hidden;
  border: 1px solid rgba(240, 48, 138, .1);
  border-radius: 18px;
  background: rgba(255, 255, 255, .5);
  box-shadow: 0 18px 46px rgba(240, 48, 138, .08);
}

.proof-grid::before,
.curriculum-ribbon::before {
  content: none;
}

.why-band .container::before,
.why-band .container::after {
  content: none;
}

.curriculum-ribbon h2,
.requirements .section-heading h2,
.why-band h2,
.testimonials h2 {
  color: var(--ink);
  text-shadow: none;
}

.why-icon-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.why-icon-card {
  min-height: 140px;
  justify-items: start;
  place-items: initial;
  align-content: start;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  text-align: left;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.why-icon-card img {
  width: 100%;
  height: clamp(210px, 18vw, 280px);
  object-fit: cover;
  object-position: center;
  transition: transform .5s ease, filter .5s ease;
}

.why-icon {
  width: 46px;
  height: 46px;
  margin: 20px 20px 8px;
  border-radius: 50%;
  background: var(--yellow);
  color: var(--blue);
  transition: transform .3s ease, background .3s ease, color .3s ease;
}

.why-icon-card h3 {
  max-width: none;
  padding: 22px 20px 10px;
  color: var(--ink);
  font-family: var(--slab);
  font-size: 18px;
}

.why-icon-card:hover {
  transform: translateY(-8px);
  border-color: rgba(30, 111, 204, .3);
  box-shadow: 0 22px 52px rgba(30, 111, 204, .14);
}

.why-icon-card:hover img {
  transform: scale(1.06);
  filter: saturate(1.08);
}

.why-icon-card:hover .why-icon {
  transform: translateY(-3px) rotate(-4deg);
  background: var(--blue);
  color: #fff;
}

.why-icon-card:hover h3 {
  color: var(--blue);
}

.testimonial-grid {
  align-items: stretch;
  gap: 22px;
}

.testimonial-grid .quote-card {
  min-height: 0;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(30, 111, 204, .07);
}

.testimonial-grid .quote-card::after {
  content: none;
}

.quote-yellow,
.quote-cream {
  background: #fff;
  transform: none;
}

.testimonial-grid .quote-card p {
  color: #244660;
  font-size: 16px;
}

.testimonial-grid .quote-card strong {
  color: var(--blue);
}

.proof {
  background: var(--blue);
}

.proof-grid {
  padding: 0;
  overflow: visible;
  border-radius: 0;
  background: transparent;
  color: #fff;
}

.proof-stat {
  min-height: 210px;
  padding: 34px 22px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .1);
  color: #fff;
}

.proof-icon {
  color: var(--yellow);
}

.proof-stat strong {
  font-family: var(--slab);
  color: #fff;
}

.proof-stat span:last-child {
  color: rgba(255, 255, 255, .86);
  font-weight: 800;
}

@media (max-width: 980px) {
  .why-icon-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .hero-form {
    padding: 22px;
  }

  .why-icon-grid {
    grid-template-columns: 1fr;
  }

  .why-band .container {
    padding: 28px 20px;
  }
}

/* Brighter kids-site polish */
.page-doodle,
.section-doodle {
  animation: doodlePlay 7s ease-in-out infinite;
}

.doodle-rainbow {
  background-image: url("data:image/svg+xml,%3Csvg width='150' height='150' viewBox='0 0 150 150' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke-linecap='round' stroke-linejoin='round' stroke-width='5'%3E%3Cpath d='M18 102a57 57 0 0 1 114 0' stroke='%23FF8FD7'/%3E%3Cpath d='M34 102a41 41 0 0 1 82 0' stroke='%23FFD84D'/%3E%3Cpath d='M50 102a25 25 0 0 1 50 0' stroke='%234DB7FF'/%3E%3Cpath d='M33 97c-13-11-32 7-18 22 11 12 30 5 30-10' stroke='%23FFFFFF' opacity='.8'/%3E%3Cpath d='M106 98c7-18 32-12 33 8 1 19-26 26-35 9' stroke='%23FFFFFF' opacity='.8'/%3E%3Cpath d='M21 37l3 8 8 3-8 3-3 8-3-8-8-3 8-3 3-8Z' stroke='%23FFD84D'/%3E%3Cpath d='M126 30l2 5 5 2-5 2-2 5-2-5-5-2 5-2 2-5Z' stroke='%23FF8FD7'/%3E%3C/g%3E%3C/svg%3E");
}

.doodle-flask {
  background-image: url("data:image/svg+xml,%3Csvg width='150' height='150' viewBox='0 0 150 150' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M74 18h42' stroke='%236D7BFF'/%3E%3Cpath d='M81 28 64 90c-8 27 11 46 38 46s46-19 38-46l-17-62' stroke='%236D7BFF'/%3E%3Cpath d='M73 83c20-15 38 13 58-3' stroke='%23FF8FD7'/%3E%3Cpath d='M87 50h22' stroke='%23FFD84D'/%3E%3Ccircle cx='95' cy='101' r='4' stroke='%2323A6A1'/%3E%3Ccircle cx='114' cy='116' r='3' stroke='%23FF9B45'/%3E%3Ccircle cx='120' cy='95' r='3' stroke='%23FF8FD7'/%3E%3C/g%3E%3C/svg%3E");
}

.doodle-clock {
  background-image: url("data:image/svg+xml,%3Csvg width='150' height='150' viewBox='0 0 150 150' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='75' cy='77' r='44' stroke='%236D7BFF'/%3E%3Ccircle cx='75' cy='77' r='35' stroke='%234DB7FF'/%3E%3Cpath d='M75 77 59 59M75 77l22-15' stroke='%23FF8FD7'/%3E%3Cpath d='M42 32c-13 4-20 15-21 28' stroke='%23FFD84D'/%3E%3Cpath d='M108 32c13 4 20 15 21 28' stroke='%23FFD84D'/%3E%3Cpath d='M48 120l-8 13M102 120l8 13M45 23 28 42M105 23l17 19' stroke='%23FF9B45'/%3E%3C/g%3E%3C/svg%3E");
}

.doodle-sun {
  background-image: url("data:image/svg+xml,%3Csvg width='130' height='130' viewBox='0 0 130 130' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke-width='4' stroke-linecap='round'%3E%3Ccircle cx='65' cy='65' r='30' stroke='%23FFD84D'/%3E%3Cpath d='M65 13v18M65 99v18M13 65h18M99 65h18M28 28l13 13M89 89l13 13M102 28 89 41M41 89 28 102' stroke='%23FF9B45'/%3E%3Cpath d='M54 61c2 4 6 6 11 6s9-2 11-6' stroke='%23FF8FD7'/%3E%3Cpath d='M53 51h.1M77 51h.1' stroke='%236D7BFF'/%3E%3C/g%3E%3C/svg%3E");
}

.requirements {
  background:
    radial-gradient(circle at 8% 14%, rgba(255, 216, 77, .2), transparent 22%),
    linear-gradient(180deg, #fff 0%, #FFF9DF 100%);
}

.who {
  background:
    radial-gradient(circle at 88% 18%, rgba(255, 143, 215, .16), transparent 22%),
    #FFF7FB;
}

.support {
  background:
    radial-gradient(circle at 10% 80%, rgba(35, 166, 161, .16), transparent 24%),
    linear-gradient(180deg, #F6FAFF 0%, #F0FFF9 100%);
}

.testimonials {
  background:
    radial-gradient(circle at 92% 16%, rgba(255, 216, 77, .22), transparent 20%),
    #FFFBED;
}

.gallery {
  background:
    radial-gradient(circle at 12% 18%, rgba(109, 123, 255, .12), transparent 24%),
    #F6FAFF;
}

.faqs {
  background:
    radial-gradient(circle at 92% 82%, rgba(255, 143, 215, .14), transparent 22%),
    #FFFFFF;
}

@keyframes doodlePlay {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1) rotate(-2deg); }
  28% { transform: translate3d(8px, -12px, 0) scale(1.04) rotate(2deg); }
  52% { transform: translate3d(2px, -4px, 0) scale(.98) rotate(-1deg); }
  72% { transform: translate3d(-8px, -10px, 0) scale(1.03) rotate(3deg); }
}

@media (max-width: 980px) {
  .page-doodle,
  .section-doodle {
    padding: 14px;
  }

  .page-doodle {
    width: 104px;
    height: 104px;
  }

  .section-doodle.doodle-rainbow,
  .section-doodle.doodle-flask,
  .section-doodle.doodle-clock,
  .section-doodle.doodle-sun {
    width: 88px;
    height: 88px;
  }

  .section-doodle.doodle-rocket {
    width: 98px;
    height: 124px;
  }
}

@media (max-width: 640px) {
  .page-doodle,
  .section-doodle {
    padding: 10px;
  }

  .page-doodle {
    width: 72px;
    height: 72px;
  }

  .section-doodle.doodle-rainbow,
  .section-doodle.doodle-flask,
  .section-doodle.doodle-clock,
  .section-doodle.doodle-sun {
    width: 58px;
    height: 58px;
  }

  .section-doodle.doodle-rocket {
    width: 64px;
    height: 82px;
  }

  .section-doodle.doodle-rainbow {
    left: 1%;
    top: 18px;
  }

  .section-doodle.doodle-flask {
    right: 1%;
    bottom: 18px;
  }

  .section-doodle.doodle-clock {
    left: 1%;
    bottom: 14px;
  }

  .section-doodle.doodle-sun {
    right: 2%;
    top: 18px;
  }
}

/* Small section-specific interactions */
.admission-flow article {
  overflow: visible;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.admission-flow article:hover {
  transform: translateY(-6px);
  border-color: rgba(30, 111, 204, .28);
  box-shadow: 0 18px 42px rgba(30, 111, 204, .12);
}

.admission-flow article:hover span {
  transform: scale(1.08);
}

.admission-flow article span {
  transition: transform .28s ease, background .28s ease, color .28s ease;
}

/* Admissions stepper */
.admission-flow {
  --step-line: rgba(30, 111, 204, .16);
  --step-active: #1E6FCC;
  --step-soft: #FDF7DF;
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(210px, 1fr));
  gap: 24px;
  padding-top: 82px;
  padding-bottom: 10px;
  max-width: 980px;
  margin-inline: auto;
}

.admission-flow::before {
  left: calc(16.666% + 24px);
  right: calc(16.666% + 24px);
  top: 26px;
  height: 3px;
  background: var(--step-line);
  box-shadow: none;
}

.admission-flow article {
  align-content: start;
  justify-items: start;
  min-height: 230px;
  padding: 32px 28px 28px;
  text-align: left;
  border-radius: 18px;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(135deg, rgba(30, 111, 204, .18), rgba(255, 177, 237, .2), rgba(255, 215, 79, .2)) border-box;
  border: 1px solid transparent;
  box-shadow: 0 14px 34px rgba(30, 111, 204, .08);
}

.admission-flow article::before {
  content: "";
  position: absolute;
  top: -73px;
  left: 50%;
  z-index: 1;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  transform: translateX(-50%);
  background: #fff;
  border: 3px solid rgba(30, 111, 204, .16);
  box-shadow: 0 0 0 7px rgba(255, 255, 255, .7);
}

.admission-flow article:first-child::before {
  background: var(--step-active);
  border-color: var(--step-active);
}

.admission-flow article:first-child::after {
  content: none;
}

.admission-flow article span {
  position: absolute;
  top: -63px;
  left: 50%;
  z-index: 2;
  width: auto;
  height: auto;
  min-width: 0;
  border-radius: 0;
  transform: translateX(-50%);
  background: transparent;
  color: #7E8794;
  font-family: var(--body);
  font-size: 18px;
  font-weight: 800;
}

.admission-flow article:first-child span {
  color: #fff;
}

.admission-flow article h3 {
  max-width: 230px;
  margin-top: 14px;
  font-size: clamp(28px, 2.2vw, 38px);
  line-height: .98;
}

.admission-flow article p {
  font-size: 14px;
  line-height: 1.55;
}

.admission-flow article:hover {
  transform: translateY(-8px);
  border-color: transparent;
  box-shadow: 0 22px 46px rgba(30, 111, 204, .14);
}

.admission-flow article:hover::before {
  border-color: var(--pink);
  box-shadow: 0 0 0 8px rgba(255, 177, 237, .22);
}

.admission-flow article:hover span {
  transform: translateX(-50%) scale(1.06);
  color: var(--blue);
}

.admission-flow article:first-child:hover span {
  color: #16304c;
}

@media (max-width: 1100px) {
  .admission-flow {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    margin-inline: auto;
    padding-inline: 0;
  }

  .admission-flow::before {
    left: calc(16.666% + 24px);
    right: calc(16.666% + 24px);
  }
}

@media (max-width: 640px) {
  .admission-flow {
    grid-template-columns: 1fr;
    gap: 14px;
    padding-top: 0;
    overflow: visible;
  }

  .admission-flow::before {
    display: none;
  }

  .admission-flow article {
    min-height: 218px;
    padding: 24px 18px 22px;
  }

  .admission-flow article::before {
    top: 20px;
    left: auto;
    right: 18px;
    transform: none;
    width: 42px;
    height: 42px;
  }

  .admission-flow article span {
    top: 29px;
    left: auto;
    right: 28px;
    transform: none;
    font-size: 16px;
  }

  .admission-flow article:hover span {
    transform: scale(1.06);
  }
}

/* Cloud section dividers */
.stats-strip-section::before,
.requirements::before,
.model::before,
.why-band::before,
.who::before,
.curriculum-showcase::before,
.support::before,
.testimonials::before,
.proof::before,
.gallery::before,
.faqs::before,
.final-cta::before {
  content: "";
  height: 74px;
  bottom: calc(100% - 1px);
  background: var(--cloud-bg, #fff);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1440' height='96' viewBox='0 0 1440 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 70 C18 61 28 66 44 61 C54 34 92 31 113 54 C126 19 185 13 211 48 C232 27 274 35 286 61 C305 48 327 49 343 61 C354 36 397 31 418 56 C434 44 458 44 474 59 C491 31 541 26 565 57 C581 47 603 48 618 62 C632 51 654 50 671 62 C690 31 746 33 767 61 C787 42 823 45 840 64 C857 51 883 51 899 65 C919 38 963 39 984 65 C1000 55 1020 55 1036 67 C1059 43 1102 47 1119 67 C1137 57 1164 58 1180 69 C1201 50 1241 50 1261 70 C1284 56 1319 57 1338 70 C1368 52 1414 55 1440 72 V96 H0 Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1440' height='96' viewBox='0 0 1440 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 70 C18 61 28 66 44 61 C54 34 92 31 113 54 C126 19 185 13 211 48 C232 27 274 35 286 61 C305 48 327 49 343 61 C354 36 397 31 418 56 C434 44 458 44 474 59 C491 31 541 26 565 57 C581 47 603 48 618 62 C632 51 654 50 671 62 C690 31 746 33 767 61 C787 42 823 45 840 64 C857 51 883 51 899 65 C919 38 963 39 984 65 C1000 55 1020 55 1036 67 C1059 43 1102 47 1119 67 C1137 57 1164 58 1180 69 C1201 50 1241 50 1261 70 C1284 56 1319 57 1338 70 C1368 52 1414 55 1440 72 V96 H0 Z' fill='black'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.stats-strip-section {
  --cloud-bg: #fff;
}

.requirements {
  --cloud-bg: #FFF9DF;
}

.why-band {
  --cloud-bg: #FFE7F8;
}

.who {
  --cloud-bg: #FFF7FB;
}

.curriculum-showcase {
  --cloud-bg: var(--blue);
}

.support {
  --cloud-bg: #F0FFF9;
}

.testimonials {
  --cloud-bg: #FFFBED;
}

.proof {
  --cloud-bg: var(--blue);
}

.gallery {
  --cloud-bg: #F6FAFF;
}

.faqs {
  --cloud-bg: #fff;
}

.final-cta {
  --cloud-bg: var(--blue);
}

/* Admission timeline pills */
.admission-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: clamp(34px, 6vw, 86px);
  max-width: 1120px;
  min-height: 330px;
  margin: 22px auto 0;
  padding: 56px 18px 32px;
  overflow: visible;
}

.admission-flow::before {
  display: block;
  content: "";
  position: absolute;
  left: 10%;
  right: 7%;
  top: 28px;
  height: 170px;
  background: none;
  border: 0;
  box-shadow: none;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='1040' height='170' viewBox='0 0 1040 170' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 128 C126 32 284 22 414 112 C516 183 598 -18 744 45 C842 87 928 100 1034 130' fill='none' stroke='%2394A3B8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' stroke-dasharray='8 10' opacity='.82'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}

.admission-flow article {
  position: relative;
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: 150px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  text-align: center;
}

.admission-flow article:nth-child(1),
.admission-flow article:nth-child(3) {
  margin-top: 94px;
}

.admission-flow article::before {
  content: none;
}

.admission-flow article::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: 56px;
  height: 44px;
  background:
    linear-gradient(currentColor, currentColor) 8px 14px / 28px 8px no-repeat,
    linear-gradient(currentColor, currentColor) 18px 0 / 8px 30px no-repeat,
    linear-gradient(currentColor, currentColor) 0 30px / 26px 8px no-repeat;
  border-radius: 12px;
  color: rgba(255, 143, 215, .9);
  transform: rotate(-18deg);
}

.admission-flow article:nth-child(1)::after {
  left: -22px;
  top: 14px;
}

.admission-flow article:nth-child(2)::after {
  display: none;
}

.admission-flow article:nth-child(3)::after {
  display: none;
}

.admission-flow article span {
  position: relative;
  top: auto;
  left: auto;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  height: 36px;
  margin-bottom: -12px;
  padding: 0 16px;
  border-radius: 0;
  background: #fff;
  color: #16304c;
  font-family: var(--body);
  font-size: 18px;
  font-weight: 900;
  box-shadow: 0 8px 22px rgba(30, 111, 204, .1);
  transform: rotate(-5deg);
}

.admission-flow article:first-child span {
  color: #16304c;
}

.admission-flow article h3 {
  position: relative;
  z-index: 1;
  width: min(100%, 285px);
  max-width: none;
  margin: 0;
  padding: 18px 26px;
  border-radius: 999px;
  background: var(--pink);
  color: #fff;
  font-family: var(--body);
  font-size: clamp(21px, 2vw, 28px);
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 18px 34px rgba(240, 48, 138, .18);
}

.admission-flow article:nth-child(2) h3 {
  background: #FF9B45;
  box-shadow: 0 18px 34px rgba(255, 155, 69, .2);
}

.admission-flow article:nth-child(3) h3 {
  background: var(--blue);
  box-shadow: 0 18px 34px rgba(30, 111, 204, .18);
}

.admission-flow article p {
  position: relative;
  z-index: 1;
  max-width: 250px;
  margin: 14px auto 0;
  color: #5c6f86;
  font-size: 14px;
  line-height: 1.55;
}

.admission-flow article:hover {
  transform: translateY(-8px);
  border: 0;
  box-shadow: none;
}

.admission-flow article:hover h3 {
  filter: saturate(1.08);
}

.admission-flow article:hover span {
  color: #16304c;
  transform: rotate(-5deg) translateY(-3px);
}

.admission-center-cta {
  display: flex;
  justify-content: center;
  margin-top: 6px;
}

.admission-center-cta .btn {
  min-width: 190px;
  color: #17324D;
}

@media (max-width: 860px) {
  .admission-flow {
    grid-template-columns: 1fr;
    gap: 34px;
    min-height: auto;
    padding-top: 24px;
  }

  .admission-flow article,
  .admission-flow article:nth-child(1),
  .admission-flow article:nth-child(3) {
    margin-top: 0;
  }

  .admission-flow::before,
  .admission-flow article::after {
    display: none;
  }
}

/* Solid section backgrounds so cloud dividers blend into each section */
.stats-strip-section {
  background: #fff;
  --cloud-bg: #fff;
}

.requirements {
  background: #FFF9DF;
  --cloud-bg: #FFF9DF;
}

.why-band {
  background: #FFE7F8;
  --cloud-bg: #FFE7F8;
}

.who {
  background: #FFF7FB;
  --cloud-bg: #FFF7FB;
}

.curriculum-showcase {
  background: var(--blue);
  --cloud-bg: var(--blue);
}

.support {
  background: #F0FFF9;
  --cloud-bg: #F0FFF9;
}

.testimonials {
  background: #FFFBED;
  --cloud-bg: #FFFBED;
}

.gallery {
  background: #F6FAFF;
  --cloud-bg: #F6FAFF;
}

.faqs {
  background: #fff;
  --cloud-bg: #fff;
}

.final-cta {
  background: var(--blue);
  --cloud-bg: var(--blue);
}

.curriculum-showcase::after,
.final-cta::after {
  content: none;
}

/* Final responsive and CTA refinements */
@media (max-width: 980px) {
  .nav-shell {
    width: 100%;
    min-height: 76px;
    padding: 10px 18px;
    gap: 12px;
    background: #fff;
  }

  .brand-link {
    flex: 0 0 auto;
    padding: 0;
  }

  .brand-logo {
    width: 78px;
    height: 58px;
  }

  .site-brand-name {
    display: inline-flex;
    max-width: calc(100% - 250px);
    min-width: 0;
    color: var(--blue);
    font-size: clamp(18px, 5vw, 28px);
    font-weight: 900;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .nav-toggle,
  .nav-links {
    display: none;
  }

  .nav-cta {
    flex: 0 0 auto;
    width: auto;
    min-height: 46px;
    padding: 0 16px;
    border-radius: 999px;
    white-space: nowrap;
  }

  .hero-grid,
  .curriculum-grid,
  .lead-grid,
  .faq-grid,
  .split-heading {
    grid-template-columns: 1fr;
  }

  .program-grid,
  .jumbo-program-grid,
  .eyfs-grid,
  .why-icon-grid,
  .proof-grid {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
  }

  .program-card,
  .why-icon-card,
  .support-item,
  .stat-card,
  .quote-card {
    min-width: 0;
  }
}

@media (max-width: 640px) {
  .nav-shell {
    padding-inline: 10px;
  }

  .brand-logo {
    width: 64px;
    height: 48px;
  }

  .site-brand-name {
    max-width: calc(100% - 174px);
    font-size: clamp(16px, 4.8vw, 21px);
  }

  .nav-cta {
    min-height: 40px;
    padding: 0 12px;
    font-size: 13px;
  }

  .program-grid,
  .jumbo-program-grid,
  .eyfs-grid,
  .why-icon-grid,
  .proof-grid,
  .stats-strip {
    grid-template-columns: 1fr;
  }

  .program-card,
  .why-icon-card,
  .support-item,
  .quote-card {
    width: 100%;
  }

  .admission-flow {
    grid-template-columns: 1fr;
    gap: 34px;
    min-height: auto;
    padding: 24px 0 18px;
  }

  .admission-flow::before,
  .admission-flow article::after {
    display: none;
  }

  .admission-flow article,
  .admission-flow article:nth-child(1),
  .admission-flow article:nth-child(3) {
    margin-top: 0;
  }

  .floating-enroll-cta {
    right: 14px;
    bottom: 14px;
    min-height: 46px;
    padding: 0 16px;
    font-size: 14px;
  }

  .admission-hero {
    display: block;
    min-height: auto;
    padding: 0 0 30px;
    overflow: hidden;
    background: #fff;
  }

  .admission-hero .hero-banner {
    position: relative;
    height: clamp(300px, 88vw, 390px);
    inset: auto;
    overflow: hidden;
    border-radius: 0;
  }

  .admission-hero .hero-banner::after {
    background:
      linear-gradient(90deg, rgba(5, 43, 86, .66) 0%, rgba(5, 43, 86, .32) 46%, rgba(5, 43, 86, .08) 100%),
      linear-gradient(180deg, rgba(5, 43, 86, .12), rgba(5, 43, 86, .28));
  }

  .admission-hero .hero-banner img {
    object-position: center;
  }

  .admission-hero .hero-grid {
    position: static;
    display: block;
    width: min(100% - 28px, 1160px);
    margin-top: -52px;
  }

  .admission-hero .hero-copy {
    position: absolute;
    left: 22px;
    top: 82px;
    z-index: 4;
    display: flex;
    flex-direction: column;
    width: min(54vw, 245px);
    opacity: 1;
    transform: none;
  }

  .admission-hero h1 {
    order: 1;
    font-size: clamp(30px, 9vw, 42px);
    line-height: 1.12;
    text-shadow: 0 3px 14px rgba(0, 0, 0, .28);
  }

  .admission-hero .hero-eyebrow {
    order: 2;
    margin-top: 18px;
    margin-bottom: 0;
    color: #fff;
    font-family: var(--sans);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.4;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .32);
  }

  .admission-hero .hero-subhead {
    display: none;
  }

  .admission-hero .hero-form {
    position: relative;
    z-index: 5;
    width: 100%;
    margin: 0 auto;
    padding: 22px 18px 20px;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(23, 50, 77, .12);
  }

  .hero-form h2 {
    max-width: none;
    margin-inline: auto;
    text-align: center;
    font-size: 18px;
    line-height: 1.22;
  }

  .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 8px;
  }

  .hero-form label {
    font-size: 12px;
    font-weight: 700;
    gap: 4px;
  }

  .hero-form label > span {
    font-size: 12px;
  }

  .hero-form input,
  .hero-form select {
    min-height: 40px;
    padding: 0 12px;
    border-radius: 10px;
    font-size: 14px;
  }

  .hero-form .btn {
    min-height: 44px;
    font-size: 14px;
  }

  .form-success h3 {
    font-size: 22px;
  }
  .form-success p {
    font-size: 13.5px;
  }
}

@media (max-width: 640px) {
  .mobile-dot-carousel {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 16px;
    margin-inline: -14px;
    padding: 6px 14px 18px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 14px;
    -webkit-overflow-scrolling: touch;
  }

  .mobile-dot-carousel::-webkit-scrollbar {
    display: none;
  }

  .mobile-dot-carousel > * {
    flex: 0 0 min(86vw, 360px);
    scroll-snap-align: center;
  }

  .why-icon-grid.mobile-dot-carousel,
  .eyfs-grid.mobile-dot-carousel,
  .masonry-gallery.mobile-dot-carousel {
    grid-template-columns: none !important;
  }

  .masonry-gallery.mobile-dot-carousel {
    grid-auto-rows: auto;
  }

  .masonry-gallery.mobile-dot-carousel .gallery-item,
  .masonry-gallery.mobile-dot-carousel .gallery-item.tall,
  .masonry-gallery.mobile-dot-carousel .gallery-item.wide {
    grid-column: auto;
    grid-row: auto;
    min-height: 260px;
  }

  .eyfs-grid.mobile-dot-carousel .support-item,
  .eyfs-grid.mobile-dot-carousel .support-item:nth-child(1),
  .eyfs-grid.mobile-dot-carousel .support-item:nth-child(2),
  .eyfs-grid.mobile-dot-carousel .support-item:nth-child(3),
  .eyfs-grid.mobile-dot-carousel .support-item:nth-child(4),
  .eyfs-grid.mobile-dot-carousel .support-item:nth-child(5),
  .eyfs-grid.mobile-dot-carousel .support-item:nth-child(6),
  .eyfs-grid.mobile-dot-carousel .support-item:nth-child(7) {
    grid-column: auto;
    grid-row: auto;
    max-width: none;
    justify-self: auto;
  }

  .carousel-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
  }

  .carousel-dots button {
    width: 9px;
    height: 9px;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(23, 50, 77, .24);
    cursor: pointer;
    transition: width .2s ease, background .2s ease;
  }

  .carousel-dots button.is-active {
    width: 24px;
    background: var(--blue);
  }
}
