
:root{
  --bg:#ffffff;
  --fg:#1f1f1f;
  --muted:#666;
  --green:#1F4D2B;
  --yellow:#F5C44D;
  --burgundy:#7B2330;
  --copper:#B87333;
  --card:#fafafa;
  --border:#e9e9e9;
  --shadow:0 6px 20px rgba(0,0,0,.06);
  --radius:16px;
  --pairH:520px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--fg)}
img{max-width:100%;display:block}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1200px;margin:0 auto;padding:24px}
.grid{display:grid;gap:20px}
.grid-2{grid-template-columns:1.1fr .9fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:960px){.grid-2,.grid-3{grid-template-columns:1fr}}

header.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--border);z-index:20}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px}
.brand{display:flex;align-items:center;gap:12px}
.brand .logo{width:200px;height:54px;background:url('../img/logo-nav.png') no-repeat left center/contain;display:inline-block}

nav{display:flex;gap:16px;flex-wrap:wrap}
nav a{padding:10px 12px;border-radius:10px}
nav a.cta{background:var(--green);color:#fff}
nav a.donate{background:var(--burgundy);color:#fff}

.hero{position:relative;padding:88px 0 64px;background:linear-gradient(180deg,#f6faf7,transparent)}
.hero h1{font-size:44px;line-height:1.1;margin:0 0 10px}
.hero p{max-width:800px;font-size:18px;color:var(--muted)}
.hero .cta{margin-top:18px;display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 16px;border-radius:12px;border:0;cursor:pointer;font-weight:600;background:var(--green);color:#fff}
.btn.secondary{background:var(--yellow);color:#1a1a1a}
.btn.burgundy{background:var(--burgundy)}

.section{padding:36px 0}
.section h2{margin:0 0 8px}
.small{font-size:14px;color:var(--muted)}

.map{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.map-card, .counters{display:flex;flex-direction:column;gap:14px;height:var(--pairH);padding-top:var(--kpiOffsetTop)}
.map-card{display:flex;flex-direction:column}
.map-card .map{flex:1;min-height:260px;height:auto}

.counters{display:flex;flex-direction:column;gap:14px;height:var(--pairH);padding-top:var(--kpiOffsetTop)}
.counter{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;text-align:center;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}
.counter .num{font-size:42px;font-weight:800}
.counter .label{color:var(--muted)}
.counters .counter{flex:1}

.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.feature{padding:16px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow)}

.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gallery.home-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:640px){.gallery.home-4{grid-template-columns:repeat(2,1fr)}}
.gallery.home-4 a{display:block}
.gallery.home-4 a img{width:100%;height:170px;object-fit:cover;border-radius:12px;border:1px solid var(--border)}

.footer{border-top:1px solid var(--border);padding:30px 0;margin-top:40px;color:var(--muted)}
.badges{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

.tagline{margin-top:10px;font-weight:600}
.hand-underline{position:relative;display:inline-block;padding-right:6px}
.hand-underline .scribble{position:absolute;left:-6px;right:0;bottom:-12px}
.hand-underline .scribble path{animation:drawline 900ms ease-out 200ms forwards}
@keyframes drawline{to{stroke-dashoffset:0}}

.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:12px;top:12px;width:auto;height:auto;background:#000;color:#fff;padding:8px 10px;border-radius:8px;z-index:999}

.kpi-value{font-size:48px;line-height:1.1;font-weight:700}


/* v13: keep KPI column exactly equal to the map height */
.counters{display:flex;flex-direction:column;gap:14px;height:var(--pairH);padding-top:var(--kpiOffsetTop)}
.counters .counter { flex:1 1 0; display:flex; flex-direction:column; justify-content:center; }
.map-card { display:block; }



/* v14: align the two columns at the top, and make KPI column match map height exactly */
.container.grid.grid-2.pair-equal { align-items: start; }
.counters{display:flex;flex-direction:column;gap:14px;height:var(--pairH);padding-top:var(--kpiOffsetTop)}
.counters .counter { flex:1 1 0; display:flex; flex-direction:column; justify-content:center; }



/* v15: lock KPI column to the map height (map unchanged) */
.container.grid.grid-2.pair-equal { align-items: start; --kpiHeight: 320px; }
.map-card .map { height: var(--kpiHeight); }
.counters{display:flex;flex-direction:column;gap:14px;height:var(--pairH);padding-top:var(--kpiOffsetTop)}
.counters .counter { flex:1 1 0; min-height:0; display:flex; flex-direction:column; justify-content:center; }

@media (max-width: 900px){
  .container.grid.grid-2.pair-equal { --kpiHeight: 280px; }
}
@media (max-width: 640px){
  .container.grid.grid-2.pair-equal { --kpiHeight: auto; }
  .counters{display:flex;flex-direction:column;gap:14px;height:var(--pairH);padding-top:var(--kpiOffsetTop)}
  .map-card .map { height:260px; } /* mobile map height */
}



/* v16: align KPI stack top with map image while keeping bottoms flush */
.container.grid.grid-2.pair-equal { --kpiOffsetTop: 22px; } /* nudge amount; adjust if needed */
.counters{display:flex;flex-direction:column;gap:14px;height:var(--pairH);padding-top:var(--kpiOffsetTop)}
@media (max-width: 640px){
  .container.grid.grid-2.pair-equal { --kpiOffsetTop: 0px; } /* on mobile, stack naturally */
}


#map{height:100%}

.hero .small{font-size:clamp(22px,3.2vw,34px);letter-spacing:.08em;text-transform:uppercase;color:#4b4b4b;font-weight:700}

.site-header .hashtag{font-weight:700;margin-left:12px;white-space:nowrap}
@media (max-width:720px){.site-header .hashtag{display:none}}
