/*
  Donor Impact page: fund allocation, the donation journey, and the
  modal that invites people onto this page from elsewhere on the site.
*/

/* ---------- Allocation ---------- */
.m-alloc{padding-block:var(--section-y);}

.m-alloc-bar{
  display:flex;height:18px;border-radius:999px;overflow:hidden;
  border:1px solid var(--line);background:var(--surface);
}
.m-alloc-bar span{display:block;height:100%;}
.m-alloc-bar .is-direct{background:var(--accent);}
.m-alloc-bar .is-admin{background:var(--accent-2);}
.m-alloc-bar .is-field{background:var(--accent-2-light);}

.m-alloc-legend{
  list-style:none;margin:var(--s-5) 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-7);
}
.m-alloc-legend li{display:flex;align-items:center;gap:var(--s-3);}
.m-alloc-swatch{
  width:12px;height:12px;border-radius:3px;flex:none;
  border:1px solid rgba(23,35,28,.12);
}
.m-alloc-swatch.is-direct{background:var(--accent);}
.m-alloc-swatch.is-admin{background:var(--accent-2);}
.m-alloc-swatch.is-field{background:var(--accent-2-light);}
.m-alloc-legend strong{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  font-size:var(--t-body);color:var(--ink);
}
.m-alloc-legend li > span:last-child{color:var(--ink-soft);font-size:var(--t-sm);}

.m-alloc-warn{
  margin:var(--s-5) 0 0;padding:var(--s-4) var(--s-5);
  background:#FDF3E3;border:1px solid var(--accent-2);
  border-radius:var(--radius-sm);color:var(--accent-2-deep);
  font-size:var(--t-sm);
}

.m-alloc-groups{
  display:grid;grid-template-columns:repeat(3, minmax(0,1fr));
  gap:var(--s-5);margin-top:var(--s-9);
}
.m-alloc-group{
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--card-radius);padding:var(--s-6);
  display:flex;flex-direction:column;gap:var(--s-3);
}
.m-alloc-group-pct{
  font-family:var(--font-display);font-size:var(--t-h2);font-weight:600;
  line-height:1;letter-spacing:-.04em;color:var(--accent);
  font-variant-numeric:tabular-nums;
}
.m-alloc-group h3{margin:0;font-size:var(--t-h4);}
.m-alloc-group ul{
  list-style:none;margin:var(--s-2) 0 0;padding:0;
  display:flex;flex-direction:column;gap:var(--s-2);
}
.m-alloc-group li{
  position:relative;padding-left:var(--s-5);
  font-size:var(--t-sm);color:var(--ink-soft);line-height:1.5;
}
.m-alloc-group li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:var(--s-3);height:1px;background:var(--accent-2);
}
@media (max-width:900px){ .m-alloc-groups{grid-template-columns:1fr;} }

/* ---------- Donation journey ---------- */
.m-journey{
  padding-block:var(--section-y);
  background:var(--accent-dark);color:var(--panel-dark-text);
}
.m-journey h2{color:var(--panel-dark-text);}
.m-journey .m-lead{color:var(--panel-dark-text-soft);}

.m-journey-chain{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(5, minmax(0,1fr));
  gap:var(--s-4);
}
.m-journey-step{
  position:relative;
  display:flex;flex-direction:column;gap:var(--s-2);
  padding:var(--s-5);
  border:1px solid rgba(236,239,230,.18);border-radius:var(--radius-md);
  background:rgba(236,239,230,.05);
}
/* Arrows are decorative and drawn between cells, so the list itself still
   reads as an ordered list rather than a row of glyphs. */
.m-journey-step:not(:last-child)::after{
  content:"";position:absolute;right:calc(var(--s-4) * -1);top:50%;
  width:var(--s-4);height:1px;background:rgba(236,239,230,.3);
}
.m-journey-step.is-result{
  background:var(--accent);border-color:var(--accent);
}
.m-journey-index{
  font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-2);
}
.m-journey-step.is-result .m-journey-index{color:rgba(255,255,255,.8);}
.m-journey-step strong{
  font-family:var(--font-display);font-size:var(--t-h4);font-weight:600;
  letter-spacing:-.015em;color:var(--panel-dark-text);line-height:1.2;
}
.m-journey-text{font-size:var(--t-sm);color:var(--panel-dark-text-soft);line-height:1.5;}
.m-journey-step.is-result strong,
.m-journey-step.is-result .m-journey-text{color:#fff;}

.m-journey-tracks{
  display:grid;grid-template-columns:repeat(2, minmax(0,1fr));
  gap:var(--s-5);margin-top:var(--s-8);
  padding-top:var(--s-7);border-top:1px solid rgba(236,239,230,.18);
}
.m-journey-track h3{
  margin:0 0 var(--s-3);font-size:var(--t-h4);color:var(--accent-2);
}
.m-journey-track p{margin:0;color:var(--panel-dark-text-soft);font-size:var(--t-sm);line-height:1.6;}

@media (max-width:1000px){
  .m-journey-chain{grid-template-columns:repeat(2, minmax(0,1fr));}
  .m-journey-step:not(:last-child)::after{display:none;}
}
@media (max-width:620px){
  .m-journey-chain{grid-template-columns:1fr;}
  .m-journey-tracks{grid-template-columns:1fr;}
}

/* ---------- Donor-impact invitation modal ---------- */
.m-modal{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:var(--gutter);
  opacity:0;transition:opacity var(--dur-mid) var(--ease-out);
}
.m-modal.is-open{opacity:1;}
.m-modal[hidden]{display:none;}

/* A solid scrim, not a frosted one — the no-glassmorphism constraint holds
   here too. */
.m-modal-backdrop{
  position:absolute;inset:0;background:rgba(15,35,27,.62);cursor:pointer;
}

.m-modal-panel{
  position:relative;z-index:1;
  width:100%;max-width:520px;
  background:var(--bg);
  border-radius:var(--radius-lg);
  padding:clamp(var(--s-7), 5vw, var(--s-9));
  box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;gap:var(--s-4);
  align-items:flex-start;
  transform:translateY(14px) scale(.98);
  transition:transform var(--dur-mid) var(--ease-out);
  max-height:calc(100dvh - var(--gutter) * 2);
  overflow-y:auto;
}
.m-modal.is-open .m-modal-panel{transform:translateY(0) scale(1);}

/* The Ghana tricolour as a quiet top rule — the same national cue the
   donate page uses, so the two read as one system. */
.m-modal-flag{
  position:absolute;top:0;left:0;right:0;height:5px;
  display:flex;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden;
}
.m-modal-flag i{flex:1;}
.m-modal-flag i:nth-child(1){background:var(--gh-red);}
.m-modal-flag i:nth-child(2){background:var(--gh-gold);}
.m-modal-flag i:nth-child(3){background:var(--gh-green);}

.m-modal-x{
  position:absolute;top:var(--s-4);right:var(--s-4);
  width:38px;height:38px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid var(--line);color:var(--ink-soft);
  cursor:pointer;padding:0;
  transition:background var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out);
}
.m-modal-x svg{width:15px;height:15px;}
.m-modal-x:hover{background:var(--ink-wash);color:var(--ink);}

.m-modal-panel h2{
  margin:0;font-size:clamp(1.35rem, 1.05rem + 1.1vw, 1.85rem);
  line-height:1.15;max-width:20ch;
}
.m-modal-panel > p{
  margin:0;color:var(--ink-soft);font-size:var(--t-sm);line-height:1.6;
}
.m-modal-actions{
  display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-3);
}
.m-modal-note{
  font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-faint);margin:0;
}

@media (max-width:520px){
  .m-modal-actions{width:100%;}
  .m-modal-actions .btn{flex:1 1 100%;}
}

@media (prefers-reduced-motion: reduce){
  .m-modal,
  .m-modal-panel{transition:none;}
  .m-modal-panel{transform:none;}
}

/* ---------- Laptop programme metrics ---------- */
.m-metrics{padding-block:var(--section-y);background:var(--surface-2);}
.m-metrics-grid{
  display:grid;grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  gap:var(--s-5);
}
.m-metric{
  display:flex;flex-direction:column;gap:var(--s-2);
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--card-radius);padding:var(--s-6);
}
.m-metric-kicker{
  font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-2-deep);
}
.m-metric .ti-num{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(2rem, 1.4rem + 2vw, 2.9rem);line-height:1;
  letter-spacing:-.04em;color:var(--accent);font-variant-numeric:tabular-nums;
}
.m-metric h3{margin:0;font-size:var(--t-h4);}
.m-metric p{margin:0;font-size:var(--t-sm);color:var(--ink-soft);line-height:1.55;}
.m-metrics-updated{
  margin:var(--s-6) 0 0;font-family:var(--font-mono);font-size:var(--t-mono);
  letter-spacing:.06em;color:var(--ink-faint);
}

/* ---------- Accepted devices ---------- */
.m-accept{padding-block:var(--section-y);}
.m-models{
  list-style:none;margin:0 0 var(--s-8);padding:0;
  display:flex;flex-wrap:wrap;gap:var(--s-3);
}
.m-models li{
  font-family:var(--font-mono);font-size:var(--t-sm);
  padding:var(--s-3) var(--s-5);
  border:1px solid var(--line);border-radius:999px;
  background:var(--surface);color:var(--ink);
}

.m-accept-cols{
  display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:var(--s-5);
}
.m-accept-col{
  border-radius:var(--card-radius);padding:var(--s-6);
  border:1px solid var(--line);background:var(--paper);
}
.m-accept-col.is-yes{border-color:var(--accent-line);background:var(--accent-tint);}
.m-accept-col.is-no{background:var(--surface-2);}
.m-accept-col h3{
  margin:0 0 var(--s-4);font-size:var(--t-h4);
  display:flex;align-items:center;gap:var(--s-3);
}
.m-accept-col.is-yes h3 span{color:var(--accent);}
.m-accept-col.is-no h3 span{color:#9B1C1C;font-size:1.3em;line-height:1;}
.m-accept-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-3);}
.m-accept-col li{
  position:relative;padding-left:var(--s-5);
  font-size:var(--t-sm);color:var(--ink-soft);line-height:1.6;
}
.m-accept-col li::before{
  content:"";position:absolute;left:0;top:.62em;width:var(--s-3);height:1px;
  background:var(--ink-faint);
}
.m-accept-note{
  margin:var(--s-6) 0 0;color:var(--ink-soft);font-size:var(--t-sm);
}
.m-accept-note a{color:var(--accent);font-weight:600;}

@media (max-width:820px){ .m-accept-cols{grid-template-columns:1fr;} }

/* ---------- Board of Trustees ---------- */
.m-trustees{padding-block:var(--section-y);}
.m-trustee-grid{
  display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:var(--s-5);
}
.m-trustee{
  display:flex;flex-direction:column;
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--card-radius);overflow:hidden;
  transition:border-color var(--dur-mid) var(--ease-out),
             box-shadow var(--dur-mid) var(--ease-out),
             transform var(--dur-mid) var(--ease-out);
}
.m-trustee:hover{border-color:var(--accent-line);box-shadow:var(--shadow-sm);transform:translateY(-4px);}
/* The chair and secretary carry a gold rule so the officers read first. */
.m-trustee.is-officer{border-top:3px solid var(--accent-2);}

.m-trustee-portrait{
  position:relative;aspect-ratio:4/3;overflow:hidden;
  background:var(--accent-tint);
  display:flex;align-items:center;justify-content:center;
}
.m-trustee-portrait img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 22%;
  transition:transform var(--dur-slow) var(--ease-out);
}
.m-trustee:hover .m-trustee-portrait img{transform:scale(1.04);}
/* Monogram fallback — a deliberate treatment, not an empty box. */
.m-trustee-monogram{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(2.2rem, 4vw, 3rem);letter-spacing:.02em;
  color:var(--accent);opacity:.55;
}

.m-trustee-body{
  display:flex;flex-direction:column;gap:var(--s-2);
  padding:var(--s-6);flex:1;
}
.m-trustee-role{
  font-family:var(--font-mono);font-size:var(--t-mono);font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2-deep);
}
.m-trustee h3{margin:0;font-size:var(--t-h4);}
.m-trustee p{margin:var(--s-1) 0 0;color:var(--ink-soft);font-size:var(--t-sm);line-height:1.6;}

@media (max-width:980px){ .m-trustee-grid{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media (max-width:600px){ .m-trustee-grid{grid-template-columns:1fr;} }

/* ---------- Committees ---------- */
.m-committees{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:var(--s-5);}
.m-committee{
  display:flex;flex-direction:column;gap:var(--s-3);
  padding-top:var(--s-5);border-top:2px solid var(--accent-2);
}
.m-committee h3{margin:0;font-size:var(--t-h4);}
.m-committee p{margin:0;color:var(--ink-soft);font-size:var(--t-sm);line-height:1.6;}
@media (max-width:820px){ .m-committees{grid-template-columns:1fr;gap:var(--s-6);} }

/* ---------- Commitment table ---------- */
.m-commitment{margin:0;border-top:1px solid rgba(236,239,230,.18);}
.m-commitment-row{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);
  gap:var(--s-5);padding:var(--s-5) 0;
  border-bottom:1px solid rgba(236,239,230,.18);
}
.m-commitment dt{
  font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-2);
}
.m-commitment dd{
  margin:0;font-family:var(--font-display);font-size:var(--t-h4);
  color:var(--panel-dark-text);letter-spacing:-.01em;
}
@media (max-width:640px){
  .m-commitment-row{grid-template-columns:1fr;gap:var(--s-2);}
}

/* ---------- Become a board member ---------- */
.m-board-join{
  display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:var(--s-7);
}
.m-board-join h3{
  margin:0 0 var(--s-5);font-size:var(--t-h4);
  padding-bottom:var(--s-4);border-bottom:1px solid var(--line);
}
.m-board-join ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-4);}
.m-board-join li{
  position:relative;padding-left:var(--s-6);
  color:var(--ink-soft);font-size:var(--t-sm);line-height:1.6;
}
.m-board-join li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:var(--s-4);height:2px;background:var(--accent-2);
}
.m-board-join strong{color:var(--ink);}
@media (max-width:820px){ .m-board-join{grid-template-columns:1fr;gap:var(--s-7);} }

/* ---------- Brief history timeline ---------- */
.m-history{padding-block:var(--section-y);}

.m-history-listen{
  display:inline-flex;align-items:center;gap:var(--s-4);
  text-decoration:none;color:var(--accent);font-weight:600;
  font-size:var(--t-sm);align-self:flex-start;
}
.m-history-play{
  width:44px;height:44px;border-radius:50%;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent);color:#fff;
  transition:transform var(--dur-fast) var(--ease-out);
}
.m-history-play svg{width:15px;height:15px;margin-left:2px;}
.m-history-listen:hover .m-history-play{transform:scale(1.08);}

/* The rail runs down the left; each chapter hangs a marker off it. */
.m-timeline{
  list-style:none;margin:0;padding:0 0 0 var(--s-8);
  position:relative;
  display:flex;flex-direction:column;gap:clamp(var(--s-7), 5vw, var(--s-9));
}
.m-timeline::before{
  content:"";position:absolute;left:0;top:var(--s-3);bottom:var(--s-3);
  width:1px;background:var(--line);
}

.m-chapter{position:relative;}
.m-chapter::before{
  content:"";position:absolute;
  left:calc(var(--s-8) * -1);top:.45em;
  width:11px;height:11px;border-radius:50%;
  background:var(--bg);border:2px solid var(--accent-2);
  transform:translateX(-5px);
}
.m-chapter-copy{display:flex;flex-direction:column;gap:var(--s-3);max-width:62ch;}
.m-chapter-kicker{
  font-family:var(--font-mono);font-size:var(--t-mono);font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2-deep);
}
.m-chapter h3{margin:0;font-size:var(--t-h3);}
.m-chapter p{margin:0;color:var(--ink-soft);line-height:1.7;}

/* Illustrated chapters become a two-column row; un-illustrated ones stay
   full-measure text. Both sit on the same rail, so a partly illustrated
   story still reads as one deliberate sequence. */
.m-chapter.has-image{
  display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);
  gap:clamp(var(--s-6), 4vw, var(--s-8));align-items:center;
}
.m-chapter.has-image.is-flipped .m-chapter-media{order:-1;}
.m-chapter-media{margin:0;}
.m-chapter-media .m-media{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);}

@media (max-width:820px){
  .m-timeline{padding-left:var(--s-6);}
  .m-chapter::before{left:calc(var(--s-6) * -1);}
  .m-chapter.has-image{grid-template-columns:1fr;gap:var(--s-5);}
  .m-chapter.has-image.is-flipped .m-chapter-media{order:0;}
}

/* ---------- Founders ---------- */
.m-founders{margin-top:clamp(var(--s-9), 7vw, var(--s-10));}
.m-founders-title{margin:0;font-size:var(--t-h3);max-width:26ch;}
.m-founder-grid{
  display:grid;grid-template-columns:repeat(2, minmax(0,1fr));
  gap:var(--s-6) var(--s-7);
}
.m-founder{
  display:grid;grid-template-columns:auto 1fr;gap:var(--s-5);
  align-items:start;padding-top:var(--s-5);border-top:1px solid var(--line);
}
.m-founder-monogram{
  width:64px;height:64px;border-radius:50%;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-tint);color:var(--accent);
  font-family:var(--font-display);font-weight:600;font-size:1.25rem;
}
.m-founder h4{margin:0;font-size:var(--t-h4);}
.m-founder-role{
  display:block;font-family:var(--font-mono);font-size:var(--t-mono);
  letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2-deep);
  margin:var(--s-1) 0 var(--s-3);
}
.m-founder p{margin:0;color:var(--ink-soft);font-size:var(--t-sm);line-height:1.6;}

@media (max-width:820px){ .m-founder-grid{grid-template-columns:1fr;} }

/* ---------- Fact grid (financial transparency) ---------- */
.m-factgrid{
  display:grid;grid-template-columns:repeat(4, minmax(0,1fr));
  gap:var(--s-6);margin:0;
  padding-top:var(--s-6);border-top:1px solid var(--line);
}
.m-factgrid dt{
  font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-2-deep);margin-bottom:var(--s-3);
}
.m-factgrid dd{
  margin:0;font-family:var(--font-display);font-size:var(--t-h4);
  color:var(--ink);line-height:1.3;letter-spacing:-.01em;
}
@media (max-width:900px){ .m-factgrid{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media (max-width:520px){ .m-factgrid{grid-template-columns:1fr;gap:var(--s-5);} }

/* ---------- Impact multiplier ---------- */
.m-multiplier{
  margin:0;font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.3rem, 1rem + 1.4vw, 2.1rem);line-height:1.35;
  color:var(--ink);text-wrap:pretty;
}
.m-multiplier-value{color:var(--accent);font-weight:600;}

/* ---------- Funding sources ---------- */
.m-sources{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-6);}
.m-source-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--s-5);margin-bottom:var(--s-3);
}
.m-source-head span{font-size:var(--t-body);color:var(--ink);}
.m-source-head strong{
  font-family:var(--font-display);font-size:var(--t-h4);color:var(--accent);
  font-variant-numeric:tabular-nums;
}
.m-source-bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;}
.m-source-bar i{
  display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
}

/* ---------- Pull quote ---------- */
.m-pullquote{margin:0;}
.m-pullquote p{
  margin:0 0 var(--s-6);font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.25rem, .95rem + 1.5vw, 2rem);line-height:1.38;
  color:var(--panel-dark-text);letter-spacing:-.015em;text-wrap:pretty;
}
.m-pullquote footer{
  display:flex;flex-direction:column;gap:2px;
  padding-top:var(--s-5);border-top:1px solid rgba(236,239,230,.2);
}
.m-pullquote strong{color:var(--panel-dark-text);font-size:var(--t-body);}
.m-pullquote span{
  font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent-2);
}

/* ---------- Documents ---------- */
.m-docs{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:var(--s-5);}
.m-doc-card{
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--card-radius);padding:var(--s-6);
}
.m-doc-card h3{margin:0 0 var(--s-5);font-size:var(--t-h4);
  padding-bottom:var(--s-4);border-bottom:1px solid var(--line);}
.m-doc-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-3);}
.m-doc-card li{
  display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);
  font-size:var(--t-sm);
}
.m-doc-card .num{font-family:var(--font-mono);color:var(--ink);}
.m-doc-card a{color:var(--accent);font-weight:600;text-decoration:none;
  border-bottom:1px solid var(--accent-line);}
.m-doc-card a:hover{border-color:var(--accent);}
.m-doc-card em{color:var(--ink-faint);font-style:normal;font-size:var(--t-mono);
  font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;}
@media (max-width:900px){ .m-docs{grid-template-columns:1fr;} }

/* ---------- Godparent outcomes ---------- */
.m-outcomes{
  display:grid;grid-template-columns:repeat(5, minmax(0,1fr));gap:var(--s-5);
}
.m-outcome{
  display:flex;flex-direction:column;gap:var(--s-3);
  padding-top:var(--s-5);border-top:2px solid var(--accent-2);
}
.m-outcome h3{margin:0;font-size:var(--t-h4);}
.m-outcome p{margin:0;font-size:var(--t-sm);color:var(--ink-soft);line-height:1.55;}
@media (max-width:1000px){ .m-outcomes{grid-template-columns:repeat(3, minmax(0,1fr));gap:var(--s-6) var(--s-5);} }
@media (max-width:620px){  .m-outcomes{grid-template-columns:1fr;gap:var(--s-5);} }

/* ---------- FAQ, restated on this theme's scale ---------- */
.theme-meridian .faq{max-width:none;margin-top:var(--s-7);}
.theme-meridian .faq-item{
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--card-radius);margin-bottom:var(--s-3);overflow:hidden;
}
.theme-meridian .faq-item.open{border-color:var(--accent-line);}
.theme-meridian .faq-q{
  width:100%;text-align:left;background:transparent;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);
  padding:var(--s-5) var(--s-6);
  font-family:var(--font-display);font-size:var(--t-h4);font-weight:600;
  color:var(--ink);letter-spacing:-.012em;
}
.theme-meridian .faq-q .plus{
  flex:none;font-family:var(--font-body);font-size:1.4rem;line-height:1;
  color:var(--accent);transition:transform var(--dur-mid) var(--ease-out);
}
.theme-meridian .faq-item.open .plus{transform:rotate(45deg);}
.theme-meridian .faq-a{
  max-height:0;overflow:hidden;padding:0 var(--s-6);
  transition:max-height var(--dur-mid) var(--ease-out), padding var(--dur-mid) var(--ease-out);
}
.theme-meridian .faq-item.open .faq-a{max-height:340px;padding-bottom:var(--s-6);}
.theme-meridian .faq-a p{margin:0;color:var(--ink-soft);line-height:1.7;}
.theme-meridian .faq-a a{color:var(--accent);font-weight:600;}
@media (prefers-reduced-motion: reduce){
  .theme-meridian .faq-a,.theme-meridian .faq-q .plus{transition:none;}
}

/* Stacked rosters (Executive Members shows three) need separating. */
.m-trustees.is-tint{background:var(--surface-2);}

/* ---------- News & media sections ---------- */
.m-media-section.is-tint{background:var(--surface-2);}
.m-news-dur{
  margin-left:var(--s-3);padding-left:var(--s-3);
  border-left:1px solid var(--line);color:var(--ink-faint);
}
/* Play badge on anything with a YouTube link. */
.m-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(15,35,27,.82);color:#fff;
  transition:transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
  z-index:2;
}
.m-play svg{width:18px;height:18px;margin-left:3px;}
.m-news-link:hover .m-play{transform:translate(-50%,-50%) scale(1.08);background:var(--accent);}

/* ---------- Podcast band ---------- */
.m-podcast{
  padding-block:var(--section-y);
  background:var(--accent-dark);color:var(--panel-dark-text);
}
.m-podcast-grid{
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(var(--s-7), 5vw, var(--s-10));align-items:center;
}
.m-podcast-copy h2{color:var(--panel-dark-text);margin:var(--s-4) 0 var(--s-5);max-width:16ch;}
.m-podcast-copy .m-lead{color:var(--panel-dark-text-soft);}
.m-podcast-copy em{color:var(--accent-2);font-style:italic;}
.m-podcast-links{
  list-style:none;margin:var(--s-6) 0 0;padding:0;
  display:flex;flex-direction:column;
  border-top:1px solid rgba(236,239,230,.18);
}
.m-podcast-links a{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);
  padding:var(--s-5) 0;border-bottom:1px solid rgba(236,239,230,.18);
  color:var(--panel-dark-text);text-decoration:none;
  font-family:var(--font-display);font-size:var(--t-h4);font-weight:600;
  letter-spacing:-.015em;
  transition:color var(--dur-fast) var(--ease-out), padding-left var(--dur-fast) var(--ease-out);
}
.m-podcast-links a:hover{color:var(--accent-2);padding-left:var(--s-3);}
.m-podcast-links a:hover .m-arrow{background:var(--accent-2);border-color:var(--accent-2);color:var(--accent-dark);}

/* A simple equaliser motif — CSS only, no image, and it stops entirely
   under reduced-motion rather than looping forever. */
.m-podcast-art{display:flex;align-items:center;justify-content:center;min-height:200px;}
.m-podcast-wave{display:flex;align-items:flex-end;gap:10px;height:120px;}
.m-podcast-wave i{
  display:block;width:10px;border-radius:999px;background:var(--accent-2);
  animation:m-wave 1.4s ease-in-out infinite;
}
.m-podcast-wave i:nth-child(1){height:40%;animation-delay:0s;}
.m-podcast-wave i:nth-child(2){height:70%;animation-delay:.12s;}
.m-podcast-wave i:nth-child(3){height:100%;animation-delay:.24s;}
.m-podcast-wave i:nth-child(4){height:55%;animation-delay:.36s;}
.m-podcast-wave i:nth-child(5){height:85%;animation-delay:.48s;}
.m-podcast-wave i:nth-child(6){height:45%;animation-delay:.6s;}
.m-podcast-wave i:nth-child(7){height:65%;animation-delay:.72s;}
@keyframes m-wave{0%,100%{transform:scaleY(.55);}50%{transform:scaleY(1);}}

@media (max-width:900px){
  .m-podcast-grid{grid-template-columns:1fr;gap:var(--s-6);}
  .m-podcast-art{display:none;}
}
@media (prefers-reduced-motion: reduce){
  .m-podcast-wave i{animation:none;}
}
