:root{
  --bg:#ffffff;
  --text:#0b1320;
  --muted:#4b5563;
  --brand:#002b5c;     /* deep university blue */
  --accent:#c9a227;    /* warm gold */
  --border:#d1d5db;
  --focus:#ffbf47;     /* accessible focus */
  --max: 1100px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: Arial, Helvetica, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}

a{ color:var(--brand); text-decoration-thickness:2px; text-underline-offset:3px; }
a:focus{ outline:3px solid var(--focus); outline-offset:2px; }

.skip-link{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:1rem; top:1rem; width:auto; height:auto;
  background:#fff; padding:.75rem 1rem; border:2px solid var(--brand);
  z-index:9999;
}

.container{ max-width:var(--max); margin:0 auto; padding:0 1rem; }

.site-header{
  border-bottom:4px solid var(--accent);
  background:var(--brand);
  color:#fff;
}
.header-row{
  display:flex; gap:1rem; align-items:center; justify-content:space-between;
  padding:1rem 0;
}
.brand-link{ color:#fff; font-weight:700; font-size:1.25rem; text-decoration:none; }
.brand-sub{ font-size:.95rem; color:rgba(255,255,255,.85); }

.nav{ display:flex; gap:1rem; flex-wrap:wrap; }
.nav a{ color:#fff; text-decoration:none; padding:.25rem .1rem; border-bottom:2px solid transparent; }
.nav a:hover, .nav a:focus{ border-bottom-color:var(--accent); }

main{ display:block; }

.section{
  padding:2.25rem 0;
  border-bottom:1px solid var(--border);
}
.section-title{
  margin:0 0 .75rem 0;
  font-size:1.5rem;
  letter-spacing:.2px;
}
.muted{ color:var(--muted); }

.hero{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:1.5rem;
  align-items:start;
}
.hero-card{
  border:1px solid var(--border);
  padding:1.25rem;
  border-radius:0;
}
.hero img{
  width:100%;
  height:auto;
  border:1px solid var(--border);
  border-radius:0;
}

.grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:1rem;
}
.card{
  border:1px solid var(--border);
  padding:1rem;
  border-radius:0;
  background:#fff;
}

.button{
  display:inline-block;
  background:var(--brand);
  color:#fff;
  padding:.6rem .9rem;
  border:2px solid var(--brand);
  text-decoration:none;
  border-radius:0;
  cursor:pointer;
}
.button:hover, .button:focus{
  background:#fff;
  color:var(--brand);
}

.button.secondary{
  background:#fff;
  color:var(--brand);
}

table{
  width:100%;
  border-collapse:collapse;
}
th, td{
  text-align:left;
  padding:.5rem;
  border-bottom:1px solid var(--border);
  vertical-align:top;
}

input, textarea, select{
  width:100%;
  padding:.6rem;
  border:1px solid var(--border);
  border-radius:0;
  font:inherit;
}
label{ font-weight:700; display:block; margin:.5rem 0 .25rem; }

.notice{
  border-left:6px solid var(--accent);
  padding:.75rem 1rem;
  background:#fff;
}

.site-footer{
  background:#0b1320;
  color:#fff;
  padding:1.5rem 0;
}
.footer-row{
  display:flex; gap:1rem; justify-content:space-between; flex-wrap:wrap;
}
.site-footer .muted{ color:rgba(255,255,255,.75); }

@media (max-width: 800px){
  .hero{ grid-template-columns:1fr; }
  .grid-2{ grid-template-columns:1fr; }
  .header-row{ align-items:flex-start; flex-direction:column; }
}