@font-face{font-family:"Poppins";src:url(../fonts/poppins-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-600.woff2) format("woff2");font-weight:600;font-display:swap}
@view-transition{navigation:auto}

:root{
  --blazer:#01175b;--sun:#860217;--ink:#1a2233;--muted:#5a6377;--line:#e3e7ef;--chalk:#f6f7fa;--paper:#fff;
  --gutter:clamp(16px,4vw,48px);--wide:1280px;--head:84px;--r:14px;
  --sans:"Poppins",system-ui,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 28px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.7 var(--sans);overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
body.is-locked{overflow:hidden}
img,video,svg,iframe,embed,object{max-width:100%}
img{height:auto;display:block}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.025em;line-height:1.12;margin:0;color:var(--blazer);text-wrap:balance}
h1{font-size:clamp(2rem,3.8vw,3.2rem)}
h2{font-size:clamp(1.4rem,2.2vw,1.85rem);letter-spacing:-.02em;line-height:1.2}
h3{font-size:clamp(1.02rem,1.3vw,1.15rem);letter-spacing:-.01em;line-height:1.35}
h4{font-size:1.05rem;letter-spacing:-.01em}
p{margin:0}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wrap{width:100%;max-width:calc(var(--wide) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(40px,6vw,80px)}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--blazer);color:#fff;padding:10px 16px}
.skip:focus{top:8px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:9px 24px;border-radius:999px;background:var(--blazer);color:#fff;font-weight:500;font-size:.96rem;text-decoration:none;border:1.5px solid transparent;transition:background-color .2s,color .2s,border-color .2s,transform .25s var(--ease);text-align:center}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(1,23,91,.16)}
.btn--sun{background:var(--sun);color:#fff}
.btn--white{background:#fff;color:var(--blazer)}
.btn--line{border-color:rgba(255,255,255,.7);background:none;color:#fff}
.btn--line:hover{background:#fff;color:var(--blazer)}
.btn--ghost{background:none;border-color:var(--blazer);color:var(--blazer)}
.btn--ghost:hover{background:var(--blazer);color:#fff}
.link{font-weight:500;color:var(--sun);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
.link:hover{color:var(--blazer)}
.link--light{color:#fff}
.link--light:hover{color:#fff;opacity:.8}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-block:24px}
.actions--center{justify-content:center}
.icon-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:var(--blazer)}
.icon-btn:hover{background:var(--chalk)}

/* Header */
.site-head{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}
.site-head__bar{display:flex;align-items:center;gap:12px;height:var(--head);max-width:calc(var(--wide) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.brand{flex:none;margin-right:auto}
.brand img{height:72px;width:auto;max-width:190px;object-fit:contain}
.site-head__tools{display:flex;align-items:center;gap:6px}
.nav-toggle{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.nav-toggle span{width:22px;height:2px;background:currentColor;transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav__top{cursor:pointer}
.nav__top svg .nav__h,.nav__top svg .nav__v{display:none}
.social{display:flex;gap:4px}
.social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%}
.social a:hover{background:rgba(255,255,255,.14)}

@media (max-width:1179.98px){
  .nav{position:fixed;inset:calc(var(--head) + 1px) 0 0;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);overflow:hidden;visibility:hidden;opacity:0;transition:opacity .22s,visibility .22s}
  .nav.is-open{visibility:visible;opacity:1}
  .nav__list{flex:1;min-height:0;width:100%;max-width:640px;margin-inline:auto;padding:10px var(--gutter);overflow-y:auto;overscroll-behavior:contain}
  .nav__top{display:grid;grid-template-columns:54px minmax(0,1fr) 16px;align-items:center;gap:14px;width:100%;min-height:72px;padding:9px 0;border-bottom:1px solid var(--line);color:var(--blazer);font-size:1.08rem;font-weight:600;letter-spacing:-.01em;text-align:left;text-decoration:none}
  .nav__item:last-child .nav__top{border-bottom:0}
  .nav.is-open .nav__top{animation:menu-in .34s var(--ease) both;animation-delay:calc(var(--i,0)*28ms)}
  .nav__thumb{display:block;width:54px;height:54px;overflow:hidden;border-radius:14px;background:var(--chalk)}
  .nav__thumb img{display:block;width:100%;height:100%;object-fit:cover}
  .nav__thumb--icon{display:grid;place-items:center;color:var(--blazer)}
  .nav__top>svg{width:14px;height:14px;color:#8d96aa;transform:rotate(-90deg)}
  .mega{position:absolute;inset:0;z-index:2;display:block;padding:0 0 calc(148px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:var(--paper);visibility:hidden;transform:translateX(100%);transition:transform .32s var(--ease),visibility .32s}
  .nav__top[aria-expanded=true]+.mega{visibility:visible;transform:none}
  .mega__back{position:sticky;top:0;z-index:2;order:-2;display:flex;align-items:center;gap:10px;width:100%;min-height:60px;padding:0 var(--gutter);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);color:var(--blazer);font-size:1.08rem;font-weight:600;text-align:left}
  .mega__back svg{width:20px;height:20px;flex:none}
  .mega__links,.mega__card{width:calc(100% - 2*var(--gutter));max-width:calc(640px - 2*var(--gutter));margin-inline:auto}
  .mega__card{position:relative;order:-1;display:block;margin-top:14px;overflow:hidden;border-radius:var(--r);background:var(--blazer);color:#fff;text-decoration:none}
  .mega__img{display:block;aspect-ratio:21/9}
  .mega__img img{display:block;width:100%;height:100%;object-fit:cover}
  .mega__card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(1,23,91,.82),rgba(1,23,91,0) 62%)}
  .mega__card strong{position:absolute;left:16px;right:16px;bottom:12px;z-index:1;font-weight:600}
  .mega{display:flex;flex-direction:column}
  .mega__links{margin-top:8px}
  .mega__links a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;border-bottom:1px solid var(--line);color:var(--ink);font-weight:500;text-decoration:none}
  .mega__links li:last-child a{border-bottom:0}
  .mega__links a::after{content:"";flex:none;width:8px;height:8px;margin-right:4px;border-top:1.6px solid #8d96aa;border-right:1.6px solid #8d96aa;transform:rotate(45deg)}
  .mega__links a[aria-current]{color:var(--sun);font-weight:600}
  .nav__extra{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;padding:12px var(--gutter) calc(14px + env(safe-area-inset-bottom));background:var(--paper);box-shadow:0 -10px 26px rgba(1,23,91,.07)}
  .nav__extra .btn{width:100%;background:var(--sun);border-color:var(--sun);color:#fff}
  .nav__contact{display:contents}
  .nav__contact a{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:var(--chalk);color:var(--blazer);font-size:0;text-decoration:none}
  .nav__contact a::before{content:"";width:20px;height:20px;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
  .nav__contact li:first-child a{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M6 3h3l2 5-2.500 1.500a12 12 0 0 0 6 6L16 13l5 2v3a3 3 0 0 1-3.200 3A15.500 15.500 0 0 1 3 6.200 3 3 0 0 1 6 3z'/%3E%3C/svg%3E")}
  .nav__contact li:last-child a{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 6h18v12H3zM3 7l9 7 9-7'/%3E%3C/svg%3E")}
  .nav__contact li{display:block}
  .nav__extra .social{grid-column:1/-1;justify-content:center;color:var(--blazer)}
  .site-head__apply{display:none}
}
@keyframes menu-in{from{opacity:0;transform:translateY(10px)}}
@media (min-width:1180px){.nav__thumb,.mega__back{display:none}}
@media (min-width:480px) and (max-width:1179.98px){.site-head__apply{display:inline-flex;min-height:44px;padding-block:6px}}
@media (min-width:1180px){
  .site-head__bar{gap:24px}
  .brand{margin-right:0}
  .nav{flex:1;display:flex;justify-content:center}
  .nav__extra,.nav-toggle{display:none}
  .nav__list{display:flex;gap:4px}
  .nav__top{position:relative;display:flex;align-items:center;gap:6px;height:var(--head);padding:0 12px;text-decoration:none;font-weight:500;font-size:.95rem;white-space:nowrap}
  .nav__top::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--sun);transform:scaleX(0);transform-origin:0 50%;transition:transform .25s var(--ease)}
  .nav__top:hover::after,.nav__top[aria-expanded=true]::after{transform:scaleX(1)}
  .nav__top svg{transition:transform .2s}
  .nav__top[aria-expanded=true] svg{transform:rotate(180deg)}
  .mega{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .25s var(--ease),visibility .2s}
  .mega>*{max-width:var(--wide)}
  .nav__top[aria-expanded=true]+.mega{visibility:visible;opacity:1;transform:none}
  .mega{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;padding:32px max(var(--gutter),calc((100% - var(--wide))/2))}
  .mega__links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 24px;align-content:start}
  .mega__links a{display:block;padding:9px 0;font-size:1.02rem;font-weight:500;color:var(--blazer);text-decoration:none;border-bottom:1px solid var(--line);transition:color .15s,padding-left .2s var(--ease)}
  .mega__links a:hover,.mega__links a[aria-current]{color:var(--sun);padding-left:6px}
  .mega__card{position:relative;display:block;overflow:hidden;aspect-ratio:16/10;border-radius:var(--r);background:var(--blazer);color:#fff;text-decoration:none}
  .mega__img,.mega__img img{display:block;width:100%;height:100%}
  .mega__img img{object-fit:cover;transition:transform .6s var(--ease)}
  .mega__card:hover img{transform:scale(1.05)}
  .mega__card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(1,23,91,.78),rgba(1,23,91,0) 58%)}
  .mega__card strong{position:absolute;left:16px;right:16px;bottom:12px;z-index:1;font-weight:500}
  body.mega-open::after{content:"";position:fixed;inset:0;z-index:45;background:rgba(1,23,91,.28);pointer-events:none}
}

.search{width:min(640px,calc(100% - 32px));border:0;border-radius:var(--r);padding:28px;margin-top:12vh;color:var(--ink)}
.search::backdrop{background:rgba(1,23,91,.5)}
.search label{display:block;font-size:1.3rem;font-weight:600;color:var(--blazer);margin-bottom:12px;padding-right:40px}
.search__row{display:flex;flex-wrap:wrap;gap:10px}
.search input{flex:1 1 200px;min-width:0}
.search__close{position:absolute;top:18px;right:18px;width:40px;height:40px;display:grid;place-items:center}

/* Hero: full-screen photographs */
.cine{position:relative;display:flex;align-items:flex-end;height:100svh;min-height:620px;max-height:1200px;overflow:hidden;background:var(--blazer);color:#fff;isolation:isolate}
.cine::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(1,23,91,.62) 0,rgba(1,23,91,0) 24%),linear-gradient(0deg,rgba(1,23,91,.94) 0,rgba(1,23,91,.74) 26%,rgba(1,23,91,0) 58%)}
.cine__slide{position:absolute;inset:0;z-index:-2;opacity:0;transition:opacity 1.3s ease}
.cine__slide.is-on{opacity:1}
.cine__slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 8s linear}
.cine__slide.is-on img{transform:none}
.cine__body{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(18px,2.4vw,30px);padding-bottom:clamp(16px,2vw,26px)}
.cine h1{color:#fff;font-size:clamp(2rem,3.9vw,3.6rem);font-weight:500;line-height:1.12;letter-spacing:-.03em;animation:rise 1s .1s var(--ease) both}
.cine__actions{display:flex;flex-wrap:wrap;gap:10px;animation:rise 1s .25s var(--ease) both}
.cine .btn--line:hover{color:var(--blazer)}
.cine__tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(14px,2vw,28px);margin-top:clamp(10px,2vw,28px);animation:rise 1s .4s var(--ease) both}
.cine__tab{position:relative;padding-block:14px 8px;border-top:1px solid rgba(255,255,255,.34);color:rgba(255,255,255,.72);font-weight:500;text-decoration:none;transition:color .25s}
.cine__tab::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:#fff;transform:scaleX(0);transform-origin:0 50%}
.cine__tab:hover,.cine__tab.is-on{color:#fff}
.cine__tab.is-on::before{transform:none;animation:fill 6s linear both}
.cine.is-held .cine__tab.is-on::before{animation:none}
@keyframes fill{from{transform:scaleX(0)}}
@keyframes rise{from{opacity:0;transform:translateY(22px)}}
@media (min-width:760px){.cine__tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}
.has-photo .site-head{transition:background-color .3s,color .3s,border-color .3s}
.has-photo:not(.mega-open) .site-head:not(.is-solid):not(:has(.nav.is-open)):not(:hover):not(:focus-within){background:transparent;border-color:transparent;color:#fff}
.has-photo:not(.mega-open) .site-head:not(.is-solid):not(:has(.nav.is-open)):not(:hover):not(:focus-within) .icon-btn{color:#fff}
.has-photo:not(.mega-open) .site-head:not(.is-solid):not(:has(.nav.is-open)):not(:hover):not(:focus-within) .site-head__apply{background:#fff;color:var(--blazer)}

/* Principal */
.principal{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center;padding-block:clamp(48px,6.5vw,88px)}
.principal__photo{justify-self:center;width:min(100%,340px);aspect-ratio:1173/1494;overflow:hidden;border-radius:var(--r);background:var(--chalk)}
.principal__photo img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.principal__text{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;justify-items:start}
.principal__text p{max-width:66ch}
.principal__name{font-weight:600;color:var(--blazer);line-height:1.4}
.principal__name span{display:block;color:var(--muted);font-weight:400;font-size:.92rem}
@media (min-width:700px){.principal{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.principal__photo{justify-self:start}}

.stages{padding-bottom:clamp(48px,6.5vw,88px)}
.stages h2{margin-bottom:clamp(14px,2vw,22px)}
.stages__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stage{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;border-radius:var(--r);background:var(--blazer);color:#fff;text-decoration:none;isolation:isolate}
.stage img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.stage::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(1,23,91,.88),rgba(1,23,91,0) 60%)}
.stage strong{position:absolute;left:14px;right:14px;bottom:12px;font-weight:600;font-size:clamp(.95rem,1.3vw,1.1rem);line-height:1.25}
.stage:hover img{transform:scale(1.05)}
@media (min-width:700px){.stages__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Admissions */
.admissions{background:var(--blazer);color:#fff}
.admissions__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:center;padding-block:clamp(44px,6vw,80px)}
.admissions__photo{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:#14296e}
.admissions__photo img{width:100%;height:100%;object-fit:cover}
.admissions__text{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;justify-items:start;min-width:0}
.admissions__text h2{color:#fff}
.admissions__contact{display:grid;gap:2px;font-weight:500}
.admissions__contact a{text-decoration:none;overflow-wrap:anywhere}
.admissions__contact a:hover{text-decoration:underline;text-underline-offset:4px}
@media (min-width:700px){.admissions__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.age{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;width:100%;margin-top:10px;padding-top:22px;border-top:1px solid rgba(255,255,255,.22)}
.age label{font-weight:500}
.age input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;margin:0;padding:0;border:0;background:none;cursor:grab}
.age input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:6px;background:linear-gradient(90deg,#fff var(--fill,23%),rgba(255,255,255,.26) var(--fill,23%))}
.age input[type=range]::-moz-range-track{height:6px;border-radius:6px;background:rgba(255,255,255,.26)}
.age input[type=range]::-moz-range-progress{height:6px;border-radius:6px;background:#fff}
.age input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-10px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.18);transition:box-shadow .2s}
.age input[type=range]::-moz-range-thumb{width:26px;height:26px;border:0;border-radius:50%;background:#fff}
.age input[type=range]:active::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(255,255,255,.18)}
.age output{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px}
.age strong{font-size:clamp(1.25rem,1.9vw,1.5rem);font-weight:600;letter-spacing:-.02em}
.age output span{color:#d9dfef}
.age .link{justify-self:start}

/* About */
.about{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center;padding-block:clamp(48px,6.5vw,88px)}
.about__text{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;justify-items:start}
.about__text p{max-width:58ch}
.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pillars a{display:grid;grid-template-columns:minmax(0,1fr);align-content:space-between;gap:18px;height:100%;min-height:clamp(120px,11vw,150px);padding:clamp(14px,1.6vw,20px);border-radius:var(--r);background:var(--chalk);color:var(--blazer);font-size:clamp(.98rem,1.2vw,1.08rem);font-weight:600;line-height:1.25;text-decoration:none;transition:background-color .25s,color .25s,transform .3s var(--ease)}
.pillars svg{color:var(--sun);transition:color .25s}
.pillars a:hover{background:var(--blazer);color:#fff;transform:translateY(-2px)}
.pillars a:hover svg{color:#fff}
@media (min-width:760px){.about{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}

/* Numbers */
.numbers{padding-bottom:clamp(44px,6vw,80px)}
.numbers__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;margin:0;padding-top:clamp(28px,4vw,44px);border-top:1px solid var(--line)}
.numbers__row>div{display:flex;flex-direction:column;justify-content:flex-start}.numbers dd{order:-1}
.numbers dd{margin:0;font-size:clamp(1.9rem,3.2vw,2.7rem);font-weight:600;line-height:1;letter-spacing:-.04em;color:var(--blazer)}
.numbers dt{margin-top:8px;color:var(--muted)}
@media (min-width:760px){.numbers__row{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Accreditation logos are white artwork, so they need navy behind them */
.partners{overflow:hidden;padding-block:clamp(20px,3vw,32px);background:var(--blazer)}
.marquee{display:flex;width:max-content;animation:slide 44s linear infinite}
.marquee:hover{animation-play-state:paused}
.marquee__set{display:flex;align-items:center;gap:clamp(44px,6vw,96px);padding-right:clamp(44px,6vw,96px)}
.marquee img{height:clamp(44px,5vw,60px);width:auto;max-width:none;object-fit:contain;filter:brightness(0) invert(1);opacity:.9;transition:filter .3s,opacity .3s}
.marquee img:hover{filter:none;opacity:1}
@keyframes slide{to{transform:translateX(-25%)}}

/* News */
.latest{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(32px,4vw,56px);padding-block:clamp(48px,6.5vw,88px)}
@media (min-width:1000px){.latest--events{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
.latest__events .events{margin:0}
.latest__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:clamp(20px,3vw,32px)}
.news-grid{display:grid;gap:clamp(18px,2.4vw,28px);grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.news-grid--three{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.news-card__img{display:block;aspect-ratio:16/10;background:var(--chalk);overflow:hidden}
.news-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.news-card time{color:var(--muted);font-size:.9rem}
.news-card h3{font-size:clamp(1.05rem,1.5vw,1.2rem);transition:color .15s}
.news-card a:hover h3{color:var(--sun)}
.events li{display:flex;gap:14px;align-items:center;padding-block:10px;border-bottom:1px solid var(--line)}
.events time{flex:none;display:grid;justify-items:center;width:58px;padding:6px 0;background:var(--chalk);border-radius:12px;line-height:1.1}
.events strong{font-size:1.3rem;font-weight:600;color:var(--blazer)}
.events span{font-size:.82rem;color:var(--muted)}
.events a{text-decoration:none;font-weight:500;min-width:0}
.events a:hover{text-decoration:underline}

/* Year-group finder */
.journey{background:var(--chalk);padding-block:clamp(40px,6vw,80px)}
.journey__head{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:end}
.journey__finder{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));align-items:end}
.journey__result{min-height:1.7em;margin-top:14px;font-weight:600;color:var(--blazer)}
.journey__stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.journey__stops button{width:100%;min-height:46px;padding:6px 4px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-weight:500;font-size:.92rem;transition:background-color .15s,color .15s,border-color .15s}
.journey__stops button:hover{border-color:var(--blazer)}
.journey__stops button[aria-pressed=true]{background:var(--blazer);color:#fff;border-color:var(--blazer)}
.journey__panels{display:grid;gap:14px;margin-top:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.journey__panel{background:var(--paper);padding:22px;border-radius:var(--r)}
.journey__panel h3 a{text-decoration:none}
.journey__panel h3 a:hover{color:var(--sun)}
.journey__age{font-weight:500;color:var(--sun);margin-block:2px 6px}
.journey__age:empty{display:none}
.journey.is-live .journey__panels{grid-template-columns:minmax(0,1fr)}
.journey.is-live .journey__panel{display:none}
.journey.is-live .journey__panel.is-active{display:block}
.journey__note{margin-top:14px;color:var(--muted);font-size:.92rem}
@media (min-width:560px){.journey__stops{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:1000px){.journey__head{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.journey__stops{grid-template-columns:repeat(15,minmax(0,1fr));gap:4px}.journey__stops button{font-size:.8rem}}

/* Fields */
.field{display:grid;gap:6px;min-width:0}
.field label,.prose label{font-weight:500}
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=range]),select,textarea{width:100%;min-height:50px;padding:10px 14px;background:var(--paper);border:1px solid #c4cbda;border-radius:12px;max-width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--blazer);outline:0;box-shadow:0 0 0 3px rgba(1,23,91,.14)}
textarea{resize:vertical}

/* Inner pages */
.pg{position:relative;display:flex;align-items:flex-end;min-height:clamp(300px,46vh,440px);overflow:hidden;background:var(--blazer);color:#fff;isolation:isolate}
.pg::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(1,23,91,.62) 0,rgba(1,23,91,0) 30%),linear-gradient(0deg,rgba(1,23,91,.95) 0,rgba(1,23,91,.66) 32%,rgba(1,23,91,.12) 72%)}
.pg__img{position:absolute;inset:-8% 0;z-index:-2;width:100%;height:116%;object-fit:cover;object-position:50% 22%}
.pg__body{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding-top:calc(var(--head) + 24px);padding-bottom:clamp(20px,3vw,34px)}
.pg h1{color:#fff;font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:500;line-height:1.14;letter-spacing:-.025em;animation:rise 1s .1s var(--ease) both}
.pg--long h1{font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.22;letter-spacing:-.02em;max-width:26em}
.pg__intro{color:#e2e7f4;font-size:1.05rem}
.pg__nav{display:flex;gap:clamp(18px,2.4vw,32px);margin-top:clamp(12px,2vw,24px);border-top:1px solid rgba(255,255,255,.3);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;animation:rise 1s .25s var(--ease) both}
.pg__nav::-webkit-scrollbar{display:none}
.pg__nav a{position:relative;flex:none;padding-block:13px 6px;color:rgba(255,255,255,.76);font-weight:500;font-size:.95rem;text-decoration:none;white-space:nowrap;transition:color .2s}
.pg__nav a::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:#fff;transform:scaleX(0);transform-origin:0 50%;transition:transform .3s var(--ease)}
.pg__nav a:hover,.pg__nav a[aria-current]{color:#fff}
.pg__nav a:hover::before,.pg__nav a[aria-current]::before{transform:none}

.page-layout{padding-block:clamp(44px,7vw,100px);display:grid;grid-template-columns:minmax(0,1fr)}
.page-layout>*{min-width:0}
.section{padding-block:clamp(40px,6vw,88px)}
.prose{width:100%;max-width:820px;margin-inline:auto;font-size:1rem;line-height:1.75;color:#2b3346}
.prose>*+*,.bse-col>*+*{margin-top:1.15em}
.prose>:first-child,.bse-col>:first-child{margin-top:0}
.prose h1,.prose h2{margin-top:1.8em;color:var(--blazer);font-size:clamp(1.3rem,2vw,1.6rem);font-weight:600;line-height:1.25;letter-spacing:-.02em}
.prose h3{margin-top:1.7em;color:var(--blazer);font-size:clamp(1.08rem,1.4vw,1.22rem);font-weight:600;line-height:1.3;letter-spacing:-.01em}
.prose h4,.prose h5,.prose h6{margin-top:1.5em;color:var(--blazer);font-size:1rem;font-weight:600;line-height:1.3;letter-spacing:-.01em}
.prose h1+*,.prose h2+*,.prose h3+*,.prose h4+*,.prose h5+*{margin-top:.6em}
.prose .lead{color:var(--blazer);font-size:clamp(1.06rem,1.25vw,1.14rem);line-height:1.65;letter-spacing:-.01em}
.prose ul,.prose ol{padding-left:0}
.prose ul{list-style:none}
.prose ul>li{position:relative;padding-left:1.3em}
.prose ul>li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--sun)}
.prose ol{list-style:decimal;padding-left:1.3em}
.prose ol>li::marker{color:var(--sun);font-weight:600}
.prose li+li{margin-top:.5em}
.prose a:not(.btn){color:var(--sun);text-decoration-thickness:1.5px;text-underline-offset:4px}
.prose a:not(.btn):hover{color:var(--blazer)}
.prose *{max-width:100%}
.prose img{height:auto;border-radius:var(--r)}
.prose .tribe-common ul,.prose .tribe-common ol{list-style:none;padding:0;margin:0}
.prose .tribe-common li{margin:0;padding:0}
.prose .tribe-common li::before{content:none}
.prose .tribe-common a:not(.btn){color:inherit}
.prose .tribe-common>*+*{margin-top:0}
.prose blockquote{margin:1.6em 0;padding:0 0 0 22px;border-left:3px solid var(--sun);color:var(--blazer);font-size:1.25rem;font-weight:500;line-height:1.45}
.prose iframe{width:100%;border:0;aspect-ratio:16/9;height:auto;border-radius:var(--r)}
.prose p:has(>.btn:only-child){display:inline-block;margin:.5em 10px 0 0}
.prose .actions{display:flex}
.alignleft,.alignright{max-width:50%}
.alignleft{float:left;margin:0 1.2em 1em 0}
.alignright{float:right;margin:0 0 1em 1.2em}
.aligncenter{margin-inline:auto}
.wp-caption{width:auto!important}
.wp-caption-text{color:var(--muted);font-size:.9rem;margin-top:6px}
@media (max-width:559.98px){.alignleft,.alignright{float:none;max-width:100%;margin:0 0 1em}}
.bse-row{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,56px);align-items:flex-start}
.prose .bse-row+.bse-row{margin-top:clamp(28px,4vw,48px)}
.bse-col{flex:1 1 280px;min-width:0}
.bse-w-8{flex-grow:2}.bse-w-9{flex-grow:3}
.bse-col .bse-row{gap:12px}
.bse-col .bse-row>.bse-col{flex-basis:220px}
.bse-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:8px}
.bse-gallery a,.bse-gallery img{display:block;width:100%}
.bse-gallery a{overflow:hidden;border-radius:12px}
.bse-gallery img{aspect-ratio:3/2;object-fit:cover;border-radius:0;transition:transform .6s var(--ease)}
.bse-gallery a:hover img{transform:scale(1.05)}
.bse-toggles{display:grid;grid-template-columns:minmax(0,1fr);gap:0;border-top:1px solid var(--line)}
.bse-toggles>*+*{margin-top:0}
:root{interpolate-size:allow-keywords}
details{border-bottom:1px solid var(--line)}
details::details-content{block-size:0;overflow:hidden;transition:block-size .35s var(--ease),content-visibility .35s allow-discrete}
details[open]::details-content{block-size:auto}
summary{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;cursor:pointer;color:var(--blazer);font-weight:600;font-size:1.02rem;line-height:1.35;letter-spacing:-.005em;list-style:none;transition:color .2s}
summary:hover{color:var(--sun)}
summary::-webkit-details-marker{display:none}
summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;background:var(--chalk) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 2v8M2 6h8' stroke='%2301175b' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/12px no-repeat;transition:transform .3s var(--ease)}
details[open]>summary::after{transform:rotate(45deg)}
details>:not(summary){margin:0 0 20px}
.bse-table{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line)}
table{border-collapse:collapse;width:100%;font-size:.98rem}
th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:last-child td{border-bottom:0}
th,thead td,tbody tr:first-child td:has(strong){background:var(--blazer);color:#fff;font-weight:500}
tbody tr:nth-child(even) td{background:var(--chalk)}
.bse-box{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-content:end;gap:8px;min-height:170px;padding:18px;overflow:hidden;border-radius:var(--r);background:var(--blazer);color:#fff;font-weight:600;font-size:1rem;line-height:1.35;isolation:isolate;transition:background-color .25s}
.bse-box:hover{background:var(--sun)}
.bse-box img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .7s var(--ease)}
.bse-box:has(img)::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(1,23,91,.92),rgba(1,23,91,.12))}
.bse-box:hover img{transform:scale(1.05)}
.bse-box>*{margin:0}
.bse-box h1,.bse-box h2,.bse-box h3,.bse-box h4,.bse-box h5,.bse-box h6{margin:0;color:#fff;font-size:1rem;letter-spacing:0}
.bse-col:has(>.bse-box){display:grid;align-self:stretch}
.bse-box .link{position:static;color:#fff;font-size:.92rem;font-weight:500;letter-spacing:0}
.bse-box .link:hover{color:#fff}
.bse-box .link::after{content:"";position:absolute;inset:0}
.bse-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:4px 20px;align-items:center;padding-block:14px;border-bottom:1px solid var(--line)}
.bse-list span:first-child{font-weight:600;color:var(--blazer)}
.bse-list .link{justify-self:start}
.bse-video iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:var(--r)}
.jobs{list-style:none!important;padding:0!important;display:grid}
.jobs li{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);margin:0}
.jobs li::before{content:none}
.jobs h3{margin:0;font-size:1.1rem}
.jobs p{color:var(--muted);font-size:.92rem;margin:2px 0 0}

.toc{display:none}
@media (min-width:1180px){
  .page-layout.has-toc{grid-template-columns:minmax(0,820px) 230px;gap:clamp(48px,6vw,88px);justify-content:center}
  .page-layout.has-toc .prose{margin:0}
  .toc{position:sticky;top:calc(var(--head) + 32px);display:grid;gap:2px;align-self:start;max-height:calc(100vh - var(--head) - 64px);overflow-y:auto;border-left:1px solid var(--line);scrollbar-width:none}
  .toc a{margin-left:-1px;padding:6px 0 6px 16px;border-left:2px solid transparent;color:var(--muted);font-size:.92rem;line-height:1.35;text-decoration:none;transition:color .2s,border-color .2s}
  .toc a:hover{color:var(--blazer)}
  .toc a.is-on{border-left-color:var(--sun);color:var(--blazer);font-weight:500}
}

.more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,24px);padding-bottom:clamp(44px,7vw,96px)}
.more a{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;align-content:center;min-height:clamp(88px,8vw,108px);padding:clamp(14px,2vw,22px);border-radius:var(--r);background:var(--chalk);color:var(--blazer);text-decoration:none;transition:background-color .25s,color .25s,transform .3s var(--ease)}
.more__next{text-align:right}
.more span{color:var(--muted);font-size:.92rem;transition:color .25s}
.more strong{font-size:clamp(.98rem,1.4vw,1.15rem);font-weight:600;line-height:1.2;letter-spacing:-.02em}
.more a:hover{background:var(--blazer);color:#fff;transform:translateY(-3px)}
.more a:hover span{color:#d9dfef}

.lead-news{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-bottom:clamp(28px,4vw,52px);color:var(--blazer);text-decoration:none}
.lead-news__img{display:block;aspect-ratio:16/10;overflow:hidden;border-radius:var(--r);background:var(--chalk);box-shadow:0 0 0 1px var(--line)}
.lead-news__img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.lead-news:hover img{transform:scale(1.03)}
.lead-news__text{display:grid;gap:8px;align-content:center}
.lead-news time{color:var(--muted);font-size:.95rem}
.lead-news strong{font-size:clamp(1.3rem,2.2vw,1.8rem);font-weight:600;line-height:1.22;letter-spacing:-.02em;transition:color .2s}
.lead-news:hover strong{color:var(--sun)}
@media (min-width:900px){.lead-news{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(28px,4vw,56px)}}

.docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}
.docs a{display:grid;grid-template-rows:1fr auto;gap:18px;height:100%;min-height:150px;padding:18px;border-radius:var(--r);background:var(--chalk);color:var(--blazer);text-decoration:none;transition:background-color .25s,color .25s,transform .3s var(--ease)}
.docs span{font-size:1.02rem;font-weight:600;line-height:1.25;letter-spacing:-.015em}
.docs time{color:var(--muted);font-size:.9rem;transition:color .25s}
.docs a:hover{background:var(--blazer);color:#fff;transform:translateY(-3px)}
.docs a:hover time{color:#d9dfef}

/* Lists and media */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.chip{min-height:40px;padding:6px 18px;border:1px solid #c4cbda;border-radius:999px;font-weight:500;font-size:.95rem}
.chip:hover{border-color:var(--blazer)}
.chip[aria-pressed=true]{background:var(--blazer);border-color:var(--blazer);color:#fff}
.doc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:0 36px}
.doc-list a{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 14px;padding:13px 0;border-bottom:1px solid var(--line);text-decoration:none}
.doc-list span{font-weight:500;color:var(--blazer);min-width:0}
.doc-list a:hover span{color:var(--sun)}
.doc-list time{color:var(--muted);font-size:.9rem}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px}
.tabs button{padding:10px 16px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted)}
.tabs button[aria-selected=true]{color:var(--blazer);border-bottom-color:var(--sun)}
.albums{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.album{position:relative;display:block;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--blazer);color:#fff;text-decoration:none;text-align:left;isolation:isolate}
.album::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgba(1,23,91,.9),rgba(1,23,91,0) 62%)}
.album__img{position:absolute;inset:0;z-index:-1;display:block;background:#14296e}
.album__img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.album:hover img{transform:scale(1.05)}
.album strong{position:absolute;left:16px;right:16px;bottom:34px;z-index:1;font-weight:600;font-size:.98rem;line-height:1.25;letter-spacing:-.01em}
.album time{position:absolute;left:16px;bottom:12px;z-index:1;color:#d9dfef;font-size:.88rem}
.album--video strong{bottom:14px}
.album--video .album__img::after{content:"";position:absolute;z-index:2;left:50%;top:50%;width:56px;height:56px;margin:-28px;border-radius:50%;background:var(--sun) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M9 6v12l10-6z'/%3E%3C/svg%3E") center/28px no-repeat}
.album-meta{margin-bottom:14px;color:var(--muted)}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,220px),1fr));gap:6px}
.photos a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:var(--chalk)}
.photos img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.photos a:hover img{transform:scale(1.04)}
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:32px}
.pager .page-numbers{min-width:44px;min-height:44px;display:grid;place-items:center;padding:0 12px;border:1px solid var(--line);border-radius:12px;text-decoration:none}
.pager .current{background:var(--blazer);color:#fff;border-color:var(--blazer)}
.lightbox{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(1,10,40,.95);color:#fff}
.lightbox[open]{display:grid;place-items:center}
.lightbox__stage{display:grid;place-items:center;width:100%;height:100%;padding:60px 12px}
.lightbox__stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.lightbox__stage iframe{width:min(100%,1100px);aspect-ratio:16/9;border:0}
.lightbox__btn{position:absolute;z-index:2;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.14)}
.lightbox__btn:hover{background:rgba(255,255,255,.28)}
.lightbox__close{top:8px;right:8px}
.lightbox__prev{left:8px;top:50%;margin-top:-24px}
.lightbox__next{right:8px;top:50%;margin-top:-24px}
.lightbox__count{position:absolute;top:18px;left:18px;font-size:.95rem}

/* Contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr);gap:36px}
.contact>*{min-width:0}
.contact__cards{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-content:start}
.contact__cards section{padding-bottom:22px;border-bottom:1px solid var(--line)}
.contact__cards h2{font-size:clamp(1.3rem,2vw,1.6rem);letter-spacing:-.02em;margin-bottom:8px}
.contact__cards a{overflow-wrap:anywhere}
.form{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;background:var(--chalk);padding:clamp(20px,4vw,36px);border-radius:var(--r)}
.form h2{font-size:1.5rem}
.form .btn{justify-self:start}
.form__two{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.form__hp{position:absolute;left:-9999px}
.form__note{padding:12px 14px;border-radius:12px;font-weight:500}
.form__note--ok{background:#e4edf9;color:var(--blazer)}
.form__note--bad{background:#f8e6e9;color:var(--sun)}
@media (min-width:900px){.contact{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:56px}}
.map{background:var(--chalk);min-height:180px;display:grid;place-items:center}
.map iframe{width:100%;height:clamp(280px,44vw,460px);border:0;display:block}
.map__load{min-height:48px;padding:10px 22px;border-radius:999px;border:1.5px solid var(--blazer);color:var(--blazer);font-weight:500}

/* Footer */
.site-foot{color:#fff}
.foot-cta{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:center;padding-block:clamp(28px,3.4vw,44px)}
.site-foot{background:var(--sun)}
.foot-cta h2{color:#fff;max-width:15em}
.foot-cta__btns{display:flex;flex-wrap:wrap;gap:12px}
@media (min-width:900px){.foot-cta{grid-template-columns:minmax(0,1fr) auto}}
.site-foot__main{background:var(--blazer);padding-top:clamp(40px,6vw,72px)}
.site-foot__grid{display:grid;gap:32px 24px;grid-template-columns:repeat(2,minmax(0,1fr))}
.site-foot__about{grid-column:1/-1;display:grid;gap:12px;justify-items:start}
.site-foot__about img{height:72px;width:auto}
.site-foot address{font-style:normal;color:#d9dfef;font-size:.95rem}
.site-foot a{text-decoration:none}
.site-foot a:hover{text-decoration:underline}
.site-foot nav h2{font-size:1rem;letter-spacing:0;line-height:1.4;color:#fff;margin-bottom:10px}
.site-foot nav li{color:#d9dfef;font-size:.95rem}
.site-foot nav li+li{margin-top:6px}
.site-foot .social{margin-left:-8px}
.site-foot__end{margin-top:clamp(28px,4vw,48px)}
.site-foot__bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;padding-block:14px;border-top:1px solid rgba(255,255,255,.16);color:#d9dfef;font-size:.9rem}
.site-foot__bar a{margin-left:14px}
.site-foot__bar a:first-child{margin-left:0}
@media (min-width:860px){.site-foot__grid{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr))}.site-foot__about{grid-column:auto}}

.progress{position:fixed;inset:0 0 auto;z-index:60;height:3px;pointer-events:none}
.progress i{display:block;height:100%;width:100%;background:var(--sun);transform:scaleX(var(--p,0));transform-origin:0 50%}
.fly{position:fixed;right:14px;bottom:14px;z-index:41;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--blazer);color:#fff;transition:transform .25s var(--ease)}
.fly:hover{transform:translateY(-3px)}
.wpcf7-form p{margin-bottom:1em}
.wpcf7-submit,input[type=submit]{min-height:50px;padding:10px 26px;border:0;border-radius:999px;background:var(--blazer);color:#fff;font-weight:500;cursor:pointer}
::view-transition-old(root){animation:vt-out .12s ease both}
::view-transition-new(root){animation:vt-in .18s ease both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}

@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  html{scroll-behavior:auto}
  .marquee{width:auto;flex-wrap:wrap;justify-content:center}.marquee__set:not(:first-child){display:none}.marquee__set{flex-wrap:wrap;justify-content:center}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
@media print{.site-head,.fly,.site-foot{display:none}}

/* Below-the-fold home sections paint on demand, which keeps scrolling smooth */
.home .stages,.home .admissions,.home .about,.home .numbers,.home .partners,.home .latest{content-visibility:auto;contain-intrinsic-size:auto 560px}
.cine__slide{will-change:opacity}

/* Small pieces of interaction */
.find{display:block;width:100%;max-width:420px;margin-bottom:14px}
.toggle-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:6px}
.toggle-bar .find{flex:1 1 220px;margin:0}
.toggle-bar .link{font-size:.92rem}
.prose img:not(a img){cursor:zoom-in}
.bse-col:has(>img:only-child) img{width:100%;aspect-ratio:4/3;object-fit:cover}
.toc-m{display:none}
@media (max-width:1179.98px){
  .toc-m{position:sticky;top:calc(var(--head) + 8px);z-index:5;display:block;margin-bottom:22px;padding-inline:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
  .toc-m summary{padding:10px 0;font-size:.95rem}
  .toc-m a{display:block;padding:7px 0;color:var(--blazer);font-size:.95rem;text-decoration:none}
  .toc-m[open]{padding-bottom:10px}
}
.search__results{display:grid;gap:2px;margin-top:10px}
.search__results a{display:block;padding:9px 12px;border-radius:10px;color:var(--blazer);font-weight:500;text-decoration:none}
.search__results a:hover,.search__results a:focus-visible{background:var(--chalk)}
.toast{position:fixed;left:50%;bottom:22px;z-index:80;padding:9px 18px;border-radius:999px;background:var(--blazer);color:#fff;font-size:.92rem;font-weight:500;opacity:0;transform:translate(-50%,10px);transition:opacity .2s,transform .25s var(--ease);pointer-events:none}
.toast.is-on{opacity:1;transform:translate(-50%,0)}
.copy{display:inline-grid;place-items:center;width:28px;height:28px;margin-left:4px;border-radius:8px;color:var(--muted);vertical-align:-8px}
.copy:hover{background:var(--chalk);color:var(--blazer)}
.pick{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0}
.pick legend{padding:0;margin-bottom:6px;font-weight:500}
.pick input{position:absolute;opacity:0}
.pick span{display:block;padding:9px 18px;border:1px solid #c4cbda;border-radius:999px;background:var(--paper);font-weight:500;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.pick input:checked+span{background:var(--blazer);border-color:var(--blazer);color:#fff}
.pick input:focus-visible+span{outline:3px solid var(--sun);outline-offset:2px}
.album__count{position:absolute;top:10px;right:10px;z-index:1;padding:2px 10px;border-radius:999px;background:rgba(1,23,91,.72);color:#fff;font-size:.8rem;font-weight:500}
.calendar>.bse-row{margin-bottom:22px}
.calendar p:has(>.btn){display:inline-block;margin:0 8px 8px 0}
.agenda{display:grid;grid-template-columns:minmax(0,1fr)}
.agenda li{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 10px;border-bottom:1px solid var(--line);border-radius:10px;transition:background-color .2s}
.agenda li:hover{background:var(--chalk)}
.agenda time{display:grid;justify-items:center;padding:6px 0;border-radius:12px;background:var(--chalk);line-height:1.15}
.agenda li:hover time{background:var(--paper)}
.agenda time strong{color:var(--blazer);font-size:1.25rem;font-weight:600}
.agenda time span{color:var(--muted);font-size:.8rem}
.agenda .is-next time{background:var(--sun)}
.agenda .is-next time strong,.agenda .is-next time span{color:#fff}
.agenda__text{color:var(--blazer);font-weight:500;line-height:1.35}
.agenda__text small{display:block;color:var(--muted);font-weight:400;font-size:.86rem}
.agenda__add{color:var(--sun);font-size:.88rem;font-weight:500;text-underline-offset:3px;opacity:0;transition:opacity .2s}
.agenda li:hover .agenda__add,.agenda__add:focus-visible{opacity:1}
@media (hover:none),(max-width:559.98px){.agenda__add{opacity:1}.agenda li{grid-template-columns:56px minmax(0,1fr)}.agenda__add{grid-column:2}}

/* Motion tied to scrolling: runs on the graphics chip, and browsers without it show everything normally */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .pg__img{animation:drift linear both;animation-timeline:scroll(root);animation-range:0 520px}
    @keyframes drift{to{transform:translateY(7%)}}
    .home .principal,.home .stages,.home .about,.home .numbers,.home .latest{animation:settle-in linear both;animation-timeline:view();animation-range:entry 0px entry 110px}
    @keyframes settle-in{from{opacity:.6;transform:translateY(14px)}}
  }
}

/* Photos still loading show a soft shimmer, so nothing looks empty */
.photos a,.album__img,.news-card__img{background-image:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.34) 50%,transparent 70%);background-size:220% 100%;animation:shimmer 1.6s linear infinite}
.photos a:has(img:not([src=""])),.news-card__img:has(img){animation-iteration-count:4}
@keyframes shimmer{from{background-position:120% 0}to{background-position:-120% 0}}

.life{padding-bottom:clamp(36px,5vw,64px)}
.life__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:900px){.life__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* School calendar */
.cal{margin-bottom:12px}
.cal__head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px}
.cal__title{min-width:9.5em;font-size:clamp(1.3rem,2vw,1.6rem)}
.cal__nav{display:flex;align-items:center;gap:6px}
.cal__arrow{display:grid;place-items:center;width:40px;height:40px;border:1px solid #c4cbda;border-radius:50%;color:var(--blazer);font-size:1.3rem;line-height:1;transition:background-color .2s,color .2s,border-color .2s}
.cal__arrow:hover{background:var(--blazer);border-color:var(--blazer);color:#fff}
.cal__modes{display:flex;gap:6px;margin-left:auto}
.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--line)}
.cal__grid[hidden]{display:none}
.cal__dow{padding:9px 4px;background:var(--blazer);color:#fff;font-size:.86rem;font-weight:500;text-align:center}
.cal__cell{display:grid;grid-auto-rows:min-content;align-content:start;gap:3px;min-width:0;min-height:clamp(62px,9vw,112px);padding:7px;background:var(--paper);color:var(--ink);font-size:.8rem;text-align:left}
.cal__cell.is-blank{background:var(--chalk)}
.cal__cell.has-events{cursor:pointer;transition:background-color .15s}
.cal__cell.has-events:hover{background:#f0f3fa}
.cal__cell.is-picked{box-shadow:inset 0 0 0 2px var(--blazer)}
.cal__num{font-size:.9rem;font-weight:500;color:var(--blazer)}
.is-today .cal__num{display:grid;place-items:center;width:26px;height:26px;margin:-3px;border-radius:50%;background:var(--sun);color:#fff}
.cal__ev{display:block;overflow:hidden;padding:2px 6px;border-radius:6px;background:#e4eaf6;color:var(--blazer);font-weight:500;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}
.cal__ev.is-holiday{background:#f7e4e7;color:var(--sun)}
.cal__extra{color:var(--muted);font-size:.76rem}
.cal__key{display:flex;gap:16px;margin-top:10px;color:var(--muted);font-size:.86rem}
.cal__key[hidden]{display:none}
.cal__key span{display:inline-flex;align-items:center;gap:6px}
.cal__key span::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--blazer)}
.cal__key .is-holiday::before{background:var(--sun)}
.cal__day{margin-top:18px}
.cal__day h3{margin-bottom:6px;font-size:1.05rem}
.cal__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding-block:10px;border-bottom:1px solid var(--line)}
.cal__row a:first-child{color:var(--blazer);font-weight:500;text-decoration:none}
.cal__row a:first-child:hover{color:var(--sun)}
.cal__row .link{font-size:.9rem}
@media (max-width:699.98px){
  .cal__cell{min-height:52px;padding:5px;justify-items:center}
  .cal__ev{width:7px;height:7px;padding:0;border-radius:50%;background:var(--blazer);color:transparent}
  .cal__ev.is-holiday{background:var(--sun)}
  .cal__cell{grid-auto-flow:row}
  .cal__extra{display:none}
  .cal__modes{margin-left:0}
  .cal__dow{font-size:.76rem}
}

/* Floating quick links */
.dock{position:fixed;z-index:42}
.dock a{display:flex;align-items:center;color:#fff;text-decoration:none}
@media (min-width:900px){
  .dock{right:16px;top:50%;display:grid;justify-items:center;gap:3px;padding:6px;border-radius:24px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 0 0 1px rgba(1,23,91,.07),0 16px 40px rgba(1,23,91,.18);transform:translateY(-50%)}
  .dock a{position:relative;justify-content:center;width:46px;height:46px;border-radius:18px;color:var(--blazer);transition:background-color .2s,color .2s,transform .2s var(--ease)}
  .dock svg{flex:none}
  .dock span{position:absolute;right:calc(100% + 14px);top:50%;padding:8px 14px;border-radius:12px;background:var(--blazer);color:#fff;font-size:.9rem;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 10px 24px rgba(1,23,91,.22);transform:translate(8px,-50%);transition:opacity .2s,transform .25s var(--ease)}
  .dock span::after{content:"";position:absolute;right:-4px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:2px;background:inherit;transform:rotate(45deg)}
  .dock a:hover span,.dock a:focus-visible span{opacity:1;transform:translate(0,-50%)}
  .dock a:hover,.dock a:focus-visible{background:var(--blazer);color:#fff}
  .dock .dock__apply{margin-bottom:3px;background:var(--sun);color:#fff;box-shadow:0 8px 18px rgba(134,2,23,.3)}
  .dock .dock__apply span{background:var(--sun)}
  .dock .dock__apply:hover,.dock .dock__apply:focus-visible{background:#6d0112;transform:scale(1.05)}
  .dock .dock__social{width:38px;height:38px;border-radius:14px;color:var(--muted)}
  .dock .dock__social svg{width:17px;height:17px}
  .dock__find+.dock__social{margin-top:9px}
  .dock__find+.dock__social::before{content:"";position:absolute;left:8px;right:8px;top:-7px;height:1px;background:rgba(1,23,91,.12)}
  .fly{right:21px}
}
@media (max-width:899.98px){
  body{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
  .dock{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;max-width:560px;margin-inline:auto;padding:6px 4px;border:1px solid rgba(1,23,91,.08);border-radius:22px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(170%) blur(16px);backdrop-filter:saturate(170%) blur(16px);box-shadow:0 12px 32px rgba(1,23,91,.2);transition:transform .35s var(--ease),opacity .25s}
  .dock.is-away{opacity:0;transform:translateY(calc(100% + 24px));pointer-events:none}
  .dock a,.dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:50px;padding:0;border-radius:14px;color:var(--blazer);font-size:.7rem;font-weight:500;line-height:1.1;transition:background-color .15s}
  .dock a:active,.dock button:active{background:#eef1f7}
  .dock a:nth-child(2){order:1}
  .dock .dock__call{order:2}
  .dock .dock__apply{order:3;position:relative;overflow:visible;background:none;color:var(--sun);font-weight:600}
  .dock .dock__apply svg{box-sizing:content-box;width:22px;height:22px;margin-top:-26px;padding:13px;border:4px solid #fff;border-radius:50%;background:var(--sun);color:#fff;box-shadow:0 8px 18px rgba(134,2,23,.34)}
  .dock a:nth-child(3){order:4}
  .dock__find{order:5}
  .dock__social{display:none!important}
  .cine{height:calc(100svh - 92px - env(safe-area-inset-bottom));min-height:520px}
  .fly{bottom:calc(92px + env(safe-area-inset-bottom));width:42px;height:42px}
  .toast{bottom:calc(96px + env(safe-area-inset-bottom))}
}
@media (min-width:900px){.dock__find{display:none}}

/* Phones */
@media (max-width:699.98px){
  :root{--head:70px}
  .brand img{height:58px}
  .cine{max-height:760px}
  .cine__slide img{object-position:62% 30%}
  .cine__body{gap:14px}
  .cine__tabs{margin-top:4px}
  .cine__tab{padding-block:10px 6px;font-size:.92rem}
  .principal,.about,.latest,.stages{padding-block:36px}
  .stages{padding-top:0}
  .principal__photo{justify-self:start;width:170px}
  .stage{aspect-ratio:4/3}
  .admissions__grid{padding-block:36px}
  .admissions__photo{aspect-ratio:16/10}
  .numbers{padding-bottom:36px}
  .latest .news-grid--three{display:grid;grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;gap:12px;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .latest .news-grid--three::-webkit-scrollbar{display:none}
  .latest .news-card{scroll-snap-align:center}
  .foot-cta{padding-block:26px}
  .site-foot__grid{gap:24px 16px}
}
@media (max-width:559.98px){
  .pillars a{grid-template-columns:auto minmax(0,1fr);align-items:center;align-content:center;gap:10px;min-height:66px;padding:10px 12px;font-size:.92rem}
  .pillars svg{width:22px;height:22px}
}
@media (max-width:479.98px){
  .cine__actions{flex-wrap:nowrap}
  .cine__actions .btn{min-height:42px;padding:7px 16px;font-size:.9rem;white-space:nowrap}
}

/* Design sections for full-width pages */
.bse-kit{color:#2b3346}
.k-sec{padding-block:clamp(36px,5vw,68px)}
.k-sec--tint{background:var(--chalk)}
.k-sec--navy{background:var(--blazer);color:#fff}
.k-sec--flat{padding-block:0 clamp(36px,5vw,68px)}
.k-in{width:100%;max-width:calc(var(--wide) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.k-in>h2{margin-bottom:clamp(14px,2vw,22px)}
.k-in>h2+p{max-width:68ch}
.bse-kit p+p{margin-top:.9em}
.bse-kit h2+p,.bse-kit h3+p,.bse-kit h2+.prose{margin-top:.6em}
.bse-kit a:not(.btn):not(.link):not(.k-links a){color:var(--sun);text-underline-offset:3px}
.k-split{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(22px,4vw,64px);align-items:center}
.k-split--top{align-items:start}
.k-split h2+*{margin-top:12px}
.k-split h3{margin-top:18px}
.k-media a,.k-media img,.k-media{display:block}
.k-media{overflow:hidden;border-radius:var(--r)}
.k-media img{width:100%;max-height:440px;object-fit:cover;cursor:zoom-in}
.k-right{display:flex;justify-content:flex-start}
.k-big{color:var(--blazer);font-size:clamp(1.1rem,1.6vw,1.3rem);font-weight:500;line-height:1.5}
.k-leader img{display:block;width:min(100%,340px);margin-inline:auto;border-radius:var(--r);box-shadow:0 14px 34px rgba(1,23,91,.14)}
.k-duo{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.k-duo>div{display:grid;align-content:space-between;gap:clamp(40px,7vw,96px);min-height:clamp(240px,28vw,340px);padding:clamp(22px,3vw,40px);border-radius:var(--r);color:#fff}
.k-duo__a{background:var(--blazer)}
.k-duo__b{background:var(--sun)}
.k-duo h2{color:#fff}
.k-duo p{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.55}
.k-links{display:flex;flex-wrap:wrap;gap:8px}
.k-links a{padding:10px 18px;border:1px solid #c4cbda;border-radius:999px;color:var(--blazer);font-weight:500;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s}
.k-links a:hover{background:var(--blazer);border-color:var(--blazer);color:#fff}
.k-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.k-card{min-width:0;padding:clamp(18px,2.2vw,28px);border-radius:var(--r);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);transition:transform .3s var(--ease),box-shadow .3s}
.k-card:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--line),0 12px 28px rgba(1,23,91,.08)}
.k-sec:not(.k-sec--tint) .k-card{background:var(--chalk);box-shadow:none}
.k-card--line{background:var(--paper)!important;box-shadow:inset 0 0 0 1px var(--line)!important}
.k-card h3{margin-bottom:8px;font-size:clamp(1.05rem,1.4vw,1.2rem)}
.k-card .prose{font-size:.98rem}
.k-card .prose>:first-child{margin-top:0}
.k-card .btn{margin-top:6px}
.k-center{display:flex;justify-content:center}
.k-center img{width:min(100%,420px);cursor:zoom-in}
.k-motto{color:#fff;font-size:clamp(1.3rem,2.6vw,2.1rem);font-weight:500;letter-spacing:-.02em;text-align:center}
.k-ticks{display:grid;gap:10px;margin-top:10px}
.k-ticks li{position:relative;padding-left:30px;line-height:1.55}
.k-ticks li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--sun) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.500l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.600' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.k-steps{counter-reset:s;display:grid;gap:0;margin-top:clamp(14px,2vw,24px)}
.k-steps>li{counter-increment:s;position:relative;padding:0 0 clamp(20px,3vw,32px) 62px}
.k-steps>li::before{content:counter(s);position:absolute;left:0;top:-4px;z-index:1;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--blazer);color:#fff;font-weight:600}
.k-steps>li::after{content:"";position:absolute;left:20px;top:38px;bottom:0;width:2px;background:var(--line)}
.k-steps>li:last-child::after{content:none}
.k-steps>li:last-child{padding-bottom:0}
.k-steps h3{margin-bottom:6px;padding-top:6px}
.k-files{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.k-files a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-radius:var(--r);background:var(--chalk);color:var(--blazer)!important;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s}
.k-files a::after{content:"PDF";flex:none;padding:2px 10px;border-radius:999px;background:var(--sun);color:#fff;font-size:.76rem;font-weight:600}
.k-files a:hover{background:var(--blazer);color:#fff!important}
.k-contact{margin-top:16px}
.k-note{max-width:820px;padding-left:18px;border-left:3px solid var(--sun)}
.k-more{margin-top:14px}
.k-gallery{grid-template-columns:repeat(auto-fill,minmax(min(46%,220px),1fr))}
.k-gallery img{aspect-ratio:4/3}
.k-acc{max-width:880px}
.k-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:clamp(20px,3vw,32px);border-radius:var(--r);background:var(--blazer);color:#fff}
.k-cta h2{color:#fff}
.k-event{display:grid;gap:8px;justify-items:start;padding:clamp(20px,3vw,32px);border-radius:var(--r);background:var(--blazer);color:#fff}
.k-event strong{font-size:clamp(1.2rem,1.9vw,1.5rem);font-weight:600;line-height:1.25}
.k-event span{color:#d9dfef}
.k-event .btn{margin-top:8px}
@media (min-width:760px){
  .k-split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
  .k-duo,.k-cards--2,.k-files{grid-template-columns:repeat(2,minmax(0,1fr))}
  .k-cards--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .k-cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .k-right{justify-content:flex-end}
}
@media (min-width:1000px){.k-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}.k-cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Education pages: letter, topics, quotes */
.k-letter{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(22px,4vw,64px)}
.k-letter__who{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:14px;order:-1}
.k-letter__who img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:var(--r)}
.k-letter__who figcaption{display:grid;gap:2px}
.k-letter__who strong{color:var(--blazer);font-weight:600;font-size:1.08rem}
.k-letter__who span{color:var(--muted)}
.k-letter__txt>h2+*{margin-top:12px}
.k-letter__txt p,.k-panel p,.k-panel li{max-width:74ch}
.k-letter h3{margin-top:18px}
.k-topics{display:grid;gap:8px}
.k-topic{overflow:hidden;border:0;border-radius:var(--r);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.k-topic>summary{padding:16px 18px;color:var(--blazer);font-weight:600;line-height:1.3}
.k-topic>.k-panel{margin:0;padding:0 18px 20px}
.k-panel>:first-child{margin-top:0}
.k-panel>*+*{margin-top:.9em}
.k-panel h3{font-size:1.12rem;margin-top:1.4em}
.k-panel h3:first-child{margin-top:0}
.k-panel .k-ticks{margin-top:.9em}
.k-panel .bse-gallery{margin-top:18px}
.k-panel table{width:100%;border-collapse:collapse;font-size:.94rem}
.k-panel td,.k-panel th{padding:10px 12px;border:1px solid var(--line);vertical-align:top}
.k-panel .bse-table{overflow-x:auto}
.k-panel .bse-table+.bse-table{margin-top:14px}
.k-gallery--1{grid-template-columns:minmax(0,min(100%,560px))}
.k-gallery--1 img{aspect-ratio:auto}
.k-gallery--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.k-minis{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:16px}
.k-mini{min-width:0;padding:16px 18px;border-radius:var(--r);background:var(--chalk)}
.k-mini h4{margin-bottom:6px;color:var(--blazer);font-weight:600;font-size:1.02rem}
.k-mini p,.k-mini ul{font-size:.96rem}
.k-mini .bse-gallery{grid-template-columns:minmax(0,1fr);margin:0 0 10px}
.k-mini .bse-gallery img{aspect-ratio:16/10}
.k-quote{margin:0;color:#fff;font-size:clamp(1.15rem,2.1vw,1.7rem);font-weight:500;letter-spacing:-.015em;line-height:1.4;text-align:center}
.k-sec--navy .k-quote{max-width:920px;margin-inline:auto}
.k-quote--card{display:grid;place-items:center;min-height:clamp(180px,20vw,260px);padding:clamp(22px,3vw,40px);border-radius:var(--r);background:var(--blazer)}
.k-said{padding-left:16px;border-left:3px solid var(--sun);color:var(--blazer);font-weight:500}
.k-aim{padding:clamp(20px,3vw,32px);border-radius:var(--r);background:var(--blazer);color:#fff}
.k-aim h3{margin:0 0 14px;color:#fff}
.k-exps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-block:18px}
.k-exp{display:grid;place-items:center;min-height:clamp(84px,10vw,128px);padding:12px;border-radius:var(--r);background:var(--blazer);color:#fff;font-weight:600;font-size:clamp(1rem,1.5vw,1.2rem);text-align:center}
.k-exp:nth-child(even){background:var(--sun)}
.k-docs{display:grid;gap:8px}
.k-docs a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--r);background:var(--chalk);color:var(--blazer)!important;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s}
.k-docs a span{flex:none;color:var(--sun);font-size:.9rem}
.k-docs a:hover{background:var(--blazer);color:#fff!important}
.k-docs a:hover span{color:#fff}
.k-mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.k-mosaic a:first-child{grid-column:1/-1}
.k-mosaic img{display:block;width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r);cursor:zoom-in}
.k-sec--pad{padding-block:clamp(28px,4vw,52px)}
.k-center a{display:block;width:100%}
.k-center img{display:block;margin-inline:auto}
@media (max-width:559px){
  .albums{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .album{aspect-ratio:1/1.08}
  .album strong{left:10px;right:10px;bottom:28px;font-size:.84rem}
  .album time{left:10px;bottom:8px;font-size:.76rem}
}
@media (min-width:760px){
  .k-minis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .k-exps{grid-template-columns:repeat(4,minmax(0,1fr))}
  .k-letter{grid-template-columns:minmax(0,1fr) 300px;align-items:start}
  .k-letter__who{display:block;position:sticky;top:96px;order:0}
  .k-letter__who figcaption{margin-top:12px}
}
.k-topics.is-tabs{display:block}
.k-topics__nav{position:sticky;top:calc(var(--head) - 1px);z-index:6;display:flex;gap:6px;margin:-8px calc(var(--gutter)*-1) 10px;padding:8px var(--gutter);background:var(--chalk);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.k-topics__nav::-webkit-scrollbar{display:none}
.k-topics__nav button{flex:none;min-height:42px;padding:8px 16px;border-radius:999px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);color:var(--blazer);font-weight:500;font-size:.92rem;white-space:nowrap;transition:background-color .2s,color .2s}
.k-topics__nav button[aria-current=true]{background:var(--blazer);box-shadow:none;color:#fff}
.is-tabs .k-topic:not([open]){display:none}
.is-tabs .k-topic::details-content{block-size:auto;transition:none}
.is-tabs .k-topic>summary{padding:18px 18px 8px;font-size:1.15rem;cursor:default;pointer-events:none}
.is-tabs .k-topic>summary::after{display:none}
.is-tabs .k-topic>.k-panel{padding:0 18px 20px}
.k-sec:not(.k-sec--tint) .k-topics__nav{background:var(--paper)}
@media (min-width:980px){
  .k-topics.is-tabs{display:grid;grid-template-columns:300px minmax(0,1fr);align-items:start;gap:clamp(20px,3vw,44px)}
  .k-topics__nav{top:96px;display:grid;gap:2px;margin:0;padding:0;background:none;overflow:visible}
  .k-sec:not(.k-sec--tint) .k-topics__nav{background:none}
  .k-topics__nav button{width:100%;min-height:0;padding:12px 16px;border-radius:calc(var(--r) - 2px);background:none;box-shadow:none;color:var(--ink);font-size:1rem;line-height:1.3;text-align:left;white-space:normal}
  .k-topics__nav button:hover{background:rgba(1,23,91,.06)}
  .k-topics__nav button[aria-current=true]{background:var(--blazer);color:#fff}
  .is-tabs .k-topic{grid-column:2;grid-row:1;min-height:320px;box-shadow:none}
  .is-tabs .k-topic>summary{padding:clamp(24px,3vw,36px) clamp(24px,3vw,40px) 12px;font-size:clamp(1.2rem,1.7vw,1.45rem);letter-spacing:-.01em}
  .is-tabs .k-topic>.k-panel{padding:0 clamp(24px,3vw,40px) clamp(24px,3vw,36px)}
}

/* Remaining pages */
.k-flow{max-width:800px}
.k-flow p{font-size:1.04rem}
.k-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:10px 28px}
.k-cols>.k-ticks{margin-top:0}
.k-flow--two{max-width:none}
.k-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(18px,3vw,44px)}
.k-logos img{width:clamp(120px,14vw,190px);height:auto}
.k-duo2{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.k-duo2 h3{margin-bottom:12px}
.k-house__in{display:grid;gap:18px}
.k-house__in img{display:block;width:min(100%,240px);border-radius:var(--r)}
.k-house{--house:var(--blazer);border-left:4px solid var(--house)}
.k-house--purple{--house:#5b2a86}
.k-house--red{--house:#b3122a}
.k-house--green{--house:#167a44}
.k-house--yellow{--house:#c79200}
.k-house .k-big{color:var(--house);filter:brightness(.82)}
.k-menu{display:grid;gap:8px}
.k-menu li{display:flex;align-items:baseline;gap:10px}
.k-menu span{flex:1;min-width:0}
.k-menu b{flex:none;color:var(--blazer);font-weight:600}
.k-ask{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;padding:10px 14px;border-radius:12px;background:var(--chalk)}
.k-ask strong{color:var(--blazer);font-weight:600}
.k-steps>li>p,.k-steps>li>ul{max-width:74ch}
.k-steps>li>*+*{margin-top:.7em}
.k-cta--doc{min-height:clamp(150px,18vw,220px)}
.apply{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(22px,4vw,56px)}
.apply__intro h3{margin-top:18px}
.apply__intro p+p{margin-top:.8em}
.step{display:grid;gap:16px;min-width:0;margin:0;padding:0;border:0}
.step[hidden]{display:none}
.step>legend{margin-bottom:16px;padding:0;color:var(--blazer);font-weight:600;font-size:1.3rem;letter-spacing:-.01em}
.form__three{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.tick{display:flex;align-items:flex-start;gap:10px;line-height:1.5}
.tick input{flex:none;width:20px;height:20px;margin-top:3px;accent-color:var(--blazer)}
.steps__nav{display:flex;gap:4px;margin-bottom:6px}
.steps__nav i{flex:1;height:5px;border-radius:5px;background:var(--line);transition:background-color .3s}
.steps__nav i.is-on{background:var(--blazer)}
.steps__count{color:var(--muted);font-size:.94rem}
.steps__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.steps__bar .btn{justify-self:auto}
.steps__bar [hidden]{display:none}
.field input[type=file]{min-height:0;padding:9px 10px;background:var(--paper)}
@media (min-width:1100px){.k-flow--two{columns:2;column-gap:56px}.k-flow--two p{break-inside:avoid}}
@media (min-width:760px){ul.k-cols,.k-cols>.k-ticks{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.k-duo2{grid-template-columns:repeat(2,minmax(0,1fr))}.k-house__in{grid-template-columns:minmax(0,1fr) 220px;align-items:start}}
@media (min-width:980px){.apply{grid-template-columns:320px minmax(0,1fr);align-items:start}.apply__intro{position:sticky;top:96px}}

.admin-bar .site-head{top:32px}
@media (max-width:782px){.admin-bar .site-head{top:46px}}
.bse-kit+.life{padding-top:clamp(36px,5vw,64px)}
.k-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;width:100%;max-width:var(--wide);margin:clamp(24px,3vw,40px) auto 0;padding-top:clamp(22px,3vw,32px);border-top:1px solid rgba(255,255,255,.18)}
.k-facts>div{display:flex;flex-direction:column;justify-content:flex-start;gap:6px}.k-facts dd{order:-1}
.k-facts dd{margin:0;color:#fff;font-size:clamp(1.6rem,3vw,2.5rem);font-weight:600;line-height:1.1;letter-spacing:-.03em}
.k-facts dt{color:#d9dfef;font-size:.96rem;line-height:1.4}
@media (min-width:760px){.k-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.k-split--flip{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.k-split--flip>:first-child{order:2}}

/* News */
.news-card__img,.lead-news__img{position:relative;overflow:hidden;isolation:isolate}
.news-card__img>img,.lead-news__img>img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain}
.news-card__bg{position:absolute;inset:-24px;display:block}
.news-card__bg img{width:100%;height:100%;object-fit:cover;filter:blur(18px) brightness(.92) saturate(1.1)}
.news-card a:hover .news-card__bg img,.lead-news:hover .news-card__bg img{transform:none}
.lead-news{gap:0;overflow:hidden;border-radius:var(--r);background:var(--blazer);color:#fff;transition:box-shadow .3s}
.lead-news:hover{box-shadow:0 18px 40px rgba(1,23,91,.22)}
.lead-news__img{aspect-ratio:16/10;border-radius:0;box-shadow:none;background:#14296e}
.lead-news__text{gap:10px;padding:clamp(22px,3.4vw,44px)}
.lead-news time{color:#d9dfef}
.lead-news:hover strong{color:#fff}
.lead-news__sum{color:#e4e8f3;line-height:1.6}
.lead-news__go{justify-self:start;margin-top:6px;padding:8px 20px;border-radius:999px;background:#fff;color:var(--blazer);font-weight:500}
.filters a.chip{display:inline-flex;align-items:center;color:var(--blazer);text-decoration:none}
.filters a.chip:hover{background:var(--chalk)}
.filters .chip[aria-current],.filters a.chip[aria-current]:hover{background:var(--blazer);border-color:var(--blazer);color:#fff}
@media (min-width:900px){.lead-news{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0}.lead-news__img{aspect-ratio:auto;min-height:clamp(300px,30vw,400px)}.lead-news__img>img{position:absolute;inset:0}}

/* Body text and pictures: full width lines, nothing cut off */
.bse-kit p:not(.k-motto):not(.k-ask):not(.k-more):not(.k-state),.page-layout .prose p,.apply__intro p{text-align:justify}
.bse-kit .k-quote,.k-cta p,.k-facts,.k-card .btn{text-align:left}
.bse-kit .k-quote{text-align:center}
.bse-kit .k-media img,.k-letter__who img,.k-mosaic img,.k-gallery img,.k-mini .bse-gallery img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.bse-kit .k-gallery{display:block;columns:3 200px;column-gap:8px}
.bse-kit .k-gallery a{margin-bottom:8px;break-inside:avoid}
.bse-kit .k-gallery--1{max-width:560px;columns:1}
.bse-kit .k-gallery--2{columns:2}
.k-mini .k-gallery{columns:1}
.k-mosaic{align-items:center}
.k-mosaic a:first-child{grid-column:auto}
.k-mosaic{grid-template-columns:repeat(3,minmax(0,1fr))}
.k-letter__who img{object-position:center}

@media (max-width:699.98px){nav.filters{flex-wrap:nowrap;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);overflow-x:auto;scrollbar-width:none}nav.filters .chip{flex:none}}

/* Mission and vision */
.k-mv__row{display:grid;grid-template-columns:minmax(0,1fr)}
.k-mv__pic img{display:block;width:100%;height:100%;aspect-ratio:3/2;object-fit:cover}
.k-mv__txt{display:grid;align-content:center;gap:clamp(12px,1.6vw,20px);padding:clamp(28px,5vw,72px) clamp(20px,6vw,88px);color:#fff}
.k-mv__row--navy .k-mv__txt{background:var(--blazer)}
.k-mv__row--sun .k-mv__txt{background:var(--sun)}
.k-mv__txt h2{color:#fff;font-size:clamp(1.6rem,2.6vw,2.2rem)}
.k-state{font-size:clamp(1.12rem,1.7vw,1.42rem);font-weight:400;line-height:1.55;letter-spacing:-.005em}
.k-go{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.k-go a{position:relative;display:block;overflow:hidden;border-radius:var(--r);background:var(--blazer);color:#fff!important;text-decoration:none}
.k-go img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .6s var(--ease)}
.k-go a:hover img{transform:scale(1.04)}
.k-go a::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(1,23,91,.85),rgba(1,23,91,0) 58%)}
.k-go span{position:absolute;left:18px;right:18px;bottom:14px;z-index:1;font-weight:600;font-size:1.1rem}
@media (min-width:760px){.k-go{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:860px){.k-mv__row{grid-template-columns:repeat(2,minmax(0,1fr));min-height:clamp(400px,36vw,520px)}.k-mv__pic img{aspect-ratio:auto;position:absolute;inset:0}.k-mv__pic{position:relative}.k-mv__row--sun .k-mv__pic{order:2}}

/* Home page on phones */
.principal__text>p:not(.principal__name),.about__text>p,.admissions__text>p{text-align:justify}
@media (max-width:699.98px){
  .home h2{font-size:1.5rem}
  .cine{height:calc(100svh - var(--head));min-height:560px;max-height:720px;margin-top:var(--head)}
  .cine__slide{bottom:auto;height:62%}
  .cine__slide img{object-position:50% 45%}
  .cine__body{gap:12px;padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  .cine::after{background:linear-gradient(0deg,var(--blazer) 0,var(--blazer) 38%,rgba(1,23,91,.55) 50%,rgba(1,23,91,0) 62%)}
  .cine__tabs{gap:6px;margin-top:2px}
  .cine__tab{padding:9px 12px;border:1px solid rgba(255,255,255,.28);border-radius:12px;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:.88rem;text-align:center}
  .cine__tab::before{display:none}
  .cine__tab.is-on{background:#fff;border-color:#fff;color:var(--blazer)}
  .principal{grid-template-columns:96px minmax(0,1fr);gap:14px;padding-block:28px 30px}
  .principal__photo{width:96px;align-self:start;border-radius:18px}
  .principal__text{display:contents}
  .principal__text h2{grid-column:2;grid-row:1;align-self:center;font-size:1.3rem;line-height:1.2}
  .principal__text>p:not(.principal__name){grid-column:1/-1;display:none}
  .principal__text>p:nth-of-type(1):not(.principal__name){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
  .principal__name{grid-column:1/-1}
  .principal .link{grid-column:1/-1;justify-self:start}
  .stages{padding-block:28px;background:var(--chalk);box-shadow:0 0 0 100vmax var(--chalk);clip-path:inset(0 -100vmax)}
  .stage{aspect-ratio:1/1}
  .admissions__grid{gap:18px;padding-block:0 30px}
  .admissions__photo{aspect-ratio:16/9;margin-inline:calc(var(--gutter)*-1);border-radius:0}
  .admissions__contact{display:flex;flex-wrap:wrap;gap:8px;width:100%}
  .admissions__contact a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px 16px;border:1px solid rgba(255,255,255,.36);border-radius:999px;font-size:.92rem}
  .admissions__contact li:nth-child(-n+2){flex:1 1 40%}
  .admissions__contact li:nth-child(3){flex:1 1 100%}
  .age{margin-top:6px;padding:16px;border-top:0;border-radius:var(--r);background:rgba(255,255,255,.1)}
  .about{padding-block:30px 22px;gap:18px}
  .about__text>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
  .numbers__row{gap:8px;padding-top:0;border-top:0}
  .numbers__row>div{padding:14px;border-radius:var(--r);background:var(--chalk)}
  .numbers dd{font-size:1.7rem}
  .numbers dt{margin-top:4px;font-size:.88rem;line-height:1.3}
  .numbers{padding-bottom:28px}
  .latest{padding-block:28px}
}
@media (max-width:899.98px){.fly{display:none}}

/* News cards */
.news-card{min-width:0}
.news-card a{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:var(--r);background:var(--paper);box-shadow:0 0 0 1px var(--line),0 6px 18px rgba(1,23,91,.05);color:inherit;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s}
.news-card a:hover{transform:translateY(-4px);box-shadow:0 0 0 1px var(--line),0 18px 36px rgba(1,23,91,.13)}
.news-card__body{display:flex;flex:1;flex-direction:column;gap:6px;padding:14px 16px 16px}
.news-card h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:1.04rem;font-weight:600;line-height:1.3}
.news-card time{font-size:.84rem}
.news-card__sum{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--muted);font-size:.9rem;line-height:1.5}
.news-card__go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:8px;color:var(--sun);font-weight:500;font-size:.9rem}
.news-card__go::after{content:"";width:7px;height:7px;border-top:1.8px solid currentColor;border-right:1.8px solid currentColor;transform:rotate(45deg);transition:transform .25s var(--ease)}
.news-card a:hover .news-card__go::after{transform:translateX(4px) rotate(45deg)}
.news-grid{gap:14px}
@media (max-width:559.98px){
  .news-grid:not(.news-grid--three){grid-template-columns:minmax(0,1fr);gap:10px}
  .news-grid:not(.news-grid--three) .news-card a{display:grid;grid-template-columns:118px minmax(0,1fr)}
  .news-grid:not(.news-grid--three) .news-card__img{aspect-ratio:auto;min-height:118px}
  .news-grid:not(.news-grid--three) .news-card__img>img{position:absolute;inset:0}
  .news-grid:not(.news-grid--three) .news-card__body{gap:3px;padding:10px 12px}
  .news-grid:not(.news-grid--three) .news-card__sum{display:none}
  .news-grid:not(.news-grid--three) .news-card h3{font-size:.96rem}
  .news-grid:not(.news-grid--three) .news-card__go{padding-top:4px;font-size:.84rem}
}

/* Values bulb */
.k-lamp{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.k-lamp__item h3{margin-bottom:6px}
.k-lamp__bulb,.k-lamp__say{display:none}
.is-live .k-lamp__bulb{position:relative;display:block;width:min(100%,300px);margin-inline:auto;isolation:isolate}
.is-live .k-lamp__bulb::before{content:"";position:absolute;inset:8% 4% 28%;z-index:-1;border-radius:50%;background:var(--c);opacity:.3;filter:blur(38px);transition:background-color .5s}
.k-lamp__bulb svg{display:block;width:100%;height:auto;overflow:visible}
.k-lamp__band{opacity:.62;cursor:pointer;transition:opacity .35s}
.k-lamp__band.is-on{opacity:1}
.k-lamp__word{fill:#fff;font-size:21px;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:opacity .3s}
.k-lamp__rays line{stroke:var(--c);stroke-width:4;stroke-linecap:round;transition:stroke .5s;animation:lamp-ray 1.8s ease-in-out infinite}
.k-lamp__rays line:nth-child(even){animation-delay:.5s}
@keyframes lamp-ray{50%{opacity:.35}}
.k-lamp__base rect,.k-lamp__base path{fill:#2a2e38}
.is-live .k-lamp__item{cursor:pointer}
.k-lamp__say{padding:18px;border-radius:var(--r);color:#fff;transition:background-color .4s}
.k-lamp__say h3{margin-bottom:6px;color:#fff;font-size:1.25rem}
.k-lamp__say p{text-align:left!important}
@media (max-width:899.98px){
  .is-live{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .is-live .k-lamp__bulb{grid-column:1/-1;width:min(84%,320px)}
  .is-live .k-lamp__say{grid-column:1/-1;display:block;min-height:152px}
  .is-live .k-lamp__item{display:grid;place-items:center;min-height:46px;padding:4px;border-radius:12px;background:var(--chalk);text-align:center}
  .is-live .k-lamp__item h3{margin:0;color:var(--blazer);font-size:.78rem;font-weight:600}
  .is-live .k-lamp__item p{display:none}
  .is-live .k-lamp__item.is-on{background:var(--c)}
  .is-live .k-lamp__item.is-on h3{color:#fff}
}
@media (min-width:900px){
  .is-live{grid-template-columns:minmax(0,1fr) minmax(280px,360px) minmax(0,1fr);grid-template-rows:repeat(3,auto);grid-auto-flow:row dense;align-items:center;gap:14px clamp(16px,3vw,44px)}
  .is-live .k-lamp__bulb{grid-column:2;grid-row:1/4;width:100%}
  .is-live .k-lamp__item{padding:18px 20px;border-radius:var(--r);background:var(--chalk);transition:background-color .3s,color .3s,transform .3s var(--ease)}
  .is-live .k-lamp__item h3{color:var(--c);transition:color .3s}
  .is-live .k-lamp__item p{font-size:.96rem;line-height:1.55;text-align:left!important}
  .is-live .k-lamp__item:nth-of-type(odd){grid-column:1}
  .is-live .k-lamp__item:nth-of-type(even){grid-column:3}
  .is-live .k-lamp__item.is-on{background:var(--c);color:#fff;transform:scale(1.03)}
  .is-live .k-lamp__item.is-on h3{color:#fff}
}

/* Letters, jobs and text on phones */
.k-sign{margin-top:1.2em}
.k-sign strong,.k-sign span{display:block}
.k-sign strong{margin-top:6px;color:var(--blazer);font-weight:600}
.k-sign span{color:var(--muted);font-size:.94rem}
.k-letter .k-said{padding:18px 20px;border:0;border-radius:var(--r);background:var(--blazer);color:#fff}
.k-aim h2{color:#fff}
.k-aim .k-state{margin-block:10px 16px}
.jobs{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:10px}
.jobs li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:16px 18px;border:0;border-radius:var(--r);background:var(--paper);box-shadow:0 0 0 1px var(--line)}
.jobs .btn{min-height:42px;padding:6px 20px;background:var(--sun);border-color:var(--sun);color:#fff}
.k-steps--row>li:last-child .btn{margin-top:4px}
.mega__tiles{display:none}
@media (max-width:1179.98px){
  .mega__tiles{order:-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:calc(100% - 2*var(--gutter));max-width:calc(640px - 2*var(--gutter));margin:14px auto 0}
  .mega__tiles a{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;border-radius:var(--r);background:var(--blazer);color:#fff;text-decoration:none}
  .mega__tiles img{display:block;width:100%;height:100%;object-fit:cover}
  .mega__tiles a::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(1,23,91,.85),rgba(1,23,91,0) 60%)}
  .mega__tiles span{position:absolute;left:12px;right:12px;bottom:10px;z-index:1;font-weight:600;font-size:.96rem}
  .mega--tiles .mega__links li:nth-child(-n+4){display:none}
  .mega--tiles .mega__card{order:2;margin-block:14px}
}
@media (max-width:699.98px){
  .home.has-photo:not(.mega-open) .site-head:not(.is-solid):not(:has(.nav.is-open)):not(:hover):not(:focus-within){background:var(--paper);border-color:var(--line);color:var(--ink)}
  .home.has-photo:not(.mega-open) .site-head:not(.is-solid):not(:has(.nav.is-open)):not(:hover):not(:focus-within) .icon-btn{color:var(--blazer)}
  .pg{min-height:0}
  .bse-kit{font-size:1rem;line-height:1.65}
  .k-sec{padding-block:26px}
  .k-letter{gap:18px}
  .k-letter__who{position:relative;z-index:2;grid-template-columns:84px minmax(0,1fr);margin-top:-6px;padding:10px;border-radius:calc(var(--r) + 4px);background:var(--paper);box-shadow:0 12px 30px rgba(1,23,91,.14)}
  .k-letter__who img{height:100px;aspect-ratio:auto;object-fit:cover;object-position:top;border-radius:12px}
  .k-steps--row{margin-top:14px}
  .jobs li{padding:14px}
  .jobs h3{font-size:1rem;line-height:1.3}
  .jobs .btn{padding-inline:16px}
  .k-note{padding-left:14px}
}

/* Gallery tabs */
.seg{display:inline-flex;gap:4px;margin-bottom:18px;padding:4px;border-radius:999px;background:var(--chalk)}
.seg button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 20px;border-radius:999px;color:var(--muted);font-weight:500;transition:background-color .2s,color .2s}
.seg button span{padding:0 8px;border-radius:999px;background:rgba(1,23,91,.08);font-size:.78rem}
.seg button[aria-selected=true]{background:var(--blazer);color:#fff}
.seg button[aria-selected=true] span{background:rgba(255,255,255,.2)}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:18px}
.toolbar .find{flex:1 1 220px;max-width:320px;margin:0}
.toolbar .filters{margin:0}

/* Contact */
.contact__cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;margin-bottom:clamp(20px,3vw,32px)}
.contact__cards section{padding:clamp(16px,2vw,24px);border:0;border-radius:var(--r);background:var(--chalk)}
.contact{align-items:stretch}
.map{position:relative;display:block;min-height:320px;overflow:hidden;border-radius:var(--r);background:var(--chalk)}
.map iframe{width:100%;height:100%;min-height:320px}
.map .btn{position:absolute;left:14px;bottom:14px}
@media (min-width:900px){.contact{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px}}

/* ==========================================================================
   Inner pages, v3: one rhythm, aligned edges, justified reading text, motion
   ========================================================================== */
:root{--r2:20px;--shadow-1:0 1px 2px rgba(1,23,91,.06),0 8px 24px -12px rgba(1,23,91,.16);--shadow-2:0 2px 6px rgba(1,23,91,.06),0 28px 56px -28px rgba(1,23,91,.38);--ease-out:cubic-bezier(.16,1,.3,1)}

/* Reading text: justified on every screen, with hyphens so lines never gape */
.bse-kit p,.bse-kit li,.page-layout .prose p,.page-layout .prose li,.apply__intro p,.k-panel p,.k-panel li,.k-card p,.k-mini p,.principal__text>p:not(.principal__name),.about__text>p,.admissions__text>p,.lead-news__sum{
  text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:7 3 3;text-wrap:pretty}
.bse-kit .k-motto,.bse-kit .k-quote,.bse-kit .k-ask,.bse-kit .k-more,.bse-kit .k-cta p,.k-facts *,.k-exp,.bse-kit .btn,.bse-kit .k-menu li,.k-docs a,.k-files a,.k-go span,.k-lamp__item p,.k-lamp__say p,.k-topics__nav *,.jobs *,.k-sign,.k-sign *{text-align:left;-webkit-hyphens:manual;hyphens:manual}
.bse-kit .k-motto,.bse-kit .k-quote{text-align:center}
.bse-kit h1,.bse-kit h2,.bse-kit h3,.bse-kit h4,.prose h2,.prose h3{text-align:left;-webkit-hyphens:manual;hyphens:manual}

/* Page header */
.pg{min-height:clamp(380px,58vh,580px)}
.pg::after{background:linear-gradient(180deg,rgba(1,23,91,.7) 0,rgba(1,23,91,0) 34%),linear-gradient(0deg,rgba(1,23,91,.97) 0,rgba(1,23,91,.72) 30%,rgba(1,23,91,.1) 74%),radial-gradient(120% 80% at 0% 100%,rgba(134,2,23,.35),transparent 60%)}
.pg__img{scale:1.08;transition:scale 2.4s var(--ease-out)}
.pg.is-in .pg__img{scale:1}
.pg__body{gap:14px;padding-bottom:clamp(22px,3.2vw,40px)}
.pg__crumb{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.82);font-size:.84rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;animation:rise .9s .05s var(--ease-out) both}
.pg__crumb::before{content:"";width:28px;height:2px;border-radius:2px;background:var(--sun);box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.pg__crumb a{color:inherit;text-decoration:none}.pg__crumb a:hover{color:#fff}
.pg h1{font-size:clamp(2.1rem,4.4vw,3.7rem);font-weight:600;letter-spacing:-.035em;line-height:1.06;max-width:22ch}
.pg--long h1{max-width:30ch}
.pg h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.pg h1 .w>span{display:inline-block;animation:word-up .9s var(--ease-out) both;animation-delay:calc(.08s + var(--i,0)*55ms)}
.pg h1.is-split{animation:none}
@keyframes word-up{from{transform:translateY(105%);opacity:0}}
.pg__intro{font-size:1.08rem;color:#e6eaf5;max-width:62ch;animation:rise 1s .2s var(--ease-out) both}
.pg__nav{gap:6px;margin-top:clamp(14px,2vw,26px);padding-top:16px}
.pg__nav a{padding:8px 16px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.9rem;color:rgba(255,255,255,.86);transition:background-color .25s,color .25s,box-shadow .25s}
.pg__nav a::before{display:none}
.pg__nav a:hover{background:rgba(255,255,255,.18);color:#fff}
.pg__nav a[aria-current]{background:#fff;color:var(--blazer);box-shadow:none;font-weight:600}

/* Section rhythm */
.bse-kit{font-size:1.0625rem;line-height:1.8;color:#3a4256}
.k-sec{padding-block:clamp(56px,7.5vw,116px)}
.k-sec--pad{padding-block:clamp(36px,5vw,64px)}
.k-sec--flat{padding-block:0 clamp(56px,7.5vw,116px)}
.k-sec:not(.k-sec--tint):not(.k-sec--navy)+.k-sec:not(.k-sec--tint):not(.k-sec--navy):not(.k-sec--flat){padding-top:clamp(16px,3vw,48px)}
.k-sec--tint+.k-sec--tint{padding-top:0}
.k-sec--tint{background:linear-gradient(180deg,var(--chalk),#eef1f8)}
.k-sec--navy{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(90% 120% at 100% 0%,#0b2a86 0,var(--blazer) 55%)}
.k-sec--navy::before{content:"";position:absolute;right:-120px;top:-160px;z-index:-1;width:440px;height:440px;border-radius:50%;border:70px solid rgba(255,255,255,.035)}
.bse-kit h2{font-size:clamp(1.6rem,2.7vw,2.35rem);letter-spacing:-.03em;line-height:1.14}
.bse-kit h3{font-size:clamp(1.08rem,1.4vw,1.25rem)}
.k-in>h2,.k-split h2,.k-letter__txt>h2,.k-flow>h2{position:relative;padding-top:20px}
.k-in>h2::before,.k-split h2::before,.k-letter__txt>h2::before,.k-flow>h2::before{content:"";position:absolute;left:0;top:0;width:40px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--sun),#c4122f)}
.k-sec--navy h2::before,.k-duo h2::before,.k-mv h2::before,.k-cta h2::before,.k-aim h2::before{background:rgba(255,255,255,.8)}
.k-in>h2{margin-bottom:clamp(18px,2.4vw,28px)}
.k-in>h2+p{max-width:none}
.bse-kit p+p{margin-top:1em}
.k-big{font-size:clamp(1.15rem,1.75vw,1.42rem);line-height:1.62;letter-spacing:-.012em;color:var(--blazer);font-weight:500}

/* Text and photo side by side: equal frames, centred on one line */
.k-split{gap:clamp(28px,6vw,96px);align-items:center}
.k-split--top{align-items:start}
.k-split>*{min-width:0}
.bse-kit .k-split>.k-media{position:relative;aspect-ratio:4/3;border-radius:var(--r2);box-shadow:var(--shadow-2);background:var(--chalk)}
.bse-kit .k-split>.k-media a{height:100%}
.bse-kit .k-split>.k-media img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:50% 35%;transition:transform 1.1s var(--ease-out)}
.bse-kit .k-split>.k-media:hover img{transform:scale(1.045)}
.bse-kit .k-split>.k-media::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);pointer-events:none}

/* Photo grids: even tiles in neat rows */
.bse-kit .k-gallery,.bse-kit .bse-gallery{display:grid;columns:auto;grid-template-columns:repeat(auto-fill,minmax(min(46%,230px),1fr));gap:12px}
.bse-kit .k-gallery a,.bse-kit .bse-gallery a{margin:0;overflow:hidden;border-radius:16px;background:var(--chalk);box-shadow:var(--shadow-1)}
.bse-kit .k-gallery img,.bse-kit .bse-gallery img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;max-height:none;transition:transform .9s var(--ease-out),filter .4s}
.bse-kit .k-gallery a:hover img,.bse-kit .bse-gallery a:hover img{transform:scale(1.06)}
.bse-kit .k-gallery--1{grid-template-columns:minmax(0,min(100%,640px))}
.bse-kit .k-gallery--1 img{aspect-ratio:auto;height:auto}
.bse-kit .k-gallery--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.k-sec--navy .k-gallery a{box-shadow:0 18px 40px -20px rgba(0,0,0,.6)}
.bse-kit .k-mosaic{gap:12px}
.bse-kit .k-mosaic img{aspect-ratio:4/3;height:100%;object-fit:cover;border-radius:16px}

/* Cards */
.k-cards{gap:clamp(12px,1.6vw,20px);align-items:stretch}
.k-card{position:relative;display:flex;flex-direction:column;border-radius:var(--r2);padding:clamp(22px,2.6vw,34px);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s}
.k-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--sun),var(--blazer));transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease-out)}
.k-card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px var(--line),var(--shadow-2)}
.k-card:hover::before{transform:none}
.k-sec:not(.k-sec--tint) .k-card{background:var(--chalk);box-shadow:none}
.k-sec:not(.k-sec--tint) .k-card:hover{box-shadow:var(--shadow-2)}
.k-card .btn{margin-top:auto;align-self:flex-start}
.k-card>.btn:not(:first-child),.k-card p+.btn{margin-top:max(16px,auto)}
.k-card h3{margin-bottom:10px}

/* Facts: the About page counter */
.k-motto{font-size:clamp(1.5rem,3vw,2.5rem);font-weight:600;letter-spacing:-.03em;line-height:1.2}
.k-facts{gap:12px;margin-top:clamp(28px,4vw,52px);padding-top:0;border-top:0}
.k-facts>div{position:relative;gap:10px;padding:clamp(20px,2.4vw,30px);border-radius:var(--r2);background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.03));box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:hidden;transition:transform .5s var(--ease-out),background-color .4s,box-shadow .4s}
.k-facts>div::after{content:"";position:absolute;left:clamp(20px,2.4vw,30px);right:clamp(20px,2.4vw,30px);bottom:0;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,#fff,rgba(255,255,255,.2));transform:scaleX(0);transform-origin:0 50%;transition:transform 1.4s var(--ease-out) .25s}
.k-facts>div.is-counted::after{transform:none}
.k-facts>div:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3),0 24px 48px -24px rgba(0,0,0,.5)}
.k-facts dd{display:flex;align-items:baseline;flex-wrap:wrap;font-size:clamp(2.1rem,3.6vw,3.2rem);font-weight:600;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.k-facts dt{color:#d4dbef;font-size:.98rem;line-height:1.45}
.odo{display:inline-flex;overflow:hidden;height:1em;line-height:1;vertical-align:top}
.odo__d{position:relative;display:inline-block;height:1em;overflow:hidden;-webkit-mask:linear-gradient(transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(transparent,#000 12%,#000 88%,transparent)}
.odo__d>b{visibility:hidden;font-weight:inherit}
.odo__d>span{position:absolute;left:50%;top:0;translate:-50% 0;display:flex;flex-direction:column;align-items:center;transform:translateY(0);transition:transform 1.8s var(--ease-out);transition-delay:calc(var(--k,0)*90ms + var(--card,0)*140ms)}
.odo__d>span>i{display:block;height:1em;font-style:normal}
.odo__x{display:inline-block;opacity:0;transform:translateY(.3em);transition:opacity .6s,transform .8s var(--ease-out);transition-delay:calc(1s + var(--card,0)*140ms)}
.is-counted .odo__x{opacity:1;transform:none}
.numbers dd{font-variant-numeric:tabular-nums}

/* Steps, ticks, lists */
.k-steps{max-width:980px}
.k-steps>li{padding:0 0 clamp(14px,2vw,22px) 68px}
.k-steps>li::before{width:46px;height:46px;top:0;background:linear-gradient(140deg,#123aa8,var(--blazer));box-shadow:0 0 0 6px var(--paper),0 10px 22px -8px rgba(1,23,91,.55)}
.k-sec--tint .k-steps>li::before{box-shadow:0 0 0 6px var(--chalk),0 10px 22px -8px rgba(1,23,91,.55)}
.k-steps>li::after{left:22px;top:46px;background:linear-gradient(var(--blazer),var(--line))}
.k-steps>li>p,.k-steps>li>ul{max-width:none}
.k-steps h3{padding-top:9px}
.k-ticks{gap:12px}
.k-ticks li{padding-left:34px}
.k-ticks li::before{width:22px;height:22px;top:.25em;box-shadow:0 4px 10px -3px rgba(134,2,23,.5)}

/* Topics (tabs and accordions) */
.k-topic{border-radius:var(--r2)}
.is-tabs .k-topic[open]>.k-panel,.is-tabs .k-topic[open]>summary{animation:panel-in .55s var(--ease-out) both}
@keyframes panel-in{from{opacity:0;transform:translateY(10px)}}
@media (min-width:980px){
  .is-tabs .k-topic{border-radius:var(--r2);box-shadow:var(--shadow-1)!important}
  .k-topics__nav{gap:4px}
  .k-topics__nav button{position:relative;padding:13px 18px 13px 20px;transition:background-color .25s,color .25s,padding-left .3s var(--ease-out)}
  .k-topics__nav button::before{content:"";position:absolute;left:8px;top:50%;width:3px;height:0;border-radius:3px;background:var(--sun);transform:translateY(-50%);transition:height .3s var(--ease-out)}
  .k-topics__nav button:hover{padding-left:24px}
  .k-topics__nav button[aria-current=true]{padding-left:24px;box-shadow:0 12px 24px -14px rgba(1,23,91,.7)}
  .k-topics__nav button[aria-current=true]::before{height:22px;background:#fff}
}
.k-panel .bse-gallery{margin-top:22px}

/* Letter, quotes, calls to action */
.k-letter__who img{border-radius:var(--r2);box-shadow:var(--shadow-2)}
@media (min-width:760px){.k-letter{grid-template-columns:minmax(0,1fr) 320px;gap:clamp(36px,5vw,80px)}.k-letter__who img{aspect-ratio:4/5;height:auto;object-fit:cover;object-position:top}}
.k-cta{position:relative;overflow:hidden;isolation:isolate;padding:clamp(26px,3.6vw,48px);border-radius:24px;background:linear-gradient(120deg,var(--blazer),#0d2f92)}
.k-cta::after{content:"";position:absolute;right:-60px;top:-90px;z-index:-1;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(134,2,23,.55),transparent 70%)}
.k-quote--card,.k-aim,.k-event,.k-duo>div{border-radius:24px}
.k-files a,.k-docs a{padding:18px 20px;border-radius:16px;transition:background-color .25s,color .25s,transform .4s var(--ease-out),box-shadow .4s}
.k-files a:hover,.k-docs a:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.k-links a{transition:background-color .25s,color .25s,border-color .25s,transform .4s var(--ease-out)}
.k-links a:hover{transform:translateY(-2px)}
.k-mini{border-radius:16px}
.k-exp{border-radius:var(--r2);transition:transform .5s var(--ease-out)}
.k-exp:hover{transform:translateY(-4px) rotate(-.6deg)}
.k-go a{border-radius:var(--r2);box-shadow:var(--shadow-1)}
.k-mv__pic img{transition:transform 1.4s var(--ease-out)}
.k-mv__row:hover .k-mv__pic img{transform:scale(1.04)}
.k-mv__pic{overflow:hidden}

/* Plain text pages (news, events, older pages) */
.page-layout .prose{font-size:1.0625rem;line-height:1.85;max-width:780px}
.page-layout .prose .lead{font-size:clamp(1.12rem,1.5vw,1.28rem);line-height:1.65;font-weight:500}
.prose img{box-shadow:var(--shadow-1)}

/* Life at BSE and previous / next */
.life{padding-top:clamp(40px,5vw,72px)}
.album{border-radius:var(--r2)}
.more a{position:relative;border-radius:var(--r2);padding:clamp(18px,2.4vw,28px) clamp(20px,3vw,34px);transition:background-color .35s,color .35s,transform .5s var(--ease-out),box-shadow .5s}
.more a::after{content:"";position:absolute;top:50%;width:10px;height:10px;margin-top:-5px;border-top:2px solid currentColor;border-right:2px solid currentColor;opacity:.5;transition:transform .4s var(--ease-out),opacity .3s}
.more__prev{padding-left:clamp(44px,5vw,60px)!important}
.more__next{padding-right:clamp(44px,5vw,60px)!important}
.more__prev::after{left:clamp(20px,2.4vw,28px);transform:rotate(-135deg)}
.more__next::after{right:clamp(20px,2.4vw,28px);transform:rotate(45deg)}
.more a:hover{box-shadow:var(--shadow-2)}
.more__prev:hover::after{opacity:1;transform:translateX(-4px) rotate(-135deg)}
.more__next:hover::after{opacity:1;transform:translateX(4px) rotate(45deg)}

/* Buttons get a soft light sweep */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease-out)}
.btn:hover::after{transform:translateX(120%)}
.btn--ghost::after,.btn--white::after{background:linear-gradient(110deg,transparent 30%,rgba(1,23,91,.1) 50%,transparent 70%)}

/* Lists, cards and forms on the other inner pages */
.docs a,.jobs li,.contact__cards section,.form,.agenda li{border-radius:var(--r2)}
.docs a{transition:background-color .3s,color .3s,transform .5s var(--ease-out),box-shadow .5s}
.docs a:hover{box-shadow:var(--shadow-2)}
.jobs li{transition:transform .5s var(--ease-out),box-shadow .5s}
.jobs li:hover{transform:translateY(-3px);box-shadow:0 0 0 1px var(--line),var(--shadow-2)}
.news-card a{border-radius:var(--r2)}

/* Scroll reveal (added by motion.js only to content below the fold, so nothing flashes) */
.rv{opacity:0;transform:translate3d(0,28px,0);transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out);transition-delay:calc(var(--d,0)*75ms)}
.rv--l{transform:translate3d(-36px,0,0)}
.rv--r{transform:translate3d(36px,0,0)}
.rv--z{transform:scale(.96)}
.rv.is-in{opacity:1;transform:none}
.rv--img{opacity:1;transform:none;clip-path:inset(14% 0 0 0 round var(--r2));transition:clip-path 1.3s var(--ease-out);transition-delay:calc(var(--d,0)*75ms)}
.rv--img img{scale:1.16;transition:scale 1.6s var(--ease-out),transform 1.1s var(--ease-out)}
.rv--img.is-in{clip-path:inset(0 0 0 0 round var(--r2))}
.rv--img.is-in img{scale:1}
.k-card.rv.is-in,.k-files a.rv.is-in,.jobs li.rv.is-in,.k-exp.rv.is-in,.docs li.rv.is-in{transition:opacity .9s var(--ease-out),transform .5s var(--ease-out),box-shadow .5s}

/* Gentle depth on scroll for photos beside text */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference) and (min-width:760px){
    .bse-kit .k-split>.k-media img{animation:k-par linear both;animation-timeline:view();animation-range:cover}
    @keyframes k-par{from{translate:0 -3%}to{translate:0 3%}}
    .bse-kit .k-split>.k-media img{height:108%;margin-top:-4%}
  }
}

@media (max-width:699.98px){
  .pg{min-height:clamp(300px,52svh,420px)}
  .pg h1{font-size:clamp(1.85rem,8vw,2.4rem)}
  .pg__crumb{font-size:.76rem}
  .pg__nav a{padding:7px 14px;font-size:.86rem}
  .bse-kit{font-size:1rem;line-height:1.75}
  .k-sec{padding-block:44px}
  .k-sec--pad{padding-block:30px}
  .k-sec:not(.k-sec--tint):not(.k-sec--navy)+.k-sec:not(.k-sec--tint):not(.k-sec--navy):not(.k-sec--flat){padding-top:8px}
  .bse-kit .k-split>.k-media{aspect-ratio:3/2}
  .k-facts{gap:10px}
  .k-facts>div{padding:18px 16px}
  .k-facts dd{font-size:clamp(1.7rem,8vw,2.2rem)}
  .k-facts dt{font-size:.88rem}
  .bse-kit .k-gallery,.bse-kit .bse-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .bse-kit .k-gallery--1{grid-template-columns:minmax(0,1fr)}
  .k-steps>li{padding-left:60px}
  .k-steps>li::before{width:40px;height:40px}
  .k-steps>li::after{left:19px;top:40px}
  .more a{padding-block:16px}
}
@media (prefers-reduced-motion:reduce){
  .rv,.rv--img,.rv--img img{opacity:1!important;transform:none!important;clip-path:none!important;scale:1!important}
  .pg__img{scale:1}
}

/* Graphics and odd-shaped pictures show whole: PNG artwork, any picture far from 4:3
   (motion.js marks those), or a section where staff chose "Show the whole picture". */
.bse-kit .k-split>.k-media:is(.k-media--fit,:has(img[src*=".png"]):not(.k-media--fill)){aspect-ratio:auto;background:none;box-shadow:none}
.bse-kit .k-split>.k-media:is(.k-media--fit,:has(img[src*=".png"]):not(.k-media--fill)) img{height:auto!important;margin:0!important;object-fit:contain;animation:none!important;translate:none}
.bse-kit .k-split>.k-media:is(.k-media--fit,:has(img[src*=".png"]):not(.k-media--fill))::after{content:none}
.bse-kit .k-split>.k-media:is(.k-media--fit,:has(img[src*=".png"]):not(.k-media--fill)):hover img{transform:scale(1.02)}
.bse-kit .k-split>.k-media.k-media--fill{aspect-ratio:4/3}

/* Head of section portraits on the education pages: larger, and always the whole picture */
.bse-kit .k-letter__who img{width:100%;height:auto!important;max-height:none;aspect-ratio:auto!important;object-fit:contain!important;object-position:center;border-radius:var(--r2);background:var(--chalk);box-shadow:var(--shadow-2)}
.bse-kit .k-letter__who{margin:0}
.bse-kit .k-letter__who figcaption{margin-top:16px}
.bse-kit .k-letter__who strong{font-size:1.15rem}
@media (min-width:760px){
  .bse-kit .k-letter{grid-template-columns:minmax(0,1fr) clamp(320px,32vw,440px);gap:clamp(36px,5vw,80px)}
}
@media (max-width:759.98px){
  .bse-kit .k-letter__who{display:block;position:static;width:min(100%,400px);margin:0 0 8px;padding:0;background:none;box-shadow:none;border-radius:0}
  .bse-kit .k-letter__who img{height:auto!important;object-position:center;border-radius:var(--r2)}
  .bse-kit .k-letter__who figcaption{margin-top:12px}
}

/* ==========================================================================
   School calendar
   ========================================================================== */
.calendar__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(18px,2.4vw,32px);align-items:start}
.calendar__main,.calendar__side{min-width:0}
.calendar__side{display:grid;gap:14px}
@media (min-width:1100px){.calendar__grid{grid-template-columns:minmax(0,1fr) 340px}.calendar__side{position:sticky;top:calc(var(--head) + 24px)}}
@media (max-width:1099.98px){.calendar__grid{display:flex;flex-direction:column;align-items:stretch}.calendar__side{display:contents}.calendar__side>.cal-next{order:-1}.calendar__side>.cal-card{order:1}}

/* Month view card */
.cal{margin:0;padding:clamp(14px,2vw,24px);border-radius:24px;background:var(--paper);box-shadow:0 0 0 1px var(--line),var(--shadow-2)}
.cal__head{gap:10px 14px;margin-bottom:16px}
.cal__title{min-width:8.5em;margin:0;font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:-.03em}
.cal__title span{color:var(--muted);font-weight:500}
.cal__title::before{display:none}
.cal__arrow{width:42px;height:42px;border-color:var(--line);background:var(--paper);font-size:1.4rem;box-shadow:0 2px 6px rgba(1,23,91,.06)}
.cal__arrow:hover{transform:translateY(-1px)}
.cal__nav .chip{min-height:42px}
.cal__modes{gap:0;padding:4px;border-radius:999px;background:var(--chalk)}
.cal__modes .chip{min-height:36px;border:0;padding:4px 18px;background:none;color:var(--muted);transition:background-color .25s,color .25s,box-shadow .25s}
.cal__modes .chip[aria-pressed=true]{background:var(--paper);color:var(--blazer);box-shadow:0 3px 10px -2px rgba(1,23,91,.2)}
.cal__grid{gap:0;border:0;border-radius:18px;background:none;box-shadow:inset 0 0 0 1px var(--line)}
.cal__dow{padding:12px 4px;background:none;color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.cal__dow:nth-child(n+6){color:var(--sun)}
.cal__cell{position:relative;min-height:clamp(64px,8.6vw,118px);padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);transition:background-color .2s,box-shadow .2s}
.cal__grid>.cal__cell:nth-child(7n+7),.cal__grid>.cal__cell:nth-child(7n){border-right:0}
.cal__cell.is-weekend{background:#fafbfd}
.cal__cell.is-blank{background:repeating-linear-gradient(135deg,#f8f9fc 0 8px,#f3f5f9 8px 16px)}
.cal__cell.is-off{background:#fdf6f7}
.cal__cell.is-past .cal__num{color:#9aa3b8}
.cal__cell.is-past .cal__ev{opacity:.6}
.cal__cell.has-events:hover{background:#f2f5fc;box-shadow:inset 0 0 0 2px rgba(1,23,91,.12);z-index:2}
.cal__cell.is-picked{box-shadow:inset 0 0 0 2px var(--blazer);z-index:2}
.cal__num{font-size:.92rem;font-weight:600}
.is-today .cal__num{width:28px;height:28px;margin:-4px;box-shadow:0 6px 14px -4px rgba(134,2,23,.6)}
.cal__ev{position:relative;padding:3px 8px 3px 7px;border-left:3px solid var(--blazer);border-radius:3px 7px 7px 3px;background:#e7edfb;color:var(--blazer);font-size:.76rem;font-weight:600}
.cal__ev.is-holiday{background:#fbe5e9;color:var(--sun);border-left-color:var(--sun)}
.cal__ev.is-span{z-index:1;border-left:0;border-radius:0;margin-inline:-9px;padding-inline:17px}
.cal__ev.is-span.is-start{margin-left:0;padding-left:7px;border-left:3px solid currentColor;border-radius:3px 0 0 3px;overflow:visible;text-overflow:clip}
.cal__ev.is-span.is-end{margin-right:0;border-radius:0 7px 7px 0}
.cal__ev.is-span.is-start.is-end{border-radius:3px 7px 7px 3px}
.cal__grid.is-in-right{animation:cal-in-r .45s var(--ease-out)}
.cal__grid.is-in-left{animation:cal-in-l .45s var(--ease-out)}
@keyframes cal-in-r{from{opacity:.2;transform:translateX(26px)}}
@keyframes cal-in-l{from{opacity:.2;transform:translateX(-26px)}}
.cal__key{flex-wrap:wrap;gap:8px 18px;margin-top:14px}
.cal__key .is-weekend::before{background:#e6e9f1;box-shadow:inset 0 0 0 1px #d4d9e5}
.cal__key .is-today::before{background:var(--sun);box-shadow:0 0 0 3px rgba(134,2,23,.18)}
.cal__day{margin-top:16px;padding:0}
.cal__day:not(:empty){padding:16px 18px;border-radius:18px;background:var(--chalk);animation:panel-in .45s var(--ease-out) both}
.cal__day h3{margin-bottom:8px;font-size:1.02rem}
.cal__row{padding-block:10px;border-bottom-color:#e1e6f0}
.cal__row:last-child{border-bottom:0}

/* List view */
.cal-list{padding:clamp(14px,2vw,24px);border-radius:24px;background:var(--paper);box-shadow:0 0 0 1px var(--line),var(--shadow-2)}
.cal-list .filters{margin-bottom:14px}
.agenda{gap:6px}
.agenda li{grid-template-columns:62px minmax(0,1fr) auto auto;gap:14px;padding:12px 14px;border:0;border-radius:16px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);transition:background-color .25s,box-shadow .3s,transform .4s var(--ease-out)}
.agenda li:hover{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line),var(--shadow-1);transform:translateX(3px)}
.agenda li.agenda__month{display:block;padding:16px 4px 4px;box-shadow:none;background:none;color:var(--blazer);font-weight:600;font-size:1.05rem;letter-spacing:-.01em;transform:none}
.agenda li.agenda__month:first-child{padding-top:0}
.agenda li[hidden]{display:none}
.agenda time{border-radius:14px}
.agenda__text a{color:var(--blazer);font-weight:600;text-decoration:none}
.agenda__text a:hover{color:var(--sun)}
.agenda__in{padding:4px 10px;border-radius:999px;background:var(--chalk);color:var(--muted);font-size:.8rem;font-style:normal;font-weight:500;white-space:nowrap}
.agenda .is-next{background:linear-gradient(90deg,#fff5f6,#fff)}
.agenda .is-next .agenda__in{background:var(--sun);color:#fff}
@media (hover:none),(max-width:559.98px){.agenda li{grid-template-columns:56px minmax(0,1fr)}.agenda__in,.agenda__add{grid-column:2;justify-self:start}}

/* Sidebar */
.cal-next{position:relative;overflow:hidden;isolation:isolate;display:grid;gap:10px;padding:24px;border-radius:24px;background:radial-gradient(120% 120% at 100% 0%,#1747c0,var(--blazer) 60%);color:#fff;box-shadow:0 24px 48px -26px rgba(1,23,91,.8)}
.cal-next::after{content:"";position:absolute;right:-70px;top:-70px;z-index:-1;width:200px;height:200px;border-radius:50%;border:34px solid rgba(255,255,255,.06)}
.cal-next__eyebrow{color:#aebbe0;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.cal-next__date{display:flex;align-items:center;gap:12px}
.cal-next__date strong{font-size:3.4rem;font-weight:600;line-height:1;letter-spacing:-.05em}
.cal-next__date span{color:#d6ddf0;font-size:.95rem;font-weight:500;line-height:1.25;text-transform:uppercase;letter-spacing:.06em}
.cal-next h2{margin:0;padding:0;color:#fff;font-size:1.25rem;line-height:1.3}
.cal-next h2::before{display:none}
.cal-next h2 a{color:inherit;text-decoration:none}
.cal-next h2 a:hover{text-decoration:underline;text-underline-offset:4px}
.cal-next__when{color:#d6ddf0;font-size:.95rem}
.cal-next__in{justify-self:start;padding:5px 12px;border-radius:999px;background:var(--sun);color:#fff;font-size:.85rem;font-weight:600;box-shadow:0 6px 16px -6px rgba(134,2,23,.8)}
.cal-next .btn{justify-self:start;margin-top:6px}
.cal-card{padding:20px;border-radius:24px;background:var(--paper);box-shadow:0 0 0 1px var(--line),var(--shadow-1)}
.cal-card h2{margin:0 0 12px;padding:0;font-size:1.08rem}
.cal-card h2::before{display:none}
.cal-soon{display:grid;gap:2px}
.cal-soon li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;padding:8px;margin:0 -8px;border-radius:14px;transition:background-color .2s}
.cal-soon li:hover{background:var(--chalk)}
.cal-soon time{display:grid;justify-items:center;padding:5px 0;border-radius:12px;background:var(--chalk);line-height:1.1}
.cal-soon li:hover time{background:var(--paper)}
.cal-soon time strong{color:var(--blazer);font-size:1.1rem;font-weight:600}
.cal-soon time span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.cal-soon a{color:var(--blazer);font-weight:500;line-height:1.3;text-decoration:none}
.cal-soon a:hover{color:var(--sun)}
.cal-soon small{display:block;margin-top:2px;color:var(--muted);font-size:.8rem;font-weight:400}
.cal-files .bse-row,.cal-files .bse-col{display:grid;gap:8px;margin:0}
.cal-files p{margin:0!important;display:block!important}
.cal-files .btn{display:flex;justify-content:space-between;width:100%;min-height:50px;padding:10px 18px;border-radius:14px;background:var(--chalk);border-color:transparent;color:var(--blazer);text-align:left}
.cal-files .btn::before{content:"";flex:none;order:2;width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E") center/contain no-repeat}
.cal-files .btn:hover{background:var(--blazer);color:#fff;box-shadow:none}
@media (max-width:699.98px){
  .cal{padding:12px;border-radius:20px}
  .cal__head{display:grid;grid-template-columns:1fr auto;align-items:center}
  .cal__title{min-width:0;font-size:1.35rem}
  .cal__nav{grid-column:1/-1;grid-row:2}
  .cal__modes{grid-column:2;grid-row:1}
  .cal__cell{min-height:50px;padding:6px 2px;border-right:0}
  .cal__ev.is-span{margin:0}
  .cal__cell.is-off .cal__num{color:var(--sun)}
  .cal-next{padding:20px}
  .cal-next__date strong{font-size:2.8rem}
}

/* List view: the month card becomes a slim toolbar */
.cal.is-list{padding:0;margin-bottom:12px;background:none;box-shadow:none}
.cal.is-list .cal__head{justify-content:flex-end;margin:0}
/* Phones: events become dots, breaks a thin bar under the dates */
@media (max-width:699.98px){
  .cal__cell{justify-items:center;gap:4px}
  .cal__ev,.cal__ev.is-holiday{width:7px;height:7px;padding:0;margin:0;border:0;border-radius:50%;color:transparent!important;font-size:0;line-height:0;overflow:hidden}
  .cal__ev{background:var(--blazer)}
  .cal__ev.is-holiday{background:var(--sun)}
  .cal__ev.is-span,.cal__ev.is-span.is-start,.cal__ev.is-span.is-end{justify-self:stretch;width:auto;height:4px;margin:0 -3px;border:0;border-radius:0;overflow:hidden;opacity:.75}
  .cal__ev.is-span.is-start{margin-left:4px;border-radius:4px 0 0 4px}
  .cal__ev.is-span.is-end{margin-right:4px;border-radius:0 4px 4px 0}
  .cal__ev.is-span.is-start.is-end{border-radius:4px}
}
