:root{
  --navy:#1f2d46;
  --orange:#c2521f;
  --orange-on-navy:#e8813f;
  --paper:#f7f5f0;
  --gray:#555555;
  --white:#ffffff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Helvetica,Arial,sans-serif;
  color:var(--navy);
  background:var(--white);
  line-height:1.6;
  font-size:1.0625rem;
}
img{max-width:100%;height:auto}
a{color:var(--orange)}
a:focus-visible,.btn:focus-visible{outline:3px solid var(--orange-on-navy);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:.75rem 1rem;z-index:10}
.skip:focus{left:0}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}

/* header */
.top{background:var(--paper);border-bottom:1px solid #e3dfd5;position:sticky;top:0;z-index:5}
.top-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}
.brand img{height:44px;width:auto}
.wordmark{font-weight:700;letter-spacing:.22em;font-size:.72rem;line-height:1.35}
.wordmark sup{font-size:.55em;letter-spacing:0}
nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
nav a{color:var(--navy);text-decoration:none;font-weight:600;font-size:.95rem}
nav a:hover{color:var(--orange)}
nav .nav-cta{background:var(--navy);color:#fff;padding:.5rem 1rem;border-radius:6px}
nav .nav-cta:hover{background:var(--orange);color:#fff}

/* hero */
.hero{background:var(--navy);color:#fff;padding:88px 0 72px}
.eyebrow{color:var(--orange-on-navy);text-transform:uppercase;letter-spacing:.18em;font-weight:700;font-size:.8rem;margin:0 0 16px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.2}
h1{font-size:clamp(2rem,5vw,3.25rem);margin:0 0 20px;max-width:18ch;font-weight:700}
.hero h1::after{content:"";display:block;width:88px;height:4px;background:var(--orange-on-navy);margin-top:20px;border-radius:2px}
.lead{max-width:62ch;font-size:1.15rem;color:#e6e9ef;margin:0 0 28px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 28px}
.btn{display:inline-block;background:var(--orange);color:#fff;text-decoration:none;font-weight:700;padding:.85rem 1.4rem;border-radius:6px;border:2px solid var(--orange)}
.btn:hover{background:#a3441a;border-color:#a3441a}
.btn.ghost{background:transparent;border-color:#fff;color:#fff}
.btn.ghost:hover{background:#fff;color:var(--navy)}
.motto{font-family:Georgia,serif;font-style:italic;color:var(--orange-on-navy);margin:0}

/* sections */
section{padding:72px 0}
.band{background:#fff}
.paper{background:var(--paper)}
h2{font-size:clamp(1.6rem,3.5vw,2.25rem);margin:0 0 12px}
.section-intro{color:var(--gray);max-width:60ch;margin:0 0 36px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.card{background:var(--paper);border-top:4px solid var(--orange);padding:24px;border-radius:0 0 8px 8px}
.card h3{margin:0 0 10px;font-size:1.25rem}
.card p{margin:0;color:#2c3a52}

.stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px}
.stats li{border-left:4px solid var(--orange);padding-left:18px}
.num{display:block;font-family:Georgia,serif;font-weight:700;font-size:2.75rem;line-height:1;color:var(--navy)}
.label{display:block;margin-top:8px;color:#2c3a52}

.chips{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.chips span{background:var(--navy);color:#fff;font-weight:700;letter-spacing:.06em;padding:.45rem .9rem;border-radius:999px;font-size:.95rem}

.course-list{margin:0 0 16px;padding-left:1.2rem}
.course-list li{margin:0 0 8px}
.badge{float:right;width:72px;height:72px;margin:0 0 8px 12px}
.small-note{color:var(--gray);font-size:.95rem}

.contact{background:var(--navy);color:#fff;text-align:center}
.contact a{color:var(--orange-on-navy)}
.contact .btn{color:#fff}
.contact .hero-actions{justify-content:center}
.small{color:#cfd5e0;font-size:.95rem}

footer{background:#16213a;color:#cfd5e0;padding:34px 0;font-size:.9rem}
.foot-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.foot-row img{height:70px;width:auto}
.foot-row p{margin:0}

@media (max-width:640px){
  section{padding:52px 0}
  .hero{padding:56px 0 48px}
  nav{gap:12px}
  nav a{font-size:.9rem}
}
