﻿:root{
    --navy:#0B1F4B; --royal:#14335E; --gold:#C9A227; --gold-light:#E8C766;
    --white:#FFFFFF; --bg-light:#F4F5F8; --bg-warm:#FAF8F3; --charcoal:#2B2B2E;
    --muted:#6B7280; --border:#E1E4EA; --success:#2E7D32;
    --font-display:'Playfair Display', Georgia, serif; --font-body:'Inter', -apple-system, sans-serif;
    --maxw:1320px; --nav-h:76px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; max-width:100vw; overflow-x:visible;}
body{font-family:var(--font-body); color:var(--charcoal); background:var(--white); line-height:1.65; -webkit-font-smoothing:antialiased; max-width:100vw; position:relative; overflow-x:visible;}
img, svg, video, iframe{max-width:100%; height:auto; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px; width:100%;}
#site-wrapper{overflow:visible; max-width:100vw;}
.eyebrow{font-family:var(--font-body); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold);}
h1,h2,h3{font-family:var(--font-display); color:var(--navy); font-weight:700; line-height:1.2;}
.lede{color:var(--muted); font-size:17px; max-width:640px;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:14px 28px; font-size:14px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; border-radius:2px; transition:all .25s ease; cursor:pointer; border:1.5px solid transparent;}
.btn-gold{background:var(--gold); color:var(--navy);}
.btn-gold:hover{background:var(--gold-light); transform:translateY(-1px); box-shadow:0 4px 12px rgba(201,162,39,.3);}
.btn-outline-light{border-color:rgba(255,255,255,.55); color:var(--white);}
.btn-outline-light:hover{border-color:var(--white); background:rgba(255,255,255,.08); transform:translateY(-1px);}
.btn-outline-navy{border-color:var(--navy); color:var(--navy);}
.btn-outline-navy:hover{background:var(--navy); color:var(--white); transform:translateY(-1px); box-shadow:0 4px 12px rgba(11,31,75,.2);}
.btn-text{color:var(--navy); font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase; border-bottom:1.5px solid var(--gold); padding-bottom:2px; transition:all .2s ease;}
.btn-text:hover{border-bottom-color:var(--navy);}
.btn-block{width:100%; justify-content:center;}
.btn-sm{padding:11px 18px; font-size:12px;}
.btn[disabled]{opacity:.4; cursor:not-allowed;}

/* ===== PAGE LOADER - PERFECT CENTER (ALL DEVICES) ===== */
#site-wrapper{opacity:1 !important; transition:opacity .5s ease;}
#page-loader{position:fixed; inset:0; width:100vw; height:100vh; height:100dvh; z-index:10000; background:radial-gradient(1200px 600px at 50% -10%, #14335E 0%, #0B1F4B 55%, #081633 100%); display:flex; align-items:center; justify-content:center; overflow:hidden; padding:24px; box-sizing:border-box;}
#page-loader::before, #page-loader::after{content:""; position:absolute; left:50%; top:50%; border-radius:50%; pointer-events:none;}
#page-loader::before{width:min(900px, 150vw); height:min(900px, 150vw); margin-left:calc(min(900px, 150vw)/-2); margin-top:calc(min(900px, 150vw)/-2); border:1px solid rgba(201,162,39,.12); animation:loaderOrbit 6s linear infinite;}
#page-loader::after{width:min(640px, 110vw); height:min(640px, 110vw); margin-left:calc(min(640px, 110vw)/-2); margin-top:calc(min(640px, 110vw)/-2); border:1px solid rgba(201,162,39,.08); animation:loaderOrbit 8s linear infinite reverse;}
.loader-inner{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; text-align:center; width:100%; max-width:320px; margin:auto; transform:translateZ(0);}
.loader-crest{width:88px;height:88px;border-radius:50%;background:var(--white);display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 12px 40px rgba(0,0,0,.35), 0 0 0 1px rgba(201,162,39,.3); animation:loaderPop .9s cubic-bezier(.16,1,.3,1); flex-shrink:0;}
.loader-logo{width:88px;height:88px;border-radius:50%;object-fit:cover;animation:loaderFloat 2.2s ease-in-out infinite; display:block;}
.loader-ring,.loader-ring2{position:absolute; inset:-8px;border-radius:50%;border:2px solid transparent; border-top-color:var(--gold);}
.loader-ring{animation:loaderSpin 1.2s linear infinite;}
.loader-ring2{inset:-14px; border-top-color:rgba(232,199,102,.6); animation:loaderSpin 1.8s linear infinite reverse;}
@keyframes loaderOrbit{from{transform:rotate(0deg)} to{transform:rotate(360deg)}}
@keyframes loaderPop{from{transform:scale(.7); opacity:0} to{transform:scale(1); opacity:1}}
@keyframes loaderFloat{0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)}}
@keyframes loaderSpin{to{transform:rotate(360deg)}}
.loader-bar{width:220px;height:3px;background:rgba(255,255,255,.14);border-radius:999px;overflow:hidden;margin-top:6px;}
.loader-progress{height:100%;width:0%;background:linear-gradient(90deg, var(--gold), var(--gold-light));border-radius:999px;animation:loaderFill 1.8s cubic-bezier(.65,0,.35,1) forwards; box-shadow:0 0 10px rgba(201,162,39,.6);}
@keyframes loaderFill{0%{width:0%} 55%{width:68%} 100%{width:100%}}
.loader-brand{font-family:var(--font-display); font-weight:800; letter-spacing:.14em; color:var(--white); font-size:13px; text-align:center;}
.loader-brand span{display:block; font-family:var(--font-body); font-weight:700; letter-spacing:.2em; color:var(--gold-light); font-size:11px; margin-top:2px;}
.loader-tag{font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.62); font-weight:700;}

/* ===== TOPBAR ===== */
.topbar{background:#081633; color:rgba(255,255,255,.82); font-size:12px; border-bottom:1px solid rgba(201,162,39,.18);}
.topbar-inner{display:flex; align-items:center; justify-content:space-between; height:34px; gap:16px;}
.topbar-left{display:flex; align-items:center; gap:12px; flex-wrap:wrap; min-width:0;}
.topbar-left a{white-space:nowrap;}
.topbar-left a:hover{color:var(--gold-light);}
.dot{width:3px;height:3px;background:rgba(201,162,39,.6);border-radius:50%; flex-shrink:0;}
.hide-sm{color:rgba(255,255,255,.6);}
.topbar-right{display:flex; align-items:center; gap:16px; flex-shrink:0;}
.topbar-right a{white-space:nowrap; font-weight:600; transition:color .2s;}
.topbar-right a:hover{color:var(--gold-light);}
/* ===== SITE NAV - CLEAN PROVEN ===== */
.site-nav{position:-webkit-sticky; position:sticky; top:0; z-index:1000; background:var(--white); border-bottom:1px solid var(--border); box-shadow:0 1px 0 rgba(11,31,75,.04); transition:box-shadow .25s; overflow:visible;}
.site-nav.scrolled{box-shadow:0 6px 24px rgba(11,31,75,.08);}
.site-nav::after{content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:linear-gradient(90deg, var(--gold), var(--gold-light)); opacity:1; pointer-events:none;}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; height:72px; min-width:0; overflow:visible;}
.brand{display:flex; align-items:center; gap:11px; flex-shrink:0; text-decoration:none;}
.brand-logo{width:44px;height:44px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid var(--gold);flex-shrink:0;transition:transform .25s;}
.brand:hover .brand-logo{transform:scale(1.04);}
.brand-logo img{width:100%;height:100%;object-fit:cover; display:block;}
.brand-logo.sm{width:34px;height:34px;}
.brand-copy{display:flex;flex-direction:column; line-height:1;}
.brand-title{font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--navy); white-space:nowrap; letter-spacing:-.01em;}
.brand-sub{font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:800; margin-top:2px; white-space:nowrap;}
/* desktop menu */
.desktop-nav{flex:1; display:flex; justify-content:center; min-width:0; overflow:visible;}
.menu{display:flex; align-items:center; gap:2px; list-style:none; flex-wrap:nowrap; margin:0; padding:0; overflow:visible;}
.menu-item{position:relative; flex-shrink:0;}
.menu-link{display:flex; align-items:center; gap:6px; padding:10px 12px; font-size:12.5px; font-weight:700; color:var(--charcoal); border-radius:8px; white-space:nowrap; transition:all .18s; text-decoration:none;}
.menu-link:hover, .menu-item:hover > .menu-link{background:var(--bg-light); color:var(--navy);}
.menu-link.is-active{color:var(--navy); background:rgba(11,31,75,.06);}
.menu-link.is-active::after{content:""; position:absolute; left:12px; right:12px; bottom:3px; height:2px; background:var(--gold); border-radius:2px;}
.caret{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55;transition:transform .22s; flex-shrink:0;}
.menu-item.open .caret{transform:rotate(-135deg) translateY(-1px); opacity:1;}
.submenu{position:absolute; top:100%; left:0; min-width:240px; background:var(--white); border:1px solid var(--border); border-radius:10px; box-shadow:0 14px 36px rgba(11,31,75,.14); padding:8px; margin-top:8px; opacity:0; visibility:hidden; transform:translateY(6px); pointer-events:none; transition:opacity .22s ease, transform .22s cubic-bezier(.16,1,.3,1), visibility .22s; z-index:1001; list-style:none;}
.submenu::before{content:""; position:absolute; top:-6px; left:22px; width:10px;height:10px;background:var(--white);border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg);}
/* Invisible hover bridge â€” always present so mouse can travel over the 8px+6px=14px gap without losing hover */
.menu-item.has-sub::after{content:""; position:absolute; left:-8px; right:-8px; top:100%; height:20px; display:block; background:transparent; pointer-events:auto; z-index:1000;}
.menu-item:hover > .submenu, .menu-item.open > .submenu, .menu-item:focus-within > .submenu, .submenu:hover{opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto;}
.menu-item:focus-within > .submenu{opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto;}
.submenu li{list-style:none;}
.submenu a{display:block; padding:9px 12px; font-size:13px; font-weight:600; color:var(--charcoal); border-radius:7px; white-space:nowrap; transition:all .15s;}
.submenu a:hover{background:var(--bg-light); color:var(--navy); padding-left:16px;}
.submenu a:focus-visible{outline:2px solid var(--gold); outline-offset:-2px; background:var(--bg-light);}
/* Keep right-edge dropdowns inside viewport (Student Life near edge) */
.menu-item.has-sub:nth-child(5) .submenu{left:auto; right:0;}
.menu-item.has-sub:nth-child(5) .submenu::before{left:auto; right:22px;}
.menu-item:last-child .submenu, .menu-item:nth-last-child(2) .submenu{left:auto; right:0;}
.menu-item:last-child .submenu::before, .menu-item:nth-last-child(2) .submenu::before{left:auto; right:22px;}
.nav-cta{display:flex; align-items:center; gap:8px; flex-shrink:0;}
.hide-md{display:inline-flex;}
.menu-toggle{display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:42px;height:42px; border:1px solid var(--border); border-radius:10px; background:var(--white); cursor:pointer; flex-shrink:0; transition:all .2s;}
.menu-toggle span{width:18px;height:2px;background:var(--navy);border-radius:2px;transition:all .25s; display:block;}
.menu-toggle.is-open{background:var(--navy); border-color:var(--navy);}
.menu-toggle.is-open span{background:var(--white);}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0; transform:scaleX(0);}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
/* MOBILE PANEL */
.mobile-panel{position:fixed; top:0; right:0; width:min(380px,92vw); height:100vh; height:100dvh; background:var(--white); z-index:1101; display:flex; flex-direction:column; transform:translateX(100%); transition:transform .38s cubic-bezier(.16,1,.3,1); box-shadow:-20px 0 50px rgba(0,0,0,.15); overflow:hidden; will-change:transform;}
.mobile-panel.open{transform:translateX(0);}
.mobile-head{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border-bottom:1px solid var(--border); background:var(--bg-light); flex-shrink:0;}
.mobile-close{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--white);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s; flex-shrink:0;}
.mobile-close:hover{background:var(--navy); color:var(--white); border-color:var(--navy);}
.mobile-body{flex:1; overflow-y:auto; overscroll-behavior:contain; padding:10px 12px 16px; -webkit-overflow-scrolling:touch;}
.m-item{border-radius:8px; margin-bottom:2px; overflow:hidden;}
.m-toggle{width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 12px; font-size:14.5px; font-weight:700; color:var(--charcoal); background:none; border:0; cursor:pointer; text-align:left; border-radius:8px; transition:all .15s;}
.m-toggle:hover, .m-item.open .m-toggle{background:var(--bg-light); color:var(--navy);}
.m-caret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.5;transition:transform .25s; flex-shrink:0;}
.m-item.open .m-caret{transform:rotate(-135deg); opacity:1;}
.m-sub{max-height:0; overflow:hidden; transition:max-height .32s ease; background:var(--bg-light); border-radius:8px; margin:0 4px;}
.m-item.open .m-sub{max-height:600px; margin-bottom:6px;}
.m-sub a{display:flex; align-items:center; gap:8px; padding:11px 14px 11px 22px; font-size:13.5px; font-weight:600; color:var(--muted); border-top:1px solid rgba(0,0,0,.04);}
.m-sub a::before{content:""; width:5px;height:5px;background:var(--gold);transform:rotate(45deg);flex-shrink:0; opacity:.8;}
.m-sub a:hover{color:var(--navy); background:var(--white);}
.m-link{display:flex; align-items:center; padding:15px 12px; font-size:14.5px; font-weight:700; color:var(--charcoal); border-radius:8px; transition:all .15s;}
.m-link:hover{background:var(--bg-light); color:var(--navy);}
.mobile-foot{padding:14px 16px; border-top:1px solid var(--border); background:var(--white); flex-shrink:0; position:sticky; bottom:0;}
.mobile-overlay{position:fixed; inset:0; background:rgba(8,22,51,.5); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); z-index:1100; opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s;}
.mobile-overlay.open{opacity:1; visibility:visible;}
/* legacy hamburger - hidden, use menu-toggle */
.hamburger{display:none !important;}
/* MOBILE DRAWER - LEGACY HIDDEN */
.mobile-drawer{display:none !important;}
.mobile-drawer.open{transform:translateX(0);}
.drawer-head{display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--border); background:linear-gradient(180deg, var(--white), var(--bg-light)); flex-shrink:0;}
.drawer-brand{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; color:var(--navy); font-size:14px;}
.drawer-close{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--white);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s; flex-shrink:0;}
.drawer-close:hover{background:var(--navy); color:var(--white); border-color:var(--navy); transform:rotate(90deg);}
.drawer-nav{flex:1; overflow-y:auto; overscroll-behavior:contain; padding:8px 12px 12px; -webkit-overflow-scrolling:touch;}
.d-item{border-radius:10px; margin-bottom:4px; overflow:hidden; border:1px solid transparent; transition:border-color .2s;}
.d-item.open{border-color:var(--border); background:var(--bg-light);}
.d-toggle{width:100%; display:flex; align-items:center; justify-content:space-between; padding:16px 14px; font-size:14px; font-weight:700; background:none; border:0; cursor:pointer; color:var(--charcoal); text-align:left; transition:color .2s;}
.d-item.open .d-toggle{color:var(--navy);}
.d-toggle .caret{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .3s cubic-bezier(.16,1,.3,1); flex-shrink:0; opacity:.6;}
.d-item.open .d-toggle .caret{transform:rotate(-135deg); opacity:1;}
.d-sub{max-height:0; overflow:hidden; transition:max-height .36s cubic-bezier(.16,1,.3,1); margin:0;}
.d-item.open .d-sub{max-height:500px;}
.d-sub a{display:flex; align-items:center; gap:10px; padding:12px 14px 12px 24px; font-size:13.5px; font-weight:600; color:var(--muted); border-top:1px solid rgba(0,0,0,.04); position:relative; transition:all .2s;}
.d-sub a::before{content:""; width:6px; height:6px; background:var(--gold); transform:rotate(45deg); opacity:.7; flex-shrink:0;}
.d-sub a:hover{color:var(--navy); background:var(--white); padding-left:28px;}
.d-link{display:flex; align-items:center; padding:16px 14px; font-weight:700; font-size:14px; border-radius:10px; margin-bottom:4px; transition:all .2s; border:1px solid transparent;}
.d-link:hover{background:var(--bg-light); border-color:var(--border); color:var(--navy);}
.drawer-cta{padding:16px; border-top:1px solid var(--border); background:var(--white); flex-shrink:0; position:sticky; bottom:0;}
.drawer-cta .btn{padding:14px; font-size:14px; border-radius:10px;}
.drawer-backdrop{position:fixed; inset:0; background:rgba(8,22,51,.52); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); z-index:1099; opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s;}
.drawer-backdrop.open{opacity:1; visibility:visible;}

/* ===== BREADCRUMB ===== */
.breadcrumb{background:var(--bg-warm); border-bottom:1px solid var(--border); padding:14px 0;}
.breadcrumb .wrap{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--muted); flex-wrap:wrap;}
.breadcrumb a:hover{color:var(--navy);}
.breadcrumb .sep{color:var(--gold);}
.breadcrumb .current{color:var(--navy); font-weight:600;}

/* ===== HERO ===== */
.hero{position:relative; background:linear-gradient(160deg, var(--navy) 0%, var(--royal) 62%, #1c3f70 100%); overflow:hidden; padding:96px 0 110px; max-width:100vw;}
.hero-orbit{position:absolute; right:-120px; top:-120px; width:min(520px, 90vw); height:min(520px, 90vw); border:1px solid rgba(201,162,39,.28); border-radius:50%; animation:heroFloat 8s ease-in-out infinite; pointer-events:none; max-width:90vw;}
.hero-orbit::after{content:""; position:absolute; inset:60px; border:1px solid rgba(201,162,39,.16); border-radius:50%;}
@keyframes heroFloat{0%,100%{transform:translate(0,0);} 50%{transform:translate(-20px,15px);}}
.hero::before{content:""; position:absolute; inset:0; opacity:.08; background-image:radial-gradient(circle at 20% 20%, var(--gold) 0, transparent 2px), radial-gradient(circle at 80% 75%, var(--gold) 0, transparent 2px); background-size:46px 46px;}
.hero .wrap{position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center;}
.hero-eyebrow{color:var(--gold-light); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; margin-bottom:20px; display:flex; align-items:center; gap:10px;}
.hero-eyebrow .line{width:32px; height:1px; background:var(--gold);}
.hero h1{color:var(--white); font-size:50px; line-height:1.1; margin-bottom:22px; max-width:640px;}
.hero h1 em{color:var(--gold-light); font-style:normal;}
.hero-sub{color:rgba(255,255,255,.92); font-size:17px; font-weight:600; margin-bottom:14px;}
.hero-p{color:rgba(255,255,255,.72); font-size:15.5px; max-width:520px; margin-bottom:34px;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:38px;}
.hero-tertiary{color:rgba(255,255,255,.75); font-size:13.5px; display:flex; align-items:center; gap:8px;}
.hero-tertiary a{border-bottom:1px solid rgba(255,255,255,.35); font-weight:600; color:var(--white); transition:border-color .2s;}
.hero-tertiary a:hover{border-bottom-color:var(--gold-light);}
.hero-visual{position:relative; aspect-ratio:4/5; border:1px solid rgba(201,162,39,.4); border-radius:4px; background:linear-gradient(200deg, rgba(201,162,39,.16), rgba(255,255,255,.04)); display:flex; align-items:center; justify-content:center; padding:20px;}
.hero-visual-inner{width:100%; height:100%; border:1px solid rgba(255,255,255,.18); border-radius:2px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; text-align:center; padding:24px; animation:fadeInUp 1s ease .5s both;}
.hero-visual-inner .ph-icon{width:64px; height:64px; opacity:.85;}
.hero-visual-inner .ph-label{color:rgba(255,255,255,.55); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; max-width:220px; line-height:1.6;}

/* Animations */
@keyframes fadeInUp{from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:translateY(0);}}
.animate-in{opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease;}
.animate-in.visible{opacity:1; transform:translateY(0);}

/* Trust strip */
.trust-strip{background:var(--bg-warm); border-bottom:1px solid var(--border);}
.trust-strip .wrap{display:flex; align-items:center; justify-content:center; gap:56px; padding:22px 32px; flex-wrap:wrap;}
.trust-item{display:flex; align-items:center; gap:10px; color:var(--royal); font-size:13px; font-weight:700; letter-spacing:.04em;}
.trust-item .dot{width:6px; height:6px; background:var(--gold); border-radius:50%;}

/* ===== SECTIONS ===== */
section{padding:96px 0;}
.section-head{text-align:center; max-width:640px; margin:0 auto 56px;}
.section-head .eyebrow{display:block; margin-bottom:14px;}
.section-head h2{font-size:34px; margin-bottom:16px;}
.section-head p{color:var(--muted); font-size:16px;}
.bg-light{background:var(--bg-light);}
.bg-navy{background:var(--navy); color:var(--white);}
.bg-navy h2,.bg-navy h3{color:var(--white);}
.bg-navy .lede{color:rgba(255,255,255,.68);}

/* ===== DIVIDER ===== */
.divider{display:flex; align-items:center; justify-content:center; gap:14px; margin:0 auto 44px; max-width:220px;}
.divider::before,.divider::after{content:""; flex:1; height:1px; background:var(--gold);}
.divider .diamond{width:7px; height:7px; background:var(--gold); transform:rotate(45deg);}

/* ===== PATHWAY CARDS ===== */
.pathway-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.pathway-card{background:var(--white); border:1px solid var(--border); border-radius:3px; padding:32px 26px; transition:all .3s ease;}
.pathway-card:hover{border-color:var(--gold); transform:translateY(-4px); box-shadow:0 14px 30px rgba(11,31,75,.08);}
.pathway-icon{width:44px; height:44px; border:1.5px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:20px; color:var(--gold); font-size:18px;}
.pathway-card h4{font-family:var(--font-display); font-size:18px; color:var(--navy); margin-bottom:10px; font-weight:700;}
.pathway-card p{font-size:13.5px; color:var(--muted); margin-bottom:18px; min-height:56px;}

/* ===== WHY CIC ===== */
.why-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--border); border:1px solid var(--border);}
.why-item{background:var(--white); padding:30px 22px; display:flex; flex-direction:column; gap:12px;}
.why-num{font-family:var(--font-display); font-size:13px; color:var(--gold); font-weight:700;}
.why-item h5{font-size:14px; color:var(--navy); font-weight:700;}

/* ===== EDUCATIONAL MODEL ===== */
.stepper{display:flex; position:relative; margin-top:20px;}
.stepper::before{content:""; position:absolute; top:26px; left:5%; right:5%; height:1px; background:linear-gradient(90deg, transparent, var(--gold) 8%, var(--gold) 92%, transparent);}
.step{flex:1; text-align:center; padding:0 12px; position:relative;}
.step-dot{width:52px; height:52px; border-radius:50%; background:var(--navy); color:var(--gold-light); display:flex; align-items:center; justify-content:center; margin:0 auto 22px; font-family:var(--font-display); font-weight:700; font-size:16px; position:relative; z-index:2; border:3px solid var(--white); box-shadow:0 0 0 1px var(--gold);}
.step h5{font-size:15px; color:var(--navy); font-weight:700; margin-bottom:8px;}
.step p{font-size:13px; color:var(--muted); line-height:1.55;}

/* ===== PROGRAMME CARDS ===== */
.prog-toolbar{display:flex; align-items:center; justify-content:space-between; margin-bottom:36px; flex-wrap:wrap; gap:16px;}
.prog-filters{display:flex; gap:10px; flex-wrap:wrap;}
.prog-filters span{font-size:12.5px; font-weight:600; padding:9px 16px; border:1px solid var(--border); border-radius:20px; color:var(--muted); cursor:pointer; transition:all .2s;}
.prog-filters span.active{background:var(--navy); color:var(--white); border-color:var(--navy);}
.prog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.prog-card{border:1px solid var(--border); border-radius:3px; overflow:hidden; background:var(--white); transition:box-shadow .25s ease;}
.prog-card:hover{box-shadow:0 14px 30px rgba(11,31,75,.08);}
.prog-thumb{height:120px; background:linear-gradient(135deg, var(--navy), var(--royal)); position:relative;}
.prog-thumb::after{content:""; position:absolute; inset:0; background-image:radial-gradient(circle at 30% 30%, rgba(201,162,39,.35), transparent 55%);}
.badge{font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:5px 10px; border-radius:20px; z-index:2; display:inline-flex; align-items:center; line-height:1;}
.prog-thumb .badge{position:absolute; top:12px; left:12px;}
.badge-offered{background:var(--success); color:var(--white);}
.badge-dev{background:var(--gold); color:var(--navy);}
.badge-approved{background:var(--royal); color:var(--white);}
.prog-body{padding:22px 22px 24px;}
.prog-cat{font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); margin-bottom:8px;}
.prog-body h4{font-family:var(--font-display); font-size:17px; color:var(--navy); margin-bottom:10px; font-weight:700;}
.prog-meta{display:flex; gap:14px; font-size:12px; color:var(--muted); margin-bottom:18px; flex-wrap:wrap;}
.prog-meta span{display:flex; align-items:center; gap:5px;}
.prog-actions{display:flex; align-items:center; justify-content:space-between; padding-top:16px; border-top:1px solid var(--border);}

/* ===== AWARDING BODY CARDS ===== */
.ab-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:26px; }
.ab-card{ background:var(--white); border:1px solid var(--border); border-radius:6px; padding:30px 28px; box-shadow:0 4px 18px rgba(11,31,75,.05); transition:.22s; display:flex; flex-direction:column; }
.ab-card:hover{ box-shadow:0 16px 34px rgba(11,31,75,.1); transform:translateY(-3px); }
.ab-card .ab-head{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.ab-card .ab-monogram{ width:54px; height:54px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:20px; color:#fff; background:linear-gradient(135deg, var(--navy), var(--royal)); flex-shrink:0; }
.ab-monogram.ab-logo{padding:8px; width:auto; height:54px;}
.ab-monogram.ab-logo img{max-width:100%; max-height:100%; width:auto; display:block; object-fit:contain;}
.ab-card .ab-name{ font-family:var(--font-display); font-size:19px; color:var(--navy); margin:0; }
.ab-card .ab-meta{ font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-top:4px; }
.ab-card .ab-short{ font-size:13.5px; color:var(--muted); margin:0 0 18px; line-height:1.65; }
.ab-card .ab-cta{ margin-top:auto; display:flex; gap:10px; flex-wrap:wrap; }
.ab-more-note{ text-align:center; color:var(--muted); font-size:12.5px; margin-top:34px; font-style:italic; }
@media(max-width:560px){ .ab-grid{ grid-template-columns:1fr; } }

/* ===== FLOW ===== */
.flow{display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap; margin-top:20px;}
.flow-node{background:rgba(255,255,255,.06); border:1px solid rgba(201,162,39,.4); border-radius:24px; padding:12px 22px; font-size:13px; font-weight:600; color:var(--white); white-space:nowrap; transition:all .3s;}
.flow-node:hover{background:rgba(201,162,39,.12);}
.flow-arrow{color:var(--gold); padding:0 14px; font-size:16px;}

/* ===== SPLIT ===== */
.split{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.split-visual{aspect-ratio:1/1; border:1px solid var(--border); border-radius:3px; background:var(--bg-light); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;}
.split-visual::before{content:""; position:absolute; width:70%; height:70%; border:1px solid var(--gold); border-radius:50%; opacity:.5;}
.split ul{list-style:none; margin-top:24px; display:grid; gap:12px;}
.split ul li{font-size:14.5px; display:flex; align-items:center; gap:10px; color:var(--charcoal);}
.split ul li::before{content:""; width:6px; height:6px; background:var(--gold); transform:rotate(45deg); flex-shrink:0;}

/* ===== PANEL GRID ===== */
.panel-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border);}
.panel{background:var(--white); padding:44px 34px;}
.panel .eyebrow{margin-bottom:14px;}
.panel h3{font-size:22px; margin-bottom:14px;}
.panel p{font-size:14px; color:var(--muted); margin-bottom:20px;}

/* ===== NEWS ===== */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.news-card{border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:box-shadow .25s ease;}
.news-card:hover{box-shadow:0 14px 30px rgba(11,31,75,.08);}
.news-thumb{height:150px; background:var(--bg-light); position:relative;}
.news-thumb::after{content:""; position:absolute; inset:0; background:repeating-linear-gradient(45deg, rgba(11,31,75,.04) 0 2px, transparent 2px 14px);}
.news-cat{position:absolute; top:12px; left:12px; background:var(--navy); color:var(--white); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; padding:5px 10px; z-index:2;}
.news-body{padding:20px 20px 22px;}
.news-date{font-size:11.5px; color:var(--muted); margin-bottom:8px; text-transform:uppercase; letter-spacing:.04em;}
.news-body h4{font-family:var(--font-display); font-size:16px; color:var(--navy); font-weight:700; margin-bottom:10px; line-height:1.35;}
.news-body p{font-size:13px; color:var(--muted);}

/* ===== FINAL CTA ===== */
.final-cta{background:linear-gradient(160deg, var(--navy), var(--royal)); text-align:center; padding:110px 0; position:relative; overflow:hidden;}
.final-cta::before{content:""; position:absolute; left:50%; top:50%; width:900px; height:900px; border:1px solid rgba(201,162,39,.14); border-radius:50%; transform:translate(-50%,-50%);}
.final-cta .wrap{position:relative;}
.final-cta h2{color:var(--white); font-size:38px; margin-bottom:20px;}
.final-cta p{color:rgba(255,255,255,.72); max-width:560px; margin:0 auto 40px; font-size:15.5px;}
.final-cta .btns{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ===== FOOTER ===== */
footer{background:#081633; color:rgba(255,255,255,.62); padding:72px 0 0;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:48px; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-brand .crest{margin-bottom:18px;}
.footer-brand p{font-size:13.5px; line-height:1.7; max-width:280px;}
footer h6{color:var(--white); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:20px;}
footer ul{list-style:none; display:grid; gap:12px;}
footer ul li a{font-size:13.5px;}
footer ul li a:hover{color:var(--gold-light);}
.footer-contact li{font-size:13.5px; margin-bottom:12px; line-height:1.5;}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; padding:26px 0; font-size:12px; flex-wrap:wrap; gap:12px;}
.footer-rec{display:flex; align-items:center; justify-content:center; gap:22px; flex-wrap:wrap; padding:26px 0; border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:0;}
.footer-rec-item{display:flex; align-items:center; height:44px;}
.footer-rec-item img{max-height:44px; width:auto; display:block; object-fit:contain;}
.footer-rec-item.gtec img{max-height:52px;}
.footer-rec-item.othm{background:rgba(255,255,255,.97); border-radius:6px; padding:5px 12px; height:40px;}
.footer-rec-item.othm img{max-height:28px;}
.footer-rec-divider{width:1px; height:40px; background:rgba(255,255,255,.18);}
@media(max-width:560px){ .footer-rec{flex-direction:column; gap:16px; padding:20px 0;} .footer-rec-divider{width:60px; height:1px;} }
.footer-bottom .legal{display:flex; gap:20px; flex-wrap:wrap;}

/* ===== STUDENT LIFE ===== */
.services-grid{display:flex; flex-wrap:wrap; gap:1px; background:var(--border); border:1px solid var(--border);}
.service-item{background:var(--white); flex:1; min-width:220px; padding:30px 26px; transition:all .25s ease;}
.service-item:hover{border-color:var(--gold);}
.service-item .s-icon{width:38px; height:38px; border:1.5px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:16px; color:var(--gold); font-size:15px;}
.service-item h5{font-size:15px; color:var(--navy); margin-bottom:8px; font-weight:700;}
.service-item p{font-size:13px; color:var(--muted);}
.clubs-grid{display:flex; flex-wrap:wrap; gap:20px;}
.club-card{flex:1; min-width:220px; border:1px solid var(--border); border-radius:3px; padding:26px 22px; text-align:center; transition:all .25s ease;}
.club-card:hover{box-shadow:0 14px 30px rgba(11,31,75,.08); border-color:var(--gold);}
.club-emoji{font-size:26px; margin-bottom:14px;}
.club-card h5{font-size:14.5px; color:var(--navy); font-weight:700; margin-bottom:8px;}
.club-card .club-tag{display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--success); background:rgba(46,125,50,.08); padding:4px 10px; border-radius:12px;}
.lict-split{display:flex; gap:24px; flex-wrap:wrap;}
.lict-card{flex:1; min-width:300px; border-radius:4px; overflow:hidden; border:1px solid var(--border); transition:box-shadow .25s ease;}
.lict-card:hover{box-shadow:0 8px 20px rgba(11,31,75,.06);}
.lict-thumb{height:140px; background:linear-gradient(135deg, var(--navy), var(--royal)); position:relative;}
.lict-thumb::after{content:""; position:absolute; inset:0; background-image:radial-gradient(circle at 30% 30%, rgba(201,162,39,.35), transparent 55%);}
.lict-body{padding:26px 24px;}
.lict-body h3{font-size:19px; margin-bottom:10px;}
.lict-status{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px;}
.status-chip{font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:5px 11px; border-radius:14px;}
.status-current{background:rgba(46,125,50,.1); color:var(--success);}
.status-future{background:rgba(201,162,39,.12); color:#8a6c14;}
.access-band{background:var(--bg-warm); border-left:4px solid var(--gold); border-radius:3px; padding:28px 30px; max-width:920px; margin:0 auto;}
.access-band p{font-size:14.5px; color:var(--charcoal);}
.access-band strong{color:var(--navy);}

/* ===== ABOUT PAGE ===== */
.overview-split{display:flex; gap:64px; align-items:flex-start; flex-wrap:wrap;}
.overview-split .col{flex:1; min-width:320px;}
.overview-split p{font-size:15px; color:var(--charcoal); margin-bottom:16px;}
.pull-motto{border-left:3px solid var(--gold); padding:6px 0 6px 22px; margin:26px 0; font-family:var(--font-display); font-size:19px; color:var(--navy); font-style:italic; line-height:1.5;}
.promise-box{background:var(--bg-warm); border-radius:3px; padding:24px 26px; font-size:14px; color:var(--charcoal); margin-top:8px;}
.promise-box strong{color:var(--navy); font-family:var(--font-display); font-size:16px; display:block; margin-bottom:6px;}
.vm-grid{display:flex; gap:24px; flex-wrap:wrap;}
.vm-card{flex:1; min-width:300px; border:1px solid var(--border); border-radius:3px; padding:32px 28px; transition:all .25s ease;}
.vm-card:hover{border-color:var(--gold);}
.vm-card .vm-icon{width:46px; height:46px; border:1.5px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:20px; color:var(--gold); font-size:18px;}
.vm-card h3{font-size:19px; margin-bottom:12px;}
.vm-card p{font-size:14.5px; color:var(--muted);}
.values-grid{display:flex; flex-wrap:wrap; gap:1px; background:var(--border); border:1px solid var(--border);}
.value-item{background:var(--white); flex:1; min-width:200px; padding:28px 24px; transition:all .25s ease;}
.value-item:hover{border-color:var(--gold);}
.value-item .v-icon{width:34px; height:34px; background:var(--bg-light); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:14px; color:var(--gold); font-size:14px; font-weight:700;}
.value-item h5{font-size:14.5px; color:var(--navy); margin-bottom:6px; font-weight:700;}
.value-item p{font-size:12.5px; color:var(--muted);}
.model-strip{display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap; background:var(--navy); border-radius:4px; padding:36px 24px;}
.model-node{color:var(--white); font-size:13px; font-weight:600; padding:10px 20px; white-space:nowrap;}
.model-arrow{color:var(--gold); font-size:15px;}
.lead-grid{display:flex; flex-wrap:wrap; gap:24px;}
.lead-card{flex:1; min-width:230px; border:1px solid var(--border); border-radius:3px; overflow:hidden; text-align:center; transition:all .25s ease;}
.lead-card:hover{box-shadow:0 14px 30px rgba(11,31,75,.08);}
.lead-photo{height:180px; background:var(--bg-light); display:flex; align-items:center; justify-content:center; position:relative;}
.lead-photo span{position:relative; font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em;}
.lead-body{padding:20px 18px 24px;}
.lead-body .lead-name{font-family:var(--font-display); font-size:15.5px; color:var(--navy); font-weight:700; margin-bottom:4px;}
.lead-body .lead-role{font-size:11.5px; color:var(--gold); font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:10px;}
.lead-body .lead-note{font-size:12px; color:var(--muted); font-style:italic;}
.why-strip{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}
.why-pill{border:1px solid var(--border); border-radius:20px; padding:9px 18px; font-size:12.5px; font-weight:600; color:var(--navy); display:flex; align-items:center; gap:8px;}
.why-pill .dot{width:6px; height:6px; background:var(--gold); border-radius:50%;}

/* ===== ACCREDITATION PAGE ===== */
.dist-table{width:100%; border-collapse:collapse; border:1px solid var(--border); font-size:13.5px;}
.dist-table th{background:var(--navy); color:var(--white); text-align:left; padding:14px 18px; font-size:12px; letter-spacing:.03em; text-transform:uppercase; font-weight:700;}
.dist-table td{padding:16px 18px; border-bottom:1px solid var(--border); vertical-align:top; color:var(--charcoal);}
.dist-table tr:nth-child(even) td{background:var(--bg-light);}
.dist-table td.term{font-weight:700; color:var(--navy); white-space:nowrap;}
.rec-grid{display:flex; gap:24px; flex-wrap:wrap;}
.rec-card{flex:1; min-width:300px; border:1px solid var(--border); border-radius:3px; padding:32px 28px; background:var(--white); transition:all .25s ease;}
.rec-card:hover{border-color:var(--gold);}
.rec-badge-slot{width:64px; height:64px; border:1.5px dashed var(--border); border-radius:6px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; color:var(--muted); font-size:10px; text-align:center; line-height:1.3; padding:6px;}
.rec-badge-slot img{max-width:100%; max-height:100%; object-fit:contain; display:block;}
.rec-badge-slot.wide{width:150px; height:64px; border-style:solid; border-color:var(--border);}
.rec-card h3{font-size:19px; margin-bottom:6px;}
.rec-card .rec-role{font-size:12px; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:.04em; margin-bottom:16px;}
.rec-card p{font-size:13.5px; color:var(--muted); margin-bottom:14px;}
.rec-card .rec-scope{background:var(--bg-light); border-radius:3px; padding:12px 14px; font-size:12.5px; color:var(--charcoal); margin-top:8px;}
.rec-card .rec-scope strong{color:var(--navy);}
.legend-row{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:8px;}
.legend-item{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--muted); border:1px solid var(--border); border-radius:20px; padding:8px 16px;}
.legend-dot{width:8px; height:8px; border-radius:50%;}
.verify-band{background:var(--navy); border-radius:4px; padding:44px 40px; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;}
.verify-band h3{color:var(--white); font-size:22px; margin-bottom:8px;}
.verify-band p{color:rgba(255,255,255,.7); font-size:14px; max-width:520px;}
.accordion{max-width:860px; margin:0 auto; border:1px solid var(--border); border-radius:3px; overflow:hidden;}
.acc-item{border-bottom:1px solid var(--border);}
.acc-item:last-child{border-bottom:none;}
.acc-head{display:flex; align-items:center; justify-content:space-between; padding:19px 22px; cursor:pointer; background:var(--white); transition:background .2s;}
.acc-head:hover{background:var(--bg-light);}
.acc-head-title{font-size:14.5px; font-weight:600; color:var(--navy); padding-right:20px;}
.acc-plus{font-size:18px; color:var(--muted); font-weight:300; flex-shrink:0; transition:transform .3s ease;}
.acc-body{padding:0 22px 20px; font-size:13.5px; color:var(--muted); display:none;}
.acc-item.open .acc-body{display:block;}
.acc-item.open .acc-plus{transform:rotate(45deg);}

/* ===== PROGRAMME DETAIL ===== */
.prog-header{background:linear-gradient(160deg, var(--navy) 0%, var(--royal) 100%); padding:56px 0 64px; position:relative; overflow:hidden;}
.prog-header::before{content:""; position:absolute; right:-100px; top:-140px; width:420px; height:420px; border:1px solid rgba(201,162,39,.22); border-radius:50%;}
.prog-header .wrap{position:relative;}
.status-row{display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap;}
.badge{font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:6px 13px; border-radius:20px;}
.badge-offered{background:var(--success); color:var(--white);}
.badge-outline{border:1px solid rgba(255,255,255,.4); color:rgba(255,255,255,.85);}
.prog-header h1{color:var(--white); font-size:38px; max-width:760px; margin-bottom:16px;}
.prog-header .prog-cat{color:var(--gold-light); font-size:13.5px; font-weight:600; margin-bottom:14px;}
.prog-header .prog-lede{color:rgba(255,255,255,.72); max-width:620px; font-size:15px; margin-bottom:30px;}
.quickfacts-strip{display:flex; gap:0; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.16); padding-top:26px;}
.qf{padding:0 30px 0 0; margin-right:30px; border-right:1px solid rgba(255,255,255,.16);}
.qf:last-child{border-right:none;}
.qf .qf-label{font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:6px;}
.qf .qf-value{font-size:14.5px; color:var(--white); font-weight:700;}
.prog-layout{display:grid; grid-template-columns:1fr 340px; gap:64px; padding:72px 0 96px; align-items:start;}
.main-col section{margin-bottom:52px;}
.main-col h2{font-size:24px; margin-bottom:18px; padding-bottom:14px; border-bottom:2px solid var(--bg-light);}
.main-col p{color:var(--charcoal); font-size:15px; margin-bottom:14px;}
.main-col ul{margin:0 0 0 0; list-style:none; display:grid; gap:12px;}
.main-col ul li{font-size:14.5px; display:flex; gap:10px; padding-left:0;}
.main-col ul li::before{content:""; width:6px; height:6px; background:var(--gold); transform:rotate(45deg); margin-top:7px; flex-shrink:0;}
.awarding-notice{background:var(--bg-warm); border-left:3px solid var(--gold); padding:18px 22px; font-size:13.5px; color:var(--charcoal); margin-bottom:24px;}
.awarding-notice strong{color:var(--navy);}
.sidebar{position:sticky; top:calc(var(--nav-h) + 20px); display:flex; flex-direction:column; gap:20px;}
.fact-card{border:1px solid var(--border); border-radius:3px; padding:26px 24px;}
.fact-card h4{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:18px; font-weight:700;}
.fact-row{display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--border); font-size:13px;}
.fact-row:last-child{border-bottom:none;}
.fact-row .k{color:var(--muted);}
.fact-row .v{color:var(--navy); font-weight:700; text-align:right;}
.fact-row .v.tbc{color:var(--muted); font-weight:600; font-style:italic; font-size:12px;}
.cta-card{background:var(--navy); border-radius:3px; padding:28px 24px; color:var(--white);}
.cta-card h4{color:var(--white); font-family:var(--font-display); font-size:18px; margin-bottom:10px;}
.cta-card p{font-size:13px; color:rgba(255,255,255,.7); margin-bottom:20px;}
.cta-card .btn{margin-bottom:10px;}
.contact-card{border:1px solid var(--border); border-radius:3px; padding:24px; font-size:13px; color:var(--muted);}
.contact-card h4{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; font-weight:700;}
.contact-card a{display:block; color:var(--navy); font-weight:600; margin-bottom:8px;}
.related{background:var(--bg-light); padding:72px 0;}
.rel-grid{display:flex; gap:22px; flex-wrap:wrap;}
.rel-card{flex:1; min-width:280px; background:var(--white); border:1px solid var(--border); border-radius:3px; padding:26px; transition:all .25s ease;}
.rel-card:hover{box-shadow:0 14px 30px rgba(11,31,75,.08);}
.rel-cat{font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); margin-bottom:10px;}
.rel-card h4{font-family:var(--font-display); font-size:16px; color:var(--navy); margin-bottom:10px;}
.rel-card p{font-size:13px; color:var(--muted); margin-bottom:16px;}

/* ===== ADMISSIONS PAGE ===== */
.process{padding:80px 0 40px;}
.process-row{display:flex; gap:0; flex-wrap:wrap; position:relative;}
.p-step{flex:1; min-width:120px; text-align:center; padding:0 10px; position:relative;}
.p-step .p-dot{width:44px; height:44px; border-radius:50%; border:2px solid var(--gold); color:var(--navy); font-family:var(--font-display); font-weight:700; font-size:15px; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; background:var(--white); transition:all .3s;}
.p-step:hover .p-dot{background:var(--gold); color:var(--navy);}
.p-step h5{font-size:13px; color:var(--navy); font-weight:700; margin-bottom:6px;}
.p-step p{font-size:11.5px; color:var(--muted);}
.apply-section{background:var(--bg-light); padding:80px 0 96px;}
.form-layout{display:grid; grid-template-columns:1fr 320px; gap:48px; align-items:start;}
.form-card{background:var(--white); border:1px solid var(--border); border-radius:4px; padding:44px 44px 36px;}
.stepper8{display:flex; align-items:flex-start; margin-bottom:44px; overflow-x:auto; padding-bottom:6px;}
.s8{flex:1; min-width:78px; text-align:center; position:relative;}
.s8::before{content:""; position:absolute; top:15px; left:-50%; width:100%; height:2px; background:var(--border); z-index:0;}
.s8:first-child::before{display:none;}
.s8.done::before, .s8.active::before{background:var(--gold);}
.s8 .dot{width:30px; height:30px; border-radius:50%; background:var(--white); border:2px solid var(--border); color:var(--muted); font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 8px; position:relative; z-index:1; transition:all .3s;}
.s8.done .dot{background:var(--gold); border-color:var(--gold); color:var(--navy);}
.s8.active .dot{background:var(--navy); border-color:var(--navy); color:var(--gold-light);}
.s8 .lbl{font-size:10px; color:var(--muted); font-weight:600; line-height:1.3;}
.s8.active .lbl{color:var(--navy);}
.form-step-title{margin-bottom:6px;}
.form-step-sub{color:var(--muted); font-size:13.5px; margin-bottom:32px;}
.form-grid{display:flex; flex-wrap:wrap; gap:22px; margin-bottom:8px;}
.field{flex:1; min-width:220px; display:flex; flex-direction:column; gap:8px;}
.field.full{flex-basis:100%;}
.field label{font-size:12.5px; font-weight:700; color:var(--navy);}
.field label .opt{color:var(--muted); font-weight:500; font-style:italic;}
.field input, .field select{padding:13px 14px; border:1.5px solid var(--border); border-radius:2px; font-family:var(--font-body); font-size:14px; color:var(--charcoal); background:var(--white); transition:border-color .2s;}
.field input:focus, .field select:focus{outline:none; border-color:var(--gold);}
.field .hint{font-size:11.5px; color:var(--muted);}
.form-actions{display:flex; align-items:center; justify-content:space-between; margin-top:36px; padding-top:26px; border-top:1px solid var(--border);}
.save-note{font-size:12px; color:var(--muted); display:flex; align-items:center; gap:6px;}
.help-card{background:var(--navy); border-radius:3px; padding:26px 24px; color:var(--white);}
.help-card h4{font-family:var(--font-display); color:var(--white); font-size:17px; margin-bottom:10px;}
.help-card p{font-size:13px; color:rgba(255,255,255,.7); margin-bottom:18px;}
.help-card a{display:block; color:var(--gold-light); font-weight:700; font-size:13px; margin-bottom:8px;}
.faq-section{padding:80px 0 96px;}

/* ===== CONTACT PAGE ===== */
.contact-hero{background:linear-gradient(160deg, var(--navy) 0%, var(--royal) 100%); padding:60px 0 48px; position:relative; overflow:hidden;}
.contact-hero::before{content:""; position:absolute; right:-100px; top:-140px; width:420px; height:420px; border:1px solid rgba(201,162,39,.22); border-radius:50%;}
.contact-hero .wrap{position:relative;}
.contact-hero h1{color:var(--white); font-size:34px; max-width:600px; margin-bottom:12px;}
.contact-hero p{color:rgba(255,255,255,.72); max-width:560px; font-size:15px;}
.quick-strip{background:var(--bg-warm); border-bottom:1px solid var(--border);}
.quick-strip .wrap{display:flex; gap:0; flex-wrap:wrap;}
.qc{flex:1; min-width:220px; padding:24px 30px; border-right:1px solid var(--border); display:flex; align-items:center; gap:14px; transition:background .2s;}
.qc:hover{background:rgba(201,162,39,.04);}
.qc:last-child{border-right:none;}
.qc .qc-icon{width:38px; height:38px; border:1.5px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:15px; flex-shrink:0;}
.qc .qc-label{font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:3px;}
.qc .qc-value{font-size:13.5px; font-weight:700; color:var(--navy);}
.contact-layout{display:flex; gap:64px; flex-wrap:wrap;}
.contact-info{flex:1; min-width:320px;}
.contact-form-col{flex:1.3; min-width:360px;}
.info-block{margin-bottom:32px;}
.info-block h4{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:10px; font-weight:700;}
.info-block .info-main{font-size:15px; color:var(--charcoal); line-height:1.6;}
.info-block .info-main strong{color:var(--navy);}
.map-box{height:260px; border:1px solid var(--border); border-radius:3px; background:var(--bg-light); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; margin-bottom:32px;}
.map-pin{position:relative; text-align:center; color:var(--navy);}
.map-pin .pin-dot{width:20px; height:20px; background:var(--navy); border-radius:50% 50% 50% 0; transform:rotate(-45deg); margin:0 auto 10px; position:relative;}
.map-pin .pin-dot::after{content:""; position:absolute; inset:5px; background:var(--gold); border-radius:50%;}
.map-pin span{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em;}
.social-block{display:flex; gap:12px; margin-top:8px;}
.social-block a{width:38px; height:38px; border:1.5px solid var(--border); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--navy); transition:all .2s;}
.social-block a:hover{background:var(--navy); color:var(--white); border-color:var(--navy);}
/* Contact form â€” enquiry tabs, textarea, consent */
.form-card h3{font-family:var(--font-display); font-size:22px; color:var(--navy); margin-bottom:8px;}
.form-card .sub{font-size:13.5px; color:var(--muted); margin-bottom:24px;}
.enquiry-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px; border-bottom:1px solid var(--border); padding-bottom:16px;}
.enquiry-tabs span{font-size:12.5px; font-weight:700; padding:9px 16px; border:1px solid var(--border); border-radius:20px; color:var(--muted); cursor:pointer; user-select:none; transition:all .2s;}
.enquiry-tabs span:hover{border-color:var(--gold); color:var(--navy);}
.enquiry-tabs span.active{background:var(--navy); color:var(--gold-light); border-color:var(--navy);}
.field textarea{width:100%; padding:13px 14px; border:1.5px solid var(--border); border-radius:2px; font-family:var(--font-body); font-size:14px; color:var(--charcoal); background:var(--white); resize:vertical; min-height:120px; transition:border-color .2s;}
.field textarea:focus{outline:none; border-color:var(--gold);}
.consent-row{display:flex; align-items:flex-start; gap:10px; margin:6px 0 22px;}
.consent-row input[type="checkbox"]{width:16px; height:16px; margin-top:2px; accent-color:var(--gold); flex-shrink:0;}
.form-alert-success{background:#e8f6ee; color:#166534; border:1px solid #86efac;}
.form-alert-error{background:#fdeaea; color:#b91c1c; border:1px solid #fca5a5;}

/* ===== ABOUT HERO ===== */
.about-hero{background:linear-gradient(160deg, var(--navy) 0%, var(--royal) 100%); padding:64px 0 0; position:relative; overflow:hidden;}
.about-hero::before{content:""; position:absolute; right:-100px; top:-140px; width:420px; height:420px; border:1px solid rgba(201,162,39,.22); border-radius:50%;}
.about-hero .wrap{position:relative; padding-bottom:60px;}
.about-hero h1{color:var(--white); font-size:38px; max-width:680px; margin-bottom:16px;}
.about-hero p{color:rgba(255,255,255,.72); max-width:600px; font-size:15px;}
.about-hero-visual{height:220px; background:rgba(255,255,255,.05); border-top:1px solid rgba(201,162,39,.35); display:flex; align-items:center; justify-content:center; position:relative;}
.about-hero-visual .ph-label{color:rgba(255,255,255,.45); font-size:11px; letter-spacing:.06em; text-transform:uppercase;}

/* ===== LOGIN PAGE ===== */
.login-wrap{max-width:460px; margin:60px auto; padding:0 24px;}
.login-card{background:var(--white); border:1px solid var(--border); border-radius:4px; padding:44px; animation:fadeInUp .6s ease;}
.login-card .crest{width:64px; height:64px; margin:0 auto 24px;}
.login-card .crest img{width:40px; height:40px;}
.login-card h2{font-size:26px; text-align:center; margin-bottom:8px;}
.login-card .login-sub{text-align:center; color:var(--muted); font-size:14px; margin-bottom:32px;}
.login-card .field{margin-bottom:20px;}
.login-card .field label{font-size:12.5px; font-weight:700; color:var(--navy); display:block; margin-bottom:8px;}
.login-card .field input{width:100%; padding:13px 14px; border:1.5px solid var(--border); border-radius:2px; font-family:var(--font-body); font-size:14px; color:var(--charcoal); transition:border-color .2s;}
.login-card .field input:focus{outline:none; border-color:var(--gold);}
.login-card .btn-block{margin-top:10px;}
.login-footer{text-align:center; margin-top:24px; font-size:13px; color:var(--muted);}
.login-footer a{color:var(--navy); font-weight:700; border-bottom:1px solid var(--gold);}
.login-error{background:#fdecea; color:#b71c1c; padding:12px 16px; border-radius:3px; font-size:13px; margin-bottom:16px; border-left:3px solid #b71c1c;}
.login-success{background:#e8f5e9; color:#2e7d32; padding:12px 16px; border-radius:3px; font-size:13px; margin-bottom:16px; border-left:3px solid #2e7d32;}

/* ===== MOCKUP FLAG ===== */
.mockup-flag{position:fixed; bottom:18px; right:18px; background:var(--navy); color:var(--white); font-size:11px; font-weight:600; padding:10px 16px; border-radius:3px; border:1px solid var(--gold); z-index:100; max-width:260px; line-height:1.5; box-shadow:0 8px 24px rgba(0,0,0,.25);}
.mockup-flag strong{color:var(--gold-light);}

/* ===== RESPONSIVE - TESTED ALL DEVICES ===== */
@media (max-width: 1320px){ .wrap{padding:0 24px;} }

/* NAV RESPONSIVE - PROVEN â€” fixed cramped server nav (was 1150, now 1200) */
@media (max-width: 1320px){
    .menu-link{padding:10px 9px; font-size:12px;}
    .nav-inner{gap:14px;}
}
@media (max-width: 1280px){
    .menu{gap:0;}
    .menu-link{padding:10px 8px; font-size:11.5px;}
    .brand-title{font-size:14px;}
}
@media (max-width: 1200px){
    .desktop-nav{display:none !important;}
    .menu-toggle{display:flex !important;}
    .topbar{display:none !important;}
    .hide-md{display:none !important;}
    .nav-inner{height:64px;}
}
@media (max-width: 480px){
    .wrap{padding:0 16px;}
    .nav-inner{height:60px; gap:6px;}
    .brand-copy{min-width:0;}
    .brand-title{font-size:13px; max-width:44vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
    .brand-logo{width:38px;height:38px;}
    .brand-sub{font-size:8px; letter-spacing:.12em; display:none;}
    .nav-cta{gap:5px;}
    .nav-cta .btn{padding:0 10px; height:34px; font-size:11.5px; line-height:1; white-space:nowrap; min-width:0;}
    .menu-toggle{width:38px;height:38px;}
    .btn{padding:10px 14px; font-size:12px; max-width:100%; white-space:normal; word-break:break-word;}
    .btn-sm{padding:8px 10px; font-size:11px;}
}
@media (max-width: 360px){
    .brand-title{max-width:34vw;}
    .nav-cta .btn{gap:4px; padding:0 8px; height:32px; font-size:11px;}
}
@media (max-width: 1024px){
    .hero .wrap{grid-template-columns:1fr; gap:40px;}
    .hero-visual{max-width:420px; margin:0 auto; aspect-ratio:16/10;}
    .pathway-grid{grid-template-columns:repeat(2,1fr);}
    .prog-grid{grid-template-columns:repeat(2,1fr);}
    .panel-grid{grid-template-columns:repeat(2,1fr);}
    .news-grid{grid-template-columns:repeat(2,1fr);}
    .overview-split{gap:40px;}
}
@media (max-width: 860px){
    .why-grid{grid-template-columns:repeat(3,1fr);}
    .stepper{flex-direction:column; gap:28px; align-items:stretch;}
    .stepper::before{display:none;}
    .step{padding:0; display:flex; gap:16px; text-align:left; align-items:center;}
    .step-dot{margin:0; flex-shrink:0; width:44px; height:44px; font-size:14px;}
    .footer-grid{grid-template-columns:1fr 1fr; gap:32px;}
    .prog-layout{grid-template-columns:1fr; gap:32px;}
    .sidebar{position:static;}
    .vm-grid{flex-direction:column;}
    .model-strip{flex-direction:column; align-items:stretch; gap:2px; padding:24px;}
    .model-strip .model-arrow{transform:rotate(90deg); align-self:center; padding:4px 0;}
    .lead-grid{grid-template-columns:repeat(2,1fr);}
    .lict-split{flex-direction:column;}
    .contact-layout{flex-direction:column; gap:32px;}
    .form-layout{grid-template-columns:1fr; gap:28px;}
    .verify-band{flex-direction:column; text-align:center; padding:32px 24px;}
    .process-row{flex-direction:column; gap:20px;}
    .p-step{flex:none; display:flex; gap:14px; text-align:left; align-items:center;}
    .p-step .p-dot{margin:0; flex-shrink:0;}
    .dist-table{font-size:13px;}
    .dist-table th, .dist-table td{padding:12px 14px;}
}
@media (max-width: 768px){
    .wrap{padding:0 20px;}
    section{padding:56px 0;}
    .hero{padding:40px 0 56px;}
    .hero h1{font-size:clamp(28px, 7vw, 34px);}
    .hero-sub{font-size:15px;}
    .section-head h2{font-size:26px;}
    .section-head{margin-bottom:36px;}
    .final-cta{padding:72px 0;}
    .final-cta h2{font-size:28px;}
    .about-hero h1{font-size:28px;}
    .contact-hero h1{font-size:26px;}
    .prog-header h1{font-size:26px;}
    .quick-strip .wrap{flex-direction:column;}
    .qc{border-right:none; border-bottom:1px solid var(--border); padding:18px 20px;}
    .qf{padding:10px 0; margin-right:0; border-right:none; border-bottom:1px solid rgba(255,255,255,.16); width:100%; display:flex; justify-content:space-between; align-items:center;}
    .quickfacts-strip{flex-direction:column; gap:0;}
    .breadcrumb{padding:10px 0;}
    .form-card{padding:28px 22px;}
}
@media (max-width: 640px){
    .pathway-grid{grid-template-columns:1fr;}
    .prog-grid{grid-template-columns:1fr;}
    .panel-grid{grid-template-columns:1fr;}
    .news-grid{grid-template-columns:1fr;}
    .why-grid{grid-template-columns:repeat(2,1fr);}
    .values-grid{grid-template-columns:1fr;}
    .lead-grid{grid-template-columns:1fr;}
    .services-grid{grid-template-columns:1fr;}
    .clubs-grid{grid-template-columns:1fr;}
    .rec-grid{flex-direction:column;}
    .rel-grid{flex-direction:column;}
    .split{grid-template-columns:1fr; gap:28px;}
    .flow{flex-direction:column; align-items:stretch;}
    .flow-arrow{transform:rotate(90deg); padding:6px 0; text-align:center;}
    .login-wrap{margin:32px auto; padding:0 16px;}
    .login-card{padding:28px 22px;}
}
@media (max-width: 480px){
    .wrap{padding:0 16px;}
    .brand-text .name{font-size:13px;}
    .brand-text .tag{font-size:8px;}
    .brand-crest{width:38px;height:38px;}
    .navbar-wrap{height:62px;}
    .hero-orbit{display:none;}
    .why-grid{grid-template-columns:1fr 1fr; gap:1px;}
    .why-item{padding:20px 16px;}
    .footer-grid{grid-template-columns:1fr; gap:28px;}
    .mobile-drawer{width:100vw; max-width:100vw;}
    /* loader centered perfect on tiny screens */
    .loader-crest{width:72px;height:72px;}
    .loader-logo{width:72px;height:72px;}
    .loader-bar{width:180px;}
    .loader-brand{font-size:11px;}
    .loader-tag{font-size:9px;}
    .dist-table{display:block; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch;}
}
@media (max-width: 360px){
    .btn{padding:10px 14px; font-size:12px; max-width:100%; white-space:normal; word-break:break-word;}
    .btn-sm{padding:8px 10px; font-size:10.5px; max-width:100%;}
}
/* ===== HARD FIX: NO HORIZONTAL SCROLL ON MOBILE ===== */
html, body{ width:100%; max-width:100vw; overflow-x:clip; }
body > *{max-width:100vw;}
.hero, .topbar, .about-hero, .contact-hero, .prog-header, .acc-hero, .final-cta, footer{max-width:100vw; overflow:hidden;}
/* keep nav sticky â€” must be visible, not clipped */
#site-wrapper{ overflow:visible !important; max-width:100vw; }
/* nav must stay visible for dropdown â€” overrides the rule above */
.site-nav{max-width:100vw; overflow:visible !important;}
.site-nav .wrap, .nav-inner, .desktop-nav, .menu{overflow:visible !important;}
.dist-table{width:100%; display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; border-collapse:collapse;}
.dist-table th, .dist-table td{white-space:normal; word-break:break-word;}
@media (max-width: 768px){
  .dist-table th, .dist-table td{white-space:normal; min-width:140px;}
}
/* ===== SMOOTH ANIMATIONS FOR IMAGES — non-blocking, no hide ===== */
@keyframes imgFadeIn{ from{opacity:0; transform:scale(0.98) translateY(8px)} to{opacity:1; transform:scale(1) translateY(0)} }
@keyframes imgFloat{ 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-6px) rotate(0.8deg)} }
img{ transition: opacity 0.4s ease, transform 0.4s ease; }
img.loaded{ opacity:1; }
.hero-visual img, .about-hero-visual img, .prog-hero img{ animation: imgFadeIn 1s ease 0.2s both, imgFloat 6s ease-in-out 1s infinite; }
.lead-photo{ animation: imgFadeIn 0.7s ease both; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.lead-photo:hover{ transform: translateY(-4px) rotate(1deg); box-shadow:0 12px 28px rgba(11,31,75,.15); }
.cic-gallery img{ animation: imgFadeIn 0.6s ease both; }
.cic-gallery img:nth-child(1){ animation-delay:0.1s } .cic-gallery img:nth-child(2){ animation-delay:0.2s } .cic-gallery img:nth-child(3){ animation-delay:0.3s }
.student-float{ animation: imgFloat 4s ease-in-out infinite; }
.tilt-1{ transform:rotate(-2deg); } .tilt-2{ transform:rotate(2deg); } .tilt-3{ transform:rotate(-1.5deg); }
@media (prefers-reduced-motion:reduce){ img, .hero-visual img, .lead-photo, .cic-gallery img{ animation:none !important; transition:none !important; } }