:root {
    --purple: #449da8;
    --purple-dark: #337a84;
    --purple-deep: #1c5a63;
    --teal: #23acae;
    --teal-dark: #16878b;
    --yellow: #ffffff;
    --orange: #ff8f3d;
    --pink: #ee6d9c;
    --ink: #27213b;
    --text: #625d70;
    --cream: #f0f9fa;
    --soft: #eef7f8;
    --white: #ffffff;
    --border: #c8e8eb;
    --shadow: 0 20px 60px rgba(28, 90, 99, .14);
    --radius: 28px;
    --display: 'Baloo 2', sans-serif;
    --body: 'Roboto', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
body { margin: 0; color: var(--text); background: var(--white); font-family: var(--body); font-size: 16px; line-height: 1.75; overflow-x: hidden; }
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; transition: color .2s ease, background .2s ease, transform .2s ease, border-color .2s ease; }
p { margin: 0 0 20px; }
h1, h2, h3, h4 { margin: 0 0 18px; color: var(--ink); font-family: var(--display); font-weight: 800; line-height: 1.08; }
h1 { font-size: clamp(3rem, 5.3vw, 5.2rem); letter-spacing: -.045em; }
h2 { font-size: clamp(2.25rem, 3.7vw, 3.75rem); letter-spacing: -.035em; }
h3 { font-size: 1.55rem; }
ul { margin: 0; padding: 0; list-style: none; }
button, input, textarea { font: inherit; }
.site-container { width: min(1320px, calc(100% - 48px)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 9999; top: 12px; left: 12px; padding: 12px 18px; border-radius: 8px; color: var(--white); background: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.top-strip { position: relative; z-index: 30; color: var(--white);
    background: var(--purple-dark);
    background: #fff;
    font-size: .875rem; }
.top-strip__inner { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 24px; }
.top-strip p { margin: 0; }
.top-strip i { color: var(--purple); margin-right: 7px; }
.top-strip__phones { display: flex; align-items: center; gap: 12px; font-weight: 700; }
.top-strip a:hover { color: var(--purple); }
.top-strip-spacer { display: none; }

.site-header { position: relative; z-index: 50; height: 98px; background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(105,53,154,.08); transition: box-shadow .25s ease, height .25s ease; }
.site-header.is-sticky { position: fixed; top: 0; right: 0; left: 0; height: 82px; box-shadow: 0 12px 35px rgba(49,28,68,.1); animation: slideDown .3s ease; }
body.has-sticky-header { padding-top: 98px; }
@keyframes slideDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }
.site-header__inner { display: flex; height: 100%; align-items: center; gap: 28px; }
.brand { display: flex; width: 112px; height: 88px; flex: 0 0 auto; align-items: center; justify-content: center; overflow: hidden; }
.brand img { width: 102px; height: 102px; object-fit: contain; }
.primary-nav { margin-left: auto; }
.primary-nav ul { display: flex; align-items: center; gap: clamp(16px, 2.1vw, 32px); }
.primary-nav a { position: relative; display: block; padding: 12px 0; color: var(--ink); font-family: var(--display); font-size: 1rem; font-weight: 700; white-space: nowrap; }
.primary-nav a::after { position: absolute; right: 0; bottom: 5px; left: 0; height: 3px; border-radius: 4px; background: var(--purple); content: ''; transform: scaleX(0); transform-origin: center; transition: transform .2s ease; }
.primary-nav a:hover, .primary-nav a.is-active { color: var(--purple); }
.primary-nav a:hover::after, .primary-nav a.is-active::after { transform: scaleX(1); }
.nav-toggle { display: none; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: var(--purple); flex-direction: column; justify-content: center; align-items: center; gap: 6px; cursor: pointer; }
.nav-toggle__line { display: block; width: 26px; height: 3px; margin: 0; border-radius: 3px; background: #ffffff; transition: transform .2s ease, opacity .2s ease; }

.button { display: inline-flex; min-height: 56px; padding: 13px 24px; align-items: center; justify-content: center; gap: 10px; border: 2px solid var(--purple); border-radius: 12px 12px 12px 2px; color: var(--white); background: var(--purple); font-family: var(--display); font-size: 1rem; font-weight: 800; line-height: 1.2; box-shadow: 5px 5px 0 rgba(70,34,103,.18); }
.button:hover { color: var(--white); background: var(--purple-dark); border-color: var(--purple-dark); transform: translateY(-3px); }
.button--small { min-height: 46px; padding: 10px 19px; font-size: .92rem; }
.button--outline { color: var(--purple); background: transparent; box-shadow: none; }
.button--outline:hover { color: var(--white); background: var(--purple); }
.button--yellow { color: var(--purple); background: #ffffff; border-color: #ffffff; box-shadow: 5px 5px 0 rgba(68,157,168,.22); }
.button--yellow:hover { color: #ffffff; background: var(--purple); border-color: var(--purple); }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--purple); font-family: var(--display); font-size: 1.05rem; font-weight: 800; }
.text-link:hover { color: var(--teal-dark); gap: 14px; }

.hero { position: relative; overflow: hidden; }
.hero--home { min-height: 880px; padding: 80px 0 70px; background: #fff0e8; }
.hero__grid { position: relative; z-index: 3; display: grid; min-height: 730px; grid-template-columns: 1fr; align-items: center; }
.hero__content { position: relative; z-index: 2; grid-column: 1 / -1; width: min(850px, 100%); margin-inline: auto; text-align: center; transform: translateY(-45px); }
.hero__content h1 { font-size: clamp(3rem, 4.1vw, 4.5rem); }
.hero__content h1 span, .page-hero h1 span { position: relative; color: var(--purple); white-space: nowrap; }
.hero__content h1 span::after, .page-hero h1 span::after { position: absolute; right: 0; bottom: 2px; left: 0; height: 11px; border-radius: 50%; background: var(--teal); content: ''; opacity: .55; transform: rotate(-2deg); z-index: -1; }
.hero__content > p { max-width: 620px; margin: 0 auto 30px; font-size: 1.12rem; }
.eyebrow { display: inline-flex; margin-bottom: 17px; align-items: center; gap: 8px; color: var(--teal-dark); font-family: var(--display); font-size: .87rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow--yellow { color: var(--purple); }
.hero__actions { display: flex; justify-content: center; gap: 14px; }
.hero__trust { display: flex; margin-top: 30px; justify-content: center; gap: 20px; color: var(--ink); font-family: var(--display); font-size: .9rem; font-weight: 700; }
.hero__trust i { display: inline-grid; width: 22px; height: 22px; margin-right: 4px; place-items: center; border-radius: 50%; color: var(--white); background: var(--teal); font-size: .65rem; }
.hero__child { position: absolute; bottom: -88px; }
.hero__child img { width: 100%; max-height: 655px; object-fit: contain; object-position: bottom; }
.hero__child--left { left: calc(50% - 50vw + clamp(20px, 5vw, 100px)); bottom: 80px; width: min(24vw, 464px); }
.hero__child--right { right: calc(50% - 50vw + 40px); bottom: 0; width: min(32vw, 578px); height: auto; }
.hero__child--right img { height: auto; object-fit: contain; }
.hero__child--right.hero__child--photo { right: calc(50% - 50vw + 70px); bottom: 82px; width: min(25vw, 430px); height: min(35vw, 585px); overflow: hidden; border: 8px solid var(--white); border-radius: 49% 51% 45% 55% / 58% 43% 57% 42%; background: var(--white); box-shadow: var(--shadow); transform: rotate(2deg); }
.hero__child--right.hero__child--photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 57%; transform: rotate(-2deg) scale(1.05); }
.hero__wave { position: absolute; z-index: 4; right: 0; bottom: -1px; left: 0; width: 100%; height: 50px; }
.hero__plane { position: absolute; z-index: 1; top: 60px; right: 8%; width: 155px; animation: float 5s ease-in-out infinite; }
.hero__scribble { position: absolute; z-index: 1; bottom: 100px; left: 5%; width: 68px; animation: float 4s ease-in-out infinite reverse; }
.hero__dots { position: absolute; width: 115px; height: 115px; border-radius: 50%; opacity: .55; background-image: radial-gradient(var(--purple) 2px, transparent 2px); background-size: 15px 15px; }
.hero__dots--one { top: 140px; left: 27%; }
.hero__dots--two { right: 26%; bottom: 140px; background-image: radial-gradient(var(--teal) 2px, transparent 2px); }
@keyframes float { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-14px) rotate(2deg); } }

.section { position: relative; padding: 105px 0; }
.section--intro { padding-top: 125px; }
.section--soft { background: var(--soft); }
.section--purple { color: rgba(255,255,255,.78); background: var(--purple-deep); }
.section--classes { background: var(--cream); }
.section--learning { color: rgba(255,255,255,.8); background: var(--teal-dark); overflow: hidden; }
.split-layout, .content-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(50px, 7vw, 100px); }
.content-split--reverse > :first-child { order: 2; }
.content-split--reverse > :last-child { order: 1; }
.section-copy h2, .content-split__copy h2 { max-width: 650px; }
.lead { color: #40394c; font-size: 1.12rem; line-height: 1.7; }
.image-stage { position: relative; min-height: 590px; }
.image-stage__blob { position: absolute; top: 6%; left: 4%; width: 86%; height: 86%; border-radius: 48% 52% 45% 55% / 60% 41% 59% 40%; background: #f2ebff; transform: rotate(-5deg); }
.image-stage__main { position: relative; z-index: 2; width: min(100%, 608px); }
.image-stage__main--photo { display: block; aspect-ratio: 3 / 2; margin-top: 55px; border: 7px solid var(--white); border-radius: 42% 58% 46% 54% / 56% 44% 56% 44%; object-fit: cover; box-shadow: var(--shadow); }
.image-stage__note { position: absolute; z-index: 4; right: -18px; bottom: 55px; display: flex; max-width: 235px; padding: 18px 21px; flex-direction: column; border: 4px solid var(--white); border-radius: 20px 20px 20px 3px; color: var(--white); background: var(--purple); box-shadow: var(--shadow); }
.image-stage__note strong { font-family: var(--display); font-size: 1.2rem; }
.image-stage__note span { font-size: .82rem; }
.image-stage__rainbow { position: absolute; z-index: 1; top: -35px; right: -20px; width: 155px; }
.feature-ticks { display: grid; margin: 28px 0; gap: 13px; }
.feature-ticks div { display: flex; align-items: center; gap: 12px; color: var(--ink); }
.feature-ticks i { color: var(--teal); font-size: 1.2rem; }
.section-heading { display: flex; margin-bottom: 48px; align-items: end; justify-content: space-between; gap: 40px; }
.section-heading h2 { max-width: 760px; margin: 0; }
.section-heading > p { max-width: 470px; margin: 0; }
.section-heading--light h2 { color: var(--white); }
.section-heading--light .eyebrow { color: rgba(255,255,255,.85); }
.section-heading--center { display: block; max-width: 820px; margin-right: auto; margin-left: auto; text-align: center; }
.section-heading--center h2 { margin-inline: auto; }
.section-heading--center > p { max-width: 700px; margin: 0 auto; }

.benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.benefit-card { padding: 32px 27px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius) var(--radius) var(--radius) 5px; background: rgba(255,255,255,.07); transition: transform .25s ease, background .25s ease; }
.benefit-card:hover { background: rgba(255,255,255,.11); transform: translateY(-7px); }
.benefit-card h3 { color: var(--white); }
.benefit-card p { margin: 0; font-size: .95rem; }
.icon-bubble { display: grid; width: 62px; height: 62px; margin-bottom: 24px; place-items: center; border-radius: 18px 18px 18px 5px; color: var(--white); font-size: 1.4rem; }
.icon-bubble--teal { background: var(--teal); }.icon-bubble--yellow { color: #ffffff; background: var(--purple); }.icon-bubble--pink { background: var(--pink); }.icon-bubble--orange { background: var(--orange); }

.class-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.class-card { position: relative; padding: 0 27px 28px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius) var(--radius) var(--radius) 6px; background: var(--white); box-shadow: 0 16px 42px rgba(57,33,80,.08); display: flex; flex-direction: column; }
.class-card::before { display: none; }
.class-card__img { margin: 0 -27px 22px; height: 200px; overflow: hidden; border-radius: calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0; flex-shrink: 0; }
.class-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.class-card:hover .class-card__img img { transform: scale(1.06); }
.class-card__number { position: absolute; top: 168px; right: 16px; font-family: var(--display); font-size: 1.6rem; font-weight: 800; color: #fff; opacity: .85; text-shadow: 0 1px 4px rgba(0,0,0,.4); }
.class-card > span { color: currentColor; font-family: var(--display); font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.class-card h3 { margin: 8px 0 14px; font-size: 2rem; }
.class-card p { display: none; }
.class-card a { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; color: currentColor; font-family: var(--display); font-weight: 800; }
.class-card a:hover { transform: translateX(4px); }
.class-card--teal { color: var(--teal-dark); }.class-card--purple { color: var(--purple); }.class-card--orange { color: #dd6a1d; }.class-card--pink { color: #cf4779; }

.learning-showcase { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; }
.learning-showcase h2 { color: var(--white); }
.learning-list { display: grid; margin: 28px 0 32px; gap: 18px; }
.learning-list > div { display: grid; grid-template-columns: 42px 1fr; gap: 14px; align-items: start; }
.learning-list span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #ffffff; background: rgba(255,255,255,.22); font-family: var(--display); font-weight: 800; }
.learning-list p { margin: 0; }.learning-list strong { color: var(--white); }
.learning-showcase__visual { position: relative; }
.learning-showcase__visual > img { width: 100%; border: 6px solid rgba(255,255,255,.18); border-radius: 34px 34px 34px 7px; box-shadow: var(--shadow); }
.activity-cloud { display: flex; position: relative; z-index: 2; margin: -25px 25px 0; padding: 19px; flex-wrap: wrap; justify-content: center; gap: 8px; border-radius: 19px; background: var(--white); box-shadow: var(--shadow); }
.activity-cloud span { padding: 6px 12px; border-radius: 999px; color: var(--purple); background: var(--soft); font-family: var(--display); font-size: .84rem; font-weight: 800; }

.story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.story-card { display: grid; grid-template-columns: 108px 1fr; gap: 21px; padding: 23px; align-items: center; border: 1px solid var(--border); border-radius: 24px 24px 24px 5px; background: var(--white); box-shadow: 0 14px 35px rgba(57,33,80,.07); transition: transform .25s ease; }
.story-card:hover { transform: translateY(-6px); }
.story-card img { width: 108px; height: 108px; border-radius: 18px 18px 18px 4px; object-fit: cover; }
.story-card span, .story-label { color: var(--teal-dark); font-family: var(--display); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.story-card h3 { margin: 4px 0 8px; font-size: 1.35rem; }
.story-card p { margin: 0; font-size: .88rem; line-height: 1.6; }

.visit-cta { padding: 0 0 105px; background: var(--white); }
.section--soft + .visit-cta { padding-top: 105px; }
.visit-cta__inner { position: relative; display: grid; min-height: 300px; padding: 58px 70px; grid-template-columns: 1fr auto; align-items: center; gap: 50px; overflow: hidden; border-radius: 38px 38px 38px 8px; color: rgba(255,255,255,.78); background: var(--purple); }
.visit-cta__inner::after { position: absolute; right: -80px; bottom: -120px; width: 360px; height: 360px; border: 2px dashed rgba(255,255,255,.2); border-radius: 50%; content: ''; }
.visit-cta h2 { max-width: 750px; color: var(--white); font-size: clamp(2rem, 3.2vw, 3.2rem); }
.visit-cta p { max-width: 650px; margin: 0; }
.visit-cta__actions { position: relative; z-index: 2; display: grid; gap: 20px; }
.visit-cta__actions > a:last-child { display: flex; align-items: center; gap: 12px; color: var(--white); }
.visit-cta__actions > a:last-child i { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 50%; color: var(--purple); background: var(--white); }
.visit-cta__actions span { font-size: .8rem; line-height: 1.4; }.visit-cta__actions strong { font-size: .95rem; }
.visit-cta__doll { position: absolute; right: 28%; bottom: -40px; width: 160px; opacity: .14; }

.page-hero { position: relative; min-height: 510px; overflow: hidden; background: #eef7f8; }
.page-hero__grid { display: grid; min-height: 510px; grid-template-columns: 58% 42%; align-items: center; gap: 40px; }
.page-hero__copy { position: relative; z-index: 2; padding: 65px 0; }
.page-hero h1 { max-width: 810px; }
.page-hero__copy > p { max-width: 650px; font-size: 1.1rem; }
.breadcrumbs { display: flex; margin-top: 28px; align-items: center; gap: 10px; color: var(--purple); font-family: var(--display); font-size: .9rem; font-weight: 700; }
.breadcrumbs a:hover { color: var(--teal-dark); }
.page-hero__visual { position: relative; display: flex; height: 100%; align-items: end; justify-content: center; }
.page-hero__image-wrap { position: relative; z-index: 2; width: 390px; height: 390px; margin-bottom: -25px; overflow: hidden; border: 8px solid var(--white); border-radius: 49% 51% 44% 56% / 58% 43% 57% 42%; background: var(--purple); box-shadow: var(--shadow); }
.page-hero__image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.page-hero__star { position: absolute; z-index: 3; top: 70px; left: 20px; color: var(--purple); font-size: 4rem; animation: float 4s ease-in-out infinite; }
.page-hero__shape { position: absolute; border-radius: 50%; }
.page-hero__shape--one { right: -110px; bottom: -180px; width: 470px; height: 470px; background: var(--teal); opacity: .12; }
.page-hero__shape--two { top: -70px; left: -80px; width: 210px; height: 210px; border: 30px solid var(--purple); opacity: .15; }

.content-split__copy .button { margin-top: 10px; }
.commitment-card { position: relative; padding: 48px 48px 48px 108px; border-radius: 34px 34px 34px 7px; color: rgba(255,255,255,.78); background: var(--purple); box-shadow: var(--shadow); }
.commitment-card__icon { position: absolute; top: 48px; left: 36px; display: grid; width: 54px; height: 54px; place-items: center; border-radius: 18px 18px 18px 4px; color: #ffffff; background: var(--purple); }
.commitment-card > span { color: var(--purple); font-family: var(--display); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.commitment-card blockquote { margin: 12px 0 0; color: var(--white); font-family: var(--display); font-size: 1.55rem; font-weight: 700; line-height: 1.45; }
.apart-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.apart-card { position: relative; padding: 38px 34px; border: 1px solid var(--border); border-radius: var(--radius) var(--radius) var(--radius) 6px; background: var(--white); }
.apart-card > span { display: inline-block; margin-bottom: 38px; color: var(--purple); font-family: var(--display); font-size: 2.6rem; font-weight: 800; opacity: .18; }
.apart-card h3 { font-size: 1.75rem; }.apart-card p { margin: 0; }
.photo-card { position: relative; }
.photo-card > img { width: 100%; min-height: 460px; border-radius: 38px 38px 38px 8px; object-fit: cover; box-shadow: var(--shadow); }
.photo-card__badge { position: absolute; right: -25px; bottom: 32px; display: flex; padding: 18px 22px; align-items: center; gap: 13px; border: 5px solid var(--white); border-radius: 22px 22px 22px 5px; color: var(--white); background: var(--teal-dark); box-shadow: var(--shadow); }
.photo-card__badge i { font-size: 1.6rem; }.photo-card__badge span { font-size: .8rem; line-height: 1.35; }.photo-card__badge strong { font-size: 1rem; }
.check-list { display: grid; margin: 25px 0 30px; grid-template-columns: repeat(2, 1fr); gap: 12px 25px; color: var(--ink); font-weight: 500; }
.check-list li { position: relative; padding-left: 29px; }.check-list li::before { position: absolute; top: 2px; left: 0; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: var(--white); background: var(--teal); content: '✓'; font-size: .68rem; font-weight: 800; }
.quote-ribbon { display: flex; margin-top: 30px; padding: 23px; align-items: flex-start; gap: 16px; border-left: 5px solid var(--purple); border-radius: 0 18px 18px 0; background: var(--cream); }
.quote-ribbon i { margin-top: 5px; color: var(--purple); font-size: 1.5rem; }.quote-ribbon p { margin: 0; color: var(--ink); font-family: var(--display); font-weight: 700; }
.photo-card--pattern::before { position: absolute; z-index: -1; top: -30px; right: -30px; width: 150px; height: 150px; border-radius: 50%; content: ''; background-image: radial-gradient(var(--purple) 3px, transparent 3px); background-size: 18px 18px; }
.subject-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.subject-card { padding: 38px; border-radius: var(--radius) var(--radius) var(--radius) 6px; color: var(--text); background: var(--white); }
.subject-card > span { color: var(--teal-dark); font-family: var(--display); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.subject-card h3 { margin: 7px 0 13px; font-size: 2rem; }.subject-card p { margin: 0; }
.activity-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 15px; }
.activity-card { display: grid; min-height: 150px; padding: 22px 12px; place-items: center; align-content: center; gap: 12px; border: 1px solid var(--border); border-radius: 22px 22px 22px 4px; text-align: center; background: var(--white); }
.activity-card i { color: var(--purple); font-size: 2rem; }.activity-card span { color: var(--ink); font-family: var(--display); font-weight: 800; }
.whole-child { display: grid; padding: 55px; grid-template-columns: 1fr 1fr; gap: 60px; border-radius: 34px 34px 34px 7px; background: var(--white); }
.whole-child__items { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.whole-child__items span { display: flex; min-height: 76px; padding: 15px; align-items: center; gap: 12px; border-radius: 16px; color: var(--ink); background: var(--cream); font-family: var(--display); font-weight: 700; }
.whole-child__items i { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 12px; color: var(--white); background: var(--teal); }

.class-path { display: grid; gap: 26px; }
.class-detail { --accent: var(--teal); display: grid; min-height: 250px; padding: 35px 90px 35px 35px; grid-template-columns: 150px 1fr; align-items: center; gap: 38px; overflow: hidden; position: relative; border: 1px solid var(--border); border-radius: 30px 30px 30px 7px; background: var(--white); box-shadow: 0 15px 40px rgba(57,33,80,.07); }
.class-detail__age { display: grid; width: 125px; height: 150px; place-items: center; align-content: center; border-radius: 55% 45% 55% 45%; color: var(--white); background: var(--accent); transform: rotate(-3deg); }
.class-detail__age span, .class-detail__age small { font-family: var(--display); font-weight: 700; }.class-detail__age strong { margin: -10px 0; font-family: var(--display); font-size: 4.5rem; line-height: 1; }
.class-detail__copy > span { color: var(--accent); font-family: var(--display); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.class-detail__copy h2 { margin: 4px 0 9px; font-size: 2.35rem; }.class-detail__copy p { max-width: 840px; margin-bottom: 13px; }
.class-detail__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }.class-detail__tags li { padding: 5px 11px; border-radius: 999px; color: var(--ink); background: var(--soft); font-size: .8rem; font-weight: 600; }
/* ── Accordion inside class-detail cards ── */
.class-accordion { margin: 16px 0 4px; border-top: 1px solid var(--border); }
.acc { border-bottom: 1px solid var(--border); }
.acc__trigger { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 12px; margin: 0 -12px; font-family: var(--display); font-size: 1rem; font-weight: 700; color: var(--ink); cursor: pointer; list-style: none; user-select: none; border-radius: 10px; transition: background .2s ease, color .2s ease; }
.acc__trigger::-webkit-details-marker { display: none; }
.acc__trigger:hover { background: rgba(68,157,168,.08); }
.acc__trigger .fa-chevron-down { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--accent); color: #fff; font-size: .85rem; transition: transform .35s ease, background .2s ease; }
details[open] > .acc__trigger { color: var(--accent); }
details[open] > .acc__trigger .fa-chevron-down { transform: rotate(180deg); background: var(--purple-deep, #392150); }
.acc__body { padding: 2px 0 16px; }
.acc__body p { margin-bottom: 10px; font-size: .9rem; opacity: .8; }
.acc__body ul { display: flex; flex-direction: column; gap: 7px; }
.acc__body li { position: relative; padding-left: 18px; font-size: .88rem; line-height: 1.6; }
.acc__body li::before { content: ''; position: absolute; left: 0; top: 8px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }

/* ── Progress / Development Tracking section ────────────────────────────── */
/* ── Facility zone cards ── */
.facility-zones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.facility-zone { padding: 30px 26px; border-radius: var(--radius); background: var(--white); border: 1px solid var(--border); transition: transform .2s ease, box-shadow .2s ease; }
.facility-zone:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.facility-zone__icon { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; font-size: 1.35rem; color: #fff; background: var(--accent, var(--teal)); margin-bottom: 18px; }
.facility-zone h3 { font-size: 1.15rem; margin-bottom: 8px; color: var(--ink); }
.facility-zone p { font-size: .93rem; margin: 0; }

.safety-acc { border-top: 1px solid var(--border); }
.safety-acc .acc { border-bottom: 1px solid var(--border); }
.progress-updates { display: flex; flex-direction: column; gap: 16px; }
.progress-update { display: grid; grid-template-columns: 118px 1fr; border-radius: 20px 20px 20px 5px; background: var(--white); border: 1px solid var(--border); overflow: hidden; box-shadow: 0 4px 18px rgba(28,90,99,.06); transition: transform .25s ease, box-shadow .25s ease; }
.progress-update:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(28,90,99,.12); }
.progress-update__badge { display: flex; align-items: center; justify-content: center; padding: 22px 14px; background: var(--purple-deep); color: #fff; font-family: var(--display); font-size: .8rem; font-weight: 800; text-align: center; line-height: 1.35; text-transform: uppercase; letter-spacing: .05em; }
.progress-update__badge--teal  { background: var(--teal-dark); }
.progress-update__badge--orange { background: var(--orange); }
.progress-update__body { display: flex; align-items: center; gap: 18px; padding: 22px 24px; }
.progress-update__icon { flex-shrink: 0; display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; background: #e8f8f8; color: var(--purple-deep); font-size: 1.15rem; }
.progress-update__icon--teal   { background: #d4f4f4; color: var(--teal-dark); }
.progress-update__icon--orange { background: #fff0e6; color: var(--orange); }
.progress-update__body p { margin: 0; font-size: .93rem; line-height: 1.65; }
.class-detail__bird { position: absolute; right: 20px; bottom: -10px; font-size: 5rem; opacity: .14; transform: rotate(-10deg); }
.class-detail--purple { --accent: var(--purple); }.class-detail--orange { --accent: var(--orange); }.class-detail--pink { --accent: var(--pink); }
.content-note { margin: 28px 0 0; padding: 18px 22px; border-radius: 15px; color: var(--ink); background: var(--cream); text-align: center; }.content-note i { color: var(--teal); margin-right: 7px; }

.day-flow { display: grid; gap: 12px; }
.day-flow > div { position: relative; display: grid; padding: 19px 22px; grid-template-columns: 38px 48px 1fr; align-items: center; gap: 15px; border: 1px solid var(--border); border-radius: 19px 19px 19px 4px; background: var(--white); }
.day-flow span { color: var(--purple); font-family: var(--display); font-size: .85rem; font-weight: 800; }.day-flow i { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 15px; color: var(--white); background: var(--teal); }.day-flow p { margin: 0; font-size: .92rem; }.day-flow strong { display: block; color: var(--ink); font-family: var(--display); font-size: 1.05rem; }
.experience-list { display: grid; gap: 42px; }
.experience-card { display: grid; padding: 45px; grid-template-columns: 300px 1fr; align-items: center; gap: 55px; border-radius: 32px 32px 32px 7px; background: var(--white); }
.experience-card--reverse > :first-child { order: 2; }.experience-card--reverse > :last-child { order: 1; }
.experience-card__visual { position: relative; padding: 25px; border-radius: 42% 58% 49% 51%; background: #e8dcf4; }.experience-card__visual--teal { background: #d9f2f1; }.experience-card__visual--orange { background: #ffead9; }
.experience-card__visual img { width: 100%; border-radius: 36%; }.experience-card__visual span { position: absolute; right: -10px; bottom: 12px; display: grid; width: 58px; height: 58px; place-items: center; border: 5px solid var(--white); border-radius: 50%; color: var(--white); background: var(--purple); font-family: var(--display); font-weight: 800; }
.experience-card h2 { margin: 4px 0 13px; font-size: 2.4rem; }.experience-card p:last-child { margin-bottom: 0; }
.section--calendar { padding-top: 0; background: var(--soft); }
.calendar-card { display: grid; padding: 58px; grid-template-columns: 1fr 1fr; align-items: center; gap: 55px; border-radius: 35px 35px 35px 7px; color: rgba(255,255,255,.78); background: var(--teal-dark); }.calendar-card h2 { color: var(--white); }.calendar-card p { margin: 0; }
.calendar-events { display: grid; gap: 12px; }.calendar-events article { display: grid; padding: 15px; grid-template-columns: 78px 1fr; align-items: center; gap: 17px; border-radius: 17px; background: rgba(255,255,255,.1); }.calendar-events span { display: grid; min-height: 66px; place-items: center; align-content: center; border-radius: 12px; color: #ffffff; background: var(--purple); font-family: var(--display); font-size: 1.1rem; font-weight: 800; line-height: 1.05; }.calendar-events small { font-size: .72rem; }.calendar-events h3 { margin: 0; color: var(--white); font-size: 1.25rem; }

.admissions-intro { max-width: 1180px; }
.admission-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.admission-step { padding: 36px 30px; border: 1px solid var(--border); border-radius: 28px 28px 28px 6px; background: var(--white); box-shadow: 0 14px 40px rgba(57,33,80,.07); }
.admission-step > div { display: flex; margin-bottom: 25px; align-items: center; justify-content: space-between; }.admission-step > div span { color: var(--purple); font-family: var(--display); font-size: 2.5rem; font-weight: 800; opacity: .2; }.admission-step > div i { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 18px; color: var(--white); background: var(--teal); font-size: 1.25rem; }
.admission-step p { min-height: 96px; }.admission-step a { color: var(--purple); font-family: var(--display); font-weight: 800; }.admission-step a:hover { color: var(--teal-dark); }
.admissions-panel { display: grid; padding: 50px; grid-template-columns: 40% 1fr; align-items: center; gap: 65px; border-radius: 35px 35px 35px 7px; background: var(--white); }
.admissions-panel__image img { width: 100%; height: 430px; border-radius: 30px 30px 30px 7px; object-fit: cover; object-position: center 45%; box-shadow: var(--shadow); }.check-list--large { grid-template-columns: 1fr; font-size: 1.02rem; }
.faq-layout { display: grid; grid-template-columns: 36% 1fr; align-items: start; gap: 75px; }
.faq-layout__intro { position: sticky; top: 120px; }
.faq-list { display: grid; gap: 13px; }
.faq-list details { border: 1px solid var(--border); border-radius: 18px 18px 18px 4px; background: var(--white); overflow: hidden; }
.faq-list summary { display: flex; min-height: 70px; padding: 20px 22px; align-items: center; justify-content: space-between; gap: 20px; color: var(--ink); cursor: pointer; font-family: var(--display); font-size: 1.08rem; font-weight: 800; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary i { color: var(--purple); transition: transform .2s ease; }
.faq-list details[open] summary i { transform: rotate(45deg); }
.faq-list details p { margin: 0; padding: 0 22px 22px; }
.compact-banner { padding: 75px 0; }.compact-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 50px; }.compact-banner h2 { color: var(--white); }.compact-banner p { margin: 0; }

.contact-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 90px; }.contact-prompt { display: flex; margin-top: 30px; padding: 21px; align-items: center; gap: 16px; border-radius: 18px; color: var(--ink); background: var(--cream); font-family: var(--display); font-weight: 700; }.contact-prompt i { color: var(--pink); font-size: 1.5rem; }
.contact-options { display: grid; gap: 18px; }.phone-card { display: grid; position: relative; padding: 30px 30px 30px 105px; min-height: 145px; align-content: center; overflow: hidden; border-radius: 28px 28px 28px 6px; color: rgba(255,255,255,.75); background: var(--purple); box-shadow: var(--shadow); }.phone-card:hover { color: var(--white); transform: translateY(-5px); }.phone-card--teal { background: var(--teal-dark); }.phone-card__icon { position: absolute; top: 35px; left: 30px; display: grid; width: 56px; height: 56px; place-items: center; border-radius: 18px; color: #ffffff; background: var(--purple); }.phone-card span { font-size: .82rem; }.phone-card strong { color: var(--white); font-family: var(--display); font-size: 1.65rem; }.phone-card small { position: absolute; right: 24px; bottom: 15px; opacity: .65; }
.visit-prep { display: grid; padding: 55px; grid-template-columns: 35% 1fr; gap: 60px; border-radius: 34px 34px 34px 7px; background: var(--white); }.visit-prep__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }.visit-prep article { padding-left: 18px; border-left: 3px solid var(--teal); }.visit-prep article span { color: var(--purple); font-family: var(--display); font-weight: 800; opacity: .45; }.visit-prep article h3 { margin: 9px 0; font-size: 1.25rem; }.visit-prep article p { margin: 0; font-size: .88rem; }
.contact-final { padding: 75px 0; background: var(--cream); }.contact-final__inner { display: grid; grid-template-columns: 125px 1fr auto; align-items: center; gap: 35px; }.contact-final__inner > img { width: 120px; height: 120px; object-fit: contain; }.contact-final h2 { margin-bottom: 5px; }.contact-final p { margin: 0; }

.site-footer { position: relative; padding: 95px 0 25px; overflow: hidden; color: rgba(255,255,255,.7); background: var(--purple-deep); }
.site-footer::before { position: absolute; top: -180px; left: -130px; width: 420px; height: 420px; border: 2px dashed rgba(255,255,255,.1); border-radius: 50%; content: ''; }
.site-footer__plane { position: absolute; top: 40px; right: 6%; width: 125px; opacity: .22; }
.site-footer__grid { position: relative; display: grid; padding-bottom: 60px; grid-template-columns: 2fr 1fr 1.1fr 1.45fr; gap: 55px; }
.site-footer h2 { color: var(--white); font-size: 1.35rem; }
.site-footer__brand p { max-width: 390px; font-size: .92rem; }.footer-logo-wrap { display: grid; width: 130px; height: 105px; margin-bottom: 24px; place-items: center; overflow: hidden; border-radius: 18px; background: var(--white); }.footer-logo-wrap img { width: 120px; height: 120px; object-fit: contain; }
.footer-age-pills { display: flex; flex-wrap: wrap; gap: 8px; }.footer-age-pills span { padding: 5px 10px; border-radius: 999px; color: rgba(255,255,255,.85); background: rgba(255,255,255,.10); font-family: var(--display); font-size: .78rem; font-weight: 700; }
.footer-links { display: grid; gap: 10px; font-size: .9rem; }.footer-links a:hover { color: rgba(255,255,255,.85); padding-left: 4px; }
.footer-visit { padding: 27px; border-radius: 24px 24px 24px 5px; background: rgba(255,255,255,.07); }.footer-visit p { font-size: .88rem; }.footer-visit .button { color: var(--ink); }
.site-footer__bottom { display: flex; padding-top: 24px; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.12); font-size: .78rem; }.site-footer__bottom p { margin: 0; }

.reveal { opacity: 1; transform: none; }
.js-ready .reveal { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s ease; }
.js-ready .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1199px) {
    .site-container { width: min(1120px, calc(100% - 40px)); }
    .site-header { height: 88px; }.brand { width: 95px; height: 80px; }.brand img { width: 92px; height: 92px; }
    .primary-nav ul { gap: 17px; }.primary-nav a { font-size: .91rem; }.header-cta { display: none; }
    .hero--home { min-height: 780px; }.hero__grid { min-height: 630px; }.hero__child--left { left: calc(50% - 50vw + 20px); bottom: 60px; width: min(28vw, 320px); }.hero__child--right { right: calc(50% - 50vw + 10px); width: min(48vw, 578px); height: auto; }.hero__child--right.hero__child--photo { right: calc(50% - 50vw + 25px); bottom: 70px; width: min(31vw, 390px); height: min(43vw, 530px); }
    .benefit-grid, .class-grid { grid-template-columns: repeat(2, 1fr); }.story-grid { grid-template-columns: 1fr; }.story-card { grid-template-columns: 125px 1fr; }.story-card img { width: 125px; height: 125px; }
    .activity-grid { grid-template-columns: repeat(3, 1fr); }.site-footer__grid { grid-template-columns: 1.6fr 1fr 1fr; }.footer-visit { grid-column: 1 / -1; }
}

@media (max-width: 991px) {
    body.has-sticky-header { padding-top: 82px; }
    .top-strip__inner { justify-content: center; }.top-strip__inner > p { display: none; }
    .site-header, .site-header.is-sticky { height: 82px; }.brand { margin-right: auto; }
    .nav-toggle { display: flex; order: 3; }.header-cta { display: inline-flex; }
    .primary-nav { position: fixed; z-index: 100; top: 124px; right: 20px; left: 20px; max-height: calc(100vh - 145px); padding: 20px; overflow-y: auto; border: 1px solid var(--border); border-radius: 22px; background: var(--white); box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translateY(-12px); transition: opacity .2s ease, transform .2s ease; }
    .site-header.is-sticky .primary-nav { top: 92px; }.primary-nav.is-open { opacity: 1; pointer-events: auto; transform: none; }.primary-nav ul { display: grid; gap: 2px; }.primary-nav a { padding: 10px 12px; border-radius: 10px; }.primary-nav a::after { display: none; }.primary-nav a.is-active { background: var(--soft); }
    .nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(1) { transform: translateY(6px) rotate(45deg); }.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(2) { opacity: 0; }.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
    .hero__content { max-width: 720px; transform: none; }.hero__child--left { display: none; }.hero__child--right { position: absolute; right: 50%; bottom: -60px; width: min(620px, 86vw); height: auto; opacity: .22; transform: translateX(50%); }.hero__child--right img { height: auto; object-fit: contain; }.hero__child--right.hero__child--photo { right: 50%; bottom: -60px; width: min(560px, 86vw); height: 620px; border-width: 0; opacity: .16; transform: translateX(50%); }.hero__child--right.hero__child--photo img { height: 100%; object-fit: cover; object-position: center 55%; transform: none; }.hero__content > * { position: relative; z-index: 2; }
    .split-layout, .content-split, .learning-showcase, .whole-child, .calendar-card, .admissions-panel, .contact-layout, .visit-prep, .faq-layout { grid-template-columns: 1fr; }
    .faq-layout__intro { position: static; }
    .content-split--reverse > :first-child, .content-split--reverse > :last-child { order: initial; }
    .image-stage { max-width: 650px; margin-inline: auto; }.section { padding: 85px 0; }.visit-cta { padding-bottom: 85px; }.section--soft + .visit-cta { padding-top: 85px; }
    .subject-grid, .admission-steps { grid-template-columns: 1fr; }.admission-step p { min-height: auto; }
    .page-hero__grid { grid-template-columns: 1fr 310px; }.page-hero__image-wrap { width: 310px; height: 310px; }
    .visit-cta__inner { padding: 50px; grid-template-columns: 1fr; }.visit-cta__actions { grid-template-columns: auto 1fr; align-items: center; }.visit-cta__doll { right: 5%; }
    .whole-child, .visit-prep { padding: 42px; gap: 35px; }.visit-prep__grid { grid-template-columns: 1fr; }
    .site-footer__grid { grid-template-columns: 1.6fr 1fr 1fr; gap: 35px; }
}

@media (max-width: 767px) {
    .site-container { width: min(calc(100% - 30px), 680px); }
    h1 { font-size: clamp(2.7rem, 13vw, 4rem); } h2 { font-size: clamp(2rem, 9vw, 3rem); }
    .top-strip__phones { gap: 8px; font-size: .78rem; }.top-strip__phones span { display: none; }.top-strip__phones a:last-child { display: none; }
    .header-cta { display: none; }.brand { width: 88px; }
    .hero--home { min-height: 730px; padding: 70px 0 75px; }.hero__grid { min-height: 575px; }.hero__content > p { font-size: 1rem; }.hero__actions { align-items: stretch; flex-direction: column; max-width: 300px; margin-inline: auto; }.hero__trust { flex-wrap: wrap; gap: 9px 14px; }.hero__child--right { bottom: -50px; width: min(600px, 108vw); opacity: .16; }.hero__plane { top: 38px; right: -20px; width: 115px; opacity: .5; }.hero__dots--one { left: 5%; }.hero__dots--two { right: 2%; }
    .section { padding: 72px 0; }.section--intro { padding-top: 85px; }.section-heading { display: block; margin-bottom: 36px; }.section-heading > p, .section-heading > .text-link { margin-top: 16px; }
    .split-layout, .content-split { gap: 45px; }.image-stage { min-height: 450px; }.image-stage__main--photo { margin-top: 20px; }.image-stage__note { right: 0; bottom: 20px; }.image-stage__rainbow { right: 0; width: 110px; }.lead { font-size: 1.03rem; }
    .benefit-grid, .class-grid, .apart-grid, .subject-grid { grid-template-columns: 1fr; }
    .learning-showcase { gap: 45px; }.story-card { grid-template-columns: 95px 1fr; padding: 17px; gap: 16px; }.story-card img { width: 95px; height: 110px; }
    .page-hero { min-height: auto; }.page-hero__grid { min-height: auto; grid-template-columns: 1fr; }.page-hero__copy { padding: 65px 0 35px; }.page-hero__visual { height: 270px; }.page-hero__image-wrap { width: 270px; height: 270px; margin-bottom: -40px; }.page-hero__star { top: 15px; left: 12%; }
    .commitment-card { padding: 95px 28px 32px; }.commitment-card__icon { top: 28px; left: 28px; }.commitment-card blockquote { font-size: 1.3rem; }.photo-card > img { min-height: 340px; }.photo-card__badge { right: 10px; }
    .check-list { grid-template-columns: 1fr; }.activity-grid { grid-template-columns: repeat(2, 1fr); }.whole-child, .visit-prep { padding: 30px 22px; }.whole-child__items { grid-template-columns: 1fr; }
    .class-detail { padding: 28px; grid-template-columns: 90px 1fr; gap: 22px; }.class-detail__age { width: 90px; height: 112px; }.class-detail__age strong { font-size: 3.3rem; }.class-detail__tags { display: none; }.class-detail__bird { display: none; }
    .experience-card { padding: 27px; grid-template-columns: 1fr; gap: 28px; }.experience-card--reverse > :first-child, .experience-card--reverse > :last-child { order: initial; }.experience-card__visual { max-width: 260px; margin-inline: auto; }.calendar-card { padding: 35px 24px; gap: 32px; }
    .admissions-panel { padding: 30px 22px; gap: 35px; }.compact-banner__inner { align-items: flex-start; flex-direction: column; }.phone-card { padding-left: 92px; }.phone-card strong { font-size: 1.35rem; }
    .contact-final__inner { grid-template-columns: 90px 1fr; }.contact-final__inner > img { width: 90px; height: 90px; }.contact-final__inner .button { grid-column: 1 / -1; }
    .visit-cta__inner { padding: 42px 25px; }.visit-cta__actions { grid-template-columns: 1fr; }.visit-cta__doll { display: none; }
    .eyfs-grid, .eyfs-grid--prime { grid-template-columns: 1fr; }
    .facility-zones { grid-template-columns: 1fr; }
    .progress-update { grid-template-columns: 1fr; }
    .progress-update__badge { padding: 14px 20px; text-align: left; justify-content: flex-start; }
    .site-footer { padding-top: 75px; }.site-footer__grid { grid-template-columns: 1fr 1fr; }.site-footer__brand, .footer-visit { grid-column: 1 / -1; }.site-footer__bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 479px) {
    .class-detail { grid-template-columns: 1fr; }.class-detail__age { width: 100%; height: 82px; display: flex; gap: 7px; border-radius: 20px; transform: none; }.class-detail__age strong { margin: 0; font-size: 2.6rem; }
    .story-card { grid-template-columns: 1fr; }.story-card img { width: 100%; height: 190px; }.activity-grid { grid-template-columns: 1fr 1fr; }.site-footer__grid { grid-template-columns: 1fr; }.site-footer__brand, .footer-visit { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
    .js-ready .reveal { opacity: 1; transform: none; }
}

/* Full-screen home story and animated two-level navigation */
.top-strip__links { display: flex; align-items: center; gap: 22px; font-weight: 700; }
.top-strip__links a { display: inline-flex; align-items: center; white-space: nowrap; }
.site-header,
.brand,
.brand img,
.site-header__inner,
.primary-nav a { transition: height .3s ease, width .3s ease, padding .3s ease, background .3s ease, color .3s ease, box-shadow .3s ease, transform .3s ease; }
.site-header.is-sticky { height: 74px; background: rgba(255,255,255,.97); box-shadow: 0 12px 35px rgba(49,28,68,.13); backdrop-filter: blur(16px); }
.site-header.is-sticky .brand { height: 68px; }
.site-header.is-sticky .brand img { width: 82px; height: 82px; }
.site-header.is-sticky .primary-nav a { padding-block: 8px; }

.page-home .top-strip { position: absolute; z-index: 81; top: 0; right: 0; left: 0; background: rgba(35,17,56,.82); border-bottom: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(12px); }
.page-home .site-header { position: absolute; z-index: 80; top: 42px; right: 0; left: 0; background: rgba(31,19,45,.56); border-bottom-color: rgba(255,255,255,.15); backdrop-filter: blur(14px); }
.page-home .site-header:not(.is-sticky) .primary-nav a { color: var(--white); }
.page-home .site-header:not(.is-sticky) .primary-nav a:hover,
.page-home .site-header:not(.is-sticky) .primary-nav a.is-active { color: var(--purple); }
.page-home .site-header:not(.is-sticky) .brand { margin-left: -4px; border-radius: 0 0 18px 18px; background: rgba(255,255,255,.94); }
.page-home .site-header:not(.is-sticky) .header-cta { color: #ffffff; background: var(--purple); border-color: var(--purple); box-shadow: 5px 5px 0 rgba(68,157,168,.28); }
.page-home .site-header.is-sticky { position: fixed; top: 0; background: rgba(255,255,255,.97); border-bottom-color: rgba(104,53,154,.1); }
.page-home.has-sticky-header { padding-top: 0; }

.hero-slider { position: relative; min-height: min(880px, 92vh); overflow: hidden; color: var(--white); background: var(--purple-deep); isolation: isolate; }
.hero-slide { position: absolute; z-index: 0; inset: 0; opacity: 0; pointer-events: none; transition: opacity .8s ease; }
.hero-slide::before { position: absolute; z-index: -2; inset: 0; background-image: var(--hero-image); background-position: var(--hero-position, center); background-size: cover; content: ''; transform: scale(1); transition: transform 7s ease; }
.hero-slide::after { position: absolute; z-index: -1; inset: 0; content: ''; background: linear-gradient(160deg, rgba(10,5,20,.08) 0%, rgba(14,7,26,.38) 55%, rgba(14,7,26,.55) 100%), linear-gradient(0deg, rgba(10,5,20,.45) 0%, rgba(10,5,20,.18) 35%, transparent 65%); }
.hero-slide.is-active { z-index: 1; opacity: 1; pointer-events: auto; }
.hero-slide.is-active::before { transform: scale(1); }
.hero-slide__inner { display: flex; min-height: min(880px, 92vh); padding-top: 130px; padding-bottom: 70px; align-items: flex-end; }
.hero-slide__content { max-width: 875px; text-shadow: 0 2px 18px rgba(0,0,0,.55); }
.hero-slide__content .eyebrow { color: rgba(255,255,255,.90); }
.hero-slide__content h1,
.hero-slide__content h2 { max-width: 920px; margin-bottom: 22px; color: var(--white); font-size: clamp(3.5rem, 6.5vw, 6.5rem); line-height: .96; text-wrap: balance; }
.hero-slide__content h1 span,
.hero-slide__content h2 span { position: relative; display: inline-block; color: var(--yellow); }
.hero-slide__content h1 span::after,
.hero-slide__content h2 span::after { position: absolute; right: 0; bottom: 2px; left: 0; height: 7px; border-radius: 50%; background: var(--purple); content: ''; transform: rotate(-1deg); }
.hero-slide__content > p { max-width: 700px; margin-bottom: 28px; color: rgba(255,255,255,.9); font-size: 1.13rem; line-height: 1.65; text-shadow: 0 2px 15px rgba(0,0,0,.42); }
.hero-slide__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button--glass { color: var(--white); background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.72); box-shadow: none; backdrop-filter: blur(8px); }
.button--glass:hover { color: var(--ink); background: var(--white); border-color: var(--white); }
.hero-slider__arrow { position: absolute; z-index: 5; top: 50%; transform: translateY(-50%); display: grid; width: 58px; height: 58px; padding: 0; place-items: center; border: 2px solid rgba(255,255,255,.55); border-radius: 50%; color: var(--white); background: rgba(14,7,26,.38); cursor: pointer; backdrop-filter: blur(10px); transition: background .25s ease, border-color .25s ease, transform .25s ease; font-size: 1.1rem; }
.hero-slider__arrow:hover { background: var(--yellow); border-color: var(--yellow); color: var(--ink); transform: translateY(-50%) scale(1.08); }
.hero-slider__arrow--prev { left: 36px; }
.hero-slider__arrow--next { right: 36px; }
.hero-slider__footer { position: absolute; z-index: 5; right: 0; bottom: 38px; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.hero-slider__trust { display: flex; flex-wrap: wrap; gap: 10px 20px; font-family: var(--display); font-size: .9rem; font-weight: 800; }
.hero-slider__trust span { display: inline-flex; align-items: center; gap: 7px; }
.hero-slider__trust i { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; color: #ffffff; background: var(--purple); font-size: .62rem; }
.hero-slider__dots { display: flex; align-items: center; gap: 10px; }
.hero-slider__dots button { width: 10px; height: 10px; padding: 0; border: 2px solid rgba(255,255,255,.6); border-radius: 99px; background: transparent; cursor: pointer; transition: width .3s ease, background .3s ease, border-color .3s ease; }
.hero-slider__dots button.is-active { width: 40px; background: var(--yellow); border-color: var(--yellow); }

/* Book-a-visit page */
.visit-booking { position: relative; padding: 92px 0 110px; overflow: hidden; background: #f7f2fb; }
.visit-booking__backdrop { position: absolute; top: -140px; left: -180px; width: 520px; height: 520px; border: 80px solid rgba(35,172,174,.08); border-radius: 50%; }
.visit-booking__layout { position: relative; display: grid; grid-template-columns: minmax(0, .82fr) minmax(560px, 1.18fr); align-items: start; gap: clamp(45px, 7vw, 100px); }
.visit-booking__intro { position: sticky; top: 105px; }
.visit-booking__intro h1 { font-size: clamp(3.2rem, 5vw, 5.2rem); }
.visit-booking__intro > p { max-width: 580px; }
.visit-booking__photo { height: 390px; margin: 35px 0 30px; overflow: hidden; border: 7px solid var(--white); border-radius: 45% 55% 48% 52% / 55% 43% 57% 45%; box-shadow: var(--shadow); }
.visit-booking__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.visit-booking__facts { display: grid; gap: 12px; }
.visit-booking__facts li { display: flex; align-items: center; gap: 11px; color: var(--ink); }
.visit-booking__facts i { color: var(--teal); }
.visit-booking__call { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--border); color: var(--ink); }
.visit-booking__call i { color: var(--purple); margin-right: 8px; }
.visit-booking__call a { color: var(--purple); font-weight: 800; }
.visit-form-card { min-height: 650px; padding: clamp(32px, 4vw, 58px); border: 1px solid var(--border); border-radius: 34px 34px 34px 8px; background: var(--white); box-shadow: var(--shadow); }
.visit-form-card__heading > span { color: var(--teal-dark); font-family: var(--display); font-size: .82rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.visit-form-card__heading h2 { margin: 8px 0 12px; font-size: clamp(2rem, 3vw, 3rem); }
.visit-form-card__heading p { margin-bottom: 30px; }
.form-alert { margin-bottom: 24px; padding: 14px 16px; border-radius: 12px; color: #8f2445; background: #fff0f4; font-size: .92rem; }
.form-alert i { margin-right: 7px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.form-field { display: grid; align-content: start; gap: 7px; }
.form-field--wide { grid-column: 1 / -1; }
.form-field label,
.form-consent label { color: var(--ink); font-family: var(--display); font-size: .92rem; font-weight: 800; line-height: 1.3; }
.form-field label span,
.form-consent label span { color: #c43160; }
.form-field label em { color: #8a8492; font-family: var(--body); font-size: .72rem; font-style: normal; font-weight: 400; }
.form-field input,
.form-field select,
.form-field textarea { width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid #dcd3e4; border-radius: 11px; color: var(--ink); background: #fdfcff; outline: none; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.form-field textarea { min-height: 115px; resize: vertical; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-color: var(--purple); background: var(--white); box-shadow: 0 0 0 4px rgba(104,53,154,.1); }
.form-field [aria-invalid="true"] { border-color: #cf4779; }
.form-field small,
.form-consent small { color: #b12853; font-size: .78rem; line-height: 1.4; }
.form-consent { display: grid; margin: 24px 0; grid-template-columns: 20px 1fr; align-items: start; gap: 10px; }
.form-consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--purple); }
.form-consent small { grid-column: 2; }
.visit-form__submit { width: 100%; border: 0; cursor: pointer; }
.visit-form__note { margin: 16px 0 0; text-align: center; font-size: .78rem; }
.visit-form__note i { color: var(--teal-dark); margin-right: 6px; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-success { display: flex; min-height: 540px; flex-direction: column; align-items: flex-start; justify-content: center; }
.form-success > span { display: grid; width: 72px; height: 72px; margin-bottom: 25px; place-items: center; border-radius: 50%; color: var(--white); background: var(--teal); font-size: 1.6rem; box-shadow: 0 12px 30px rgba(35,172,174,.25); }
.form-success h2 { max-width: 600px; }
.form-success p { max-width: 570px; }
.form-success__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }

@media (max-width: 1199px) {
    body.has-sticky-header { padding-top: 88px; }
    .page-home.has-sticky-header { padding-top: 0; }
    .top-strip__links { gap: 14px; }
    .top-strip__secondary-phone { display: none !important; }
    .hero-slide__content { max-width: 760px; }
    .visit-booking__layout { grid-template-columns: minmax(0, .78fr) minmax(510px, 1.22fr); gap: 45px; }
}

@media (max-width: 991px) {
    .site-header.is-sticky { height: 74px; }
    body.has-sticky-header { padding-top: 82px; }
    .page-home.has-sticky-header { padding-top: 0; }
    .page-home .site-header:not(.is-sticky) .primary-nav a { color: var(--ink); }
    .page-home .site-header:not(.is-sticky) .primary-nav a.is-active { color: var(--purple); }
    .primary-nav { top: 134px; }
    .site-header.is-sticky .primary-nav { top: 84px; }
    .hero-slide__content { max-width: 720px; }
    .hero-slider__arrow { display: none; }
    .visit-booking__layout { grid-template-columns: 1fr; }
    .visit-booking__intro { position: static; display: grid; grid-template-columns: 1fr 280px; column-gap: 35px; }
    .visit-booking__intro .eyebrow,
    .visit-booking__intro h1,
    .visit-booking__intro > p { grid-column: 1; }
    .visit-booking__photo { grid-column: 2; grid-row: 1 / span 4; height: 360px; margin: 0; }
    .visit-booking__facts,
    .visit-booking__call { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
    .top-strip { min-height: 38px; }
    .top-strip__inner { min-height: 38px; }
    .top-strip__links { width: 100%; justify-content: space-between; gap: 10px; font-size: .76rem; }
    .top-strip__secondary-phone { display: none !important; }
    .page-home .site-header { top: 38px; }
    .page-home .site-header.is-sticky { top: 38px; }
    .page-home .site-header:not(.is-sticky) { height: 76px; }
    .page-home .site-header:not(.is-sticky) .brand { height: 70px; }
    .page-home .site-header:not(.is-sticky) .brand img { width: 82px; height: 82px; }
    .primary-nav { top: 124px; }
    .hero-slider { min-height: max(660px, 100svh); }
    .hero-slide__inner { min-height: 580px; padding-top: 120px; padding-bottom: 60px; align-items: flex-end; }
    .hero-slide::after { background: linear-gradient(160deg, rgba(10,5,20,.25) 0%, rgba(14,7,26,.72) 55%, rgba(14,7,26,.92) 100%), linear-gradient(0deg, rgba(10,5,20,.88) 0%, rgba(10,5,20,.45) 35%, transparent 65%) !important; }
    .hero-slide__content h1,
    .hero-slide__content h2 { font-size: clamp(2.8rem, 12vw, 4.2rem); }
    .hero-slide__content > p { font-size: .98rem; line-height: 1.55; }
    .hero-slide__actions { max-width: 330px; }
    .hero-slide__actions .button { min-height: 50px; }
    .hero-slider__footer { bottom: 23px; }
    .hero-slider__trust span:nth-child(2),
    .hero-slider__trust span:nth-child(3) { display: none; }
    .hero-slider__dots button.is-active { width: 28px; }
    .visit-booking { padding: 65px 0 75px; }
    .visit-booking__intro { display: block; }
    .visit-booking__photo { height: 330px; margin: 30px 0; }
    .visit-form-card { padding: 30px 22px; }
    .form-grid { grid-template-columns: 1fr; }
    .form-field--wide { grid-column: auto; }
}

@media (max-width: 479px) {
    .top-strip__links a:first-child { display: none; }
    .top-strip__links { justify-content: flex-end; }
    .hero-slide__actions { display: grid; width: 100%; }
    .hero-slide__actions .button { width: 100%; }
    .hero-slider__footer { align-items: flex-end; }
    .hero-slider__trust { font-size: .82rem; }
    .visit-booking__photo { height: 290px; }
}

/* Oversized two-row logo lockup: collapses into the sticky navigation */
.top-strip__inner { padding-left: 178px; transition: padding .35s ease; }
.site-header { overflow: visible; }
.site-header__inner { position: relative; padding-left: 178px; }
.brand { position: absolute; z-index: 90; top: -42px; left: 0; width: 154px; height: 140px; margin: 0; overflow: hidden; border: 1px solid rgba(104,53,154,.11); border-top: 0; border-radius: 0 0 24px 24px; background: rgba(255,255,255,.97); box-shadow: 0 15px 34px rgba(25,13,38,.16); transform-origin: top left; }
.brand img { width: 142px; height: 142px; object-fit: contain; }
.site-header.is-sticky .site-header__inner { padding-left: 108px; }
.site-header.is-sticky .brand { top: 2px; left: 0; width: 86px; height: 70px; border: 0; border-radius: 0 0 16px 16px; box-shadow: none; }
.site-header.is-sticky .brand img { width: 80px; height: 80px; }
.page-home .site-header { z-index: 82; }
.page-home .site-header:not(.is-sticky) .brand { margin-left: 0; }

/* Hero statement */
.hero-slide__content .hero-slogan { max-width: 1040px; font-size: clamp(4.2rem, 7.4vw, 7.7rem); line-height: .9; letter-spacing: -.055em; }
.hero-slide__content .hero-slogan span { display: block; width: max-content; max-width: 100%; margin-top: 9px; }

/* Home story video */
.image-stage__play { position: absolute; z-index: 6; top: 47%; left: 48%; display: grid; width: 92px; height: 92px; padding: 0; place-items: center; border: 7px solid rgba(255,255,255,.88); border-radius: 50%; color: var(--white); background: var(--purple); box-shadow: 0 16px 40px rgba(36,17,59,.35); cursor: pointer; transform: translate(-50%, -50%); transition: background .22s ease, transform .22s ease, box-shadow .22s ease; }
.image-stage__play::before { position: absolute; inset: -18px; border: 2px solid rgba(255,255,255,.7); border-radius: 50%; content: ''; animation: playPulse 2.2s ease-out infinite; }
.image-stage__play i { margin-left: 5px; font-size: 1.5rem; }
.image-stage__play:hover,
.image-stage__play:focus-visible { background: var(--teal-dark); box-shadow: 0 19px 48px rgba(36,17,59,.45); outline: none; transform: translate(-50%, -50%) scale(1.08); }
@keyframes playPulse { 0% { opacity: .9; transform: scale(.78); } 75%, 100% { opacity: 0; transform: scale(1.32); } }

.video-modal[hidden] { display: none; }
.video-modal { position: fixed; z-index: 1000; inset: 0; display: grid; padding: clamp(18px, 4vw, 55px); place-items: center; }
.video-modal__backdrop { position: absolute; inset: 0; background: rgba(20,10,31,.92); backdrop-filter: blur(10px); }
.video-modal__panel { position: relative; z-index: 1; width: min(1120px, 94vw); border: 5px solid rgba(255,255,255,.16); border-radius: 24px 24px 24px 7px; background: #120a1a; box-shadow: 0 32px 90px rgba(0,0,0,.52); }
.video-modal__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 18px 18px 18px 3px; background: #0d0713; }
.video-modal__frame iframe { position: absolute; width: 100%; height: 100%; inset: 0; border: 0; }
.video-modal__close { position: absolute; z-index: 2; top: -20px; right: -20px; display: grid; width: 48px; height: 48px; padding: 0; place-items: center; border: 3px solid var(--white); border-radius: 50%; color: var(--white); background: var(--purple); box-shadow: 0 8px 24px rgba(0,0,0,.35); cursor: pointer; }
.video-modal__close:hover,
.video-modal__close:focus-visible { background: var(--teal-dark); outline: none; transform: rotate(7deg) scale(1.05); }
body.video-modal-open { overflow: hidden; }

@media (max-width: 1199px) {
    .top-strip__inner,
    .site-header__inner { padding-left: 156px; }
    .brand { width: 136px; height: 130px; }
    .brand img { width: 126px; height: 132px; }
    .site-header.is-sticky .site-header__inner { padding-left: 100px; }
}

@media (max-width: 991px) {
    .top-strip__inner { padding-left: 126px; justify-content: flex-end; }
    .site-header__inner { padding-left: 126px; }
    .brand { top: -42px; width: 110px; height: 124px; }
    .brand img { width: 104px; height: 124px; }
    .site-header.is-sticky .site-header__inner { padding-left: 94px; }
    .site-header.is-sticky .brand { width: 78px; }
    .site-header.is-sticky .brand img { width: 72px; height: 76px; }
    .hero-slide__content .hero-slogan { font-size: clamp(3.8rem, 10vw, 6.3rem); }
}

@media (max-width: 767px) {
    .top-strip__inner { padding-left: 108px; }
    .site-header__inner { padding-left: 108px; }
    .brand,
    .page-home .site-header:not(.is-sticky) .brand { top: -38px; width: 94px; height: 114px; }
    .brand img,
    .page-home .site-header:not(.is-sticky) .brand img { width: 90px; height: 114px; }
    .site-header.is-sticky .site-header__inner { padding-left: 86px; }
    .site-header.is-sticky .brand { top: 2px; width: 72px; height: 68px; }
    .site-header.is-sticky .brand img { width: 68px; height: 72px; }
    .hero-slide__content .hero-slogan { font-size: clamp(3.1rem, 14.5vw, 4.8rem); }
    .image-stage__play { width: 78px; height: 78px; border-width: 6px; }
    .video-modal__close { top: -14px; right: -10px; }
}

@media (max-width: 479px) {
    .top-strip__inner { padding-left: 98px; }
    .site-header__inner { padding-left: 98px; }
    .brand,
    .page-home .site-header:not(.is-sticky) .brand { width: 84px; }
    .brand img,
    .page-home .site-header:not(.is-sticky) .brand img { width: 80px; }
    .hero-slide__content .hero-slogan { font-size: clamp(2.85rem, 14vw, 4rem); }
}



.text-blue, .text-blue i,
.page-home .site-header:not(.is-sticky) .primary-nav a{
    color: #449da8 !important;
}
.nav-toggle .nav-toggle__line{
    background:  #449da8 !important;
}
.nav-toggle{
    background: #fff ;
}
.brand {
    position: absolute;
    z-index: 90;
    top: -42px;
    left: 0;
    width: 154px;
    height: 140px;
    margin: 0;
    overflow: hidden;
    border: none;
    border-top: 0;
    border-radius: 0 0 24px 24px;
    background: transparent;
    box-shadow: none;
    transform-origin: top left;
}


.page-home .top-strip {
    position: absolute;
    z-index: 75;
    top: 0;
    right: 0;
    left: 0;
    background: #fff;
    border-bottom: 0px solid rgba(255, 255, 255, .14);
    backdrop-filter: blur(12px);
}
.page-home .site-header:not(.is-sticky) .brand {
    margin-left: -4px;
    border-radius: 0 0 18px 18px;
    background: rgba(255, 255, 255, .94);
    background: transparent;
}
.page-home .site-header {
    position: absolute;
    z-index: 80;
    top: 42px;
    right: 0;
    left: 0;
    background: rgb(255 255 255 / 56%);
    background: #fff;
    border-bottom-color: rgba(255, 255, 255, .15);
    backdrop-filter: blur(14px);
    backdrop-filter: none;
}
@media (max-width: 767px) {
    .hero-slide::after {
        background: linear-gradient(160deg, rgba(10,5,20,.25) 0%, rgba(14,7,26,.72) 55%, rgba(14,7,26,.92) 100%), linear-gradient(0deg, rgba(10,5,20,.88) 0%, rgba(10,5,20,.45) 35%, transparent 65%) !important;
    }
    .site-header{margin-top: -4px}
    .hero-slide__content{
        margin-top: 70px; margin-bottom: -60px;
    }
    .hero-slide__actions{
        margin-top: -50px;
    }
    .hero-slide__content{margin-left: 0 !important;}
}

@media (min-width: 992px) {
    /*.col-lg-7 {*/
    /*    flex: 0 0 auto;*/
    /*    width: 80.333333%;*/
    /*}*/
}

.button--yellow {
    color: var(--purple);
    box-shadow: rgba(68, 157, 168, 0.22) 5px 5px 0px;
    background: #ffffff;
    border-color: #ffffff
}

/* ================================================================
   WELCOME SECTION
   ================================================================ */

.section--welcome { background: var(--white); overflow: hidden; }

/* Headline block – centred above the split */
.welcome-headline { text-align: center; margin-bottom: 3.5rem; }

.welcome-eyebrow {
    display: inline-flex; align-items: center; gap: .45rem;
    font-size: .78rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--purple);
    background: var(--soft); border: 1.5px solid var(--border);
    border-radius: 99px; padding: .38rem 1rem; margin-bottom: 1rem;
}

.welcome-title {
    font-family: var(--display); font-size: clamp(3.2rem, 8vw, 6rem);
    font-weight: 900; line-height: 1; letter-spacing: -.02em;
    color: var(--purple); margin: 0 0 1.2rem;
    background: linear-gradient(135deg, var(--purple) 0%, var(--teal) 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}

.welcome-rule {
    display: flex; align-items: center; justify-content: center; gap: .75rem;
    color: var(--purple); font-size: .9rem;
}
.welcome-rule span {
    display: block; width: 80px; height: 2px;
    background: linear-gradient(90deg, transparent, var(--purple));
    border-radius: 2px;
}
.welcome-rule span:last-child {
    background: linear-gradient(90deg, var(--purple), transparent);
}

/* Split layout */
.welcome-body {
    display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center;
}

/* Image side */
.welcome-visual {
    position: relative; flex-shrink: 0;
}

.welcome-blob {
    position: absolute; inset: -10% -8%;
    background: radial-gradient(ellipse at 40% 50%, rgba(68,157,168,.13) 0%, transparent 70%);
    border-radius: 60% 40% 55% 45% / 50% 60% 40% 50%;
    z-index: 0;
}

.welcome-photo {
    position: relative; z-index: 1;
    width: 100%; border-radius: 32px;
    box-shadow: var(--shadow);
    transition: transform .5s ease;
    aspect-ratio: 4/3; object-fit: cover;
}
.welcome-visual:hover .welcome-photo { transform: translateY(-6px) scale(1.01); }

.welcome-play {
    position: absolute; z-index: 2;
    bottom: 1.4rem; right: 1.4rem;
}

.welcome-badge {
    position: absolute; z-index: 3;
    top: 1.25rem; left: -1.5rem;
    display: flex; align-items: center; gap: .65rem;
    background: var(--white); border-radius: 16px;
    padding: .75rem 1.1rem;
    box-shadow: 0 8px 30px rgba(68,157,168,.18);
    border: 1.5px solid var(--border);
    font-size: .82rem;
}
.welcome-badge > i {
    font-size: 1.4rem; color: var(--purple); flex-shrink: 0;
}
.welcome-badge strong { display: block; font-weight: 800; color: var(--ink); font-size: .88rem; }
.welcome-badge span  { color: var(--text); }

.welcome-rainbow {
    position: absolute; z-index: 4;
    bottom: -1rem; left: -1rem;
    width: 110px; pointer-events: none;
    animation: floatY 4s ease-in-out infinite;
}
@keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* Copy side */
.welcome-copy { display: flex; flex-direction: column; gap: 1.5rem; }

.welcome-lead {
    font-size: 1.13rem; line-height: 1.75; color: var(--ink);
    font-weight: 500; border-left: 4px solid var(--purple);
    padding-left: 1.25rem; margin: 0;
}

.welcome-copy > p:not(.welcome-lead) {
    font-size: 1rem; line-height: 1.8; color: var(--text); margin: 0;
}

/* Pillars */
.welcome-pillars { display: flex; flex-direction: column; gap: .85rem; }

.welcome-pillar {
    display: flex; align-items: center; gap: 1rem;
    background: var(--soft); border: 1.5px solid var(--border);
    border-radius: 16px; padding: .9rem 1.2rem;
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
    cursor: default;
}
.welcome-pillar:hover {
    background: rgba(68,157,168,.08);
    border-color: var(--purple);
    transform: translateX(6px);
}

.welcome-pillar__icon {
    width: 44px; height: 44px; flex-shrink: 0;
    display: grid; place-items: center; border-radius: 12px;
    background: var(--purple); color: var(--white); font-size: 1.1rem;
    transition: background .25s ease;
}
.welcome-pillar:hover .welcome-pillar__icon { background: var(--teal); }

.welcome-pillar__text { display: flex; flex-direction: column; }
.welcome-pillar__text strong { font-weight: 700; color: var(--ink); font-size: .92rem; }
.welcome-pillar__text span  { font-size: .82rem; color: var(--text); }

/* CTA button */
.button--primary {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: .55rem;
    font-weight: 700; font-size: .9rem;
    padding: .8rem 1.8rem; border-radius: 99px;
    background: var(--purple); color: var(--white);
    border: 2px solid var(--purple);
    text-decoration: none;
    transition: background .25s ease, transform .2s ease, box-shadow .25s ease;
    box-shadow: 0 6px 20px rgba(68,157,168,.28);
}
.button--primary:hover {
    background: var(--purple-dark); border-color: var(--purple-dark);
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(68,157,168,.38);
    color: var(--white);
}

/* Responsive */
@media (max-width: 900px) {
    .welcome-body { grid-template-columns: 1fr; gap: 3rem; }
    .welcome-badge { left: .75rem; }
}
@media (max-width: 600px) {
    .welcome-title { font-size: clamp(2.8rem, 12vw, 4rem); }
    .welcome-rule span { width: 40px; }
    .welcome-rainbow { width: 70px; }
}


/* ================================================================
   GALLERY SECTION
   ================================================================ */

.section--gallery { background: var(--soft); }

/* --- Tab row --- */
.gallery-tabs {
    display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem;
    margin-bottom: 2.5rem;
}

.gallery-tab {
    display: flex; align-items: center; gap: .75rem;
    padding: .75rem 1.4rem; border-radius: 99px;
    border: 2px solid var(--border); background: var(--white);
    cursor: pointer; color: var(--text);
    font-family: var(--body); font-size: .88rem;
    transition: border-color .2s, background .2s, color .2s, box-shadow .2s, transform .2s;
}
.gallery-tab:hover { border-color: var(--purple); color: var(--purple); transform: translateY(-2px); }
.gallery-tab.is-active {
    border-color: var(--purple); background: var(--purple);
    color: var(--white); box-shadow: 0 6px 20px rgba(68,157,168,.3);
}
.gallery-tab__icon { font-size: 1.4rem; line-height: 1; }
.gallery-tab__label { display: flex; flex-direction: column; text-align: left; }
.gallery-tab__label strong { font-weight: 700; line-height: 1.2; }
.gallery-tab__label small  { font-size: .76rem; opacity: .8; }

/* --- Panel wrapper --- */
.gallery-panels { position: relative; }
.gallery-panel { display: none; }
.gallery-panel.is-active { display: block; animation: galFadeIn .35s ease; }
@keyframes galFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* --- Strip wrapper (arrows + viewport) --- */
.gallery-strip-wrap {
    position: relative; display: flex; align-items: center; gap: .75rem;
}

.gal-arrow {
    flex-shrink: 0; width: 48px; height: 48px;
    display: grid; place-items: center;
    border-radius: 50%; border: 2px solid var(--border);
    background: var(--white); color: var(--purple);
    cursor: pointer; font-size: 1rem; z-index: 2;
    transition: background .2s, border-color .2s, transform .2s, box-shadow .2s;
    box-shadow: 0 4px 14px rgba(68,157,168,.12);
}
.gal-arrow:hover {
    background: var(--purple); color: var(--white);
    border-color: var(--purple); transform: scale(1.08);
    box-shadow: 0 6px 20px rgba(68,157,168,.3);
}
.gal-arrow:disabled { opacity: .35; pointer-events: none; }

/* --- Scrollable viewport --- */
.gallery-strip { flex: 1; overflow: hidden; border-radius: 20px; }

.gallery-track {
    display: flex; gap: 16px;
    transition: transform .45s cubic-bezier(.4,0,.2,1);
    will-change: transform;
}

.gal-item {
    flex: 0 0 calc(25% - 12px); /* 4 visible at once */
    border-radius: 16px; overflow: hidden;
    box-shadow: 0 8px 24px rgba(28,90,99,.10);
    aspect-ratio: 4/3;
    transition: transform .3s ease, box-shadow .3s ease;
}
.gal-item:hover { transform: scale(1.03); box-shadow: 0 14px 36px rgba(28,90,99,.18); }
.gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* --- Footer CTA --- */
.gallery-panel__footer {
    display: flex; justify-content: center; margin-top: 2rem;
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .gal-item { flex: 0 0 calc(50% - 8px); } /* 2 visible */
}
@media (max-width: 540px) {
    .gal-item { flex: 0 0 calc(100% - 0px); } /* 1 visible */
    .gallery-tab__label small { display: none; }
    .gallery-tab { padding: .65rem 1rem; }
}


/* ================================================================
   GALLERY LIGHTBOX
   ================================================================ */

body.lb-open { overflow: hidden; }

.gal-lightbox {
    position: fixed; inset: 0; z-index: 9999;
    display: flex; align-items: center; justify-content: center;
}
.gal-lb__backdrop {
    position: absolute; inset: 0;
    background: rgba(14, 7, 26, .88);
    backdrop-filter: blur(6px);
    cursor: pointer;
}
.gal-lb__box {
    position: relative; z-index: 1;
    display: flex; align-items: center; gap: 1rem;
    max-width: 92vw; max-height: 92vh;
    animation: lbIn .25s ease;
}
@keyframes lbIn { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }

.gal-lb__close {
    position: absolute; top: -2.5rem; right: 0;
    width: 40px; height: 40px; border-radius: 50%;
    border: 2px solid rgba(255,255,255,.4); background: rgba(255,255,255,.1);
    color: #fff; font-size: 1rem; cursor: pointer; display: grid; place-items: center;
    transition: background .2s;
}
.gal-lb__close:hover { background: rgba(255,255,255,.25); }

.gal-lb__arrow {
    flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%;
    border: 2px solid rgba(255,255,255,.35); background: rgba(255,255,255,.1);
    color: #fff; font-size: 1.1rem; cursor: pointer;
    display: grid; place-items: center;
    transition: background .2s, border-color .2s, transform .2s;
}
.gal-lb__arrow:hover {
    background: var(--purple); border-color: var(--purple); transform: scale(1.1);
}
.gal-lb__arrow:disabled { opacity: .25; pointer-events: none; }

.gal-lb__img-wrap {
    display: flex; align-items: center; justify-content: center;
    max-width: 80vw; max-height: 78vh;
}
.gal-lb__img {
    display: block; max-width: 100%; max-height: 78vh;
    border-radius: 16px; object-fit: contain;
    box-shadow: 0 24px 64px rgba(0,0,0,.6);
}

.gal-lb__footer {
    position: absolute; bottom: -3.2rem; left: 50%;
    transform: translateX(-50%);
    display: flex; align-items: center; gap: 1.25rem; white-space: nowrap;
}
.gal-lb__counter {
    color: rgba(255,255,255,.65); font-size: .82rem; font-weight: 600;
}
.gal-lb__link {
    font-size: .82rem; padding: .5rem 1.2rem;
    box-shadow: 0 4px 14px rgba(68,157,168,.35);
}

@media (max-width: 600px) {
    .gal-lb__arrow { width: 38px; height: 38px; font-size: .9rem; }
    .gal-lb__img-wrap { max-width: 94vw; }
}


/* ================================================================
   GALLERY GROUP PAGE
   ================================================================ */

/* Group card grid (gallery_all page) */
.gallery-group-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
    margin-top: 2.5rem;
}
.gal-group-card {
    display: flex; align-items: center; gap: 1rem;
    padding: 1.5rem; border-radius: 20px;
    border: 2px solid var(--border); background: var(--white);
    text-decoration: none; color: var(--ink);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    box-shadow: var(--shadow);
}
.gal-group-card:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(28,90,99,.15); }
.gal-group-card--teal:hover   { border-color: var(--teal); }
.gal-group-card--purple:hover { border-color: var(--purple); }
.gal-group-card--orange:hover { border-color: var(--orange); }
.gal-group-card--pink:hover   { border-color: var(--pink); }
.gal-group-card__icon { font-size: 2.2rem; line-height: 1; flex-shrink: 0; }
.gal-group-card h3 { font-size: 1.1rem; font-weight: 700; color: var(--ink); margin: 0 0 .15rem; }
.gal-group-card span { font-size: .8rem; color: var(--text); }
.gal-group-card__arrow { margin-left: auto; color: var(--purple); font-size: .9rem; transition: transform .2s; }
.gal-group-card:hover .gal-group-card__arrow { transform: translateX(4px); }

/* Group page nav bar */
.gal-page-nav {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 2.5rem; flex-wrap: wrap; gap: .75rem;
}

/* Photo grid */
.gal-page-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 2.5rem;
}
.gal-page-item {
    position: relative; border-radius: 16px; overflow: hidden;
    aspect-ratio: 4/3; cursor: zoom-in;
    box-shadow: 0 8px 24px rgba(28,90,99,.10);
    transition: transform .3s ease, box-shadow .3s ease;
}
.gal-page-item:hover { transform: scale(1.02); box-shadow: 0 16px 40px rgba(28,90,99,.18); }
.gal-page-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gal-page-item__zoom {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    background: rgba(14,7,26,.45); color: #fff; font-size: 1.5rem;
    opacity: 0; transition: opacity .2s ease;
}
.gal-page-item:hover .gal-page-item__zoom { opacity: 1; }

.gal-page-footer { display: flex; justify-content: center; }

/* Responsive */
@media (max-width: 900px) {
    .gallery-group-grid { grid-template-columns: repeat(2, 1fr); }
    .gal-page-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
    .gallery-group-grid { grid-template-columns: 1fr; }
    .gal-page-grid { grid-template-columns: 1fr; }
}

/* ================================================================
   PARENT REVIEWS — slider, left-aligned heading
   ================================================================ */

.section--reviews { background: #f8fbfc; }

/* Nav arrows beside heading */
.review-nav {
    display: flex;
    gap: .5rem;
    align-items: center;
    flex-shrink: 0;
}
.review-arrow {
    width: 40px; height: 40px;
    border-radius: 50%;
    border: 1.5px solid #d0e8ea;
    background: #fff;
    color: var(--purple-deep);
    font-size: .85rem;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.review-arrow:hover:not(:disabled) {
    background: var(--teal);
    border-color: var(--teal);
    color: #fff;
}
.review-arrow:disabled { opacity: .35; cursor: default; }

/* Slider */
.review-slider {
    overflow: hidden;
    margin-top: 2rem;
}
.review-track {
    display: flex;
    gap: 1.5rem;
    transition: transform .4s cubic-bezier(.25,.46,.45,.94);
}

/* Cards */
.review-mini {
    flex: 0 0 calc((100% - 3rem) / 3);
    background: #fff;
    border: 1px solid #e6f0f1;
    border-radius: 16px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    transition: box-shadow .25s ease, transform .25s ease;
}
.review-mini:hover {
    box-shadow: 0 8px 28px rgba(68,157,168,.12);
    transform: translateY(-3px);
}

.review-mini__stars { color: #f5a623; font-size: .9rem; letter-spacing: .05rem; }

.review-mini__quote {
    font-size: .9rem;
    line-height: 1.65;
    color: #444;
    flex: 1;
    margin: 0;
    font-style: italic;
}

.review-mini__author {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-top: .75rem;
    border-top: 1px solid #f0f5f6;
}
.review-mini__avatar {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--purple), var(--teal));
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.review-mini__author strong { display: block; font-size: .85rem; color: var(--purple-deep); }
.review-mini__author span  { font-size: .78rem; color: #888; }

@media (max-width: 900px) {
    .review-mini { flex: 0 0 calc((100% - 1.5rem) / 2); }
}
@media (max-width: 560px) {
    .review-mini { flex: 0 0 100%; }
    .review-nav  { display: none; }
}

/* ── EYFS Curriculum areas ──────────────────────────────────────────────── */
.eyfs-areas { display: flex; flex-direction: column; gap: 6px; }
.eyfs-areas__label { margin: 12px 0 8px; font-family: var(--display); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--text); opacity: .65; }
.eyfs-areas__label:first-child { margin-top: 0; }
.eyfs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.eyfs-grid--prime { grid-template-columns: 1fr; }
.eyfs-item { display: flex; align-items: center; gap: 13px; padding: 13px 16px; border-radius: 16px 16px 16px 4px; background: var(--white); border: 1px solid var(--border); font-family: var(--display); font-size: .88rem; font-weight: 700; color: var(--ink); line-height: 1.3; transition: transform .2s ease, box-shadow .2s ease; }
.eyfs-item:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(28,90,99,.1); }
.eyfs-item__icon { flex-shrink: 0; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; font-size: .95rem; }
.eyfs-item__icon--teal   { background: rgba(35,172,174,.14); color: var(--teal-dark); }
.eyfs-item__icon--orange { background: rgba(255,143,61,.13); color: var(--orange); }
.eyfs-item__icon--pink   { background: rgba(238,109,156,.13); color: var(--pink); }
.eyfs-item__icon--purple { background: rgba(28,90,99,.12); color: var(--purple-deep); }

/* ── Fixed top strip on mobile ──────────────────────────────────────────── */
@media (max-width: 991px) {
    /* Pin the purple strip so it stays visible while scrolling */
    .top-strip, .page-home .top-strip { position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 301; }
    .top-strip-spacer { display: block; height: 42px; }
    /* Sticky header sits below the fixed strip */
    .site-header.is-sticky { top: 42px; }
    /* Padding: fixed strip (42px) + sticky header (82px) */
    body.has-sticky-header { padding-top: 124px; }
    /* Nav dropdown below the sticky header */
    .site-header.is-sticky .primary-nav { top: 134px; }
}
@media (max-width: 767px) {
    /* Thinner strip at phone size */
    .top-strip-spacer { height: 38px; }
    .site-header.is-sticky { top: 38px; }
    /* Strip (38px) + header (82px) */
    body.has-sticky-header { padding-top: 120px; }
    .site-header.is-sticky .primary-nav { top: 130px; }
    /* Home page sticky header also sits below the strip */
    .page-home .site-header.is-sticky { top: 38px; }
}

@media (max-width: 767px) {
    .hero-slide::after {
        background: linear-gradient(160deg, rgba(10, 5, 20, .25) 0%, rgba(14, 7, 26, .72) 55%, rgba(14, 7, 26, .92) 100%), linear-gradient(0deg, rgba(10, 5, 20, .88) 0%, rgba(10, 5, 20, .45) 35%, transparent 65%) !important;
        background: transparent !important;
    }
    .hero-slide__inner {
        position: absolute;
        bottom: 100px;
        /* border: 3px solid red; */
        padding-left: 20px;
    }
    .hero-slide__content p{opacity:0}
    .hero-slide__content h1{margin-bottom:0}
}