/* Shared staging styles: design tokens, buttons, hero band. Linked from every /staging page; page-specific rules stay in each page's <style>. */
:root {
  --navy: #1a3a5c;
  --deep: #0f2440;
  --sky: #4a90c4;
  --mist: #c7dced;
  --warm: #d4a853;
  --sand: #f5f0e8;
  --cream: #faf8f4;
  --ink: #2c3344;
  --slate: #5a6577;
  --light-slate: #8895a7; }
.btn-gold:hover { background: #e0b45e; }
.btn-navy {
  display: inline-block;
  padding: 0.75rem 1.8rem;
  background: var(--navy);
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 600;
  font-size: 0.9rem;
  transition: background 0.2s; }
.btn-navy:hover { background: var(--deep); }

/* ── Hero band (one component; replaces .res-hero / .ca-hero / .page-hero / .donate-hero) ──
   Modifiers: --lg (model / initiative pages), --compact (centred, no glow: contact, donate) */
.site-hero { background: var(--navy); color: #fff; padding: 5rem 2rem 4.5rem; position: relative; overflow: hidden; }
.site-hero::before { content: ''; position: absolute; top: -50%; left: -20%; width: 140%; height: 200%; background: radial-gradient(ellipse at 30% 50%, rgba(74,144,196,0.12) 0%, transparent 60%); pointer-events: none; }
.site-hero-inner { max-width: 780px; margin: 0 auto; position: relative; z-index: 1; }
.site-hero-kicker { font-size: 0.75rem; letter-spacing: 3px; text-transform: uppercase; color: var(--warm); font-weight: 600; margin-bottom: 1.2rem; }
.site-hero h1 { font-weight: 700; line-height: 1.18; margin-bottom: 1.3rem; letter-spacing: -0.02em; }
.site-hero h1 em { font-style: italic; color: var(--warm); }
.site-hero-lead { font-size: 1.12rem; line-height: 1.85; color: rgba(255,255,255,0.85); max-width: 660px; font-weight: 300; }
.site-hero--lg .site-hero-inner { max-width: 760px; }
.site-hero--lg h1 { margin-bottom: 1.5rem; }
.site-hero--lg .site-hero-lead { font-size: 1.15rem; }
.site-hero--compact { padding: 4rem 2rem 3rem; text-align: center; position: static; overflow: visible; }
.site-hero--compact::before { display: none; }
.site-hero--compact .site-hero-inner { max-width: 720px; position: static; }
.site-hero--compact .site-hero-kicker { font-size: 0.85rem; margin-bottom: 1rem; font-weight: 500; }
.site-hero--compact h1 { line-height: 1.15; margin: 0 0 1rem; letter-spacing: -0.01em; }
.site-hero--compact p { font-size: 1.1rem; color: rgba(255,255,255,0.85); margin: 0; }
@media (max-width: 768px) { .site-hero:not(.site-hero--compact) h1 { font-size: 2rem; } }
@media (max-width: 560px) { .site-hero--compact { padding: 3rem 1.2rem 2.4rem; } .site-hero--compact h1 { font-size: 2rem; } }

/* Standard hero h1 — one size + font sitewide (44.8px = 2.8rem, Source Serif 4). Pages must not override these. */
:root { --hero-h1-size: 2.8rem; --hero-h1-font: 'Source Serif 4', Georgia, serif; }
.site-hero h1, .hero h1, .page-hero h1, .sa-hero h1, .ca-hero h1, .page-title-hero { font-family: var(--hero-h1-font); font-size: var(--hero-h1-size); }
@media (max-width: 768px) { .site-hero h1, .hero h1, .page-hero h1, .sa-hero h1, .ca-hero h1, .page-title-hero { font-size: 2rem; } }
