/* Layout 2 · Magazine — light paper, thin rules, section titles stay pinned on the left while the content scrolls */
.d2{--paper:#F3F1EB;--card:#FBFAF7;--fd:'Inter Tight',system-ui,sans-serif;--dw:800;--tt:none;--ls:-.045em;--r:4px}
.d2 h2{font-size:clamp(40px,4.6vw,76px);line-height:.98}
.d2 .btn{border-radius:4px}
.d2 .announce{background:var(--ink)}
.d2 .announce .pulse{background:var(--zl)}
.d2 .nav{color:var(--ink)}
.d2 .nav .m1{display:none}.d2 .nav .m2{display:block}
.d2 .nav .btn-ghost{box-shadow:inset 0 0 0 1.5px var(--ink)}

/* hero: words left, photo column right */
.d2 .hero{height:auto;min-height:calc(100svh - 41px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--g);padding:120px var(--g) var(--g);background:var(--paper);color:var(--ink);overflow:visible}
.d2 .e-left{display:flex;flex-direction:column;justify-content:flex-end;gap:24px;padding-bottom:10px;border-top:2px solid var(--ink);padding-top:22px}
.d2 .ttl{font-size:clamp(52px,6.6vw,118px);line-height:.95}
.d2 .ttl .ln{display:block;overflow:hidden;padding-bottom:.06em}
.d2 .ttl .ln>span{display:inline-block}
.d2 .lede{color:var(--mute);max-width:50ch;font-size:18px}
.d2 .hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.d2 .e-tags{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);padding-top:14px;margin-top:8px}
.d2 .e-tags li{font:600 13px var(--f);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding-right:16px;margin-right:16px;border-right:1px solid var(--line)}
.d2 .e-tags li:last-child{border:0}
.d2 .e-right{position:relative;min-height:560px}
.d2 .e-photos{position:absolute;inset:0;overflow:hidden}
.d2 .e-photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.d2 .e-right .next-card{position:absolute;left:-60px;bottom:40px;right:auto;width:min(340px,80%);background:rgba(13,14,18,.82)}
.d2 .e-cap{position:absolute;right:0;top:-34px;font-size:13px;color:var(--mute)}
.d2 .e-cap b{color:var(--ink)}

/* sections get numbers, like chapters */

/* impact: a ruled row of numbers instead of a pink band */
.d2 .impact{background:transparent;color:var(--ink);border-top:2px solid var(--ink);border-bottom:1px solid var(--line);margin:0 var(--g);padding:40px 0}
.d2 .impact .eyebrow{color:var(--z)}
.d2 .stats div{border-color:var(--line)}
.d2 .stats b{color:var(--z)}

/* pinned title on the left, content on the right */
.d2 .programmes,.d2 .how,.d2 .faq,.d2 .stories{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,2fr);gap:var(--g);align-items:start}
.d2 .programmes .sec-head,.d2 .how .sec-head,.d2 .faq .sec-head,.d2 .stories .sec-head{position:sticky;top:110px;flex-direction:column;align-items:flex-start;margin:0}
.d2 .programmes,.d2 .how,.d2 .faq{border-top:2px solid var(--ink);margin:0 var(--g);padding-left:0;padding-right:0}
.d2 .stories{margin:0 var(--g);padding:0 0 var(--sec)}
.d2 .prog-grid{grid-template-columns:1fr;gap:0}
.d2 .prog{grid-template-columns:clamp(160px,18vw,260px) 1fr;grid-template-rows:auto auto 1fr;column-gap:30px;row-gap:8px;padding:26px 0;border-radius:0;background:none;border-bottom:1px solid var(--line)}
.d2 .prog:hover{transform:none;box-shadow:none}
.d2 .prog figure{grid-row:1 / span 4;margin:0;aspect-ratio:4/3;border-radius:0}
.d2 .pn{position:static;width:auto;height:auto;background:none;color:var(--z);font:700 13px var(--f);place-items:start;justify-content:start}
.d2 .prog h3{font:800 clamp(26px,2.6vw,40px)/1 var(--fd);letter-spacing:-.04em}
.d2 .prog h3,.d2 .prog p,.d2 .prog a{padding:0}
.d2 .steps{grid-template-columns:1fr 1fr;padding-top:0;gap:0}
.d2 .steps::before,.d2 .steps::after{display:none}
.d2 .steps li{padding:26px 26px 30px 0;border-bottom:1px solid var(--line)}
.d2 .sn{position:static;width:auto;height:auto;border:0;background:none;place-items:start;font:700 13px var(--f)}
.d2 .steps h3{font-size:clamp(28px,2.6vw,40px)}
.d2 .posts{grid-template-columns:1fr 1fr}
.d2 .post{background:none;padding:0;border-radius:0}
.d2 .post .reveal-img{border-radius:0}

/* campaign: framed with rules */
.d2 .campaign{background:var(--paper);margin:0 var(--g);border-top:2px solid var(--ink);gap:var(--g);padding:var(--sec) 0}
.d2 .camp-pic{min-height:620px}
.d2 .camp-copy{padding:0}
.d2 .camp-cd div{border-radius:0;background:var(--card)}
.d2 .goal-bar,.d2 .goal-bar i{border-radius:0}

/* help: numbered list on dark */
.d2 .help-grid{grid-template-columns:1fr 1fr;gap:0;border-top:1px solid rgba(255,255,255,.2)}
.d2 .hcard{min-height:0;border-radius:0;background:none;border-bottom:1px solid rgba(255,255,255,.2);padding:34px 30px 34px 0}
.d2 .hcard:nth-child(odd){border-right:1px solid rgba(255,255,255,.2)}
.d2 .hcard:nth-child(even){padding-left:30px}
.d2 .hcard:hover{background:none;transform:none}
.d2 .hcard:hover h3{color:var(--zl)}
.d2 .hc-pink,.d2 .hc-pink:hover{background:none}
.d2 .hc-pink .go{color:var(--zl)}
.d2 .hcard h3{margin-top:10px}

.d2 .strip figure,.d2 .cl-in,.d2 .p-logos span,.d2 .ab-pics{border-radius:0}
.d2 .voices{border-top:2px solid var(--ink);margin:0 var(--g);padding-left:0;padding-right:0}
.d2 .partners{margin:0 var(--g);padding-left:0;padding-right:0}
.d2 .qa summary::after{border-radius:0}

@media (max-width:900px){
  .d2 .hero{grid-template-columns:1fr;padding-top:110px}
  .d2 .e-right{min-height:440px}
  .d2 .e-right .next-card{left:12px;bottom:12px}
  .d2 .programmes,.d2 .how,.d2 .faq,.d2 .stories{grid-template-columns:1fr}
  .d2 .sec-head{position:static!important}
  .d2 .prog{grid-template-columns:1fr}
  .d2 .prog figure{grid-row:auto}
  .d2 .steps,.d2 .posts,.d2 .help-grid{grid-template-columns:1fr}
  .d2 .hcard:nth-child(odd){border-right:0}
  .d2 .hcard:nth-child(even){padding-left:0}
}
