:root{
  --green:#007A3D;
  --green-deep:#05512A;
  --green-ink:#0B3322;
  --gold:#F5B800;
  --gold-deep:#C99400;
  --black:#0D0D0D;
  --cream:#FBF7EC;
  --badge:#E4F0E7;
  --body:#2E332F;
  --line:rgba(11,51,34,.16);
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit;}
html{scroll-padding-top:calc(78px + env(safe-area-inset-top,0px));}
body{
  margin:0;background:#fff;color:var(--body);
  font-family:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--green-deep);}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px;}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--black);color:#fff;}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 24px;max-width:1140px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;}
.brand img{width:46px;height:46px;border-radius:50%;}
.brand .mark{font-weight:800;letter-spacing:.01em;line-height:1.1;font-size:1rem;}
.brand .mark span{display:block;color:var(--gold);font-weight:600;font-size:.72rem;letter-spacing:.04em;}
nav ul{display:flex;flex-wrap:wrap;gap:18px;list-style:none;margin:0;padding:0;}
nav a{color:#fff;text-decoration:none;font-size:.93rem;font-weight:500;opacity:.9;}
nav a:hover,nav a:focus-visible,nav a[aria-current="page"]{opacity:1;color:var(--gold);}
.nav-donate{background:var(--gold);color:var(--black) !important;padding:10px 20px;border-radius:999px;font-weight:700;opacity:1 !important;}
.menu-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:8px;padding:8px 12px;font-size:.9rem;}

/* buttons */
.btn{display:inline-block;text-decoration:none;font-weight:700;border-radius:999px;padding:17px 38px;font-size:1rem;transition:background .2s ease;}
.btn-gold{background:var(--gold);color:var(--black);}
.btn-gold:hover,.btn-gold:focus-visible{background:var(--gold-deep);}
.btn-green{background:var(--green);color:#fff;}
.btn-green:hover,.btn-green:focus-visible{background:var(--green-deep);}
.btn-ghost{border:2px solid #fff;color:#fff;}
.btn-ghost:hover,.btn-ghost:focus-visible{background:#fff;color:var(--green-ink);}
.btn-line{border:2px solid var(--green);color:var(--green-deep);}
.btn-line:hover,.btn-line:focus-visible{background:var(--green);color:#fff;}
a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
.btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;}

/* type */
h1,h2,h3{color:var(--green-ink);margin:0 0 .5em;line-height:1.1;letter-spacing:-.02em;}
h1{font-size:clamp(2.2rem,5.4vw,3.5rem);font-weight:800;}
h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;}
h3{font-size:1.22rem;font-weight:700;letter-spacing:-.01em;}
p{margin:0 0 1.1em;max-width:70ch;}
.lede{font-size:1.15rem;line-height:1.6;}
.script{font-family:'Kaushan Script',cursive;font-size:clamp(1.4rem,3vw,2rem);color:var(--green-deep);margin:-.2em 0 .8em;}
.rule{width:88px;height:6px;background:var(--gold);border-radius:3px;margin-bottom:24px;}

/* sections */
section{padding:72px 0;}
section.tight{padding:48px 0;}
.cream{background:var(--cream);}
.ink{background:var(--green-ink);color:#EAF2EC;}
.ink h2,.ink h3{color:#fff;}
.ink a{color:var(--gold);}
.two{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.two.flip .shot{order:-1;}
.shot img{border-radius:22px;box-shadow:0 16px 40px rgba(11,51,34,.18);}
.shot figcaption{margin-top:14px;font-size:.87rem;color:rgba(46,51,47,.8);}
.ink .shot figcaption{color:rgba(234,242,236,.8);}

/* hero */
.hero{position:relative;padding:0;background:var(--black);}
.hero img.bg{width:100%;height:clamp(420px,62vh,620px);object-fit:cover;opacity:.42;}
.hero .inner{position:absolute;inset:0;display:flex;align-items:center;}
.hero h1{color:#fff;max-width:17ch;}
.hero p{color:#F2F5F2;font-size:1.12rem;max-width:52ch;}
.page-head{background:var(--green-ink);color:#EAF2EC;padding:64px 0 58px;}
.page-head h1{color:#fff;margin-bottom:.25em;}
.page-head p{color:#D8E6DC;font-size:1.1rem;margin:0;}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:26px;margin-top:38px;}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;}
.cream .card{background:#fff;}
.card p:last-child{margin-bottom:0;}
.card .tag{display:inline-block;background:var(--badge);color:var(--green-deep);font-size:.76rem;font-weight:700;letter-spacing:.06em;padding:5px 12px;border-radius:999px;margin-bottom:14px;}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:40px 0;}
.stat{padding:0 20px;text-align:center;}
.stat + .stat{border-left:1px solid var(--line);}
.ink .stat + .stat{border-left-color:rgba(255,255,255,.22);}
.badge{width:62px;height:62px;border-radius:50%;background:var(--badge);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.badge svg{width:30px;height:30px;fill:var(--green-deep);}
.figure{font-size:clamp(2rem,4.4vw,2.9rem);font-weight:800;color:var(--green-ink);line-height:1;}
.ink .figure{color:var(--gold);}
.stat .label{font-size:.93rem;line-height:1.45;margin-top:10px;}

/* sponsorship ladder */
.ladder{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:10px;max-width:640px;}
.ladder li{display:flex;justify-content:space-between;gap:18px;align-items:baseline;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 22px;}
.ladder .amt{font-weight:800;color:var(--green-deep);font-size:1.16rem;}
.cream .ladder li{background:#fff;}

/* lists */
ul.ticks{list-style:none;padding:0;margin:0 0 1.2em;max-width:70ch;}
ul.ticks li{position:relative;padding-left:30px;margin-bottom:11px;}
ul.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:12px;height:12px;border-radius:50%;background:var(--gold);}
.ink ul.ticks li::before{background:var(--gold);}

/* gallery */
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-top:34px;}
.grid3 figure{margin:0;}
.grid3 img{border-radius:16px;}
.grid3 figcaption{font-size:.85rem;margin-top:10px;color:rgba(46,51,47,.8);}

/* note box */
.note{border-left:5px solid var(--gold);background:var(--cream);padding:20px 24px;border-radius:0 14px 14px 0;margin:28px 0;}
.note p:last-child{margin-bottom:0;}
.todo{border-left-color:#C0392B;background:#FDF1EF;}

/* footer */
footer{background:var(--black);color:#D9DED9;padding:60px 0 34px;font-size:.95rem;}
footer h4{color:#fff;font-size:1rem;margin:0 0 14px;}
footer a{color:#fff;text-decoration:none;}
footer a:hover{color:var(--gold);}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;}
.fgrid ul{list-style:none;padding:0;margin:0;display:grid;gap:9px;}
.legal{border-top:1px solid rgba(255,255,255,.16);margin-top:40px;padding-top:22px;font-size:.85rem;color:#9AA39B;}
.legal a{color:#9AA39B;text-decoration:underline;}

@media (max-width:900px){
  .two,.two.flip{grid-template-columns:1fr;gap:34px;}
  .two.flip .shot{order:0;}
  .stats{grid-template-columns:1fr;gap:26px;}
  .stat{text-align:left;display:grid;grid-template-columns:62px 1fr;gap:18px;align-items:center;padding:0;}
  .stat + .stat{border-left:0;border-top:1px solid var(--line);padding-top:24px;}
  .badge{margin:0;}
  .fgrid{grid-template-columns:1fr;gap:30px;}
  nav ul{gap:12px;}
  nav a{font-size:.88rem;}
  section{padding:54px 0;}
  .bar{flex-wrap:wrap;}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important;}}

/* four-figure impact strip */
.stats4{grid-template-columns:repeat(4,1fr);}
.stats4 .figure{font-size:clamp(1.9rem,3.6vw,2.6rem);}
@media (max-width:1000px){.stats4{grid-template-columns:repeat(2,1fr);row-gap:30px;}
  .stats4 .stat:nth-child(3){border-left:0;}
  .stats4 .stat:nth-child(n+3){border-top:1px solid var(--line);padding-top:26px;}}
@media (max-width:900px){.stats4{grid-template-columns:1fr;}
  .stats4 .stat + .stat{border-left:0;border-top:1px solid var(--line);padding-top:24px;}}
