/* PCSS Mfou-Yaoundé — site stylesheet. Palette from the school crest: royal purple, magenta, white. */
body{margin:0;background:#FAFBFE}
.pc{overflow-x:clip;container-type:inline-size;container-name:pc;width:100%;font-family:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:#14131F;background:#FAFBFE;font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
.pc *{box-sizing:border-box}
.pc h1,.pc h2,.pc h3,.pc h4{font-family:'DM Serif Display',Georgia,serif;font-weight:400;margin:0;letter-spacing:-.005em}
.pc p{margin:0}
.pc img{max-width:100%}
.pc .link{color:#2E2A86;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.pc .link:hover{color:#2F6FD6}
.pc :focus-visible{outline:3px solid #2F6FD6;outline-offset:2px}
.wrap{max-width:1320px;margin:0 auto;padding:0 40px}

/* utility bar */
.util{background:#0F0D29;color:#D2D5EC;font-size:14px}
.util .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:50px}
.util-info{display:flex;gap:26px;align-items:center;min-width:0}
.util-info span,.util-info a{display:inline-flex;gap:8px;align-items:center;white-space:nowrap;min-width:0;color:#D2D5EC;text-decoration:none}
.util-info a:hover{color:#fff}
.util-info svg{flex:none;color:#8FC1F5}
.util-right{display:flex;align-items:center;gap:10px;flex:none}
.lang{display:inline-flex;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.26);border-radius:999px;padding:3px;gap:2px}
.lang button{appearance:none;border:0;background:transparent;color:#D2D5EC;font:800 13px/1 'Nunito Sans',sans-serif;letter-spacing:.1em;padding:0 15px;min-height:34px;min-width:50px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}
.lang button:hover{color:#fff}
.lang button[aria-pressed="true"]{background:#fff;color:#2B2775}
.util-portal{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 16px;border-radius:999px;background:#2F6FD6;color:#fff;font-size:13px;font-weight:800;letter-spacing:.04em;text-decoration:none;white-space:nowrap;transition:background .2s,color .2s}
.util-portal:hover{background:#fff;color:#2B2775}

/* header */
.hdr{background:#fff;border-bottom:1px solid #DFE2EE;position:sticky;top:0;z-index:30;box-shadow:0 6px 24px rgba(25,21,63,.05)}
.hdr-bar{height:5px;background:linear-gradient(90deg,#2E2A86 0 62%,#2F6FD6 62% 100%)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:100px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;min-width:0;flex:none}
.brand img{width:76px;height:76px;flex:none;display:block;border-radius:50%}
.brand-text{min-width:0}
.brand-name,.brand-sub,.brand-sub2{display:block}
.brand-name{font-family:'DM Serif Display',Georgia,serif;font-size:27px;line-height:1.1;color:#241F63;white-space:nowrap}
.brand-name span{color:#2F6FD6}
.brand-sub{font-size:12px;color:#535669;letter-spacing:.06em;margin-top:4px;text-transform:uppercase;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-sub2{font-size:12px;color:#2F6FD6;letter-spacing:.08em;margin-top:1px;text-transform:uppercase;font-weight:800;white-space:nowrap}

/* animated crest */
.logo-anim{position:relative;display:inline-flex;flex:none;border-radius:50%;isolation:isolate}
.logo-anim img{position:relative;z-index:1;border-radius:50%;animation:pcLogoIn 1.1s cubic-bezier(.2,.7,.2,1) both,pcLogoGlow 5s ease-in-out 1.1s infinite}
.logo-anim:before,.logo-anim:after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #2F6FD6;opacity:0;pointer-events:none;animation:pcHalo 5s ease-out 1.1s infinite}
.logo-anim:after{border-color:#2E2A86;animation-delay:3.6s}
.logo-anim.on-dark:before{border-color:#8FC1F5}
.logo-anim.on-dark:after{border-color:#AFB3F2}
.logo-anim.on-dark img{animation:pcLogoIn 1.1s cubic-bezier(.2,.7,.2,1) both,pcLogoGlowDark 5s ease-in-out 1.1s infinite}
.pc-ready .logo-anim img{animation-name:none,pcLogoGlow}
.pc-ready .logo-anim.on-dark img{animation-name:none,pcLogoGlowDark}
@keyframes pcLogoIn{from{opacity:0;transform:scale(.8) rotate(-18deg)}to{opacity:1;transform:none}}
@keyframes pcLogoGlow{0%,100%{box-shadow:0 0 0 0 rgba(47,111,214,0);transform:rotate(0)}50%{box-shadow:0 0 22px 3px rgba(47,111,214,.32);transform:rotate(4deg)}}
@keyframes pcLogoGlowDark{0%,100%{box-shadow:0 0 0 0 rgba(143,193,245,0);transform:rotate(0)}50%{box-shadow:0 0 26px 4px rgba(143,193,245,.38);transform:rotate(-4deg)}}
@keyframes pcHalo{0%{transform:scale(1);opacity:.55}70%{opacity:0}100%{transform:scale(1.32);opacity:0}}

/* navigation */
.nav{display:flex;align-items:center;gap:2px;flex:none}
.nav-item{position:relative}
.nav-item.has-sub:hover .sub,.nav-item.has-sub:focus-within .sub{display:flex}
.nav a{padding:10px 14px;font-weight:700;font-size:17px;color:#1F2133;text-decoration:none;border-radius:10px;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.nav a:hover{background:#EEF0FA;color:#2E2A86}
.caret{margin-left:5px;opacity:.6}
.sub{display:none;position:absolute;top:100%;left:0;min-width:240px;background:#fff;border:1px solid #DFE2EE;border-radius:16px;box-shadow:0 22px 50px rgba(25,21,63,.16);padding:8px;flex-direction:column;z-index:40}
.sub:before{content:'';position:absolute;left:0;right:0;top:-10px;height:10px}
.sub a{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:10px;font-weight:700;font-size:16px;color:#14131F;text-decoration:none;white-space:nowrap}
.sub a:hover{background:#EEF0FA;color:#2E2A86}
.hdr-actions{display:flex;align-items:center;gap:12px}
.hdr .hdr-cta{display:none}
.menu-btn{display:none;appearance:none;border:1px solid #D3D6E8;background:#fff;border-radius:12px;width:48px;height:48px;align-items:center;justify-content:center;color:#241F63;cursor:pointer;flex:none}
.drawer{border-top:1px solid #DFE2EE;background:#fff;padding:8px 20px 24px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);overflow-y:auto;overscroll-behavior:contain}
.d-item{border-bottom:1px solid #EAECF5}
.d-row{display:flex;align-items:center;gap:6px}
.drawer .d-link{flex:1;min-width:0}
.d-tog{appearance:none;flex:none;width:48px;height:48px;border:0;border-radius:10px;background:transparent;color:#241F63;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s}
.d-tog:hover{background:#EEF0FA}
.d-item.open .d-tog{transform:rotate(180deg);color:#2F6FD6}
.d-sub{display:flex;flex-direction:column;padding:0 0 10px 14px;margin-left:12px;border-left:2px solid #2F6FD6}
.drawer a{display:flex;align-items:center;min-height:52px;padding:0 12px;font-weight:700;font-size:17px;color:#14131F;text-decoration:none;border-radius:10px}
.drawer a:hover{background:#EEF0FA}
.drawer .d-sub a{min-height:46px;font-size:16px;color:#31334A}
.d-foot{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.drawer .d-foot .btn{color:#fff}
.drawer .d-portal{justify-content:center;gap:8px;border:1px solid #D3D6E8;color:#241F63;font-size:15px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:999px;font:800 15px/1 'Nunito Sans',sans-serif;letter-spacing:.01em;text-decoration:none;border:2px solid transparent;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:#2E2A86;color:#fff}
.btn-primary:hover{background:#29246C;color:#fff}
.btn-accent{background:#2F6FD6;color:#fff}
.btn-accent:hover{background:#2459B0;color:#fff}
.btn-light{background:#fff;color:#241F63}
.btn-light:hover{background:#E3EEFC;color:#241F63}
.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff;background:transparent}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}
.btn-outline{border-color:#2E2A86;color:#2E2A86;background:transparent}
.btn-outline:hover{background:#2E2A86;color:#fff}

/* hero */
.hero{background:#19153F;color:#fff;position:relative;overflow:hidden}
.hero-rings{position:absolute;right:-180px;top:-200px;width:760px;height:760px;border-radius:50%;border:1px solid rgba(143,193,245,.18);pointer-events:none}
.hero-rings:before{content:'';position:absolute;inset:80px;border-radius:50%;border:1px solid rgba(175,179,242,.16)}
.hero-rings:after{content:'';position:absolute;inset:170px;border-radius:50%;border:1px solid rgba(143,193,245,.12)}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:56px;align-items:center;padding-top:84px;padding-bottom:140px}
.eyebrow{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#2F6FD6}
.hero .eyebrow,.dark .eyebrow,.ent .eyebrow,.admit .eyebrow,.purple .eyebrow,.ahero .eyebrow,.lhero .eyebrow{color:#8FC1F5}
.hero h1{font-size:68px;line-height:1.04;margin:20px 0 24px}
.hero h1 em{font-style:italic;color:#8FC1F5}
.lead{font-size:20px;line-height:1.6;color:#DADDF0;max-width:620px}
.motto{display:flex;align-items:center;gap:16px;margin-top:30px}
.motto-rule{height:2px;flex:0 0 46px;background:#2F6FD6;border-radius:2px}
.motto-t{font-family:'DM Serif Display',Georgia,serif;font-size:21px;letter-spacing:.18em;text-transform:uppercase;color:#fff;white-space:nowrap}
.motto-t b{color:#8FC1F5;font-weight:400}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.crest{display:flex;justify-content:center}
.ring1{width:420px;max-width:100%;aspect-ratio:1/1;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;padding:26px;animation:pcCrestIn 1.2s cubic-bezier(.2,.7,.2,1) both;position:relative}
.ring1:before{content:'';position:absolute;inset:-14px;border-radius:50%;border:2px dashed rgba(143,193,245,.35);animation:pcSpin 60s linear infinite}
.ring2{width:100%;height:100%;border-radius:50%;border:1px solid rgba(175,179,242,.35);display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(255,255,255,.07)}
.ring2 img{width:100%;height:auto;aspect-ratio:1/1;display:block;border-radius:50%;box-shadow:0 24px 60px rgba(0,0,0,.45);animation:pcCrestFloat 7s ease-in-out 1.2s infinite;background:#fff}
@keyframes pcCrestIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@keyframes pcCrestFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(1.5deg)}}
@keyframes pcSpin{to{transform:rotate(360deg)}}
.hero-stripe{position:absolute;left:0;right:0;bottom:0;height:10px;background:linear-gradient(180deg,#2E2A86 0 60%,#2F6FD6 60% 100%)}
.facts{position:relative;z-index:2;margin-top:-76px}
.facts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border-radius:20px;box-shadow:0 26px 64px rgba(25,21,63,.16);overflow:hidden;border-top:4px solid #2F6FD6}
.fact{padding:30px 28px;border-right:1px solid #EAECF5}
.fact:last-child{border-right:0}
.fact-n{font-family:'DM Serif Display',Georgia,serif;font-size:46px;line-height:1;color:#2E2A86}
.fact-l{margin-top:10px;font-size:15px;color:#535669;line-height:1.4}

/* sections */
.sec{padding:84px 0;scroll-margin-top:96px}
.sec-white{background:#fff}
.sec-tint{background:#F3F5FB}
.dark{background:#19153F;color:#fff}
.purple{background:#2E2A86;color:#fff}
.sec-head{max-width:780px;margin-bottom:46px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:48px;line-height:1.1;margin-top:14px;color:#19153F}
.dark .sec-head h2,.purple .sec-head h2{color:#fff}
.sec-head p{margin-top:18px;font-size:19px;color:#535669}
.dark .sec-head p,.purple .sec-head p{color:#DADDF0}
.big-h{font-size:46px;line-height:1.1;margin:14px 0 26px !important;color:#19153F}
.two{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:start}
.prose{display:flex;flex-direction:column;gap:18px;font-size:18px;color:#31334A}
.note{margin-top:22px;font-size:14px;color:#5F6276;font-style:italic}
.dark .note,.purple .note{color:#C4C8E2}
.idcard{background:#fff;border:1px solid #DFE2EE;border-radius:20px;padding:12px 28px;box-shadow:0 18px 44px rgba(25,21,63,.06)}
.idcard-head{display:flex;align-items:center;gap:12px;padding:16px 0 12px;border-bottom:2px solid #2F6FD6;font-family:'DM Serif Display',Georgia,serif;font-size:22px;color:#19153F}
.idrow{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;padding:15px 0;border-bottom:1px solid #EAECF5;font-size:16px}
.idrow:last-child{border-bottom:0}
.idrow dt{color:#5F6276;font-weight:700}
.idrow dd{margin:0;color:#14131F;font-weight:700}

/* values */
.vals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.val{background:#fff;border:1px solid #DFE2EE;border-radius:22px;padding:36px 32px;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}
.val:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(25,21,63,.12)}
.val-n{position:absolute;right:22px;top:14px;font-family:'DM Serif Display',Georgia,serif;font-size:84px;line-height:1;color:#EEF0FA}
.val-ic{width:56px;height:56px;border-radius:16px;background:#2E2A86;color:#fff;display:flex;align-items:center;justify-content:center;position:relative}
.val:nth-child(2) .val-ic{background:#2F6FD6}
.val:nth-child(3) .val-ic{background:#19153F}
.val h3{font-size:32px;color:#19153F;margin:22px 0 10px;position:relative}
.val p{font-size:16px;color:#535669;position:relative}
.val-q{margin-top:18px;padding-top:16px;border-top:1px solid #EAECF5;font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-size:17px;color:#2E2A86;position:relative}
.val-q small{display:block;font-family:'Nunito Sans',sans-serif;font-style:normal;font-size:13px;color:#5F6276;font-weight:700;margin-top:4px}

/* timeline & story */
.tl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px;position:relative;list-style:none;margin:0;padding:0}
.tl-item{position:relative;padding-top:32px}
.tl-item:before{content:'';position:absolute;left:0;right:-22px;top:8px;height:2px;background:#CFD3EE}
.tl-item:last-child:before{right:0}
.tl-dot{position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;background:#2E2A86;box-shadow:0 0 0 5px #fff,0 0 0 6px #CFD3EE}
.tl-item.hl .tl-dot{background:#2F6FD6}
.tl-y{font-family:'DM Serif Display',Georgia,serif;font-size:25px;color:#19153F;line-height:1.1}
.tl-t{margin-top:10px;font-size:15px;color:#535669;line-height:1.5}
.story{margin-top:60px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.5fr);gap:48px;align-items:center;background:#F3F5FB;border-radius:24px;padding:48px}
.story h3{font-size:32px;color:#19153F;margin-bottom:14px}
.story p{font-size:17px;color:#31334A}
.story p+p{margin-top:12px}
.story-stat{text-align:center;border-left:1px solid #CFD3EE;padding-left:40px}
.story-n{font-family:'DM Serif Display',Georgia,serif;font-size:96px;line-height:1;color:#2F6FD6}
.story-l{margin-top:10px;font-size:15px;color:#535669}
.ded{margin-top:28px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:36px;align-items:center;background:#19153F;color:#fff;border-radius:24px;padding:44px 48px;position:relative;overflow:hidden}
.ded:after{content:'';position:absolute;left:0;right:0;bottom:0;height:6px;background:#2F6FD6}
.ded-date{font-family:'DM Serif Display',Georgia,serif;text-align:center;line-height:1;color:#8FC1F5}
.ded-date b{display:block;font-size:92px;font-weight:400;color:#fff}
.ded-date span{display:block;font-size:20px;letter-spacing:.2em;text-transform:uppercase;margin-top:6px}
.ded h3{font-size:32px;margin-bottom:12px}
.ded p{color:#DADDF0;font-size:17px}
.ded p+p{margin-top:10px}

/* leadership */
.lead-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}
.principal{background:#fff;border:1px solid #DFE2EE;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:240px minmax(0,1fr);box-shadow:0 18px 44px rgba(25,21,63,.07)}
.portrait{background:#EEF0FA;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:300px;color:#2E2A86;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:16px}
.principal-b{padding:30px 32px}
.principal-b h3{font-size:30px;color:#19153F;margin-top:8px}
.principal-b .role{font-weight:800;color:#2F6FD6;margin:4px 0 14px}
.principal-b p{font-size:16px;color:#31334A}
.quote-mark{font-family:'DM Serif Display',Georgia,serif;font-size:76px;line-height:.6;color:#2F6FD6;margin-top:22px}
.principal-q{font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-size:19px;color:#241F63}
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.post{background:#fff;border:1px solid #DFE2EE;border-radius:14px;padding:16px 18px}
.post-r{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#2F6FD6}
.post-n{font-weight:800;color:#14131F;margin-top:4px;font-size:16px}

/* academics */
.paths{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.path{background:#fff;border:1px solid #DFE2EE;border-radius:22px;padding:36px}
.path-h{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.ic{width:50px;height:50px;border-radius:14px;background:#EEF0FA;color:#2E2A86;display:flex;align-items:center;justify-content:center;flex:none}
.ic.mag{background:#E6F0FD;color:#2F6FD6}
.ic.grn{background:#E6F2E8;color:#2F7A3F}
.path h3{font-size:27px;color:#19153F}
.path p{color:#535669;font-size:16px;margin-bottom:20px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;min-height:38px;padding:0 16px;border-radius:999px;background:#F3F5FB;border:1px solid #DFE2EE;font-size:15px;font-weight:700;color:#31334A}
.purple .chip,.dark .chip{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);color:#fff}
.exams{margin-top:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.exam{background:#19153F;color:#fff;border-radius:20px;padding:28px 30px;border-bottom:5px solid #2F6FD6}
.exam:nth-child(2){background:#2E2A86}
.exam-h{font-family:'DM Serif Display',Georgia,serif;font-size:25px}
.exam-p{margin-top:6px;color:#DADDF0;font-size:15px}

/* results */
.res-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.res{border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:32px 28px;background:rgba(255,255,255,.05);transition:background .25s,transform .25s}
.res:hover{background:rgba(255,255,255,.1);transform:translateY(-3px)}
.res-n{font-family:'DM Serif Display',Georgia,serif;font-size:56px;line-height:1;color:#fff}
.res-n.sm{font-size:40px}
.res-bar{width:44px;height:4px;background:#8FC1F5;margin:18px 0 14px;border-radius:2px}
.res-l{font-size:15px;color:#DADDF0;line-height:1.45}
.res-y{display:inline-block;margin-bottom:14px;font-size:12px;font-weight:800;letter-spacing:.14em;color:#19153F;background:#8FC1F5;border-radius:999px;padding:4px 10px}
.bars{display:flex;flex-direction:column;gap:22px}
.bar-y{display:grid;grid-template-columns:90px minmax(0,1fr);gap:20px;align-items:center}
.bar-yl{font-family:'DM Serif Display',Georgia,serif;font-size:30px;color:#19153F}
.bar-rows{display:flex;flex-direction:column;gap:8px}
.bar{display:grid;grid-template-columns:110px minmax(0,1fr) 150px;gap:14px;align-items:center;font-size:14px;font-weight:700;color:#535669}
.bar-track{height:18px;background:#EAECF5;border-radius:999px;overflow:hidden}
.bar-fill{height:100%;background:#2E2A86;border-radius:999px;animation:pcGrow 1.2s cubic-bezier(.2,.7,.2,1) both}
.bar-fill.a{background:#2F6FD6}
.bar-v{color:#14131F;text-align:right;white-space:nowrap}
.bar-v small{font-weight:600;color:#5F6276}
@keyframes pcGrow{from{width:0}}
.legend{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:22px;font-size:14px;font-weight:700;color:#31334A}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:14px;height:14px;border-radius:4px;background:#2E2A86}
.legend i.a{background:#2F6FD6}
.rtable{background:#fff;border:1px solid #DFE2EE;border-radius:20px;overflow:hidden}
.rrow{display:grid;grid-template-columns:.7fr 1.3fr .9fr .9fr .9fr;gap:12px;padding:16px 24px;border-bottom:1px solid #EAECF5;font-size:16px;align-items:center}
.rrow:last-child{border-bottom:0}
.rrow.rh{background:#19153F;color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:800}
.rrow b{color:#2E2A86;font-size:18px}
.rrow .rr{font-weight:800;color:#2F6FD6}
.honour{display:grid;grid-template-columns:auto minmax(0,1fr);gap:32px;align-items:center;background:#E6F0FD;border-radius:24px;padding:40px 44px;margin-top:28px}
.honour-ic{width:96px;height:96px;border-radius:50%;background:#2F6FD6;color:#fff;display:flex;align-items:center;justify-content:center}
.honour h3{font-size:30px;color:#19153F;margin-bottom:8px}
.honour p{color:#2E3550}

/* cards */
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cards4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.card{background:#fff;border:1px solid #DFE2EE;border-radius:22px;padding:32px;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 20px 46px rgba(25,21,63,.1)}
.card h3{font-size:24px;color:#19153F;margin:20px 0 10px}
.card p{font-size:16px;color:#535669}
.card .tbc{display:inline-block;margin-top:14px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#2F6FD6;background:#E6F0FD;border-radius:999px;padding:4px 10px}
.photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:28px}
.photo{aspect-ratio:4/3;border-radius:16px;background:#EEF0FA;border:1px dashed #BFC4E6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#2E2A86;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:14px}
.photo.wide{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.photo svg{opacity:.7}

/* environment feature */
.env{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.env-list{display:flex;flex-direction:column;gap:14px}
.env-item{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid #DFE2EE;border-radius:18px;padding:22px 24px}
.env-item h4{font-size:22px;color:#19153F;margin-bottom:4px}
.env-item p{font-size:15px;color:#535669}
.env-quote{font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-size:26px;line-height:1.35;color:#19153F;border-left:0;margin:0 0 18px}
.env-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#2F7A3F;background:#E6F2E8;border-radius:999px;padding:6px 14px;margin-bottom:16px}

/* partners */
.partners{display:flex;flex-direction:column;gap:12px}
.partner{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #DFE2EE;border-radius:16px;padding:16px 20px;font-weight:700;color:#14131F;text-decoration:none}
a.partner:hover{border-color:#2E2A86;color:#2E2A86}
.partner-dot{width:10px;height:10px;border-radius:50%;background:#2F6FD6;flex:none}
.partner small{display:block;font-weight:600;color:#5F6276;font-size:14px}
.partner-go{margin-left:auto;color:#2E2A86;flex:none}

/* calendar */
.cal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:48px;align-items:start}
.cal-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.cal-bar h3{font-size:27px;color:#19153F;flex:1;min-width:0}
.cal-nav{appearance:none;width:44px;height:44px;border:1px solid #D3D6E8;background:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:#241F63;cursor:pointer;flex:none}
.cal-nav:hover{border-color:#2E2A86;color:#2E2A86}
.cal-today{appearance:none;min-height:44px;padding:0 16px;border:1px solid #D3D6E8;background:#fff;border-radius:12px;font:700 14px 'Nunito Sans',sans-serif;color:#241F63;cursor:pointer;flex:none}
.cal-today:hover{border-color:#2E2A86;color:#2E2A86}
.cal-box{background:#fff;border:1px solid #DFE2EE;border-radius:20px;padding:18px}
.cal-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:8px}
.cal-wd span{text-align:center;font-size:12px;letter-spacing:.1em;font-weight:800;color:#5F6276;text-transform:uppercase}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.day{appearance:none;aspect-ratio:1/1;min-height:44px;border:1px solid #E6E9F3;background:#FAFBFE;border-radius:12px;font:700 15px 'Nunito Sans',sans-serif;color:#535669;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;padding:0;position:relative}
.day:hover{border-color:#2E2A86;color:#2E2A86}
.day.has{background:#fff;border-color:#2E2A86;color:#2E2A86}
.day.has:after{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.day.has.sch{border-color:#2F6FD6;color:#2F6FD6}
.day.today{background:#E6F0FD;border-color:#2F6FD6;color:#1D4A94}
.day.today:before{content:attr(data-today);font-size:9px;letter-spacing:.12em;font-weight:800;position:absolute;top:5px}
.day.sel{background:#2E2A86;border-color:#2E2A86;color:#fff}
.day.sel.today,.day.sel.sch{color:#fff}
.blank{aspect-ratio:1/1;min-height:44px}
.cal-sel{margin-top:16px;background:#fff;border:1px solid #DFE2EE;border-radius:16px;padding:18px 20px}
.cal-sel-d{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#5F6276}
.cal-ev{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #EAECF5;font-size:16px;color:#14131F;font-weight:700}
.cal-ev:last-child{border-bottom:0}
.cal-ev i{flex:none;width:10px;height:10px;border-radius:50%;background:#2E2A86;margin-top:8px}
.cal-ev i.sch{background:#2F6FD6}
.cal-none{padding:8px 0;color:#5F6276;font-size:15px}
.board-h{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:#5F6276;padding-bottom:10px;border-bottom:2px solid #2F6FD6;margin-bottom:16px}
.board{display:flex;flex-direction:column;gap:14px}
.notice{background:#fff;border:1px solid #DFE2EE;border-radius:18px;padding:22px 26px;position:relative;overflow:hidden}
.notice:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:#2E2A86}
.notice.mag:before{background:#2F6FD6}
.notice.grn:before{background:#2F7A3F}
.ntag{display:flex;gap:12px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#2E2A86}
.notice.mag .ntag{color:#2F6FD6}
.notice.grn .ntag{color:#2F7A3F}
.ntag span+span{color:#7A7E92}
.notice h4{font-size:23px;color:#19153F;margin:8px 0;line-height:1.25}
.notice p{color:#31334A;font-size:16px}
.notice a{display:inline-flex;align-items:center;min-height:36px;margin-top:6px;color:#2E2A86;font-weight:800;text-decoration:none}
.notice a:hover{text-decoration:underline}
.cal-legend{display:flex;gap:18px;margin-top:12px;font-size:13px;font-weight:700;color:#535669;flex-wrap:wrap}
.cal-legend span{display:inline-flex;align-items:center;gap:8px}
.cal-legend i{width:10px;height:10px;border-radius:50%;background:#2E2A86}
.cal-legend i.sch{background:#2F6FD6}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px}
.cinfo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.ci{background:#fff;border:1px solid #DFE2EE;border-radius:18px;padding:24px}
.ci-l{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#5F6276}
.ci-l svg{color:#2F6FD6;flex:none}
.ci-v{margin-top:10px;font-size:17px;font-weight:700;color:#14131F;overflow-wrap:anywhere}
.ci-v a{color:#14131F;text-decoration:none}
.ci-v a:hover{color:#2E2A86;text-decoration:underline}
.ci-v small{display:block;font-weight:600;font-size:14px;color:#5F6276;margin-top:2px}
.admit{background:#2E2A86;color:#fff;border-radius:24px;padding:40px;display:flex;flex-direction:column;gap:16px;align-items:flex-start;position:relative;overflow:hidden}
.admit:after{content:'';position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;border:30px solid rgba(143,193,245,.18)}
.admit h3{font-size:34px;position:relative;z-index:1}
.admit p{color:#DEE1F3;position:relative;z-index:1}
.admit .btn,.admit .eyebrow,.admit .hero-actions{position:relative;z-index:1}
.maplink{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;background:#19153F;color:#fff;border-radius:18px;padding:0 24px;text-decoration:none;font-weight:800}
.maplink:hover{background:#241F63}
.maplink span{display:flex;align-items:center;gap:12px}
.maplink svg{color:#8FC1F5;flex:none}

/* page heroes */
.ahero{background:#19153F;color:#fff;padding:70px 0 66px;position:relative;overflow:hidden}
.ahero .hero-rings{width:520px;height:520px;right:-140px;top:-160px}
.ahero .wrap{position:relative}
.ahero h1{font-size:56px;line-height:1.08;margin:14px 0 12px}
.ahero h1 em{font-style:italic;color:#8FC1F5}
.ahero p{color:#DADDF0;font-size:19px;max-width:740px}
.back{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:700;min-height:44px;margin-bottom:8px}
.back:hover{color:#8FC1F5}

/* admissions */
.entry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ent{background:#19153F;color:#fff;border-radius:22px;padding:34px;border-top:5px solid #2F6FD6}
.ent:nth-child(2){background:#2E2A86}
.ent h3{font-size:28px;margin:10px 0 12px}
.ent p{color:#DADDF0;font-size:16px}
.ent ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.ent li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:#fff}
.ent li:before{content:'';flex:none;width:8px;height:8px;border-radius:50%;background:#8FC1F5;margin-top:8px}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.step{background:#fff;border:1px solid #DFE2EE;border-radius:20px;padding:28px 26px}
.step-n{width:44px;height:44px;border-radius:50%;background:#2F6FD6;color:#fff;font:800 17px 'Nunito Sans',sans-serif;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.step:nth-child(even) .step-n{background:#2E2A86}
.step h3{font-size:22px;color:#19153F;margin-bottom:8px}
.step p{font-size:15px;color:#535669}
.docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.doc{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #DFE2EE;border-radius:14px;padding:14px 16px;font-size:15px;font-weight:700;color:#14131F}
.doc svg{flex:none;color:#2F6FD6}
.fees{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.fee{background:#fff;border:1px solid #DFE2EE;border-radius:18px;padding:26px}
.fee b{font-family:'DM Serif Display',Georgia,serif;font-size:26px;font-weight:400;color:#2E2A86;display:block;margin-bottom:6px}
.fee span{font-size:15px;color:#535669}

/* forms */
.formwrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:start}
.fcard{background:#fff;border:1px solid #DFE2EE;border-radius:26px;padding:38px 40px;box-shadow:0 22px 54px rgba(25,21,63,.09)}
.fcard h2{font-size:34px;color:#19153F;margin-bottom:6px}
.fcard form{display:flex;flex-direction:column;gap:16px;margin-top:22px}
.f-lead{color:#535669;font-size:16px;margin:8px 0 6px}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#5F6276}
.field input,.field textarea{width:100%;border:1px solid #D3D6E8;border-radius:12px;padding:0 14px;font:600 16px 'Nunito Sans',sans-serif;color:#14131F;background:#FAFBFE;outline:0}
.field input{min-height:52px}
.field textarea{min-height:110px;padding:14px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:#2E2A86;background:#fff;box-shadow:0 0 0 3px #DDE0F6}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#535669;line-height:1.45}
.consent input{width:18px;height:18px;accent-color:#2E2A86;flex:none;margin-top:2px}
.done{background:#E6F0FD;border:1px solid #C7DDF7;border-radius:18px;padding:26px 28px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.done h3{font-size:26px;color:#19153F}
.done p{color:#2E3550;font-size:16px}
.textbtn{background:none;border:0;cursor:pointer;font-family:inherit;font-weight:800;min-height:44px;padding:0}
.benefit{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid #EAECF5}
.benefit:last-child{border-bottom:0}
.benefit svg{flex:none;margin-top:3px;color:#2F6FD6}
.benefit b{display:block;color:#19153F;font-size:17px}
.benefit span{color:#535669;font-size:15px}

/* portal */
.portalwrap{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:56px;align-items:start}
.tabs{display:inline-flex;background:#F3F5FB;border:1px solid #DFE2EE;border-radius:999px;padding:4px;gap:2px;margin-bottom:26px}
.tabs button{appearance:none;border:0;background:transparent;border-radius:999px;min-height:42px;padding:0 20px;font:800 15px 'Nunito Sans',sans-serif;color:#5F6276;cursor:pointer}
.tabs button:hover{color:#2E2A86}
.tabs button[aria-pressed="true"]{background:#fff;color:#2E2A86;box-shadow:0 2px 10px rgba(25,21,63,.14)}
.pw{position:relative}
.pw input{padding-right:54px}
.eye{appearance:none;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;background:transparent;border-radius:10px;color:#5F6276;display:flex;align-items:center;justify-content:center;cursor:pointer}
.eye:hover{background:#EEF0FA;color:#2E2A86}
.form-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;flex-wrap:wrap}
.form-row label{display:inline-flex;align-items:center;gap:8px;color:#31334A;cursor:pointer;min-height:44px}
.form-row input{width:18px;height:18px;accent-color:#2E2A86}
.login-msg{background:#E6F0FD;border:1px solid #C7DDF7;border-radius:12px;padding:14px 16px;font-size:15px;color:#2E3550}
.small-note{font-size:13px;color:#5F6276;line-height:1.5}
.sms{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:18px 20px;border-radius:16px;background:#19153F;color:#fff;text-decoration:none}
.sms:hover{background:#241F63}
.sms b{display:block;font-size:16px}
.sms small{display:block;color:#D2D5EC;font-size:13px;font-weight:600}
.sms svg{flex:none;color:#8FC1F5}
.svcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:26px}
.svc{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #DFE2EE;border-radius:16px;padding:16px 20px;min-height:64px;font-weight:800;font-size:16px;line-height:1.35;color:#14131F;transition:border-color .2s,box-shadow .2s}
.svc:hover{border-color:#BFC4E6;box-shadow:0 10px 26px rgba(25,21,63,.08)}
.svc-ic{width:40px;height:40px;border-radius:10px;background:#EEF0FA;color:#2E2A86;display:flex;align-items:center;justify-content:center;flex:none}
.svc:nth-child(4n+2) .svc-ic,.svc:nth-child(4n+3) .svc-ic{background:#E6F0FD;color:#2F6FD6}
.svc svg{flex:none;color:#2E2A86}

/* news */
.news{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ncard{background:#fff;border:1px solid #DFE2EE;border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.ncard-top{background:#19153F;color:#fff;padding:22px 26px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.ncard:nth-child(2) .ncard-top{background:#2E2A86}
.ncard:nth-child(3) .ncard-top{background:#2F6FD6}
.ncard-top b{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:28px;line-height:1}
.ncard-top span{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.ncard-b{padding:26px;display:flex;flex-direction:column;gap:10px;flex:1}
.ncard-b h3{font-size:24px;color:#19153F;line-height:1.2}
.ncard-b p{color:#535669;font-size:15px;flex:1}
.ncard-b a{color:#2E2A86;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;gap:6px;min-height:40px}
.ncard-b a:hover{text-decoration:underline}

/* footer */
.ftr{background:#0F0D29;color:#C4C8E2;font-size:15px;position:relative}
.ftr:before{content:'';display:block;height:6px;background:linear-gradient(90deg,#2E2A86 0 50%,#2F6FD6 50% 100%)}
.ftr-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.6fr) minmax(0,.9fr) minmax(0,1.1fr);gap:40px;padding-top:72px;padding-bottom:56px}
.ftr-brand{display:flex;flex-direction:column;gap:18px}
.ftr-brand img{width:96px;height:96px;display:block;border-radius:50%;background:#fff}
.ftr-brand .logo-anim{align-self:flex-start}
.ftr-name{font-family:'DM Serif Display',Georgia,serif;color:#fff;font-size:23px;line-height:1.2}
.ftr-motto{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:#8FC1F5}
.ftr h4{margin:0 0 16px;color:#fff;font-family:'Nunito Sans',sans-serif;font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.ftr-col{display:flex;flex-direction:column;gap:4px}
.ftr-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.ftr-col a,.ftr-col button{color:#C4C8E2;text-decoration:none;min-height:36px;display:inline-flex;align-items:center;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-align:left}
.ftr-col a:hover,.ftr-col button:hover{color:#fff}
.ftr-bottom{border-top:1px solid rgba(255,255,255,.1)}
.ftr-bottom .wrap{display:flex;align-items:center;gap:8px 12px;padding-top:20px;padding-bottom:20px;font-size:13px;color:#9A9EBC;flex-wrap:wrap}
.ftr-bottom .sep{opacity:.5}
.powered a{color:#fff;text-decoration:none;font-weight:800;border-bottom:1px solid rgba(255,255,255,.35)}
.powered a:hover{border-bottom-color:#8FC1F5;color:#8FC1F5}
.ftr-portal{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:#fff;text-decoration:none;font-weight:700;min-height:34px;padding:0 14px;border:1px solid rgba(255,255,255,.25);border-radius:999px}
.ftr-portal:hover{border-color:#8FC1F5;color:#8FC1F5}

/* cookie banner */
.cookie{position:fixed;left:24px;right:24px;bottom:24px;max-width:900px;margin:0 auto;background:#fff;border-radius:20px;box-shadow:0 24px 64px rgba(15,13,41,.3);border:1px solid #DFE2EE;border-top:5px solid #2F6FD6;padding:22px 24px;display:flex;gap:22px;align-items:center;z-index:60;animation:pcUp .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes pcUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.cookie-ic{width:50px;height:50px;border-radius:14px;background:#EEF0FA;color:#2E2A86;display:flex;align-items:center;justify-content:center;flex:none}
.cookie-t{flex:1;min-width:0}
.cookie-t b{display:block;font-size:17px;color:#19153F}
.cookie-t p{font-size:15px;color:#535669;line-height:1.45;margin-top:4px}
.cookie-a{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cookie-a .btn{min-height:44px;padding:0 18px;font-size:14px}
.cookie-a .link{font-size:14px;background:none;border:0;cursor:pointer;min-height:44px;padding:0 6px;font-family:inherit}

/* legal */
.lhero{background:#19153F;color:#fff;padding:70px 0 64px;position:relative;overflow:hidden}
.lhero .wrap{position:relative}
.lhero h1{font-size:54px;line-height:1.08;margin:14px 0 14px}
.lhero p{color:#D2D5EC}
.lgrid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:56px;align-items:start;padding-top:64px;padding-bottom:100px}
.toc{position:sticky;top:124px;display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid #DFE2EE;border-radius:18px;padding:18px}
.toc-h{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:#5F6276;padding:4px 12px 10px}
.toc a,.toc button{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;color:#14131F;text-decoration:none;font-weight:700;background:none;border:0;font:inherit;font-weight:700;cursor:pointer;text-align:left}
.toc a:hover,.toc button:hover{background:#EEF0FA;color:#2E2A86}
.lsec{background:#fff;border:1px solid #DFE2EE;border-radius:22px;padding:44px;margin-bottom:28px;scroll-margin-top:120px}
.lsec h2{font-size:36px;color:#19153F;margin-bottom:8px}
.lsec-intro{color:#535669;margin-bottom:24px}
.lsec h3{font-family:'Nunito Sans',sans-serif;font-weight:800;font-size:18px;color:#14131F;letter-spacing:0;margin:26px 0 6px}
.lsec p{color:#31334A;font-size:16px}
.ctable{border:1px solid #DFE2EE;border-radius:14px;overflow:hidden}
.crow{display:grid;grid-template-columns:1.1fr 2fr 1fr .9fr;gap:12px;padding:14px 18px;border-bottom:1px solid #EAECF5;font-size:15px;color:#31334A}
.crow:last-child{border-bottom:0}
.crow-h{background:#F3F5FB;font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#5F6276}
.crow code{font-family:ui-monospace,Menlo,monospace;font-size:14px;color:#2E2A86}

/* responsive (container queries keep the canvas frames and real devices identical) */
@container pc (max-width: 1360px){.nav a{font-size:16px;padding:10px 10px}.brand-name{font-size:24px}}
@container pc (max-width: 1440px){.nav a{font-size:15.5px;padding:10px 9px}.brand-sub{font-size:11px;letter-spacing:.03em}.brand-sub2{font-size:11px}.brand img{width:66px;height:66px}.brand-name{font-size:23px}.hdr .wrap{gap:16px}}
@container pc (max-width: 1340px){.brand-sub2{display:none}.nav a{font-size:15px;padding:10px 7px}}
@container pc (max-width: 1180px){.nav{display:none}.menu-btn{display:inline-flex}.hdr .hdr-cta{display:inline-flex}}
@container pc (max-width: 1100px){.tl{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}.tl-item:nth-child(3n):before{right:0}.cards4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container pc (max-width: 960px){
.hero-grid{grid-template-columns:minmax(0,1fr);gap:40px;padding-top:56px;padding-bottom:130px}
.crest{order:-1;justify-content:flex-start}
.ring1{width:250px;padding:16px}
.hero h1{font-size:52px}
.facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.fact:nth-child(2){border-right:0}
.fact:nth-child(-n+2){border-bottom:1px solid #EAECF5}
.two,.contact,.paths,.lead-wrap,.env,.formwrap,.portalwrap{grid-template-columns:minmax(0,1fr);gap:40px}
.story{grid-template-columns:minmax(0,1fr);padding:36px}
.story-stat{border-left:0;padding-left:0;border-top:1px solid #CFD3EE;padding-top:28px;text-align:left}
.ded{grid-template-columns:minmax(0,1fr);padding:36px;gap:20px}
.ded-date{text-align:left}
.vals,.cards3,.exams,.entry,.fees,.news{grid-template-columns:minmax(0,1fr)}
.res-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.steps{grid-template-columns:repeat(2,minmax(0,1fr))}
.photos{grid-template-columns:repeat(2,minmax(0,1fr))}
.cal{grid-template-columns:minmax(0,1fr);gap:36px}
.ftr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ftr-brand{grid-column:1 / -1}
.ftr-col.wide{grid-column:1 / -1}
.lgrid{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:32px}
.toc{position:static}
.rrow{grid-template-columns:.6fr 1.4fr .8fr .8fr .9fr;padding:14px 16px;font-size:15px}
.ahero h1,.lhero h1{font-size:44px}
.honour{grid-template-columns:minmax(0,1fr);padding:32px}
}
@container pc (max-width: 640px){
.pc{font-size:16px}
.wrap{padding:0 18px}
.util .wrap{min-height:52px;gap:10px}
.util-hide{display:none !important}
.util-info span{overflow:hidden;text-overflow:ellipsis}
.util-portal{padding:0 12px}
.util-portal .lbl{display:none}
.lang button{padding:0 11px;min-width:42px}
.hdr .wrap{min-height:78px;gap:10px}
.hdr .hdr-cta{display:none}
.brand{flex:1 1 auto;gap:10px}
.brand img{width:54px;height:54px}
.brand-name{font-size:21px}
.brand-sub{font-size:10.5px;letter-spacing:.03em;white-space:normal;line-height:1.3}
.brand-sub2{display:none}
.hero h1{font-size:40px}
.lead{font-size:18px}
.motto{gap:10px}
.motto-t{font-size:14px;letter-spacing:.12em;white-space:normal}
.motto-rule{flex:0 0 20px}
.hero-actions .btn{flex:1 1 100%}
.hero-grid{padding-bottom:132px}
.ring1{width:184px;padding:12px}
.ring1:before{inset:-8px}
.ring2{padding:8px}
.facts{margin-top:-60px}
.fact{padding:22px 18px}
.fact-n{font-size:34px}
.fact-l{font-size:14px}
.sec{padding:64px 0}
.sec-head{margin-bottom:34px}
.sec-head h2,.big-h{font-size:34px}
.sec-head p{font-size:17px}
.prose{font-size:17px}
.idcard{padding:8px 20px}
.idrow{grid-template-columns:minmax(0,1fr);gap:2px}
.tl{grid-template-columns:minmax(0,1fr);row-gap:0;gap:0}
.tl-item{padding:0 0 28px 38px}
.tl-item:before,.tl-item:nth-child(3n):before{left:8px;right:auto;top:18px;bottom:0;width:2px;height:auto}
.tl-item:last-child:before{display:none}
.tl-dot{top:4px}
.story{padding:28px 22px;margin-top:44px}
.story h3,.ded h3{font-size:26px}
.story-n{font-size:72px}
.ded{padding:28px 22px}
.ded-date b{font-size:64px}
.principal{grid-template-columns:minmax(0,1fr)}
.portrait{min-height:200px}
.principal-b{padding:24px}
.posts{grid-template-columns:minmax(0,1fr)}
.val{padding:28px 24px}
.path,.card{padding:26px}
.res-grid{grid-template-columns:minmax(0,1fr)}
.res{padding:26px 24px}
.res-n{font-size:46px}
.bar-y{grid-template-columns:minmax(0,1fr);gap:8px}
.bar{grid-template-columns:76px minmax(0,1fr);gap:10px}
.bar-v{grid-column:1 / -1;text-align:left;font-size:13px;margin-top:-4px}
.rrow{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
.rrow.rh{display:none}
.rrow > div:first-child{grid-column:1 / -1;font-family:'DM Serif Display',Georgia,serif;font-size:22px;color:#19153F}
.rrow > div[data-l]:before{content:attr(data-l);display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#5F6276}
.honour{padding:26px 22px;gap:18px}
.honour-ic{width:72px;height:72px}
.cards4,.steps,.docs,.f2,.svcs,.photos{grid-template-columns:minmax(0,1fr)}
.photo.wide{grid-column:auto;grid-row:auto;aspect-ratio:4/3}
.cinfo{grid-template-columns:minmax(0,1fr)}
.admit{padding:30px 24px}
.admit h3{font-size:28px}
.fcard{padding:26px 20px}
.fcard h2{font-size:28px}
.tabs{width:100%;justify-content:space-between}
.tabs button{flex:1;padding:0 8px;font-size:14px}
.env-quote{font-size:22px}
.ftr-grid{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:56px}
.ftr-bottom .sep{display:none}
.ftr-portal{margin-left:0}
.ahero,.lhero{padding:46px 0 44px}
.ahero h1,.lhero h1{font-size:34px}
.ahero p{font-size:17px}
.lsec{padding:28px 22px}
.lsec h2{font-size:28px}
.crow{grid-template-columns:minmax(0,1fr);gap:4px}
.crow-h{display:none}
.cookie{flex-direction:column;align-items:stretch;left:12px;right:12px;bottom:12px;padding:20px;gap:14px}
.cookie-ic{display:none}
.cookie-a .btn{flex:1 1 auto}
.maplink{min-height:64px;padding:0 18px}
}
@media (prefers-reduced-motion: reduce){.logo-anim img,.logo-anim:before,.logo-anim:after,.ring1,.ring1:before,.ring2 img,.bar-fill,.cookie{animation:none !important}.btn:hover,.val:hover,.card:hover,.res:hover{transform:none}}

/* PCC network */
.nhero{background:#19153F;color:#fff;padding:40px 0 76px;position:relative;overflow:hidden}
.nhero .wrap{position:relative}
.crumb{font-size:14px;color:#D2D5EC;margin-bottom:18px}
.crumb a{color:#8FC1F5;font-weight:800;text-decoration:none}
.crumb a:hover{color:#fff}
.nhero h1{font-size:60px;line-height:1.05;margin:14px 0 16px;max-width:920px}
.nhero .lead{max-width:780px}
.nstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:44px 0 26px}
.nstat{display:flex;align-items:baseline;gap:12px;padding:18px 22px;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18)}
.nstat b{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:36px;color:#8FC1F5;line-height:1}
.nstat span{font-size:15px;color:#DADDF0}
.mchips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.mchip{appearance:none;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.32);background:transparent;color:#fff;font:800 14px 'Nunito Sans',sans-serif;cursor:pointer;transition:background .2s,border-color .2s}
.mchip:hover{border-color:#8FC1F5}
.mchip.on{background:#8FC1F5;border-color:#8FC1F5;color:#19153F}
.mapgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start}
.mapbox{position:relative;aspect-ratio:.95/1;border-radius:22px;background:#110F2E;border:1px solid rgba(255,255,255,.14);overflow:hidden}
.mapbox svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.m-nb{fill:#1B1747;stroke:#3D3A86;stroke-width:1;vector-effect:non-scaling-stroke}
.m-cm{fill:#2B2775;stroke:#D9DBFA;stroke-width:1.8;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.m-reg{fill:rgba(220,228,255,.5);font-family:'Nunito Sans',sans-serif;font-weight:800;letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
.mdot{cursor:pointer}
.mdot circle{fill:#8FC1F5;stroke:#19153F;transition:fill .2s}
.mdot.me circle{fill:#fff;stroke:#2F6FD6}
.mdot.sel circle{fill:#fff;stroke:#8FC1F5}
.mdot:hover circle{fill:#fff}
.mdot text{fill:#fff;font-family:'Nunito Sans',sans-serif;font-weight:800;paint-order:stroke;stroke:#19153F;stroke-linejoin:round;pointer-events:none}
.mback{position:absolute;left:14px;top:14px;appearance:none;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:#19153F;color:#fff;font:800 13px 'Nunito Sans',sans-serif;cursor:pointer}
.mback:hover{border-color:#8FC1F5;color:#8FC1F5}
.maphelp{font-size:13.5px;color:#D2D5EC;margin-top:12px}
.mpanel{background:#fff;color:#14131F;border-radius:22px;padding:26px;min-height:320px}
.mp-eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#2F6FD6}
.mpanel h3{font-size:28px;color:#19153F;margin:4px 0 8px}
.mpanel p{font-size:15px;color:#535669;margin-bottom:16px}
.mp-list{display:flex;flex-direction:column}
.mp-list button{display:flex;justify-content:space-between;align-items:center;gap:10px;border:0;border-top:1px solid #EAECF5;background:none;min-height:48px;padding:0 4px;cursor:pointer;font:700 15.5px 'Nunito Sans',sans-serif;color:#14131F;text-align:left}
.mp-list button:hover{color:#2E2A86}
.mp-list span{display:flex;align-items:center;gap:10px}
.mp-list i{width:10px;height:10px;border-radius:50%;background:#8FC1F5;flex:none}
.mp-list i.me{background:#2E2A86}
.mp-list small{font-size:13.5px;color:#5F6276;font-weight:700;white-space:nowrap}
.mp-schools{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.mp-schools .school{border:0;border-top:1px solid #EAECF5;border-radius:0;padding:14px 0 6px;box-shadow:none}
.ntools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.nsearch{flex:1 1 320px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #D3D6E8;border-radius:14px;padding:0 16px;min-height:52px;color:#5F6276}
.nsearch input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:600 16px 'Nunito Sans',sans-serif;color:#14131F}
.nsearch:focus-within{border-color:#2E2A86;box-shadow:0 0 0 3px #DDE0F6}
.ntoggle{display:inline-flex;background:#EEF0FA;border:1px solid #DFE2EE;border-radius:999px;padding:4px;gap:2px}
.ntoggle button{appearance:none;border:0;background:transparent;border-radius:999px;min-height:42px;padding:0 18px;font:800 14px 'Nunito Sans',sans-serif;color:#2E2A86;cursor:pointer}
.ntoggle button[aria-pressed="true"]{background:#2E2A86;color:#fff}
.pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px}
.pill{appearance:none;border:1px solid #D3D6E8;background:#fff;border-radius:999px;min-height:44px;padding:0 18px;font:700 14.5px 'Nunito Sans',sans-serif;color:#1F2133;cursor:pointer}
.pill:hover{border-color:#2E2A86;color:#2E2A86}
.pill.on{background:#2E2A86;border-color:#2E2A86;color:#fff}
.ngroup{margin-bottom:40px}
.ngroup h3{font-size:32px;color:#19153F;margin-bottom:18px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ngroup h3 span{font-family:'Nunito Sans',sans-serif;font-size:14px;color:#5F6276;font-weight:700}
.schools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.school{background:#fff;border:1px solid #DFE2EE;border-radius:18px;padding:22px 24px;display:flex;flex-direction:column;gap:5px;transition:border-color .2s,box-shadow .2s}
.schools .school:hover{border-color:#BFC4E6;box-shadow:0 12px 30px rgba(25,21,63,.08)}
.school.me{border-color:#2F6FD6;box-shadow:0 0 0 3px #E6F0FD}
.school-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:2px}
.school-n{font-weight:800;font-size:18px;color:#14131F;line-height:1.25}
.badge{flex:none;font-size:11px;letter-spacing:.1em;font-weight:800;color:#2E2A86;background:#EEF0FA;border-radius:6px;padding:4px 8px;text-transform:uppercase}
.school-l{font-size:15px;color:#535669}
.school-alt{font-size:13px;color:#7A7E92;font-style:italic}
.school-p{display:flex;gap:7px;align-items:center;font-size:14px;color:#1F2133;margin-top:2px}
.school-p svg{color:#2F6FD6;flex:none}
.school-p b{font-weight:800}
.school-ct{font-size:14px;color:#2F6FD6;font-weight:800;text-decoration:none;overflow-wrap:anywhere}
.school-ct:hover{text-decoration:underline}
.school-web{display:inline-flex;align-items:center;gap:6px;font-size:14.5px;font-weight:800;color:#2E2A86;text-decoration:none;overflow-wrap:anywhere}
.school-web:hover{text-decoration:underline}
.school-web svg{flex:none}
.school-me{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#2F6FD6;margin-top:4px}
.nempty{padding:40px;text-align:center;color:#5F6276;background:#fff;border:1px dashed #D3D6E8;border-radius:16px}
@container pc (max-width: 960px){.mapgrid{grid-template-columns:minmax(0,1fr)}.nstats{grid-template-columns:repeat(2,minmax(0,1fr))}.schools{grid-template-columns:repeat(2,minmax(0,1fr))}.nhero h1{font-size:44px}}
@container pc (max-width: 640px){.schools{grid-template-columns:minmax(0,1fr)}.nhero{padding:28px 0 56px}.nhero h1{font-size:34px}.nstats{gap:10px;margin-top:30px}.nstat{padding:14px 16px;flex-direction:column;gap:4px}.nstat b{font-size:28px}.mpanel{padding:20px}.ntoggle{width:100%}.ntoggle button{flex:1}.ngroup h3{font-size:26px}.school{padding:18px 20px}}
.mref circle{fill:none;stroke:#D9DBFA}
.mref text{fill:#D9DBFA;font-family:'Nunito Sans',sans-serif;font-weight:700;font-style:italic;paint-order:stroke;stroke:#19153F;stroke-linejoin:round;pointer-events:none}
.mp-schools .school.me{box-shadow:none;border-color:#EAECF5}
.netband{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.nb-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.purple .nstat b{color:#C3DBF8}
@container pc (max-width: 960px){.netband{grid-template-columns:minmax(0,1fr);gap:32px}}

/* PCSS Ngaoundere additions */
.portrait.has-img{padding:0;background:#19153F}
.portrait.has-img img{width:100%;height:100%;min-height:320px;object-fit:cover;display:block}
figure.pic{margin:0;position:relative;border-radius:18px;overflow:hidden;background:#19153F;aspect-ratio:4/3;box-shadow:0 14px 34px rgba(25,21,63,.12)}
figure.pic.wide{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
figure.pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
figure.pic:hover img{transform:scale(1.04)}
figure.pic figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;background:linear-gradient(to top,rgba(15,13,41,.88),rgba(15,13,41,0));color:#fff;font-size:14px;font-weight:700;line-height:1.35}
.pics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:28px}
.slogan{display:inline-flex;align-items:center;gap:10px;margin-top:22px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.26);color:#fff;border-radius:999px;padding:9px 18px;font-weight:800;font-size:15px;letter-spacing:.02em}
.slogan i{width:8px;height:8px;border-radius:50%;background:#8FC1F5;display:inline-block}
.pillars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:8px}
.pillar{background:#fff;border:1px solid #DFE2EE;border-radius:20px;padding:24px 20px;border-top:5px solid #2E2A86}
.pillar:nth-child(even){border-top-color:#2F6FD6}
.pillar h3{font-size:20px;color:#19153F;margin:12px 0 8px}
.pillar p{font-size:15px;color:#535669;line-height:1.5}
.tagline{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin-top:34px;font-weight:900;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#2E2A86}
.tagline span{display:inline-flex;align-items:center;gap:10px}
.tagline span+span:before{content:'';width:6px;height:6px;border-radius:50%;background:#2F6FD6}
.fb{display:inline-flex;align-items:center;gap:8px}
@container pc (max-width: 1100px){.pillars{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container pc (max-width: 960px){.pics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container pc (max-width: 640px){.pics,.pillars{grid-template-columns:minmax(0,1fr)}figure.pic.wide{grid-column:auto;grid-row:auto;aspect-ratio:4/3}.portrait.has-img img{min-height:260px}}
