:root {
    --ink: #111111;
    --forest: #196b4a;
    --forest-dark: #0f4f37;
    --leaf: #77bd43;
    --sun: #ffc83d;
    --coral: #f47755;
    --sky: #54b9df;
    --cream: #ffffff;
    --paper: #ffffff;
    --muted: #66756f;
    --line: #dce8df;
    --shadow: 0 22px 60px rgba(24, 50, 45, .12);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; overflow-x: clip; }
body {
    margin: 0;
    overflow-x: clip;
    color: var(--ink);
    background: #fff;
    font-family: 'Crimson Text', Georgia, serif;
    font-size: 1.08rem;
    line-height: 1.65;
    width: 100%;
    max-width: 100vw;
}
img { max-width: 100%; height: auto; }
a { word-break: break-word; }
.lucide-sm { width: 16px; height: 16px; vertical-align: -3px; }

/* navigation */
#mainNav {
    padding: 1rem 0;
    background: rgba(255, 255, 255, .94);
    border-bottom: 1px solid rgba(0, 0, 0, .08);
    backdrop-filter: blur(14px);
    transition: .25s ease;
}
#mainNav.scrolled { padding: .65rem 0; box-shadow: 0 8px 30px rgba(24,50,45,.08); }
.navbar-brand { display: flex; align-items: center; gap: .65rem; }
.brand-logo {
    width: auto;
    height: 46px;
    object-fit: contain;
    flex: 0 0 auto;
}
.brand-lucide { width: 25px; height: 25px; color: var(--coral); fill: rgba(244,119,85,.15); }
.brand-text, .nav-link, .btn-nav-login {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 700;
    letter-spacing: .08em;
}
.brand-text { color: var(--ink); font-size: .92rem; }
.nav-link { color: var(--ink) !important; font-size: .71rem; text-transform: uppercase; }
.nav-link:hover { color: var(--forest) !important; }
.btn-nav-login {
    padding: .65rem 1.2rem;
    color: white;
    background: var(--ink);
    border: 2px solid var(--ink);
    border-radius: 99px;
    font-size: .7rem;
    text-transform: uppercase;
}
.btn-nav-login:hover { color: white; background: var(--forest); border-color: var(--forest); transform: translateY(-2px); }

/* hero */
.hero {
    position: relative;
    min-height: 760px;
    display: flex;
    align-items: center;
    overflow: clip;
    background:#fff;
}
.hero::before, .hero::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}
.hero::before { width: min(430px, 60vw); height: min(430px, 60vw); right: -15vw; top: 90px; border: clamp(30px, 5vw, 70px) solid rgba(0,0,0,.035); }
.hero::after { width: 140px; height: 140px; left: -40px; bottom: 30px; border: 25px solid rgba(25,107,74,.1); }
.hero-bg { position: absolute; inset: 0; opacity: 0; }
.hero .container { position: relative; z-index: 1; padding-top: 7rem; padding-bottom: 4rem; }
.hero-label, .section-label {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: 1rem;
    color: var(--forest);
    font-family: 'Josefin Sans', sans-serif;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.hero-label::before, .section-label::before { content: ''; width: 28px; height: 4px; border-radius: 5px; background: var(--sun); }
.hero h1 {
    position: relative;
    max-width: 750px;
    margin: 0 0 1.4rem;
    font-family: 'Josefin Sans', sans-serif;
    font-size: clamp(3.7rem, 6.7vw, 7rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .92;
    text-transform: uppercase;
}
.hero h1 .accent { position: relative; color: var(--ink); }
.hero h1 .accent::after {
    content: '';
    position: absolute;
    left: -2%; right: -3%; bottom: -.13em;
    height: .26em;
    background: var(--sun);
    clip-path: polygon(0 33%, 7% 18%, 19% 26%, 31% 9%, 46% 24%, 60% 13%, 73% 28%, 88% 11%, 100% 29%, 98% 72%, 84% 61%, 70% 84%, 55% 67%, 39% 87%, 23% 66%, 8% 82%, 1% 65%);
    transform: rotate(-1.5deg);
    opacity: .9;
    z-index: -1;
}
.hero h1::before {
    content: '';
    position: absolute;
    width: 115px;
    height: 34px;
    margin: -31px 0 0 -23px;
    background: var(--coral);
    clip-path: polygon(0 40%, 9% 17%, 24% 30%, 42% 9%, 58% 27%, 76% 13%, 100% 38%, 91% 61%, 68% 53%, 51% 78%, 33% 59%, 13% 75%);
    transform: rotate(-8deg);
    opacity: .82;
}
.hero-desc { max-width: 610px; margin-bottom: 2rem; color: var(--muted); font-size: 1.23rem; line-height: 1.6; }
.btn-hero-primary, .btn-hero-outline {
    padding: .86rem 1.55rem;
    border: 2px solid var(--forest);
    border-radius: 99px;
    font-family: 'Josefin Sans', sans-serif;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: .25s ease;
}
.btn-hero-primary { color: white; background: var(--forest); box-shadow: 0 10px 20px rgba(25,107,74,.2); }
.btn-hero-primary:hover { color: white; background: var(--forest-dark); border-color: var(--forest-dark); transform: translateY(-3px); }
.btn-hero-outline { color: var(--ink); background: white; border-color: var(--ink); }
.btn-hero-outline:hover { color: white; background: var(--ink); transform: translateY(-3px); }
.fade-up { opacity: 0; animation: fadeUp .7s forwards cubic-bezier(.2,.8,.2,1); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* story-card: the hero's playful editorial image stack */
.hero-book-wrap { position: absolute; z-index: 3; right: 6vw; top: 50%; width: 340px; transform: translateY(-45%); }
.hero-book { position: relative; width: 100%; aspect-ratio: .78; filter: drop-shadow(0 25px 25px rgba(24,50,45,.2)); }
.book-spine { position: absolute; z-index: 10; left: -9px; top: 4%; width: 18px; height: 92%; border-radius: 99px; background: var(--coral); }
.book-page { position: absolute; inset: 0; overflow: hidden; border: 9px solid white; border-radius: 30px 12px 30px 12px; background: white; transform-origin: left center; transition: transform .7s, opacity .7s; }
.book-page img { width: 100%; height: 100%; object-fit: cover; }
.book-page::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 45%, rgba(10,35,27,.72)); }
.book-page-4 { z-index: 1; transform: rotate(6deg) translate(14px,-8px); }
.book-page-3 { z-index: 2; transform: rotate(-5deg) translate(-4px,5px); animation: storyThree 12s infinite; }
.book-page-2 { z-index: 3; transform: rotate(3deg); animation: storyTwo 12s infinite; }
.book-page-1 { z-index: 4; animation: storyOne 12s infinite; }
.page-caption { position: absolute; z-index: 2; left: 25px; bottom: 20px; color: white; font: 700 .8rem 'Josefin Sans',sans-serif; letter-spacing: .12em; }
@keyframes storyOne { 0%,20% { transform: rotate(0); opacity:1 } 25%,92% { transform: rotateY(-75deg) translateX(-35px); opacity:0 } 97%,100% { opacity:1 } }
@keyframes storyTwo { 0%,22% { opacity:1 } 25%,45% { transform:rotate(2deg); opacity:1 } 50%,92% { transform:rotateY(-70deg) translateX(-25px); opacity:0 } 97%,100% { opacity:1 } }
@keyframes storyThree { 0%,47% { opacity:1 } 50%,70% { transform:rotate(-4deg); opacity:1 } 75%,92% { transform:rotateY(-65deg); opacity:0 } 97%,100% { opacity:1 } }
.book-shadow { position: absolute; left: 8%; right: 2%; bottom: -35px; height: 45px; border-radius: 50%; background: rgba(24,50,45,.22); filter: blur(18px); }
.book-dots { display: flex; justify-content: center; gap: 7px; margin-top: 25px; }
.book-dot { width: 8px; height: 8px; border-radius: 99px; background: rgba(24,50,45,.18); }
.book-dot.active { width: 26px; background: var(--coral); }
.hero-book-wrap::before {
    content: '';
    position: absolute;
    z-index: -1;
    width: 142%;
    height: 54%;
    left: -21%;
    top: 23%;
    background: #080808;
    clip-path: polygon(1% 40%, 7% 22%, 18% 30%, 27% 12%, 39% 27%, 50% 9%, 62% 26%, 74% 14%, 86% 29%, 99% 18%, 96% 76%, 83% 67%, 71% 86%, 57% 70%, 43% 89%, 29% 69%, 14% 84%, 3% 70%);
    transform: rotate(-5deg);
    opacity: 1;
}
.hero-book-wrap::after {
    content: '✦';
    position: absolute;
    right: -38px;
    top: -45px;
    color: var(--coral);
    font: 700 4rem 'Josefin Sans', sans-serif;
    transform: rotate(12deg);
}

/* partner ribbon */
.section-partners { padding: 2rem 0; overflow: hidden; color: white; background: var(--ink); }
.partners-label { margin-bottom: 1.1rem; color: rgba(255,255,255,.62); font: 700 .66rem 'Josefin Sans',sans-serif; letter-spacing: .17em; text-transform: uppercase; text-align: center; }
.partners-track-wrap { overflow:hidden; -webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent); }
.partners-track { display:flex; width:max-content; align-items:center; gap:clamp(1.5rem, 3vw, 4rem); animation:ticker 30s linear infinite; }
.partner-item { min-width:clamp(90px, 12vw, 140px); text-align:center; flex-shrink:0; }
.partner-logo { max-width:clamp(100px, 14vw, 160px); height:clamp(28px, 4vw, 42px); object-fit:contain; filter:grayscale(1) brightness(0) invert(1); opacity:.72; }
.partner-text { color:white; opacity:.72; font:700 .72rem 'Josefin Sans',sans-serif; letter-spacing:.1em; text-transform:uppercase; }
@keyframes ticker { to { transform:translateX(-50%); } }

/* shared */
.section-about, .section-programme, .section-curriculum, .section-quote, .section-cta { position: relative; padding: 7rem 0; }
.section-heading { margin: 0 0 1.5rem; font: 700 clamp(2.5rem,5vw,4.5rem)/.98 'Josefin Sans',sans-serif; letter-spacing:-.045em; text-transform:uppercase; }
.section-heading .accent { color:var(--forest); }
.section-heading .accent {
    position: relative;
    display: inline;
    background: linear-gradient(transparent 68%, rgba(255,200,61,.72) 68% 91%, transparent 91%);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
.section-body, .section-sub { color:var(--muted); font-size:1.14rem; }
.section-sub { max-width:620px; margin-inline:auto; }
.scroll-reveal { opacity:0; transform:translateY(28px); transition:.65s cubic-bezier(.2,.8,.2,1); }
.scroll-reveal[data-direction="left"] { transform:translateX(-35px); }
.scroll-reveal[data-direction="right"] { transform:translateX(35px); }
.scroll-reveal.revealed { opacity:1; transform:none; }

/* about */
.section-about { background:white; padding-top:clamp(4rem, 8vw, 8rem); padding-bottom:clamp(4rem, 8vw, 8rem); }
.section-about .container { border:3px solid var(--ink); padding:clamp(1.5rem, 4vw, 4.5rem); max-width:100%; box-sizing:border-box; }
.section-about::after {
    content: '';
    position: absolute;
    right: max(-30px, -5vw);
    top: 18%;
    width: min(150px, 25vw);
    height: min(150px, 25vw);
    border: 12px solid rgba(244,119,85,.25);
    border-radius: 46% 54% 58% 42% / 51% 42% 58% 49%;
    transform: rotate(18deg);
    pointer-events: none;
    z-index: 0;
}
.about-img-wrap { position:relative; padding:0 1.4rem 1.4rem 0; }
.about-img-wrap::before { content:''; position:absolute; inset:10% 0 0 12%; border-radius:40px 14px 40px 14px; background:var(--sun); transform:rotate(3deg); }
.about-img-wrap img { position:relative; width:100%; min-height:570px; object-fit:cover; border-radius:42px 14px 42px 14px; box-shadow:var(--shadow); }
.about-badge { position:absolute; right:-5px; bottom:55px; width:118px; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; color:white; background:var(--coral); border:7px solid white; border-radius:50%; transform:rotate(8deg); }
.about-list { margin-top:2rem; display:grid; gap:.75rem; }
.about-list-item { display:flex; gap:1rem; padding:1rem; border:1px solid var(--line); border-radius:18px; background:var(--cream); }
.about-list-icon { flex:0 0 auto; width:25px; color:var(--forest); }
.about-list-item strong { font-family:'Josefin Sans',sans-serif; font-size:.86rem; }
.about-list-item p { margin: .2rem 0 0; color:var(--muted); font-size:.98rem; line-height:1.45; }

/* programme cards */
.section-programme { color:#fff; background:#090909; }
.section-programme::before {
    content: '';
    position: absolute;
    top: 64px;
    left: 50%;
    width: min(620px, 78vw);
    height: 42px;
    background: var(--forest);
    clip-path: polygon(0 42%, 8% 16%, 21% 29%, 36% 8%, 51% 27%, 67% 12%, 82% 31%, 100% 18%, 97% 70%, 83% 59%, 68% 82%, 50% 63%, 34% 85%, 17% 62%, 2% 76%);
    transform: translateX(-50%) rotate(-1deg);
}
.prog-card { height:100%; overflow:hidden; border:1px solid rgba(25,107,74,.11); border-radius:28px 10px 28px 10px; background:white; box-shadow:0 14px 40px rgba(24,50,45,.07); transition:.3s ease; }
.section-programme .section-label { color:var(--sun); }
.section-programme .section-heading { color:#fff; }
.section-programme .section-sub { color:rgba(255,255,255,.68); }
.section-programme .prog-card { color:var(--ink); border:0; border-radius:0; box-shadow:none; }
.section-programme .prog-img { border-bottom:7px solid var(--forest); }
.prog-card:hover { transform:translateY(-8px) rotate(-.4deg); box-shadow:var(--shadow); }
.prog-img { height:220px; overflow:hidden; }
.prog-img img { width:100%; height:100%; object-fit:cover; transition:.5s; }
.prog-card:hover .prog-img img { transform:scale(1.05); }
.prog-body { position:relative; padding:2rem; }
.prog-icon { position:absolute; right:1.5rem; top:-27px; width:54px; height:54px; padding:14px; color:var(--ink); background:var(--sun); border:5px solid white; border-radius:50%; }
.prog-body h5 { margin-bottom:.8rem; font:700 1rem 'Josefin Sans',sans-serif; letter-spacing:.02em; }
.prog-body p { margin:0; color:var(--muted); line-height:1.5; }
.prog-card:nth-child(2n) .prog-icon { background:var(--sky); }

/* impact band */
.section-stats { padding:4rem 0; color:var(--ink); background:var(--sun); }
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); }
.stat-block { display:flex; flex-direction:column; align-items:center; padding:1rem; border-right:1px solid rgba(255,255,255,.2); text-align:center; }
.stat-block:last-child { border:0; }
.stat-icon-lucide { width:26px; color:var(--forest); }
.stat-number { margin:.45rem 0 .1rem; font:700 3.2rem 'Josefin Sans',sans-serif; letter-spacing:-.07em; }
.stat-text { font:700 .7rem 'Josefin Sans',sans-serif; letter-spacing:.12em; text-transform:uppercase; opacity:.75; }

/* curriculum */
.section-curriculum { background:white; padding-top:clamp(4rem, 8vw, 8rem); padding-bottom:clamp(4rem, 8vw, 8rem); overflow:hidden; }
.section-curriculum .container { position:relative; border:3px solid var(--ink); padding:clamp(1.5rem, 4vw, 4.5rem); max-width:100%; box-sizing:border-box; }
.section-curriculum .container::before {
    content:'OUR 25 LESSONS';
    position:absolute;
    top:-18px;
    left:clamp(12px, 4vw, 42px);
    padding:.35rem 1rem;
    color:#fff;
    background:var(--ink);
    font:700 .7rem 'Josefin Sans',sans-serif;
    letter-spacing:.14em;
    white-space:nowrap;
    max-width:calc(100% - 24px);
    overflow:hidden;
    text-overflow:ellipsis;
}
.section-curriculum::before {
    content: '×  ×  ×';
    position: absolute;
    left: 1vw;
    bottom: 7%;
    color: rgba(244,119,85,.36);
    font: 700 clamp(1.4rem, 2.2vw, 2.2rem) 'Josefin Sans',sans-serif;
    letter-spacing: .35em;
    transform: rotate(-12deg);
    pointer-events: none;
    z-index: 0;
    white-space: nowrap;
}
.cur-list { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; margin-top:2rem; }
.cur-item { display:flex; align-items:center; gap:.8rem; padding:.75rem .85rem; border-radius:14px; background:var(--cream); font-family:'Josefin Sans',sans-serif; font-size:.78rem; font-weight:600; }
.cur-num { display:grid; place-items:center; flex:0 0 38px; height:38px; color:white; background:var(--forest); border-radius:50%; font-size:.65rem; }
.cur-item:nth-child(3n+2) .cur-num { color:var(--ink); background:var(--sun); }
.cur-item:nth-child(3n) .cur-num { background:var(--coral); }

/* quote and CTA */
.section-quote { overflow:hidden; color:white; background:var(--forest); position:relative; }
.section-quote::before { content:'\201C'; position:absolute; top:-60px; left:2vw; color:rgba(255,255,255,.05); font:700 clamp(10rem, 20vw, 25rem) Georgia,serif; pointer-events:none; z-index:0; }
.quote-inner { position:relative; z-index:1; max-width:min(900px, 90vw); margin:auto; text-align:center; padding:0 1rem; }
.quote-text { margin-bottom:1.5rem; font-size:clamp(1.5rem, 3.5vw, 3.4rem); line-height:1.15; font-style:italic; }
.quote-author { margin:0; color:var(--sun); font:700 .72rem 'Josefin Sans',sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.section-cta { overflow:clip; text-align:center; background:#fff; border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); position:relative; }
.section-cta::before,.section-cta::after { content:''; position:absolute; width:min(190px, 30vw); height:min(190px, 30vw); border:clamp(15px, 3vw, 30px) solid rgba(0,0,0,.04); border-radius:50%; pointer-events:none; z-index:0; }
.section-cta::before { left:max(-50px, -8vw); top:max(-50px, -8vw); }
.section-cta::after { right:max(-40px, -6vw); bottom:max(-50px, -8vw); }
.cta-inner { position:relative; z-index:2; padding:0 1rem; }
.cta-inner h2 { margin-bottom:.5rem; font:700 clamp(2rem, 5vw, 5rem) 'Josefin Sans',sans-serif; letter-spacing:-.05em; position:relative; display:inline-block; }
.cta-inner h2::after {
    content:'';
    position:absolute;
    left:-3%; right:-3%; bottom:clamp(-4px, -0.5vw, -8px);
    height:clamp(8px, 1.5vw, 15px);
    background:var(--coral);
    clip-path:polygon(0 30%, 10% 10%, 23% 28%, 38% 6%, 53% 26%, 68% 8%, 82% 27%, 100% 12%, 98% 74%, 83% 62%, 69% 88%, 51% 67%, 34% 86%, 17% 65%, 1% 80%);
    transform:rotate(-1deg);
}
.cta-inner p { margin-bottom:1.8rem; font-size:clamp(1rem, 1.5vw, 1.25rem); color:var(--muted); }

/* footer */
.footer-ka { padding:6rem 0 2rem; color:rgba(255,255,255,.88); background:#0b0b0b; }
.footer-ka a { color:rgba(255,255,255,.68); text-decoration:none; }
.footer-ka a:hover { color:var(--sun); }

/* PWA install prompt */
.pwa-install-prompt {
    position:fixed;
    z-index:1090;
    right:clamp(1rem, 3vw, 2rem);
    bottom:clamp(1rem, 3vw, 2rem);
    display:grid;
    grid-template-columns:64px minmax(0, 1fr);
    gap:1rem;
    width:min(430px, calc(100vw - 2rem));
    padding:1.15rem 1.2rem;
    color:var(--ink);
    background:rgba(255,255,255,.97);
    border:2px solid var(--ink);
    border-radius:22px 8px 22px 8px;
    box-shadow:0 22px 65px rgba(9,9,9,.24);
    opacity:0;
    transform:translateY(24px) scale(.98);
    transition:opacity .24s ease, transform .24s ease;
    backdrop-filter:blur(12px);
}
.pwa-install-prompt[hidden] { display:none; }
.pwa-install-prompt.is-visible { opacity:1; transform:translateY(0) scale(1); }
.pwa-install-prompt::before { content:''; position:absolute; inset:0 auto 0 0; width:7px; background:var(--forest); border-radius:19px 0 0 6px; }
.pwa-install-icon { width:64px; height:64px; padding:7px; object-fit:contain; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 8px 22px rgba(25,107,74,.12); }
.pwa-install-copy { min-width:0; padding-right:1.2rem; }
.pwa-install-eyebrow { display:block; margin-bottom:.2rem; color:var(--forest); font:700 .62rem 'Josefin Sans',sans-serif; letter-spacing:.13em; text-transform:uppercase; }
.pwa-install-copy h2 { margin:0 0 .25rem; font:700 1.05rem 'Josefin Sans',sans-serif; letter-spacing:-.01em; }
.pwa-install-copy p { margin:0; color:var(--muted); font-size:.88rem; line-height:1.42; }
.pwa-install-close { position:absolute; top:.55rem; right:.55rem; display:grid; place-items:center; width:32px; height:32px; padding:0; color:#66716c; background:transparent; border:0; border-radius:50%; cursor:pointer; }
.pwa-install-close:hover,.pwa-install-close:focus-visible { color:var(--ink); background:var(--cream); }
.pwa-install-close svg { width:18px; height:18px; }
.pwa-install-actions { display:flex; align-items:center; gap:.55rem; margin-top:.85rem; }
.pwa-install-button { display:inline-flex; align-items:center; gap:.4rem; padding:.58rem .9rem; color:#fff; background:var(--forest); border:1px solid var(--forest); border-radius:10px; font:700 .72rem 'Josefin Sans',sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.pwa-install-button:hover,.pwa-install-button:focus-visible { color:#fff; background:#0f5137; border-color:#0f5137; }
.pwa-install-button[hidden] { display:none; }
.pwa-install-button svg { width:16px; height:16px; }
.pwa-install-later { padding:.55rem .7rem; color:#606b66; border:0; font:600 .72rem 'Josefin Sans',sans-serif; }
.pwa-install-later:hover,.pwa-install-later:focus-visible { color:var(--ink); background:var(--cream); }
.pwa-ios-steps { display:flex; align-items:flex-start; gap:.55rem; margin-top:.75rem; padding:.65rem .75rem; color:#365246; background:#eef7f2; border-radius:10px; font-size:.8rem; line-height:1.35; }
.pwa-ios-steps[hidden] { display:none; }
.pwa-ios-steps svg { flex:0 0 auto; width:17px; height:17px; color:var(--forest); }

@media (max-width: 1199px) {
    .hero-book-wrap { right:3vw; width:285px; }
    .hero h1 { font-size:clamp(3.2rem, 7vw, 4.8rem); }
}
@media (max-width: 991px) {
    /* Reveal from below only on small screens — the left/right slide-in variants
       push content past the viewport edge mid-animation and make the page feel
       like it doesn't fit. */
    .scroll-reveal[data-direction="left"],
    .scroll-reveal[data-direction="right"] { transform: translateY(28px); }
    #mainNav .navbar-collapse { margin-top:.8rem; padding:1rem; border-radius:18px; background:white; box-shadow:var(--shadow); width:100%; }
    .hero { min-height:auto; padding-bottom:3rem; }
    .hero .row { min-height:auto!important; }
    .hero .col-lg-7 { padding-top:2rem; }
    .hero h1 { font-size:clamp(2.5rem, 8vw, 5rem); max-width:100%; word-break:break-word; }
    .hero-desc { font-size:1.1rem; max-width:100%; }
    .hero-book-wrap { position:relative; top:auto; right:auto; width:min(400px,80vw); margin:2rem auto 0; transform:none; }
    .hero-book-wrap::before { width:120%; left:-10%; top:25%; }
    .hero-book-wrap::after { right:-20px; top:-30px; font-size:3rem; }
    .stats-row { grid-template-columns:1fr 1fr; gap:1.5rem 0; max-width:100%; }
    .stat-block:nth-child(2) { border:0; }
    .stat-number { font-size:2.8rem; }
    .section-about .container,
    .section-curriculum .container { padding:2rem; border-width:2px; max-width:100%; }
    .section-about::after { right:-20px; width:100px; height:100px; border-width:8px; }
    .prog-card { height:auto; }
    .about-img-wrap img { min-height:380px; }
}
@media (max-width: 767px) {
    .hero h1 { font-size:clamp(2.2rem, 7vw, 3.5rem); }
    .hero .container { padding-top:6rem; }
    .stats-row { grid-template-columns:1fr 1fr; gap:0.75rem 0; }
    .stat-block { padding:0.75rem 0.5rem; border-right:1px solid rgba(255,255,255,.15); }
    .stat-number { font-size:2.2rem; }
    .stat-text { font-size:0.62rem; letter-spacing:0.06em; }
    .section-about, .section-programme, .section-curriculum, .section-quote, .section-cta { padding:3.5rem 0; }
    .section-heading { font-size:clamp(1.8rem, 6vw, 2.5rem); }
    .about-img-wrap { margin-bottom:2rem; }
    .about-img-wrap img { min-height:320px; }
    .cur-list { grid-template-columns:1fr; gap:0.5rem; }
    .cur-item { font-size:0.72rem; padding:0.6rem 0.7rem; }
    .cur-num { flex:0 0 32px; height:32px; font-size:0.6rem; }
    .footer-ka { padding:3rem 0 1.5rem; }
    .footer-ka .row { text-align:center; }
    .footer-ka .d-flex.flex-wrap { flex-direction:column; gap:0.5rem; text-align:center; }
}
@media (max-width: 575px) {
    body { font-size:0.98rem; }
    .brand-logo { height:34px; }
    .brand-text { font-size:0.7rem; }
    .hero .container { padding-top:5.5rem; padding-bottom:1.5rem; }
    .hero h1 { font-size:2.2rem; letter-spacing:-0.03em; }
    .hero-desc { font-size:1rem; }
    .hero .btn { display:flex; width:100%; align-items:center; justify-content:center; margin:0 0 .5rem!important; }
    .hero-book-wrap { width:90vw; }
    .stats-row { gap:0.5rem 0; }
    .stat-number { font-size:1.9rem; }
    .section-about, .section-programme, .section-curriculum, .section-quote, .section-cta { padding:3rem 0; }
    .section-heading { font-size:1.7rem; }
    .section-sub { font-size:0.95rem; padding:0 0.5rem; }
    .about-img-wrap img { min-height:280px; }
    .about-badge { width:80px; right:0; bottom:35px; border-width:4px; }
    .prog-img { height:180px; }
    .cur-list { gap:0.4rem; }
    .section-about .container,
    .section-curriculum .container { padding:1.5rem 0.75rem; border-width:2px; max-width:calc(100% - 8px); margin:0 auto; }
    .section-about::after { display:none; }
    .section-curriculum::before { display:none; }
    .section-curriculum .container::before { font-size:0.6rem; left:8px; top:-14px; padding:0.25rem 0.6rem; }
    .footer-ka { padding:2.5rem 0 1rem; }
    .footer-ka .d-flex.flex-wrap { flex-direction:column; gap:0.3rem; text-align:center; }
    .footer-ka .ms-lg-4 { margin-left:0!important; }
    .pwa-install-prompt { right:.65rem; bottom:.65rem; grid-template-columns:52px minmax(0,1fr); gap:.75rem; width:calc(100vw - 1.3rem); padding:1rem; border-radius:18px 7px 18px 7px; }
    .pwa-install-icon { width:52px; height:52px; padding:6px; border-radius:13px; }
    .pwa-install-copy { padding-right:.75rem; }
    .pwa-install-copy h2 { font-size:.95rem; }
    .pwa-install-copy p { font-size:.79rem; }
    .pwa-install-actions { align-items:stretch; flex-direction:column; }
    .pwa-install-button,.pwa-install-later { justify-content:center; width:100%; min-height:40px; }
}
@media (max-width: 380px) {
    .hero h1 { font-size:1.85rem; }
    .hero-desc { font-size:0.9rem; }
    .stats-row { grid-template-columns:1fr 1fr; gap:0.3rem; }
    .stat-number { font-size:1.6rem; }
    .stat-text { font-size:0.55rem; letter-spacing:0.04em; }
    .about-img-wrap img { min-height:240px; }
    .brand-logo { height:30px; }
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
    .scroll-reveal,.fade-up { opacity:1; transform:none; }
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
    .scroll-reveal,.fade-up { opacity:1; transform:none; }
}
