/* ═══════════════════════════════════════════════════════════════
   LA FONTAINE COLLEGE — Multipage
   Brand: #0000f8 (blue) · #fcb303 (gold) · white
   ═══════════════════════════════════════════════════════════════ */

:root{
    --blue:#0000f8;--blue-2:#1a1aff;--blue-3:#0000c4;--blue-deep:#0000a8;--blue-ink:#00006e;--blue-soft:#eef0ff;
    --gold:#fcb303;--gold-2:#fdc53a;--gold-light:#fef3d6;--gold-deep:#b97d02;
    --cream:#f7f6f1;--cream-2:#fbfaf7;--white:#ffffff;--black:#05061a;
    --text:#0f1438;--muted:#5f6b8c;--muted-light:#98a1b8;
    --border:#e2e6ef;--border-soft:rgba(0,0,168,.12);
    --radius-sm:12px;--radius:20px;--radius-lg:30px;
    --shadow-sm:0 8px 25px rgba(0,0,120,.06);
    --shadow:0 25px 70px rgba(0,0,120,.14);
    --container:1260px;--gutter:22px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--text);font-family:"Inter",sans-serif;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img{width:100%;display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
ul,ol{list-style:none;padding:0;margin:0}

.container{width:min(calc(100% - var(--gutter)*2),var(--container));margin-inline:auto}
.section{padding:120px 0}
.section--soft{background:var(--cream)}

.skip-link{position:absolute;top:-100px;left:12px;background:var(--blue);color:#fff;padding:10px 16px;z-index:999;border-radius:6px;font-size: 16px;font-weight:700}
.skip-link:focus{top:12px}

.eyebrow{display:inline-flex;align-items:center;gap:11px;color:var(--gold);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.17em}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor}
.section-title{margin:18px 0 20px;color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.04;letter-spacing:-.035em;font-weight:700}
.section-title em{color:var(--blue);font-style:italic}
.section-intro{max-width:680px;color:var(--muted);font-size:16px;line-height:1.9}
.center{text-align:center}
.center .eyebrow{justify-content:center}
.center .section-intro{margin-inline:auto}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:55px}
.section-head .section-title{margin-bottom:0}
.section-copy{max-width:500px;color:var(--muted);font-size: 16px;line-height:1.85}

.btn{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:0 22px;border:1px solid transparent;border-radius:10px;font-size: 16px;font-weight:800;transition:transform .25s ease,background .25s ease,border .25s ease,color .25s ease;cursor:pointer;line-height:1}
.btn:hover{transform:translateY(-2px)}
.btn-primary{color:var(--white);background:var(--blue)}
.btn-primary:hover{background:var(--blue-3)}
.btn-white{color:var(--blue-ink);background:var(--white)}
.btn-white:hover{background:var(--cream)}
.btn-outline{color:var(--blue-ink);border-color:#ccd4e2;background:transparent}
.btn-outline:hover{border-color:var(--blue);background:var(--white)}
.btn-outline-light{color:var(--white);border-color:rgba(255,255,255,.35);background:transparent}
.btn-outline-light:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.65)}
.arrow{font-size:17px;line-height:1}

.utility-bar{position:absolute;top:0;left:0;right:0;z-index:30;color:rgba(255,255,255,.75);border-bottom:1px solid rgba(255,255,255,.12);font-size: 16px}
.utility-bar:not(.utility-bar--over){position:relative;background:var(--blue-ink);color:rgba(255,255,255,.8)}
.utility-inner{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.utility-left,.utility-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.utility-right a:hover,.utility-left a:hover{color:#fff}
.utility-label{color:rgba(255,255,255,.46);text-transform:uppercase;letter-spacing:.09em;font-size: 16px;font-weight:800}

.site-header{position:absolute;top:40px;left:0;right:0;z-index:50;transition:background .3s ease,box-shadow .3s ease,top .3s ease,border .3s ease}
.site-header:not(.site-header--over){position:relative;top:0;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 4px 16px rgba(0,0,120,.04)}
.site-header.scrolled{position:fixed;top:0;background:rgba(255,255,255,.97);box-shadow:0 8px 30px rgba(0,0,120,.10);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}

.nav{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:flex;align-items:center;gap:13px;color:var(--white);flex-shrink:0}
.site-header:not(.site-header--over) .brand,.scrolled .brand{color:var(--blue-ink)}
.brand-logo{max-height:56px;width:auto;display:block;flex-shrink:0}
.footer .brand-logo{max-height:60px;background:#fff;padding:10px 14px;border-radius:8px}
.logo-box{width:53px;height:53px;display:grid;place-items:center;border:1px dashed rgba(255,255,255,.55);border-radius:11px;color:rgba(255,255,255,.85);background:rgba(255,255,255,.06);text-align:center;font-size: 16px;font-weight:800;line-height:1;letter-spacing:.05em;font-family:"Manrope",sans-serif}
.site-header:not(.site-header--over) .logo-box,.scrolled .logo-box{border-color:#aeb8c6;color:var(--blue);background:var(--blue-soft);border-style:solid}
.footer .logo-box{border-color:rgba(255,255,255,.25);color:#fff;background:rgba(255,255,255,.06)}
.brand-copy strong{display:block;font-family:"Manrope",sans-serif;font-size:19px;line-height:1.05}
.brand-copy span{display:block;margin-top:5px;color:rgba(255,255,255,.55);font-size: 16px;text-transform:uppercase;letter-spacing:.14em;font-weight:700}
.site-header:not(.site-header--over) .brand-copy span,.scrolled .brand-copy span{color:#738092}
.footer .brand-copy span{color:rgba(255,255,255,.55)}

.nav-links{display:flex;align-items:center;gap:27px}
.nav-links a{position:relative;color:rgba(255,255,255,.88);font-size: 16px;font-weight:700}
.site-header:not(.site-header--over) .nav-links a,.scrolled .nav-links a{color:#344154}
.nav-links a:not(.nav-button)::after{position:absolute;left:0;bottom:-8px;width:0;height:2px;content:"";background:var(--gold);transition:width .25s ease}
.nav-links a:not(.nav-button):hover::after,.nav-links a[aria-current="page"]:not(.nav-button)::after{width:100%}
.nav-button{min-height:45px;display:inline-flex;align-items:center;padding-inline:18px;border-radius:9px;background:var(--gold);color:#241c08 !important;font-weight:800 !important}
.nav-button:hover{background:var(--gold-2)}

.mobile-toggle{display:none;width:46px;height:46px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.07);border-radius:10px;position:relative}
.site-header:not(.site-header--over) .mobile-toggle,.scrolled .mobile-toggle{border-color:var(--border);background:var(--white)}
.mobile-toggle::before{content:"";position:absolute;top:15px;left:13px;width:19px;height:2px;background:#fff;box-shadow:0 7px 0 #fff, 0 14px 0 #fff}
.site-header:not(.site-header--over) .mobile-toggle::before,.scrolled .mobile-toggle::before{background:var(--blue-ink);box-shadow:0 7px 0 var(--blue-ink), 0 14px 0 var(--blue-ink)}

.hero{position:relative;min-height:820px;display:flex;align-items:flex-end;overflow:hidden;background:var(--blue-ink)}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s ease}
.hero-slide.active{opacity:1;visibility:visible}
.hero-slide-bg{position:absolute;inset:-5%;background-position:center;background-size:cover;background-repeat:no-repeat;transform:scale(1.02)}
.hero-slide.active .hero-slide-bg{animation:kenburns 9s ease-in-out forwards}
@keyframes kenburns{0%{transform:scale(1.03)}100%{transform:scale(1.13)}}
.hero::after{position:absolute;inset:0;z-index:1;content:"";background:linear-gradient(90deg,rgba(0,0,80,.88) 0%,rgba(0,0,80,.65) 37%,rgba(0,0,80,.25) 71%,rgba(0,0,80,.42) 100%)}
.hero::before{position:absolute;inset:0;z-index:2;content:"";background:linear-gradient(0deg,rgba(0,0,60,.88) 0%,rgba(0,0,60,.12) 32%,transparent 66%)}
.hero-content{position:relative;z-index:5;width:100%;padding:170px 0 70px}
.hero-content-inner{max-width:770px}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;margin-bottom:23px;color:var(--gold-2);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.18em}
.hero-kicker span{width:36px;height:1px;background:currentColor}
.hero h1{max-width:850px;margin:0;color:var(--white);font-family:"Manrope",sans-serif;font-size:clamp(3.4rem,7.5vw,7rem);line-height:.94;letter-spacing:-.04em;font-weight:700}
.hero h1 em{color:var(--gold-2);font-style:italic}
.hero-description{max-width:650px;margin:28px 0 34px;color:rgba(255,255,255,.8);font-size:16px;line-height:1.9}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:40px;padding-top:25px;border-top:1px solid rgba(255,255,255,.18)}
.hero-meta-item strong{display:block;color:var(--white);font-family:"Manrope",sans-serif;font-size:24px;line-height:1}
.hero-meta-item span{display:block;margin-top:5px;color:rgba(255,255,255,.52);font-size: 16px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.hero-side-card{position:absolute;z-index:6;right:45px;bottom:72px;width:235px;padding:22px;border:1px solid rgba(255,255,255,.2);border-radius:17px;color:var(--white);background:rgba(0,0,80,.55);backdrop-filter:blur(13px)}
.hero-side-card small{display:block;color:var(--gold-2);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}
.hero-side-card h3{margin:0 0 7px;font-family:"Manrope",sans-serif;font-size:24px;line-height:1.12}
.hero-side-card p{margin:0;color:rgba(255,255,255,.65);font-size: 16px;line-height:1.7}
.hero-controls{position:absolute;right:45px;bottom:29px;z-index:10;display:flex;align-items:center;gap:9px}
.hero-dot{width:34px;height:3px;border:0;background:rgba(255,255,255,.34);padding:0}
.hero-dot.active{background:var(--gold)}
.hero-slide-number{margin-left:9px;color:rgba(255,255,255,.72);font-size: 16px;font-weight:800;letter-spacing:.12em}

.fact-wrap{position:relative;z-index:20;margin-top:-38px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-radius:20px;overflow:hidden;background:var(--white);box-shadow:var(--shadow)}
.fact{min-height:125px;display:flex;flex-direction:column;justify-content:center;padding:22px 28px;border-right:1px solid var(--border)}
.fact:last-child{border-right:0}
.fact-label{margin-bottom:4px;color:#8a94a2;font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.fact strong{color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:24px;line-height:1.15}
.fact span{margin-top:5px;color:var(--muted);font-size: 16px}

.about{background:var(--white)}
.about-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:90px;align-items:center}
.about-media{position:relative;min-height:650px}
.about-main-photo{position:absolute;top:0;right:55px;bottom:85px;left:0;border-radius:28px;overflow:hidden;background:#e2e7ef}
.about-main-photo img{width:100%;height:100%;object-fit:cover}
.about-small-photo{position:absolute;right:0;bottom:0;width:250px;height:220px;overflow:hidden;border-radius:22px;background:#e2e7ef;box-shadow:var(--shadow)}
.about-small-photo img{width:100%;height:100%;object-fit:cover}
.about-badge{position:absolute;left:-28px;bottom:105px;width:165px;padding:22px 20px;background:var(--blue-ink);color:var(--white);border-radius:16px;box-shadow:var(--shadow)}
.about-badge strong{display:block;color:var(--gold);font-family:"Manrope",sans-serif;font-size:37px;line-height:1}
.about-badge span{display:block;margin-top:7px;color:rgba(255,255,255,.63);font-size: 16px}
.about-copy .section-title{max-width:680px}
.about-copy > p{max-width:690px;margin-bottom:18px;color:var(--muted);font-size: 16px;line-height:1.9}
.pillar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px;margin-bottom:34px}
.pillar{padding:18px;border:1px solid var(--border);border-radius:15px;background:#fcfcfb}
.pillar-number{margin-bottom:10px;color:var(--gold);font-size: 16px;font-weight:800;letter-spacing:.1em}
.pillar h3{margin:0 0 6px;color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:19px}
.pillar p{margin:0;color:var(--muted);font-size: 16px;line-height:1.7}

.dark-band{position:relative;background:var(--blue-ink);color:var(--white);overflow:hidden}
.dark-band::before{position:absolute;width:500px;height:500px;top:-290px;right:-150px;border:1px solid rgba(255,255,255,.08);border-radius:50%;content:""}
.dark-band-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end}
.dark-band .eyebrow{color:var(--gold-2)}
.dark-band .section-title{color:var(--white);max-width:790px}
.dark-band .section-intro{color:rgba(255,255,255,.63);max-width:560px}
.dark-stat-stack{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.1)}
.dark-stat{min-height:145px;padding:28px;background:var(--blue-ink)}
.dark-stat strong{display:block;color:var(--white);font-family:"Manrope",sans-serif;font-size:41px;line-height:1}
.dark-stat span{display:block;margin-top:10px;color:rgba(255,255,255,.52);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}

.academics{background:var(--cream)}
.academic-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:55px}
.academic-heading .section-title{margin-bottom:0}
.academic-heading .section-intro{max-width:500px}
.academic-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.academic-grid--single .academic-card{grid-column:span 12;min-height:auto}
.academic-card{grid-column:span 4;position:relative;padding:33px;min-height:390px;border-radius:22px;background:var(--white);border:1px solid var(--border);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column}
.academic-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.academic-card.featured{color:var(--white);background:linear-gradient(150deg,var(--blue-ink),var(--blue-deep))}
.academic-index{margin-bottom:40px;color:var(--gold);font-size: 16px;font-weight:800;letter-spacing:.14em}
.academic-card h3{margin:0 0 13px;color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:28px;line-height:1.08}
.academic-card.featured h3{color:var(--white)}
.academic-card p{margin:0;color:var(--muted);font-size: 16px;line-height:1.8}
.academic-card.featured p{color:rgba(255,255,255,.68)}
.academic-subjects{display:flex;flex-wrap:wrap;gap:7px;margin-top:25px}
.subject{padding:6px 10px;border-radius:7px;background:#f2f4f8;color:#4c5868;font-size: 16px;font-weight:700}
.featured .subject{background:rgba(255,255,255,.1);color:rgba(255,255,255,.8)}
.academic-link{margin-top:auto;padding-top:28px;color:var(--blue);font-size: 16px;font-weight:800;display:inline-flex;align-items:center;gap:6px}
.academic-card.featured .academic-link{color:var(--gold-2)}

.life{background:var(--white)}
.life-heading{max-width:700px;margin-bottom:55px}
.life-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}
.life-large{min-height:575px;position:relative;border-radius:26px;overflow:hidden;background:#d9e0e8}
.life-large img{width:100%;height:100%;object-fit:cover}
.life-small-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}
.life-small{position:relative;min-height:278px;border-radius:24px;overflow:hidden;background:#e2e7ed}
.life-small img{width:100%;height:100%;object-fit:cover}
.life-caption{position:absolute;left:0;right:0;bottom:0;padding:32px 30px 27px;background:linear-gradient(to top,rgba(0,0,60,.9),transparent);color:var(--white)}
.life-caption small{display:block;margin-bottom:5px;color:var(--gold-2);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.life-caption h3{margin:0;font-family:"Manrope",sans-serif;font-size:30px;line-height:1.08}
.life-small .life-caption h3{font-size:22px}

.activities{background:var(--cream)}
.activity-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}
.activity-groups{display:grid;gap:11px;margin-top:34px}
.activity-groups--wide{grid-template-columns:1fr 1fr;gap:16px}
.activity-item{display:grid;grid-template-columns:43px 1fr;gap:14px;align-items:start;padding:17px;border:1px solid var(--border);border-radius:14px;background:var(--white)}
.activity-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:11px;background:var(--blue-soft);color:var(--blue);font-size: 16px;font-weight:900}
.activity-item h3{margin:0 0 3px;color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:18px}
.activity-item p{margin:0;color:var(--muted);font-size: 16px;line-height:1.7}
.activities-photo{position:relative;min-height:650px;border-radius:28px;overflow:hidden;background:#dbe2ea}
.activities-photo img{width:100%;height:100%;object-fit:cover}
.activity-floating{position:absolute;right:22px;bottom:22px;z-index:3;width:250px;padding:22px;border-radius:16px;background:rgba(0,0,60,.94);color:var(--white);box-shadow:var(--shadow)}
.activity-floating strong{display:block;color:var(--gold-2);font-family:"Manrope",sans-serif;font-size:37px;line-height:1}
.activity-floating span{display:block;margin-top:7px;color:rgba(255,255,255,.65);font-size: 16px}

.values{background:var(--white)}
.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:52px}
.value-card{position:relative;padding:29px 25px 27px;border:1px solid var(--border);border-radius:18px;background:#fff;transition:transform .25s ease,box-shadow .25s ease}
.value-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm)}
.value-number{margin-bottom:27px;color:var(--gold);font-size: 16px;font-weight:900;letter-spacing:.12em}
.value-card h3{margin:0 0 9px;color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:22px}
.value-card p{margin:0;color:var(--muted);font-size: 16px;line-height:1.8}

.admissions{position:relative;background:var(--blue-ink);color:var(--white);overflow:hidden}
.admissions::before{position:absolute;width:650px;height:650px;top:-380px;left:-220px;border:1px solid rgba(255,255,255,.07);border-radius:50%;content:""}
.admissions-layout{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.admissions .eyebrow{color:var(--gold-2)}
.admissions .section-title{color:var(--white);max-width:700px}
.admissions .section-intro{color:rgba(255,255,255,.65)}
.admission-steps{display:grid;gap:13px;margin-top:35px}
.admission-step{display:grid;grid-template-columns:43px 1fr;gap:15px;padding:16px;border:1px solid rgba(255,255,255,.11);border-radius:13px;background:rgba(255,255,255,.035)}
.admission-step-number{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;color:#2b220c;background:var(--gold);font-size: 16px;font-weight:900}
.admission-step h3{margin:1px 0 3px;font-family:"Manrope",sans-serif;font-size:18px}
.admission-step p{margin:0;color:rgba(255,255,255,.6);font-size: 16px;line-height:1.7}
.admission-visual{position:relative;min-height:630px}
.admission-photo{position:absolute;inset:0 0 55px 55px;border-radius:27px;background:#607287;overflow:hidden}
.admission-photo img{width:100%;height:100%;object-fit:cover}
.admission-note{position:absolute;left:0;bottom:0;width:230px;padding:22px;border-radius:17px;background:var(--white);color:var(--blue-ink);box-shadow:var(--shadow)}
.admission-note small{display:block;color:var(--blue);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.admission-note strong{display:block;margin-top:6px;font-family:"Manrope",sans-serif;font-size:22px;line-height:1.12}

.news{background:var(--white)}
.news-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:52px}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}
.news-card{overflow:hidden;border:1px solid var(--border);border-radius:19px;background:var(--white);transition:transform .25s ease,box-shadow .25s ease}
.news-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.news-photo{height:230px;overflow:hidden;border-bottom:1px solid var(--border)}
.news-photo img{width:100%;height:100%;object-fit:cover}
.news-body{padding:24px}
.news-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#8a94a1;font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.news-category{color:var(--blue)}
.news-card h3{margin:15px 0 10px;color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:23px;line-height:1.2}
.news-card p{margin:0 0 18px;color:var(--muted);font-size: 16px;line-height:1.8}
.news-link{color:var(--blue);font-size: 16px;font-weight:900}

.faq{background:var(--cream)}
.faq-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:90px;align-items:start}
.faq-list{display:grid;gap:10px}
.faq-item{overflow:hidden;border:1px solid var(--border);border-radius:13px;background:var(--white)}
.faq-question{width:100%;border:0;background:none;padding:21px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--blue-ink);text-align:left;font-size: 16px;font-weight:800}
.faq-plus{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:50%;background:#f2f5f8;color:var(--blue);font-size:17px;transition:transform .25s ease}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-answer-content{padding:0 22px 22px;color:var(--muted);font-size: 16px;line-height:1.85}
.faq-item.active .faq-plus{transform:rotate(45deg);background:var(--blue-soft)}

.contact{background:var(--white)}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:stretch}
.contact-shell{overflow:hidden;display:grid;grid-template-columns:.85fr 1.15fr;border-radius:28px;background:var(--blue-ink)}
.contact-copy{padding:60px 55px}
.contact-copy .eyebrow{color:var(--gold-2)}
.contact-copy .section-title{color:var(--white);font-size:clamp(2.4rem,4vw,4rem)}
.contact-copy .section-intro{color:rgba(255,255,255,.65);font-size: 16px}
.contact-details{display:grid;gap:18px;margin-top:35px}
.contact-detail{display:grid;grid-template-columns:38px 1fr;gap:13px}
.contact-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.07);color:var(--gold-2);font-size: 16px;font-weight:900}
.contact-detail small{display:block;color:rgba(255,255,255,.42);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.11em}
.contact-detail div:last-child{color:var(--white);font-size: 16px;line-height:1.7}
.contact-detail a:hover{color:var(--gold-2)}
.contact-map{position:relative;min-height:540px;background-size:cover;background-position:center}
.map-card{position:relative;min-height:480px;border-radius:18px;overflow:hidden;background-size:cover;background-position:center}
.map-overlay{position:absolute;left:25px;bottom:25px;background:rgba(0,0,60,.94);color:white;border-radius:12px;padding:20px;max-width:calc(100% - 50px)}
.map-overlay small{color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:1.5px;font-size: 16px;font-weight:800}
.map-overlay strong{display:block;margin-top:5px;font-family:"Manrope",sans-serif;font-size: 16px}

.contact-form-wrap{background:#fff;border-radius:22px;padding:44px;box-shadow:var(--shadow-sm);border:1px solid var(--border);max-width:820px;margin-inline:auto}
.contact-form-wrap h2{color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:26px;margin:0 0 8px}
.contact-form-wrap__sub{color:var(--muted);font-size: 16px;margin:0 0 28px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;gap:8px}
.field--full{grid-column:1 / -1}
.field label{font-size: 16px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#5f6b8c}
.field input,.field select,.field textarea{border:1px solid var(--border);padding:14px;border-radius:8px;background:#fbfcfe;color:var(--text);font-size: 16px;outline:none;transition:border-color .2s ease,box-shadow .2s ease;font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,0,248,.10)}
.field textarea{resize:vertical;min-height:130px}
.form-honeypot{position:absolute;left:-9999px;height:1px;overflow:hidden}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:24px}
.form-actions__note{margin:0;font-size: 16px;color:var(--muted)}
.form-actions__note a{color:var(--blue);border-bottom:1px solid currentColor;font-weight:700}
.form-notice{padding:16px 20px;border-radius:10px;margin-bottom:26px;display:flex;gap:12px;align-items:flex-start;font-size: 16px}
.form-notice--ok{background:#e7f5ec;color:#1e5c3a}
.form-notice--err{background:#fdecea;color:#a82e22}
.form-notice a{color:inherit;text-decoration:underline}

.enroll-form-wrap{background:#fff;border-radius:22px;padding:44px;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.enroll-form-wrap h2{color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:26px;margin:0 0 24px}

.final-cta{position:relative;padding:125px 0;overflow:hidden;text-align:center;background:linear-gradient(180deg,#fbfaf6,#f3f1e8)}
.final-cta::before,.final-cta::after{position:absolute;content:"";border:1px solid rgba(0,0,168,.07);border-radius:50%}
.final-cta::before{width:500px;height:500px;top:-390px;left:-120px}
.final-cta::after{width:650px;height:650px;right:-250px;bottom:-530px}
.final-cta-inner{position:relative;z-index:2}
.final-cta .section-title{font-size:clamp(3rem,6.5vw,6rem);max-width:900px;margin-inline:auto;line-height:.95}
.final-cta p{max-width:620px;margin:24px auto 32px;color:var(--muted);font-size: 16px}
.final-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}

footer{background:#05061a;color:rgba(255,255,255,.72)}
.footer-main{display:grid;grid-template-columns:1.35fr .7fr .8fr 1fr;gap:50px;padding:78px 0 55px}
.footer-brand{max-width:370px}
.footer-brand .logo-box{border-color:rgba(255,255,255,.25)}
.footer-brand p{margin:22px 0 22px;color:rgba(255,255,255,.45);font-size: 16px;line-height:1.85}
.footer-title{margin-bottom:18px;color:var(--white);font-size: 16px;font-weight:800;text-transform:uppercase;letter-spacing:.13em}
.footer-links{display:grid;gap:10px}
.footer-links a{color:rgba(255,255,255,.55);font-size: 16px}
.footer-links a:hover{color:var(--white)}
.footer-newsletter p{margin:0 0 15px;color:rgba(255,255,255,.42);font-size: 16px;line-height:1.7}
.newsletter-form{display:flex;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.05)}
.newsletter-form input{flex:1;width:100%;min-width:0;padding:13px;border:0;outline:0;color:var(--white);background:transparent;font-size: 16px}
.newsletter-form input::placeholder{color:rgba(255,255,255,.35)}
.newsletter-form button{padding:0 18px;border:0;background:var(--gold);color:#2e240b;font-size: 16px;font-weight:900}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08)}
.footer-bottom-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap}
.copyright{color:rgba(255,255,255,.36);font-size: 16px}
.copyright a:hover{color:var(--white)}
.legal{display:flex;flex-wrap:wrap;gap:17px}
.legal a{color:rgba(255,255,255,.36);font-size: 16px}
.legal a:hover{color:var(--white)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.delay-1{transition-delay:.08s}
.delay-2{transition-delay:.16s}
.delay-3{transition-delay:.24s}

.page-hero{padding:160px 0 70px;background:linear-gradient(120deg,#f6f8ff 0%,#eef0ff 100%);border-bottom:1px solid var(--border)}
.page-hero__title{color:var(--blue-ink);font-family:"Manrope",sans-serif;font-size:clamp(2.6rem,6vw,5.4rem);line-height:1.02;letter-spacing:-.035em;margin:14px 0 22px;max-width:20ch}
.page-hero__lead{font-size:clamp(15px,1.3vw,17px);max-width:66ch;color:var(--muted);line-height:1.8}

.crumbs{padding:22px 0 0;font-size: 16px;color:var(--muted)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px}
.crumbs a{color:var(--muted);border-bottom:1px solid transparent}
.crumbs a:hover{border-bottom-color:currentColor;color:var(--blue)}
.crumbs__sep{opacity:.5}

.prose-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:80px;align-items:start}
.prose-body h2{font-family:"Manrope",sans-serif;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.025em;color:var(--blue-ink);margin:0 0 18px}
.prose-body p{font-size:16px;line-height:1.9;color:var(--muted);margin-bottom:1.2em}
.prose-aside{position:sticky;top:120px}
.about-main-photo--aside{position:relative;inset:auto;height:auto;aspect-ratio:4/5;border-radius:22px;overflow:hidden}
.about-main-photo--aside img{width:100%;height:100%;object-fit:cover}

.statement-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.statement{background:#fff;border:1px solid var(--border);border-radius:16px;padding:34px}
.statement h3{font-family:"Manrope",sans-serif;font-size:24px;color:var(--blue-ink);margin-bottom:14px;letter-spacing:-.02em}
.statement p{color:var(--muted);font-size: 16px;line-height:1.85}

.values-list-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px}
.value-chip{display:flex;align-items:center;gap:16px;padding:20px;background:#fff;border:1px solid var(--border);border-radius:14px;transition:transform .25s ease,box-shadow .25s ease}
.value-chip:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.value-chip__letter{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;background:var(--blue);color:#fff;font-family:"Manrope",sans-serif;font-size:22px;font-weight:700;border-radius:10px}
.value-chip__label{font-family:"Manrope",sans-serif;font-size:17px;color:var(--blue-ink);font-weight:600}

.gallery-grid{display:grid;grid-template-columns:1.1fr .75fr .75fr;grid-template-rows:280px 280px;gap:14px}
.gallery-item{position:relative;overflow:hidden;border-radius:18px;background:#e1e7ee;transition:transform .3s ease}
.gallery-item:hover{transform:scale(.985)}
.gallery-item img{width:100%;height:100%;object-fit:cover}
.gallery-item.tall{grid-row:span 2}
.gallery-item.wide{grid-column:span 2}
.gallery-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:40px 19px 17px;color:var(--white);background:linear-gradient(to top,rgba(0,0,60,.68),transparent);font-size: 16px;font-weight:700}

.article{padding-bottom:120px}
.article__hero{padding:160px 0 0}
.article__hero-inner{max-width:900px;margin-inline:auto;padding-inline:var(--gutter)}
.article__title{font-family:"Manrope",sans-serif;font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.02;letter-spacing:-.035em;color:var(--blue-ink);margin:14px 0 22px}
.article__lede{font-size:clamp(16px,1.4vw,19px);color:var(--muted);line-height:1.7}
.article__figure{margin:60px auto 0;max-width:var(--container);padding-inline:var(--gutter)}
.article__figure img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:22px}
.article__body{max-width:780px;margin-inline:auto;padding-top:60px}
.article__body h2{font-family:"Manrope",sans-serif;font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.02em;color:var(--blue-ink);margin:40px 0 16px}
.article__body p{font-size:17px;line-height:1.85;color:var(--muted);margin-bottom:1.15em}
.article__body ul{margin:0 0 1.2em}
.article__body ul li{padding-left:22px;position:relative;margin-bottom:10px;font-size:16px;color:var(--muted);line-height:1.8}
.article__body ul li::before{content:"—";position:absolute;left:0;color:var(--gold);font-weight:700}
.article__body a{color:var(--blue);border-bottom:1px solid currentColor;font-weight:600}
.article__body strong{color:var(--blue-ink)}

:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

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

@media (max-width:1120px){
    .nav-links{gap:17px}
    .hero-side-card{right:24px}
    .about-grid,.activity-layout,.admissions-layout,.faq-layout,.contact-shell{grid-template-columns:1fr;gap:55px}
    .contact-shell{border-radius:24px}
    .footer-main{grid-template-columns:1.2fr .8fr .8fr}
    .footer-newsletter{grid-column:span 3;max-width:450px}
    .values-list-grid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:960px){
    .utility-right{display:none}
    .nav-links{display:none;position:fixed;top:0;right:0;bottom:0;width:min(360px,88vw);padding:120px 28px 40px;flex-direction:column;align-items:stretch;gap:4px;background:var(--blue-ink);box-shadow:-20px 0 50px rgba(0,0,0,.22);z-index:60}
    .nav-links.open{display:flex}
    .nav-links a{padding:13px 0;color:var(--white) !important}
    .nav-button{justify-content:center;margin-top:10px}
    .mobile-toggle{position:relative;z-index:80;display:block}
    .hero-side-card{display:none}
    .hero-controls{right:25px}
    .hero{min-height:760px}
    .facts{grid-template-columns:repeat(2,1fr)}
    .fact:nth-child(2){border-right:0}
    .fact:nth-child(-n+2){border-bottom:1px solid var(--border)}
    .about-grid,.activity-layout,.admissions-layout,.faq-layout,.contact-shell,.dark-band-grid{grid-template-columns:1fr}
    .about-media{min-height:570px}
    .academic-heading,.gallery-top,.news-heading{display:block}
    .academic-heading .section-intro,.news-heading .btn{margin-top:20px}
    .academic-card,.academic-card.featured{grid-column:span 6}
    .life-grid{grid-template-columns:1fr}
    .life-small-stack{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
    .values-grid{grid-template-columns:repeat(2,1fr)}
    .admission-visual{min-height:520px}
    .contact-map{min-height:390px}
    .activity-groups--wide{grid-template-columns:1fr}
}

@media (max-width:700px){
    .container{width:min(calc(100% - 28px),var(--container))}
    .section{padding:85px 0}
    .utility-bar{display:none}
    .site-header,.site-header--over{top:0}
    .page-hero{padding:100px 0 55px}
    .hero{min-height:740px}
    .hero-content{padding-top:110px;padding-bottom:60px}
    .hero h1{font-size:clamp(3rem,14vw,5rem)}
    .hero-description{font-size: 16px;line-height:1.8}
    .hero-meta{gap:17px}
    .hero-meta-item strong{font-size:20px}
    .hero-meta-item span{font-size: 16px}
    .hero-actions{display:grid}
    .hero-actions .btn{width:100%}
    .hero-controls{right:15px;bottom:18px}
    .fact-wrap{margin-top:-22px}
    .facts{grid-template-columns:1fr}
    .fact,.fact:nth-child(2),.fact:nth-child(-n+2){border-right:0;border-bottom:1px solid var(--border)}
    .fact:last-child{border-bottom:0}
    .about-media{min-height:440px}
    .about-main-photo{right:25px;bottom:60px}
    .about-small-photo{width:170px;height:150px}
    .about-badge{left:-3px;bottom:75px;width:145px;padding:17px}
    .pillar-grid{grid-template-columns:1fr}
    .dark-stat-stack{grid-template-columns:repeat(2,1fr)}
    .academic-card,.academic-card.featured{grid-column:span 12}
    .life-large{min-height:420px}
    .life-small-stack{grid-template-columns:1fr}
    .activities-photo{min-height:450px}
    .activity-floating{right:14px;bottom:14px;width:200px}
    .values-grid{grid-template-columns:1fr}
    .values-list-grid{grid-template-columns:1fr}
    .admission-visual{min-height:430px}
    .admission-photo{inset:0 0 45px 25px}
    .admission-note{width:195px;padding:17px}
    .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 220px 220px}
    .gallery-item.tall{grid-row:span 2}
    .gallery-item.wide{grid-column:span 2}
    .news-grid{grid-template-columns:1fr}
    .contact-copy{padding:45px 25px}
    .contact-map{min-height:280px}
    .contact-form-wrap,.enroll-form-wrap{padding:28px 22px;border-radius:18px}
    .form-grid{grid-template-columns:1fr}
    .final-cta{padding:95px 0}
    .final-actions{display:grid}
    .final-actions .btn{width:100%}
    .footer-main{grid-template-columns:1fr 1fr;gap:38px 25px;padding:55px 0 40px}
    .footer-brand,.footer-newsletter{grid-column:span 2}
    .footer-bottom-inner{padding:18px 0;align-items:flex-start;flex-direction:column}
    .prose-grid{grid-template-columns:1fr;gap:40px}
    .prose-aside{position:static}
    .about-main-photo--aside{aspect-ratio:16/9}
    .statement-grid{grid-template-columns:1fr}
}

@media (max-width:430px){
    .brand-copy span{display:none}
    .brand-copy strong{font-size:16px}
    .logo-box{width:45px;height:45px}
    .brand-logo{max-height:44px}
    .dark-stat-stack{grid-template-columns:1fr}
    .gallery-grid{grid-template-columns:1fr;grid-template-rows:250px 220px 220px 220px}
    .gallery-item.tall,.gallery-item.wide{grid-row:auto;grid-column:auto}
    .footer-main{grid-template-columns:1fr}
    .footer-brand,.footer-newsletter{grid-column:span 1}
}

/* ═══════════════════════════════════════════════════════════════
   BRAND REFINEMENTS — sharp corners · ken burns heroes · spacing
   ═══════════════════════════════════════════════════════════════ */

/* ─── ZERO BORDER RADIUS EVERYWHERE — sharp, editorial ─── */
*, *::before, *::after {
    border-radius: 0 !important;
}

/* ─── Typography — Manrope headings, Inter body, no italics ─── */
h1, h2, h3, h4, .section-title, .page-hero__title, .article__title,
.hero h1, .brand-copy strong, .academic-card h3, .value-card h3,
.statement h3, .news-card h3, .admission-note strong, .fact strong,
.dark-stat strong, .value-chip__label {
    font-family: "Manrope", sans-serif !important;
    font-style: normal !important;
    font-weight: 700;
    letter-spacing: -.03em;
}
body, p, a, button, input, textarea, select, li {
    font-family: "Inter", sans-serif;
}
em, i:not([class*="fa"]) {
    font-style: normal !important;
}

/* ─── Homepage hero — 10px frame on all sides ─── */
.hero {
    padding: 10px;
    background: var(--blue-ink);
}
.hero-slides {
    inset: 10px;
}
.hero::after,
.hero::before {
    inset: 10px;
}
.hero-content {
    padding-inline: 10px;
}

/* ─── Page hero — every page now has a ken burns background ─── */
.page-hero {
    position: relative;
    padding: 180px 0 100px;
    background: var(--blue-ink) !important;
    border-bottom: 0;
    overflow: hidden;
    color: #fff;
}
.page-hero::before {
    content: "";
    position: absolute;
    inset: -5%;
    background-image: var(--hero-bg, url('https://images.unsplash.com/photo-1523050854058-8df90110c9f1?auto=format&fit=crop&w=2400&q=85'));
    background-size: cover;
    background-position: center;
    animation: pageKenBurns 20s ease-in-out infinite alternate;
    z-index: 0;
    will-change: transform;
}
.page-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,60,.88) 0%, rgba(0,0,60,.72) 45%, rgba(0,0,60,.42) 100%);
    z-index: 1;
}
.page-hero__inner {
    position: relative;
    z-index: 2;
    max-width: 900px;
}
.page-hero .eyebrow {
    color: var(--gold-2);
}
.page-hero .eyebrow::before {
    background: var(--gold-2);
}
.page-hero__title {
    color: #fff;
    font-size: clamp(2.4rem, 5.5vw, 5rem);
    line-height: 1.02;
    margin: 16px 0 22px;
}
.page-hero__lead {
    color: rgba(255,255,255,.82);
    font-size: clamp(15px, 1.3vw, 17px);
    max-width: 66ch;
    line-height: 1.8;
}

@keyframes pageKenBurns {
    0%   { transform: scale(1.02) translate(0, 0); }
    100% { transform: scale(1.15) translate(-1.5%, -1%); }
}
@media (prefers-reduced-motion: reduce) {
    .page-hero::before { animation: none; transform: scale(1.05); }
}

/* ─── Homepage hero inner padding (10px on all sides) ─── */
@media (min-width: 901px) {
    .hero {
        padding: 10px;
    }
    .hero .hero-content {
        padding-left: calc(10px + var(--gutter));
    }
}

/* ─── Contact section — full mobile fix ─── */
.contact-grid {
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: 70px;
    align-items: stretch;
}
.contact-content h2 {
    font-size: clamp(1.8rem, 4vw, 3.2rem);
    line-height: 1.08;
    letter-spacing: -.03em;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}
.contact-content p {
    font-size: 16px;
    line-height: 1.85;
    word-wrap: break-word;
}
.contact-list {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--border);
    margin-top: 35px;
}
.contact-item {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 16px;
    padding: 20px 0;
    border-bottom: 1px solid var(--border);
    align-items: start;
}
.contact-item-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    background: var(--blue-soft);
    color: var(--blue);
    font-size: 16px;
}
.contact-item small {
    display: block;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 4px;
}
.contact-item strong {
    display: block;
    color: var(--blue-ink);
    font-size: 16px;
    line-height: 1.55;
    font-weight: 600;
    word-wrap: break-word;
    overflow-wrap: anywhere;
}
.contact-item strong a {
    color: inherit;
    border-bottom: 1px solid transparent;
    transition: border-color .2s;
}
.contact-item strong a:hover {
    border-bottom-color: var(--blue);
}
.map-card {
    min-height: 500px;
    background-size: cover;
    background-position: center;
    position: relative;
}

@media (max-width: 1000px) {
    .contact-grid {
        grid-template-columns: 1fr !important;
        gap: 44px !important;
    }
    .contact-content h2 {
        font-size: clamp(1.6rem, 6vw, 2.4rem);
    }
    .map-card {
        min-height: 340px;
    }
}

@media (max-width: 560px) {
    .contact-content h2 {
        font-size: clamp(1.45rem, 7vw, 2rem);
        line-height: 1.15;
    }
    .contact-item {
        grid-template-columns: 38px 1fr;
        gap: 14px;
        padding: 18px 0;
    }
    .contact-item-icon {
        width: 38px;
        height: 38px;
        font-size: 16px;
    }
    .contact-item strong {
        font-size: 16px;
    }
    .map-card {
        min-height: 260px;
    }
}

/* ─── Curriculum table — branded, sharp, responsive ─── */
.curriculum-table-wrap {
    margin: 50px 0 0;
    border: 1px solid var(--border);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 20px 60px rgba(0,0,120,.06);
}
.curriculum-table {
    width: 100%;
    border-collapse: collapse;
    font-family: "Inter", sans-serif;
    font-size: 16px;
    background: #fff;
}
.curriculum-table caption {
    caption-side: top;
    text-align: left;
    padding: 32px 32px 16px;
    font-family: "Manrope", sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--blue-ink);
    letter-spacing: -.02em;
    background: #fff;
}
.curriculum-table thead th {
    padding: 22px 24px;
    background: var(--blue-ink);
    color: #fff;
    text-align: left;
    font-family: "Inter", sans-serif;
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .14em;
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.curriculum-table thead th:first-child {
    width: 20%;
    background: var(--blue-deep);
}
.curriculum-table thead th:last-child {
    width: 16%;
    text-align: right;
    background: var(--blue-deep);
}
.curriculum-table tbody td {
    padding: 22px 24px;
    color: var(--text);
    border-bottom: 1px solid var(--border);
    vertical-align: top;
    line-height: 1.7;
    font-size: 16px;
}
.curriculum-table tbody tr:last-child td {
    border-bottom: 0;
}
.curriculum-table tbody tr:hover td:not(.category-header) {
    background: #fbfaff;
}
.curriculum-table td.category-header {
    background: var(--blue-soft);
    color: var(--blue-ink);
    font-family: "Manrope", sans-serif;
    font-weight: 700;
    font-size: 17px;
    text-align: center;
    vertical-align: middle;
    letter-spacing: -.02em;
    border-right: 4px solid var(--gold);
    border-bottom: 1px solid var(--border);
    line-height: 1.3;
}
.curriculum-table tbody tr:hover td.category-header {
    background: #e6e9ff;
}
.curriculum-table tbody td:last-child {
    text-align: right;
    white-space: nowrap;
    color: var(--muted);
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    vertical-align: middle;
}
.curriculum-table tbody tr:nth-child(even) td:not(.category-header) {
    background: #fbfaf7;
}

@media (max-width: 800px) {
    .curriculum-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .curriculum-table {
        min-width: 720px;
        font-size: 16px;
    }
    .curriculum-table caption {
        padding: 22px 20px 12px;
        font-size: 17px;
    }
    .curriculum-table thead th,
    .curriculum-table tbody td {
        padding: 14px 16px;
    }
    .curriculum-table td.category-header {
        font-size: 16px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   FINAL BRAND PASS — flush-left heroes, 16px minimum everywhere
   ═══════════════════════════════════════════════════════════════ */

/* ─── MINIMUM 16PX FONT SIZE — hard floor ─── */
body, p, a, li, span:not(.hero-slide-number):not(.arrow),
label, input, textarea, select, button, small, em, i:not([class*="fa"]),
.eyebrow, .section-intro, .section-copy, .fact span, .fact-label,
.subject, .news-meta, .news-category, .news-link, .academic-index,
.academic-link, .value-number, .activity-icon, .contact-item small,
.contact-item strong, .contact-detail small, .form-actions__note,
.footer-title, .footer-links a, .copyright, .legal a, .utility-label,
.brand-copy span, .crumbs, .form-notice, .admission-step p,
.admission-step-number, .dark-stat span, .activity-floating span,
.hero-meta-item span, .hero-kicker, .life-caption small,
.map-overlay small, .admission-note small, .contact-icon,
.hero-side-card small, .hero-side-card p, .hero-controls,
.faq-answer-content, .contact-form-wrap__sub {
    font-size: max(16px, 1em) !important;
}

/* Actually — simpler: enforce with two declarations that browsers accept */
body { font-size: 16px; }
p, li, a, span, small, label, input, textarea, select, button {
    /* anything that inherited a smaller size now floored at 16px via the direct rule below */
}

/* Direct rule that actually works */
p, li, a, small, label, .fact span, .fact-label, .subject,
.news-meta, .news-category, .news-link, .academic-index,
.academic-link, .value-number, .activity-icon, .contact-item small,
.contact-item strong, .contact-detail small, .form-actions__note,
.footer-title, .footer-links a, .copyright, .legal a, .utility-label,
.brand-copy span, .form-notice, .admission-step p,
.dark-stat span, .activity-floating span, .hero-meta-item span,
.life-caption small, .map-overlay small, .admission-note small,
.hero-side-card small, .hero-side-card p, .faq-answer-content,
.contact-form-wrap__sub, .section-intro, .section-copy,
.article__lede, .article__body p, .article__body li {
    font-size: 16px;
}

.eyebrow { font-size: 16px !important; letter-spacing: .08em; }
.hero-kicker { font-size: 16px !important; letter-spacing: .06em; }
.hero-meta-item span { font-size: 16px !important; letter-spacing: .04em; }
.brand-copy span { font-size: 16px !important; letter-spacing: .02em; }
.utility-label { font-size: 16px !important; letter-spacing: .02em; }
.fact-label { font-size: 16px !important; letter-spacing: .04em; }
.footer-title { font-size: 16px !important; letter-spacing: .04em; }
.subject { font-size: 16px !important; padding: 8px 12px; }
.news-meta, .news-category { font-size: 16px !important; }
.dark-stat span, .life-caption small, .map-overlay small,
.admission-note small, .hero-side-card small { font-size: 16px !important; }

/* ─── ALL HEROES — text flush left, 10px gap ─── */

/* Homepage hero */
.hero {
    padding: 10px !important;
}
.hero .hero-content,
.hero .container.hero-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 10px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
}
.hero .hero-content-inner {
    max-width: 860px;
    text-align: left;
    margin-left: 0;
}

/* Every inner page hero */
.page-hero {
    padding: 180px 0 100px !important;
    text-align: left;
}
.page-hero .container,
.page-hero .container.page-hero__inner,
.page-hero__inner {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 10px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
    text-align: left;
}

/* Article hero (blog pages) */
.article__hero {
    padding: 160px 0 0 !important;
    text-align: left;
}
.article__hero-inner,
.article .container.article__hero-inner {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 10px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
    text-align: left;
}
.article__figure {
    margin: 60px auto 0 !important;
    max-width: var(--container);
    padding-inline: 20px !important;
}

/* Left-align headings and eyebrow inside every hero */
.hero h1,
.hero .hero-description,
.hero .hero-actions,
.hero .hero-meta,
.hero .hero-kicker,
.page-hero__title,
.page-hero__lead,
.page-hero .eyebrow,
.article__title,
.article__lede,
.article__hero-inner .eyebrow {
    text-align: left !important;
    margin-left: 0 !important;
}

/* Eyebrow decoration line stays left of the label */
.eyebrow {
    justify-content: flex-start;
}

/* ─── Remove the previous auto-centering from hero title max-widths ─── */
.hero h1 { max-width: 100%; }
.page-hero__title { max-width: 100%; }
.article__title { max-width: 100%; }

/* ─── Mobile — same treatment ─── */
@media (max-width: 900px) {
    .hero { padding: 10px !important; }
    .hero .hero-content { padding-left: 10px !important; padding-right: 10px !important; }
    .page-hero { padding: 120px 0 70px !important; }
    .page-hero .container,
    .page-hero__inner { padding-left: 10px !important; padding-right: 10px !important; }
    .article__hero-inner { padding-left: 10px !important; padding-right: 10px !important; }
}

@media (max-width: 600px) {
    .page-hero { padding: 100px 0 55px !important; }
    .page-hero__title { font-size: clamp(2rem, 9vw, 2.8rem) !important; }
    .hero h1 { font-size: clamp(2.6rem, 11vw, 4rem) !important; letter-spacing: -.03em !important; }
}

/* ═══════════════════════════════════════════════════════════════
   FONT HIERARCHY — 13 / 15 / 16 (not everything at 16)
   ═══════════════════════════════════════════════════════════════ */

/* Tiny labels & metadata — 13px */
.eyebrow,
.hero-kicker,
.fact-label,
.footer-title,
.utility-label,
.brand-copy span,
.hero-meta-item span,
.news-meta,
.news-category,
.subject,
.contact-item small,
.contact-detail small,
.admission-step-number,
.life-caption small,
.map-overlay small,
.admission-note small,
.hero-side-card small,
.value-number,
.academic-index,
.copyright,
.legal a,
.form-actions__note,
.form-notice {
    font-size: 13px !important;
    letter-spacing: .06em;
}

/* Secondary reading — 15px */
.nav-links a,
.btn,
button,
.footer-links a,
.contact-item strong,
.contact-detail div:last-child,
.news-link,
.academic-link,
.section-copy,
.form-note,
.newsletter-form input,
.newsletter-form button,
.faq-answer-content,
.faq-question,
.article__body p,
.article__body li,
.contact-form-wrap__sub {
    font-size: 15px !important;
}

/* Body & long-form — 16px */
body,
p,
li,
.field input,
.field select,
.field textarea,
.field label,
.section-intro,
.hero-description,
.article__lede,
.portal-card__lead,
.contact-content p {
    font-size: 16px !important;
}

/* ═══════════════════════════════════════════════════════════════
   NAV — Parent Portal outline button
   ═══════════════════════════════════════════════════════════════ */

.nav-button--outline {
    background: transparent !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.45) !important;
    margin-right: 8px;
}
.nav-button--outline:hover {
    background: rgba(255,255,255,.12) !important;
    border-color: rgba(255,255,255,.75) !important;
}
.site-header:not(.site-header--over) .nav-button--outline,
.scrolled .nav-button--outline {
    color: var(--blue-ink) !important;
    border-color: rgba(0,0,168,.3) !important;
}
.site-header:not(.site-header--over) .nav-button--outline:hover,
.scrolled .nav-button--outline:hover {
    background: var(--blue-soft) !important;
    border-color: var(--blue) !important;
}
@media (max-width: 960px) {
    .nav-button--outline {
        color: #fff !important;
        border-color: rgba(255,255,255,.45) !important;
        margin-right: 0;
        margin-bottom: 8px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   PARENT PORTAL — homepage section
   ═══════════════════════════════════════════════════════════════ */

.portal-section {
    background: var(--cream);
    padding: 100px 0;
}

.portal-card {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    background: var(--blue-ink);
    color: #fff;
    overflow: hidden;
    position: relative;
    border: 1px solid rgba(0,0,168,.15);
    box-shadow: 0 30px 80px rgba(0,0,120,.15);
}

.portal-card::before {
    content: "";
    position: absolute;
    width: 500px;
    height: 500px;
    top: -280px;
    right: -180px;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 50%;
    pointer-events: none;
}

.portal-card__copy {
    padding: 60px 55px;
    position: relative;
    z-index: 1;
}

.portal-card__copy .eyebrow { color: var(--gold-2); }
.portal-card__copy .eyebrow::before { background: var(--gold-2); }

.portal-card__copy .section-title {
    color: #fff;
    margin: 14px 0 18px;
    font-size: clamp(2rem, 3.6vw, 3rem);
}

.portal-card__lead {
    color: rgba(255,255,255,.78);
    margin: 0 0 32px;
    max-width: 52ch;
    line-height: 1.75;
}

.portal-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.portal-card__actions .btn-outline {
    color: #fff;
    border-color: rgba(255,255,255,.4);
    background: transparent;
}
.portal-card__actions .btn-outline:hover {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.7);
}

.portal-card__aside {
    background: var(--blue-deep);
    padding: 60px 50px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-left: 4px solid var(--gold);
}

.portal-card__aside-label {
    font-size: 13px !important;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gold-2);
    margin: 0 0 22px;
}

.portal-features {
    display: grid;
    gap: 14px;
}

.portal-features li {
    position: relative;
    padding-left: 26px;
    font-size: 16px !important;
    color: rgba(255,255,255,.88);
    line-height: 1.55;
}

.portal-features li::before {
    content: "→";
    position: absolute;
    left: 0;
    color: var(--gold);
    font-weight: 700;
}

@media (max-width: 1000px) {
    .portal-card { grid-template-columns: 1fr; }
    .portal-card__copy { padding: 48px 40px; }
    .portal-card__aside {
        padding: 40px;
        border-left: 0;
        border-top: 4px solid var(--gold);
    }
}

@media (max-width: 600px) {
    .portal-section { padding: 70px 0; }
    .portal-card__copy { padding: 36px 24px; }
    .portal-card__aside { padding: 32px 24px; }
    .portal-card__actions { flex-direction: column; }
    .portal-card__actions .btn { width: 100%; justify-content: center; }
    .portal-card__copy .section-title { font-size: 2rem; }
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER — portal action group
   ═══════════════════════════════════════════════════════════════ */

.footer-brand__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.footer-brand__actions .btn-outline-light {
    border-color: rgba(255,255,255,.3);
    color: rgba(255,255,255,.85);
}
.footer-brand__actions .btn-outline-light:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.6);
    color: #fff;
}

@media (max-width: 560px) {
    .footer-brand__actions { flex-direction: column; align-items: stretch; }
    .footer-brand__actions .btn { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════
   SIZE REFINEMENT — labels down to 12px, keep body at 16px
   ═══════════════════════════════════════════════════════════════ */

/* Small labels & metadata — 12px */
.eyebrow,
.hero-kicker,
.fact-label,
.footer-title,
.utility-label,
.brand-copy span,
.hero-meta-item span,
.news-meta,
.news-category,
.academic-index,
.value-number,
.contact-item small,
.contact-detail small,
.contact-icon,
.life-caption small,
.map-overlay small,
.admission-note small,
.hero-side-card small,
.admission-step-number,
.copyright,
.legal a,
.form-actions__note,
.section-copy,
.portal-card__aside-label {
    font-size: 12px !important;
    letter-spacing: .08em;
}

/* Small links — 14px */
.academic-link,
.news-link,
.footer-links a,
.faq-answer-content,
.faq-question,
.form-note,
.newsletter-form input,
.newsletter-form button,
.hero-side-card p,
.activity-floating span,
.contact-form-wrap__sub {
    font-size: 14px !important;
}

/* Subject chips — 13px, tight */
.subject {
    font-size: 13px !important;
    padding: 6px 10px;
    letter-spacing: 0;
}

/* Nav & buttons — 14px */
.nav-links a,
.btn,
button {
    font-size: 14px !important;
}

/* Contact meta — clear secondary tier */
.contact-item strong,
.contact-detail div:last-child {
    font-size: 15px !important;
}

/* Long-form body stays 16px */
body,
p,
li,
.section-intro,
.hero-description,
.article__lede,
.portal-card__lead,
.contact-content p,
.field input,
.field select,
.field textarea,
.field label,
.admission-step p,
.portal-features li {
    font-size: 16px !important;
}

/* Card headings slightly smaller so they don't shout */
.academic-card h3 { font-size: 24px !important; }
.value-card h3    { font-size: 20px !important; }
.news-card h3     { font-size: 20px !important; }
.activity-item h3 { font-size: 17px !important; }
.pillar h3        { font-size: 18px !important; }
.fact strong      { font-size: 22px !important; }
.dark-stat strong { font-size: 38px !important; }
.admission-note strong { font-size: 20px !important; }

/* Section titles — reduce the ceiling a touch so they don't dominate */
.section-title {
    font-size: clamp(2rem, 4.2vw, 3.6rem) !important;
}
.page-hero__title {
    font-size: clamp(2.2rem, 5vw, 4.2rem) !important;
}
.article__title {
    font-size: clamp(2rem, 4.4vw, 3.6rem) !important;
}
.final-cta .section-title {
    font-size: clamp(2.4rem, 5.5vw, 4.8rem) !important;
}
.hero h1 {
    font-size: clamp(2.8rem, 6.2vw, 5.6rem) !important;
    letter-spacing: -.035em !important;
}

/* ═══════════════════════════════════════════════════════════════
   FULL-WIDTH HERO — remove the 10px frame, edge-to-edge slideshow
   ═══════════════════════════════════════════════════════════════ */

.hero {
    padding: 0 !important;
    margin: 0 !important;
    background: var(--blue-ink);
}

/* Slides fill the entire hero, no inset */
.hero-slides {
    inset: 0 !important;
}

/* Overlay gradients fill the entire hero */
.hero::after,
.hero::before {
    inset: 0 !important;
}

/* Keep content padded away from the very edge, but the hero itself is full-bleed */
.hero .hero-content,
.hero .container.hero-content {
    padding-left: 10px !important;
    padding-right: 20px !important;
    padding-top: 170px !important;
    padding-bottom: 70px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}

/* Mobile — same, no frame */
@media (max-width: 900px) {
    .hero { padding: 0 !important; }
    .hero-slides { inset: 0 !important; }
    .hero::after,
    .hero::before { inset: 0 !important; }
    .hero .hero-content {
        padding-left: 10px !important;
        padding-right: 10px !important;
        padding-top: 110px !important;
        padding-bottom: 60px !important;
    }
}
