:root {
  --school-blue: #1a4f8c;
  --school-blue-dark: #123a66;
  --school-gold: #c9a227;
  --school-light: #eef3f9;
  --ink: #1a2230;
  --muted: #5a6478;
  --line: #d8e0ec;
  --font-body: "Source Sans 3", system-ui, sans-serif;
  --wide: 72rem;
  --topbar-h: 2rem;
  --header-h: 4.5rem;
  --banner-h: 1.5rem;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);line-height:1.6;color:var(--ink);padding-top:calc(var(--topbar-h)+var(--header-h)+var(--banner-h))}
a{color:var(--school-blue)}
.container{width:min(100% - 2rem,var(--wide));margin-inline:auto}
.demo-banner{position:fixed;top:0;left:0;right:0;z-index:400;margin:0;padding:.35rem 1rem;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:#fff;background:#c45c26}
.topbar{position:fixed;top:var(--banner-h);left:0;right:0;z-index:300;background:var(--school-blue-dark);color:rgba(255,255,255,.85);font-size:.75rem}
.topbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem;padding:.35rem 0}
.topbar a{color:#fff}
.site-header{position:fixed;top:calc(var(--banner-h)+var(--topbar-h));left:0;right:0;z-index:200;background:#fff;border-bottom:3px solid var(--school-gold)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--header-h);width:min(100% - 2rem,var(--wide));margin-inline:auto}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink)}
.brand__mark{width:2.5rem;height:2.5rem;border-radius:.25rem;background:var(--school-blue);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}
.brand__title{margin:0;font-size:1.05rem;font-weight:700;color:var(--school-blue)}
.brand__sub{margin:0;font-size:.68rem;color:var(--muted)}
.nav{display:none;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}
.nav a{font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.nav a.is-active,.nav a:hover{color:var(--school-blue)}
.nav-toggle{display:flex;flex-direction:column;gap:4px;border:none;background:none;cursor:pointer;padding:0}
.nav-toggle span{display:block;width:1.4rem;height:2px;background:var(--ink)}
.nav-mobile[hidden]{display:none!important}
.nav-mobile{display:flex;flex-direction:column;padding:.75rem 1rem;border-bottom:1px solid var(--line);background:#fff}
.nav-mobile a,.nav-mobile summary{text-decoration:none;padding:.35rem 0;font-size:.85rem;color:var(--ink)}
.nav-mobile details{margin:.25rem 0}
.hero{padding:3rem 0;background:linear-gradient(135deg,var(--school-light),#fff)}
.hero h1{margin:0 0 .5rem;font-size:clamp(1.8rem,4vw,2.6rem);color:var(--school-blue)}
.hero p{margin:0;color:var(--muted);max-width:36rem}
.section{padding:2.75rem 0}
.section--alt{background:var(--school-light)}
.section h2{margin:0 0 1rem;font-size:1.35rem;color:var(--school-blue)}
.dept-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
.dept-card{padding:1.2rem;background:#fff;border:1px solid var(--line);border-top:3px solid var(--school-gold);border-radius:.25rem}
.dept-card h3{margin:0 0 .4rem;font-size:1rem;color:var(--school-blue)}
.dept-card p{margin:0 0 .6rem;font-size:.9rem;color:var(--muted)}
.dept-card a{font-size:.72rem;font-weight:700;text-transform:uppercase;text-decoration:none}
.news-list{margin:0;padding:0;list-style:none}
.news-list li{padding:.85rem 0;border-bottom:1px solid var(--line)}
.news-list a{font-weight:600;text-decoration:none;color:var(--school-blue)}
.news-list span{display:block;font-size:.82rem;color:var(--muted);margin-top:.15rem}
.quick-links{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}
.quick-links a{display:block;padding:.7rem;background:#fff;border:1px solid var(--line);text-decoration:none;font-size:.82rem;font-weight:600;color:var(--school-blue);border-radius:.2rem}
.page-head{padding:2rem 0;background:var(--school-light)}
.page-head h1{margin:0;font-size:clamp(1.5rem,3vw,2rem);color:var(--school-blue)}
.content p,.content li{color:var(--muted)}
.footer{padding:1.75rem 0;background:var(--school-blue-dark);color:rgba(255,255,255,.8);font-size:.82rem}
.footer a{color:#fff}
.footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem}
@media(min-width:960px){.nav{display:flex}.nav-toggle,.nav-mobile{display:none!important}}
