:root {
  --navy: #071b36;
  --navy-soft: #0e2b4e;
  --navy-2: #041225;
  --text: #172033;
  --muted: #5e6b7a;
  --teal: #007d74;
  --teal-hover: #006b63;
  --teal-bright: #16b8a5;
  --teal-light: #e8f8f5;
  --purple: #6c5ce7;
  --purple-light: #f2efff;
  --orange: #a64b00;
  --orange-light: #fff2e5;
  --blue: #245bb5;
  --blue-light: #ebf2ff;
  --yellow: #9b6500;
  --yellow-light: #fff6da;
  --ink-light: #334055;
  --bg: #f6f8fb;
  --bg-warm: #fbfaf7;
  --border: #dbe3ea;
  --border-strong: #bac8d4;
  --white: #fff;
  --danger: #a12323;
  --shadow-sm: 0 10px 26px rgba(7, 27, 54, 0.07);
  --shadow: 0 24px 70px rgba(7, 27, 54, 0.12);
  --shadow-strong: 0 32px 90px rgba(7, 27, 54, 0.18);
  --radius-xs: 8px;
  --radius-sm: 12px;
  --radius: 18px;
  --radius-lg: 28px;
  --container: 1200px;
  --header: 76px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--white); font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.65; text-rendering: optimizeLegibility; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
h1, h2, h3, h4 { margin: 0 0 16px; color: var(--navy); font-family: Manrope, Inter, sans-serif; line-height: 1.12; letter-spacing: -0.035em; }
h1 { font-size: clamp(2.6rem, 5.2vw, 4.75rem); }
h2 { font-size: clamp(2rem, 3.7vw, 3rem); }
h3 { font-size: clamp(1.16rem, 1.8vw, 1.42rem); }
p { margin: 0 0 20px; }
ul, ol { margin-top: 0; }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.narrow { max-width: 840px; }
.section { padding: 96px 0; }
.section--light { background: var(--bg); }
.section--warm { background: var(--bg-warm); }
.skip-link { position: fixed; left: 12px; top: 10px; z-index: 1000; transform: translateY(-160%); padding: 10px 16px; background: var(--navy); color: #fff; border-radius: 8px; }
.skip-link:focus { transform: none; }
.site-header { position: sticky; top: 0; z-index: 100; height: var(--header); background: rgba(255,255,255,.95); border-bottom: 1px solid rgba(219,227,234,.78); backdrop-filter: blur(18px); }
.site-header--scrolled { box-shadow: 0 10px 30px rgba(7,27,54,.08); }
.header-inner { height: 100%; display: flex; align-items: center; gap: 26px; }
.site-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--navy); text-decoration: none; flex-shrink: 0; }
.site-logo svg { width: 42px; height: 42px; }
.site-logo span { display: flex; flex-direction: column; line-height: 1; }
.site-logo strong { font-family: Manrope,sans-serif; font-size: 16px; letter-spacing: .1em; }
.site-logo small { margin-top: 5px; font-size: 9px; letter-spacing: .34em; }
.site-logo--light { color: #fff; }
.desktop-nav { margin-left: auto; }
.nav-list { display: flex; align-items: center; gap: 25px; list-style: none; padding: 0; margin: 0; }
.nav-list a { position: relative; text-decoration: none; font-size: 14px; font-weight: 650; color: #24334a; }
.nav-list a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:2px; background:var(--teal); transition:right .18s ease; }
.nav-list a:hover,.nav-list a:focus-visible { color:var(--teal); }
.nav-list a:hover::after,.nav-list a:focus-visible::after { right:0; }
.header-cta { margin-left:3px; }
.btn { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:11px 22px; border:1px solid transparent; border-radius:var(--radius-sm); font-weight:750; font-size:14px; text-decoration:none; cursor:pointer; transition:background-color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease,color .16s ease; }
.btn:hover { transform:translateY(-2px); }
.btn:focus-visible,.text-link:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:3px solid rgba(22,184,165,.42); outline-offset:3px; }
.btn--large { min-height:54px; padding:14px 26px; font-size:15px; }
.btn--primary { background:var(--teal); color:#fff; box-shadow:0 10px 28px rgba(0,125,116,.2); }
.btn--primary:hover { background:var(--teal-hover); box-shadow:0 14px 34px rgba(0,125,116,.26); }
.btn--secondary { border-color:var(--border-strong); background:#fff; color:var(--navy); }
.btn--secondary:hover { background:var(--teal-light); border-color:var(--teal); }
.btn--light { background:#fff; color:var(--navy); box-shadow:0 12px 28px rgba(0,0,0,.12); }
.btn--light:hover { background:var(--teal-light); }
.btn--full { width:100%; }
.menu-toggle,.menu-close { display:none; border:0; background:transparent; color:var(--navy); cursor:pointer; }
.menu-toggle { width:44px; height:44px; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.menu-toggle span { width:22px; height:2px; background:currentColor; }
.mobile-menu { position:fixed; inset:0; background:rgba(3,14,30,.7); z-index:200; }
.mobile-menu__panel { margin-left:auto; width:min(90%,380px); min-height:100%; background:linear-gradient(160deg,var(--navy),var(--navy-2)); color:#fff; padding:24px; box-shadow:-20px 0 60px rgba(0,0,0,.25); }
.mobile-menu__top { display:flex; justify-content:space-between; align-items:center; margin-bottom:36px; }
.menu-close { display:block; color:#fff; font-size:34px; width:44px; height:44px; }
.mobile-nav-list { list-style:none; padding:0; margin:0 0 28px; }
.mobile-nav-list li { border-bottom:1px solid rgba(255,255,255,.12); }
.mobile-nav-list a { display:block; padding:15px 2px; text-decoration:none; font-weight:650; }
.mobile-menu__meta { display:grid; gap:8px; margin-top:28px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); font-size:13px; color:rgba(255,255,255,.72); }
.mobile-menu__meta a { color:#fff; text-decoration:none; font-weight:650; }
.eyebrow,.course-kicker { display:inline-block; margin-bottom:14px; color:var(--teal); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.115em; }
.eyebrow--light { color:#78eadb; }
.lead { font-size:19px; line-height:1.65; color:var(--ink-light); }
.text-link { display:inline-flex; align-items:center; gap:8px; color:var(--teal); font-weight:700; text-decoration:none; font-size:14px; }
.text-link--strong { font-weight:800; }
.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.icon { display:inline-flex; align-items:center; justify-content:center; color:currentColor; flex:0 0 auto; }
.icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
