/* Prastuti Education public site. Approved design: warm pink-cream gradients, rounded cards,
   red pill buttons, floating cards, emoji icons. Light theme only. */
:root{
  --red:#ED1C24;--red2:#B90D25;--ink:#10111b;--navy:#171a2a;--gold:#FFD447;--cream:#FFF9F2;
  --sky:#DFF1FF;--green:#2BAE66;--muted:#5f6675;--line:#e8e8ee;
  --shadow:0 24px 70px rgba(18,20,35,.14);
  --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gut:max(16px,env(safe-area-inset-left,0px));--gut-r:max(16px,env(safe-area-inset-right,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;font-family:var(--font);color:var(--ink);background:#fff;overflow-x:hidden;line-height:1.6}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p{margin:0}
:focus-visible{outline:3px solid #1F7AE0;outline-offset:3px;border-radius:6px}
.wrap{max-width:1232px;margin:auto;padding-left:var(--gut);padding-right:var(--gut-r)}


.topbar{background:#11131c;color:#f9fafb;padding-block:9px;font-size:.8rem}
.topinner{display:flex;justify-content:space-between;gap:6px 16px;flex-wrap:wrap}
.topbar b{color:var(--gold);font-weight:800}
.topbar span{opacity:.92}
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid #1010200c}
.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:relative}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.03em;flex-shrink:0}
.brand img{width:50px;height:50px}
.brand .logos{display:flex}
.brand .logos img+img{margin-left:-12px}
.brand strong{display:block;font-size:1.18rem;line-height:1}
.brand strong em{font-style:normal;color:var(--red)}
.brand small{display:block;font-size:.62rem;letter-spacing:.14em;color:#737887;margin-top:6px;font-weight:700}
.navlinks{display:flex;align-items:center;gap:18px;font-size:.88rem;font-weight:700;white-space:nowrap}
.navlinks a:not(.btn):hover,.navlinks a[aria-current]{color:var(--red)}
.menu{display:none;background:var(--ink);color:#fff;border:0;border-radius:12px;padding:10px 13px;font-size:1.1rem;line-height:1}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;padding:14px 22px;border:0;border-radius:999px;background:var(--red);color:#fff;font-weight:800;box-shadow:0 10px 24px #ed1c2e32;transition:transform .25s,box-shadow .25s;white-space:nowrap}
.btn:hover{transform:translateY(-3px);box-shadow:0 16px 30px #ed1c2e42}
.btn.dark{background:var(--ink);box-shadow:0 10px 24px #11131c24}
.btn.light{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.navlinks .short{display:none}
.btn.wa{background:#1f9d55;box-shadow:0 10px 24px #1f9d5533}
@media(max-width:1180px){
  .menu{display:block}
  .navlinks a:not(.btn){display:none}
  .navlinks.open{position:absolute;top:78px;left:calc(-1 * var(--gut));right:calc(-1 * var(--gut-r));background:#fff;padding:12px var(--gut-r) 22px var(--gut);box-shadow:0 15px 25px #1112;display:grid;gap:0}
  .navlinks.open a:not(.btn){display:block;padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem}
  .navlinks.open .btn{margin-top:14px}
}

.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(120deg,#fffaf5 0%,#fff1e9 52%,#ffe0e4 100%)}
.hero::before{content:"";position:absolute;z-index:-1;width:680px;height:680px;right:-160px;top:-170px;border-radius:50%;background:radial-gradient(circle,#ffbdc6 0%,#ffebd8 58%,transparent 70%)}
.hero::after{content:"";position:absolute;z-index:-1;width:230px;height:230px;left:-110px;bottom:-100px;border:42px solid #ed1c2e0d;border-radius:50%}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:40px;align-items:center;padding-block:64px 76px}
.eyebrow{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:99px;background:#fff;border:1px solid #ed1c2e25;color:var(--red2);font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.pulse{width:8px;height:8px;border-radius:50%;background:#18a66a;box-shadow:0 0 0 5px #18a66a20}
.hero h1{font-size:clamp(2.9rem,6.2vw,5.6rem);line-height:.96;letter-spacing:-.06em;margin:22px 0 20px;max-width:720px;font-weight:900}
.hero h1 span{color:var(--red);display:block}
.hero-copy>p{max-width:560px;color:#555c6c;font-size:1.07rem;line-height:1.8}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 0}
.class-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;align-items:center;font-size:.82rem;font-weight:700;color:#535969}
.class-strip span.c{padding:7px 13px;border-radius:99px;color:#fff;font-weight:800}
.hero-visual{min-height:490px;position:relative;display:grid;place-items:center;perspective:1200px}
.main-photo{width:min(100%,540px);height:470px;position:relative;overflow:hidden;border-radius:32px;transform:rotateY(-5deg) rotateX(2deg);box-shadow:22px 26px 0 #ed1c2e16,0 35px 80px #5d18212b;transition:transform .5s;margin:0}
.main-photo:hover{transform:rotateY(0) rotateX(0) translateY(-6px)}
.main-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.main-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#11131de8 0%,transparent 58%)}
.photo-copy{position:absolute;z-index:2;left:25px;right:25px;bottom:25px;color:#fff}
.photo-copy small{color:var(--gold);font-weight:800;letter-spacing:.16em;font-size:.72rem}
.photo-copy small{display:block}
.photo-copy .photo-title{display:block;font-size:1.75rem;line-height:1.2;margin:8px 0 6px;letter-spacing:-.03em}
.photo-copy .photo-text{display:block;font-size:.88rem;line-height:1.5;color:#f3f4f6}
.float-card{position:absolute;z-index:4;background:#fff;padding:14px 16px;border-radius:18px;box-shadow:var(--shadow);animation:float 5s ease-in-out infinite}
.float-card strong{display:block;font-size:.98rem}
.float-card small{color:var(--muted);font-weight:600;font-size:.8rem}
.float-one{left:-2%;top:7%}
.float-two{right:-3%;top:34%;animation-delay:-2s}
.float-icon{display:inline-grid;place-items:center;width:38px;height:38px;background:#fff1c1;border-radius:13px;margin-right:10px;font-size:1.15rem;flex-shrink:0}
.float-row{display:flex;align-items:center}
@keyframes float{50%{transform:translateY(-11px)}}

.proof{background:var(--navy);color:#fff;padding-block:22px}
.proof-row{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:20px;list-style:none;margin:0 auto}
.proof-item{display:flex;align-items:center;justify-content:center;gap:12px;border-right:1px solid #ffffff20;padding-inline:6px}
.proof-item:last-child{border:0}
.proof-item b{font-size:1.5rem}
.proof-item span{font-size:.84rem;color:#e2e4eb;font-weight:700;line-height:1.35}

section{padding-block:88px}
.section-head{max-width:740px;margin-bottom:38px}
.kicker{color:var(--red);font-size:.75rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.section-head h2{font-size:clamp(2.1rem,4.2vw,3.5rem);line-height:1.04;letter-spacing:-.05em;margin:12px 0;font-weight:900}
.section-head p{color:var(--muted);font-size:1rem;line-height:1.8}
.center{text-align:center;margin-left:auto;margin-right:auto}
.bg-cream{background:#fffaf5}
.bg-grey{background:#f4f5f8}
.bg-sky{background:linear-gradient(180deg,#eef8ff,#fff)}

.program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.program{position:relative;overflow:hidden;padding:28px 26px;border-radius:25px;border:1px solid var(--line);background:#fff;box-shadow:0 12px 40px #10102008;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}
.program:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.program::after{content:"";position:absolute;width:140px;height:140px;border-radius:50%;right:-55px;top:-60px;background:var(--tint,#ed1c2e0b)}
.icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--ib,#fff0e9);font-size:1.7rem}
.pill{display:inline-block;margin-top:14px;border-radius:99px;background:#fff0f1;color:var(--red2);padding:7px 11px;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;align-self:flex-start}
.program h3{font-size:1.3rem;margin:14px 0 8px;letter-spacing:-.02em}
.program p{font-size:.92rem;line-height:1.7;color:var(--muted);flex:1}
.text-link{color:var(--red);font-weight:800;font-size:.9rem;margin-top:16px}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.split-visual{position:relative}
.split-visual img.photo{width:100%;height:470px;object-fit:cover;object-position:50% 35%;border-radius:30px;box-shadow:var(--shadow)}
.sticker{white-space:pre-line;position:absolute;right:-15px;bottom:28px;background:var(--gold);padding:18px 22px;border-radius:18px;font-weight:900;box-shadow:0 15px 35px #17171720;transform:rotate(3deg);line-height:1.35}
.logo-badge{position:absolute;left:-18px;top:-18px;width:100px;height:100px;filter:drop-shadow(0 12px 20px #0003)}
.checklist{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:26px 0 24px}
.check{display:flex;align-items:flex-start;gap:10px;font-size:.92rem;font-weight:700;line-height:1.45}
.check i{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#dcf8e8;color:#12814b;font-style:normal;font-size:.8rem}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:28px}
.mv>div{background:#fff;border:1px solid #f0e4e3;border-radius:18px;padding:18px}
.mv h3{font-size:1rem;margin-bottom:6px}
.mv p{font-size:.88rem;color:var(--muted);line-height:1.6}

.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.feature{background:#fff;border:1px solid #e6e8ee;border-radius:21px;padding:22px;transition:transform .3s,box-shadow .3s}
.feature:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.feature .emoji{font-size:1.8rem;line-height:1}
.feature h3{font-size:1rem;margin:13px 0 7px}
.feature p{font-size:.86rem;line-height:1.65;color:var(--muted)}

.support-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.support-cards{display:grid;gap:14px}
.support-card{display:flex;gap:16px;align-items:flex-start;background:#fff;border-radius:20px;padding:20px;box-shadow:0 12px 40px #10102010;border:1px solid #dcecf9}
.support-card .icon{width:50px;height:50px;font-size:1.4rem;flex-shrink:0}
.support-card h3{font-size:1.05rem;margin-bottom:4px}
.support-card p{font-size:.88rem;color:var(--muted);line-height:1.6}

.path-grid{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:14px}
.path.senior{background:linear-gradient(145deg,#171a2a,#2a2e45);border-color:#171a2a;color:#fff}
.path.senior small{color:var(--gold)}
.path.senior p{color:#c9cdd8}
.program.dark{background:linear-gradient(150deg,#171a2a,#2b2f48);color:#fff;border-color:#171a2a}
.program.dark p{color:#c9cdd8}
.program.dark .pill{background:#ffffff1a;color:var(--gold)}
.program.dark .text-link{color:var(--gold)}
.program.wide{grid-column:1/-1;flex-direction:row;align-items:center;gap:28px;background:linear-gradient(120deg,#ED1C24,#9e0b1f);color:#fff;border-color:#b90d25}
.program.wide .icon{background:#ffffff22;width:72px;height:72px;font-size:2rem;flex-shrink:0}
.program.wide p{color:#ffe3e6}
.program.wide .pill{background:#ffffff26;color:#fff;margin-top:0}
.program.wide h3{font-size:1.7rem;margin:10px 0 6px}
.program.wide .wide-body{flex:1;min-width:0}
.program.wide .btn{background:#fff;color:var(--red2);box-shadow:none}
.brandmark{display:inline-block;font-weight:900;letter-spacing:.04em;background:#fff;color:var(--red2);padding:2px 10px;border-radius:8px;margin-right:6px}
.ok{display:inline-flex;align-items:center;gap:5px;font:800 .7rem/1 var(--font);color:#0f6b3d;background:#dcf8e8;padding:5px 9px 4px;border-radius:99px;margin-top:10px}
.ml-logo{width:150px;border-radius:16px;flex-shrink:0;background:#0b0c12;box-shadow:0 10px 24px #0004}
.fee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fee{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px 22px;display:grid;gap:6px}
.fee small{color:var(--red2);font-weight:800;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.fee h3{font-size:1.05rem}
.fee .amt{display:flex;align-items:baseline;gap:8px;margin-top:6px;padding-top:12px;border-top:1px dashed #e4dcd2;color:var(--muted);font-weight:700;font-size:.9rem}
.fee .amt b{color:var(--ink);font-size:1.05rem}
.fee-note{margin-top:18px;display:flex;gap:12px;align-items:flex-start;background:#fff4f0;border:1px solid #f5d6d9;border-radius:16px;padding:14px 18px;font-size:.88rem;color:#5b3b3e}
@media(max-width:950px){.fee-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.fee-grid{grid-template-columns:minmax(0,1fr)}.ml-logo{width:120px}}
.exam-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.exam-tags span{font-size:.72rem;font-weight:800;padding:5px 9px;border-radius:8px;background:#ffffff14;border:1px solid #ffffff26}
.path{padding:24px;border-radius:20px;background:linear-gradient(145deg,#fff,#fff7f5);border:1px solid #f0e4e3;transition:transform .3s;display:block}
.path:hover{transform:translateY(-4px)}
.path small{color:var(--red);font-weight:900;letter-spacing:.12em;font-size:.72rem}
.path h3{margin:11px 0 8px;font-size:1.12rem}
.path p{font-size:.86rem;color:var(--muted);line-height:1.6}
.next-step{margin-top:16px;display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:20px;background:linear-gradient(110deg,#171a2a,#2a2e45);color:#fff}
.next-step img{width:52px;height:52px;flex-shrink:0}
.next-step p{color:#c9cdd8;font-size:.9rem;line-height:1.55}
.next-step b{color:#fff}

.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:215px 215px;gap:14px}
.gallery-grid figure{margin:0;position:relative;overflow:hidden;border-radius:20px;background:#eee}
.gallery-grid figure:first-child{grid-row:span 2}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .55s}
.gallery-grid figure.contain img{object-fit:contain;padding:18px;background:#fff7f0}
.gallery-grid figure:hover img{transform:scale(1.06)}
.gallery-grid figcaption{position:absolute;bottom:0;left:0;right:0;padding:36px 16px 14px;background:linear-gradient(transparent,#111c);color:#fff;font-weight:800;font-size:.92rem}

.admissions{background:linear-gradient(130deg,#ED1C24,#b70d25);color:#fff;position:relative;overflow:hidden}
.admissions::after{content:"";position:absolute;width:450px;height:450px;border:65px solid #ffffff10;border-radius:50%;right:-140px;top:-160px}
.admission-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:48px;align-items:center;position:relative;z-index:1}
.admissions .kicker{color:#ffe17a}
.admissions .section-head{margin:0}
.admissions .section-head p{color:#ffe6e9}
.admissions h2{font-size:clamp(2.4rem,4.8vw,4.2rem)}
.admission-benefits{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:8px;font-weight:700}
.admission-benefits li::before{content:"✓";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ffffff26;margin-right:10px;font-size:.75rem}
.call-lines{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.call-lines a{background:#ffffff1a;border:1px solid #ffffff30;border-radius:16px;padding:12px 16px}
.call-lines small{display:block;color:#ffd9de;font-size:.74rem;font-weight:700}
.call-lines b{font-size:1.12rem;user-select:all}

.admission-form{background:#fff;color:var(--ink);padding:29px;border-radius:26px;box-shadow:0 24px 70px #6c061c40}
.admission-form.plain{box-shadow:0 24px 70px #10102014;border:1px solid var(--line)}
.admission-form h3{font-size:1.45rem;margin:0 0 6px;letter-spacing:-.02em}
.admission-form>p{color:var(--muted);font-size:.88rem;margin:0 0 20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field.full{grid-column:1/-1}
.field label,.field legend{font-size:.78rem;font-weight:800}
.field input[type=text],.field input[type=tel],.field select,.field textarea{width:100%;border:1px solid #dfe2e8;background:#fafbfc;border-radius:12px;padding:12px;outline:none;min-height:46px;color:var(--ink)}
.field textarea{min-height:90px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #ed1c2e14}
.field.invalid input,.field.invalid select{border-color:var(--red2);background:#fff6f6}
.field .err{display:none;color:var(--red2);font-size:.78rem;font-weight:600}
.field.invalid .err{display:block}
fieldset.field{border:0;padding:0;margin:0}
fieldset.field legend{margin-bottom:7px}
.radios{display:flex;flex-wrap:wrap;gap:8px}
.radios label{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.86rem;border:1px solid #dfe2e8;border-radius:99px;padding:9px 14px;cursor:pointer;background:#fafbfc}
.radios label:has(input:checked){border-color:var(--red);background:#fff0f1;color:var(--red2)}
.radios input{accent-color:var(--red);margin:0}
.checkline{display:flex;gap:10px;align-items:center;font-size:.88rem;font-weight:700}
.checkline input{accent-color:var(--red);width:18px;height:18px;margin:0}
.form-submit{width:100%;margin-top:18px}
.form-note{font-size:.76rem;color:#7b8290;line-height:1.5;margin-top:10px}
.form-done{display:grid;gap:12px;text-align:center;justify-items:center;padding:12px 0}
.form-done .tick{width:64px;height:64px;border-radius:50%;background:#dcf8e8;display:grid;place-items:center;font-size:1.8rem;color:#12814b}
.form-done h3{font-size:1.35rem}
.form-done p{color:var(--muted);font-size:.92rem}

.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.news-card{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}
.news-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.news-card img{width:100%;height:200px;object-fit:cover}
.news-body{padding:22px}
.tag{display:inline-block;font-size:.68rem;letter-spacing:.12em;font-weight:900;color:var(--red);background:#fff0f1;padding:7px 10px;border-radius:99px}
.tag.pin{background:var(--red);color:#fff;margin-left:6px}
.news-body h3{font-size:1.12rem;margin:13px 0 8px}
.news-body p{color:var(--muted);font-size:.88rem;line-height:1.65}
.empty-card{border:2px dashed #e4dcd2;border-radius:22px;padding:26px;display:grid;gap:10px;align-content:center;justify-items:center;text-align:center;background:#fffaf5}
.empty-card .emoji{font-size:2rem}
.empty-card h3{font-size:1.05rem}
.empty-card p{color:var(--muted);font-size:.86rem}

.faq{max-width:820px;margin:auto;display:grid;gap:12px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 22px;transition:box-shadow .25s}
.faq details[open]{box-shadow:0 14px 40px #10102012;border-color:#f3cfd3}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:19px 0;font-weight:800;font-size:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff0f1;color:var(--red);font-size:1.2rem;font-weight:800;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq-a{padding:0 0 20px;color:var(--muted);line-height:1.7;font-size:.94rem}
.faq-a p+p,.faq-a ul{margin-top:10px}
.faq-a a{color:var(--red);font-weight:700;text-decoration:underline;text-underline-offset:2px}

.visit{padding-block:0 85px}
.visit-box{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:34px 38px;border-radius:27px;background:linear-gradient(110deg,#fff1e9,#ffe3e6);border:1px solid #f5d6d9}
.visit-box h2{font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.04em;margin:0 0 7px}
.visit-box p{color:var(--muted);line-height:1.6}
.visit-box .acts{display:flex;gap:10px;flex-wrap:wrap}

.page-hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(120deg,#fffaf5 0%,#fff1e9 55%,#ffe0e4 100%);padding-block:56px 64px}
.page-hero::before{content:"";position:absolute;z-index:-1;width:520px;height:520px;right:-140px;top:-200px;border-radius:50%;background:radial-gradient(circle,#ffc4cc 0%,#ffebd8 58%,transparent 70%)}
.crumbs ol{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:6px;font-size:.84rem;font-weight:700;color:#7a7f8c}
.crumbs li+li::before{content:"/";margin-right:6px;color:#c5b8b8}
.crumbs a:hover{color:var(--red)}
.page-hero h1{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.02;letter-spacing:-.055em;font-weight:900;max-width:920px}
.page-hero h1.after-eyebrow{margin-top:18px}
.page-hero h1 span{color:var(--red)}
.page-hero p.lead{max-width:620px;color:#555c6c;font-size:1.06rem;line-height:1.8;margin-top:18px}
.class-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.class-pills span{padding:9px 16px;border-radius:99px;color:#fff;font-weight:800;font-size:.9rem;box-shadow:0 8px 18px #0000001a}

.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:14px;counter-reset:s}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 12px 40px #10102008}
.steps li::before{content:counter(s);display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#fff0f1;color:var(--red);font-weight:900;font-size:1.1rem;margin-bottom:14px}
.steps li:last-child::before{background:#dcf8e8;color:#12814b}
.steps h3{font-size:1rem;margin-bottom:6px}
.steps p{font-size:.86rem;color:var(--muted);line-height:1.6}
.adm-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start}
.contact-card{background:var(--navy);color:#fff;border-radius:26px;padding:28px;display:grid;gap:16px;position:sticky;top:100px}
.contact-card h3{font-size:1.3rem}
.contact-card .row small{display:block;color:#aab0c0;font-size:.76rem;font-weight:700}
.contact-card .row b{font-size:1.2rem;user-select:all}
.contact-card .row span{color:#e2e4eb;font-size:.92rem}

.stage-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:30px;padding:34px;box-shadow:0 12px 40px #10102008}
.stage-card+.stage-card{margin-top:22px}
.stage-intro .icon{width:64px;height:64px;font-size:1.9rem}
.stage-intro h2{font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.04em;margin:16px 0 6px}
.stage-intro .classes{color:var(--red2);font-weight:800}
.stage-intro p.desc{color:var(--muted);line-height:1.8;margin-top:14px}
.stage-intro .btn{margin-top:22px}
.obj-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.obj{background:var(--ob,#fffaf5);border-radius:18px;padding:18px}
.obj b{display:block;font-size:.98rem;margin-bottom:4px}
.obj span{font-size:.86rem;color:var(--muted);line-height:1.55}

footer.site{background:#11131c;color:#fff;padding-block:57px 22px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:35px}
.footer-brand p{max-width:330px;color:#aeb4c2;font-size:.88rem;line-height:1.7;margin-top:14px}
.footer-col .h4{margin:0 0 15px;font-size:1rem}
.footer-col a,.footer-col p{display:block;color:#b7bdc9;font-size:.86rem;margin:10px 0;line-height:1.55}
.footer-col a:hover{color:var(--gold)}
.parent{display:flex;align-items:center;gap:10px;margin-top:18px;color:#aeb4c2;font-size:.82rem}
.parent img{width:40px;height:40px}
.footer-bottom{border-top:1px solid #ffffff1c;margin-top:35px;padding-top:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#aeb4c2;font-size:.78rem}
.footer-bottom nav{display:flex;gap:16px}

.chat-button{position:fixed;z-index:70;right:calc(22px + env(safe-area-inset-right,0px));bottom:calc(22px + env(safe-area-inset-bottom,0px));width:60px;height:60px;border:0;border-radius:50%;background:linear-gradient(135deg,var(--red),#ff7b31);color:#fff;font-size:1.6rem;box-shadow:0 14px 35px #ed1c2e55}
.chat-panel{position:fixed;z-index:69;right:calc(22px + env(safe-area-inset-right,0px));bottom:calc(94px + env(safe-area-inset-bottom,0px));width:min(340px,calc(100vw - 36px));background:#fff;border-radius:22px;box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--line);animation:pop .2s ease-out}
@keyframes pop{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.chat-head{background:var(--navy);color:#fff;padding:16px 18px;font-weight:800;display:flex;justify-content:space-between;align-items:center}
.chat-head button{background:none;border:0;color:#fff;font-size:1rem;padding:4px}
.chat-body{padding:18px;display:grid;gap:12px}
.chat-body p{font-size:.88rem;color:var(--muted);line-height:1.6}
.chat-actions{display:grid;gap:8px}
.chat-actions a{border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px 13px;font-weight:700;font-size:.85rem}
.chat-actions a:hover{background:#fff1f2;border-color:#f7c2c7}

.reveal{transform:translateY(16px);transition:transform .7s ease}
.reveal.visible{transform:none}

@media(max-width:1080px){
  .program-grid,.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .path-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:950px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:18px;padding-block:48px 56px}
  .hero-copy{text-align:center}
  .hero-copy>p{margin-inline:auto}
  .hero-actions,.class-strip{justify-content:center}
  .hero-visual{min-height:440px}
  .main-photo{height:420px}
  .proof-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proof-item:nth-child(2){border-right:0}
  .split,.admission-grid,.support-grid,.adm-layout,.stage-card{grid-template-columns:minmax(0,1fr);gap:36px}
  .split-visual{order:2}
  .contact-card{position:static}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand{grid-column:1/-1}
  .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .topinner{justify-content:center;text-align:center}
  .topinner .tag-line{display:none}
  .nav{min-height:70px}
  .navlinks.open{top:70px}
  .brand img{width:43px;height:43px}
  .brand strong{font-size:.92rem}
  .brand{gap:7px}
  .brand img{width:40px;height:40px}
  .brand small{font-size:.52rem;letter-spacing:.05em}
  .nav{gap:10px}
  .navlinks{gap:8px}
  .navlinks .btn{padding:11px 14px;font-size:.8rem}
  .navlinks .long{display:none}
  .navlinks .short{display:inline}
  .navlinks.open .long{display:inline}
  .navlinks.open .short{display:none}
  .hero h1{font-size:clamp(2.7rem,12.5vw,4.2rem)}
  .hero-copy>p{font-size:.98rem}
  .hero-visual{min-height:350px}
  .main-photo{height:340px;border-radius:24px}
  .float-card{padding:10px 12px}
  .float-one{left:0;top:2%}
  .float-two{right:0;top:30%}
  .float-card strong{font-size:.84rem}
  .float-card small{font-size:.7rem}
  .float-icon{width:30px;height:30px;margin-right:8px}
  .proof-item{justify-content:flex-start}
  .proof-item b{font-size:1.25rem}
  .proof-item span{font-size:.76rem}
  .proof-item:nth-child(3){border-right:1px solid #ffffff20}
  section{padding-block:64px}
  .program-grid,.news-grid,.steps{grid-template-columns:minmax(0,1fr)}
  .checklist,.mv,.obj-grid{grid-template-columns:minmax(0,1fr)}
  .split-visual img.photo{height:330px}
  .sticker{right:6px;padding:14px 16px;font-size:.9rem}
  .logo-badge{width:76px;height:76px;left:-6px;top:-14px}
  .program.wide{flex-direction:column;align-items:flex-start;gap:16px}
  .feature-grid,.path-grid{gap:10px}
  .path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .path.senior{grid-column:1/-1}
  .brand .logos img+img{display:none}
  .feature{padding:17px}
  .feature h3{font-size:.92rem}
  .feature p{font-size:.8rem}
  .path{padding:17px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:200px 150px 150px}
  .gallery-grid figure:first-child{grid-row:span 1;grid-column:span 2}
  .gallery-grid figure:nth-child(4){grid-column:span 2}
  .gallery-grid figure:nth-child(5){display:none}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .admission-form{padding:22px}
  .visit-box{padding:25px;align-items:flex-start;flex-direction:column}
  .stage-card{padding:22px}
  .chat-button{width:55px;height:55px;right:calc(15px + env(safe-area-inset-right,0px));bottom:calc(15px + env(safe-area-inset-bottom,0px))}
  .chat-panel{right:calc(15px + env(safe-area-inset-right,0px));bottom:calc(80px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{transform:none}}

/* ===================== Production additions ===================== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-weight:800}
.skip-link:focus{top:12px}
.h3{font-size:1.45rem;letter-spacing:-.02em}
.h4{font-size:1rem}
.small{font-size:.82rem}
.muted{color:var(--muted)}
.narrow-wrap{max-width:880px}
.btn.white{background:#fff;color:var(--red2);box-shadow:none}
.btn:focus-visible{outline-offset:4px}
.text-link:hover{text-decoration:underline;text-underline-offset:3px}
.more-link{margin-top:28px;text-align:center}
.more-link.left{text-align:left}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags .tag.pin{margin-left:0}
.tag.soft{background:#f2f3f7;color:#4b5161}

/* Preview bar (admins only) */
.preview-bar{position:sticky;top:0;z-index:80;background:var(--navy);color:#fff;font-size:.85rem;border-bottom:3px solid var(--red)}
.preview-bar .wrap{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;padding-block:9px}
.preview-bar span{color:#c9cdd8}

/* Top bar & header */
.topbar a:hover b{text-decoration:underline}
.brand strong{text-transform:uppercase}
.brand small{text-transform:uppercase}
.menu span{display:block;width:1.1em;text-align:center}
.navlinks a[aria-current="page"]{position:relative}
@media(min-width:1181px){.navlinks a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:3px;border-radius:3px;background:var(--red)}}
@media(max-width:1180px){.navlinks.open a[aria-current]{color:var(--red)}}

/* Breadcrumbs */
.crumbs-bar{background:#fffaf5;border-bottom:1px solid #f3e7e2;padding-top:18px}
.crumbs-bar .crumbs ol{margin-bottom:14px}
.crumbs li{min-width:0;overflow-wrap:anywhere}
.crumbs [aria-current]{color:var(--ink)}

/* Section heads */
.section-head.flush{margin:0}
.section-head .lead-md p{color:var(--muted);font-size:1rem;line-height:1.8}
.section-head .lead-md p+p{margin-top:12px}
.split.rev .split-visual{order:2}
.card-links{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:16px}
.card-links .text-link{margin-top:0}
.text-link.soft{color:var(--ink);opacity:.75}
.program.dark .text-link.soft{color:#fff}
.program{isolation:isolate}
.program::after{z-index:-1}
.program.wide .text-link{color:#fff;display:inline-block;margin-top:10px}
.ml-logo{height:auto}
.ml-logo.big{width:190px}

/* Proof strip */
.proof-row{padding-left:var(--gut);padding-right:var(--gut-r)}

/* Stage cards (academics) */
.stage-card.dark{background:linear-gradient(150deg,#171a2a,#2b2f48);color:#fff;border-color:#171a2a}
.stage-card.dark .classes{color:var(--gold)}
.stage-card.dark .desc,.stage-card.dark .obj span{color:#c9cdd8}
.stage-card.red{background:linear-gradient(120deg,#ED1C24,#9e0b1f);color:#fff;border-color:#b90d25}
.stage-card.red .classes{color:#fff}
.stage-card.red .desc,.stage-card.red .obj span{color:#ffe3e6}
.stage-card.dark .text-link{color:var(--gold)}
.stage-card.red .text-link{color:#fff}
.stage-intro .desc{color:var(--muted);line-height:1.8;margin-top:14px}
.stage-intro .desc p+p{margin-top:10px}
.stage-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:22px}
.stage-actions .text-link{margin-top:0}
.obj-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.obj.card{background:#fff;border:1px solid var(--line)}

/* Activities */
.feature-img{width:100%;height:120px;object-fit:cover;border-radius:14px}

/* Gallery preview */
.gallery-grid a{display:block;width:100%;height:100%}
.gallery-grid figure img{object-position:50% 35%}
.gallery-grid.n-1{grid-template-columns:1fr;grid-template-rows:380px}
.gallery-grid.n-1 figure:first-child,.gallery-grid.n-2 figure:first-child{grid-row:auto}
.gallery-grid.n-2{grid-template-columns:1fr 1fr;grid-template-rows:340px}
.gallery-grid.n-3{grid-template-columns:1.3fr 1fr}
.gallery-grid.n-4 figure:nth-child(4){grid-column:span 2}

/* Albums + lightbox */
.album+.album{margin-top:44px}
.album-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.album-head h3{font-size:1.4rem;letter-spacing:-.02em}
.album-head .count{color:var(--muted);font-weight:700;font-size:.85rem}
.album-desc{color:var(--muted);margin-top:6px;max-width:720px}
.album-grid{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.album-grid a{display:block;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:#eee}
.album-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.album-grid a:hover img{transform:scale(1.05)}
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(10,11,18,.92);display:grid;grid-template-rows:auto 1fr auto;padding:12px max(12px,env(safe-area-inset-left,0px));color:#fff}
.lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:700;font-size:.9rem}
.lightbox-stage{display:grid;place-items:center;min-height:0;position:relative}
.lightbox-stage img{max-width:100%;max-height:calc(100vh - 140px);object-fit:contain;border-radius:12px;box-shadow:0 20px 60px #0008}
.lightbox-cap{text-align:center;padding:12px 8px 6px;color:#e2e4eb;font-size:.92rem;min-height:2.4em}
.lightbox button{background:#ffffff1f;color:#fff;border:1px solid #ffffff33;border-radius:999px;width:46px;height:46px;font-size:1.2rem;display:grid;place-items:center}
.lightbox button:hover{background:#ffffff33}
.lightbox .lb-prev,.lightbox .lb-next{position:absolute;top:50%;transform:translateY(-50%)}
.lightbox .lb-prev{left:4px}.lightbox .lb-next{right:4px}

/* Admissions band + forms */
.call-lines a{display:block}
.call-lines a:hover{background:#ffffff26}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{background:#fff1f2;border:1px solid #f7c2c7;color:var(--red2);border-radius:12px;padding:10px 14px;font-size:.88rem;font-weight:700;margin-bottom:14px}
.form-note a{text-decoration:underline}
.form-submit[disabled]{opacity:.7;cursor:progress;transform:none}
.enquiry{position:relative}
.contact-card .row a b,.contact-card .row a span{color:#fff}
.contact-card .row a:hover b{text-decoration:underline}
.gold-link{color:var(--gold);font-weight:700}
.contact-card .exam-tags{margin-top:6px}

/* Fees */
.fee-rows{margin:6px 0 0;padding-top:12px;border-top:1px dashed #e4dcd2;display:grid;gap:6px}
.fee-rows div{display:flex;justify-content:space-between;gap:12px;font-size:.88rem}
.fee-rows dt{color:var(--muted);font-weight:700}
.fee-rows dd{margin:0;text-align:right;font-weight:700}
.fee-rows .amt{margin:0;padding:0;border:0}
.fee-rows .amt b{font-size:1.02rem}
.fee-notes{font-size:.82rem;color:var(--muted);margin-top:4px}

/* News */
.news-card{position:relative}
.news-card img{object-position:50% 25%}
.news-ph{height:200px;display:grid;place-items:center;background:linear-gradient(135deg,#fff1e9,#ffe0e4);font-size:3rem}
.news-body{display:flex;flex-direction:column;flex:1}
.news-body .date{font-size:.8rem;color:#7b8290;font-weight:700;margin:-2px 0 8px}
.news-body h3 a:hover{color:var(--red)}
a.stretch::after{content:"";position:absolute;inset:0;z-index:1}
a.stretch:focus-visible{outline:none}
.news-card:focus-within,.teacher-card:focus-within,.result-item:focus-within{outline:3px solid #1F7AE0;outline-offset:3px}

/* Empty states */
.empty-card.narrow{max-width:620px;margin-inline:auto}
.empty-card .btn{margin-top:6px}
.empty-card h2.h3,.empty-card h1.h3{font-size:1.15rem}

/* Teachers */
.teacher-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.teacher-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.teacher-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.teacher-photo{aspect-ratio:1/1;background:linear-gradient(135deg,#fff1e9,#ffe0e4);display:grid;place-items:center}
.teacher-photo img{width:100%;height:100%;object-fit:cover}
.initials{font-size:2.6rem;font-weight:900;color:var(--red2);letter-spacing:-.04em}
.teacher-body{padding:18px 20px 22px}
.teacher-body h3{font-size:1.08rem;margin:8px 0 4px}
.teacher-body .role{color:var(--red2);font-weight:800;font-size:.86rem}
.teacher-body .dept{color:var(--muted);font-size:.84rem}
.profile{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.profile-photo{width:180px;height:180px;border-radius:50%;overflow:hidden;background:#fff;display:grid;place-items:center;box-shadow:var(--shadow);border:6px solid #fff;flex-shrink:0}
.profile-photo img{width:100%;height:100%;object-fit:cover}
.page-hero h1.profile-name{font-size:clamp(2rem,5vw,3.4rem);margin-top:10px}
.profile-role{color:var(--red2);font-weight:800;font-size:1.1rem;margin-top:8px}
.profile-dept{color:var(--muted);font-weight:700}
.profile-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:36px;align-items:start}
.profile-facts{display:grid;gap:18px;background:#fffaf5;border:1px solid #f3e7e2;border-radius:22px;padding:24px}
.profile-facts .h4{margin-bottom:6px}

/* Achievements */
.ach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ach-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.ach-card.featured{border-color:#f3cfd3;box-shadow:0 14px 40px #ed1c2e14}
.ach-card img{width:100%;height:200px;object-fit:cover}
.ach-ph{height:120px;display:grid;place-items:center;font-size:2.6rem;background:linear-gradient(135deg,#fff7e0,#ffe9ec)}
.ach-body{padding:20px 22px 24px;display:grid;gap:8px}
.ach-body h3{font-size:1.1rem}
.ach-body .meta{color:var(--red2);font-weight:700;font-size:.86rem}
.ach-desc{color:var(--muted);font-size:.88rem;line-height:1.65}

/* Results */
.filters{display:grid;gap:10px;margin-bottom:26px}
.filter-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filter-label{font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);min-width:52px}
.chip{display:inline-flex;align-items:center;padding:8px 14px;border-radius:99px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:.86rem}
.chip:hover{border-color:#f3cfd3;color:var(--red2)}
.chip[aria-current]{background:var(--red);border-color:var(--red);color:#fff}
.result-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.result-item{position:relative;display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 22px;transition:box-shadow .25s,transform .25s}
.result-item:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.result-badge{width:52px;height:52px;border-radius:16px;background:#fff0f1;display:grid;place-items:center;font-size:1.5rem;flex-shrink:0}
.result-main{flex:1;min-width:0;display:grid;gap:6px}
.result-main h3{font-size:1.1rem}
.result-main p{color:var(--muted);font-size:.88rem}
.result-go{color:var(--red);font-weight:900;font-size:1.3rem}
.table-wrap{overflow-x:auto;margin:26px 0 10px;border:1px solid var(--line);border-radius:18px;-webkit-overflow-scrolling:touch}
.data-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:420px}
.data-table th,.data-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line)}
.data-table thead th{background:#fffaf5;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.data-table tbody tr:last-child>*{border-bottom:0}

/* Article / prose (markdown output) */
.page-hero.compact{padding-block:44px 48px}
.page-hero h1.article-title{font-size:clamp(2rem,5vw,3.4rem);line-height:1.08;letter-spacing:-.045em;margin-top:14px}
.article-meta{color:var(--muted);font-weight:700;margin-top:12px;font-size:.92rem}
.article-section{padding-block:48px 72px}
.article-cover{margin:0 0 28px;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.article-cover img{width:100%;height:auto;max-height:560px;object-fit:cover;object-position:50% 25%}
.article-lead{font-size:1.15rem;line-height:1.75;color:#3d4250;font-weight:600;margin-bottom:18px}
.prose{color:#2c3140;font-size:1.02rem;line-height:1.8;overflow-wrap:anywhere}
.prose>*+*{margin-top:1em}
.prose h2{font-size:clamp(1.45rem,3vw,1.9rem);letter-spacing:-.03em;line-height:1.2;margin-top:1.6em;color:var(--ink)}
.prose h3{font-size:1.2rem;margin-top:1.4em;color:var(--ink)}
.prose h4{font-size:1.02rem;margin-top:1.2em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.35em}
.prose li::marker{color:var(--red)}
.prose a{color:var(--red2);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.prose blockquote{margin-left:0;padding:14px 20px;border-left:4px solid var(--red);background:#fffaf5;border-radius:0 14px 14px 0;color:#3d4250}
.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.prose img{border-radius:16px;height:auto}
.prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.prose code{background:#f4f5f8;padding:2px 6px;border-radius:6px;font-size:.9em}
.prose.small{font-size:.92rem;line-height:1.7}
.prose-wrap{max-width:820px;margin:auto}
.prose-title{font-size:clamp(1.9rem,3.8vw,2.8rem);line-height:1.08;letter-spacing:-.045em;font-weight:900;margin:10px 0 20px}
.event-box{display:flex;flex-wrap:wrap;gap:12px 28px;background:var(--navy);color:#fff;border-radius:20px;padding:18px 22px;margin-bottom:24px}
.event-box small{display:block;color:#aab0c0;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.download{display:flex;align-items:center;gap:14px;margin-top:28px;padding:16px 20px;border:1px solid var(--line);border-radius:18px;background:#fffaf5}
.download:hover{border-color:#f3cfd3}
.download .icon{width:48px;height:48px;font-size:1.4rem;flex-shrink:0}
.download small{display:block;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.share-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}

/* Programme detail */
.prog-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:40px;align-items:center}
.prog-visual{display:grid;place-items:center}
.prog-logo{width:100%;max-width:420px;height:auto;border-radius:26px;box-shadow:var(--shadow);background:#0b0c12}
.prog-photo{width:100%;height:auto;border-radius:26px;box-shadow:var(--shadow)}
.h1-icon{font-size:.8em}
.prog-hero .hero-actions{margin-top:26px}
.prog-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:40px;align-items:start}
.prog-card .btn{width:100%}
.prog-card .row span{overflow-wrap:anywhere}

/* Contact section */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;align-items:stretch}
.contact-cards{display:grid;gap:12px;align-content:start}
.c-card{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 20px;box-shadow:0 12px 40px #10102008;min-width:0}
a.c-card:hover{border-color:#f3cfd3;box-shadow:var(--shadow)}
.c-card .icon{width:50px;height:50px;font-size:1.35rem;flex-shrink:0}
.c-card>span:last-child{min-width:0}
.c-card small{display:block;color:var(--muted);font-weight:800;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}
.c-card b{display:block;font-size:1.25rem;letter-spacing:-.01em}
.c-card b.addr{font-size:1.02rem;line-height:1.45}
.c-card em{display:block;font-style:normal;color:var(--muted);font-size:.85rem;margin-top:2px}
.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.map-box{border-radius:26px;overflow:hidden;min-height:380px;background:#eee;box-shadow:var(--shadow);position:relative}
.map-box iframe{border:0;width:100%;height:100%;min-height:380px;display:block}
.map-fallback,.map-fallback img{width:100%;height:100%}
.map-fallback img{object-fit:cover;position:absolute;inset:0}
.map-over{position:absolute;left:0;right:0;bottom:0;padding:60px 24px 24px;background:linear-gradient(transparent,#11131de8);color:#fff;display:grid;gap:6px;justify-items:start}
.map-over b{font-size:1.3rem}
.map-over .btn{margin-top:8px}

/* CTA box spacing */
.visit.padded{padding-top:72px}

/* Message / 404 / thank-you */
.message-section{padding-block:72px 96px;background:linear-gradient(120deg,#fffaf5 0%,#fff1e9 55%,#ffe0e4 100%)}
.message-box{max-width:640px;margin:auto;text-align:center;background:#fff;border-radius:30px;padding:44px 32px;box-shadow:var(--shadow);display:grid;gap:16px;justify-items:center}
.message-icon{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:2rem;font-weight:900;background:#dcf8e8;color:#12814b}
.message-box.nf .message-icon{background:#fff0f1;color:var(--red);font-size:1.5rem}
.message-box h1{font-size:clamp(1.8rem,4.5vw,2.6rem);letter-spacing:-.04em;line-height:1.1}
.message-box>p{color:var(--muted);line-height:1.7}
.message-box .acts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:6px}
.nf-links{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;margin-top:8px;font-weight:700}
.nf-links p{flex-basis:100%;color:var(--muted);font-weight:600}
.nf-links a{color:var(--red2);text-decoration:underline}

/* Footer */
.socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.socials a{border:1px solid #ffffff2a;border-radius:99px;padding:7px 14px;font-size:.82rem;font-weight:700;color:#dfe2ea}
.socials a:hover{border-color:var(--gold);color:var(--gold)}
.footer-brand .brand strong{color:#fff}
.footer-brand .brand strong em{color:#ff3345}
.footer-brand .brand small{color:#aeb3c1}
.footer-bottom a:hover{color:var(--gold)}
.chat-head span{min-width:0}
.chat-body p.small{font-size:.74rem}

/* Cookie consent */
.consent{position:fixed;z-index:75;left:max(16px,env(safe-area-inset-left,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));width:min(420px,calc(100vw - 104px));background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow);display:grid;gap:12px;font-size:.86rem;line-height:1.55}
.consent a{color:var(--red2);font-weight:700;text-decoration:underline}
.consent-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.consent .btn{padding:10px 18px;font-size:.86rem}

/* Responsive additions */
@media(max-width:1080px){
  .teacher-grid,.album-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ach-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .obj-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proof-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .proof-item:nth-child(3n){border-right:0}
}
@media(max-width:950px){
  .proof-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proof-item{border-right:0!important;justify-content:flex-start}
  .split.rev .split-visual{order:2}
  .prog-hero-grid,.prog-layout,.profile-layout,.contact-grid{grid-template-columns:minmax(0,1fr)}
  .prog-visual{order:-1;justify-items:start}
  .prog-logo{max-width:300px}
  .map-box,.map-box iframe{min-height:300px}
  .contact-card{position:static}
}
@media(max-width:620px){
  .proof-row{gap:14px 12px}
  .proof-item{padding-inline:0}
  .teacher-grid,.album-grid,.ach-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ach-grid{grid-template-columns:minmax(0,1fr)}
  .teacher-body{padding:14px}
  .teacher-body h3{font-size:.98rem}
  .obj-grid.four{grid-template-columns:minmax(0,1fr)}
  .gallery-grid.n-1{grid-template-rows:260px}
  .gallery-grid.n-2{grid-template-columns:minmax(0,1fr);grid-template-rows:220px 220px}
  .gallery-grid.n-2 figure:first-child{grid-column:auto}
  .gallery-grid.n-3{grid-template-columns:1fr 1fr;grid-template-rows:200px 160px}
  .gallery-grid.n-3 figure:first-child{grid-column:span 2;grid-row:auto}
  .gallery-grid.n-4{grid-template-rows:200px 150px 150px}
  .gallery-grid.n-4 figure:nth-child(4){display:block;grid-column:span 2}
  .result-item{padding:16px;gap:12px}
  .result-badge{width:42px;height:42px;font-size:1.2rem}
  .result-go{display:none}
  .message-box{padding:34px 20px}
  .page-hero{padding-block:40px 48px}
  .page-hero h1{font-size:clamp(2.1rem,10vw,3rem)}
  .profile-photo{width:130px;height:130px}
  .c-card b{font-size:1.1rem}
  .contact-actions .btn{width:100%}
  .visit-box .acts{width:100%}
  .visit-box .acts .btn{flex:1 1 auto}
  .consent{width:calc(100vw - 32px);bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .lightbox .lb-prev,.lightbox .lb-next{top:auto;bottom:-56px;transform:none}
  .lightbox-stage{margin-bottom:56px}
  .lightbox-stage img{max-height:calc(100vh - 200px)}
  .stage-actions .btn{white-space:normal;text-align:center}
  .program.wide .btn{white-space:normal;text-align:center}
  .btn{white-space:normal;text-align:center}
}
@media(prefers-reduced-motion:reduce){.main-photo{transform:none}.float-card{animation:none}}
.navlinks .btn{white-space:nowrap}
.admission-benefits li{position:relative;padding-left:32px}
.admission-benefits li::before{position:absolute;left:0;top:1px;margin:0}
@media(max-width:620px){.footer-grid>.footer-col:last-child{grid-column:1/-1}}
@media(max-width:950px){.float-one{left:0}.float-two{right:0}}
@media(max-width:400px){
  .nav{gap:6px}
  .brand{gap:6px}
  .brand img{width:36px;height:36px}
  .brand strong{font-size:.8rem;letter-spacing:-.02em}
  .brand small{font-size:.46rem;letter-spacing:.03em}
  .navlinks{gap:6px}
  .navlinks .btn{padding:10px 12px;font-size:.76rem}
  .menu{padding:9px 10px;font-size:1rem}
}
@media(max-width:1300px){.sticker{right:8px}}
