/* radhwa-site-css v31 -- .sub-hero text-shadow changed from a hard offset outline (looked like a stroke) to a stacked zero-offset glow (softer, still legible over a bright photo) */
:root{
    --logo-blue:#2095F3;--logo-green:#4BAE50;--hero-blue:#0084BC;--highlight:#4BAE50;--highlight-text:#7dc581;
    --btn:#1a7ac7;--btn-hover:#cc4e00;--yellow:#FCE800;--offwhite:#EBF2FA;
    --ink:#485056;--ink-dark:#1c2226;--white:#ffffff;--border:#E2E8EF;--ib:#004587;
    --font-display:"Gilroy", sans-serif;--font-serif:"Gilroy", sans-serif;--font-arabic:"Noto Sans Arabic", sans-serif;
    --container:1280px;
  }
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:var(--container);margin:0 auto;padding:0 24px;}
button{font-family:inherit;cursor:pointer;}
ul{list-style:none;}
.progress-bar{position:fixed;top:0;left:0;height:3px;width:100%;z-index:9500;background:linear-gradient(90deg,var(--logo-blue),var(--highlight),var(--yellow),var(--btn-hover));transform:scaleX(0);transform-origin:left;will-change:transform;transition:transform .1s linear;}
.aurora{position:fixed;inset:0;z-index:-2;background:var(--ink-dark);overflow:hidden;}
.aurora span{position:absolute;border-radius:50%;filter:blur(90px);opacity:.2;}
.aurora .b1{width:52vw;height:52vw;background:var(--hero-blue);top:-15%;left:-10%;animation:float1 26s ease-in-out infinite;}
.aurora .b2{width:40vw;height:40vw;background:var(--highlight);bottom:-10%;right:-8%;animation:float2 32s ease-in-out infinite;}
@keyframes float1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(6vw,8vh) scale(1.12);}}
@keyframes float2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-7vw,-6vh) scale(1.15);}}
.cursor-glow{position:fixed;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle, rgba(75,174,80,.32) 0%, transparent 70%);pointer-events:none;z-index:40;left:0;top:0;transform:translate(-50%,-50%);transition:opacity .3s ease;mix-blend-mode:screen;opacity:0;will-change:transform;}
.floater{position:absolute;border-radius:50%;background:var(--highlight);pointer-events:none;animation:floatDrift 12s ease-in-out infinite;z-index:1;}
.floater.sm{width:10px;height:10px;box-shadow:0 0 18px 4px rgba(75,174,80,.5);}
.floater.md{width:18px;height:18px;box-shadow:0 0 28px 7px rgba(75,174,80,.4);}
@keyframes floatDrift{0%,100%{transform:translate(0,0);}33%{transform:translate(12px,-16px);}66%{transform:translate(-9px,12px);}}
body.is-scrolling .floater,
  body.is-scrolling .aurora span{animation-play-state:paused;}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.visible{opacity:1;transform:translateY(0);}
.site-nav.scrolled{background:rgba(14,18,21,.85);padding:12px 0;box-shadow:0 8px 20px rgba(0,0,0,.15);}
.nav-row{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.nav-left{position:relative;display:flex;align-items:center;gap:12px;flex-shrink:0;}
.nav-brand{display:flex;align-items:center;}
.nav-logo-mark{height:52px;width:auto;}
.nav-toggle{display:none;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:8px;color:var(--white);}
.nav-toggle svg{width:20px;height:20px;}
.nav-full{display:flex;align-items:center;gap:4px;}
.nav-links-inline{display:flex;align-items:center;gap:4px;}
a.nav-link{color:rgba(255,255,255,.82);font-weight:600;font-size:16.1px;padding:9px 14px;border-radius:8px;transition:background .2s ease,color .2s ease;white-space:nowrap;}
a.nav-link:hover{background:rgba(255,255,255,.08);color:var(--white);}
.nav-full .nav-apply{background:var(--btn);color:var(--white);font-weight:700;font-size:15.5px;padding:11px 22px;border-radius:9px;margin-left:10px;white-space:nowrap;transition:background .2s ease;}
.nav-full .nav-apply:hover{background:var(--btn-hover);}
.nav-dropdown{position:fixed;top:76px;left:50%;transform:translateX(-50%);width:min(94vw, 920px);max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .3s ease, opacity .2s ease;}
.nav-dropdown.open{max-height:calc(100vh - 100px);opacity:1;pointer-events:auto;}
.nav-dropdown-inner{background:rgba(14,18,21,.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:30px;max-height:calc(100vh - 100px);overflow-y:auto;box-shadow:0 30px 60px -18px rgba(0,0,0,.6);}
.mega-columns{display:grid;grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));gap:30px;}
.mega-col{display:flex;flex-direction:column;gap:1px;}
.mega-col-title{display:block;font-family:var(--font-serif);color:var(--white);font-size:17px;font-weight:600;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.14);transition:color .2s ease;}
a.mega-col-title:hover{color:var(--highlight-text);}
.mega-link{display:block;color:rgba(255,255,255,.6);font-size:15.5px;font-weight:500;padding:6px 0;transition:color .2s ease, padding-left .2s ease;}
.mega-link:hover{color:var(--white);padding-left:4px;}
.mega-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap;}
.mega-footer .nav-search-mobile{flex:1;min-width:200px;margin-top:0;}
.mega-footer .nav-apply{flex:0 0 auto;background:var(--btn);color:var(--white);font-weight:700;font-size:15.5px;padding:12px 22px;border-radius:9px;transition:background .2s ease;}
.mega-footer .nav-apply:hover{background:var(--btn-hover);}
.nav-item-dropdown{position:relative;}
.nav-submenu{position:absolute;top:100%;left:0;min-width:200px;background:rgba(14,18,21,.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease, transform .2s ease, visibility .2s;box-shadow:0 20px 44px -14px rgba(0,0,0,.5);z-index:10;}
.nav-item-dropdown:hover .nav-submenu{opacity:1;visibility:visible;transform:translateY(0);}
.nav-submenu a{display:block;padding:9px 12px;border-radius:8px;color:rgba(255,255,255,.8);font-size:15.5px;font-weight:600;white-space:nowrap;transition:background .2s ease,color .2s ease;}
.nav-submenu a:hover{background:rgba(255,255,255,.08);color:var(--white);}
.lang-trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;background:none;border:0;color:rgba(255,255,255,.82);transition:background .2s ease,color .2s ease;}
.lang-trigger:hover, .lang-trigger[aria-expanded="true"]{background:rgba(255,255,255,.08);color:var(--white);}
.lang-trigger svg{width:19px;height:19px;}
.lang-menu{min-width:150px;}
.lang-option{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.lang-option.active{color:var(--highlight-text);font-weight:700;}
.lang-option.active::after{content:"✓";font-size:13.8px;}
.lang-toggle-mobile{display:flex;gap:6px;}
.lang-pill{padding:9px 16px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.7);font-family:var(--font-display);font-weight:700;font-size:14.9px;}
.lang-pill.active{background:var(--highlight);border-color:var(--highlight);color:var(--white);}
.nav-search-wrap{position:relative;display:flex;align-items:center;margin-left:2px;}
.nav-search-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:none;border:0;color:rgba(255,255,255,.8);transition:background .2s ease,color .2s ease;flex:0 0 auto;}
.nav-search-btn:hover, .nav-search-btn[aria-expanded="true"]{background:rgba(255,255,255,.08);color:var(--white);}
.nav-search-btn svg{width:18px;height:18px;}
.nav-search-box{position:absolute;top:calc(100% + 12px);right:0;width:0;overflow:hidden;opacity:0;pointer-events:none;transition:width .25s ease, opacity .2s ease;background:rgba(14,18,21,.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.14);border-radius:12px;box-shadow:0 20px 44px -14px rgba(0,0,0,.5);}
.nav-search-box.open{width:230px;opacity:1;pointer-events:auto;padding:8px;}
.nav-search-box input{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:8px 12px;color:var(--white);font-family:var(--font-display);font-size:15.5px;}
.nav-search-box input::placeholder{color:rgba(255,255,255,.6);}
.nav-search-mobile{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:9px;padding:10px 12px;margin-top:8px;}
.nav-search-mobile svg{width:16px;height:16px;stroke:rgba(255,255,255,.5);flex:0 0 auto;}
.nav-search-input-mobile{flex:1;background:none;border:0;color:var(--white);font-family:var(--font-display);font-size:16.1px;}
.nav-search-input-mobile::placeholder{color:rgba(255,255,255,.6);}
.site-nav.scrolled .nav-full{display:none;}
.site-nav.scrolled .nav-toggle{display:flex;}
@media (max-width:900px){.nav-full{display:none;}.nav-toggle{display:flex;}}
.sub-hero{position:relative;height:62vh;min-height:420px;overflow:hidden;}
.sub-hero img{width:100%;height:100%;object-fit:cover;}
.sub-hero-content{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px;}
/* Stacked, zero-offset glow (not an outline) -- several blur radii at
   decreasing opacity, centred directly under the glyphs. Still holds up
   over a washed-out sky or other near-white patch of a photo, but reads
   as a soft shadow rather than a hard stroke around the letters. */
.sub-hero-eyebrow{color:var(--yellow);font-size:14.4px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;text-shadow:0 0 4px rgba(0,0,0,.85), 0 0 12px rgba(0,0,0,.65), 0 2px 10px rgba(0,0,0,.5);}
.sub-hero h1{font-family:var(--font-serif);color:var(--white);font-weight:600;font-size:clamp(38px,7vw,80px);text-shadow:0 0 6px rgba(0,0,0,.85), 0 0 18px rgba(0,0,0,.65), 0 0 36px rgba(0,0,0,.45), 0 8px 40px rgba(0,0,0,.35);}
.section-heading .eyebrow{color:var(--highlight-text);font-size:13.8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px;}
.section-heading h2{font-family:var(--font-serif);color:var(--white);font-size:clamp(26px,3vw,36px);font-weight:600;}
.section-heading p{color:rgba(255,255,255,.6);font-size:16.7px;margin-top:10px;}
.sub-about{position:relative;z-index:2;padding:80px 0 20px;}
.sub-about-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.sub-about-eyebrow{color:var(--highlight-text);font-size:13.8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;}
.sub-about-grid h2{font-family:var(--font-serif);color:var(--white);font-size:clamp(28px,3.4vw,40px);font-weight:600;margin-bottom:18px;line-height:1.2;}
.sub-about-grid p{color:rgba(255,255,255,.68);font-size:17.2px;margin-bottom:16px;}
.grade-badge{display:inline-block;background:rgba(75,174,80,.14);color:var(--highlight-text);font-weight:700;font-size:14.9px;padding:8px 16px;border-radius:999px;margin-bottom:18px;}
.sub-about-photo{border-radius:20px;overflow:hidden;aspect-ratio:4/3;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 44px -18px rgba(0,0,0,.5);transition:box-shadow .25s ease,transform .25s ease;}
.sub-about-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .3s ease;}
.sub-about-photo:hover{box-shadow:0 34px 70px -18px rgba(0,0,0,.65);transform:translateY(-4px);}
.sub-about-photo:hover img{transform:scale(1.08);filter:brightness(1.08);}
@media (max-width:820px){.sub-about-grid{grid-template-columns:1fr;gap:32px;}.sub-about-photo{order:-1;}}
.paperless-spotlight{position:relative;padding:70px 0;background:linear-gradient(180deg, transparent, rgba(75,174,80,.09) 35%, rgba(75,174,80,.09) 65%, transparent);overflow:hidden;}
.paperless-content{max-width:720px;margin:0 auto;text-align:center;position:relative;z-index:2;}
.paperless-content .eyebrow{color:var(--highlight-text);font-size:13.8px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;}
.paperless-content h2{color:var(--white);font-family:var(--font-serif);font-size:clamp(26px,3.2vw,38px);font-weight:600;line-height:1.2;margin-bottom:16px;}
.paperless-content p{color:rgba(255,255,255,.68);font-size:16.7px;line-height:1.75;max-width:600px;margin:0 auto 36px;}
.paperless-pillars{display:flex;flex-wrap:wrap;justify-content:center;gap:36px;}
.paperless-pillar{flex:0 1 200px;text-align:center;}
.paperless-pillar-icon{width:56px;height:56px;border-radius:50%;background:rgba(75,174,80,.15);border:1px solid rgba(75,174,80,.3);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.paperless-pillar-icon svg{width:24px;height:24px;stroke:var(--highlight);}
.paperless-pillar h4{color:var(--white);font-size:15.5px;font-weight:800;margin-bottom:5px;}
.paperless-pillar p{color:rgba(255,255,255,.55);font-size:13.8px;line-height:1.55;margin:0;}
.paperless-teaser-link{display:inline-flex;align-items:center;gap:6px;color:var(--highlight-text);font-size:14.9px;font-weight:700;margin-top:8px;}
.principal-section{position:relative;z-index:2;padding:80px 0;}
.principal-card:hover{box-shadow:0 34px 70px -18px rgba(0,0,0,.6);transform:translateY(-4px);background:rgba(255,255,255,.07);}
.principal-card + .principal-card{margin-top:20px;}
.principal-card{max-width:760px;margin:20px auto 0;padding:36px 34px;display:flex;gap:30px;align-items:flex-start;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:22px;box-shadow:0 20px 44px -20px rgba(0,0,0,.4);transition:box-shadow .25s ease,transform .25s ease,background .25s ease;}
.principal-card.reverse{flex-direction:row-reverse;}
.principal-avatar img{width:100%;height:100%;object-fit:cover;}
.principal-avatar.placeholder{background:rgba(255,255,255,.08);border:1.5px dashed rgba(255,255,255,.3);box-shadow:none;display:flex;align-items:center;justify-content:center;}
.principal-avatar.placeholder svg{width:34px;height:34px;stroke:rgba(255,255,255,.4);}
.principal-quote{font-family:var(--font-serif);font-weight:500;color:rgba(255,255,255,.85);font-size:17px;line-height:1.6;margin-bottom:14px;}
.principal-name{color:var(--white);font-weight:700;font-size:16.1px;}
.principal-role{color:rgba(255,255,255,.5);font-size:14.4px;}
@media (max-width:600px){.principal-card, .principal-card.reverse{flex-direction:column;align-items:center;text-align:center;}}
.method-section{position:relative;z-index:2;padding:0 0 80px;}
.method-row{max-width:var(--container);margin:0 auto;padding:0 24px;display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:6px 0;}
.method-item{flex:1 1 220px;max-width:270px;padding:0 24px;position:relative;transition:transform .2s ease;}
.method-item:hover{transform:translateY(-4px);}
.method-number{font-family:var(--font-display);font-size:44px;font-weight:800;color:rgba(255,255,255,.08);line-height:1;margin-bottom:-6px;}
.method-icon{width:34px;height:34px;margin-bottom:12px;}
.method-icon svg{width:100%;height:100%;stroke:#6cc2ff;}
.method-item h4{color:var(--white);font-size:17.2px;font-weight:800;margin-bottom:6px;}
.method-item p{color:rgba(255,255,255,.6);font-size:14.4px;line-height:1.5;}
.method-divider{width:1px;align-self:stretch;background:rgba(255,255,255,.12);margin:8px 0;}
.teach-spotlight{max-width:640px;margin:0 auto;}
.teach-spotlight-display{position:relative;min-height:200px;text-align:center;}
.teach-spotlight-item{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease;}
.teach-spotlight-item.active{opacity:1;pointer-events:auto;transform:translateY(0);position:relative;}
.teach-spotlight-icon{width:64px;height:64px;border-radius:50%;background:rgba(75,174,80,.14);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.teach-spotlight-icon svg{width:28px;height:28px;stroke:var(--highlight);}
.teach-spotlight-item h3{color:var(--white);font-family:var(--font-serif);font-size:20px;font-weight:600;margin-bottom:10px;}
.teach-spotlight-item p{color:rgba(255,255,255,.62);font-size:16.1px;line-height:1.7;max-width:460px;}
.teach-spotlight-tabs{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:26px;}
.teach-tab{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.16);color:rgba(255,255,255,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease,color .2s ease;}
.teach-tab svg{width:16px;height:16px;}
.teach-tab.active{background:var(--highlight);border-color:var(--highlight);color:var(--white);}
.teach-tab:hover{border-color:var(--highlight);}
@media (max-width:600px){.teach-spotlight-display{min-height:260px;}}
.curriculum-logo-row{max-width:var(--container);margin:36px auto 0;display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap;}
.curriculum-logo-row img{height:120px;width:auto;opacity:.85;transition:opacity .2s ease,transform .2s ease;animation:bob 5s ease-in-out infinite;}
.curriculum-logo-row img:nth-of-type(1){animation-delay:0s;}
.curriculum-logo-row img:nth-of-type(2){animation-delay:-1.7s;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.curriculum-logo-row img.rounded{border-radius:50%;}
.curriculum-logo-row img.rounded-corners{border-radius:16px;}
.curriculum-logo-row img:hover{opacity:1;}
.curriculum-what{max-width:var(--container);margin:36px auto 0;padding:0 24px;}
.curriculum-what-cols{display:grid;grid-template-columns:1fr 1fr;gap:36px;}
.curriculum-what-cols.compact{margin-top:38px;}
.curriculum-what-cols.compact .tag-pill{font-size:13.2px;padding:6px 12px;opacity:.85;}
.curriculum-what-col{text-align:center;}
.curriculum-what-col h4{color:var(--white);font-size:14.9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px;}
.tag-row{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;}
.tag-pill{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 14px;font-size:14.4px;color:rgba(255,255,255,.75);transition:border-color .2s ease,color .2s ease;}
.tag-pill:hover{border-color:var(--highlight);color:var(--white);}
@media (max-width:700px){.curriculum-what-cols{grid-template-columns:1fr;gap:26px;}}
.program-model-wrap{display:flex;justify-content:center;margin-bottom:8px;}
.program-model-img{width:100%;max-width:400px;height:auto;filter:drop-shadow(0 20px 44px rgba(0,0,0,.4));transition:transform .3s ease;}
.program-model-img:hover{transform:scale(1.02);}
.curriculum-note{color:rgba(255,255,255,.6);font-size:14.9px;line-height:1.7;max-width:640px;margin:0 auto;text-align:center;}
.course-sequence{display:flex;flex-direction:column;gap:30px;}
.course-lane-label{color:var(--white);font-size:14.9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;text-align:center;}
.course-lane-track{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;}
.course-step{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:8px 16px 8px 8px;transition:transform .2s ease,border-color .2s ease;}
.course-step:hover{transform:translateY(-3px);}
.course-grade{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:12.6px;color:var(--white);}
.course-name{color:var(--white);font-size:14.9px;font-weight:600;white-space:nowrap;}
.course-arrow{flex:0 0 auto;display:flex;align-items:center;color:rgba(255,255,255,.3);}
.course-arrow svg{width:18px;height:18px;}
.course-lane:nth-child(1) .course-grade{background:var(--logo-blue);}
.course-lane:nth-child(1) .course-step:hover{border-color:var(--logo-blue);}
.course-lane:nth-child(2) .course-grade{background:var(--highlight);}
.course-lane:nth-child(2) .course-step:hover{border-color:var(--highlight);}
.course-lane:nth-child(3) .course-grade{background:var(--btn-hover);}
.course-lane:nth-child(3) .course-step:hover{border-color:var(--btn-hover);}
@media (max-width:700px){
    .course-lane-track{flex-direction:column;align-items:stretch;}
    .course-step{width:100%;}
    .course-arrow{transform:rotate(90deg);align-self:center;}
  }
.section-heading.how-we-teach-heading{margin-top:64px;}
@media (max-width:820px){
    .method-row{flex-direction:column;align-items:center;}
    .method-divider{display:none;}
    .method-item{max-width:340px;width:100%;text-align:center;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.1);}
    .method-item:last-child{border-bottom:0;}
    .method-number{margin:0 auto -6px;}
  }
.admissions-section{position:relative;z-index:2;padding:0 0 80px;}
.admissions-wrap{max-width:900px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.step-item{display:flex;gap:14px;align-items:flex-start;}
.step-num{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:rgba(75,174,80,.15);color:var(--highlight-text);font-weight:800;font-size:14.9px;display:flex;align-items:center;justify-content:center;}
.step-text h4{color:var(--white);font-size:16.7px;font-weight:700;margin-bottom:2px;}
.step-text p{color:rgba(255,255,255,.55);font-size:14.4px;}
.fees-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:26px;}
.fees-card h4{color:var(--white);font-family:var(--font-serif);font-weight:600;font-size:19px;margin-bottom:10px;}
.fees-card p{color:rgba(255,255,255,.6);font-size:15.5px;margin-bottom:16px;}
.fees-card .hero-cta{opacity:1;}
@media (max-width:700px){.admissions-wrap{grid-template-columns:1fr;}}
.fee-schedule{max-width:600px;margin:56px auto 0;padding:0 24px;}
.fee-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.1);}
.fee-row:first-child{border-top:1px solid rgba(255,255,255,.1);}
.fee-grade{color:var(--white);font-size:16.1px;font-weight:700;}
.fee-amount{color:var(--highlight-text);font-size:17.2px;font-weight:800;white-space:nowrap;}
.fee-period{color:rgba(255,255,255,.6);font-size:12.6px;font-weight:600;margin-left:3px;}
.news-mini-section{position:relative;z-index:2;padding:0 0 80px;}
.news-mini-list{max-width:720px;margin:0 auto;padding:0 24px;}
.news-mini-item{display:flex;align-items:center;gap:20px;padding:20px 4px;border-bottom:1px solid rgba(255,255,255,.1);transition:padding-left .2s ease;}
.news-mini-item:first-child{border-top:1px solid rgba(255,255,255,.1);}
.news-mini-item:hover{padding-left:8px;}
.news-mini-thumb{flex:0 0 auto;width:64px;height:64px;border-radius:12px;overflow:hidden;}
.news-mini-thumb img{width:100%;height:100%;object-fit:cover;}
.news-mini-text{flex:1;min-width:0;}
.news-mini-date{color:var(--highlight-text);font-size:12.6px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}
.news-mini-title{color:var(--white);font-size:16.7px;font-weight:700;line-height:1.4;}
.news-mini-more{max-width:720px;margin:22px auto 0;padding:0 24px;text-align:center;}
.news-mini-more a{color:var(--highlight-text);font-size:15.5px;font-weight:700;display:inline-flex;align-items:center;gap:6px;transition:gap .2s ease;}
.news-mini-more a:hover{gap:10px;}
.gallery-section{position:relative;z-index:2;padding:0 0 90px;}
.coverflow-wrap{position:relative;max-width:var(--container);margin:0 auto;padding:0 24px;}
.cf-slide-inner img{width:100%;height:100%;object-fit:cover;}
.cf-arrows{display:flex;justify-content:center;gap:12px;margin-top:26px;}
.cf-arrow{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:var(--white);display:flex;align-items:center;justify-content:center;transition:background .2s ease;}
.cf-arrow:hover{background:rgba(255,255,255,.18);}
.cf-arrow svg{width:16px;height:16px;}
.hero-cta:hover{background:var(--btn-hover);}
footer{position:relative;z-index:2;background:#151a1d;padding:60px 0 0;overflow:hidden;}
.footer-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:50px;}
.footer-brand img{height:56px;margin-bottom:18px;}
.footer-brand p{color:rgba(255,255,255,.55);font-size:15.5px;margin-bottom:18px;max-width:280px;}
.footer-social{display:flex;gap:10px;direction:ltr;}
.footer-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;transition:background .2s ease;}
.footer-social a:hover{background:var(--highlight);}
.footer-social svg{width:16px;height:16px;stroke:var(--white);}
.footer-col h4{color:var(--white);font-size:14.9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px;}
.footer-col ul li{margin-bottom:11px;}
.footer-col a{color:rgba(255,255,255,.6);font-size:15.5px;transition:color .2s ease;}
.footer-col a:hover{color:var(--white);}
.footer-contact li{color:rgba(255,255,255,.6);font-size:14.9px;margin-bottom:10px;}
.footer-contact strong{color:rgba(255,255,255,.85);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:22px 24px;text-align:center;color:rgba(255,255,255,.6);font-size:14.4px;}
.footer-legal-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:14px;}
.footer-legal-links a{color:rgba(255,255,255,.55);font-size:13.8px;font-weight:600;transition:color .2s ease;}
.footer-legal-links a:hover{color:var(--white);}
.footer-legal-links .dot{color:rgba(255,255,255,.25);}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
a:focus-visible, button:focus-visible{outline:2px solid var(--highlight);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important;}.reveal{opacity:1 !important;transform:none !important;}html{scroll-behavior:auto;}}
.section-heading .section-lead{color:rgba(255,255,255,.6);font-size:16.7px;margin-top:10px;line-height:1.65;}
.about-section-block{position:relative;z-index:2;padding:80px 0;}
.about-section-block.alt{background:rgba(255,255,255,.025);}
.principal-avatar{flex:0 0 auto;width:168px;height:168px;border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.16);box-shadow:0 10px 24px -10px rgba(0,0,0,.5);}
@media (max-width:600px){.principal-card{flex-direction:column;align-items:center;text-align:center;}}
.leadership-heading{max-width:760px;margin:44px auto 20px;padding:0 24px;text-align:center;}
.leadership-heading h3{color:var(--white);font-family:var(--font-serif);font-weight:600;font-size:18px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);}
.leadership-grid{max-width:760px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.leadership-card{display:flex;gap:16px;align-items:flex-start;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:22px;box-shadow:0 16px 34px -18px rgba(0,0,0,.4);transition:box-shadow .25s ease,transform .25s ease,background .25s ease;width:100%;text-align:left;font-family:inherit;cursor:pointer;}
.leadership-card:hover{box-shadow:0 26px 50px -16px rgba(0,0,0,.55);transform:translateY(-3px);background:rgba(255,255,255,.07);}
.leadership-avatar{flex:0 0 auto;width:64px;height:64px;border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.16);}
.leadership-avatar img{width:100%;height:100%;object-fit:cover;}
.leadership-avatar.placeholder{background:rgba(255,255,255,.08);border:1.5px dashed rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;}
.leadership-avatar.placeholder svg{width:26px;height:26px;stroke:rgba(255,255,255,.4);}
.leadership-name{color:var(--white);font-weight:700;font-size:16.1px;}
.leadership-role{color:var(--highlight-text);font-size:13.2px;font-weight:700;margin-bottom:8px;}
.leadership-bio{color:rgba(255,255,255,.6);font-size:13.8px;line-height:1.55;}
@media (max-width:600px){
    .leadership-grid{grid-template-columns:1fr;}
    .leadership-card{flex-direction:column;align-items:center;text-align:center;}
  }
.leader-modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(8,11,13,.82);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .5s ease;perspective:1400px;}
.leader-modal-overlay.open{opacity:1;pointer-events:auto;}
.leader-modal{display:none;max-width:480px;width:100%;max-height:88vh;overflow-y:auto;background:#181d20;border:1px solid rgba(255,255,255,.14);border-radius:22px;position:relative;transform:rotateY(90deg) scale(.85);transition:transform .5s cubic-bezier(.34,1.56,.64,1);}
.leader-modal.active{display:block;}
.leader-modal-overlay.open .leader-modal.active{transform:rotateY(0) scale(1);}
.leader-modal-photo{width:100%;aspect-ratio:4/3;border-radius:22px 22px 0 0;overflow:hidden;}
.leader-modal-photo img{width:100%;height:100%;object-fit:cover;}
.leader-modal-photo.placeholder{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);}
.leader-modal-photo.placeholder svg{width:64px;height:64px;color:rgba(255,255,255,.3);}
.leader-modal-body{padding:28px 30px 32px;}
.leader-modal-name{color:var(--white);font-family:var(--font-serif);font-size:20px;font-weight:600;}
.leader-modal-role{color:var(--highlight-text);font-size:14.4px;font-weight:700;margin:4px 0 16px;}
.leader-modal-body p{color:rgba(255,255,255,.65);font-size:16.1px;line-height:1.7;margin-bottom:12px;}
.leader-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:rgba(8,11,13,.6);border:none;color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;}
.leader-modal-close svg{width:16px;height:16px;}
.values-columns{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:.95fr 1.15fr;gap:32px;align-items:stretch;}
.values-carousel{position:relative;border-radius:20px;overflow:hidden;min-height:340px;box-shadow:0 30px 70px -20px rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.14);transition:box-shadow .25s ease,transform .25s ease;}
.values-carousel .slide{position:absolute;inset:0;opacity:0;margin:0;animation:valuesSlideFade 16s infinite;}
.values-carousel .slide img{width:100%;height:100%;object-fit:cover;display:block;animation:valuesSlideZoom 8s infinite ease-in-out alternate;transition:filter .3s ease;}
.values-carousel .slide:nth-child(1){animation-delay:0s;}
.values-carousel .slide:nth-child(1) img{animation-delay:0s;}
.values-carousel .slide:nth-child(2){animation-delay:-4s;}
.values-carousel .slide:nth-child(2) img{animation-delay:-2s;}
.values-carousel .slide:nth-child(3){animation-delay:-8s;}
.values-carousel .slide:nth-child(3) img{animation-delay:-4s;}
.values-carousel .slide:nth-child(4){animation-delay:-12s;}
.values-carousel .slide:nth-child(4) img{animation-delay:-6s;}
@keyframes valuesSlideFade{0%,20%{opacity:1;}25%,95%{opacity:0;}100%{opacity:1;}}
@keyframes valuesSlideZoom{0%{transform:scale(1);}100%{transform:scale(1.1);}}
.values-carousel:hover img{filter:brightness(1.08);}
.values-carousel:hover{box-shadow:0 40px 90px -20px rgba(0,0,0,.7);transform:translateY(-4px);}
@media (prefers-reduced-motion: reduce){
    .values-carousel .slide{animation:none !important;opacity:0;}
    .values-carousel .slide:first-child{opacity:1;}
  }
.vision-mission-text h3{color:var(--white);font-family:var(--font-serif);font-weight:600;font-size:17.2px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
.vision-mission-text h3:not(:first-child){margin-top:26px;}
.vision-mission-text .vision-quote{font-family:var(--font-serif);font-style:italic;color:var(--white);font-size:19px;line-height:1.5;font-weight:500;}
.vision-mission-text p{color:rgba(255,255,255,.65);font-size:16.1px;line-height:1.7;}
@media (max-width:820px){
    .values-columns{grid-template-columns:1fr;gap:24px;}
    .values-carousel{min-height:260px;}
  }
.manifesto-heading{max-width:var(--container);margin:56px auto 26px;padding:0 24px;text-align:center;}
.manifesto-heading h3{color:var(--white);font-family:var(--font-serif);font-weight:600;font-size:22px;}
.values-spotlight{max-width:640px;margin:0 auto;padding:0 24px;}
.values-spotlight-display{position:relative;min-height:210px;text-align:center;}
.values-spotlight-item{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease;}
.values-spotlight-item.active{opacity:1;pointer-events:auto;transform:translateY(0);position:relative;}
.values-spotlight-icon{width:60px;height:60px;border-radius:50%;background:rgba(75,174,80,.14);border:1px solid rgba(75,174,80,.3);display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.values-spotlight-icon svg{width:26px;height:26px;stroke:var(--highlight);}
.values-spotlight-item h4{color:var(--white);font-family:var(--font-serif);font-size:19px;font-weight:600;margin-bottom:10px;max-width:440px;}
.values-spotlight-item p{color:rgba(255,255,255,.62);font-size:15.5px;line-height:1.7;max-width:440px;}
.values-spotlight-tabs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin-top:22px;}
.values-tab{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.16);color:rgba(255,255,255,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;}
.values-tab svg{width:15px;height:15px;}
.values-tab.active{background:var(--highlight);border-color:var(--highlight);color:var(--white);transform:scale(1.1);}
.values-tab:hover{border-color:var(--highlight);}
.values-spotlight-progress{max-width:200px;margin:18px auto 0;height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;}
.values-spotlight-progress-bar{height:100%;background:var(--highlight);width:0%;transition:width .05s linear;}
@media (max-width:600px){.values-spotlight-display{min-height:280px;}}
.history-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.history-grid .eyebrow{color:var(--highlight-text);font-size:13.8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;}
.history-grid h2{font-family:var(--font-serif);color:var(--white);font-size:clamp(28px,3.4vw,40px);font-weight:600;margin-bottom:18px;line-height:1.2;}
.history-grid p{color:rgba(255,255,255,.68);font-size:17.2px;margin-bottom:16px;}
.history-photo{border-radius:20px;overflow:hidden;aspect-ratio:4/3;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 44px -18px rgba(0,0,0,.5);transition:box-shadow .25s ease,transform .25s ease;}
.history-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .3s ease;}
.history-photo:hover{box-shadow:0 34px 70px -18px rgba(0,0,0,.65);transform:translateY(-4px);}
.history-photo:hover img{transform:scale(1.08);filter:brightness(1.08);}
@media (max-width:820px){.history-grid{grid-template-columns:1fr;gap:32px;}.history-photo{order:-1;}}
.accred-row{max-width:900px;margin:0 auto;padding:0 24px;display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:8px 0;}
.accred-item{flex:1 1 220px;max-width:280px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 28px;transition:transform .25s ease;}
.accred-item:hover{transform:translateY(-4px);}
.accred-chip{width:104px;height:104px;border-radius:50%;background:rgba(255,255,255,.96);display:flex;align-items:center;justify-content:center;padding:16px;margin-bottom:18px;box-shadow:0 18px 36px -16px rgba(0,0,0,.55);transition:box-shadow .25s ease;}
.accred-item:hover .accred-chip{box-shadow:0 26px 50px -14px rgba(0,0,0,.7);}
.accred-logo-bare{width:104px;height:104px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.accred-logo-bare img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 20px rgba(0,0,0,.4));}
.accred-logo-bare img.clip-round{border-radius:50%;object-fit:cover;}
.accred-chip img, .accred-logo-bare img{animation:accredBob 5s ease-in-out infinite;}
.accred-item:nth-of-type(1) img{animation-delay:0s;}
.accred-item:nth-of-type(2) img{animation-delay:-1.3s;}
.accred-item:nth-of-type(3) img{animation-delay:-2.6s;}
.accred-item:nth-of-type(4) img{animation-delay:-3.9s;}
@keyframes accredBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.accred-item h3{color:var(--white);font-size:16px;font-weight:800;margin-bottom:8px;}
.accred-item p{color:rgba(255,255,255,.6);font-size:14.9px;}
.accred-divider{width:1px;align-self:stretch;background:rgba(255,255,255,.14);margin:20px 0;}
@media (max-width:820px){.accred-row{flex-direction:column;align-items:center;gap:36px;}.accred-divider{display:none;}}
.policy-list{max-width:760px;margin:0 auto;padding:0 24px;}
.policy-accordion{border-bottom:1px solid rgba(255,255,255,.1);}
.policy-accordion:first-child{border-top:1px solid rgba(255,255,255,.1);}
.policy-accordion-head{width:100%;display:flex;align-items:center;gap:16px;padding:19px 6px;background:none;border:0;color:rgba(255,255,255,.85);cursor:pointer;text-align:left;font-family:var(--font-display);transition:padding-left .2s ease,color .2s ease;}
.policy-accordion-head:hover{padding-left:8px;color:var(--white);}
.policy-row-icon{flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:rgba(75,174,80,.14);display:flex;align-items:center;justify-content:center;}
.policy-row-icon svg{width:16px;height:16px;stroke:var(--highlight);}
.policy-row-name{flex:1;font-size:17.2px;font-weight:700;}
.policy-toggle-icon{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.08);color:rgba(255,255,255,.75);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:300;line-height:1;transition:transform .3s ease,background .2s ease,color .2s ease;}
.policy-accordion-head[aria-expanded="true"] .policy-toggle-icon{transform:rotate(45deg);background:var(--highlight);color:var(--white);}
.policy-accordion-body{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.policy-accordion-body-inner{padding:0 6px 22px 62px;}
.policy-accordion-body-inner p{color:rgba(255,255,255,.6);font-size:15.5px;line-height:1.6;margin-bottom:12px;}
.policy-pending{color:rgba(255,255,255,.4);font-style:italic;}
.value-tile{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .2s ease,border-color .2s ease;}
.value-tile:hover{transform:translateY(-5px);border-color:var(--highlight);}
.value-tile:nth-child(1){grid-column:span 2;grid-row:span 2;background:linear-gradient(160deg, rgba(75,174,80,.16), rgba(255,255,255,.05));border-radius:26px;justify-content:center;}
.value-icon{width:40px;height:40px;border-radius:11px;background:rgba(75,174,80,.15);display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.value-tile:nth-child(1) .value-icon{width:68px;height:68px;border-radius:16px;margin-bottom:20px;}
.value-tile:nth-child(1) .value-icon svg{width:30px;height:30px;}
.value-icon svg{width:19px;height:19px;stroke:var(--highlight);}
.value-tile h3{color:var(--white);font-size:16.7px;font-weight:800;margin-bottom:6px;}
.value-tile:nth-child(1) h3{font-size:18px;}
.value-tile p{color:rgba(255,255,255,.6);font-size:13.8px;line-height:1.5;}
@media (max-width:480px){
    .values-grid{grid-template-columns:1fr;grid-auto-rows:auto;}
    .value-tile:nth-child(1){grid-column:span 1;grid-row:span 1;}
  }
.accred-chip img{width:100%;height:100%;object-fit:contain;animation:accredBob 5s ease-in-out infinite;}
.accred-item:nth-of-type(1) .accred-chip img{animation-delay:0s;}
.accred-item:nth-of-type(2) .accred-chip img{animation-delay:-1.7s;}
.accred-item:nth-of-type(3) .accred-chip img{animation-delay:-3.4s;}
.current-positions-heading{max-width:760px;margin:0 auto 20px;}
.current-positions-heading h3{color:var(--white);font-family:var(--font-serif);font-size:18px;font-weight:600;}
.position-apply-btn{display:inline-flex;align-items:center;gap:8px;background:var(--btn);color:var(--white);font-weight:700;font-size:14.9px;padding:11px 22px;border-radius:9px;transition:background .2s ease;margin-top:6px;}
.position-apply-btn:hover{background:var(--btn-hover);}
.position-template-tag{display:inline-block;background:rgba(255,255,255,.08);color:rgba(255,255,255,.5);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:999px;margin-left:10px;}
.policy-download{display:inline-flex;align-items:center;gap:6px;color:var(--highlight-text);font-size:14.9px;font-weight:700;transition:gap .2s ease;}
.policy-download:hover{gap:9px;}
.policy-download svg{width:14px;height:14px;}
.contact-form{max-width:640px;margin:0 auto;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-field{margin-bottom:18px;}
.form-field label{display:block;color:rgba(255,255,255,.7);font-size:14.4px;font-weight:700;margin-bottom:7px;}
.form-field label .optional-tag{color:rgba(255,255,255,.62);font-weight:600;text-transform:none;letter-spacing:0;}
.form-field input, .form-field textarea, .form-field select{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:12px 14px;min-height:46px;color:var(--white);font-family:var(--font-display);font-size:16.1px;transition:border-color .2s ease,background .2s ease;}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{outline:none;border-color:var(--highlight);background:rgba(255,255,255,.09);}
.form-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,.5)' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:38px;}
.form-field select option{background:#1c2226;color:var(--white);}
.form-field textarea{resize:vertical;min-height:90px;}
@media (max-width:600px){.form-row{grid-template-columns:1fr;}}
.contact-school-list{max-width:760px;margin:0 auto;}
.contact-school-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:22px 4px;border-bottom:1px solid rgba(255,255,255,.1);transition:padding-left .2s ease;}
.contact-school-row:first-child{border-top:1px solid rgba(255,255,255,.1);}
.contact-school-row:hover{padding-left:10px;}
.contact-school-name{flex:0 0 auto;min-width:130px;color:var(--white);font-size:16px;font-weight:800;}
.contact-school-phone{flex:0 0 auto;color:var(--highlight-text);font-size:16.7px;font-weight:700;}
.contact-school-address{flex:1 1 220px;color:rgba(255,255,255,.55);font-size:14.9px;}
.contact-school-directions{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;color:var(--logo-blue);font-size:14.9px;font-weight:700;margin-left:auto;transition:gap .2s ease;}
.contact-school-directions:hover{gap:8px;}
.contact-school-directions svg{width:14px;height:14px;}
@media (max-width:700px){
    .contact-school-row{flex-direction:column;align-items:flex-start;gap:6px;}
    .contact-school-directions{margin-left:0;}
  }
.pending-stats-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.pending-stat{background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.22);border-radius:18px;padding:30px 22px;text-align:center;}
.pending-stat-value{font-family:var(--font-display);color:rgba(255,255,255,.35);font-size:34px;font-weight:800;margin-bottom:8px;}
.pending-stat-label{color:var(--white);font-size:16.1px;font-weight:700;margin-bottom:6px;}
.pending-stat-note{color:rgba(255,255,255,.6);font-size:13.2px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
@media (max-width:700px){.pending-stats-grid{grid-template-columns:1fr;}}
.uni-logo-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(6,1fr);gap:16px;}
.uni-logo-slot{aspect-ratio:1;border-radius:16px;background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;}
.uni-logo-slot svg{width:26px;height:26px;stroke:rgba(255,255,255,.3);}
@media (max-width:820px){.uni-logo-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:480px){.uni-logo-grid{grid-template-columns:repeat(2,1fr);}}
.support-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.support-tile{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:26px 24px;transition:transform .2s ease,box-shadow .2s ease;}
.support-tile:hover{transform:translateY(-5px);box-shadow:0 24px 48px -18px rgba(0,0,0,.5);}
.support-icon{width:44px;height:44px;border-radius:12px;background:rgba(75,174,80,.15);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.support-icon svg{width:21px;height:21px;stroke:var(--highlight);}
.support-tile h3{color:var(--white);font-size:17.2px;font-weight:800;margin-bottom:6px;}
.support-tile p{color:rgba(255,255,255,.6);font-size:14.4px;line-height:1.5;}
@media (max-width:820px){.support-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.support-grid{grid-template-columns:1fr;}}
.staff-leader-grid{max-width:var(--container);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:22px;}
.staff-leader-card{flex:0 1 180px;text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:24px 18px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;}
.staff-leader-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -18px rgba(0,0,0,.5);background:rgba(255,255,255,.07);}
.staff-leader-toggle{font-family:inherit;color:inherit;cursor:pointer;display:block;width:100%;background:none;border:none;padding:0;text-align:center;}
.staff-leader-photo{width:84px;height:84px;border-radius:50%;overflow:hidden;margin:0 auto 14px;border:2px solid rgba(255,255,255,.16);}
.staff-leader-photo img{width:100%;height:100%;object-fit:cover;}
.staff-leader-photo.placeholder{background:rgba(255,255,255,.08);border:1.5px dashed rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;}
.staff-leader-photo.placeholder svg{width:32px;height:32px;stroke:rgba(255,255,255,.4);}
.staff-leader-name{color:var(--white);font-weight:700;font-size:15.5px;margin-bottom:4px;}
.staff-leader-role{color:var(--highlight-text);font-size:13.2px;font-weight:700;}
.staff-faculty-row{max-width:var(--container);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:56px;}
.staff-faculty-item{text-align:center;transition:transform .2s ease;background:none;border:none;font-family:inherit;color:inherit;cursor:pointer;padding:0;}
.staff-faculty-item:hover{transform:translateY(-4px);}
.staff-faculty-photo{width:104px;height:104px;border-radius:50%;overflow:hidden;margin:0 auto 16px;box-shadow:0 18px 36px -16px rgba(0,0,0,.55);}
.staff-faculty-photo img{width:100%;height:100%;object-fit:cover;}
.staff-faculty-name{color:var(--white);font-weight:700;font-size:17.2px;margin-bottom:4px;}
.staff-faculty-role{color:rgba(255,255,255,.55);font-size:14.4px;}
.staff-detail{max-height:0;overflow:hidden;transition:max-height .35s ease;text-align:left;}
.staff-detail p{color:rgba(255,255,255,.6);font-size:13.2px;line-height:1.6;padding-top:10px;margin-top:10px;border-top:1px solid rgba(255,255,255,.08);}
.staff-detail p:first-child{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);}
.staff-detail-link{font-style:italic;}
.staff-detail strong{color:var(--white);}
.staff-detail a{color:var(--highlight-text);}
.staff-leader-toggle::after, .staff-faculty-item::after{content:"";display:block;width:20px;height:20px;margin:12px auto 0;background:no-repeat center/contain;opacity:.4;transition:transform .3s ease;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");}
.staff-leader-toggle[aria-expanded="true"]::after, .staff-faculty-item[aria-expanded="true"]::after{transform:rotate(180deg);}
.form-field input, .form-field textarea{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:12px 14px;color:var(--white);font-family:var(--font-display);font-size:16.1px;transition:border-color .2s ease,background .2s ease;}
.form-field input:focus, .form-field textarea:focus{outline:none;border-color:var(--highlight);background:rgba(255,255,255,.09);}
.alumni-pending{max-width:520px;margin:0 auto;text-align:center;padding:50px 30px;border:1.5px dashed rgba(255,255,255,.22);border-radius:22px;background:rgba(255,255,255,.04);}
.alumni-pending-icon{width:52px;height:52px;border-radius:50%;background:rgba(75,174,80,.14);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.alumni-pending-icon svg{width:24px;height:24px;stroke:var(--highlight);}
.alumni-pending h3{color:var(--white);font-family:var(--font-serif);font-weight:600;font-size:17px;margin-bottom:8px;}
.alumni-pending p{color:rgba(255,255,255,.55);font-size:14.9px;line-height:1.6;}
.form-consent{margin-top:2px;}
.consent-label{display:flex;align-items:flex-start;gap:10px;color:rgba(255,255,255,.65);font-size:14.4px;line-height:1.5;cursor:pointer;}
.consent-label input{flex:0 0 auto;width:16px;height:16px;margin-top:2px;accent-color:var(--highlight);cursor:pointer;}
.staff-leader-card::after, .staff-faculty-item::after{content:"";display:block;width:20px;height:20px;margin:12px auto 0;background:no-repeat center/contain;opacity:.4;transition:transform .3s ease;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");}
.staff-leader-card[aria-expanded="true"]::after, .staff-faculty-item[aria-expanded="true"]::after{transform:rotate(180deg);}
.news-full-list{max-width:760px;margin:0 auto;}
.news-full-item{display:flex;align-items:center;gap:22px;padding:24px 4px;border-bottom:1px solid rgba(255,255,255,.1);transition:padding-left .2s ease;}
.news-full-item:first-child{border-top:1px solid rgba(255,255,255,.1);}
.news-full-item:hover{padding-left:10px;}
.news-full-thumb{flex:0 0 auto;width:92px;height:92px;border-radius:14px;overflow:hidden;}
.news-full-thumb img{width:100%;height:100%;object-fit:cover;}
.news-full-text{flex:1;min-width:0;}
.news-full-meta{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.news-full-tag{background:rgba(75,174,80,.15);color:var(--highlight-text);font-size:12.1px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:999px;}
.news-full-date{color:rgba(255,255,255,.45);font-size:13.2px;font-weight:700;}
.news-full-title{color:var(--white);font-size:17.2px;font-weight:700;line-height:1.4;}
@media (max-width:600px){.news-full-thumb{width:64px;height:64px;}}
.building-row{display:flex;flex-wrap:wrap;justify-content:center;gap:40px;}
.building-item{flex:1 1 260px;max-width:320px;text-align:center;transition:transform .2s ease;}
.building-item:hover{transform:translateY(-4px);}
.building-photo{border-radius:18px;overflow:hidden;aspect-ratio:4/3;margin-bottom:18px;box-shadow:0 20px 44px -18px rgba(0,0,0,.5);}
.building-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.building-item:hover .building-photo img{transform:scale(1.06);}
.building-item h3{color:var(--white);font-size:17px;font-weight:800;margin-bottom:6px;}
.building-item p{color:rgba(255,255,255,.6);font-size:14.9px;line-height:1.6;}
.campus-masonry{column-count:3;column-gap:16px;max-width:var(--container);margin:0 auto;}
.campus-masonry img{width:100%;display:block;border-radius:14px;margin-bottom:16px;break-inside:avoid;transition:transform .3s ease,filter .3s ease;}
.campus-masonry img:hover{transform:scale(1.02);filter:brightness(1.08);}
@media (max-width:900px){.campus-masonry{column-count:2;}}
@media (max-width:560px){.campus-masonry{column-count:1;}}
.admissions-apply-cta{max-width:480px;margin:0 auto;text-align:center;padding:48px 36px;border-radius:22px;background:linear-gradient(160deg, rgba(75,174,80,.14), rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.14);}
.admissions-apply-cta .eyebrow{color:var(--highlight-text);font-size:13.8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px;}
.admissions-apply-cta h2{color:var(--white);font-family:var(--font-serif);font-size:24px;font-weight:600;margin:6px 0 8px;}
.admissions-apply-cta p{color:rgba(255,255,255,.6);font-size:15.5px;margin-bottom:22px;}
.admissions-fee-links{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:var(--container);margin:0 auto;}
.admissions-fee-link{padding:14px 26px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);color:var(--white);font-size:15.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:border-color .2s ease,background .2s ease;}
.admissions-fee-link:hover{border-color:var(--highlight);background:rgba(75,174,80,.1);}
.video-placeholder{max-width:800px;margin:0 auto;}
.video-placeholder video{width:100%;border-radius:18px;display:block;background:#000;box-shadow:0 24px 50px -18px rgba(0,0,0,.6);}
.video-placeholder-note{text-align:center;color:rgba(255,255,255,.4);font-size:13.8px;font-style:italic;margin-top:12px;}
.dates-list{max-width:640px;margin:0 auto;}
.dates-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 4px;border-bottom:1px solid rgba(255,255,255,.1);}
.dates-row:last-child{border-bottom:none;}
.dates-label{color:var(--white);font-size:15.5px;font-weight:700;}
.dates-value{color:var(--highlight-text);font-size:14.9px;font-weight:700;white-space:nowrap;}
@media (max-width:520px){.dates-row{flex-direction:column;align-items:flex-start;gap:4px;}}
.fee-row:last-child{border-bottom:none;}
.fee-modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(8,11,13,.82);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.fee-modal-overlay.open{opacity:1;pointer-events:auto;}
.fee-modal{display:none;max-width:440px;width:100%;max-height:85vh;overflow-y:auto;background:#181d20;border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:30px;position:relative;transform:translateY(14px);transition:transform .25s ease;}
.fee-modal.active{display:block;}
.fee-modal-overlay.open .fee-modal.active{transform:translateY(0);}
.fee-modal h3{color:var(--white);font-family:var(--font-serif);font-size:20px;font-weight:600;margin-bottom:18px;}
.fee-modal-close{position:absolute;top:20px;right:20px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.08);border:none;color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.fee-modal-close svg{width:16px;height:16px;}
.fee-modal .fee-note{margin-top:16px;font-size:13.2px;}
.calendar-embed{max-width:900px;margin:0 auto;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.14);}
.calendar-embed iframe{display:block;}
.facility-bento{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:var(--container);margin:0 auto;}
.facility-tile{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;box-shadow:0 20px 44px -18px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.14);transition:transform .25s ease,box-shadow .25s ease;}
.facility-tile:hover{transform:translateY(-5px);box-shadow:0 30px 56px -16px rgba(0,0,0,.65);}
.facility-bento .facility-tile:nth-child(1), .facility-bento .facility-tile:nth-child(2){grid-column:span 2;}
.facility-bento .facility-tile:nth-child(7), .facility-bento .facility-tile:nth-child(8){grid-column:span 2;}
.facility-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.facility-tile:hover img{transform:scale(1.07);}
.facility-scrim{position:absolute;inset:0;background:linear-gradient(180deg, transparent 45%, rgba(8,11,13,.9) 100%);pointer-events:none;}
.facility-label{position:absolute;left:0;right:0;bottom:0;padding:16px 18px;z-index:2;display:flex;align-items:center;gap:10px;}
.facility-icon{flex:0 0 auto;width:32px;height:32px;border-radius:9px;background:rgba(75,174,80,.25);display:flex;align-items:center;justify-content:center;}
.facility-icon svg{width:16px;height:16px;stroke:var(--highlight);}
.facility-label h4{color:var(--white);font-size:16.7px;font-weight:800;}
@media (max-width:820px){
    .facility-bento{grid-template-columns:repeat(2,1fr);}
    .facility-bento .facility-tile:nth-child(1), .facility-bento .facility-tile:nth-child(2), .facility-bento .facility-tile:nth-child(7), .facility-bento .facility-tile:nth-child(8){grid-column:span 2;}
  }
@media (max-width:480px){
    .facility-bento{grid-template-columns:1fr;}
    .facility-bento .facility-tile:nth-child(1), .facility-bento .facility-tile:nth-child(2), .facility-bento .facility-tile:nth-child(7), .facility-bento .facility-tile:nth-child(8){grid-column:span 1;}
  }
.academy-catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:var(--container);margin:0 auto;}
.academy-card{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 24px 50px -18px rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.14);transition:transform .25s ease,box-shadow .25s ease;}
.academy-card:hover{transform:translateY(-6px);box-shadow:0 34px 66px -16px rgba(0,0,0,.7);}
.academy-slide{position:absolute;inset:0;opacity:0;margin:0;animation:academyFade 14s infinite;}
.academy-slide img{width:100%;height:100%;object-fit:cover;display:block;animation:academyZoom 7s infinite ease-in-out alternate;}
.academy-slide:nth-child(1){animation-delay:0s;}
.academy-slide:nth-child(1) img{animation-delay:0s;}
.academy-slide:nth-child(2){animation-delay:-4.66s;}
.academy-slide:nth-child(2) img{animation-delay:-2.33s;}
.academy-slide:nth-child(3){animation-delay:-9.33s;}
.academy-slide:nth-child(3) img{animation-delay:-4.66s;}
@keyframes academyFade{0%,25%{opacity:1;}33%,95%{opacity:0;}100%{opacity:1;}}
@keyframes academyZoom{0%{transform:scale(1);}100%{transform:scale(1.1);}}
.academy-scrim{position:absolute;inset:0;background:linear-gradient(180deg, transparent 35%, rgba(10,14,16,.55) 65%, rgba(8,11,13,.95) 100%);pointer-events:none;}
.academy-info{position:absolute;left:0;right:0;bottom:0;padding:22px;z-index:2;}
.academy-info h3{color:var(--white);font-size:19px;font-weight:800;margin-bottom:4px;}
.academy-info p{color:rgba(255,255,255,.75);font-size:14.4px;margin-bottom:14px;}
.academy-toggle{width:100%;min-height:44px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:10px;color:var(--white);font-family:inherit;font-size:14.4px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s ease;}
.academy-toggle:hover{background:rgba(255,255,255,.22);}
.academy-toggle svg{width:15px;height:15px;transition:transform .3s ease;}
.academy-toggle[aria-expanded="true"] svg{transform:rotate(180deg);}
.academy-detail{max-height:0;overflow:hidden;transition:max-height .35s ease;margin-top:12px;}
.academy-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.academy-detail-field{background:rgba(0,0,0,.35);border-radius:8px;padding:9px 11px;}
.academy-detail-label{color:rgba(255,255,255,.5);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;}
.academy-detail-value{color:var(--white);font-size:13.8px;font-weight:700;}
@media (max-width:980px){.academy-catalog{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.academy-catalog{grid-template-columns:1fr;}.academy-card{aspect-ratio:4/3;}}
.otp-email-row{display:flex;gap:10px;}
.otp-email-row input{flex:1;}
.otp-send-btn{flex:0 0 auto;min-height:46px;padding:0 20px;background:rgba(75,174,80,.18);border:1px solid var(--highlight);border-radius:10px;color:var(--highlight-text);font-family:inherit;font-weight:700;font-size:14.9px;cursor:pointer;white-space:nowrap;transition:background .2s ease;}
.otp-send-btn:hover{background:rgba(75,174,80,.3);}
.otp-send-btn:disabled{opacity:.5;cursor:not-allowed;}
.otp-field-wrap{max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease,opacity .3s ease;}
.otp-field-wrap.open{max-height:160px;opacity:1;}
.otp-hint{color:rgba(255,255,255,.5);font-size:13.2px;line-height:1.5;margin-top:8px;}
.otp-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;}
.otp-form-message{font-size:14.9px;font-weight:600;margin:4px 0 0;min-height:0;}
.otp-form-message.success{color:var(--highlight-text);}
.otp-form-message.error{color:#ff6b6b;}
.otp-backend-note{text-align:center;color:rgba(255,255,255,.6);font-size:12.6px;font-style:italic;margin-top:14px;}
@media (max-width:560px){.otp-email-row{flex-direction:column;}}
.news-ticker-bar{background:rgba(75,174,80,.1);border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);overflow:hidden;white-space:nowrap;padding:11px 0;}
.news-ticker-track{display:inline-flex;align-items:center;gap:36px;animation:newsTickerScroll 38s linear infinite;width:max-content;}
body.is-scrolling .news-ticker-track{animation-play-state:paused;}
@keyframes newsTickerScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.news-ticker-live{display:inline-flex;align-items:center;gap:7px;color:var(--highlight-text);font-size:12.6px;font-weight:800;letter-spacing:.08em;flex:0 0 auto;}
.news-ticker-dot{width:7px;height:7px;border-radius:50%;background:var(--highlight);animation:newsLivePulse 1.6s ease-in-out infinite;}
@keyframes newsLivePulse{0%,100%{opacity:1;}50%{opacity:.3;}}
.news-ticker-item{color:rgba(255,255,255,.75);font-size:14.4px;font-weight:600;flex:0 0 auto;}
.news-ticker-item::before{content:"•";color:var(--highlight-text);margin-right:36px;}
.herald-masthead{padding:44px 0 26px;}
.herald-nameplate{text-align:center;}
.herald-nameplate h2{color:var(--white);font-family:var(--font-display);font-size:clamp(30px,5vw,52px);font-weight:900;letter-spacing:.03em;margin:0;}
.herald-subline{color:rgba(255,255,255,.55);font-size:14.4px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:10px;}
.herald-dot{width:5px;height:5px;border-radius:50%;background:var(--highlight);}
.herald-rule{height:1px;background:rgba(255,255,255,.16);}
.herald-rule-thick{height:3px;background:var(--white);margin:18px 0 12px;}
.herald-edition-strip{display:flex;align-items:center;justify-content:center;gap:10px;color:rgba(255,255,255,.65);font-size:12.6px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.herald-edition-sep{color:rgba(255,255,255,.25);}
.herald-headline-zone{display:grid;grid-template-columns:1.6fr 1fr;gap:0;max-width:var(--container);margin:0 auto;border-top:1px solid rgba(255,255,255,.14);padding-top:36px;}
.herald-lead{padding-right:44px;border-right:1px solid rgba(255,255,255,.14);}
.herald-lead-photo{border-radius:14px;overflow:hidden;aspect-ratio:16/9;margin-bottom:18px;box-shadow:0 28px 56px -20px rgba(0,0,0,.55);}
.herald-lead-photo img{width:100%;height:100%;object-fit:cover;}
.herald-lead-tag{display:inline-block;background:rgba(75,174,80,.15);color:var(--highlight-text);font-size:12.1px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:4px 11px;border-radius:999px;margin-bottom:12px;}
.herald-lead h2{color:var(--white);font-family:var(--font-display);font-size:clamp(26px,3.4vw,38px);font-weight:800;line-height:1.15;margin-bottom:16px;}
.herald-dropcap{color:rgba(255,255,255,.68);font-size:16.7px;line-height:1.8;}
.herald-dropcap::first-letter{font-family:var(--font-display);font-size:52px;font-weight:900;color:var(--white);float:left;line-height:0.8;margin:6px 8px 0 0;}
.herald-brief{padding-left:44px;}
.herald-brief-header{display:flex;align-items:center;gap:12px;margin-bottom:8px;white-space:nowrap;}
.herald-brief-header h3{color:var(--white);font-size:13.8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.herald-brief-header .herald-rule{flex:1;}
.herald-brief-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.12);font-family:inherit;cursor:pointer;padding:16px 0;transition:padding-left .2s ease;}
.herald-brief-item:hover{padding-left:6px;}
.herald-brief-item:last-child{border-bottom:none;}
.herald-brief-tag{color:var(--highlight-text);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
.herald-brief-item h4{color:var(--white);font-size:16.1px;font-weight:700;line-height:1.4;margin-top:5px;}
@media (max-width:860px){
    .herald-headline-zone{grid-template-columns:1fr;}
    .herald-lead{padding-right:0;border-right:0;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:28px;}
    .herald-brief{padding-left:0;}
  }
.herald-editorial{max-width:640px;margin:0 auto;padding:28px 32px;border-left:3px solid var(--highlight);background:rgba(255,255,255,.03);}
.herald-editorial-label{color:var(--highlight-text);font-size:12.1px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;}
.herald-editorial h3{color:var(--white);font-family:var(--font-display);font-size:19px;font-weight:700;margin-bottom:10px;}
.herald-editorial p{color:rgba(255,255,255,.62);font-size:15.5px;line-height:1.7;}
.herald-desks{display:grid;grid-template-columns:1fr 1fr;gap:20px 60px;max-width:var(--container);margin:0 auto;}
.herald-desk{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:22px 24px 8px;transition:border-color .25s ease,background .25s ease;}
.herald-desk:hover{border-color:var(--desk-accent);background:rgba(255,255,255,.04);}
.herald-desk-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.herald-desk-dot{width:8px;height:8px;border-radius:50%;background:var(--desk-accent);flex:0 0 auto;}
.herald-desk-header h3{color:var(--white);font-size:14.4px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap;}
.herald-desk-item{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.08);font-family:inherit;cursor:pointer;padding:14px 0;transition:transform .2s ease;}
.herald-desk-item:hover{transform:translateX(4px);}
.herald-desk-item:last-child{border-bottom:none;}
.herald-desk-items-wide{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;}
.herald-desk-items-wide .herald-desk-item{border-bottom:none;}
.herald-desk-thumb{flex:0 0 auto;width:58px;height:58px;border-radius:12px;overflow:hidden;box-shadow:0 8px 18px -8px rgba(0,0,0,.5);}
.herald-desk-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.herald-desk-item:hover .herald-desk-thumb img{transform:scale(1.08);}
.herald-desk-text{flex:1;min-width:0;}
.herald-desk-date{display:inline-block;color:var(--desk-accent);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--desk-accent-bg);padding:2px 9px;border-radius:999px;margin-bottom:5px;}
.herald-desk-item h4{color:var(--white);font-size:15.5px;font-weight:700;line-height:1.4;}
@media (max-width:820px){.herald-desks{grid-template-columns:1fr;}}
.news-modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(8,11,13,.82);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.news-modal-overlay.open{opacity:1;pointer-events:auto;}
.news-modal{display:none;max-width:560px;width:100%;max-height:88vh;overflow-y:auto;background:#181d20;border:1px solid rgba(255,255,255,.14);border-radius:20px;position:relative;transform:translateY(14px);transition:transform .25s ease;}
.news-modal.active{display:block;}
.news-modal-overlay.open .news-modal.active{transform:translateY(0);}
.news-modal-photo{aspect-ratio:16/9;border-radius:20px 20px 0 0;overflow:hidden;}
.news-modal-photo img{width:100%;height:100%;object-fit:cover;}
.news-modal-tag{display:inline-block;background:rgba(75,174,80,.15);color:var(--highlight-text);font-size:12.1px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:999px;margin:24px 0 0 30px;}
.news-modal-date{color:rgba(255,255,255,.45);font-size:13.2px;font-weight:700;margin-left:10px;}
.news-modal h3{color:var(--white);font-family:var(--font-display);font-size:22px;font-weight:800;line-height:1.25;margin:12px 30px 0;}
.news-modal-pending{color:rgba(255,255,255,.5);font-size:14.9px;font-style:italic;line-height:1.6;margin:14px 30px 28px;}
.news-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:rgba(8,11,13,.6);border:none;color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;}
.news-modal-close svg{width:16px;height:16px;}
/* overflow:hidden as a deliberate safety net. The active bubble grows to
   180px on mobile and can sit up to 130px from centre -- inside a 340px
   container that math genuinely pokes past the edge. Rather than keep
   re-verifying exact pixel arithmetic every time a size changes, clip
   the container once and the class of bug goes away regardless of the
   numbers involved. */
.story-orbit{position:relative;width:560px;height:560px;max-width:100%;margin:0 auto;overflow:hidden;}
.story-orbit-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;}
.story-coming-badge{background:rgba(75,174,80,.16);color:var(--highlight-text);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:6px 14px;border-radius:999px;white-space:nowrap;}
.story-orbit-item{position:absolute;left:50%;top:50%;z-index:2;will-change:transform;}
.story-orbit-item.active{z-index:20;}
.story-orbit-avatar{width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.07);border:1.5px dashed rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:width .35s ease,height .35s ease,border-color .3s ease,background .3s ease;position:relative;}
.story-orbit-avatar svg{width:28px;height:28px;stroke:rgba(255,255,255,.45);transition:opacity .25s ease;}
.story-orbit-item.active .story-orbit-avatar{width:230px;height:230px;border-color:var(--highlight);border-style:solid;background:linear-gradient(160deg, rgba(75,174,80,.16), rgba(20,26,30,.92));box-shadow:0 30px 60px -16px rgba(0,0,0,.6);}
.story-orbit-item.active .story-orbit-avatar svg{opacity:0;}
.story-orbit-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;opacity:0;pointer-events:none;transition:opacity .3s ease .1s;}
.story-orbit-item.active .story-orbit-overlay{opacity:1;}
.story-orbit-overlay p{color:rgba(255,255,255,.75);font-family:var(--font-serif);font-size:14.4px;font-style:italic;line-height:1.5;margin-bottom:8px;}
.story-orbit-byline{color:var(--highlight-text);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
@media (max-width:700px){
    .story-orbit{width:340px;height:340px;}
    .story-orbit-avatar{width:52px;height:52px;}
    .story-orbit-item.active .story-orbit-avatar{width:180px;height:180px;}
  }
.story-cms-note{text-align:center;color:rgba(255,255,255,.62);font-size:13.8px;margin-top:32px;font-style:italic;}
.stat-plain{text-align:center;}
.stat-plain .num{display:inline-block;font-weight:800;font-size:clamp(28px,3.2vw,40px);
    background:linear-gradient(110deg, #ffffff 30%, var(--yellow) 50%, #ffffff 70%);
    background-size:220% 100%;-webkit-background-clip:text;background-clip:text;
    color:transparent;-webkit-text-fill-color:transparent;animation:shine 3s linear infinite;}
.stat-plain .cap{color:rgba(255,255,255,.55);font-size:13.2px;text-transform:uppercase;letter-spacing:.07em;margin-top:6px;}
@keyframes shine{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
@media (max-width:820px){.stats-band{gap:30px;}}
.uni-logo-row{max-width:var(--container);margin:0 auto;padding:0 24px;display:flex;flex-wrap:wrap;justify-content:center;gap:28px;}
.uni-logo-chip{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;transition:transform .2s ease,background .2s ease;}
.uni-logo-chip:hover{transform:translateY(-4px);background:rgba(255,255,255,.1);}
.uni-logo-chip svg{width:26px;height:26px;stroke:rgba(255,255,255,.4);}
.support-zigzag{max-width:820px;margin:0 auto;padding:0 24px;position:relative;}
.zigzag-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:linear-gradient(180deg, var(--highlight), var(--logo-blue));transform:translateX(-50%);z-index:0;}
.zigzag-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;position:relative;z-index:1;padding:34px 0;}
.zigzag-content{text-align:right;}
.zigzag-row.reverse .zigzag-content{text-align:left;}
.zigzag-content h3{color:var(--white);font-size:17px;font-weight:800;margin-bottom:8px;}
.zigzag-content p{color:rgba(255,255,255,.6);font-size:14.9px;line-height:1.6;}
.zigzag-num{width:46px;height:46px;border-radius:50%;background:var(--ink-dark);border:2px solid var(--highlight);color:var(--highlight-text);font-family:var(--font-display);font-weight:800;font-size:16.1px;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease;}
.zigzag-row:hover .zigzag-num{background:var(--highlight);color:var(--white);transform:scale(1.1);}
@media (max-width:700px){
    .zigzag-line{left:23px;}
    .zigzag-row, .zigzag-row.reverse{grid-template-columns:46px 1fr;gap:20px;padding:26px 0;}
    .zigzag-spacer{display:none;}
    .zigzag-content, .zigzag-row.reverse .zigzag-content{text-align:left;order:2;}
    .zigzag-num{order:1;}
  }
.results-pathway{max-width:var(--container);margin:0 auto;padding:0 24px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.pathway-line{position:absolute;top:19px;left:16.6%;right:16.6%;height:2px;background:linear-gradient(90deg, var(--highlight), var(--logo-blue));z-index:0;}
.pathway-stage{position:relative;z-index:1;padding:0 22px;text-align:center;}
.pathway-node{width:40px;height:40px;border-radius:50%;background:var(--ink-dark);border:2px solid var(--highlight);color:var(--highlight-text);font-family:var(--font-display);font-weight:800;font-size:14.9px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;transition:background .2s ease,transform .2s ease;}
.pathway-stage:hover .pathway-node{background:var(--highlight);color:var(--white);transform:scale(1.1);}
.pathway-content h3{color:var(--white);font-size:16px;font-weight:800;margin-bottom:8px;}
.pathway-content p{color:rgba(255,255,255,.6);font-size:14.9px;line-height:1.6;}
.pathway-content strong{color:var(--white);}
.pathway-content a{color:var(--highlight-text);}
@media (max-width:820px){
    .results-pathway{grid-template-columns:1fr;gap:36px;}
    .pathway-line{top:0;bottom:0;left:calc(24px + 19px);right:auto;width:2px;height:auto;background:linear-gradient(180deg, var(--highlight), var(--logo-blue));}
    .pathway-stage{text-align:left;padding-left:66px;}
    .pathway-node{position:absolute;left:0;top:0;margin:0;}
  }
.principal-avatar svg{width:34px;height:34px;stroke:rgba(255,255,255,.4);}
.sitemap-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(6,1fr);gap:36px;}
.sitemap-col h3{font-family:var(--font-serif);color:var(--white);font-size:17px;font-weight:600;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.12);}
.sitemap-col a{display:block;color:rgba(255,255,255,.6);font-size:15.5px;padding:6px 0;transition:color .2s ease,padding-left .2s ease;}
.sitemap-col a:hover{color:var(--white);padding-left:4px;}
@media (max-width:980px){.sitemap-grid{grid-template-columns:1fr 1fr 1fr;}}
@media (max-width:620px){.sitemap-grid{grid-template-columns:1fr 1fr;}}
.legal-doc{max-width:760px;margin:0 auto;padding:0 24px;}
.legal-updated{color:rgba(255,255,255,.5);font-size:14.9px;margin-bottom:36px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1);}
.legal-doc p{color:rgba(255,255,255,.72);font-size:17.2px;line-height:1.75;margin-bottom:18px;}
.legal-doc h2{font-family:var(--font-serif);color:var(--white);font-size:clamp(19px,2.2vw,23px);font-weight:600;margin:40px 0 14px;}
.legal-doc h2:first-of-type{margin-top:0;}
.legal-doc ul{margin:0 0 18px;padding-left:22px;}
.legal-doc li{color:rgba(255,255,255,.72);font-size:17.2px;line-height:1.75;list-style:disc;margin-bottom:8px;}
.legal-doc a{color:var(--logo-blue);text-decoration:underline;text-underline-offset:2px;}
.legal-doc a:hover{color:var(--highlight-text);}
.legal-doc strong{color:var(--white);}
body{font-family:var(--font-display);color:var(--ink);background:var(--ink-dark);line-height:1.6;overflow-x:hidden;cursor:auto;}
.intro-overlay{position:fixed;inset:0;z-index:9999;background:var(--ink-dark);transition:opacity .9s ease;}
.intro-overlay.hide{opacity:0;pointer-events:none;}
.intro-dot{position:fixed;width:19.4px;height:19.4px;border-radius:50%;background:var(--highlight);
    box-shadow:0 0 30px 10px rgba(75,174,80,.65);transform:translate(-50%,-50%);z-index:10000;
    transition:left .9s cubic-bezier(.22,1,.36,1), top .9s cubic-bezier(.22,1,.36,1);}
.intro-trail{position:fixed;border-radius:50%;background:var(--highlight);pointer-events:none;z-index:9998;
    animation:trailFade .6s ease forwards;}
@keyframes trailFade{to{opacity:0;transform:scale(.3);}}
body.intro-active{overflow:hidden;}
.floater.lg{width:30px;height:30px;box-shadow:0 0 42px 10px rgba(75,174,80,.32);opacity:.8;}
body.notice-dismissed .site-nav{top:0;}
.notice-ticker-bar{position:fixed;top:0;left:0;right:0;z-index:60;height:38px;background:var(--btn-hover);overflow:hidden;transition:transform .3s ease;}
body.notice-dismissed .notice-ticker-bar{transform:translateY(-100%);pointer-events:none;}
.notice-ticker-inner{height:100%;display:flex;align-items:center;gap:10px;padding:0 16px;max-width:var(--container);margin:0 auto;}
.notice-ticker-icon{flex:0 0 auto;width:16px;height:16px;stroke:var(--white);}
.notice-ticker-scroll{flex:1;overflow:hidden;white-space:nowrap;}
.notice-ticker-track{display:inline-flex;gap:60px;animation:noticeTickerScroll 16s linear infinite;width:max-content;}
body.is-scrolling .notice-ticker-track{animation-play-state:paused;}
@keyframes noticeTickerScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.notice-ticker-track span{color:var(--white);font-size:14.4px;font-weight:700;}
.notice-ticker-close{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.18);border:none;color:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease;position:relative;}
.notice-ticker-close::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;}
.notice-ticker-close:hover{background:rgba(255,255,255,.32);}
.notice-ticker-close svg{width:13px;height:13px;}
@media (max-width:900px){
    .nav-full{display:none;}
    .nav-toggle{display:flex;}
  }
.hero-carousel{position:relative;height:100vh;min-height:600px;overflow:hidden;}
.hero-carousel{perspective:1600px;}
.hero-slide{position:absolute;inset:0;opacity:0;z-index:1;
    transition:opacity 1s ease, transform 1.15s cubic-bezier(.16,1,.3,1);}
.hero-slide.active{opacity:1;z-index:2;}
.hero-slide .hero-bg{width:100%;height:100%;object-fit:cover;}
.anim-unroll{transform:rotateX(-20deg) scale(.96);transform-origin:top center;}
.anim-unroll.active{transform:rotateX(0deg) scale(1);}
.anim-flip{transform:rotateY(85deg) scale(.9);transform-origin:left center;}
.anim-flip.active{transform:rotateY(0deg) scale(1);}
.anim-push{transform:translateX(9%) scale(1.04);}
.anim-push.active{transform:translateX(0) scale(1);}
.anim-zoom{transform:scale(1.22);}
.anim-zoom.active{transform:scale(1);}
.anim-foldup{transform:rotateX(20deg) scale(.96);transform-origin:bottom center;}
.anim-foldup.active{transform:rotateX(0deg) scale(1);}
.hero-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,20,32,.55) 0%, rgba(0,20,32,.35) 45%, rgba(0,20,32,.75) 100%);}
.hero-slide-content{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px;}
.hero-eyebrow{color:var(--yellow);font-size:14.4px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px;opacity:0;}
.hero-slide.active .hero-eyebrow{animation:riseIn .7s ease forwards .2s;}
.hero-slide-icon{height:150px;width:auto;max-width:340px;margin-bottom:24px;opacity:0;}
.hero-slide.active .hero-slide-icon{animation:riseIn .7s ease forwards .2s;}
.hero-title{font-family:var(--font-serif);color:var(--white);font-weight:600;font-size:clamp(32px,5.4vw,60px);line-height:1.12;max-width:820px;margin-bottom:18px;opacity:0;}
.hero-slide.active .hero-title{animation:riseIn .7s ease forwards .35s;}
.hero-sub{color:rgba(255,255,255,.82);font-size:clamp(15px,1.6vw,18px);max-width:520px;margin-bottom:24px;opacity:0;}
.hero-slide.active .hero-sub{animation:riseIn .7s ease forwards .5s;}
.hero-accred-row{display:flex;align-items:center;gap:22px;margin-bottom:28px;opacity:0;}
.hero-slide.active .hero-accred-row{animation:riseIn .7s ease forwards .55s;}
.hero-accred-row img{height:120px;width:auto;filter:drop-shadow(0 6px 16px rgba(0,0,0,.45));}
.hero-slide.active .hero-cta{animation:riseIn .7s ease forwards .65s;}
@keyframes riseIn{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.hero-arrows{position:absolute;bottom:110px;right:32px;z-index:4;display:flex;gap:10px;}
.hero-arrow{width:44px;height:44px;border-radius:50%;background:rgba(20,26,30,.55);border:1px solid rgba(255,255,255,.25);color:var(--white);display:flex;align-items:center;justify-content:center;transition:background .2s ease;}
.hero-arrow:hover{background:rgba(255,255,255,.25);}
.hero-arrow svg{width:18px;height:18px;}
.hero-dots{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:9px;}
/* These are <button> elements. Without an explicit reset they inherit
   the browser default button border and padding, which on a 9px dot
   dominates the shape and makes it read as a small square -- the
   testimonial dots below already had this reset, which is why only
   these looked wrong. */
.hero-dot{width:9px;height:9px;padding:0;border:0;appearance:none;-webkit-appearance:none;border-radius:999px;background:rgba(255,255,255,.32);cursor:pointer;transition:width .3s cubic-bezier(.22,1,.36,1),background .25s ease;}
.hero-dot:hover{background:rgba(255,255,255,.6);}
.hero-dot:focus-visible{outline:2px solid var(--highlight);outline-offset:3px;}
/* Active slide reads as an elongated pill rather than a scaled blob --
   clearer at a glance and consistent with the rounded geometry used
   across the rest of the site. */
.hero-dot.active{width:26px;background:var(--highlight);}

@media (max-width:700px){.hero-arrows{display:none;}.hero-dots{bottom:90px;}}
.overlay-section{position:relative;z-index:5;margin-top:-90px;padding:0 0 60px;}
.overlay-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.overlay-card{position:relative;overflow:hidden;border:1.5px solid rgba(255,255,255,.16);border-radius:20px;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;padding:24px 22px;cursor:pointer;transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;}
.overlay-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -20px rgba(0,0,0,.65);}
.overlay-bg{position:absolute;inset:0;z-index:-1;}
.overlay-bg img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.overlay-card:hover .overlay-bg img{transform:scale(1.06);}
/* Text sits directly on the photo (no background panel) -- legibility
   comes from a layered text-shadow instead, so the image stays fully
   visible behind it. Keeps the original flat markup (no wrapper divs),
   so the full-card click target (.overlay-card .more::after below)
   escalates to .overlay-card exactly like it always did. */
.overlay-card .tag, .overlay-card h3, .overlay-card p, .overlay-card a.more{position:relative;z-index:2;text-shadow:0 1px 3px rgba(0,0,0,.85), 0 3px 14px rgba(0,0,0,.6);}
.overlay-card .tag{font-size:12.6px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--highlight-text);margin-bottom:8px;}
.overlay-card h3{color:var(--white);font-size:19px;font-weight:800;margin-bottom:8px;transition:color .2s ease;}
.overlay-card:hover h3{color:var(--logo-blue);}
.overlay-card p{color:rgba(255,255,255,.65);font-size:15.5px;margin-bottom:14px;}
.overlay-card a.more{font-size:14.4px;font-weight:700;color:var(--white);display:inline-flex;align-items:center;gap:5px;transition:color .2s ease;}
.overlay-card:hover a.more{color:var(--logo-blue);}
.overlay-card a.more svg{width:13px;height:13px;transition:transform .2s ease;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7));}
.overlay-card:hover a.more svg{transform:translateX(3px);}
@media (max-width:900px){.overlay-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.overlay-grid{grid-template-columns:1fr;}.overlay-section{margin-top:-60px;}}
.about-section{position:relative;z-index:2;padding:70px 0 0;}
.about-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.about-eyebrow{color:var(--highlight-text);font-size:13.8px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;}
.about-grid h2{font-family:var(--font-serif);color:var(--white);font-size:clamp(28px,3.4vw,40px);font-weight:600;margin-bottom:18px;line-height:1.2;}
.about-grid p{color:rgba(255,255,255,.68);font-size:17.2px;margin-bottom:16px;}
.about-video-wrap{perspective:1200px;}
.about-video-slot{position:relative;border-radius:22px;aspect-ratio:4/3;border:1.5px dashed rgba(255,255,255,.28);background:rgba(255,255,255,.04);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    transform-style:preserve-3d;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);
    animation:videoIdle 7s ease-in-out infinite;
    transition:border-color .3s ease, background .3s ease, transform .1s ease-out, box-shadow .3s ease;}
.about-video-slot:hover{background:rgba(255,255,255,.07);animation-play-state:paused;
    box-shadow:0 40px 90px -22px rgba(0,0,0,.75);}
@keyframes videoIdle{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
.about-video-slot svg{width:38px;height:38px;stroke:rgba(255,255,255,.55);}
.about-video-slot .label{color:rgba(255,255,255,.75);font-size:15.5px;font-weight:600;}
.about-video-slot .sub{color:rgba(255,255,255,.6);font-size:13.2px;}
@media (max-width:820px){.about-grid{grid-template-columns:1fr;gap:32px;}.about-video-slot{order:-1;}}
.curricula-spotlight{padding:64px 0;}
.section-lead{color:rgba(255,255,255,.6);font-size:16.7px;line-height:1.7;margin-top:14px;}
.testimonials-section{position:relative;z-index:2;padding:0 0 20px;}
.testi-slider{max-width:640px;margin:0 auto;padding:0 24px;text-align:center;}
.testi-track{position:relative;min-height:230px;}
.testi-slide{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;display:flex;flex-direction:column;align-items:center;pointer-events:none;}
.testi-slide.active{opacity:1;position:relative;pointer-events:auto;}
.testi-photo{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.testi-photo svg{width:28px;height:28px;stroke:rgba(255,255,255,.45);}
.testi-quote{font-family:var(--font-serif);font-weight:500;color:rgba(255,255,255,.88);font-size:18px;line-height:1.6;margin-bottom:16px;}
.testi-who{color:var(--white);font-weight:700;font-size:16.1px;}
.testi-role{color:rgba(255,255,255,.5);font-size:14.4px;margin-top:2px;}
.testi-dots{display:flex;justify-content:center;gap:8px;margin-top:24px;}
.testi-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);border:0;padding:0;transition:background .2s ease, transform .2s ease;}
.testi-dot.active{background:var(--highlight);transform:scale(1.3);}
.staff-card-face{width:100%;height:100%;position:relative;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);overflow:hidden;}
.staff-card-face img{width:100%;height:100%;object-fit:cover;}
.staff-card-face::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 45%, rgba(0,0,0,.85) 100%);}
.staff-card-face .staff-info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 14px;text-align:center;}
.staff-card-face h4{color:var(--white);font-size:17.2px;font-weight:700;}
.staff-card-face .role{color:rgba(255,255,255,.7);font-size:13.2px;margin-top:2px;}
.news-card-face{width:100%;height:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;}
.news-card-face .thumb{flex:1;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;}
.news-card-face .thumb svg{width:30px;height:30px;stroke:rgba(255,255,255,.3);}
.news-card-face .body{padding:16px 18px;}
.news-card-face .date{color:var(--highlight-text);font-size:12.1px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.news-card-face h4{color:var(--white);font-size:16.1px;font-weight:700;line-height:1.4;}
.staff-section{position:relative;z-index:2;padding:64px 0 80px;}
.news-section{position:relative;z-index:2;padding:80px 0 80px;}
.news-bento{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:auto auto;gap:18px;}
.news-tile{position:relative;display:block;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);transition:border-color .25s ease, transform .25s ease;min-height:170px;}
.news-tile:hover{border-color:var(--logo-blue);transform:translateY(-4px);}
.news-featured{grid-column:1;grid-row:1 / 3;min-height:100%;}
.news-bento .news-tile:nth-child(2){grid-column:2;grid-row:1;}
.news-bento .news-tile:nth-child(3){grid-column:3;grid-row:1;}
.news-bento .news-tile:nth-child(4){grid-column:2;grid-row:2;}
.news-bento .news-tile:nth-child(5){grid-column:3;grid-row:2;}
.news-tile-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, rgba(32,149,243,.14), rgba(75,174,80,.1));}
.news-tile-icon svg{width:44px;height:44px;stroke:rgba(255,255,255,.28);}
.news-tile-icon.sm svg{width:28px;height:28px;}
.news-tile-body{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.55) 100%);}
.news-tag{color:var(--highlight-text);font-size:12.1px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;}
.news-featured h3{font-family:var(--font-serif);color:var(--white);font-size:clamp(20px,2.2vw,26px);font-weight:600;line-height:1.3;margin-bottom:8px;transition:color .2s ease;}
.news-featured p{color:rgba(255,255,255,.7);font-size:15.5px;max-width:360px;}
.news-tile h4{color:var(--white);font-size:16.1px;font-weight:700;line-height:1.4;transition:color .2s ease;}
.news-tile:hover h3, .news-tile:hover h4{color:var(--logo-blue);}
@media (max-width:900px){
    .news-bento{grid-template-columns:1fr 1fr;}
    .news-featured{grid-column:1 / 3;grid-row:1;min-height:220px;}
    .news-bento .news-tile:nth-child(2){grid-column:1;grid-row:2;}
    .news-bento .news-tile:nth-child(3){grid-column:2;grid-row:2;}
    .news-bento .news-tile:nth-child(4){grid-column:1;grid-row:3;}
    .news-bento .news-tile:nth-child(5){grid-column:2;grid-row:3;}
  }
@media (max-width:560px){
    .news-bento{grid-template-columns:1fr;}
    .news-featured, .news-bento .news-tile:nth-child(2), .news-bento .news-tile:nth-child(3), .news-bento .news-tile:nth-child(4), .news-bento .news-tile:nth-child(5){grid-column:1;grid-row:auto;}
  }
.campus-marquee{position:relative;z-index:2;padding:0 0 70px;}
.campus-wrap{width:100%;overflow:hidden;direction:ltr;-webkit-mask-image:linear-gradient(90deg,transparent,#fff 6%,#fff 94%,transparent);mask-image:linear-gradient(90deg,transparent,#fff 6%,#fff 94%,transparent);margin-bottom:14px;}
.campus-track{display:flex;gap:14px;width:max-content;}
.campus-track.left{animation:marqueeLeft 55s linear infinite;}
.campus-track.right{animation:marqueeRight 66s linear infinite;}
.campus-wrap:hover .campus-track{animation-play-state:paused;}
.campus-tile{height:170px;width:250px;flex:0 0 auto;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);}
.campus-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.campus-tile:hover img{transform:scale(1.07);}
@keyframes marqueeLeft{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes marqueeRight{from{transform:translateX(-50%);}to{transform:translateX(0);}}
.cta-band{position:relative;z-index:2;max-width:440px;margin:0 auto 80px;border-radius:20px;overflow:hidden;background:linear-gradient(120deg, #56C25C, #2F8A3A);padding:32px 28px;text-align:center;transition:background .3s ease, padding .3s ease;}
.cta-band.closed{background:none;padding:0;box-shadow:none;}
.cta-band.closed h2, .cta-band.closed p{display:none;}
.cta-band h2{color:var(--white);font-size:clamp(19px,2.2vw,24px);font-weight:800;margin-bottom:10px;}
.cta-band p{color:rgba(255,255,255,.8);font-size:14.9px;margin-bottom:20px;}
.cta-band .hero-cta{opacity:1;animation:none;}
@media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;}
    .reveal{opacity:1 !important;transform:none !important;}
    .intro-overlay{display:none !important;}
    html{scroll-behavior:auto;}
  }.hero-cta{background:var(--btn);color:var(--white);font-weight:700;font-size:16.1px;padding:14px 30px;border-radius:9px;transition:background .2s ease;display:inline-flex;align-items:center;gap:8px;}
button.hero-cta{border:none;font-family:inherit;cursor:pointer;}
/* Only the hero-slide buttons start hidden (they animate in with the
   slide). Previously this was scoped to the whole homepage, which
   also hid the "Admissions Open Now" button permanently -- nothing
   ever restored its opacity, so it was invisible but still there. */
.tpl-home .hero-slide-content .hero-cta{opacity:0;}
.tpl-subpage .paperless-logo{width:108px;height:108px;border-radius:50%;object-fit:cover;margin:0 auto 18px;display:block;filter:drop-shadow(0 10px 26px rgba(75,174,80,.35));animation:bob 5s ease-in-out infinite;}
.tpl-home .paperless-logo{width:108px;height:108px;border-radius:50%;object-fit:cover;margin:28px auto 0;display:block;filter:drop-shadow(0 10px 26px rgba(75,174,80,.35));animation:bob 5s ease-in-out infinite;}
.tpl-subpage .fee-note{max-width:600px;margin:16px auto 0;padding:0 24px;text-align:center;color:rgba(255,255,255,.6);font-size:13.2px;line-height:1.5;}
.tpl-fee-detail .fee-note{color:rgba(255,255,255,.5);font-size:13.8px;line-height:1.6;}
/* ============================================================
   COVERFLOW BASE — unscoped.
   These only existed under .tpl-home and .tpl-subpage. Any page using
   the carousel WITHOUT one of those body classes got a stage with no
   height and slides with no positioning, so the JS ran correctly into a
   collapsed container and nothing appeared. That is what was wrong with
   the About Us staff carousel all along -- not the engine, which was
   already identical to the homepage's.
   The .tpl-* rules below still override height and card width per
   template; this is the floor everything falls back to.
   ============================================================ */
/* Same defect as .coverflow-stage: these existed only under .tpl-*, so on
   any page without one of those body classes they had no styling at all.
   Unscoped baselines; the .tpl-* rules still override per template. */
.cf-slide-inner{width:100%;height:100%;border-radius:18px;overflow:hidden;position:relative;box-shadow:0 20px 44px -18px rgba(0,0,0,.6);}
.fee-note{max-width:600px;margin:16px auto 0;padding:0 24px;text-align:center;color:rgba(255,255,255,.6);font-size:13.2px;line-height:1.5;}
.paperless-logo{width:108px;height:108px;border-radius:50%;object-fit:cover;margin:28px auto 0;display:block;filter:drop-shadow(0 10px 26px rgba(75,174,80,.35));animation:bob 5s ease-in-out infinite;}
/* overflow:hidden added deliberately. Without it, cards translated by
   up to 190px per step (plus 3D rotation) genuinely extend past a
   phone-width viewport. html{overflow-x:hidden} does not reliably stop
   this on mobile Safari specifically -- iOS still allows a touch-drag
   pan to content that physically exists past the viewport edge,
   regardless of what an ancestor's overflow rule says. Clipping at the
   stage itself removes the overflow at its source rather than trying to
   hide a symptom further up the tree. Cosmetically this also matches
   how a coverflow is meant to look -- neighbour cards peek in from the
   container edge rather than spilling past the page. */
.coverflow-stage{position:relative;height:340px;perspective:1400px;overflow:hidden;}
.cf-slide{position:absolute;top:0;left:50%;width:220px;height:100%;
  transition:transform .6s cubic-bezier(.22,1,.36,1), opacity .6s ease, filter .6s ease;}
.tpl-subpage .coverflow-stage{position:relative;height:280px;perspective:1400px;}
.tpl-home .coverflow-stage{position:relative;height:340px;perspective:1400px;}
.tpl-subpage .cf-slide{position:absolute;top:0;left:50%;width:230px;height:100%;transition:transform .6s cubic-bezier(.22,1,.36,1), opacity .6s ease, filter .6s ease;}
.tpl-home .cf-slide{position:absolute;top:0;left:50%;width:220px;height:100%;transition:transform .6s cubic-bezier(.22,1,.36,1), opacity .6s ease, filter .6s ease;}
.tpl-subpage .cf-slide-inner{width:100%;height:100%;border-radius:16px;overflow:hidden;position:relative;box-shadow:0 20px 44px -18px rgba(0,0,0,.6);}
.tpl-home .cf-slide-inner{width:100%;height:100%;border-radius:18px;overflow:hidden;position:relative;box-shadow:0 20px 44px -18px rgba(0,0,0,.6);}.site-nav{position:fixed;top:38px;left:0;right:0;z-index:50;padding:16px 0;transition:background .3s ease, padding .3s ease, box-shadow .3s ease, top .3s ease;}
.section-heading{text-align:center;max-width:600px;margin:0 auto 44px;position:relative;z-index:2;}
.steps-list{display:flex;flex-direction:column;gap:14px;max-width:480px;margin:0 auto;}
.stats-band{max-width:var(--container);margin:64px auto 0;padding:0 24px;display:flex;justify-content:center;flex-wrap:wrap;gap:52px;}.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;background:#10141a;border-top:1px solid rgba(255,255,255,.12);box-shadow:0 -12px 40px -12px rgba(0,0,0,.6);}
.cookie-banner[hidden]{display:none;}
.cookie-banner-inner{max-width:1180px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.cookie-banner-text{margin:0;color:rgba(255,255,255,.8);font-size:15.5px;line-height:1.6;flex:1 1 420px;}
.cookie-banner-text a{color:var(--highlight-text);text-decoration:underline;}
.cookie-banner-actions{display:flex;gap:10px;flex:0 0 auto;}
.cookie-btn{padding:10px 20px;border-radius:8px;font-size:15.5px;font-weight:700;font-family:inherit;cursor:pointer;border:none;white-space:nowrap;}
.cookie-btn-decline{background:transparent;color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.25);}
.cookie-btn-decline:hover{background:rgba(255,255,255,.06);}
.cookie-btn-accept{background:var(--btn);color:var(--white);}
.cookie-btn-accept:hover{background:#1a7ac7;}
@media (max-width:600px){.cookie-banner-inner{padding:16px 18px;}.cookie-banner-actions{width:100%;}.cookie-btn{flex:1;}}

/* --- Post-launch fixes --- */

/* Contact "Don't See the Right Fit?": .section-heading styles h2 but never
   h3, so h3 headings fell back to an inherited colour. */
.section-heading h3{font-family:var(--font-serif);color:var(--white);font-size:clamp(22px,2.4vw,28px);font-weight:600;}

/* University Destinations stat band was consuming excessive vertical
   space: 80px section padding plus a 64px band margin stacked up. */
#destinations-stats{padding:44px 0;}
#destinations-stats .stats-band{margin-top:0;}

/* --- School Life landing page --- */
.facility-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.facility-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.facility-grid{grid-template-columns:1fr;}}
.academy-summary-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.academy-summary-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.academy-summary-grid{grid-template-columns:1fr;}}
.academy-summary-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:22px 20px;transition:background .25s ease,transform .25s ease,box-shadow .25s ease;}
.academy-summary-card:hover{background:rgba(255,255,255,.08);transform:translateY(-3px);box-shadow:0 18px 40px -18px rgba(0,0,0,.5);}
.academy-summary-card h4{color:var(--white);font-family:var(--font-serif);font-size:17px;font-weight:600;margin:0 0 8px;}
.academy-summary-card p{color:rgba(255,255,255,.62);font-size:15.5px;line-height:1.6;margin:0 0 14px;}
.academy-summary-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13.8px;color:var(--highlight-text);font-weight:600;}

/* Programme cards: the card already had cursor:pointer, but only the small
   "Learn more" anchor was actually clickable -- so the whole box looked
   interactive and wasn't. This stretches that existing anchor's hit area
   over the entire card, which keeps one link per card (no nested anchors,
   no accessibility regression) while making the obvious target work. */
.overlay-card .more::after{content:"";position:absolute;inset:0;z-index:3;}
/* An earlier rule sets this link to position relative via an
   element-plus-class selector, which outranks a class-only override.
   Matching that specificity here, later in the file, is what actually
   lets the stretched hit area cover the whole card. The first attempt
   used a weaker selector and silently lost. */
.overlay-card a.more{position:static;}

/* After-school academy cards: brand colours rather than uniform grey, so
   the section reads as a set of distinct programmes at a glance. */
.academy-summary-card{position:relative;overflow:hidden;}
.academy-summary-card::before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;width:100%;height:4px;background:var(--logo-blue);}
.academy-summary-grid > .academy-summary-card:nth-child(5n+1)::before{background:var(--logo-blue);}
.academy-summary-grid > .academy-summary-card:nth-child(5n+2)::before{background:var(--highlight);}
.academy-summary-grid > .academy-summary-card:nth-child(5n+3)::before{background:var(--btn-hover);}
.academy-summary-grid > .academy-summary-card:nth-child(5n+4)::before{background:var(--yellow);}
.academy-summary-grid > .academy-summary-card:nth-child(5n+5)::before{background:var(--hero-blue);}
.academy-summary-grid > .academy-summary-card:nth-child(5n+1){background:linear-gradient(160deg,rgba(32,149,243,.14),rgba(255,255,255,.04));}
.academy-summary-grid > .academy-summary-card:nth-child(5n+2){background:linear-gradient(160deg,rgba(75,174,80,.14),rgba(255,255,255,.04));}
.academy-summary-grid > .academy-summary-card:nth-child(5n+3){background:linear-gradient(160deg,rgba(255,98,0,.13),rgba(255,255,255,.04));}
.academy-summary-grid > .academy-summary-card:nth-child(5n+4){background:linear-gradient(160deg,rgba(252,232,0,.12),rgba(255,255,255,.04));}
.academy-summary-grid > .academy-summary-card:nth-child(5n+5){background:linear-gradient(160deg,rgba(0,132,188,.14),rgba(255,255,255,.04));}

/* Paperless section: the three pillars were entirely static, which reads
   as unfinished next to the rest of the page. Lifting the icon and
   deepening its brand-green tint on hover matches the treatment used on
   the programme and academy cards. Guarded by prefers-reduced-motion so
   the movement can be turned off. */
.paperless-pillar{flex:0 1 200px;text-align:center;transition:transform .28s cubic-bezier(.22,1,.36,1);}
.paperless-pillar-icon{transition:transform .28s cubic-bezier(.22,1,.36,1),background .25s ease,border-color .25s ease,box-shadow .25s ease;}
.paperless-pillar:hover .paperless-pillar-icon,
.paperless-pillar:focus-within .paperless-pillar-icon{
  background:rgba(75,174,80,.28);
  border-color:rgba(75,174,80,.7);
  box-shadow:0 12px 26px -10px rgba(75,174,80,.55);
  transform:translateY(-5px) scale(1.06);
}
.paperless-pillar:hover h4{color:var(--highlight-text);}
.paperless-pillar h4{transition:color .25s ease;}
@media (prefers-reduced-motion:reduce){
  .paperless-pillar,.paperless-pillar-icon{transition:none;}
  .paperless-pillar:hover .paperless-pillar-icon{transform:none;}
}

/* Shown when no Google Calendar has been connected yet. */
.calendar-pending{max-width:640px;margin:0 auto;text-align:center;padding:52px 34px;border:1.5px dashed rgba(255,255,255,.22);border-radius:20px;background:rgba(255,255,255,.04);}
.calendar-pending-icon{width:56px;height:56px;border-radius:50%;background:rgba(75,174,80,.14);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.calendar-pending-icon svg{width:26px;height:26px;stroke:var(--highlight);}
.calendar-pending h3{color:var(--white);font-family:var(--font-serif);font-weight:600;font-size:19px;margin-bottom:10px;}
.calendar-pending p{color:rgba(255,255,255,.6);font-size:15.5px;line-height:1.7;margin:0;}

/* Homepage news tiles now show the real article image when one exists. */
.news-tile-photo{position:absolute;inset:0;z-index:0;}
.news-tile-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.news-tile:hover .news-tile-photo img{transform:scale(1.06);}
.news-tile-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,19,22,.15) 0%,rgba(15,19,22,.92) 100%);}

/* --- Values & Vision: portrait image spanning the full right column --- */
/* The right column now holds Vision/Mission AND the Values carousel, so
   the image stretches past both. This works cleanly because
   .values-spotlight-display has a fixed min-height with absolutely
   positioned panels -- the column height stays constant as the carousel
   rotates, so the image never jumps or resizes mid-animation. */
.values-right-col{display:flex;flex-direction:column;gap:8px;min-width:0;}
.values-columns{align-items:stretch;}
.values-carousel{height:100%;min-height:100%;}
.values-carousel .slide{width:100%;height:100%;}
.values-carousel .slide img{width:100%;height:100%;object-fit:cover;display:block;}
/* Inside a column the carousel shouldn't be centre-constrained. */
.values-right-col .values-spotlight{max-width:none;margin:0;padding:0;}
/* Vision, Mission and Values all centre-aligned in the right column,
   matching the values carousel below them. text-align:center rather
   than :start so it holds in Arabic too. */
.values-right-col .manifesto-heading{max-width:none;margin:20px 0 6px;padding:0;text-align:center;}
.values-right-col .vision-mission-text{padding:0;text-align:center;}
.values-right-col .vision-mission-text h3,
.values-right-col .vision-mission-text p,
.values-right-col .vision-mission-text .vision-quote{text-align:center;}

@media (max-width:900px){
  /* Stacked: let the image return to a sensible fixed height rather than
     trying to match a now-full-width text column. */
  .values-carousel{height:auto;min-height:260px;}
}

/* --- Accreditation row: keep all four logos on one line on desktop --- */
/* Four items at flex-basis 220px plus 28px padding each side plus three
   dividers needs roughly 1100px, but the row was capped at 900px -- so the
   fourth (MoE) always wrapped onto its own line. */
.accred-row{max-width:1180px;flex-wrap:nowrap;}
.accred-item{flex:1 1 200px;padding:0 18px;}
@media (max-width:1024px){
  .accred-row{flex-wrap:wrap;}
  .accred-item{flex:1 1 40%;padding:0 20px;}
}

/* --- "Investing in Education" fee buttons: Radhwa brand colours --- */
/* Reuses the per-programme palette already established for news
   categories (KG green, PYP yellow, MYP orange, High School blue) rather
   than inventing a second colour scheme -- so a programme reads the same
   colour wherever it appears on the site.
   Targeted by data-modal, not nth-child, so the colours stay attached to
   the right programme even if the button order changes later. */
.admissions-fee-link{position:relative;overflow:hidden;padding-inline-start:30px;}
.admissions-fee-link::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:5px;background:rgba(255,255,255,.3);transition:width .25s ease;}
.admissions-fee-link:hover::before{width:8px;}

.admissions-fee-link[data-modal="feeModalKG"]{background:linear-gradient(135deg,rgba(75,174,80,.16),rgba(255,255,255,.04));border-color:rgba(75,174,80,.4);}
.admissions-fee-link[data-modal="feeModalKG"]::before{background:var(--highlight);}
.admissions-fee-link[data-modal="feeModalKG"]:hover{background:rgba(75,174,80,.24);border-color:var(--highlight);}

.admissions-fee-link[data-modal="feeModalPYP"]{background:linear-gradient(135deg,rgba(252,232,0,.14),rgba(255,255,255,.04));border-color:rgba(252,232,0,.38);}
.admissions-fee-link[data-modal="feeModalPYP"]::before{background:var(--yellow);}
.admissions-fee-link[data-modal="feeModalPYP"]:hover{background:rgba(252,232,0,.22);border-color:var(--yellow);}

.admissions-fee-link[data-modal="feeModalMYP"]{background:linear-gradient(135deg,rgba(255,98,0,.15),rgba(255,255,255,.04));border-color:rgba(255,98,0,.4);}
.admissions-fee-link[data-modal="feeModalMYP"]::before{background:var(--btn-hover);}
.admissions-fee-link[data-modal="feeModalMYP"]:hover{background:rgba(255,98,0,.23);border-color:var(--btn-hover);}

.admissions-fee-link[data-modal="feeModalHS"]{background:linear-gradient(135deg,rgba(32,149,243,.16),rgba(255,255,255,.04));border-color:rgba(32,149,243,.4);}
.admissions-fee-link[data-modal="feeModalHS"]::before{background:var(--logo-blue);}
.admissions-fee-link[data-modal="feeModalHS"]:hover{background:rgba(32,149,243,.24);border-color:var(--logo-blue);}

.admissions-fee-link{transition:background .25s ease,border-color .25s ease,transform .2s ease,box-shadow .25s ease;}
.admissions-fee-link:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(0,0,0,.55);}

/* ============================================================
   FEE MODALS -- match each programme's button colour
   Same palette as the buttons and news categories, so a programme
   reads as one colour everywhere on the site.
   ============================================================ */
.fee-modal{position:relative;overflow:hidden;}
.fee-modal::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;height:5px;}
#feeModalKG::before{background:var(--highlight);}
#feeModalPYP::before{background:var(--yellow);}
#feeModalMYP::before{background:var(--btn-hover);}
#feeModalHS::before{background:var(--logo-blue);}
#feeModalKG{border-color:rgba(75,174,80,.42);box-shadow:0 28px 64px -18px rgba(75,174,80,.28),0 20px 50px -18px rgba(0,0,0,.7);}
#feeModalPYP{border-color:rgba(252,232,0,.4);box-shadow:0 28px 64px -18px rgba(252,232,0,.22),0 20px 50px -18px rgba(0,0,0,.7);}
#feeModalMYP{border-color:rgba(255,98,0,.42);box-shadow:0 28px 64px -18px rgba(255,98,0,.26),0 20px 50px -18px rgba(0,0,0,.7);}
#feeModalHS{border-color:rgba(32,149,243,.42);box-shadow:0 28px 64px -18px rgba(32,149,243,.28),0 20px 50px -18px rgba(0,0,0,.7);}
#feeModalKG h3{color:#8fd493;}
#feeModalPYP h3{color:#f4e97a;}
#feeModalMYP h3{color:#ffb27a;}
#feeModalHS h3{color:#7cc4f7;}

/* ============================================================
   AUTO-SCROLLING ROW -- single horizontal row that advances one
   step at a time. Used for facilities, news and student stories.
   Native scrolling, so it stays swipeable on touch and keyboard
   accessible; the timer just nudges scrollLeft.
   ============================================================ */
.scroll-row-wrap{position:relative;max-width:var(--container);margin:0 auto;padding:0 24px;}
.scroll-row{display:flex;gap:16px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;
  padding-bottom:10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;}
.scroll-row::-webkit-scrollbar{height:6px;}
.scroll-row::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px;}
.scroll-row::-webkit-scrollbar-track{background:transparent;}
.scroll-row > *{flex:0 0 auto;scroll-snap-align:start;}
.scroll-item-img{width:300px;aspect-ratio:16/10;border-radius:16px;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.12);}
.scroll-item-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.scroll-item-img:hover img{transform:scale(1.06);}
.scroll-item-img .facility-scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,13,15,.85) 100%);}
.scroll-item-img h4{position:absolute;inset-inline:0;inset-block-end:0;padding:14px 16px;margin:0;
  color:var(--white);font-size:15.5px;font-weight:600;z-index:2;}
.scroll-item-card{width:320px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:16px;overflow:hidden;transition:background .25s ease,transform .25s ease;}
.scroll-item-card:hover{background:rgba(255,255,255,.08);transform:translateY(-3px);}
.scroll-item-card .sic-photo{aspect-ratio:16/9;overflow:hidden;}
.scroll-item-card .sic-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.scroll-item-card .sic-body{padding:16px 18px 20px;}
.scroll-item-card .sic-meta{font-size:12.6px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--highlight-text);margin-bottom:8px;}
.scroll-item-card h4{color:var(--white);font-size:15.5px;font-weight:600;line-height:1.5;margin:0;}
.scroll-item-card p{color:rgba(255,255,255,.65);font-size:14.4px;line-height:1.65;margin:8px 0 0;}
@media (max-width:560px){
  .scroll-item-img{width:240px;}
  .scroll-item-card{width:260px;}
}
@media (prefers-reduced-motion:reduce){
  .scroll-row{scroll-behavior:auto;}
  .album-page{transition:none;}
}

/* Text wordmark shown until a logo is uploaded via the CMS. Previously
   these fell back to image files that did not exist, so every page
   rendered a broken image in the nav and footer. A styled wordmark
   degrades honestly and disappears the moment a real logo is added. */
.nav-wordmark{color:var(--white);font-family:var(--font-serif);font-size:17px;font-weight:600;
  letter-spacing:.01em;white-space:nowrap;}
.footer-wordmark{color:var(--white);font-family:var(--font-serif);font-size:19px;font-weight:600;
  display:inline-block;margin-bottom:14px;}
@media (max-width:600px){.nav-wordmark{font-size:14.5px;}}

/* ============================================================
   ACADEMY COVERFLOW -- centre card prominent, previous and next
   visible either side, further cards receding behind them.
   ============================================================ */
.acad-flow-wrap{position:relative;max-width:var(--container);margin:0 auto;padding:0 24px;}
.acad-flow{position:relative;height:330px;perspective:1500px;overflow:hidden;}
/* No-JS / pre-JS state: show only the first card, centred. Without this
   the absolutely-positioned cards stack unstyled on top of each other. */
.acad-flow:not(.flow-ready) .acad-card{opacity:0;pointer-events:none;}
.acad-flow:not(.flow-ready) .acad-card:first-child{opacity:1;pointer-events:auto;
  transform:translateX(-50%);}
.acad-flow:not(.flow-ready) .acad-card:first-child p,
.acad-flow:not(.flow-ready) .acad-card:first-child .acad-meta{opacity:1;}
.acad-flow:not(.flow-ready) .acad-card:first-child{filter:none;}
.acad-card{position:absolute;top:0;left:50%;width:420px;max-width:78vw;height:300px;
  border-radius:20px;border:1px solid rgba(255,255,255,.14);padding:30px 32px;
  display:flex;flex-direction:column;justify-content:center;overflow:hidden;
  transform-origin:50% 50%;will-change:transform,opacity;cursor:pointer;
  box-shadow:0 28px 64px -22px rgba(0,0,0,.72);
  transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .55s ease,filter .55s ease;}
.acad-card::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;height:4px;}
.acad-card h4{color:var(--white);font-family:var(--font-serif);font-size:22px;font-weight:600;margin:0 0 10px;}
.acad-card p{color:rgba(255,255,255,.74);font-size:15.5px;line-height:1.68;margin:0 0 18px;}
.acad-meta{display:flex;flex-direction:column;gap:7px;font-size:13.8px;font-weight:600;color:var(--highlight-text);}
.acad-meta span{display:flex;gap:8px;}
.acad-meta b{color:rgba(255,255,255,.5);font-weight:600;min-width:74px;}
/* Only the centre card is fully legible; neighbours are dimmed so the
   eye is never in doubt about which one it is meant to be reading. */
.acad-card:not(.is-center){filter:brightness(.62) saturate(.85);}
.acad-card:not(.is-center) p,.acad-card:not(.is-center) .acad-meta{opacity:0;transition:opacity .3s ease;}

.acad-card[data-c="0"]{background:linear-gradient(160deg,rgba(32,149,243,.22),rgba(18,22,26,.97));}
.acad-card[data-c="0"]::before{background:var(--logo-blue);}
.acad-card[data-c="1"]{background:linear-gradient(160deg,rgba(75,174,80,.22),rgba(18,22,26,.97));}
.acad-card[data-c="1"]::before{background:var(--highlight);}
.acad-card[data-c="2"]{background:linear-gradient(160deg,rgba(255,98,0,.21),rgba(18,22,26,.97));}
.acad-card[data-c="2"]::before{background:var(--btn-hover);}
.acad-card[data-c="3"]{background:linear-gradient(160deg,rgba(252,232,0,.19),rgba(18,22,26,.97));}
.acad-card[data-c="3"]::before{background:var(--yellow);}
.acad-card[data-c="4"]{background:linear-gradient(160deg,rgba(0,132,188,.22),rgba(18,22,26,.97));}
.acad-card[data-c="4"]::before{background:var(--hero-blue);}

.acad-flow-nav{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px;}
.acad-flow-dots{display:flex;gap:9px;align-items:center;}
.acad-dot{width:9px;height:9px;padding:0;border:0;appearance:none;border-radius:999px;
  background:rgba(255,255,255,.28);cursor:pointer;transition:width .3s cubic-bezier(.22,1,.36,1),background .25s ease;}
.acad-dot.active{width:26px;background:var(--highlight);}
.acad-dot:hover{background:rgba(255,255,255,.55);}
.acad-dot:focus-visible{outline:2px solid var(--highlight);outline-offset:3px;}
@media (max-width:700px){
  .acad-flow{height:360px;}
  .acad-card{width:300px;height:330px;padding:24px 22px;}
  .acad-card h4{font-size:19px;}
}

/* ============================================================
   STUDENT STORIES -- an orbit of student bubbles circling a centre
   panel whose prompt cycles. Hovering a bubble pauses the orbit and
   lifts it; the centre responds. Built to feel alive rather than
   sitting there as a static box.
   ============================================================ */
.stories-orbit{position:relative;max-width:760px;margin:0 auto;height:420px;
  display:flex;align-items:center;justify-content:center;}
.stories-orbit-ring{position:absolute;inset:0;animation:storiesSpin 42s linear infinite;}
.stories-orbit.paused .stories-orbit-ring{animation-play-state:paused;}
@keyframes storiesSpin{to{transform:rotate(360deg);}}
.stories-orbit-ring::before,.stories-orbit-ring::after{content:"";position:absolute;
  inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%);border-radius:50%;
  border:1px dashed rgba(255,255,255,.10);}
.stories-orbit-ring::before{width:330px;height:330px;}
.stories-orbit-ring::after{width:420px;height:420px;border-style:solid;border-color:rgba(255,255,255,.05);}
.orbit-bubble{position:absolute;inset-block-start:50%;inset-inline-start:50%;width:62px;height:62px;margin:-31px 0 0 -31px;
  border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);
  display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
  backdrop-filter:blur(3px);transition:transform .3s cubic-bezier(.22,1,.36,1),background .3s ease,border-color .3s ease,box-shadow .3s ease;}
.orbit-bubble svg{width:26px;height:26px;stroke:rgba(255,255,255,.5);transition:stroke .3s ease;}
/* Counter-rotate the contents so faces stay upright as the ring turns. */
.orbit-bubble-inner{animation:storiesSpinBack 42s linear infinite;display:flex;}
.stories-orbit.paused .orbit-bubble-inner{animation-play-state:paused;}
@keyframes storiesSpinBack{to{transform:rotate(-360deg);}}
.orbit-bubble:hover,.orbit-bubble:focus-visible{background:rgba(75,174,80,.24);border-color:var(--highlight);
  transform:scale(1.22);box-shadow:0 14px 32px -10px rgba(75,174,80,.6);outline:none;}
.orbit-bubble:hover svg,.orbit-bubble:focus-visible svg{stroke:#bff0c2;}

.stories-core{position:relative;z-index:3;width:290px;height:290px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,rgba(32,149,243,.26),rgba(18,22,26,.97) 68%);
  border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:34px 30px;
  box-shadow:0 30px 70px -24px rgba(0,0,0,.75);}
.stories-core-quote{font-family:var(--font-serif);font-size:52px;line-height:.7;
  color:rgba(255,255,255,.16);margin-bottom:10px;}
.stories-core h3{color:var(--white);font-family:var(--font-serif);font-size:19px;font-weight:600;margin:0 0 10px;}
.stories-prompt{color:rgba(255,255,255,.66);font-size:14.4px;line-height:1.6;margin:0;min-height:46px;
  transition:opacity .4s ease,transform .4s ease;}
.stories-prompt.swap{opacity:0;transform:translateY(6px);}
@media (max-width:700px){
  .stories-orbit{height:340px;}
  .stories-orbit-ring::before{width:250px;height:250px;}
  .stories-orbit-ring::after{width:320px;height:320px;}
  .stories-core{width:210px;height:210px;padding:24px 20px;}
  .stories-core h3{font-size:16.5px;}
  .stories-prompt{font-size:13.2px;}
  .orbit-bubble{width:48px;height:48px;margin:-24px 0 0 -24px;}
}
@media (prefers-reduced-motion:reduce){
  .stories-orbit-ring,.orbit-bubble-inner{animation:none;}
  .acad-card{transition:opacity .2s ease;}
}

/* Standing CTA shown when the admissions banner is switched off. No green
   band -- the .cta-band wrapper was the green box, so reusing it left the
   banner visibly present with only its text removed. */
.cta-plain{position:relative;z-index:2;max-width:440px;margin:0 auto 80px;text-align:center;}

/* ============================================================
   FACILITIES COLLAGE
   Replaces the horizontal scroller, which showed scrollbars on both
   axes and felt cheap. A mosaic: the first tile spans two columns and
   two rows, the rest fill around it. Nothing scrolls, everything is
   visible at once, and the layout adapts to however many facilities
   exist rather than assuming six.
   ============================================================ */
.facility-collage{max-width:var(--container);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:14px;}
.fc-tile{position:relative;margin:0;border-radius:16px;overflow:hidden;
  border:1px solid rgba(255,255,255,.12);cursor:pointer;
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,border-color .3s ease;}
.fc-tile img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.22,1,.36,1),filter .4s ease;}
.fc-tile::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(8,11,13,.88) 100%);
  transition:opacity .35s ease;}
.fc-tile figcaption{position:absolute;inset-inline:0;inset-block-end:0;z-index:2;
  padding:14px 16px;color:var(--white);font-size:15.5px;font-weight:600;
  transform:translateY(0);transition:transform .35s ease;}
.fc-tile:hover{transform:translateY(-4px);border-color:rgba(75,174,80,.5);
  box-shadow:0 22px 46px -18px rgba(0,0,0,.72);}
.fc-tile:hover img{transform:scale(1.08);filter:brightness(1.06);}

/* Mosaic rhythm -- first tile is the hero, then an alternating pattern
   so the grid never looks like a plain uniform table. */
.fc-tile:nth-child(1){grid-column:span 2;grid-row:span 2;}
.fc-tile:nth-child(4){grid-column:span 2;}
.fc-tile:nth-child(7){grid-column:span 2;}
.fc-tile:nth-child(1) figcaption{font-size:18px;padding:18px 20px;}

@media (max-width:900px){
  .facility-collage{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px;}
  .fc-tile:nth-child(1){grid-column:span 2;grid-row:span 2;}
  .fc-tile:nth-child(4),.fc-tile:nth-child(7){grid-column:span 2;}
}
@media (max-width:560px){
  .facility-collage{grid-template-columns:1fr;grid-auto-rows:170px;}
  .fc-tile:nth-child(n){grid-column:auto;grid-row:auto;}
  .fc-tile:nth-child(1){grid-row:span 2;}
}
@media (prefers-reduced-motion:reduce){
  .fc-tile,.fc-tile img{transition:none;}
  .fc-tile:hover{transform:none;}
  .fc-tile:hover img{transform:none;}
}

/* Video embeds. 16:9 via aspect-ratio so there is no padding-hack and no
   layout shift while the iframe loads. */
.about-video-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:18px;overflow:hidden;
  border:1px solid rgba(255,255,255,.14);box-shadow:0 26px 60px -22px rgba(0,0,0,.7);background:#0b0e11;}
.about-video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}

/* ============================================================
   MAGNETIC CAROUSEL — Alumni "Where They Are Now"
   Cards react to cursor proximity: the nearest lifts and scales, its
   neighbours respond less, everything settles when the pointer leaves.
   Driven by a --m value (0..1) set per card in JS, so the CSS stays
   declarative and there is one place to tune the feel.
   ============================================================ */
.mag-wrap{max-width:var(--container);margin:0 auto;padding:0 24px;}
.mag-track{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;perspective:1200px;}
.mag-card{--m:0;position:relative;flex:0 0 240px;min-height:290px;border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.12);background:linear-gradient(165deg,rgba(255,255,255,.07),rgba(18,22,26,.96));
  padding:26px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;
  cursor:pointer;will-change:transform;
  transform:translateY(calc(var(--m) * -14px)) scale(calc(1 + var(--m) * .06));
  box-shadow:0 calc(18px + var(--m) * 22px) calc(40px + var(--m) * 26px) -20px rgba(0,0,0,calc(.5 + var(--m) * .25));
  border-color:rgba(255,255,255,calc(.12 + var(--m) * .3));
  transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s ease,border-color .45s ease;}
.mag-card::before{content:"";position:absolute;inset:0;opacity:var(--m);pointer-events:none;
  background:radial-gradient(circle at 50% 0%,rgba(75,174,80,.22),transparent 65%);
  transition:opacity .45s ease;}
.mag-avatar{width:78px;height:78px;border-radius:50%;overflow:hidden;margin-bottom:16px;
  border:2px solid rgba(255,255,255,calc(.16 + var(--m) * .5));background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;position:relative;z-index:2;
  transition:border-color .45s ease;}
.mag-avatar img{width:100%;height:100%;object-fit:cover;}
.mag-avatar svg{width:34px;height:34px;stroke:rgba(255,255,255,.45);}
.mag-card h4{position:relative;z-index:2;color:var(--white);font-family:var(--font-serif);
  font-size:17px;font-weight:600;margin:0 0 6px;}
.mag-role{position:relative;z-index:2;color:var(--highlight-text);font-size:13.2px;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px;}
.mag-note{position:relative;z-index:2;color:rgba(255,255,255,.66);font-size:14.4px;line-height:1.6;margin:0;}
@media (max-width:600px){
  .mag-card{flex:0 0 calc(50% - 9px);min-height:250px;padding:20px 16px;}
}
@media (prefers-reduced-motion:reduce){
  .mag-card{transition:none;transform:none;}
  .mag-card::before{display:none;}
}

/* A section containing only a row of statistics does not need the full
   80px top and bottom padding -- stacked against a heading section that
   also has 80px, it left roughly 160px of dead space around a thin row
   of numbers. This pulls the figures up under the heading they belong to,
   which is where they read best anyway. */
.about-section-block.stats-only{padding:8px 0 56px;}
.about-section-block.stats-only .stats-band{margin-top:0;}
.about-section-block.stats-only .pending-stats-grid{margin-top:0;}
@media (max-width:700px){
  .about-section-block.stats-only{padding:4px 0 40px;}
}

/* ============================================================
   MOBILE HORIZONTAL SCROLL
   body had overflow-x:hidden but html did not. With only body set,
   browsers still allow the page to scroll sideways -- the rule has to be
   on both, or on neither and the overflow fixed at source.
   ============================================================ */
html{overflow-x:hidden;max-width:100%;}
body{max-width:100%;}

/* The chat panel is display:flex with opacity:0 when closed, so it still
   occupied layout -- at inset-inline-end:-6px, six pixels past the
   viewport edge. Taking it out of the layout entirely while closed
   removes the overflow without touching the open state. */
.rc-panel{visibility:hidden;}
.rc-widget.rc-open .rc-panel{visibility:visible;}
@media (max-width:480px){
  .rc-panel{inset-inline-end:0;width:calc(100vw - 44px);}
}

/* Standing CTA: centre the button explicitly rather than relying on
   text-align alone, which an inline-flex child can ignore depending on
   how the surrounding wrap is laid out. */
.cta-plain{display:flex;justify-content:center;align-items:center;}
.cta-plain .hero-cta{margin:0 auto;}

/* ============================================================
   ASK-THE-BOT — featured homepage section
   ============================================================ */
.askbot-section{position:relative;z-index:2;padding:16px 0 88px;}
.askbot-card{position:relative;max-width:820px;margin:0 auto;padding:48px 40px;border-radius:26px;overflow:hidden;
  background:linear-gradient(150deg,rgba(32,149,243,.20),rgba(75,174,80,.12) 55%,rgba(18,22,26,.97));
  border:1px solid rgba(255,255,255,.14);box-shadow:0 34px 80px -26px rgba(0,0,0,.72);
  display:flex;align-items:center;gap:36px;text-align:start;cursor:pointer;
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,border-color .3s ease;}
.askbot-card:hover{transform:translateY(-4px);border-color:rgba(32,149,243,.5);
  box-shadow:0 40px 90px -26px rgba(0,0,0,.8);}
.askbot-card:focus-visible{outline:2px solid var(--logo-blue);outline-offset:4px;}
.askbot-card::after{content:"";position:absolute;inset-block-end:-90px;inset-inline-end:-70px;width:250px;height:250px;
  border-radius:50%;background:radial-gradient(circle,rgba(32,149,243,.22),transparent 70%);pointer-events:none;}
/* No plate behind the logo -- it is a transparent PNG and should sit
   directly on the card. The circular border and background were making
   it look like a pasted-on sticker. */
.askbot-logo{flex:0 0 auto;width:104px;height:104px;position:relative;z-index:2;
  filter:drop-shadow(0 12px 26px rgba(32,149,243,.45));animation:bob 5s ease-in-out infinite;}
.askbot-logo img{width:100%;height:100%;object-fit:contain;display:block;}
.askbot-copy{position:relative;z-index:2;min-width:0;}
.askbot-copy h2{color:var(--white);font-family:var(--font-serif);font-size:clamp(22px,2.6vw,30px);
  font-weight:600;margin:0 0 10px;}
.askbot-copy p{color:rgba(255,255,255,.72);font-size:16.1px;line-height:1.7;margin:0 0 20px;max-width:460px;}
.askbot-cta{display:inline-flex;align-items:center;gap:9px;background:var(--btn);color:var(--white);
  font-weight:700;font-size:15.5px;padding:13px 26px;border-radius:10px;border:0;cursor:pointer;
  font-family:inherit;transition:background .2s ease,transform .2s ease;}
.askbot-card:hover .askbot-cta{background:var(--logo-blue);transform:translateX(3px);}
@media (max-width:700px){
  .askbot-card{flex-direction:column;text-align:center;padding:36px 24px;gap:22px;}
  .askbot-copy p{margin-inline:auto;}
  .askbot-logo{width:88px;height:88px;}
}
@media (prefers-reduced-motion:reduce){
  .askbot-logo{animation:none;}
  .askbot-card,.askbot-cta{transition:none;}
  .askbot-card:hover{transform:none;}
}

/* Enquire button in the footer contact column. Sized to the column rather
   than reusing .hero-cta, which is a page-level call to action and looks
   oversized next to a list of phone numbers. */
.footer-enquire{display:inline-flex;align-items:center;gap:7px;margin-top:16px;
  background:var(--btn);color:var(--white);font-weight:700;font-size:14.4px;
  padding:10px 20px;border-radius:8px;white-space:nowrap;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;}
.footer-enquire:hover{background:var(--logo-blue);transform:translateY(-2px);
  box-shadow:0 10px 22px -10px rgba(32,149,243,.7);}
.footer-enquire:focus-visible{outline:2px solid var(--white);outline-offset:3px;}
@media (max-width:760px){
  /* Footer columns stack and centre on narrow screens, so the button follows. */
  .footer-enquire{margin-inline:auto;}
}
