:root {
  --navy: #1b2a4a;
  --navy-deep: #10192e;
  --gold: #c9a227;
  --gold-soft: #f4e4b3;
  --cream: #f7f3ea;
  --ink: #1f1a14;
  --muted: #6b5e45;
}
html { scroll-behavior: smooth; }
body {
  font-family: "Source Serif 4", Georgia, serif;
  background: var(--cream);
  color: var(--ink);
}
.sans { font-family: "Source Sans 3", system-ui, sans-serif; }
.hero {
  background:
    linear-gradient(160deg, rgba(16,25,46,.92), rgba(27,42,74,.78)),
    radial-gradient(circle at top right, rgba(201,162,39,.25), transparent 45%);
  background-size: cover;
  background-position: center center;
  color: #fff;
  padding: 5.2rem 0 4.2rem;
}
.nav-logo {
  height: 44px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}
.hero-logo {
  height: 72px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
  background: rgba(255,255,255,.08);
  padding: .35rem .6rem;
  border-radius: .5rem;
}
.hero .kicker {
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-soft);
  font-size: .78rem;
  font-family: "Source Sans 3", sans-serif;
}
.gold { color: var(--gold); }
.btn-gold {
  background: var(--gold);
  color: var(--navy-deep);
  border: none;
  font-weight: 600;
  letter-spacing: .02em;
}
.btn-gold:hover { background: #dbb53a; color: var(--navy-deep); }
.btn-navy { background: var(--navy); color: #fff; }
.btn-navy:hover { background: var(--navy-deep); color: #fff; }
.site-nav {
  background: var(--navy-deep);
}
.site-nav .navbar-brand, .site-nav .nav-link { color: #fff !important; }
.site-nav .nav-link:hover { color: var(--gold-soft) !important; }
.card-soft {
  border: 1px solid #e6dcc8;
  box-shadow: 0 10px 30px rgba(27,42,74,.06);
  border-radius: 1rem;
}
.step-label {
  font-family: "Source Sans 3", sans-serif;
  letter-spacing: .16em;
  font-size: .75rem;
  margin-bottom: .35rem;
}
.stat-card {
  border: 0;
  border-radius: 1rem;
  color: #fff;
  box-shadow: 0 10px 24px rgba(16,25,46,.12);
}
.stat-card .small { opacity: .9; letter-spacing: .04em; text-transform: uppercase; font-family: "Source Sans 3", sans-serif; }
.stat-navy { background: linear-gradient(160deg, #1b2a4a, #3a5a8c); }
.stat-gold { background: linear-gradient(160deg, #b45309, #d97706); }
.stat-green { background: linear-gradient(160deg, #166534, #22c55e); }
.stat-plum { background: linear-gradient(160deg, #5b21b6, #7c3aed); }
.section-title {
  font-weight: 600;
  color: var(--navy);
}
.form-label { font-family: "Source Sans 3", sans-serif; font-weight: 600; font-size: .9rem; }
.required::after { content: " *"; color: #b42318; }
.capacity-pill {
  font-family: "Source Sans 3", sans-serif;
  font-size: .78rem;
  border-radius: 999px;
  padding: .2rem .6rem;
}
.footer {
  background: var(--navy-deep);
  color: #c9c3b4;
  padding: 2rem 0;
  font-size: .9rem;
}
.admin-sidebar {
  min-height: 100vh;
  background: var(--navy-deep);
  color: #fff;
}
.admin-sidebar a { color: #d7d0c2; text-decoration: none; display: block; padding: .55rem .9rem; border-radius: .5rem; }
.admin-sidebar a.active, .admin-sidebar a:hover { background: rgba(201,162,39,.15); color: var(--gold-soft); }
.table thead { font-family: "Source Sans 3", sans-serif; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
.step-num {
  width: 2rem; height: 2rem; border-radius: 50%;
  background: var(--navy); color: #fff; display: inline-flex;
  align-items: center; justify-content: center; font-family: "Source Sans 3", sans-serif;
}
@media (max-width: 767px) {
  .hero { padding: 3rem 0 2.2rem; }
}
