:root{
  --navy:#1d2944; --navy-deep:#101a2e; --red:#d22628; --red-dark:#a81d1f;
  --gold:#c9a227; --gold-ink:#856a18; --sand:#f6f4ef; --ink:#1b2430; --muted:#5c6773; --line:#dfdad0;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif}
img{max-width:100%}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;
  color:var(--gold-ink);margin-bottom:14px}
/* on dark backgrounds the brighter gold is fine and has plenty of contrast */
.hero .eyebrow,.pagehead .eyebrow,.cta .eyebrow,.signup .eyebrow,footer .eyebrow{color:var(--gold)}
.center{text-align:center}

/* ---------- accessibility ---------- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:300;background:var(--gold);color:var(--navy-deep);
  padding:12px 20px;font:700 13px/1 -apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;
  border-radius:0 0 4px 0;text-decoration:none}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,.tier:focus-visible{
  outline:3px solid var(--gold);outline-offset:3px;border-radius:2px}
header a:focus-visible,.hero a:focus-visible,.cta a:focus-visible,footer a:focus-visible{outline-color:#fff}
main{display:block}

/* ---------- placeholder markers ---------- */
.ph{position:relative}
body.show-ph .ph{outline:2px dashed var(--red);outline-offset:4px;border-radius:3px;background:rgba(210,38,40,.07)}
body.show-ph .ph::after{content:attr(data-ph);position:absolute;top:-9px;left:0;transform:translateY(-100%);
  background:var(--red);color:#fff;font:700 10px/1.4 -apple-system,sans-serif;letter-spacing:.06em;
  text-transform:uppercase;padding:3px 7px;border-radius:3px;white-space:nowrap;z-index:60}
#phToggle{position:fixed;right:18px;bottom:18px;z-index:200;background:var(--ink);color:#fff;border:none;
  border-radius:999px;padding:12px 20px;font:700 13px/1 -apple-system,sans-serif;cursor:pointer;
  box-shadow:0 6px 22px rgba(0,0,0,.28)}
#phToggle.on{background:var(--red)}

/* ---------- buttons ---------- */
.btn{display:inline-block;border:none;cursor:pointer;text-decoration:none;text-align:center;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;border-radius:3px;font-family:-apple-system,sans-serif;
  transition:transform .12s ease,background .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-red{background:var(--red);color:#fff;padding:13px 26px;font-size:13px}
.btn-red:hover{background:var(--red-dark)}
.btn-gold{background:var(--gold);color:var(--navy-deep);padding:15px 32px;font-size:14px}
.btn-navy{background:var(--navy);color:#fff;padding:15px 32px;font-size:14px}
.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7);padding:13px 30px;font-size:14px}
.btn-outline:hover{background:#fff;color:var(--navy)}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:100;background:var(--navy);border-bottom:3px solid var(--gold)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:20px}
.navlogo{height:46px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:26px;list-style:none}
.nav-links a{color:#dbe3ec;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:6px 0;border-bottom:2px solid transparent}
.nav-links a:hover{color:var(--gold)}
.nav-links a.active{color:#fff;border-bottom-color:var(--gold)}
.burger{display:none;background:none;border:none;color:#fff;font-size:24px;cursor:pointer;line-height:1}
.mobile-menu{display:none;background:var(--navy-deep);border-top:1px solid rgba(255,255,255,.12)}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:15px 24px;color:#dbe3ec;text-decoration:none;font-size:13px;
  font-weight:700;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.08)}

/* ---------- home hero ---------- */
.hero{position:relative;min-height:640px;display:flex;align-items:center;background:var(--navy-deep);overflow:hidden}
.hero-bg{position:absolute;inset:0;background:url("assets/hero.jpg") 72% center/cover}
.hero-inner{position:relative;z-index:3;max-width:640px;padding:88px 0}
.hero h1{margin:0 0 34px}
.herologo{width:min(520px,90%);height:auto;display:block;
  filter:drop-shadow(0 4px 20px rgba(0,0,0,.45))}
.hero h1{color:#dce5f0;font-size:clamp(24px,3vw,36px);font-weight:400;line-height:1.25;margin-bottom:26px;
  text-shadow:0 2px 18px rgba(0,0,0,.5)}
.hero h1 em{color:var(--gold);font-style:normal}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- inner page banner ---------- */
.pagehead{position:relative;background:var(--navy-deep);padding:74px 0 66px;overflow:hidden}
.pagehead::before{content:"";position:absolute;inset:0;background:url("assets/hero.jpg") 60% 40%/cover;opacity:.34}
.pagehead::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(16,26,46,.94) 22%,rgba(16,26,46,.62))}
.pagehead .wrap{position:relative;z-index:3}
.pagehead h1{color:#fff;font-size:clamp(34px,5vw,52px);line-height:1.08;margin-bottom:12px}
.pagehead p{color:#bccbdc;font-size:17px;max-width:620px}

/* ---------- generic sections ---------- */
section{padding:82px 0}
.sec-alt{background:var(--sand);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{text-align:center;margin-bottom:40px}
.sec-head h2{font-size:clamp(28px,3.6vw,40px);color:var(--navy);margin-bottom:10px}
.sec-head p{color:var(--muted);max-width:640px;margin:0 auto;font-size:16.5px}

/* ---------- donate ---------- */
.tiers{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;max-width:920px;margin:0 auto 24px}
.tier{background:#fff;border:2px solid var(--navy);color:var(--navy);padding:22px 8px;text-align:center;
  border-radius:4px;text-decoration:none;font:800 21px/1 Georgia,serif;transition:.15s}
.tier:hover{background:var(--navy);color:#fff}
.tier.custom{font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-family:-apple-system,sans-serif;
  display:grid;place-items:center;line-height:1.35}
.donate-foot{text-align:center;max-width:740px;margin:0 auto}
.donate-foot .note{font-size:13px;color:var(--muted);margin-top:18px}

/* ---------- forms ---------- */
.formbox{background:var(--navy);color:#fff;padding:44px;border-radius:6px}
.formbox.light{background:#fff;color:var(--ink);border:1px solid var(--line)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.formbox input,.formbox textarea,.formbox select{width:100%;padding:14px 15px;border-radius:3px;font-size:15px;
  font-family:inherit;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.07);color:#fff}
.formbox input::placeholder,.formbox textarea::placeholder{color:#8fa3bb}
.formbox input:focus,.formbox textarea:focus{outline:2px solid var(--gold);background:rgba(255,255,255,.12)}
.formbox.light input,.formbox.light textarea{border:1px solid var(--line);background:#fff;color:var(--ink)}
.formbox.light input::placeholder,.formbox.light textarea::placeholder{color:#9aa3ad}
.formbox .btn{width:100%;margin-top:10px}
.consent{font-size:11.5px;color:#8fa3bb;margin-top:14px;line-height:1.5}
.formbox.light .consent{color:var(--muted)}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 14px}
.checks label{display:flex;gap:9px;align-items:flex-start;font-size:14px;color:#cdd8e6;cursor:pointer}
.formbox.light .checks label{color:var(--ink)}
.checks input{width:auto;padding:0;margin-top:5px;flex:none}

/* ---------- about ---------- */
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.split.split-form{grid-template-columns:1fr 1.1fr;align-items:start}
.split.split-about{grid-template-columns:.72fr 1.28fr;align-items:center;gap:56px}
.split.split-about .portrait{aspect-ratio:1/1}
.split.split-about .prose p{font-size:17.5px}
.portrait{aspect-ratio:4/5;border-radius:5px;border:1px solid var(--line);
  background:#e8e4db url("assets/headshot.jpg") 46% 42%/cover}
.portrait.council{background-image:url("assets/council.jpg");background-position:52% 30%}
.prose p{margin-bottom:16px;font-size:17px;color:#39434f}
.prose h2{font-size:clamp(28px,3.6vw,40px);color:var(--navy);margin-bottom:18px}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:34px}
.pillar{border-top:3px solid var(--gold);padding-top:14px}
.pillar h3{font-size:16px;color:var(--navy);margin-bottom:6px}
.pillar p{font-size:14px;color:var(--muted);margin:0}

/* ---------- transparency ---------- */
.official{background:var(--navy);color:#fff;padding:34px 38px;border-radius:5px;border-left:5px solid var(--gold);
  margin-bottom:34px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}
.official h3{font-size:22px;margin-bottom:10px}
.official p{color:#bccbdc;font-size:15px;margin:0}
.live{display:inline-flex;align-items:center;gap:8px;background:rgba(201,162,39,.16);color:var(--gold);
  font:700 11px/1 -apple-system,sans-serif;letter-spacing:.13em;text-transform:uppercase;padding:7px 12px;
  border-radius:999px;margin-bottom:14px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(201,162,39,0)}100%{box-shadow:0 0 0 0 rgba(201,162,39,0)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}}
.rep-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.rep-card{background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.rep-card h3{padding:20px 24px;border-bottom:1px solid var(--line);font-size:19px;color:var(--navy)}
.rep-card h3 span{display:block;font:400 13px/1.4 -apple-system,sans-serif;color:var(--muted);margin-top:4px}
.rep-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 24px;
  border-bottom:1px solid #eeeae3;text-decoration:none;color:inherit}
.rep-item:last-child{border-bottom:none}
.rep-item:hover{background:#faf8f4}
.rep-item .m{font-weight:700;color:var(--navy);font-size:15px}
.rep-item .d{font-size:12.5px;color:var(--muted)}
.dl-item{display:flex;align-items:center;gap:20px;padding:26px;text-decoration:none;color:inherit;
  transition:background .15s ease}
.dl-item:hover{background:#faf8f4}
.dl-icon{flex:none;width:52px;height:64px;border:2px solid var(--red);border-radius:4px;color:var(--red);
  display:grid;place-items:center;font:800 13px/1 -apple-system,sans-serif;letter-spacing:.06em;
  position:relative;background:#fff}
.dl-icon::after{content:"";position:absolute;top:-2px;right:-2px;width:14px;height:14px;background:var(--sand);
  border-left:2px solid var(--red);border-bottom:2px solid var(--red);border-radius:0 0 0 3px}
.dl-item:hover .dl-icon{background:var(--red);color:#fff}
.dl-item:hover .dl-icon::after{background:#fff}
.dl-text{flex:1;min-width:0}
.dl-title{display:block;font:700 21px/1.2 Georgia,serif;color:var(--navy)}
.dl-sub{display:block;font-size:13.5px;color:var(--muted)}
.dl-btn{flex:none;background:var(--navy);color:#fff;padding:12px 22px;border-radius:3px;text-align:center;
  font:800 12px/1 -apple-system,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.dl-item:hover .dl-btn{background:var(--red)}
@media(max-width:560px){
  .dl-item{flex-wrap:wrap;gap:14px}
  .dl-text{flex:1 1 60%}
  .dl-btn{flex:1 1 100%}
}
.emptystate{padding:34px 24px;text-align:center}
.emptystate p{color:var(--navy);font-weight:700;font-size:16px;margin-bottom:8px}
.emptystate .sub{color:var(--muted);font-weight:400;font-size:14.5px;max-width:520px;margin:0 auto;line-height:1.6}
.infoblock a{color:var(--red);text-decoration:none;font-weight:600}
.infoblock a:hover{text-decoration:underline}
footer .foot-grid a[href^="mailto"]{display:inline;margin:0}
.rep-item .pdf{font:700 11px/1 -apple-system,sans-serif;letter-spacing:.1em;color:var(--red);
  border:1.5px solid var(--red);padding:6px 10px;border-radius:3px;flex:none}

/* ---------- teaser cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{border:1px solid var(--line);border-radius:5px;padding:30px;background:#fff;display:flex;
  flex-direction:column}
.card h3{font-size:20px;color:var(--navy);margin-bottom:10px}
.card p{color:var(--muted);font-size:15px;margin-bottom:20px;flex:1}
.card a{color:var(--red);font:800 12px/1 -apple-system,sans-serif;letter-spacing:.11em;
  text-transform:uppercase;text-decoration:none}
.card a:hover{color:var(--red-dark)}

/* ---------- contact ---------- */
.infoblock{background:var(--sand);border:1px solid var(--line);border-radius:5px;padding:32px;margin-bottom:22px}
.infoblock h3{font-size:18px;color:var(--navy);margin-bottom:12px}
.infoblock p{color:var(--muted);font-size:15px;margin-bottom:6px}

/* ---------- CTA strip ---------- */
.cta{background:var(--navy);color:#fff;padding:64px 0;text-align:center}
.cta h2{font-size:clamp(26px,3.4vw,38px);margin-bottom:12px}
.cta p{color:#bccbdc;max-width:560px;margin:0 auto 26px;font-size:16.5px}

/* ---------- footer ---------- */
footer{background:var(--navy-deep);color:#93a3b8;padding:54px 0 32px;font-size:14px}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;margin-bottom:36px}
footer h4{color:#fff;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;
  font-family:-apple-system,sans-serif}
footer a{color:#93a3b8;text-decoration:none;display:block;margin-bottom:8px}
footer a:hover{color:var(--gold)}
.disclaimer{border-top:1px solid rgba(255,255,255,.14);padding-top:22px;font-size:12.5px;color:#7c8b9e;
  text-align:center;line-height:1.7}
.disclaimer strong{color:#e4ebf3;letter-spacing:.09em;font-size:13px;display:block;margin-bottom:10px}
.disclaimer .addr{margin-bottom:8px}
.disclaimer .copy{color:#6f7d90;font-size:12px;margin-top:10px}

@media(max-width:940px){
  .nav-links{display:none} .burger{display:block}
  .hero-bg{background-position:76% center}
  .hero::after{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(16,26,46,.55),rgba(16,26,46,.86))}
  .split,.split.split-form,.split.split-about,.rep-cols,.foot-grid,.cards{grid-template-columns:1fr;gap:32px}
  textarea{max-width:100%}
  .official{grid-template-columns:1fr}
  .tiers{grid-template-columns:repeat(3,1fr)}
  .pillars{grid-template-columns:1fr}
  section{padding:60px 0}
  .formbox{padding:30px}
}
@media(max-width:520px){
  .tiers{grid-template-columns:repeat(2,1fr)}
  .form-row,.checks{grid-template-columns:1fr}
  .hero-cta .btn{width:100%}
  .navlogo{height:34px}
}
