:root{--navy:#06194b;--navy2:#09285e;--blue:#1264e8;--cyan:#12b8cf;--ink:#111827;--muted:#68758b;--line:#e7ecf4;--soft:#f5f8fc;--orange:#ff8a1f;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#fff}a{text-decoration:none;color:inherit}button,input,textarea,select{font:inherit}.topbar{height:30px;background:#06194b;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 5%;font-size:10px;font-weight:700}.toplinks{display:flex;gap:22px}.header{height:82px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);z-index:50;border-bottom:1px solid #eef2f7}.logo{display:flex;gap:10px;align-items:center;font:800 19px Manrope;color:#0b1e4b;letter-spacing:-.04em}.logo small{display:block;font:700 7px Inter;letter-spacing:.16em;color:#6a7790;margin-top:2px}.logo-mark{width:39px;height:39px;border:3px solid var(--blue);border-radius:12px;display:grid;place-items:center;color:var(--blue);font-weight:900}.header nav{display:flex;gap:23px;font-size:12px;font-weight:800;color:#354155}.header nav a:hover{color:var(--blue)}.btn{border:0;border-radius:9px;padding:13px 20px;font-weight:800;cursor:pointer;display:inline-flex;gap:10px;align-items:center;justify-content:center;transition:.25s}.btn:hover{transform:translateY(-2px)}.blue{background:var(--blue);color:#fff;box-shadow:0 10px 25px rgba(18,100,232,.23)}.white{background:#fff;color:#0b1e4b}.dark{background:#06194b;color:#fff}.hamb{display:none;border:0;background:none;font-size:24px}.mobile-nav{display:none}.hero{min-height:650px;position:relative;display:grid;grid-template-columns:1.2fr .8fr;overflow:hidden;color:#fff}.hero-bg{position:absolute;inset:0;background:url("https://images.unsplash.com/photo-1523240795612-9a054b0db644?auto=format&fit=crop&w=2400&q=90") center/cover;filter:saturate(.9)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,13,39,.96) 0%,rgba(4,22,55,.83) 52%,rgba(4,22,55,.25) 100%)}.hero-copy{position:relative;z-index:2;padding:100px 5vw 70px 7vw;max-width:850px}.pill{display:inline-block;color:#bcd4ff;font-size:10px;letter-spacing:.17em;font-weight:900;margin-bottom:20px}.hero h1{font:800 clamp(45px,5.6vw,76px)/.99 Manrope;letter-spacing:-.055em;margin:0}.hero h1 span{color:#67b9ff}.hero p{max-width:700px;line-height:1.8;color:#dce6f7;font-size:16px;margin:24px 0}.actions{display:flex;gap:12px;flex-wrap:wrap}.hero-points{display:flex;flex-wrap:wrap;gap:18px;margin-top:28px;font-size:11px;color:#d4e1f7;font-weight:700}.hero-panels{position:relative;z-index:2;display:grid;align-content:center;gap:15px;padding:80px 5vw 70px 20px}.hero-panel{height:205px;border-radius:20px;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.2);box-shadow:0 25px 70px rgba(0,0,0,.25)}.hero-panel img{width:100%;height:100%;object-fit:cover}.hero-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,19,50,.8),rgba(4,19,50,.05))}.hero-panel div{position:absolute;z-index:2;left:20px;bottom:20px}.hero-panel b{display:block;font:800 22px Manrope}.hero-panel small{display:block;margin-top:5px;color:#d5e1f6}.numbers{display:grid;grid-template-columns:repeat(5,1fr);margin:-30px 7vw 0;position:relative;z-index:4;background:#fff;border-radius:18px;box-shadow:0 22px 70px rgba(8,30,70,.12);overflow:hidden}.numbers div{padding:24px;border-right:1px solid var(--line);text-align:center}.numbers div:last-child{border:0}.numbers strong{display:block;color:#0c55c8;font:800 26px Manrope}.numbers span{font-size:10px;color:var(--muted);font-weight:700}.section{padding:105px 7vw}.section-title{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:45px}.section-title label,.split-copy label,.contact label,.cta label{font-size:10px;letter-spacing:.16em;color:#315db5;font-weight:900}.section-title h2,.split-copy h2,.contact h2,.cta h2{font:800 clamp(39px,4.5vw,61px)/1.03 Manrope;letter-spacing:-.05em;margin:10px 0 0}.section-title h2 em,.split-copy h2 em,.contact h2 em,.cta h2 em{font-style:normal;color:#1264e8}.section-title>p{max-width:480px;color:var(--muted);line-height:1.8;font-size:14px}.programs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.program{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;transition:.3s;box-shadow:0 6px 25px rgba(10,25,55,.04)}.program:hover{transform:translateY(-7px);box-shadow:0 22px 55px rgba(10,25,55,.12)}.program img{width:100%;height:205px;object-fit:cover}.program div{padding:22px}.program small{color:#3466bf;font-weight:900;font-size:9px;letter-spacing:.12em}.program h3{font:800 21px Manrope;margin:10px 0}.program p{font-size:12px;line-height:1.7;color:var(--muted);min-height:62px}.program a{font-size:12px;color:var(--blue);font-weight:900}.navy{background:var(--navy);color:#fff}.light label{color:#7fb1ff}.light h2 em{color:#67b9ff}.light>p{color:#aebbd1}.engine{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.engine-photo{position:relative}.engine-photo img{width:100%;height:520px;object-fit:cover;border-radius:25px;display:block}.engine-badge{position:absolute;right:-25px;bottom:25px;background:#fff;color:#101827;padding:18px 22px;border-radius:15px;box-shadow:0 25px 60px rgba(0,0,0,.25)}.engine-badge b{font:800 35px Manrope;color:var(--blue);display:block}.engine-badge span{font-size:10px;color:var(--muted)}.engine-steps{display:grid}.engine-steps>div{display:grid;grid-template-columns:45px 1fr;gap:20px;padding:23px 0;border-bottom:1px solid rgba(255,255,255,.12)}.engine-steps i{font:800 12px Manrope;color:#74b6ff}.engine-steps h3{font:800 22px Manrope;margin:0 0 7px}.engine-steps p{margin:0;color:#aebbd1;font-size:13px;line-height:1.7}.platform-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center}.feature{display:grid;grid-template-columns:35px 1fr;gap:18px;padding:21px 0;border-bottom:1px solid var(--line)}.feature>b{color:var(--blue);font-size:11px}.feature h3{margin:0 0 7px;font:800 20px Manrope}.feature p{margin:0;color:var(--muted);line-height:1.7;font-size:13px}.dashboard{background:#fff;border:1px solid #dfe7f2;border-radius:24px;padding:28px;box-shadow:0 25px 80px rgba(10,35,80,.12)}.dash-head{display:flex;justify-content:space-between;font-weight:900;font-size:12px}.dash-head b{background:#e7fff4;color:#0b9c67;padding:6px 10px;border-radius:99px;font-size:9px}.score{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.score div{background:#f5f8fc;padding:16px;border-radius:14px}.score small{display:block;color:var(--muted);font-size:9px}.score strong{font:800 24px Manrope}.chart{height:200px;display:flex;align-items:end;gap:12px;padding:15px 5px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,#fff,#fff 39px,#eef3f9 40px)}.chart span{flex:1;background:linear-gradient(#2b7bff,#1264e8);border-radius:6px 6px 0 0}.dash-foot{display:flex;justify-content:space-between;padding-top:17px;font-size:10px;color:var(--muted)}.dash-foot b{color:#111827}.split-image{background:#f5f8fc;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.split-photo img{width:100%;height:560px;object-fit:cover;border-radius:25px}.split-copy p{color:var(--muted);line-height:1.8;font-size:14px}.split-copy ul{padding:0;list-style:none;display:grid;gap:11px;margin:25px 0 30px}.split-copy li:before{content:"✓";color:var(--blue);font-weight:900;margin-right:10px}.strengths span{font-size:10px;color:var(--muted);margin-top:4px}.result-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.result-cards div{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05);border-radius:18px;padding:30px}.result-cards strong{font:800 40px Manrope;color:#62b5ff}.result-cards span{display:block;color:#c1cee3;font-size:12px;margin-top:5px}.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.quotes article{border:1px solid var(--line);border-radius:20px;padding:28px;font:600 16px/1.7 Manrope}.quotes footer{font:700 10px Inter;color:var(--muted);margin-top:25px}.faq-list{max-width:900px;margin:auto}.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}.faq-list summary{list-style:none;cursor:pointer;font:800 17px Manrope}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";float:right;color:var(--blue)}.faq-list details[open] summary:after{content:"−"}.faq-list p{color:var(--muted);line-height:1.8;font-size:13px}.cta{padding:70px 7vw;background:linear-gradient(110deg,#06194b,#0c3b82);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:30px}.cta label{color:#9ec7ff}.cta h2{margin:10px 0 0}.cta h2 em{color:#69bbff}.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.contact>div p{color:var(--muted);line-height:1.8;max-width:500px}.form{border:1px solid var(--line);padding:30px;border-radius:23px;box-shadow:0 25px 70px rgba(8,30,70,.09)}.form h3{font:800 27px Manrope;margin:0 0 20px}.form label{display:grid;gap:6px;color:#4d596e;letter-spacing:0;margin:10px 0;font-size:10px}.form input,.form textarea,.form select{border:1px solid #dbe3ef;border-radius:10px;padding:12px;outline:0;background:#fbfcfe}.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(18,100,232,.1)}.status{font-size:11px;color:#0b8f5d}.footer{background:#04112e;color:#aebbd0;padding:65px 7vw 25px;display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:45px}.footlogo{color:#fff}.footer h4{color:#fff;margin:3px 0 15px}.footer>div:not(:first-child){display:grid;align-content:start;gap:10px;font-size:12px}.footer p{max-width:330px;font-size:12px;line-height:1.7}.copyright{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:10px}.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:100;padding:20px}.modal.open{display:flex}.backdrop{position:absolute;inset:0;background:rgba(2,10,28,.72);backdrop-filter:blur(7px)}.modalbox{position:relative;z-index:2;background:#fff;border-radius:22px;padding:32px;width:min(520px,100%);box-shadow:0 35px 100px rgba(0,0,0,.3)}.modalbox label{font-size:10px;letter-spacing:.15em;color:var(--blue);font-weight:900}.modalbox h2{font:800 34px Manrope;letter-spacing:-.04em;margin:10px 0}.modalbox>p{color:var(--muted);font-size:13px}.x{position:absolute;right:15px;top:13px;border:0;border-radius:50%;width:35px;height:35px;background:#eef2f7;font-size:20px;cursor:pointer}
@media(max-width:1050px){.header nav{display:none}.header-actions{display:none}.hamb{display:block}.mobile-nav.open{display:grid}.mobile-nav{position:fixed;z-index:49;top:112px;left:0;right:0;background:#fff;padding:20px 7vw;box-shadow:0 20px 50px rgba(0,0,0,.12);gap:16px}.hero{grid-template-columns:1fr}.hero-panels{display:none}.programs{grid-template-columns:1fr 1fr}.engine,.platform-grid,.split-image,.contact{grid-template-columns:1fr}.numbers{grid-template-columns:repeat(3,1fr)}.result-cards{grid-template-columns:1fr 1fr}.footer{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.topbar{font-size:8px}.toplinks{display:none}.header{height:70px}.mobile-nav{top:100px}.hero-copy{padding:80px 6vw}.hero h1{font-size:45px}.hero p{font-size:14px}.numbers{margin:0 4vw;grid-template-columns:1fr 1fr}.numbers div{padding:17px}.numbers div:last-child{grid-column:1/-1}.section{padding:75px 6vw}.section-title{display:block}.section-title>p{margin-top:17px}.programs,.strengths,.result-cards,.quotes{grid-template-columns:1fr}.engine-photo img,.split-photo img{height:360px}.engine-badge{right:12px}.score{grid-template-columns:1fr}.dash-foot{flex-direction:column;gap:7px}.cta{display:block;padding:55px 6vw}.cta .btn{margin-top:20px}.footer{grid-template-columns:1fr}.copyright{grid-column:1}}

.header-actions{display:flex;gap:10px;align-items:center}
.login-btn{border:1px solid #d8e2f0;color:#0b1e4b}
.login-btn:hover{border-color:var(--blue);color:var(--blue)}

/* Keyboard users need to see where they are. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,details summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}

/* Respect the OS-level motion preference. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .btn:hover,.program:hover,.login-card:hover{transform:none}
}

/* ── Brand logo ────────────────────────────────────────────────────────── */
/* width/height are set on the <img> so the header reserves space before the
   file loads — without them the nav visibly jumps on first paint. */
.logo-img{display:block;width:auto;height:46px;object-fit:contain}
.footer-logo-img{height:62px}
.logo{display:inline-flex;align-items:center;gap:0}
@media(max-width:650px){.logo-img{height:38px}.footer-logo-img{height:54px}}

/* ── Leadership strengths (replaces the photo grid) ───────────────────────
   Text-only by design: the previous version used stock photography captioned
   as named faculty, which reads as a claim about real people. */
.strengths{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.strength{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 26px;transition:.3s;box-shadow:0 6px 25px rgba(10,25,55,.04)}
.strength:hover{transform:translateY(-6px);box-shadow:0 22px 55px rgba(10,25,55,.12)}
.strength b{display:block;font:800 34px/1 Manrope;color:var(--blue);letter-spacing:-.03em;margin-bottom:16px}
.strength h3{font:800 17px/1.4 Manrope;margin:0 0 9px}
.strength p{margin:0;color:var(--muted);font-size:13px;line-height:1.75}
.strength-statement{margin:44px 0 0;padding:30px 34px;border-left:4px solid var(--blue);background:var(--soft);border-radius:0 18px 18px 0;
  font:800 clamp(19px,2.2vw,26px)/1.5 Manrope;letter-spacing:-.02em;color:var(--ink)}
.strength-statement em{font-style:normal;color:var(--blue)}
@media(max-width:1050px){.strengths{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.strengths{grid-template-columns:1fr}.strength{padding:24px 20px}.strength-statement{padding:24px}}

/* ── Header brand lockup ──────────────────────────────────────────────────
   Emblem image + typeset name. Colours are taken from the logo artwork
   (navy #14284f, gold #c8901f) rather than the site blue, so the header reads
   as one brand rather than two. */
.logo{display:inline-flex;align-items:center;gap:11px}
.header .logo-img{height:44px;width:auto}
.logo-word{font:800 21px/1 Manrope;letter-spacing:-.02em;color:#14284f;display:block}
.logo-word small{display:block;font:700 9px/1 Inter;letter-spacing:.34em;color:#c8901f;margin-top:5px}
@media(max-width:650px){
  .header .logo-img{height:36px}
  .logo-word{font-size:17px}
  .logo-word small{font-size:7.5px;letter-spacing:.28em}
}
@media(max-width:650px){.header-actions .login-btn{display:none}}

/* ── Contact details ──────────────────────────────────────────────────────
   Each row is icon + label + value. The label matters: "Call us" tells the
   reader what to do with the number, which a bare bold string does not.
   Phone and email are links and lift on hover; the address is a plain block,
   so it must NOT look clickable. */
.contact-info{display:grid;gap:12px;margin-top:30px;max-width:430px}
.ci{display:flex;align-items:center;gap:15px;padding:16px 18px;background:#fff;
    border:1px solid var(--line);border-radius:14px;transition:transform .2s,box-shadow .2s,border-color .2s}
a.ci:hover{transform:translateX(4px);border-color:#c8d8f2;box-shadow:0 10px 30px rgba(10,25,55,.09)}
.ci-ico{flex:0 0 42px;height:42px;border-radius:11px;display:grid;place-items:center;
        background:var(--soft);color:var(--blue);transition:background .2s,color .2s}
.ci-ico svg{width:19px;height:19px}
a.ci:hover .ci-ico{background:var(--blue);color:#fff}
.ci-text{display:block;min-width:0}
.ci-text small{display:block;font-size:10px;letter-spacing:.13em;text-transform:uppercase;
               font-weight:800;color:var(--muted);margin-bottom:3px}
.ci-text b{display:block;font:800 15px Manrope;color:var(--ink);letter-spacing:-.01em;
           overflow-wrap:anywhere}
/* The address is informational, not actionable. */
.ci-static{cursor:default}
.ci-static .ci-ico{color:var(--muted)}
@media(max-width:650px){
  .contact-info{max-width:none}
  .ci{padding:14px 15px;gap:13px}
  .ci-ico{flex-basis:38px;height:38px}
  .ci-text b{font-size:14px}
}

/* ── Enquiry modal ────────────────────────────────────────────────────────
   Every control is styled by ONE selector list including select, so adding a
   field can never again leave it looking like a raw browser dropdown. */
.modalbox form{display:grid;gap:10px}
.modalbox input,.modalbox select,.modalbox textarea{
  width:100%;border:1px solid #dbe3ef;border-radius:10px;padding:13px 14px;outline:0;
  background:#fbfcfe;color:var(--ink);font:inherit;font-size:14px;transition:border-color .18s,box-shadow .18s}
.modalbox textarea{resize:vertical;min-height:84px}
.modalbox input::placeholder,.modalbox textarea::placeholder{color:#98a3b8}
.modalbox input:focus,.modalbox select:focus,.modalbox textarea:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(18,100,232,.12)}

/* Native select arrows differ per browser and per OS, so the control is reset
   and given one drawn arrow — otherwise the three dropdowns do not match each
   other, let alone the text inputs beside them. */
.modalbox select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2368758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}
/* An unchosen select should read as a placeholder, not as a real answer. */
.modalbox select:has(option[value=""]:checked){color:#98a3b8}

.modalbox .btn{width:100%;margin-top:4px;padding:14px}
.modalbox .status{margin:6px 0 0;text-align:center;font-size:12px}

/* The form grew from 4 fields to 7. On a short viewport — a landscape phone,
   or a laptop with the browser chrome open — the box now exceeds the screen,
   and without this the submit button is simply unreachable. */
.modalbox{max-height:calc(100vh - 40px);overflow-y:auto}
@media(max-width:650px){
  .modal{padding:12px}
  .modalbox{padding:26px 20px;max-height:calc(100vh - 24px)}
  .modalbox h2{font-size:26px}
}
