/* =====================================================================
   NGO CMS · editorial design layer (release 7)
   Loaded after site.css. It re-skins the shared tokens and replaces the
   visual language: ivory paper, midnight indigo, one gold accent for giving,
   Newsreader serif for headlines, Public Sans for reading, hairline rules,
   square corners, asymmetric layouts and one calm motion idea (a slow reveal).
   Brand colours still come from Admin → Settings & branding.
   ===================================================================== */

@font-face{font-family:'Newsreader';font-style:italic;font-weight:200 800;font-display:swap;src:url(../fonts/newsreader-latin-opsz-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:200 800;font-display:swap;src:url(../fonts/newsreader-latin-ext-opsz-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- tokens ---------- */
:root{
  --bg:#f7f3ea; --surface:#efe9dc; --tint:#ebe4d5; --card:#fbf9f3;
  --ink:#16172a; --muted:#595a6a; --line:#dcd4c3; --line-strong:#bfb6a1;
  --night:#0c0d33;--night:color-mix(in srgb,var(--deep) 72%,#04051a);
  --on-night:#f7f3ea; --on-night-muted:rgba(247,243,234,.72); --rule-night:rgba(247,243,234,.2);
  --link:var(--brand);
  --r-sm:2px; --r:3px; --r-lg:4px; --r-xl:6px;
  --shadow-sm:none; --shadow:0 24px 50px -30px rgba(22,23,42,.35);
  --header-h:76px;
  --serif:var(--font-display),'Newsreader',Georgia,'Times New Roman',serif;
  --gutter:clamp(20px,4vw,48px);
  --col:1280px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f1020; --surface:#161729; --tint:#1a1c33; --card:#14152a; --ink:#ece8de; --muted:#a9a8b8; --line:#2a2c45; --line-strong:#3a3d5e; --link:#c9ccff; --shadow:0 24px 50px -30px rgba(0,0,0,.8); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0f1020; --surface:#161729; --tint:#1a1c33; --card:#14152a; --ink:#ece8de; --muted:#a9a8b8; --line:#2a2c45; --line-strong:#3a3d5e; --link:#c9ccff; --shadow:0 24px 50px -30px rgba(0,0,0,.8); color-scheme:dark}

/* ---------- type ---------- */
body{font-size:17px;line-height:1.7;letter-spacing:0;background:var(--bg)}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.018em;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.6vw,5rem);line-height:1.02}
h2{font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.08}
h3{font-size:1.35rem;line-height:1.25;font-weight:500}
h4{font-family:var(--font);font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
em{font-style:italic}
.wrap{max-width:var(--col);padding-inline:var(--gutter)}
.lead{font-size:1.15rem;line-height:1.65;max-width:58ch}
.eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--font);font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--link);line-height:1.4}
.eyebrow::before{content:"";width:28px;height:1px;border-radius:0;background:currentColor;flex:none}
::selection{background:color-mix(in srgb,var(--gold) 55%,transparent)}
.num{font-variant-numeric:lining-nums tabular-nums}

/* ---------- buttons: rectangular, confident, one gold accent for giving ---------- */
.btn{white-space:nowrap;border-radius:2px;padding:15px 26px;font-size:.94rem;font-weight:650;letter-spacing:.01em;border-width:1px;box-shadow:none}
.btn:hover{transform:none;box-shadow:none}
.btn.sm{padding:10px 16px;font-size:.84rem}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.give,.donate-btn{background:var(--gold);border-color:var(--gold);color:#17130a}
.btn.give:hover,.donate-btn:hover{background:color-mix(in srgb,var(--gold) 82%,#fff);border-color:color-mix(in srgb,var(--gold) 82%,#fff);box-shadow:none}
.btn.light{background:var(--on-night);border-color:var(--on-night);color:var(--night)}
.btn.outline-light,.btn.ghost-light{background:transparent;border-color:rgba(247,243,234,.6);color:#fff}
.btn.outline-light:hover,.btn.ghost-light:hover{background:#fff;color:var(--night);border-color:#fff}
.btn[href]:not(.sm):not(.big):not(.ghost)::after,.btn.arrow::after{content:"→";font-weight:500;transition:transform .3s var(--ease)}
.btn[href]:hover::after{transform:translateX(4px)}
.btn.big{padding:20px 26px}
.link-arrow,.more-link{display:inline-flex;align-items:center;gap:10px;font-weight:650;font-size:.95rem;color:var(--ink);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;width:fit-content}
.link-arrow::after{content:"→";transition:transform .3s var(--ease)}
.link-arrow:hover{color:var(--link)}
.link-arrow:hover::after{transform:translateX(4px)}

/* ---------- header ---------- */
header.top{background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--line);box-shadow:none}
header.top.scrolled{box-shadow:none;border-color:var(--line)}
.nav{max-width:var(--col);gap:12px}
.logo{font-family:var(--serif);font-weight:600;font-size:1.28rem;letter-spacing:-.01em}
.logo img{height:46px;width:46px;box-shadow:0 0 0 1px var(--line);background:#fff}
.logo i{border-radius:2px}
.menu a.t,.menu button.t{border-radius:0;font-size:.92rem;font-weight:550;padding:10px 12px;position:relative}
.menu a.t::after,.menu button.t::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.menu a.t:hover,.menu button.t:hover{background:none;color:inherit}
.menu a.t:hover::after,.menu button.t:hover::after,.menu a.on::after{transform:scaleX(1)}
.menu a.on{background:none;color:inherit}
.drop{border-radius:2px;border-color:var(--line);box-shadow:var(--shadow);padding:6px;background:var(--bg)}
.drop a{border-radius:0;padding:11px 14px}
.drop a:hover{background:var(--surface);color:var(--ink)}
.icon-btn:hover{background:rgba(127,127,127,.14)}
.tools .donate-btn{margin-left:10px;padding:11px 20px;font-size:.86rem;letter-spacing:.02em}
/* header floats over the hero until the page is scrolled */
body.has-hero header.top{position:fixed;left:0;right:0;top:0;background:transparent;border-color:transparent;color:#fff;transition:background .4s,color .4s,border-color .4s;-webkit-backdrop-filter:none;backdrop-filter:none}
body.has-hero header.top .logo span{color:#fff}
body.has-hero header.top.scrolled,body.has-hero header.top.menu-open{background:color-mix(in srgb,var(--bg) 96%,transparent);color:var(--ink);border-color:var(--line);-webkit-backdrop-filter:saturate(150%) blur(14px);backdrop-filter:saturate(150%) blur(14px)}
body.has-hero header.top.scrolled .logo span,body.has-hero header.top.menu-open .logo span{color:var(--ink)}
body.has-hero header.top .menu a.t:hover{color:#fff}
body.has-hero header.top.scrolled .menu a.t:hover{color:var(--ink)}
body.has-hero header.top .search{color:var(--ink)}
@media (max-width:1120px){
  header.top{background:var(--bg)}
  body.has-hero header.top:not(.scrolled){background:transparent}
  body.has-hero header.top .menu{color:var(--ink)}
  .menu{border-left:1px solid var(--line)}
  .menu a.t::after,.menu button.t::after{display:none}
  .menu>li.m-head{font-family:var(--serif);font-weight:500}
}
.search input,.pagehead input[type=search]{border-radius:2px}

/* ---------- section rhythm + headings (label in the margin, headline beside it) ---------- */
section.s{padding-block:clamp(64px,9vw,128px)}
.content .blk>section.s{padding-block:clamp(60px,8.5vw,120px)}
section.s.alt,.alt{background:var(--surface)}
.sec-head{display:grid;grid-template-columns:minmax(140px,3fr) minmax(0,9fr);column-gap:var(--gutter);row-gap:16px;max-width:none;margin-bottom:clamp(36px,5vw,64px);align-items:start}
.sec-head>.eyebrow{grid-column:1;grid-row:1/span 3;padding-top:.7em}
.sec-head>:not(.eyebrow){grid-column:2;max-width:22ch}
.sec-head>h2{max-width:20ch}
.sec-head>.lead,.sec-head>p{max-width:58ch}
@media (max-width:760px){.sec-head{grid-template-columns:1fr}.sec-head>.eyebrow{grid-row:auto;padding-top:0}.sec-head>:not(.eyebrow){grid-column:1}}
.content .blk[data-type="heading"]>section.s{padding-bottom:0}
.content .blk[data-type="heading"]+section.s,.content .blk[data-type="heading"]+.blk>section.s{padding-top:clamp(36px,5vw,64px)}
.content .blk[data-type="heading"]:has(>section.s.alt)+section.s{background:var(--surface)}
.card{border-radius:2px;background:var(--card)}

/* ---------- inner page header: serif title, intro set against it ---------- */
.pagehead{background:var(--bg);color:var(--ink);padding-block:calc(var(--header-h) * .5 + clamp(48px,7vw,96px)) clamp(40px,5vw,72px);border-bottom:1px solid var(--line);overflow:visible}
.pagehead::before,.pagehead::after{display:none}
.pagehead .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--gutter);row-gap:18px;align-items:end}
.pagehead .crumb,.pagehead .meta-row{grid-column:1/-1}
.pagehead h1{max-width:16ch;font-size:clamp(2.6rem,5.4vw,4.8rem)}
.pagehead .lead{color:var(--muted);align-self:end;padding-bottom:.5em;font-size:1.12rem}
.pagehead form{grid-column:1/-1}
.crumb{font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);gap:8px}
.crumb a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-strong)}
.crumb a:hover{border-color:var(--ink)}
.meta-row{color:var(--muted);font-size:.9rem}
.meta-row .badge{color:var(--muted);border-color:var(--line-strong)}
.meta-row .badge.live{color:#16753a;border-color:rgba(22,117,58,.35)}
@media (max-width:860px){.pagehead .wrap{grid-template-columns:1fr}.pagehead .lead{padding-bottom:0}}
.detail-head h1{max-width:22ch;font-size:clamp(2.4rem,4.6vw,4rem)}
.detail-head .lead{font-size:1.2rem}

/* ---------- hero: dark text panel, documentary photograph dissolving into it ---------- */
.ed-hero{position:relative;isolation:isolate;display:grid;align-items:end;min-height:min(100svh,940px);background:var(--night);color:#fff;overflow:hidden}
.ed-hero-media{position:absolute;top:0;right:0;bottom:0;width:60%;margin:0;z-index:-1;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.ed-hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform-origin:60% 40%;animation:hero-settle 16s var(--ease) both}
.ed-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;z-index:-1;pointer-events:none;background:linear-gradient(0deg,var(--night),transparent)}
@keyframes hero-settle{from{transform:scale(1.06)}to{transform:scale(1)}}
.ed-hero-in{display:grid;grid-template-columns:minmax(0,1fr);align-items:end;padding-top:calc(var(--header-h) + 64px);padding-bottom:clamp(32px,4vw,56px);row-gap:48px}
.ed-hero-copy{display:grid;gap:26px;justify-items:start;max-width:min(52rem,64%)}
.ed-hero .eyebrow{color:var(--on-night-muted)}
.ed-hero .eyebrow::before{background:var(--gold);width:40px;height:2px}
.ed-hero h1{font-size:clamp(2.4rem,3.9vw,4rem);line-height:1.02;letter-spacing:-.028em;color:#fff;font-weight:400;max-width:none}
.ed-hero h1 span{display:block}
.ed-hero h1 em{font-style:italic;color:#ffd877;font-weight:400}
.ed-hero .lead{color:var(--on-night-muted);font-size:clamp(1.02rem,1.25vw,1.2rem);max-width:44ch}
.ed-hero .cta-row{margin-top:6px;gap:12px}
.ed-hero .cta-row .btn{flex:0 0 auto;width:auto}
.ed-hero-facts{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--gutter);border-top:1px solid var(--rule-night);padding-top:20px}
.ed-hero-facts>div{display:grid;gap:4px;align-content:start}
.ed-hero-facts dt{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--on-night-muted)}
.ed-hero-facts dd{margin:0;font-family:var(--serif);font-size:1.18rem;color:#fff;line-height:1.3}
.ed-hero-cap{position:absolute;right:var(--gutter);top:calc(var(--header-h) + 22px);margin:0;max-width:24ch;text-align:right;font-size:.72rem;letter-spacing:.06em;color:rgba(255,255,255,.78);line-height:1.5;text-shadow:0 1px 8px rgba(0,0,0,.6)}
@media (max-width:1000px){
  .ed-hero{min-height:0;align-items:start}
  .ed-hero-media{position:relative;width:100%;height:clamp(300px,52svh,520px);-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
  .ed-hero-media img{object-position:50% 25%}
  .ed-hero{grid-template-rows:auto auto}
  .ed-hero-in{padding-top:0;margin-top:-64px;position:relative}
  .ed-hero-copy{max-width:none}
  .ed-hero-cap{display:none}
  .ed-hero-facts{grid-template-columns:1fr 1fr;gap:18px}
  .ed-hero-facts>div:last-child{grid-column:1/-1}
}
@media (max-width:560px){.ed-hero h1{font-size:2.3rem}.ed-hero .cta-row{flex-direction:column;align-items:stretch;width:100%}.ed-hero .cta-row .btn{width:100%;flex:none}.wa{width:48px;height:48px;right:14px}}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- statement: who we are, set large ---------- */
.ed-statement{display:grid;grid-template-columns:minmax(140px,3fr) minmax(0,9fr);column-gap:var(--gutter);row-gap:36px;align-items:start}
.ed-statement>aside{display:grid;gap:22px;align-content:start}
.ed-statement .lead-serif{font-family:var(--serif);font-size:clamp(1.65rem,3vw,2.55rem);line-height:1.22;letter-spacing:-.015em;color:var(--ink);max-width:30ch;text-wrap:pretty}
.ed-statement .lead-serif em{color:var(--link)}
.ed-statement .body{display:grid;gap:22px;max-width:60ch;margin-top:30px;color:var(--ink)}
.ed-statement .body p{color:var(--muted)}
.ed-facts{margin:0;display:grid;border-top:1px solid var(--ink)}
.ed-facts>div{display:grid;gap:2px;padding:12px 0;border-bottom:1px solid var(--line)}
.ed-facts dt{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ed-facts dd{margin:0;font-weight:600;font-size:.97rem;line-height:1.4}
@media (max-width:900px){.ed-statement{grid-template-columns:1fr}.ed-facts{grid-template-columns:1fr 1fr;column-gap:20px}}

/* ---------- need: why we exist (portrait photograph beside a ruled index) ---------- */
.ed-need{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(32px,6vw,96px);row-gap:40px;align-items:start}
.ed-need figure{margin:0;position:sticky;top:calc(var(--header-h) + 24px)}
.ed-need figure img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.ed-need figcaption,.ed-cap{margin-top:12px;font-size:.8rem;color:var(--muted);line-height:1.5;padding-left:14px;border-left:2px solid var(--gold)}
.ed-need .sec-head{display:grid;grid-template-columns:1fr;margin-bottom:28px}
.ed-need .sec-head>*{grid-column:1!important;grid-row:auto!important;max-width:none}
.ed-need .sec-head>.eyebrow{padding-top:0}
.ed-need .sec-head h2{max-width:16ch}
.ed-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink);counter-reset:n}
.ed-list li{counter-increment:n;display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 12px;padding:22px 0;border-bottom:1px solid var(--line)}
.ed-list li::before{content:"0" counter(n);font-family:var(--serif);font-size:1.15rem;color:var(--link);font-variant-numeric:lining-nums;grid-row:1/span 2;padding-top:.15em}
.ed-list h3{font-size:1.4rem;font-weight:500}
.ed-list p{color:var(--muted);max-width:52ch}
@media (max-width:900px){.ed-need{grid-template-columns:1fr}.ed-need figure{position:static;max-width:520px}}

/* ---------- programmes: one flagship feature and an index of the rest ---------- */
.prog-flag{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(28px,5vw,72px);align-items:end;margin-bottom:clamp(48px,6vw,88px)}
.prog-flag figure{margin:0;overflow:hidden;background:var(--surface)}
.prog-flag img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.prog-flag:hover img{transform:scale(1.03)}
.prog-flag .pf-body{display:grid;gap:18px;align-content:end;padding-bottom:6px}
.prog-flag h3{font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.04;letter-spacing:-.02em;font-weight:400}
.prog-flag h3 a{text-decoration:none;color:var(--ink)}
.prog-flag h3 a:hover{color:var(--link)}
.prog-flag p{color:var(--muted);font-size:1.05rem;max-width:44ch}
.pf-facts{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px 22px;border-top:1px solid var(--ink);padding-top:14px}
.pf-facts dt{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pf-facts dd{margin:2px 0 0;font-weight:600;font-size:.95rem;line-height:1.35}
.kicker{font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--link);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.kicker .dot{width:8px;height:8px}
.prog-index{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.prog-index li{position:relative;display:grid;grid-template-columns:48px 112px minmax(0,1.1fr) minmax(0,1.5fr) minmax(90px,auto) 28px;gap:0 clamp(14px,2.2vw,32px);align-items:center;padding:22px 0;border-bottom:1px solid var(--line);transition:background .35s,padding .35s var(--ease)}
.prog-index li:hover{background:var(--surface);padding-inline:16px}
.prog-index .pi-n{font-family:var(--serif);font-size:1.1rem;color:var(--muted);font-variant-numeric:lining-nums}
.prog-index .pi-img{width:112px;aspect-ratio:4/3;object-fit:cover;background:var(--surface);display:block;filter:saturate(.9)}
.prog-index .pi-img.none{display:grid;place-items:center;background:var(--night);color:#fff;font-family:var(--serif);font-size:1.4rem}
.prog-index h3{font-size:1.45rem;line-height:1.15;font-weight:500}
.prog-index h3 a{text-decoration:none;color:var(--ink)}
.prog-index h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.prog-index .pi-cat{display:block;margin-top:4px;font-family:var(--font);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.prog-index p{color:var(--muted);font-size:.95rem;line-height:1.55}
.prog-index .pi-st{font-size:.8rem;font-weight:650;color:var(--muted);text-align:right}
.prog-index .pi-st.live{color:#16753a}
.prog-index .pi-go{font-size:1.2rem;color:var(--ink);transition:transform .3s var(--ease)}
.prog-index li:hover .pi-go{transform:translateX(6px)}
@media (max-width:1000px){
  .prog-flag{grid-template-columns:1fr;row-gap:24px}
  .prog-index li{grid-template-columns:40px 96px minmax(0,1fr) 24px;row-gap:6px}
  .prog-index li p,.prog-index li .pi-st{display:none}
  .prog-index .pi-img{width:96px}
}
@media (max-width:520px){.prog-index li{grid-template-columns:96px minmax(0,1fr) 20px}.prog-index .pi-n{display:none}}

/* ---------- ledger: figures with their context ---------- */
.content [data-type="stats"]>section.s{background:var(--night);color:var(--on-night)}
.content [data-type="stats"]>section.s::before{display:none}
.content [data-type="stats"] .sec-head h2,.content [data-type="stats"] .eyebrow{color:#fff}
.content [data-type="stats"] .eyebrow{color:var(--on-night-muted)}
.content [data-type="stats"] .sec-head .lead{color:var(--on-night-muted)}
.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gutter)}
.stat{padding:30px 0 40px;border-left:0;border-top:1px solid var(--rule-night);display:grid;gap:14px;align-content:start}
.stat:first-child{padding-left:0}
.stat b{font-family:var(--serif);font-weight:400;font-size:clamp(3.4rem,6.4vw,5.6rem);line-height:.95;letter-spacing:-.035em;color:#fff;font-variant-numeric:lining-nums tabular-nums}
.stat span{margin:0;color:var(--on-night-muted);font-size:.98rem;line-height:1.5;max-width:30ch}
.ledger-note{margin-top:28px;max-width:70ch;font-size:.82rem;line-height:1.6;color:var(--on-night-muted);border-left:2px solid var(--gold);padding-left:14px}
main>section.s>.wrap>.stats .stat b{color:var(--link)}
main>section.s>.wrap>.stats .stat{border-color:var(--line)}
main>section.s>.wrap>.stats .stat span{color:var(--muted)}
@media (max-width:760px){.stats{grid-template-columns:1fr}.stat{padding:24px 0}}

/* ---------- field mosaic ---------- */
.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(24px,3vw,44px) clamp(14px,2vw,28px);align-items:start}
.mosaic figure{margin:0!important;width:100%!important;max-width:none}
.mosaic img{width:100%;display:block;object-fit:cover;border-radius:0!important;transition:transform 1s var(--ease)}
.mosaic figure:hover img{transform:scale(1.025)}
.mosaic .fw{overflow:hidden}
.mosaic figcaption{margin-top:10px;font-size:.8rem;color:var(--muted);line-height:1.5;padding-left:14px;border-left:2px solid var(--gold)}
.mosaic figure:nth-child(1){grid-column:1/5}.mosaic figure:nth-child(1) img{aspect-ratio:4/5.2}
.mosaic figure:nth-child(2){grid-column:5/13;margin-top:clamp(0px,6vw,88px)!important}.mosaic figure:nth-child(2) img{aspect-ratio:16/9}
.mosaic figure:nth-child(3){grid-column:1/6}.mosaic figure:nth-child(3) img{aspect-ratio:3/2}
.mosaic figure:nth-child(4){grid-column:6/10}.mosaic figure:nth-child(4) img{aspect-ratio:1/1}
.mosaic figure:nth-child(5){grid-column:10/13;margin-top:clamp(0px,5vw,72px)!important}.mosaic figure:nth-child(5) img{aspect-ratio:3/4}
@media (max-width:760px){
  .mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mosaic figure:nth-child(n){grid-column:auto;margin-top:0!important}
  .mosaic figure:nth-child(2){grid-column:1/-1}.mosaic figure:nth-child(3){grid-column:1/-1}
  .mosaic figure:nth-child(1) img,.mosaic figure:nth-child(4) img,.mosaic figure:nth-child(5) img{aspect-ratio:4/5}
}

/* ---------- image + text, founder ---------- */
.split2{gap:clamp(32px,6vw,96px);align-items:center}
.split2 .fig::before{display:none}
.split2 .fig img{aspect-ratio:4/5;border-radius:0;object-position:center 20%}
.split2 .rt{gap:20px}
.split2 .rt h2{margin-top:0}
.fig img,.fig video{border-radius:0}
.fig figcaption{font-size:.8rem;padding-left:14px;border-left:2px solid var(--gold)}

/* ---------- steps: a ruled four-part method ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0 clamp(20px,3vw,40px);border-top:1px solid var(--ink)}
.step{background:none;border:0;border-radius:0;padding:26px 0 8px;gap:12px;transition:none}
.step:hover{transform:none;box-shadow:none}
.step::before{font-family:var(--serif);font-weight:400;font-size:3rem;letter-spacing:-.03em;color:var(--link);-webkit-text-stroke:0;margin-bottom:10px;font-variant-numeric:lining-nums}
.step:hover::before{color:var(--link)}
.step h3{font-size:1.5rem}
.step p{max-width:30ch}

/* ---------- partners ---------- */
.logos>*{border-radius:0;border:0;border-top:1px solid var(--line);background:none;min-height:120px}
.logos>*:hover{box-shadow:none;transform:none;background:var(--surface)}
.logos img{filter:grayscale(1);opacity:.75}
.marquee{gap:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{gap:0}
.marquee-track>*{width:230px;border-top:0;border-left:1px solid var(--line);min-height:110px}
.content .blk-dyn+.blk[data-type="heading"]>section.s{padding-top:0}

/* ---------- accountability ---------- */
.ed-trust{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(32px,6vw,96px);row-gap:36px;align-items:start}
.ed-trust .t-copy{display:grid;gap:22px;align-content:start}
.ed-trust h2{max-width:14ch}
.ed-trust .t-copy p{color:var(--muted);max-width:46ch}
.ed-register{margin:0;display:grid;border-top:1px solid var(--ink)}
.ed-register>div{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}
.ed-register dt{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ed-register dd{margin:0;font-weight:600;line-height:1.45}
.ed-register dd small{display:block;font-weight:400;color:var(--muted);font-size:.86rem}
@media (max-width:900px){.ed-trust{grid-template-columns:1fr}}
.certs{gap:clamp(16px,2vw,24px)}
.cert{border-radius:0;border:0;border-top:1px solid var(--ink);background:none;padding:14px 0 0;transition:none}
.cert:hover{transform:none;box-shadow:none}
.cert .cimg{border-radius:0;background:var(--surface);padding:10px}
.cert b{font-family:var(--serif);font-weight:500;font-size:1.05rem;padding-inline:0;margin-top:10px}
.cert small{padding-inline:0}
.certs.strip{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr))}
.certs.strip .cert .cimg{aspect-ratio:4/5}

/* ---------- news: a lead story and a ruled list ---------- */
.news-ed{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(28px,5vw,72px);row-gap:40px;align-items:start}
.ne-lead{display:grid;gap:16px;position:relative}
.ne-lead figure{margin:0;overflow:hidden;background:var(--surface)}
.ne-lead img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform 1.2s var(--ease)}
.ne-lead:hover img{transform:scale(1.03)}
.ne-lead h3{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.1;font-weight:400;letter-spacing:-.018em}
.ne-lead h3 a,.ne-list h3 a{text-decoration:none;color:var(--ink)}
.ne-lead h3 a::after,.ne-list li>a.cover-link::after{content:"";position:absolute;inset:0}
.ne-lead p{color:var(--muted);max-width:52ch}
.ne-date{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--link)}
.ne-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.ne-list li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:6px 20px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}
.ne-list .ne-date{grid-column:1}
.ne-list h3{grid-column:1;font-size:1.3rem;line-height:1.2;font-weight:500}
.ne-list h3 a::after{content:"";position:absolute;inset:0}
.ne-list li img{grid-column:2;grid-row:1/span 3;width:112px;aspect-ratio:1;object-fit:cover}
.ne-list li:hover h3 a{color:var(--link)}
.ne-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(36px,4vw,56px) clamp(20px,2.4vw,32px)}
.ne-grid .ne-lead h3{font-size:1.5rem}
.ne-grid .ne-lead img{aspect-ratio:3/2}
@media (max-width:900px){.news-ed{grid-template-columns:1fr}}

/* repository-style cards (related items, payments) become flat editorial cards */
.repo{border:0;border-radius:0;background:none;border-top:1px solid var(--ink);transition:none;grid-template-rows:auto 1fr}
.repo:hover{transform:none;box-shadow:none}
.repo-cover{aspect-ratio:3/2;margin-top:14px;border-radius:0}
.repo-cover.typeset{background:var(--night);background-image:none;padding:20px}
.repo-cover.typeset span{font-family:var(--serif);font-weight:400;font-size:1.6rem}
.repo-bd{padding:16px 0 0}
.repo h3{font-size:1.4rem;font-weight:500}
.repo-foot{border-top:1px solid var(--line)}
.badge{border-radius:0;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px}
.pill{border-radius:0}
.grid.feature-first>.repo:first-child{border-top:1px solid var(--ink)}

/* ---------- ways to act: three ruled rows ---------- */
.audience{display:grid;grid-template-columns:1fr!important;gap:0;border-top:1px solid var(--ink)}
.audience .card{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,4fr);grid-template-rows:auto auto;gap:18px clamp(20px,4vw,56px);align-items:start;padding:clamp(24px,3vw,40px) 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;transition:background .35s,padding .35s var(--ease)}
.audience .card:hover{box-shadow:none;transform:none;background:var(--surface);padding-inline:clamp(12px,2vw,28px)}
.audience .card .fig{order:3;margin:0;overflow:hidden}
.audience .card .fig img{aspect-ratio:3/2;border-radius:0}
.audience .card>.cbody{display:contents}
.audience .card h3{font-family:var(--serif);font-size:clamp(2rem,3.6vw,3.2rem);line-height:1;font-weight:400;letter-spacing:-.02em;grid-column:1;grid-row:1}
.audience .card .cbody p{grid-column:2;grid-row:1;max-width:38ch;align-self:end}
.audience .card .cbody .btn{grid-column:2;grid-row:2;justify-self:start;margin-top:0;align-self:start}
.audience .card .fig{grid-column:3;grid-row:1/span 2}
@media (max-width:860px){.audience .card{grid-template-columns:1fr;gap:16px}.audience .card h3,.audience .card .cbody p,.audience .card .cbody .btn,.audience .card .fig{grid-column:1;grid-row:auto}.audience .card .fig{order:-1}}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--ink);max-width:880px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.25;font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font);font-weight:300;font-size:1.8rem;line-height:1;color:var(--link);transition:transform .35s var(--ease);flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--link)}
.faq .rt{padding:0 0 28px;max-width:62ch}
.faq .rt p{color:var(--muted)}
.faq-split{display:grid;grid-template-columns:minmax(140px,3fr) minmax(0,9fr);column-gap:var(--gutter)}
@media (max-width:760px){.faq-split{grid-template-columns:1fr}}

/* ---------- closing call to action ---------- */
.content .blk[data-type="banner"]>section.s{background:var(--night);color:var(--on-night)}
.banner{background:none;border-radius:0;padding:0;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:36px var(--gutter);align-items:end;overflow:visible}
.banner::before,.banner::after{display:none}
.banner h2{color:#fff;font-size:clamp(2.4rem,5.4vw,4.8rem);line-height:1;letter-spacing:-.028em;max-width:15ch}
.banner h2 em{color:#ffd877}
.banner p{color:var(--on-night-muted);max-width:50ch;margin-top:22px;font-size:1.1rem}
.banner .banner-act{display:grid;gap:12px;justify-items:start}
.banner>.btn,.banner .btn{background:var(--gold);border-color:var(--gold);color:#17130a}
.banner .btn:hover{background:#fff;border-color:#fff}
.banner .btn.ghost-light{background:transparent;border-color:rgba(247,243,234,.6);color:#fff}
.banner .btn.ghost-light:hover{background:#fff;color:var(--night)}
@media (max-width:860px){.banner{grid-template-columns:1fr}}

/* ---------- rich text ---------- */
.rt{gap:20px}
.rt p{line-height:1.75}
.rt h2{font-size:clamp(1.8rem,3vw,2.5rem)}
.rt h3{font-size:1.5rem}
.rt a.btn{color:#fff}
.rt a.btn.give{color:#17130a}
.rt a.btn.ghost{color:var(--ink)}
.rt a.btn.ghost:hover{color:var(--bg)}
.rt a:not(.btn){color:var(--link);text-underline-offset:.2em}
.rt ul>li::before{border-radius:0;width:14px;height:1px;top:.85em;background:var(--ink)}
.rt ol>li::before{border-radius:0;background:none;color:var(--link);font-family:var(--serif);font-size:1.05rem;width:auto;height:auto;top:0}
.rt ul>li{padding-left:26px}
.rt blockquote{border-left:2px solid var(--gold);background:none;border-radius:0;font-family:var(--serif);font-size:1.5rem;line-height:1.35;font-weight:400;padding:4px 0 4px 24px}
.rt>dl.kv{background:none;border:0;border-top:1px solid var(--ink);border-radius:0;padding:8px 0 0}
dl.kv dt{padding:12px 0;border-bottom:1px solid var(--line);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
dl.kv dd{padding:12px 0;border-bottom:1px solid var(--line)}
dl.kv{gap:0 28px}
.article .cover{border-radius:0}
.detail .article .rt{font-size:1.06rem}
.detail .article .rt p:first-child::first-line{font-weight:600}
.gal>a,.gal>div,.gal img,.gal>a img{border-radius:0}

/* ---------- people ---------- */
.person{border:0;background:none;border-radius:0;padding:0 0 22px;border-bottom:1px solid var(--line);transition:none}
.person:hover{transform:none;box-shadow:none}
.person .avatar{border-radius:0;aspect-ratio:4/5;margin-bottom:14px;filter:grayscale(.15)}
.person b,.person span,.person p{padding-inline:0}
.person b{font-family:var(--serif);font-size:1.3rem;font-weight:500}
.person span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--link)}
.person .btn{margin:14px 0 0}
.feature-person{background:none;border-radius:0;padding:0;border-top:1px solid var(--ink);padding-top:clamp(28px,4vw,48px)}
.fp-photo img,.fp-photo .avatar{border-radius:0;aspect-ratio:4/5}
.fp-body h2{font-size:clamp(2.2rem,4vw,3.4rem)}
.avatar{border-radius:0}
.drawer{background:var(--bg);border-left:1px solid var(--line)}
.drawer-head .avatar{border-radius:0}
.drawer-head h3{font-family:var(--serif);font-weight:500}

/* ---------- events, documents, timeline ---------- */
.event{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:22px 0}
.event:last-child{border-bottom:1px solid var(--line)}
.event .d{background:none;border-radius:0;border-right:1px solid var(--line);padding:0 18px 0 0;text-align:left}
.event .d b{font-family:var(--serif);font-weight:400;font-size:2.8rem}
.event h3{font-size:1.4rem}
.empty{border-radius:0;background:var(--surface);border-left:2px solid var(--gold)}
.empty-ico{border-radius:0;background:var(--night)}
.doc{border-radius:0;border:0;border-top:1px solid var(--line);background:none;padding:20px 0}
.doc:last-child{border-bottom:1px solid var(--line)}
.doc b{font-family:var(--serif);font-weight:500;font-size:1.2rem}
.timeline::before{background:var(--line-strong)}
.tl-year span{font-family:var(--serif);font-weight:400}
.tl-dot{border-radius:0;transform:rotate(45deg);border-width:2px;width:12px;height:12px;margin-right:-6px}
.tl-card{border-radius:0;border:0;border-top:1px solid var(--line);background:none;padding:14px 0 14px 4px}
.tl-img{border-radius:0}
.facts-card{border-radius:0;background:var(--surface);border-top:2px solid var(--ink)}
.facts-card h3{font-family:var(--font);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.share-b{border-radius:0}
.tabs{border-radius:0;background:none;padding:0;gap:0;border-bottom:1px solid var(--line);display:flex}
.tabs button,.tabbtn{border-radius:0;padding:12px 18px;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button[aria-pressed="true"],.tabbtn.on{background:none;color:var(--ink);border-bottom-color:var(--ink)}
.gal{gap:10px}

/* ---------- forms, panels, donation (same behaviour, quieter skin) ---------- */
input,select,textarea{border-radius:2px;background:var(--card)}
.panel{border-radius:0;box-shadow:none;background:var(--card);border-color:var(--line)}
.amount-grid button,.method span,.fixed-amt,.co-sum,.cover,.gift-hint,.gift-sum{border-radius:2px}
.seg,.seg span{border-radius:2px}
.dsteps li{border-radius:0}
.story{border-radius:0}
.side-card{border-radius:0}
.amounts button{border-radius:2px}
.copy-mini{border-radius:2px}
.notice{background:var(--night)}

/* ---------- footer ---------- */
footer{position:relative;background:var(--night);color:var(--on-night);overflow:hidden;margin-top:0}
footer .wrap{position:relative}
.f-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px var(--gutter);align-items:end;padding-block:clamp(56px,7vw,104px) clamp(40px,5vw,64px);border-bottom:1px solid var(--rule-night)}
.f-top h2{font-size:clamp(2.2rem,4.6vw,4rem);line-height:1.02;letter-spacing:-.025em;color:#fff;max-width:16ch}
.f-top h2 em{color:#ffd877}
.f-news{display:grid;gap:14px}
.f-news p{color:var(--on-night-muted);font-size:.96rem;max-width:42ch}
.f-news form{grid-template-columns:1fr auto;display:grid;gap:0}
.f-news input[type=email]{border-radius:0;background:transparent;border:1px solid var(--rule-night);border-right:0;color:#fff;padding:15px 16px}
.f-news input::placeholder{color:rgba(247,243,234,.55)}
.f-news input:focus{box-shadow:none;border-color:var(--gold)}
.f-news .btn{background:var(--gold);border-color:var(--gold);color:#17130a;border-radius:0}
.fcols{grid-template-columns:1.4fr repeat(3,1fr);gap:40px;padding-block:clamp(40px,5vw,64px)}
.fcols h4{color:var(--on-night-muted);font-size:.7rem;letter-spacing:.16em;margin-bottom:18px}
.fcols ul{gap:11px}
.fcols ul a,.fcols address a{color:var(--on-night);text-decoration:none;border-bottom:1px solid transparent}
.fcols ul a:hover,.fcols address a:hover{border-color:var(--gold);color:#fff}
.fcols p{color:var(--on-night-muted)}
.fcols .logo{font-size:1.45rem;color:#fff;margin:0}
.fcols address{font-style:normal;display:grid;gap:10px;font-size:.95rem;line-height:1.55;color:var(--on-night-muted)}
.f-reg{display:inline-block;margin-top:18px;font-size:.78rem;letter-spacing:.04em;color:var(--on-night-muted);border-top:1px solid var(--rule-night);padding-top:14px}
.social a{border-radius:0;background:transparent;border:1px solid var(--rule-night)}
.social a:hover{background:var(--gold);border-color:var(--gold);color:#17130a}
.legalbar{border-top:1px solid var(--rule-night);color:var(--on-night-muted);font-size:.82rem}
.legalbar a{color:var(--on-night)}
.legalbar nav{display:flex;gap:20px;flex-wrap:wrap}
.legalbar nav a{text-decoration:none}
.legalbar nav a:hover{color:#fff;text-decoration:underline}
@media (max-width:900px){.f-top{grid-template-columns:1fr}.fcols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fcols{grid-template-columns:1fr}.f-news form{grid-template-columns:1fr}.f-news input[type=email]{border-right:1px solid var(--rule-night);border-bottom:0}}
.wa{border-radius:50%}
.mdonate{border-radius:0}

/* ---------- motion: one calm reveal, nothing else moves ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .ed-hero-media img{animation:none}
  *{scroll-behavior:auto!important}
  .marquee-track{animation:none!important}
}
body.calm .ed-hero-media img{animation:none}
body.calm .reveal{opacity:1;transform:none}
@media print{header.top,.wa,.mdonate,.menu-scrim{display:none!important}body.has-hero header.top{position:static}.reveal{opacity:1!important;transform:none!important}}

.content .blk[data-type="trust"]+.blk-dyn>section.s{padding-top:0}

/* tighter joins between stacked sections */
.content .blk-dyn>section.s{padding-bottom:clamp(40px,6vw,88px)}
.content .blk[data-type="trust"]:has(+.blk-dyn)>section.s{padding-bottom:clamp(32px,4vw,48px)}
.content .blk[data-type="heading"]:has(+.blk-dyn) + .blk-dyn>section.s,.content .blk-dyn+.blk[data-type="heading"]>section.s{padding-top:clamp(36px,5vw,72px)}
.content .blk[data-type="banner"]>section.s{border-bottom:1px solid var(--rule-night)}
.f-news .btn{align-self:stretch}

/* .give is also the donation-form layout class; keep the gold button a button */
.btn.give{display:inline-flex;grid-template-columns:none;gap:10px;align-items:center;justify-content:center;position:static;top:auto}
