/* ===========================================================================
   pages.css, components for inner pages, board, gallery, partners, news,
   resources, and the health-tools suite. Built on tokens; matches home style.
   =========================================================================== */

/* ---- Wide mega menu (Tools: 4 columns) ---- */
.mega--wide{grid-template-columns:repeat(4,1fr)!important;min-width:min(880px,90vw)}
.mega--wide a strong{color:var(--orange-600)}

/* ---- Generic page intro (when not using .page-hero) ---- */
.lede-block{max-width:60ch}
.kicker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(1rem,2vw,1.6rem);margin-top:var(--space-7)}
.kicker{position:relative;overflow:hidden;background:var(--k-bg,var(--color-surface));
  border:1px solid color-mix(in srgb,var(--k-ac,var(--orange-500)) 22%,transparent);
  border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-1);
  transition:transform .25s var(--ease-out-soft),box-shadow .25s}
.kicker::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--k-ac,var(--orange-500))}
.kicker:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.kicker dt,.kicker h3{font-family:var(--font-display);font-weight:700;color:var(--k-ac,var(--clay-700));font-size:1.2rem;margin-bottom:.2em}
.kicker dd,.kicker p{color:var(--color-text-muted);font-size:1.2rem;margin:0}
/* warm brand colour cycle for the country cards */
.kicker:nth-child(5n+1){--k-bg:#FFF4E6;--k-ac:#F8941E}
.kicker:nth-child(5n+2){--k-bg:#FBEAD8;--k-ac:#C2670B}
.kicker:nth-child(5n+3){--k-bg:#F5ECE0;--k-ac:#8A6043}
.kicker:nth-child(5n+4){--k-bg:#F8EFE4;--k-ac:#A8763F}
.kicker:nth-child(5n+5){--k-bg:#FCEED2;--k-ac:#B0790F}

/* =========================================================================
   BOARD / TEAM
   ========================================================================= */
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(1rem,2vw,1.6rem)}
.member{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--clay-900);
  aspect-ratio:1/1.12;box-shadow:var(--shadow-2);isolation:isolate}
.member img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .8s var(--ease-out-soft)}
.member:hover img{transform:scale(1.06)}
.member::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(transparent 38%,rgba(20,12,2,.9))}
.member__c{position:absolute;inset:auto 0 0 0;z-index:2;padding:clamp(1rem,1.6vw,1.35rem);color:#fff}
.member__flag{display:inline-block;font-size:1.2rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--clay-900);background:var(--orange-400);border-radius:99px;padding:.2em .8em;margin-bottom:.5em}
.member__name{color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.2rem;line-height:1.1}
.member__role{color:rgba(255,255,255,.85);font-size:1.2rem;margin-top:.15em}
.member--placeholder{display:grid;place-items:center;background:linear-gradient(150deg,var(--clay-700),var(--clay-900))}
.member--placeholder .member__initials{font-family:var(--font-display);font-weight:700;font-size:2.6rem;color:rgba(255,255,255,.85);z-index:2}

/* expandable bio */
.member-bio{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);
  padding:var(--space-5) var(--space-6);margin-bottom:1rem;box-shadow:var(--shadow-1)}
.member-bio summary{cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--clay-700);
  display:flex;justify-content:space-between;align-items:center;gap:1rem;list-style:none}
.member-bio summary::-webkit-details-marker{display:none}
.member-bio summary::after{content:"+";font-size:1.5rem;color:var(--orange-500);transition:transform .3s}
.member-bio[open] summary::after{transform:rotate(45deg)}
.member-bio .role{display:block;font-family:var(--font-body);font-weight:600;font-size:1.2rem;color:var(--color-text-muted);margin-top:.2em}
.member-bio p{color:var(--color-text);margin-top:1em;font-size:1.3rem;line-height:1.6}

/* =========================================================================
   REGION STATS
   ========================================================================= */
.regions{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(1rem,2vw,1.6rem)}
.region-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  padding:var(--space-6) var(--space-5);box-shadow:var(--shadow-1);text-align:left;border-top:4px solid var(--orange-500)}
.region-stat .pct{font-family:var(--font-display);font-weight:700;font-size:clamp(2.4rem,4vw,3.4rem);line-height:1;color:var(--coral-600)}
.region-stat .place{font-weight:700;color:var(--clay-700);margin-top:.4em}
.region-stat .ppl{color:var(--color-text-muted);font-size:1.2rem;margin-top:.2em}
.region-stat:nth-child(2){border-top-color:var(--clay-500)}
.region-stat:nth-child(3){border-top-color:var(--orange-600)}
.region-stat:nth-child(4){border-top-color:var(--clay-300)}

/* =========================================================================
   GALLERY
   ========================================================================= */
.galleria{columns:3 280px;column-gap:clamp(.7rem,1.4vw,1.1rem)}
.galleria figure{break-inside:avoid;margin:0 0 clamp(.7rem,1.4vw,1.1rem);position:relative;border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow-2);background:var(--clay-900)}
.galleria img{width:100%;display:block;transition:transform .8s var(--ease-out-soft)}
.galleria figure:hover img{transform:scale(1.05)}
.galleria figcaption{position:absolute;inset:auto 0 0 0;padding:1.4em .9em .7em;color:#fff;font-weight:600;font-size:1.2rem;
  background:linear-gradient(transparent,rgba(20,12,2,.82));opacity:0;transition:opacity .35s}
.galleria figure:hover figcaption{opacity:1}
@media (max-width:640px){.galleria{columns:2 150px}}

/* Equal-size grid variant, uniform tiles, 4 across (2 rows of 4 for 8 items) */
.galleria--grid{columns:auto;column-gap:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.7rem,1.4vw,1.1rem)}
.galleria--grid figure{margin:0;aspect-ratio:4/3;cursor:zoom-in}
.galleria--grid figure:focus-visible{outline:3px solid var(--orange,#F7941D);outline-offset:3px}
.galleria--grid img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.galleria--grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.galleria--grid{grid-template-columns:repeat(2,1fr)}}

/* Gallery lightbox */
.glightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  gap:clamp(.4rem,2vw,1.2rem);padding:clamp(1rem,4vw,3rem);background:rgba(20,12,2,.9);backdrop-filter:blur(4px)}
.glightbox[hidden]{display:none}
.glightbox__stage{margin:0;display:flex;flex-direction:column;align-items:center;gap:.7rem;max-width:100%;max-height:100%}
.glightbox__stage img{max-width:min(1100px,88vw);max-height:82vh;width:auto;height:auto;object-fit:contain;
  border-radius:var(--radius-md);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.glightbox__stage figcaption{color:#fff;font-size:1.2rem;text-align:center;max-width:60ch;opacity:.92}
.glightbox__stage figcaption[hidden]{display:none}
.glightbox__x{position:absolute;top:clamp(.7rem,2vw,1.4rem);right:clamp(.7rem,2vw,1.4rem);z-index:2;
  width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:var(--ink-900,#1c1c1c);
  font-size:1.8rem;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.glightbox__nav{flex:0 0 auto;width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.16);color:#fff;font-size:1.8rem;line-height:1;transition:background .2s}
.glightbox__nav:hover{background:rgba(255,255,255,.32)}
.glightbox__x:focus-visible,.glightbox__nav:focus-visible{outline:3px solid var(--orange,#F7941D);outline-offset:2px}
@media (max-width:640px){
  .glightbox__nav{position:absolute;bottom:1.2rem}
  .glightbox__nav--prev{left:1.2rem}.glightbox__nav--next{right:1.2rem}
  .glightbox__stage img{max-height:74vh}
}

/* =========================================================================
   PARTNERS WALL
   ========================================================================= */
.pwall{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,210px));gap:clamp(.8rem,1.6vw,1.4rem);justify-content:center}
.pwall__tile{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:130px;
  display:grid;place-items:center;padding:1.6rem;box-shadow:var(--shadow-1);transition:transform .3s,box-shadow .3s}
.pwall__tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-3)}
.pwall__tile img{max-width:100%;max-height:84px;object-fit:contain}
.pwall__tile span{font-family:var(--font-display);font-weight:700;color:var(--clay-700);font-size:1.2rem;text-align:center}
/* grouped partner categories */
.pgroup{margin-top:clamp(2rem,4.5vw,3.4rem)}
.pgroup:first-of-type{margin-top:var(--space-6)}
.pgroup__title{font-family:var(--font-display);font-weight:700;color:var(--clay-700);
  font-size:clamp(1.35rem,2vw,1.85rem);text-align:center;margin:0 0 clamp(1.1rem,2vw,1.6rem);
  position:relative;padding-bottom:.55rem}
.pgroup__title::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:46px;height:3px;border-radius:3px;background:var(--orange-500)}
/* clickable partner tile (opens bio modal) */
.pwall__tile--btn{cursor:pointer;font:inherit;color:inherit;width:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem}
.pwall__tile--btn img{transition:transform .25s var(--ease-out-soft)}
.pwall__tile--btn:hover img,.pwall__tile--btn:focus-visible img{transform:translateY(-3px)}
/* always-visible CTA in normal flow, reserves its own row so it never overlaps the logo/tagline */
.pwall__tile--btn::after{content:"View profile \2192";
  font-family:var(--font-body);font-weight:700;font-size:1.2rem;color:var(--orange-600);transition:color .25s}
.pwall__tile--btn:hover::after,.pwall__tile--btn:focus-visible::after{color:var(--clay-700)}
.pwall__tile--btn:focus-visible{outline:3px solid var(--orange-500);outline-offset:2px}
/* partner bio modal */
.pmodal{border:0;padding:0;max-width:640px;width:calc(100% - 2rem);border-radius:var(--radius-xl);
  background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-4);overflow:hidden}
.pmodal::backdrop{background:rgba(26,16,4,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.pmodal[open]{animation:bmIn .32s var(--ease-out-soft)}
.pmodal__close{position:absolute;top:.85rem;right:.85rem;width:42px;height:42px;border-radius:50%;border:0;
  background:rgba(255,255,255,.9);color:var(--clay-900);font-size:1.6rem;line-height:1;cursor:pointer;z-index:2;
  display:grid;place-items:center;transition:transform .3s,background .3s}
.pmodal__close:hover{background:#fff;transform:rotate(90deg)}
.pmodal__head{display:flex;gap:1.1rem;align-items:center;padding:clamp(1.3rem,3vw,1.9rem);
  background:var(--bone-100);border-bottom:1px solid var(--color-border)}
.pmodal__logo{width:118px;max-height:70px;object-fit:contain;flex:0 0 auto;background:#fff;
  border-radius:12px;padding:.5rem;border:1px solid var(--color-border)}
.pmodal__name{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,3vw,1.7rem);color:var(--clay-900);margin:0;line-height:1.12}
.pmodal__body{padding:clamp(1.3rem,3vw,2rem);max-height:56vh;overflow:auto}
.pmodal__body p{margin-bottom:1em;color:var(--color-text);font-size:1.3rem;line-height:1.6}
.pmodal__body p:last-child{margin-bottom:0}
@media(prefers-reduced-motion:reduce){.pmodal[open]{animation:none}.pwall__tile--btn:hover img{transform:none}}

/* =========================================================================
   NEWS / ARTICLES
   ========================================================================= */
.newsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(1.2rem,2.4vw,2rem)}
.narticle{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .3s,box-shadow .3s}
.narticle:hover{transform:translateY(-5px);box-shadow:var(--shadow-3)}
.narticle__img{aspect-ratio:16/10;overflow:hidden;background:var(--clay-900)}
.narticle__img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out-soft)}
.narticle:hover .narticle__img img{transform:scale(1.06)}
.narticle__body{padding:var(--space-5);display:flex;flex-direction:column;gap:.5rem;flex:1}
.narticle__tag{align-self:flex-start;font-size:1.2rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--orange-700);background:var(--orange-200);border-radius:99px;padding:.3em .9em}
.narticle__title{font-family:var(--font-display);font-weight:700;font-size:1.2rem;line-height:1.2;color:var(--clay-900)}
.narticle__meta{margin-top:auto;color:var(--color-text-muted);font-size:1.2rem}
.narticle--feature{grid-column:span 2}
@media (max-width:680px){.narticle--feature{grid-column:span 1}}

/* timeline list for events */
.events{display:flex;flex-direction:column;gap:1rem}
.event{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:center;background:var(--color-surface);
  border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-1)}
.event__date{text-align:center;background:var(--clay-900);color:#fff;border-radius:var(--radius-md);padding:.7em 1em;min-width:78px}
.event__date .d{display:block;font-family:var(--font-display);font-weight:700;font-size:1.7rem;line-height:1}
.event__date .m{display:block;font-size:1.2rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-300)}
.event h3{font-family:var(--font-display);font-size:1.2rem;color:var(--clay-700)}
.event p{color:var(--color-text-muted);font-size:1.2rem;margin-top:.2em}

/* =========================================================================
   TOOLS, hub
   ========================================================================= */
.toolhub{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(1.2rem,2.4vw,2rem)}
.toolcat{position:relative;border-radius:var(--radius-xl);overflow:hidden;padding:clamp(1.6rem,2.6vw,2.4rem);
  color:#fff;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow-3);
  background:var(--c,var(--clay-700));isolation:isolate;text-decoration:none;transition:transform .35s var(--ease-out-soft)}
.toolcat:hover{transform:translateY(-6px)}
.toolcat::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(160deg,rgba(255,255,255,.12),transparent 60%)}
.toolcat__icon{width:54px;height:54px;border-radius:14px;background:rgba(255,255,255,.18);display:grid;place-items:center;margin-bottom:auto}
.toolcat h3{color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.5rem;margin-top:1rem}
.toolcat p{color:rgba(255,255,255,.85);font-size:1.2rem;margin-top:.4em}
.toolcat__count{margin-top:1rem;font-size:1.2rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--orange-200)}

/* =========================================================================
   TOOLS, category page widgets
   ========================================================================= */
.tool-toc{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--space-6)}
.tool-toc a{display:inline-flex;align-items:center;gap:.5em;font-size:1.2rem;font-weight:600;color:var(--clay-700);background:var(--color-surface);
  border:1px solid var(--color-border);border-radius:99px;padding:.55em 1.2em;text-decoration:none;transition:.25s}
.tool-toc a .ico-chip{display:inline-flex;align-items:center;flex:0 0 auto;color:var(--orange-600)}
.tool-toc a:hover .ico-chip{color:#fff}
.tool-toc a:hover{background:var(--orange-500);color:#fff;border-color:transparent}

.tool{scroll-margin-top:100px;background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-xl);padding:clamp(1.4rem,2.4vw,2.2rem);box-shadow:var(--shadow-1);margin-bottom:clamp(1.2rem,2.4vw,2rem)}
.tool__head{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}
.tool__badge{flex:0 0 auto;width:46px;height:46px;border-radius:13px;background:var(--orange-200);color:var(--orange-700);
  display:grid;place-items:center;font-family:var(--font-display);font-weight:700}
.tool__head h3{font-family:var(--font-display);font-weight:700;font-size:1.35rem;color:var(--clay-900);line-height:1.15}
.tool__head p{color:var(--color-text-muted);font-size:1.2rem;margin-top:.2em}

.field{display:flex;flex-direction:column;gap:.35em;margin-bottom:1rem}
.field label{font-weight:600;font-size:1.2rem;color:var(--clay-700)}
.field input,.field select{font:inherit;font-size:1.2rem;padding:.7em .9em;border:1.5px solid var(--color-border);
  border-radius:var(--radius-md);background:var(--bone-50);color:var(--ink-900);width:100%}
.field input:focus,.field select:focus{outline:none;border-color:var(--orange-500)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:540px){.field-row{grid-template-columns:1fr}}

.tbtn{font:inherit;font-weight:700;font-size:1.2rem;cursor:pointer;border:0;border-radius:var(--radius-pill);
  background:var(--orange-500);color:#fff;padding:.8em 1.8em;transition:background .25s,transform .2s}
.tbtn:hover{background:var(--orange-600);transform:translateY(-2px)}
.tbtn--ghost{background:transparent;color:var(--clay-700);border:1.5px solid var(--color-border)}
.tbtn--ghost:hover{background:var(--bone-100);color:var(--clay-900)}
.tool__actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}

.tresult{margin-top:1.2rem;border-radius:var(--radius-lg);padding:1.2rem 1.4rem;background:linear-gradient(150deg,var(--clay-900),var(--clay-700));
  color:#fff;display:none}
.tresult.is-on{display:block;animation:tfade .4s var(--ease-out-soft)}
@keyframes tfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tresult .big{font-family:var(--font-display);font-weight:700;font-size:1.8rem;line-height:1.1;color:#fff}
.tresult .sub{color:rgba(255,255,255,.86);font-size:1.2rem;margin-top:.4em}
.tresult .note{color:var(--orange-200);font-size:1.2rem;margin-top:.9em}
/* --- rich result components (on the dark accent box) --- */
.tres__h{margin:1.15rem 0 .55rem;font-size:1.2rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.tres__p{color:rgba(255,255,255,.9);font-size:1.2rem;line-height:1.5}
.tres__p strong{color:#fff}
.talert{background:#D9760A;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-md);
  padding:.85em 1em;margin-bottom:1rem;font-size:1.2rem;color:#fff;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.talert strong{color:#fff}
/* score bars */
.tbars{display:flex;flex-direction:column;gap:.7rem}
.tbar__top{display:flex;justify-content:space-between;align-items:baseline;font-size:1.2rem;color:rgba(255,255,255,.9)}
.tbar__top b{color:#fff;font-family:var(--font-display);font-size:1.2rem}
.tbar__track{height:9px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden;margin-top:.3em}
.tbar__track i{display:block;height:100%;border-radius:99px;background:rgba(255,255,255,.75);
  width:0;animation:tbarfill .8s var(--ease-out-soft) forwards}
.tbar--lead .tbar__track i{background:#FCC580}
.tbar--lead .tbar__top b{color:#FCC580}
.tbar__note{font-size:1.2rem;color:rgba(255,255,255,.6);margin-top:.25em}
@keyframes tbarfill{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
/* milestone timeline */
.ttl{list-style:none;margin:.2rem 0 0;padding:0;position:relative}
.ttl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:rgba(255,255,255,.2)}
.ttl li{position:relative;padding:.35rem 0 .55rem 1.5rem;display:flex;flex-wrap:wrap;gap:.1rem .6rem;align-items:baseline}
.ttl__dot{position:absolute;left:0;top:.55rem;width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.35);border:2px solid var(--clay-900)}
.ttl--done .ttl__dot{background:#FCC580}
.ttl--now .ttl__dot{background:#F8941E;box-shadow:0 0 0 4px rgba(248,148,30,.3)}
.ttl__l{color:#fff;font-size:1.2rem;font-weight:600;flex:1 1 60%}
.ttl__d{color:rgba(255,255,255,.7);font-size:1.2rem}
.ttl--wait .ttl__l{color:rgba(255,255,255,.7);font-weight:500}
/* action plan */
.tplan-h{margin:1.2rem 0 .5rem;font-size:1.2rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.tplan{margin:0;padding-left:0;list-style:none;counter-reset:tp;display:flex;flex-direction:column;gap:.55rem}
.tplan li{position:relative;padding-left:2.1rem;color:rgba(255,255,255,.92);font-size:1.2rem;line-height:1.45;counter-increment:tp}
.tplan li::before{content:counter(tp);position:absolute;left:0;top:-.1em;width:1.5rem;height:1.5rem;border-radius:50%;
  background:rgba(255,255,255,.16);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.2rem;display:grid;place-items:center}
/* factor chips */
.tfacts{display:flex;flex-wrap:wrap;gap:.4rem}
.tfact{font-size:1.2rem;padding:.28em .7em;border-radius:99px;border:1px solid rgba(255,255,255,.22)}
.tfact--up{background:rgba(248,148,30,.22);color:#FCC580}
.tfact--down{background:rgba(255,255,255,.08);color:rgba(255,255,255,.7)}

/* interactive checklist */
.tcheck{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.tcheck li{display:flex;align-items:flex-start;gap:.8rem;background:var(--bone-50);border:1px solid var(--color-border);
  border-radius:var(--radius-md);padding:.8em 1em;cursor:pointer;transition:.2s}
.tcheck li.done{background:var(--orange-200);border-color:var(--orange-400)}
.tcheck input{margin-top:.25em;width:18px;height:18px;accent-color:var(--orange-600);flex:0 0 auto}
.tcheck .ct{font-size:1.2rem;color:var(--clay-900)}
.tprogress{height:10px;border-radius:99px;background:var(--bone-100);overflow:hidden;margin:1rem 0}
.tprogress span{display:block;height:100%;width:0;background:var(--orange-500);transition:width .4s var(--ease-out-soft)}

/* quiz */
.quiz__q{margin-bottom:1.1rem}
.quiz__q p{font-weight:600;color:var(--clay-900);margin-bottom:.5em}
.quiz__opts{display:flex;flex-wrap:wrap;gap:.5rem}
.quiz__opts label{font-size:1.2rem;border:1.5px solid var(--color-border);border-radius:99px;padding:.45em 1em;cursor:pointer;background:var(--bone-50)}
.quiz__opts input{display:none}
.quiz__opts input:checked + span{color:#fff}
.quiz__opts label:has(input:checked){background:var(--orange-500);border-color:transparent;color:#fff}

/* comparison table */
.ttable{width:100%;border-collapse:collapse;font-size:1.2rem;overflow:hidden;border-radius:var(--radius-md)}
.ttable th,.ttable td{text-align:left;padding:.8em 1em;border-bottom:1px solid var(--color-border);vertical-align:top}
.ttable thead th{background:var(--clay-900);color:#fff;font-family:var(--font-display)}
.ttable tbody tr:nth-child(even){background:var(--bone-50)}
.ttable td:first-child{font-weight:700;color:var(--clay-700)}
.table-scroll{overflow-x:auto}

/* glossary / accordion list */
[data-glossary]{margin-top:clamp(1.6rem,3.2vw,2.8rem)}
.glossary{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:clamp(.9rem,1.6vw,1.3rem);align-items:start}
.glossary .gsearch{margin-bottom:clamp(.4rem,1vw,.8rem)}
.glossary input.gsearch{grid-column:1/-1;font:inherit;font-size:1.2rem;padding:.85em 1.1em;border:1.5px solid var(--color-border);
  border-radius:99px;background:var(--bone-50);margin-bottom:.4rem;width:100%;transition:border-color .2s,box-shadow .2s}
.glossary input.gsearch:focus{outline:none;border-color:var(--ta,var(--orange-500));box-shadow:0 0 0 3px color-mix(in srgb,var(--ta,var(--orange-500)) 20%,transparent)}
/* fancy glossary term cards */
.gterm{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.25rem 1.3rem 1.45rem;
  background:linear-gradient(162deg,#fff,var(--bone-50));box-shadow:var(--shadow-1);overflow:hidden;height:100%;
  transition:transform .3s var(--ease-out-soft),box-shadow .3s,border-color .3s}
.gterm::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
  background:linear-gradient(var(--ta,var(--orange-500)),var(--tad,var(--orange-300)))}
.gterm:hover{transform:translateY(-5px);box-shadow:var(--shadow-3);border-color:color-mix(in srgb,var(--ta,var(--orange-500)) 45%,transparent)}
.gterm dt{display:inline-block;font-family:var(--font-display);font-weight:700;color:#fff;
  background:linear-gradient(135deg,var(--ta,var(--orange-500)),var(--tad,var(--orange-700)));
  padding:.2em .8em;border-radius:99px;font-size:1.2rem;margin-bottom:.7em;box-shadow:var(--shadow-1);letter-spacing:.01em}
.gterm dd{color:var(--color-text-muted);margin:0;font-size:1.2rem;line-height:1.55}
.gterm dd em{color:var(--tad,var(--orange-700));font-style:italic}
/* a small definition/book icon in the top-right of each glossary card */
.gterm::after{content:"";position:absolute;top:1.15rem;right:1.15rem;width:24px;height:24px;opacity:.5;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D9760A' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20'/%3E%3Cpath d='M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z'/%3E%3Cpath d='M9 7h7M9 11h5'/%3E%3C/svg%3E") center/contain no-repeat}
.gterm:hover::after{opacity:.8}

/* info pill / disclaimer */
.tnote{display:flex;gap:.7rem;align-items:flex-start;background:var(--orange-200);border-radius:var(--radius-md);
  padding:1rem 1.2rem;color:var(--clay-900);font-size:1.2rem;margin-top:1rem}
.tnote svg{flex:0 0 auto;color:var(--orange-700)}
.disclaimer{background:var(--bone-100);border-left:4px solid var(--orange-500);padding:1rem 1.3rem;border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-muted);font-size:1.2rem;margin-top:var(--space-6)}

/* =========================================================================
   TOOLS HUB, categorized colourful icon cards (one card per tool → its page)
   ========================================================================= */
.toolgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:clamp(1rem,2vw,1.5rem);margin-top:var(--space-6)}
.toolcard{--ta:var(--orange-500);--tad:var(--orange-700);--tab:var(--orange-200);
  display:flex;flex-direction:column;gap:.55rem;padding:1.5rem 1.4rem;border-radius:var(--radius-xl);
  background:var(--tab);border:1px solid color-mix(in srgb,var(--ta) 30%,transparent);
  text-decoration:none;color:var(--clay-900);position:relative;overflow:hidden;
  transition:transform .28s var(--ease-out-soft),box-shadow .28s var(--ease-out-soft)}
.toolcard::after{content:"";position:absolute;left:0;top:0;width:100%;height:5px;background:var(--ta)}
.toolcard:hover{transform:translateY(-7px);box-shadow:var(--shadow-3)}
.toolcard__icon{width:56px;height:56px;border-radius:16px;background:#fff;display:grid;place-items:center;
  font-size:1.7rem;box-shadow:var(--shadow-1);transition:transform .3s var(--ease-out-soft)}
.toolcard:hover .toolcard__icon{transform:rotate(-8deg) scale(1.08)}
.toolcard h3{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--clay-900);line-height:1.2;margin-top:.3rem}
.toolcard p{font-size:1.2rem;color:var(--clay-700);margin:0;line-height:1.45}
.toolcard__go{margin-top:auto;padding-top:.4rem;font-weight:700;color:var(--tad);font-size:1.2rem}
.toolcard__go .arrow{transition:transform .25s}
.toolcard:hover .toolcard__go .arrow{transform:translateX(5px)}

/* category section header on the hub */
.cathead{display:flex;align-items:center;gap:1.1rem;margin-bottom:1rem}
.cathead>div{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}
.cathead__icon{width:60px;height:60px;flex:0 0 auto;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(160deg,var(--orange-500),var(--orange-600));color:#fff;box-shadow:0 10px 24px -12px rgba(216,118,10,.6)}
.cathead h2{font-size:clamp(1.6rem,3vw,2.3rem);color:var(--clay-900);margin:0;line-height:1.12}
.cathead .pill{margin:0}

/* themed tool-page header (replaces photo hero on individual tool pages) */
.thero{--ta:var(--orange-500);--tad:var(--orange-700);--tab:var(--orange-200);
  position:relative;padding:clamp(5.5rem,9vw,7.5rem) 0 clamp(2rem,4vw,3rem);
  background:linear-gradient(155deg,var(--tab),var(--bone-50) 72%);border-bottom:1px solid var(--color-border)}
.thero__icon{width:66px;height:66px;border-radius:18px;background:#fff;display:grid;place-items:center;
  font-size:2.1rem;box-shadow:var(--shadow-2);margin-bottom:1.1rem}
.thero h1{font-size:clamp(2rem,4.6vw,3.2rem);color:var(--clay-900);line-height:1.05}
.thero__lead{color:var(--ink-700);max-width:60ch;margin-top:.6em;font-size:1.3rem}
.thero .eyebrow{color:var(--tad)}
/* tool-page header with a supporting photo */
.thero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.thero__media{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-3);aspect-ratio:4/3;
  border:5px solid #fff;rotate:1.2deg}
.thero__media img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:780px){.thero__grid{grid-template-columns:1fr}.thero__media{display:none}}
/* image-topped feature cards */
.feature--photo{padding:0;overflow:hidden;display:flex;flex-direction:column;
  background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}
.feature--photo .feature__img{aspect-ratio:16/10;overflow:hidden}
.feature--photo .feature__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease-out-soft)}
.feature--photo:hover .feature__img img{transform:scale(1.06)}
.feature--photo .feature__b{padding:var(--space-5)}
.feature--photo .feature__b h3{margin-bottom:.3em}

/* "more in this category" mini cards */
.moretools{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem;margin-top:var(--space-6)}
.moretool{--ta:var(--orange-500);--tab:var(--orange-200);display:flex;align-items:center;gap:.7rem;
  padding:.8rem 1rem;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);
  text-decoration:none;color:var(--clay-900);transition:transform .2s,border-color .2s,box-shadow .2s}
.moretool:hover{transform:translateY(-3px);border-color:var(--ta);box-shadow:var(--shadow-2)}
.moretool__ic{width:38px;height:38px;flex:0 0 auto;border-radius:11px;background:var(--tab);color:var(--tad);display:grid;place-items:center}
.moretool span{font-weight:600;font-size:1.2rem;line-height:1.2}

/* ---- inline SVG icon sizing (injected by js/icons.js into [data-ico]) ---- */
.ico{display:block;width:1em;height:1em}
.toolcard__icon{color:var(--tad)}
.toolcard__icon .ico{width:30px;height:30px}
.cathead__icon .ico{width:26px;height:26px}
.thero__icon{color:var(--tad)}
.thero__icon .ico{width:34px;height:34px}
.tool__badge .ico{width:26px;height:26px}
.moretool__ic .ico{width:20px;height:20px}
.tool-toc a .ico{width:18px;height:18px;flex:0 0 auto}

/* =========================================================================
   TOOLS THEME, per-tool accent drawn entirely from the brand palette.
   Each .tool sets --ta (accent), --tad (deep accent), --tab (tint). Variant
   classes keep per-category wayfinding variety, but every shade is a warm
   clay/orange brand tone, no off-brand colours.
   ========================================================================= */
.tool{--ta:var(--orange-500);--tad:var(--orange-700);--tab:var(--orange-200);
  border-top:5px solid var(--ta);transition:box-shadow .3s var(--ease-out-soft),transform .3s var(--ease-out-soft)}
.tool:hover{box-shadow:var(--shadow-3)}
/* Brand uniformity: every tool/calculator uses the one outstanding brand orange,
   regardless of its legacy accent modifier (amber/coral/sky/rose/teal/green/violet/plum). */
.tool--amber,.tool--coral,.tool--sky,.tool--rose,
.tool--teal,.tool--green,.tool--violet,.tool--plum{
  --ta:var(--orange-500);--tad:var(--orange-700);--tab:var(--orange-200)}

.tool__badge{background:var(--tab);color:var(--tad);font-size:1.3rem;transition:transform .35s var(--ease-out-soft)}
.tool:hover .tool__badge{transform:rotate(-7deg) scale(1.08)}
.tbtn{background:var(--ta)}
.tbtn:hover{background:var(--tad)}
.tcheck li.done{background:var(--tab);border-color:var(--ta)}
.tcheck input{accent-color:var(--ta)}
.tprogress span{background:var(--ta)}
.field input:focus,.field select:focus{border-color:var(--ta);box-shadow:0 0 0 3px color-mix(in srgb,var(--ta) 22%,transparent)}
.quiz__opts label:has(input:checked){background:var(--ta);border-color:transparent;color:#fff;animation:pickpop .3s var(--ease-out-soft)}
.quiz__opts label{transition:transform .15s,background .2s,border-color .2s}
.quiz__opts label:hover{border-color:var(--ta)}
.quiz__opts label:active{transform:scale(.95)}
@keyframes pickpop{0%{transform:scale(1)}50%{transform:scale(1.09)}100%{transform:scale(1)}}
.tool-toc a:hover{background:var(--orange-500)}

/* result box recoloured to the solid brand orange (no gradient) + celebratory pop */
.tresult{background:#f8941e}
.tresult.is-on{animation:tpop .5s cubic-bezier(.2,1.25,.5,1)}
@keyframes tpop{0%{opacity:0;transform:scale(.94) translateY(10px)}60%{transform:scale(1.012)}100%{opacity:1;transform:none}}
.tresult .note{color:#fff;background:rgba(255,255,255,.14);border-radius:var(--radius-md);padding:.7em .9em;margin-top:.9em}
.tresult .ttable{background:rgba(255,255,255,.08)!important}
/* keep every text element legible on the solid-orange card
   (the originals were tuned for the old dark-clay background) */
.tresult:not(.tresult--live) .sub{color:rgba(255,255,255,.96)}
.tresult:not(.tresult--live) .tres__h,
.tresult:not(.tresult--live) .tplan-h,
.tresult:not(.tresult--live) .tbar__note{color:rgba(255,255,255,.9)}
.tresult:not(.tresult--live) .tres__p{color:rgba(255,255,255,.95)}
.tresult:not(.tresult--live) .tbar__top{color:#fff}
.tresult:not(.tresult--live) .tbar--lead .tbar__top b{color:#fff}
.tresult:not(.tresult--live) .tplan li{color:#fff}
.tresult:not(.tresult--live) .ttl__d,
.tresult:not(.tresult--live) .ttl--wait .ttl__l{color:rgba(255,255,255,.9)}
.tresult:not(.tresult--live) .tfact{border-color:rgba(255,255,255,.55);color:#fff}
.tresult:not(.tresult--live) .tfact--up{background:rgba(255,255,255,.18);color:#fff}
.tresult:not(.tresult--live) .tfact--down{background:rgba(255,255,255,.12);color:#fff}

/* ---- Multi-step wizard ---- */
.whead{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}
.wcount{flex:0 0 auto;font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tad)}
.wprogress{flex:1;height:10px;border-radius:99px;background:var(--bone-100);overflow:hidden}
.wprogress span{display:block;height:100%;width:0;background:var(--ta);transition:width .45s var(--ease-out-soft)}
.wstep[hidden]{display:none}
.wstep--in{animation:wIn .4s var(--ease-out-soft)}
.wstep--rev{animation:wInRev .4s var(--ease-out-soft)}
@keyframes wIn{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
@keyframes wInRev{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}
.wstep--shake{animation:wShake .42s}
@keyframes wShake{0%,100%{transform:none}20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
.wstep .quiz__q p{font-size:1.3rem}
.wstep .quiz__opts{flex-direction:column}
.wstep .quiz__opts label{font-size:1.3rem;padding:.85em 1.2em;width:100%}
.wnav{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-top:1.4rem}

@media (prefers-reduced-motion:reduce){
  .wstep--in,.wstep--rev,.wstep--shake,.tresult.is-on,.quiz__opts label:has(input:checked){animation:none}
  .tool:hover .tool__badge{transform:none}
}

/* simple two-col feature rows */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.6rem,4vw,4rem);align-items:center;
  width:min(100% - 2*var(--gutter),var(--w-wide));margin-inline:auto}
.split--rev .split__media{order:-1}
.split__media{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-3);aspect-ratio:4/3}
.split__media img{width:100%;height:100%;object-fit:cover}
@media (max-width:820px){.split{grid-template-columns:1fr}.split--rev .split__media{order:0}}

/* heading rhythm, clear breathing room between eyebrow → title → body text */
.split__text .eyebrow,.section-head .eyebrow{margin-bottom:1.1rem}
.split__text h2,.section-head h2{margin:0 0 1.25rem;line-height:1.14}
.split__text h2+p,.split__text h2+.lead-xl,.section-head h2+p{margin-top:0}
.split__text .lead-xl+p,.split__text p+p{margin-top:1rem}

/* ===== Badge pill (filled chip label) ===== */
.pill{display:inline-block;font-family:var(--font-body);font-weight:700;font-size:1.2rem;
  letter-spacing:.1em;text-transform:uppercase;padding:.55em 1.2em;border-radius:999px;
  background:var(--orange-200);color:var(--orange-700);margin-bottom:1rem}
.pill--center{display:block;width:max-content;margin-inline:auto}

/* ===== Dark feature card (image + copy + dual CTA) ===== */
.feature-card{background:var(--clay-900);color:#fff;border-radius:var(--radius-xl);
  padding:clamp(1.6rem,4vw,3.2rem);display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(1.6rem,4vw,3rem);align-items:center;box-shadow:var(--shadow-3);overflow:hidden}
.feature-card .pill{background:rgba(252,197,128,.18);color:var(--orange-300)}
.feature-card h2{color:#fff;font-size:var(--fs-h2);margin:0 0 .5em}
.feature-card p{color:rgba(255,255,255,.85);margin:0}
.feature-card__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:var(--space-6)}
.feature-card__cta .btn--secondary{color:#fff;border-color:rgba(255,255,255,.45)}
.feature-card__cta .btn--secondary:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.feature-card__media{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-2)}
.feature-card__media img{width:100%;height:100%;object-fit:cover}
@media (max-width:820px){.feature-card{grid-template-columns:1fr}}

/* ===== Impact stat grid (colored tiles + photo) ===== */
.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.4rem);margin-top:var(--space-7)}
.stat-tile{border-radius:var(--radius-xl);padding:clamp(1.4rem,3vw,2rem);display:flex;flex-direction:column}
.stat-tile--feature{justify-content:center;min-height:clamp(320px,32vw,440px)}
.stat-tile__num{font-family:var(--font-display);font-weight:700;font-size:clamp(2.6rem,6vw,4rem);
  line-height:.92;color:var(--clay-900);letter-spacing:-.01em}
.stat-tile__label{font-family:var(--font-display);font-weight:700;color:var(--clay-900);
  font-size:1.2rem;margin:.6em 0 .55em}
.stat-tile__body{color:var(--clay-700);font-size:1.2rem;line-height:1.55;margin:0}
.stat-tile--feature{background:var(--orange-300)}
.stat-tile--a{background:var(--clay-100)}
.stat-tile--b{background:var(--orange-200)}
.stat-tile--dark{background:var(--clay-900)}
.stat-tile--dark .stat-tile__num,.stat-tile--dark .stat-tile__label{color:#fff}
.stat-tile--dark .stat-tile__body{color:rgba(255,255,255,.82)}
.statgrid__photo{grid-column:2 / span 2;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-3);height:clamp(320px,32vw,440px)}
.statgrid__photo img{width:100%;height:100%;object-fit:cover}
@media (max-width:820px){
  .statgrid{grid-template-columns:1fr 1fr}
  .stat-tile--feature{grid-column:1 / -1}
  .statgrid__photo{grid-column:1 / -1;aspect-ratio:16/9}
}
@media (max-width:520px){.statgrid{grid-template-columns:1fr}.statgrid__photo{grid-column:auto}}

/* ===== Image-topped cards (enrich text-only card grids with photos) ===== */
/* content-heavy image cards: 3 per row (the readable default) */
.imgcards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);margin-top:var(--space-7)}
/* short cards (little text) can pack 4 per row */
.imgcards--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.imgcards,.imgcards--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.imgcards,.imgcards--4{grid-template-columns:1fr}}
.imgcard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow-1);display:flex;flex-direction:column;
  transition:transform .3s var(--ease-out-soft),box-shadow .3s var(--ease-out-soft)}
.imgcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-3)}
.imgcard__img{aspect-ratio:16/10;overflow:hidden;position:relative}
.imgcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease-out-soft)}
.imgcard:hover .imgcard__img img{transform:scale(1.06)}
.imgcard__tag{position:absolute;left:.7rem;top:.7rem;background:var(--orange-500);color:#fff;font-family:var(--font-display);
  font-weight:700;font-size:1.2rem;padding:.25em .8em;border-radius:99px}
.imgcard__body{padding:var(--space-5);display:flex;flex-direction:column;gap:.4rem}
.imgcard__body h3{font-family:var(--font-display);font-weight:700;color:var(--clay-700);font-size:1.2rem;line-height:1.2;margin:0}
.imgcard__body p{color:var(--color-text-muted);font-size:1.2rem;margin:0}
.imgcard__cta{margin-top:auto;padding-top:.55rem;font-family:var(--font-display);font-weight:700;font-size:1.2rem;
  color:var(--orange-500);text-decoration:none;display:inline-flex;align-items:center;gap:.4em;align-self:flex-start}
.imgcard__cta span{transition:transform .28s var(--ease-out-soft)}
.imgcard:hover .imgcard__cta span{transform:translateX(4px)}
.imgcard__cta:hover{color:var(--orange-600,var(--clay-700));text-decoration:underline}

/* Contact page, key contacts */
.peoplecards{margin-top:1rem;display:grid;gap:1rem}
.pcard{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,#fff,var(--bone-50,#fbf7f0));padding:1.05rem 1.2rem 1.05rem 1.4rem;overflow:hidden}
.pcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--orange-500)}
.pcard__name{font-family:var(--font-display);font-weight:700;color:var(--clay-700);font-size:1.35rem;line-height:1.2;margin:0 0 .5em}
.pcard__row{display:flex;align-items:flex-start;gap:.55em;margin:.25em 0;color:var(--color-text-muted);font-size:1.2rem;line-height:1.45}
.pcard__ico{flex:0 0 auto;color:var(--orange-500);font-size:1.05em;line-height:1.5}
.pcard__row a{color:var(--ink-900);text-decoration:none;word-break:break-word}
.pcard__row a:hover{color:var(--orange-500);text-decoration:underline}
.followus{margin-top:1.6rem}
.followus .eyebrow{display:block;margin-bottom:.7rem}
.social--ink a{color:var(--clay-700);background:var(--bone-50,#fbf7f0);border:1px solid var(--color-border)}
.social--ink a:hover{color:#fff;background:var(--orange-500);border-color:var(--orange-500)}

/* ===== Prevention method pages (animated icon hero + facts) ===== */
.methodhero{padding-top:calc(var(--header-h) + clamp(1.4rem,4vw,3rem));padding-bottom:clamp(2rem,4vw,3.4rem)}
.methodhero__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
.methodhero__icon{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-3);
  border:1px solid var(--color-border);background:var(--bone-100)}
.methodhero__icon img{display:block;width:100%;height:auto}
.methodhero__tag{display:inline-block;background:var(--orange-500);color:#fff;font-family:var(--font-display);
  font-weight:700;font-size:1.2rem;padding:.32em .9em;border-radius:var(--radius-pill);margin-bottom:1rem}
.methodhero__text h1{font-size:var(--fs-h1);line-height:1.08;margin:.1em 0 .35em;color:var(--clay-700)}
.methodhero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
@media(max-width:820px){.methodhero__grid{grid-template-columns:1fr}.methodhero__icon{order:-1;max-width:440px;margin-inline:auto}}

.msteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(1rem,2vw,1.5rem);margin-top:var(--space-7)}
.mstep{background:linear-gradient(160deg,var(--orange-500),var(--orange-600));border:0;border-radius:var(--radius-lg);
  padding:var(--space-5);color:#fff;box-shadow:0 12px 30px -14px rgba(216,118,10,.6);
  transition:transform .3s var(--ease-out-soft),box-shadow .3s}
.mstep:hover{transform:translateY(-5px);box-shadow:0 20px 44px -14px rgba(216,118,10,.72)}
.mstep__n{display:inline-grid;place-items:center;width:2.1em;height:2.1em;border-radius:50%;
  background:#fff;color:var(--orange-600);font-family:var(--font-display);font-weight:700;font-size:1.3rem;margin-bottom:.6rem}
.mstep h3{font-family:var(--font-display);color:#fff;font-size:1.3rem;line-height:1.2;margin:0 0 .3em}
.mstep p{color:rgba(255,255,255,.94);font-size:1.2rem;line-height:1.5;margin:0}

.mfacts{list-style:none;margin:var(--space-6) 0 0;padding:0;display:grid;gap:.85rem;max-width:var(--w-prose)}
.mfacts li{position:relative;padding-left:2rem;line-height:1.55;color:var(--color-text)}
.mfacts li::before{content:"";position:absolute;left:.1rem;top:.35em;width:1.05rem;height:1.05rem;border-radius:50%;
  background:var(--orange-500);box-shadow:inset 0 0 0 .28rem var(--bone-50)}
.mnote{max-width:var(--w-prose);margin-top:var(--space-6);padding:1.1rem 1.3rem;border-left:4px solid var(--orange-500);
  background:var(--bone-100);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-muted);font-size:1.2rem;line-height:1.55}
/* Good-to-know: facts left, tool-category buttons right */
.gtk-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:start}
@media(max-width:820px){.gtk-grid{grid-template-columns:1fr}}
.gtk-main .mfacts{margin-top:var(--space-6)}
.gtk-main .mfacts,.gtk-main .mnote{max-width:none}
.gtk-side{display:flex;flex-direction:column;gap:.75rem}
.gtk-side__label{font-family:var(--font-body);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  font-size:1.2rem;color:var(--orange-700);margin-bottom:.2rem}
.toolbtn{display:flex;align-items:center;gap:1rem;padding:1rem 1.15rem;border-radius:var(--radius-lg);
  background:#fff;border:1px solid var(--color-border);text-decoration:none;color:var(--clay-700);
  box-shadow:var(--shadow-1);transition:transform .3s var(--ease-out-soft),box-shadow .3s,background .3s,color .3s,border-color .3s}
.toolbtn:hover,.toolbtn:focus-visible{transform:translateY(-3px);box-shadow:0 16px 34px -14px rgba(216,118,10,.6);
  background:linear-gradient(160deg,var(--orange-500),var(--orange-600));color:#fff;border-color:transparent;outline:none}
.toolbtn__ic{width:2.4em;height:2.4em;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;
  background:rgba(248,148,30,.14);color:var(--orange-600);transition:background .3s,color .3s}
.toolbtn__ic svg{width:1.25em;height:1.25em}
.toolbtn:hover .toolbtn__ic,.toolbtn:focus-visible .toolbtn__ic{background:rgba(255,255,255,.22);color:#fff}
.toolbtn__t{flex:1;font-family:var(--font-display);font-weight:700;font-size:1.3rem;line-height:1.15}
.toolbtn__ar{font-weight:700;opacity:.55;transition:transform .3s,opacity .3s}
.toolbtn:hover .toolbtn__ar,.toolbtn:focus-visible .toolbtn__ar{opacity:1;transform:translateX(3px)}

/* ===== Accessibility widget (bottom-left) ===== */
.a11y{position:fixed;left:clamp(.8rem,2vw,1.4rem);bottom:clamp(.8rem,2vw,1.4rem);z-index:135}
.a11y__fab{width:54px;height:54px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  background:var(--clay-900);color:#fff;box-shadow:0 12px 30px -8px rgba(20,12,2,.5);transition:transform .3s,background .3s}
.a11y__fab:hover{transform:scale(1.07);background:var(--orange-600)}
.a11y__fab:focus-visible{outline:3px solid var(--orange-500);outline-offset:3px}
.a11y__panel{position:absolute;left:0;bottom:calc(100% + .7rem);width:min(85vw,272px);
  background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  box-shadow:0 26px 60px -18px rgba(20,12,2,.5);padding:.9rem;display:flex;flex-direction:column;gap:.5rem}
.a11y__panel[hidden]{display:none}
.a11y__head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-display);
  font-weight:700;color:var(--clay-700);font-size:1.3rem}
.a11y__x{border:0;background:none;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--color-text-muted);padding:0 .2em}
.a11y__row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .65rem;
  background:var(--bone-100);border-radius:12px;font-size:1.2rem;font-weight:600;color:var(--clay-700)}
.a11y__steps{display:flex;gap:.3rem}
.a11y__steps button{width:2.1em;height:2.1em;border-radius:9px;border:1px solid var(--color-border);background:#fff;
  cursor:pointer;font-weight:700;color:var(--clay-700);font-size:1.2rem}
.a11y__steps button:hover{background:var(--orange-500);color:#fff;border-color:transparent}
.a11y__opt{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;border-radius:12px;border:1px solid var(--color-border);
  background:#fff;cursor:pointer;font-size:1.2rem;font-weight:600;color:var(--clay-700);text-align:left;
  transition:background .2s,color .2s,border-color .2s}
.a11y__opt .a11y__ic{width:1.5em;height:1.5em;flex:0 0 auto;display:grid;place-items:center;color:var(--orange-600)}
.a11y__opt .a11y__ic svg{width:1.2em;height:1.2em}
.a11y__opt:hover{border-color:var(--orange-400)}
.a11y__opt[aria-pressed="true"]{background:linear-gradient(160deg,var(--orange-500),var(--orange-600));color:#fff;border-color:transparent}
.a11y__opt[aria-pressed="true"] .a11y__ic{color:#fff}
.a11y__reset{margin-top:.15rem;padding:.55rem;border-radius:12px;border:1px solid var(--color-border);
  background:var(--bone-100);cursor:pointer;font-weight:700;font-size:1.2rem;color:var(--clay-700)}
.a11y__reset:hover{background:var(--clay-900);color:#fff;border-color:transparent}
/* effect classes applied to <html> */
html.a11y-text-1{font-size:107%}
html.a11y-text-2{font-size:114%}
html.a11y-text-3{font-size:122%}
html.a11y-links a:not(.btn):not(.fab):not(.a11y__opt):not(.a11y__fab){text-decoration:underline !important;text-underline-offset:2px;font-weight:600}
html.a11y-readable :where(p,li,a,span,h1,h2,h3,h4,label,input,select,textarea,button,blockquote,figcaption,cite,dd,dt){font-family:Verdana,Tahoma,"Segoe UI",sans-serif !important;letter-spacing:.01em}
html.a11y-readable :where(p,li){line-height:1.85 !important}
html.a11y-noanim *,html.a11y-noanim *::before,html.a11y-noanim *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}

/* full-width photo band (drop a strip of imagery into any section) */
.photoband{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,1.4vw,1rem);margin-top:var(--space-7);border-radius:var(--radius-lg);overflow:hidden}
.photoband img{width:100%;height:100%;aspect-ratio:1;object-fit:cover;display:block}
.photoband--2{grid-template-columns:repeat(2,1fr)}
.photoband--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:640px){.photoband,.photoband--4{grid-template-columns:repeat(2,1fr)}}

/* ===== Home: latest-news 3-up ===== */
.home-news{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);margin-top:var(--space-7)}
.home-news .narticle{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-1);color:inherit;
  transition:transform var(--dur-base) var(--ease-out-soft),box-shadow var(--dur-base) var(--ease-out-soft)}
.home-news .narticle:hover{transform:translateY(-6px);box-shadow:var(--shadow-3)}
.home-news .narticle__img{aspect-ratio:16/10;overflow:hidden}
.home-news .narticle__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out-soft)}
.home-news .narticle:hover .narticle__img img{transform:scale(1.06)}
.home-news .narticle__body{padding:var(--space-5);display:flex;flex-direction:column;gap:.5rem}
.home-news .narticle__title{font-family:var(--font-display);font-weight:700;color:var(--color-heading);font-size:1.2rem;line-height:1.25}
.home-news .narticle p{color:var(--color-text-muted);font-size:1.2rem;margin:0}
.home-news .narticle__meta{margin-top:auto;color:var(--clay-500);font-size:1.2rem;font-weight:600}
@media (max-width:900px){.home-news{grid-template-columns:1fr}}

/* ===========================================================================
   About page, editorial blocks (stacked cards, photo collage, story panel)
   =========================================================================== */

/* underlined eyebrow accent */
.eyebrow--line{position:relative;display:inline-block;padding-bottom:.45em}
.eyebrow--line::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--orange-500),var(--orange-300))}
/* highlight a word inside a heading, second colour makes headings two-tone */
.u-mark{position:relative;color:var(--orange-600);white-space:nowrap}
.u-mark::after{content:"";position:absolute;left:-.04em;right:-.04em;bottom:.04em;height:.18em;
  background:var(--orange-200);border-radius:3px;z-index:-1}
/* site-wide two-tone headings: brown base + orange accent on the trailing word(s) */
.hl{color:var(--orange-600)}
/* dark panels (white text): lift the accent so orange stays vivid */
.join .hl,.action .hl,.story__panel .hl,.page-hero .hl{color:var(--orange-400)}
/* orange panels: orange-on-orange disappears, so use a contrasting tone */
.flood .hl{color:var(--clay-900)}
.newsletter .hl{color:#fff}

/* big editorial heading for About splits */
.lead-xl{font-size:clamp(1.3rem,1.6vw,1.4rem);color:var(--ink-700);max-width:54ch}

/* ----- Stacked / fanned photo cards ----- */
.photo-stack{position:relative;min-height:clamp(340px,40vw,500px)}
.photo-stack img{position:absolute;border-radius:var(--radius-xl);box-shadow:var(--shadow-3);object-fit:cover}
.photo-stack img:nth-child(1){width:62%;aspect-ratio:3/4;top:0;right:4%;transform:rotate(4deg);z-index:3}
.photo-stack img:nth-child(2){width:54%;aspect-ratio:3/4;bottom:0;left:0;transform:rotate(-5deg);z-index:2}
.photo-stack img:nth-child(3){width:40%;aspect-ratio:1;bottom:8%;right:0;transform:rotate(-2deg);z-index:1;opacity:.96}
@media (max-width:820px){.photo-stack{min-height:380px}}

/* ----- Staggered photo collage + floating pills ----- */
.collage{position:relative;display:grid;grid-template-columns:.82fr 1.18fr;gap:1rem;align-items:start}
.collage__col{display:grid;gap:1rem}
.collage__col:last-child{margin-top:1.4rem}
.collage img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow-2);object-fit:cover;display:block}
.collage__col:first-child img:nth-child(1){aspect-ratio:1}
.collage__col:first-child img:nth-child(2){aspect-ratio:1}
.collage__col:last-child img:nth-child(1){aspect-ratio:1/1}
.collage__col:last-child img:nth-child(2){aspect-ratio:4/3}
.float-pill{position:absolute;left:-10px;top:38%;background:#fff;border-radius:16px;
  box-shadow:var(--shadow-3);padding:.55em .9em .55em .6em;display:flex;align-items:center;gap:.55em;z-index:5}
.float-pill .avatars{display:flex}
.float-pill .avatars img{width:30px;height:30px;border-radius:50%;border:2px solid #fff;margin-left:-12px;object-fit:cover;box-shadow:none}
.float-pill .avatars img:first-child{margin-left:0}
.float-pill__num{font-family:var(--font-display);font-weight:700;color:var(--clay-700);font-size:1.2rem;line-height:1}
.float-pill__txt{font-size:1.2rem;color:var(--color-text-muted);font-weight:600;line-height:1.1}

/* inline stat chip (orange) */
.stat-chip{display:inline-flex;align-items:center;gap:.8em;background:var(--orange-300);
  border-radius:18px;padding:.95em 1.6em;margin-top:1.6rem}
.stat-chip__num{font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--clay-900);line-height:1}
.stat-chip__label{font-weight:700;color:var(--clay-700);font-size:1.2rem}
/* two-image variant, balanced, one column dropped for rhythm */
.collage--duo{grid-template-columns:1fr 1fr;gap:1.1rem}
.collage--duo .collage__col:last-child{margin-top:2.6rem}
@media (max-width:820px){.collage__col:last-child{margin-top:0}.collage--duo .collage__col:last-child{margin-top:0}}

/* ----- Story panel (dark) + 2x2 photo grid ----- */
.story{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-3)}
.story__panel{background:var(--clay-900);color:#fff;padding:clamp(1.8rem,4vw,3.4rem);
  display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.story__panel .eyebrow{color:var(--orange-300)}
.story__panel h2{color:#fff;font-size:var(--fs-h2);margin:.3em 0 0}
.story__quote{color:rgba(255,255,255,.86);font-size:clamp(1.3rem,1.5vw,1.4rem);line-height:1.65;margin:1.2em 0 0}
.story__cite{display:block;margin-top:1.1em;font-weight:700;color:var(--orange-300);font-size:1.2rem;font-style:normal}
.story__nav{display:flex;gap:.7rem;margin-top:1.8rem}
.story__nav button{width:50px;height:50px;border-radius:50%;border:1px solid rgba(255,255,255,.4);
  background:none;color:#fff;cursor:pointer;font-size:1.2rem;transition:background var(--dur-base) var(--ease-out-soft)}
.story__nav button:hover{background:rgba(255,255,255,.12)}
.photo-quad{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.photo-quad img{width:100%;height:100%;object-fit:cover;aspect-ratio:1;display:block}
@media (max-width:820px){.story{grid-template-columns:1fr}.photo-quad{order:-1}}

/* ----- Core-values heading split ----- */
.cv-head{display:grid;grid-template-columns:1.3fr .9fr;gap:clamp(1.5rem,4vw,4rem);align-items:end}
.cv-head h2{font-size:clamp(2rem,4.4vw,3.2rem);margin:.2em 0 0;line-height:1.05}
.cv-head p{color:var(--color-text-muted);font-size:1.3rem}
@media (max-width:820px){.cv-head{grid-template-columns:1fr}}

/* =========================================================================
   BOARD MEMBER CARDS + MODAL (click a card → bio modal)
   ========================================================================= */
.boardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:clamp(1rem,2vw,1.5rem);margin-top:var(--space-7)}
.bmcard{position:relative;display:block;width:100%;padding:0;border:0;cursor:pointer;text-align:left;
  border-radius:var(--radius-lg);overflow:hidden;background:var(--clay-900);aspect-ratio:3/4;
  box-shadow:var(--shadow-1);transition:transform .3s var(--ease-out-soft),box-shadow .3s var(--ease-out-soft)}
.bmcard:hover,.bmcard:focus-visible{transform:translateY(-6px);box-shadow:var(--shadow-3);outline:none}
.bmcard>img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .6s var(--ease-out-soft)}
.bmcard:hover>img,.bmcard:focus-visible>img{transform:scale(1.07)}
.bmcard::before{content:"";position:absolute;left:0;top:0;width:100%;height:5px;background:var(--orange-500);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out-soft);z-index:2}
.bmcard:hover::before,.bmcard:focus-visible::before{transform:scaleX(1)}
.bmcard__info{position:absolute;inset:auto 0 0 0;padding:1.6em 1.1em 1.1em;z-index:1;
  background:linear-gradient(transparent,rgba(26,16,4,.55) 40%,rgba(26,16,4,.92))}
.bmcard__role{display:none;font-size:1.2rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--orange-300)}
.bmcard__name{font-family:var(--font-display);font-weight:700;font-size:1.22rem;color:#fff;line-height:1.12;margin:.18em 0 0}
.bmcard__more{display:inline-block;margin-top:.5em;font-size:1.2rem;font-weight:600;color:rgba(255,255,255,.9);
  opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.bmcard:hover .bmcard__more,.bmcard:focus-visible .bmcard__more{opacity:1;transform:none}

.bmodal{border:0;padding:0;max-width:640px;width:calc(100% - 2rem);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-3);background:var(--color-surface);color:var(--color-text);overflow:hidden}
.bmodal::backdrop{background:rgba(26,16,4,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.bmodal[open]{animation:bmIn .32s var(--ease-out-soft)}
@keyframes bmIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.bmodal__close{position:absolute;top:.85rem;right:.85rem;width:42px;height:42px;border-radius:50%;border:0;
  background:rgba(255,255,255,.85);color:var(--clay-900);font-size:1.5rem;line-height:1;cursor:pointer;z-index:3;
  display:grid;place-items:center;transition:background .2s,transform .2s}
.bmodal__close:hover{background:#fff;transform:rotate(90deg)}
.bmodal__head{display:flex;gap:1.1rem;align-items:center;padding:clamp(1.4rem,3vw,2rem);
  background:linear-gradient(150deg,var(--orange-200),var(--bone-50))}
.bmodal__photo{width:88px;height:88px;border-radius:50%;object-fit:cover;object-position:top center;flex:0 0 auto;
  box-shadow:var(--shadow-2);border:3px solid #fff}
.bmodal__role{font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--orange-700)}
.bmodal__name{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,3vw,1.7rem);color:var(--clay-900);margin:.15em 0 0;line-height:1.1}
.bmodal__body{padding:clamp(1.3rem,3vw,2rem);max-height:54vh;overflow:auto}
.bmodal__body p{margin-bottom:1em;color:var(--color-text);font-size:1.3rem;line-height:1.65}
.bmodal__body p:last-child{margin-bottom:0}
.bmodal__body blockquote{border-left:4px solid var(--orange-500);padding-left:1.1rem;font-style:italic;
  color:var(--clay-700);margin:1.1em 0;font-size:1.3rem}
@media (prefers-reduced-motion:reduce){.bmodal[open]{animation:none}.bmcard:hover>img{transform:none}}

/* ===== Generic horizontal carousel (scroll-snap + arrows) ===== */
.carousel{position:relative}
.carousel__track{display:flex;gap:clamp(1rem,2vw,1.5rem);overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding:4px 4px 1.4rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.carousel__track::-webkit-scrollbar{display:none}
.carousel__track>*{scroll-snap-align:start;flex:0 0 auto;width:min(86%,370px);margin:0}
.carousel__nav{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.2rem}
.carousel__btn{width:50px;height:50px;border-radius:50%;border:1.5px solid var(--clay-300);background:var(--color-surface);
  color:var(--clay-700);cursor:pointer;font-size:1.2rem;display:grid;place-items:center;
  transition:background .2s,color .2s,transform .2s,border-color .2s}
.carousel__btn:hover:not(:disabled){background:var(--orange-500);color:#fff;border-color:transparent;transform:translateY(-2px)}
.carousel__btn:disabled{opacity:.35;cursor:default}

/* commitment cards */
.commits{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem}

/* ---- auto-scrolling commitments marquee ---- */
.commit-marquee{overflow:hidden;width:100%;padding-block:.5rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.commit-marquee__track{display:flex;align-items:stretch;gap:clamp(1.1rem,2vw,1.6rem);width:max-content;
  padding:.6rem clamp(1rem,2vw,2rem) 1.4rem;animation:commitscroll 80s linear infinite}
.commit-marquee:hover .commit-marquee__track{animation-play-state:paused}
@keyframes commitscroll{to{transform:translateX(-50%)}}

/* fancy quote card */
.commit{position:relative;display:flex;flex-direction:column;flex:0 0 clamp(290px,30vw,372px);
  background:linear-gradient(162deg,#fff,var(--bone-50));border:1px solid var(--color-border);
  border-radius:var(--radius-xl);padding:2.3rem 1.6rem 1.5rem;box-shadow:var(--shadow-2);overflow:hidden;
  transition:transform .35s var(--ease-out-soft),box-shadow .35s}
.commit::before{content:"";position:absolute;left:0;top:0;width:100%;height:5px;
  background:linear-gradient(90deg,var(--orange-500),var(--orange-300))}
.commit::after{content:"\201C";position:absolute;top:-.35rem;right:1.1rem;font-family:var(--font-display);
  font-weight:700;font-size:6rem;line-height:1;color:var(--orange-200);z-index:0;pointer-events:none}
.commit:hover{transform:translateY(-7px);box-shadow:var(--shadow-3)}
.commit__text{position:relative;z-index:1;color:var(--color-text);font-style:italic;line-height:1.62;margin:0;font-size:1.3rem}
.commit__by{display:flex;align-items:center;gap:.8rem;margin-top:auto;padding-top:1.4rem}
.commit__avatar{flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--orange-500),var(--orange-700));color:#fff;
  font-family:var(--font-display);font-weight:700;font-size:1.2rem;box-shadow:var(--shadow-1)}
.commit__meta{display:flex;flex-direction:column;min-width:0}
.commit cite{font-style:normal;font-weight:700;color:var(--clay-900);line-height:1.2}
.commit__role{color:var(--orange-700);font-size:1.2rem;font-weight:600;margin-top:.1em}
/* Wall of Fame, commitment org label + group headings */
.commit__org{display:inline-block;position:relative;z-index:1;font-family:var(--font-display);font-weight:800;
  font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase;color:var(--orange-700);margin-bottom:.6rem}
.wof-group{font-family:var(--font-display);font-size:clamp(1.25rem,2vw,1.7rem);color:var(--clay-900);
  display:flex;align-items:center;gap:.8rem;margin:2.8rem 0 1.2rem}
.wof-group:first-of-type{margin-top:.4rem}
.wof-group::after{content:"";flex:1;height:1px;background:var(--color-border)}
.wof-thanks{max-width:62ch;color:var(--color-text);font-size:1.3rem;line-height:1.6;margin-top:.4rem}
.wof-thanks strong{color:var(--clay-900);font-weight:700}

/* ---- Wall of Fame: partner logo wall + commitment modals ---- */
.wofwall{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1.1rem;margin:1.3rem 0 2.6rem}
.wofcard{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line,#e7e0d4);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .2s var(--ease-out-soft),box-shadow .2s}
.wofcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.wofcard::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;z-index:1;background:var(--orange-500)}
.wofcard:nth-child(4n+2)::before{background:var(--orange-300)}
.wofcard:nth-child(4n+3)::before{background:var(--orange-600)}
.wofcard:nth-child(4n+4)::before{background:var(--clay-500)}
.wofcard__logo{display:grid;place-items:center;height:128px;padding:1.3rem 1.2rem}
.wofcard__logo img{max-width:100%;max-height:88px;width:auto;height:auto;object-fit:contain}
.wofcard__btn{margin-top:auto;border:0;border-top:1px solid var(--line,#efe7d8);background:var(--color-primary);color:var(--ink-900);
  font:inherit;font-weight:700;font-size:1.2rem;padding:.9em 1em;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4em;
  transition:background .18s,gap .18s,color .18s}
.wofcard__btn:hover{background:var(--color-primary-hover);color:#fff;gap:.65em}
.wofcard__btn-i{transition:transform .18s}
.wofcard__btn:hover .wofcard__btn-i{transform:translateX(3px)}
.wofcard--plain .wofcard__tag{display:block;margin-top:auto;text-align:center;border-top:1px solid var(--line,#efe7d8);
  padding:.95em 1em;font-size:1.2rem;color:var(--color-text-muted);font-weight:600}
/* modal */
.wofmodal{border:0;border-radius:var(--radius-xl);padding:0;max-width:min(560px,94vw);width:min(560px,94vw);
  background:linear-gradient(180deg,#fff,var(--bone-50,#fbf7f0));box-shadow:var(--shadow-3);color:var(--color-text)}
.wofmodal:not([open]){display:none}
.wofmodal[open]{display:block;animation:wofpop .4s cubic-bezier(.2,1.1,.4,1)}
.wofmodal::backdrop{background:rgba(30,18,6,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
@keyframes wofpop{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.wofmodal__close{position:absolute;top:.7rem;right:.7rem;width:38px;height:38px;border-radius:50%;border:1px solid var(--line,#e7e0d4);
  background:#fff;font-size:1.7rem;line-height:1;color:var(--ink-700);cursor:pointer;z-index:2;transition:background .15s,transform .2s}
.wofmodal__close:hover{background:var(--orange-50,#fff7ee);transform:rotate(90deg)}
.wofmodal__body{padding:2.7rem 2.2rem 2.3rem;text-align:center;max-height:88vh;overflow:auto}
.wofq__text{position:relative;margin:0 0 1.7rem;font-size:1.35rem;line-height:1.62;color:var(--color-text)}
.wofq__text::before{content:"\201C";display:block;font-family:var(--font-display);font-weight:700;font-size:3.2rem;line-height:.5;
  color:var(--orange-300);margin-bottom:.18em}
.wofq__person{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:0}
.wofq__person figcaption{display:flex;flex-direction:column;align-items:center;gap:.15rem}
.wofq__photo{width:92px;height:92px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 6px 18px rgba(40,20,8,.22)}
.wofq__photo--ini{display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.9rem;
  background:linear-gradient(140deg,var(--orange-500),var(--orange-700))}
.wofq__name{font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--orange-600);line-height:1.2}
.wofq__role{font-size:1.2rem;color:var(--color-text-muted);max-width:38ch}
@media(max-width:560px){.wofmodal__body{padding:2.5rem 1.4rem 1.9rem}.wofq__text{font-size:1.25rem}}
@media (prefers-reduced-motion:reduce){
  .commit-marquee{overflow-x:auto;scroll-snap-type:x mandatory}
  .commit-marquee__track{animation:none}
  .commit{scroll-snap-align:start}
}

/* ===========================================================================
   HEALTH-TOOLS TRACKING, calendars, charts, history (tools-track.js)
   Works on both the dark tool result panels and the light dashboard.
   =========================================================================== */
/* charts */
.awc{width:100%;height:auto;display:block}
.awchart{margin:1rem 0;background:rgba(255,255,255,.06);border-radius:12px;padding:.6rem .4rem}
.awring{width:110px;height:110px}
/* calendar */
.awcals{display:flex;gap:1rem;flex-wrap:wrap;margin:1.1rem 0 .4rem}
.awcal{flex:1 1 240px;min-width:228px}
.awcal__h{font-weight:700;font-size:1.2rem;margin-bottom:.5rem;text-align:center}
.awcal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.awcal__dow{font-size:1.2rem;text-transform:uppercase;letter-spacing:.03em;opacity:.55;text-align:center;padding:.2em 0;font-weight:700}
.awcal__d{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border-radius:7px;background:rgba(127,127,127,.12)}
.awcal__d--pad{background:none}
.awcal__d.is-period{background:#d23c77;color:#fff;font-weight:700}
.awcal__d.is-fertile{background:rgba(31,150,95,.30);box-shadow:inset 0 0 0 1.5px #1f965f}
.awcal__d.is-ovul{background:#F8941E;color:#2a1a06;font-weight:800}
.awcal__d.is-today{outline:2px solid currentColor;outline-offset:1px;font-weight:800}
/* legend */
.awlegend{display:flex;flex-wrap:wrap;gap:.45rem 1.1rem;margin:.2rem 0 .6rem;font-size:1.2rem}
.awlg{display:inline-flex;align-items:center;gap:.45em}
.awlg::before{content:"";width:.9em;height:.9em;border-radius:4px;flex:none}
.awlg.is-period::before{background:#d23c77}
.awlg.is-fertile::before{background:rgba(31,150,95,.4);box-shadow:inset 0 0 0 1.5px #1f965f}
.awlg.is-ovul::before{background:#F8941E}
.awlg.is-today::before{background:transparent;outline:2px solid currentColor;outline-offset:-2px}
/* save button + history (inside dark .tresult) */
.tbtn--save{margin-top:1.1rem}
.tresult .tbtn--save{background:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.55)}
.tresult .tbtn--save:hover{background:rgba(255,255,255,.26)}
.tbtn--saved{display:inline-block;margin-top:1.1rem;padding:.7em 1.4em;border-radius:99px;font-weight:700;cursor:default;background:var(--bone-100);color:var(--clay-700);border:1.5px dashed var(--color-border)}
.tresult .tbtn--saved{background:rgba(255,255,255,.12);color:#fff;border:1.5px dashed rgba(255,255,255,.55)}
.awtable{margin-top:1rem;width:100%;background:rgba(255,255,255,.06);border-radius:10px;overflow:hidden}
.awtable td{padding:.55rem .8rem;font-size:1.2rem;border-bottom:1px solid rgba(255,255,255,.12)}
.awhist{margin-top:1.4rem;border-top:1px solid rgba(255,255,255,.2);padding-top:1.2rem}
.awhist__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.awhist__head h4{margin:0;font-size:1.2rem}
.awhist__dash{color:#fff;font-weight:700;text-decoration:underline;font-size:1.2rem}
.awstats{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1rem 0}
.awstat{background:rgba(255,255,255,.1);border-radius:12px;padding:.7rem .5rem;text-align:center}
.awstat b{display:block;font-size:1.2rem;font-weight:800}
.awstat span{font-size:1.2rem;opacity:.72;text-transform:uppercase;letter-spacing:.03em}
.awhist__list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.awhist__list li{display:flex;align-items:center;gap:.6rem;background:rgba(255,255,255,.07);border-radius:9px;padding:.45rem .7rem;font-size:1.2rem}
.awhist__len{margin-left:auto;font-weight:700}
.awhist__x{background:none;border:0;color:inherit;opacity:.6;font-size:1.2rem;line-height:1;cursor:pointer;padding:0 .2em}
.awhist__x:hover{opacity:1}

/* ---------- Dashboard (light page) ---------- */
.dash{color:var(--color-text)}
.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.2rem}
.dash-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.3rem;box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:.25rem}
.dash-card__k{font-size:1.2rem;text-transform:uppercase;letter-spacing:.06em;color:var(--stone-600);font-weight:700}
.dash-card__big{font-size:1.85rem;font-weight:800;line-height:1.05;color:var(--ink-900)}
.dash-card__big small{font-size:1.2rem;font-weight:600;color:var(--stone-600)}
.dash-card__sub{font-size:1.2rem;color:var(--color-text-muted)}
.dash-card--hero{background:linear-gradient(150deg,var(--orange-500),var(--orange-600));box-shadow:var(--shadow-2)}
.dash-card--hero .dash-card__k,.dash-card--hero .dash-card__big,.dash-card--hero .dash-card__sub{color:#fff}
.dash-card--ring{align-items:center;text-align:center}
.dash-card--ring .awring{width:100px;height:100px;color:var(--ink-900);margin-top:.2rem}
.dash-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.2rem}
.dash-panel{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.3rem 1.4rem;box-shadow:var(--shadow-1)}
.dash-panel>h3{font-size:1.2rem;margin:0 0 .8rem}
.dash-panel__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}
.dash-panel__head h3{margin:0;font-size:1.2rem}
.dash-chart{color:var(--clay-700)}
.dash-clear{background:none;border:1px solid var(--stone-400);color:var(--clay-500);border-radius:99px;padding:.3em .95em;font-size:1.2rem;font-weight:700;cursor:pointer}
.dash-clear:hover{background:var(--clay-500);color:#fff}
.dash-table{width:100%;border-collapse:collapse;margin-top:.4rem;font-size:1.2rem}
.dash-table th{text-align:left;font-size:1.2rem;text-transform:uppercase;letter-spacing:.05em;color:var(--stone-600);padding:.5rem .6rem;border-bottom:2px solid var(--bone-100)}
.dash-table td{padding:.6rem;border-bottom:1px solid var(--bone-100)}
.dash-table .awhist__x{color:var(--clay-500)}
.dash-empty{text-align:center;max-width:480px;margin:2rem auto;color:var(--color-text-muted)}
.dash-empty svg{color:var(--orange-500);margin-bottom:.4rem}
.dash-empty h3{font-size:1.5rem;color:var(--ink-900);margin:.2rem 0 .5rem}
.dash-empty__links{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:1.2rem}
.dash-hint{color:var(--color-text-muted);font-style:italic;padding:1rem 0}
@media(max-width:760px){.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-row{grid-template-columns:1fr}}
@media(max-width:560px){.awstats{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   BLOG / EDITORIAL  (native WP posts: index, archive, single)
   ============================================================ */
/* --- chips / filters --- */
.blog-chips{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:2.2rem}
.blog-chip{display:inline-flex;align-items:center;padding:.5rem 1.05rem;border-radius:999px;background:var(--bone,#f4efe7);color:var(--ink-700,#5a534a);font-weight:600;font-size:1.2rem;line-height:1;text-decoration:none;border:1px solid transparent;transition:background .18s,color .18s,border-color .18s}
.blog-chip:hover{background:#fff;border-color:var(--orange-200,#f6d9b6);color:var(--ink-900)}
.blog-chip.is-on{background:var(--orange-600,#F8941E);color:#fff}

/* --- featured lead card --- */
.blog-feat-wrap{margin-bottom:2.4rem}
.blog-card{display:flex;flex-direction:column;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 1px 3px rgba(40,30,15,.06),0 12px 30px -18px rgba(40,30,15,.25);transition:transform .22s ease,box-shadow .22s ease}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 2px 6px rgba(40,30,15,.08),0 22px 46px -20px rgba(40,30,15,.35)}
.blog-card__media{position:relative;display:block;aspect-ratio:16/10;background-size:cover;background-position:center;background-color:#e9e2d6}
.blog-card__cat{position:absolute;top:.9rem;left:.9rem;background:rgba(255,255,255,.94);color:var(--ink-900);font-weight:700;font-size:1.2rem;letter-spacing:.02em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px;backdrop-filter:blur(4px)}
.blog-card__body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.blog-card__meta{display:flex;align-items:center;gap:.5rem;color:var(--color-text-muted,#8a8175);font-size:1.2rem;font-weight:500}
.blog-card__meta .dot{opacity:.6}
.blog-card__title{font-size:1.3rem;line-height:1.25;margin:0}
.blog-card__title a{color:var(--ink-900);text-decoration:none}
.blog-card__title a:hover{color:var(--orange-600,#F8941E)}
.blog-card__excerpt{color:var(--ink-700,#5a534a);font-size:1.3rem;line-height:1.55;margin:0;flex:1}
.blog-card__more{color:var(--orange-600,#F8941E);font-weight:700;font-size:1.2rem;margin-top:.2rem}
.blog-card__more .arrow{transition:transform .18s}
.blog-card:hover .blog-card__more .arrow{transform:translateX(4px)}

/* featured = side-by-side on wide screens */
.blog-card--feat{flex-direction:row;align-items:stretch}
.blog-card--feat .blog-card__media{flex:0 0 56%;aspect-ratio:auto;min-height:340px}
.blog-card--feat .blog-card__body{justify-content:center;padding:2.4rem 2.6rem}
.blog-card--feat .blog-card__title{font-size:2rem;line-height:1.15}
.blog-card--feat .blog-card__excerpt{font-size:1.3rem}
@media(max-width:820px){.blog-card--feat{flex-direction:column}.blog-card--feat .blog-card__media{flex:none;aspect-ratio:16/10;min-height:0}.blog-card--feat .blog-card__body{padding:1.5rem 1.6rem 1.8rem}.blog-card--feat .blog-card__title{font-size:1.5rem}}

/* --- grid --- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.blog-grid{grid-template-columns:1fr}}

/* --- pagination --- */
.blog-pagination{display:flex;justify-content:center;margin-top:3rem}
.blog-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .7rem;margin:0 .25rem;border-radius:12px;background:#fff;color:var(--ink-700,#5a534a);font-weight:600;text-decoration:none;border:1px solid var(--line,#e7e0d4);transition:background .15s,color .15s,border-color .15s}
.blog-pagination .page-numbers:hover{border-color:var(--orange-300,#f3c389);color:var(--ink-900)}
.blog-pagination .page-numbers.current{background:var(--orange-600,#F8941E);color:#fff;border-color:var(--orange-600,#F8941E)}
.blog-pagination .page-numbers.dots{background:none;border:none}

.blog-empty{text-align:center;padding:3rem 1rem}
.blog-empty p{color:var(--color-text-muted);font-size:1.3rem;margin-bottom:1.2rem}

.blog-search{display:flex;gap:.6rem;max-width:480px;margin-top:1.4rem}
.blog-search input{flex:1;padding:.8rem 1.1rem;border-radius:12px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.92);font-size:1.2rem}

/* ============================================================
   SINGLE ARTICLE
   ============================================================ */
.art-hero{padding:3rem 0 1.6rem;background:linear-gradient(180deg,var(--bone,#f7f2ea),transparent)}
.art-hero__inner{max-width:820px}
.art-hero__cat{display:inline-block;margin-bottom:1rem;background:var(--orange-600,#F8941E);color:#fff;font-weight:700;font-size:1.2rem;letter-spacing:.03em;text-transform:uppercase;padding:.4rem .85rem;border-radius:999px;text-decoration:none}
.art-hero__title{font-size:clamp(2rem,4.5vw,3.1rem);line-height:1.1;margin:0 0 1rem}
.art-hero__dek{font-size:1.3rem;line-height:1.5;color:var(--ink-700,#5a534a);margin:0 0 1.6rem}
.art-hero__meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;color:var(--color-text-muted,#8a8175);font-size:1.2rem}
.art-hero__meta .dot{opacity:.55}
.art-avatar{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--orange-600,#F8941E);color:#fff;font-weight:700;font-size:1.2rem;flex:none}
.art-avatar--lg{width:56px;height:56px;font-size:1.2rem}

.art-cover{margin:1.8rem auto 0;max-width:1040px;padding:0 1.5rem}
.art-cover img{width:100%;height:auto;max-height:560px;object-fit:cover;border-radius:22px;display:block}

.art-shell{display:grid;grid-template-columns:64px minmax(0,820px);justify-content:center;gap:2rem;padding-top:2.6rem;padding-bottom:1rem}
.art-share{position:sticky;top:100px;align-self:start;display:flex;flex-direction:column;align-items:center;gap:.6rem}
.art-share__label{font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.2rem}
.art-share__btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--line,#e7e0d4);color:var(--ink-700,#5a534a);font-weight:700;font-size:1.2rem;cursor:pointer;text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.art-share__btn:hover{background:var(--orange-600,#F8941E);color:#fff;border-color:var(--orange-600,#F8941E)}
.art-share__btn.is-copied{background:#2f9e44;color:#fff;border-color:#2f9e44}
.art-body{max-width:820px}
.art-body.prose>*{margin-left:0;margin-right:0}

.art-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:2.4rem 0 0}
.art-tags a{background:var(--bone,#f4efe7);color:var(--ink-700,#5a534a);padding:.35rem .8rem;border-radius:999px;font-size:1.2rem;text-decoration:none}
.art-tags a:hover{background:var(--orange-100,#fdecd6);color:var(--ink-900)}

.art-author{display:flex;gap:1.1rem;align-items:flex-start;margin-top:2.6rem;padding:1.6rem;background:var(--bone,#f7f2ea);border-radius:18px}
.art-author__by{display:block;font-size:1.2rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}
.art-author__name{display:block;font-size:1.2rem;color:var(--ink-900);margin:.1rem 0 .4rem}
.art-author__bio{margin:0;color:var(--ink-700,#5a534a);font-size:1.2rem;line-height:1.55}

@media(max-width:760px){.art-shell{grid-template-columns:1fr}.art-share{flex-direction:row;position:static;justify-content:flex-start;flex-wrap:wrap;margin-bottom:.4rem}.art-share__label{width:100%}}

/* ============================================================
   TRACKERS v2, PrEP heatmap, testing log, multi-domain dashboard
   ============================================================ */
.tresult--live{display:block;background:none;color:inherit;padding:0;margin-top:1.2rem}
.tresult--live .awstat b,.tresult--live .tres__h{color:var(--ink-900)}

/* live (on-page) stat strip reuses .awstats but on light bg */
.awstats--4{grid-template-columns:repeat(4,1fr)}
.awstats--3{grid-template-columns:repeat(3,1fr)}
.tresult--live .awstats .awstat{background:var(--bone,#f7f2ea);border-radius:14px;padding:.9rem .6rem;text-align:center}
.tresult--live .awstats .awstat b{font-size:1.5rem;display:block;color:var(--orange-600,#F8941E)}
.tresult--live .awstats .awstat span{font-size:1.2rem;color:var(--color-text-muted)}
.awstat--alert b{color:#d23c77 !important}

/* PrEP heatmap states on the shared calendar */
.awcals--heat .awcal__d[data-prep-day]{cursor:pointer}
.awcal__d.is-taken{background:#2f9e44;color:#fff;font-weight:700}
.awcal__d.is-missed{background:#fff;color:#c0392b;box-shadow:inset 0 0 0 1px #f0c4bd}
.awcal__d.is-taken.is-today,.awcal__d.is-missed.is-today{box-shadow:0 0 0 2px var(--ink-900)}
.awcals--heat .awcal__d[data-prep-day]:hover{filter:brightness(.95);outline:2px solid var(--orange-300,#f3c389)}
.awlg.is-taken::before{background:#2f9e44}
.awlg.is-missed::before{background:#fff;box-shadow:inset 0 0 0 1px #f0c4bd}

.awc-empty{color:var(--color-text-muted);font-size:1.2rem;line-height:1.55;margin:.9rem 0 1rem}
.awc-ringrow{display:flex;align-items:center;gap:1.3rem;background:var(--bone,#f7f2ea);border-radius:16px;padding:1.1rem 1.3rem;margin:1.1rem 0}
.awc-ringrow .awring-wrap{flex:0 0 96px;width:96px;color:var(--ink-900)}
.awc-statusline{margin:0;font-size:1.2rem;line-height:1.5;color:var(--ink-700,#5a534a)}

/* "next due" callout on the testing tool */
.awc-due{background:linear-gradient(135deg,#fff,var(--bone,#f7f2ea));border:1px solid var(--line,#e7e0d4);border-radius:16px;padding:1.1rem 1.3rem;margin:1.1rem 0;display:flex;flex-direction:column;gap:.15rem}
.awc-due__k{font-size:1.2rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}
.awc-due strong{font-size:1.4rem;color:var(--ink-900)}
.awc-due__sub{color:var(--ink-700,#5a534a);font-size:1.2rem}
.awc-due.is-overdue{background:linear-gradient(135deg,#fff,#fdecef);border-color:#f0c4bd}
.awc-due.is-overdue strong{color:#d23c77}

/* testing-history timeline */
.awtl{list-style:none;margin:.4rem 0 0;padding:0;position:relative}
.awtl__i{display:flex;align-items:flex-start;gap:.85rem;padding:.7rem 0;border-bottom:1px solid var(--line,#eee)}
.awtl__i:last-child{border-bottom:none}
.awtl__dot{flex:0 0 12px;width:12px;height:12px;border-radius:50%;margin-top:.35rem;background:#bbb}
.awtl__dot.is-neg{background:#2f9e44}.awtl__dot.is-pos{background:#d23c77}.awtl__dot.is-unk{background:#caa24a}
.awtl__body{flex:1;min-width:0}
.awtl__top{display:flex;align-items:center;gap:.6rem;justify-content:space-between}
.awtl__top b{color:var(--ink-900);font-size:1.2rem}
.awtl__res{font-size:1.2rem;font-weight:700;padding:.18rem .55rem;border-radius:999px}
.awtl__res.is-neg{background:#e6f4ea;color:#1e7a37}.awtl__res.is-pos{background:#fce4ec;color:#c2185b}.awtl__res.is-unk{background:#faf3e0;color:#9a7b1f}
.awtl__meta{color:var(--color-text-muted);font-size:1.2rem;margin-top:.15rem}

.tdivider{display:flex;align-items:center;text-align:center;color:var(--color-text-muted);font-size:1.2rem;letter-spacing:.04em;text-transform:uppercase;margin:1.8rem 0 1rem}
.tdivider::before,.tdivider::after{content:"";flex:1;height:1px;background:var(--line,#e7e0d4)}
.tdivider span,.tdivider{gap:.8rem}

/* ---- multi-domain dashboard ---- */
.dash-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.6rem}
.dash-nav{display:flex;gap:.5rem}
.dash-nav a{padding:.45rem .95rem;border-radius:999px;background:var(--bone,#f4efe7);color:var(--ink-700,#5a534a);font-weight:600;font-size:1.2rem;text-decoration:none}
.dash-nav a:hover{background:var(--orange-600,#F8941E);color:#fff}
.dash-toolbar__r{display:flex;gap:.6rem;margin-left:auto}
.dash-tool-btn{padding:.55rem 1.1rem;border-radius:10px;border:1px solid var(--line,#e7e0d4);background:#fff;color:var(--ink-900);font-weight:600;font-size:1.2rem;cursor:pointer;transition:border-color .15s,background .15s}
.dash-tool-btn:hover{border-color:var(--orange-400,#f0a847);background:var(--orange-50,#fff7ee)}

.dash-domain{margin:0 0 2.6rem}
.dash-domain__head{display:flex;align-items:center;gap:.7rem;margin:0 0 1.1rem;padding-bottom:.7rem;border-bottom:2px solid var(--line,#eee)}
.dash-domain__head h2{margin:0;font-size:1.5rem}
.dash-domain__ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:var(--orange-100,#fdecd6);color:var(--orange-700,#c96a0a)}
.dash-domain__ic .ico{width:20px;height:20px}
#dash-prep .dash-domain__ic{background:#e6f4ea;color:#1e7a37}
#dash-tests .dash-domain__ic{background:#fce4ec;color:#c2185b}
.dash-card--green{background:linear-gradient(135deg,#2f9e44,#248a3a) !important}
.dash-card--alert{background:linear-gradient(135deg,#d23c77,#b32d63) !important}
.dash-domain .awtl__top b,.dash-domain .awtl__meta{color:inherit}

@media print{
  .site-header,.mobile-nav,.site-footer,.dash-toolbar,.moretools,.dash-clear,.awhist__x,.dash-empty__links,.thero__media{display:none !important}
  .thero{padding:1rem 0 !important;background:none !important;color:#000 !important}
  .dash-domain{break-inside:avoid;page-break-inside:avoid}
  .dash-card,.dash-panel{box-shadow:none !important;border:1px solid #ccc !important}
  body{font-size:11pt}
}
@media(max-width:680px){.awstats--4,.awstats--3{grid-template-columns:repeat(2,1fr)}.dash-toolbar{flex-direction:column;align-items:stretch}.dash-toolbar__r{margin-left:0}}

/* ============================================================
   HIV PREVENTION IN ACTION ACADEMY, scoped brand
   Palette: red #BD1805 (primary) · charcoal #1C1C1C · blue #0554BB
            · gold #E6C128 (accent) · white. Primary = white + red.
   Applied by adding class="academy" to the page <main>.
   ============================================================ */
.academy{
  /* remap the logo-orange token ramp onto Academy red, lazy var() substitution
     reflows .hl, .btn--primary, links, eyebrows, etc. into the red brand */
  --orange-500:#BD1805; --orange-600:#9E1404; --orange-700:#7A0F03;
  --orange-400:#E0492F; --orange-300:#F0A593; --orange-200:#F4D08A;
  --color-primary:#BD1805; --color-primary-hover:#9E1404;
  --color-link:#9E1404; --color-focus:#BD1805;
  --aca-red:#BD1805; --aca-ink:#1C1C1C; --aca-blue:#0554BB;
  /* "gold" accent retired, now the theme bright orange (no more yellowish tones) */
  --aca-gold:#F8941E; --aca-orange:#F8941E; --aca-orange-deep:#D9760A;
}
.academy .hl{color:var(--aca-red)}
.academy .page-hero .hl,.academy .join .hl{color:var(--aca-gold)}
.academy .page-hero h1 em{color:var(--aca-gold)}
/* Buttons keep the theme orange even on the Academy page; cards & accents stay Academy red/blue/gold */
.academy .btn{
  --orange-500:#F8941E; --orange-600:#D9760A; --orange-700:#A85A0A;
  --orange-400:#FAA847; --orange-300:#FCC580; --orange-200:#FDE2BD;
  --color-primary:#FAA847; --color-primary-hover:#FCC580;
}

/* red-tinted hero overlay so the photo/film carries the brand */
.page-hero--academy .page-hero__media::after{
  background:linear-gradient(180deg,rgba(40,8,3,.62),rgba(120,16,5,.34) 42%,rgba(20,8,4,.86))}

/* academy hero: taller film stage */
.page-hero--academy{min-height:clamp(540px,80vh,840px)}
/* academy hero: background film + sound toggle (sits inline with the CTA buttons) */
.page-hero__video{width:100%;height:100%;object-fit:cover;object-position:center}
.page-hero--academy .page-hero__cta{align-items:center}
.page-hero__sound{flex:0 0 auto;align-self:center;
  width:50px;height:50px;display:grid;place-items:center;border-radius:50%;cursor:pointer;color:#fff;
  background:rgba(20,8,4,.5);border:1.5px solid rgba(255,255,255,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  transition:background .18s var(--ease-out-soft,ease),transform .18s}
.page-hero__sound:hover{background:var(--aca-red,var(--orange-500));transform:scale(1.07)}
.page-hero__sound .ic-on{display:none}
.page-hero__sound.is-on .ic-on{display:block}
.page-hero__sound.is-on .ic-off{display:none}

/* ============================================================
   ACADEMY, vibrancy: patterned journey cards, lively hovers,
   scroll reveals & micro-interactions
   ============================================================ */
/* Champion Journey cards, each gets a distinct African pattern tile,
   tinted to a vibrant orange-family accent, drifting gently on hover. */
.academy #journey .tl-item{
  --tl-pat:url('../assets/img/patterns/afp-1.svg');
  background-image:var(--tl-pat);
  background-repeat:repeat;background-position:0 0;background-size:118px;
  transition:transform .38s var(--ease-out-soft),box-shadow .38s var(--ease-out-soft),
             background-position .8s var(--ease-out-soft),border-color .38s;
}
.academy #journey .tl-item:nth-child(1){--tl-bg:#FFF2E1;--tl-ac:#F8941E;--tl-pat:url('../assets/img/patterns/afp-1.svg')}
.academy #journey .tl-item:nth-child(2){--tl-bg:#FFEAD6;--tl-ac:#D9760A;--tl-pat:url('../assets/img/patterns/afp-2.svg')}
.academy #journey .tl-item:nth-child(3){--tl-bg:#FCE6DA;--tl-ac:#C2410C;--tl-pat:url('../assets/img/patterns/afp-3.svg')}
.academy #journey .tl-item:nth-child(4){--tl-bg:#FFEFD7;--tl-ac:#E58423;--tl-pat:url('../assets/img/patterns/afp-4.svg')}
.academy #journey .tl-item:nth-child(5){--tl-bg:#FBE6D3;--tl-ac:#B5530E;--tl-pat:url('../assets/img/patterns/afp-5.svg')}
.academy #journey .tl-item:hover{
  transform:translateY(-6px) scale(1.012);
  box-shadow:0 28px 60px -28px color-mix(in srgb,var(--tl-ac) 70%,#3a1a04);
  background-position:34px -8px;
  border-color:color-mix(in srgb,var(--tl-ac) 55%,transparent);
}
.academy #journey .tl-item .year{letter-spacing:.01em;text-transform:uppercase}
/* the spine + dots pick up the bright orange instead of the muted clay */
.academy #journey .timeline::before{background:linear-gradient(var(--aca-orange),#FCC580)}

/* "What you'll gain" feature cards, lift + animated accent underline on title */
.academy .feature--photo{transition:transform .3s var(--ease-out-soft),box-shadow .3s}
.academy .feature--photo:hover{transform:translateY(-6px);box-shadow:0 24px 50px -26px rgba(40,20,10,.5)}
.academy .feature--photo .feature__b h3{position:relative;display:inline-block}
.academy .feature--photo .feature__b h3::after{content:"";position:absolute;left:0;right:0;bottom:-.18em;height:3px;border-radius:3px;background:var(--aca-orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out-soft)}
.academy .feature--photo:hover .feature__b h3::after{transform:scaleX(1)}

/* Champion portraits, caption lifts & an orange ring blooms on hover */
.academy .champ-card{transition:transform .4s var(--ease-out-soft),box-shadow .4s}
.academy .champ-card::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 0 var(--aca-orange);transition:box-shadow .35s var(--ease-out-soft);pointer-events:none}
.academy .champ-card:hover{transform:translateY(-5px)}
.academy .champ-card:hover::after{box-shadow:inset 0 0 0 4px var(--aca-orange)}

/* Hero primary button, light sweep on hover for a vibrant lift */
.academy .page-hero__cta .btn--primary{position:relative;overflow:hidden}
.academy .page-hero__cta .btn--primary::after{content:"";position:absolute;top:0;left:-130%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);transition:left .6s var(--ease-out-soft)}
.academy .page-hero__cta .btn--primary:hover::after{left:140%}

/* Eyebrows get a small orange tick, ties the page to the bright accent */
.academy .section-head .eyebrow,.academy .champs__top .eyebrow{position:relative;padding-left:1.4em}
.academy .section-head .eyebrow::before,.academy .champs__top .eyebrow::before{content:"";position:absolute;left:0;top:50%;width:1em;height:3px;border-radius:3px;background:var(--aca-orange);transform:translateY(-50%)}

/* Reveal gains a touch of scale so cards "pop" in rather than just sliding */
.academy .feature--photo.reveal,.academy .cocard.reveal,.academy #journey .tl-item.reveal{transform:translateY(30px) scale(.97)}
.academy .feature--photo.reveal.is-in,.academy .cocard.reveal.is-in,.academy #journey .tl-item.reveal.is-in{transform:none}
@media (prefers-reduced-motion:reduce){
  .academy #journey .tl-item,.academy .cocard,.academy .feature--photo,.academy .champ-card{transition:none}
  .academy #journey .tl-item:hover{transform:none;background-position:0 0}
  .academy .page-hero__cta .btn--primary::after{display:none}
}

/* logo lockup on a white card (black wordmark stays legible over photos) */
.aca-lockup{display:inline-flex;background:#fff;border-radius:16px;padding:.85rem 1.2rem;
  box-shadow:0 14px 36px -14px rgba(0,0,0,.5);margin-bottom:1.3rem}
.aca-lockup img{display:block;height:clamp(46px,6vw,68px);width:auto}

/* programme partners */
.section--partners{background:#fff}
.aca-partners{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:var(--space-6,2rem)}
.pacard{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;
  gap:.35rem;min-height:130px;padding:1.3rem 1rem;background:#fff;border:1px solid var(--line,#e7e0d4);
  border-radius:16px;border-top:4px solid var(--aca-red,#BD1805);transition:transform .18s,box-shadow .18s}
.pacard:nth-child(4n+2){border-top-color:var(--aca-blue,#0554BB)}
.pacard:nth-child(4n+3){border-top-color:var(--aca-gold,#E6C128)}
.pacard:nth-child(4n+4){border-top-color:var(--aca-ink,#1C1C1C)}
.pacard:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(40,20,10,.5)}
.pacard__name{font-family:var(--font-display,inherit);font-weight:700;font-size:1.2rem;color:var(--ink-900,#1C1C1C);line-height:1.15}
.pacard__full{font-size:1.2rem;color:var(--color-text-muted,#8a8175);line-height:1.35}
/* logo-wall variant */
.aca-partners--logos .pacard{min-height:140px;padding:1.4rem}
.pacard__logo{max-height:74px;max-width:100%;width:auto;height:auto;object-fit:contain;
  filter:saturate(1.02);transition:transform .2s var(--ease-out-soft,ease)}
.pacard:hover .pacard__logo{transform:scale(1.04)}
/* text-only partner tile (no logo available, e.g. ACTS 101) */
.pacard--text{gap:.45rem}
.pacard--text .pacard__name{font-family:var(--font-display,inherit);font-weight:800;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:.01em}
.pacard--text .pacard__full{font-size:1.2rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
@media(max-width:860px){.aca-partners{grid-template-columns:repeat(2,1fr)}.pacard__logo{max-height:64px}}
@media(max-width:420px){.aca-partners{grid-template-columns:1fr}}
/* sliding partner marquee */
.aca-marquee{overflow:hidden;width:100%;margin-top:var(--space-6,2rem);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.aca-marquee__track{display:flex;align-items:stretch;width:max-content;
  padding:.7rem 0 1.4rem;animation:acapartners 45s linear infinite}
.aca-marquee:hover .aca-marquee__track,.aca-marquee:focus-within .aca-marquee__track{animation-play-state:paused}
.aca-marquee .pacard{flex:0 0 200px;margin-right:1rem}
@keyframes acapartners{to{transform:translateX(-50%)}}
@media(max-width:860px){.aca-marquee .pacard{flex-basis:170px}}
@media(prefers-reduced-motion:reduce){
  .aca-marquee{overflow-x:auto;scroll-snap-type:x proximity}
  .aca-marquee__track{animation:none}
  .aca-marquee .pacard{scroll-snap-align:start}}

/* ============================================================
   ACADEMY VIDEO + REGION MAP (home), light section
   ============================================================ */
.academy-spot{overflow:hidden}
.academy-spot__head{text-align:center;max-width:60ch;margin:0 auto clamp(1.6rem,3.4vw,2.8rem)}
.academy-spot__head h2{font-family:var(--font-display);font-size:clamp(2rem,3.8vw,3.4rem);line-height:1.08;color:var(--clay-900);margin:.45rem 0 0}
.academy-spot__grid{display:grid;grid-template-columns:minmax(320px,.85fr) 1.15fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:stretch}
.academy-spot__media{margin:0;width:100%;background:var(--orange-500);border-radius:var(--radius-xl);
  padding:clamp(1.1rem,1.8vw,1.6rem);box-shadow:var(--shadow-3);display:flex;flex-direction:column;justify-content:center}
.vplayer{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-3);
  border:1px solid var(--color-border);background:#000;aspect-ratio:16/9}
.vplayer__video{display:block;width:100%;height:100%;object-fit:cover;background:#000}
.vplayer__play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border:0;cursor:pointer;
  display:grid;place-items:center;border-radius:50%;color:#fff;
  background:var(--orange-500);box-shadow:0 10px 30px rgba(216,118,10,.5),0 0 0 10px rgba(255,255,255,.55);
  transition:transform var(--dur-base) var(--ease-spring),background var(--dur-fast),opacity var(--dur-base)}
.vplayer__play svg{margin-left:4px}
.vplayer__play:hover{background:var(--orange-600);transform:scale(1.08)}
.vplayer__play:focus-visible{outline:3px solid var(--orange-500);outline-offset:4px}
.vplayer.is-playing .vplayer__play{opacity:0;pointer-events:none;transform:scale(.6)}
.academy-spot__cap{margin-top:1rem;color:rgba(255,255,255,.92);font-size:1.2rem;text-align:center}
.academy-spot__script{font-family:var(--font-script);color:#fff;font-size:1.5em;line-height:1;margin-right:.15em}
.academy-spot__cta{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:clamp(1.8rem,3.4vw,2.8rem)}

/* region map, real Africa silhouette (img) + animated pins overlay (5 countries) */
.amap{position:relative;width:100%;max-width:480px;margin-inline:auto}
.amap__stage{position:relative;filter:drop-shadow(0 14px 30px rgba(120,72,24,.14));
  transform:perspective(1100px) rotateX(var(--ary,0deg)) rotateY(var(--arx,0deg));
  transform-style:preserve-3d;transition:transform .35s var(--ease-out-soft);will-change:transform}
.amap__inner{position:relative;animation:amap-float 6.5s ease-in-out infinite}
@keyframes amap-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.amap__base{display:block;width:100%;height:auto;pointer-events:none}
.amap__pins{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
/* interactive country pins */
.amap__pin{cursor:pointer;outline:none;transition:opacity .3s}
.amap__hit{fill:transparent}
.amap__halo{fill:var(--orange-500);opacity:0;transform-box:fill-box;transform-origin:center;
  transition:opacity .3s var(--ease-out-soft),transform .3s var(--ease-out-soft)}
.amap__halo--hub{fill:var(--orange-600)}
.amap__pin:hover .amap__halo,.amap__pin:focus-visible .amap__halo,.amap__pin.is-active .amap__halo{opacity:.3;transform:scale(3.6)}
.amap__pin:hover .amap__dot,.amap__pin:focus-visible .amap__dot,.amap__pin.is-active .amap__dot{fill:var(--orange-600)}
.amap__pin:hover .amap__dot--hub,.amap__pin.is-active .amap__dot--hub{fill:var(--orange-700)}
.amap__pin:hover .amap__label,.amap__pin:focus-visible .amap__label,.amap__pin.is-active .amap__label{fill:var(--orange-700)}
.amap__pin:focus-visible .amap__dot{stroke:var(--clay-900);stroke-width:5}
[data-amap].is-exploring .amap__pin:not(.is-active):not(:hover){opacity:.48}
.amap__line{fill:none;stroke:var(--orange-500);stroke-width:3.4;stroke-dasharray:2 13;stroke-linecap:round;opacity:.9;
  animation:amap-flow 1.3s linear infinite}
@keyframes amap-flow{to{stroke-dashoffset:-30}}
.amap__dot{fill:var(--orange-500);stroke:#fff;stroke-width:4;transform-box:fill-box;transform-origin:center;
  animation:amap-beat 2.6s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes amap-beat{0%,100%{transform:scale(1)}50%{transform:scale(1.26)}}
.amap__dot--hub{fill:var(--orange-600);stroke-width:4.5}
.amap__ring{fill:var(--orange-500);transform-box:fill-box;transform-origin:center;
  animation:amap-pulse 2.6s var(--ease-out-soft) infinite;animation-delay:var(--d,0s)}
.amap__ring--2{animation-duration:2.6s}
.amap__ring--hub{fill:var(--orange-600)}
.amap__label{font-family:var(--font-display);font-weight:700;font-size:30px;fill:var(--clay-900);
  paint-order:stroke;stroke:var(--bone-50);stroke-width:7px;stroke-linejoin:round}
.amap__label--hub{fill:var(--orange-700);font-size:33px}
@keyframes amap-pulse{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(3.4);opacity:0}}
/* explorer info card below the map */
.amap__card{margin-top:1.1rem;display:flex;align-items:flex-start;gap:.75rem;
  background:#fff;border:1px solid var(--color-border);border-left:4px solid var(--orange-500);
  border-radius:14px;padding:.85rem 1.05rem;box-shadow:var(--shadow-2);min-height:66px}
.amap__card__dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--orange-500);margin-top:.4em;
  box-shadow:0 0 0 4px var(--orange-200);transition:transform .3s}
[data-amap].is-exploring .amap__card__dot{transform:scale(1.25)}
.amap__card__body{display:flex;flex-direction:column;gap:.15em}
.amap__card__body strong{font-family:var(--font-display);font-weight:700;color:var(--clay-900);font-size:1.35rem;line-height:1.2}
.amap__card__body span{font-size:1.2rem;color:var(--color-text-muted);line-height:1.4}

/* ---- Region explorer: synced sidebar + Africa map ---- */
.rmap{width:100%}
.rmap__wrap{display:grid;grid-template-columns:minmax(180px,230px) 1fr;align-items:stretch;
  background:var(--clay-900);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-3)}
.rmap__side{padding:.85rem .7rem;display:flex;flex-direction:column;gap:.35rem;min-width:0;color:#fff}
.rmap__sidehead{display:flex;align-items:center;gap:.45em;font-family:var(--font-display);font-weight:700;
  font-size:1.2rem;color:rgba(255,255,255,.72);padding:.25rem .4rem .55rem}
.rmap__count{flex:none;display:inline-grid;place-items:center;min-width:1.7em;height:1.7em;border-radius:50%;
  background:var(--orange-500);color:#fff;font-size:1.2rem;font-weight:800}
.rmap__list{display:flex;flex-direction:column;gap:.28rem}
.rmap__row{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .55rem;border:1.5px solid transparent;
  border-radius:12px;background:transparent;cursor:pointer;text-align:left;color:#fff;font:inherit;
  transition:background .2s var(--ease-out-soft),border-color .2s}
.rmap__row:hover,.rmap__row:focus-visible{background:rgba(255,255,255,.08);outline:none}
.rmap__row.is-active{background:rgba(248,148,30,.18);border-color:var(--orange-500)}
.rmap__badge{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.12);color:#fff;font-weight:800;font-size:1.2rem;letter-spacing:.01em;transition:background .2s}
.rmap__row.is-active .rmap__badge{background:var(--orange-500)}
.rmap__row--hub .rmap__badge{box-shadow:0 0 0 2px var(--orange-400) inset}
.rmap__rb{display:flex;flex-direction:column;min-width:0;flex:1}
.rmap__name{font-family:var(--font-display);font-weight:700;font-size:1.2rem;line-height:1.15;color:#fff;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rmap__meta{font-size:1.2rem;color:rgba(255,255,255,.5);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rmap__go{flex:none;color:rgba(255,255,255,.38);font-size:1.4rem;line-height:1;transition:transform .2s,color .2s}
.rmap__row:hover .rmap__go,.rmap__row.is-active .rmap__go{color:var(--orange-400);transform:translateX(2px)}
.rmap__map{position:relative;background:var(--bone-100);display:grid;place-items:center;padding:clamp(.9rem,1.6vw,1.5rem);min-width:0;min-height:300px}
.rmap__map .amap__stage{width:100%;max-width:400px}
.rmap .amap__card{margin-top:1rem}
@media(max-width:540px){
  .rmap__wrap{grid-template-columns:1fr}
  .rmap__map{order:-1}
}

@media(max-width:880px){
  .academy-spot__grid{grid-template-columns:1fr;gap:2rem}
  .academy-spot__media{max-width:640px;margin-inline:auto}
  .amap{max-width:380px}
}
@media(prefers-reduced-motion:reduce){.amap__ring{animation:none;opacity:0}.amap__line{animation:none}.amap__inner{animation:none}.amap__dot{animation:none}.amap__stage{transform:none;transition:none}.amap__halo{transition:none}}

/* ============================================================
   AWARENESS FLOAT, small animated photos w/ hover awareness tips
   ============================================================ */
.awarefloat{position:relative;max-width:var(--w-content,1200px);margin:0 auto;
  padding:0 var(--gutter,1.2rem);min-height:clamp(160px,18vw,240px)}
.awarefloat__hint{text-align:center;font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--color-text-muted);padding-top:clamp(1.6rem,4vw,3rem);margin:0}
.awarefloat__hint span{color:var(--orange-600,#D9760A);font-weight:600}
.afl{position:absolute;left:var(--x);top:var(--y);width:var(--s,84px);height:var(--s,84px);
  padding:0;border:0;background:none;cursor:help;border-radius:50%;
  animation:aflfloat var(--t,7s) var(--d,0s) ease-in-out infinite}
.afl img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;
  border:3px solid #fff;box-shadow:0 12px 26px -10px rgba(120,60,20,.5);
  transition:transform .3s var(--ease-out-soft),box-shadow .3s}
.afl:hover img,.afl:focus-visible img{transform:scale(1.09);box-shadow:0 18px 36px -12px rgba(120,60,20,.6)}
.afl:focus-visible{outline:none}
.afl:focus-visible img{outline:3px solid var(--orange-500,#F8941E);outline-offset:3px}
/* tooltip bubble */
.afl::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 13px);
  transform:translateX(-50%) translateY(6px);width:max-content;max-width:230px;
  background:var(--clay-900,#2a1a0e);color:#fff;font-size:1.2rem;line-height:1.45;font-weight:500;
  text-align:left;padding:.7em .9em;border-radius:12px;box-shadow:0 14px 32px -10px rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transition:opacity .2s,transform .2s;pointer-events:none;z-index:6}
.afl::before{content:"";position:absolute;left:50%;bottom:calc(100% + 7px);transform:translateX(-50%);
  border:7px solid transparent;border-top-color:var(--clay-900,#2a1a0e);
  opacity:0;visibility:hidden;transition:opacity .2s;z-index:6}
.afl:hover::after,.afl:focus-visible::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.afl:hover::before,.afl:focus-visible::before{opacity:1;visibility:visible}
@keyframes aflfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@media(prefers-reduced-motion:reduce){.afl{animation:none}}
/* Side-flanking variant (sits in the page margins beside content) */
.whoweare--tight{padding-top:clamp(1.4rem,3.5vw,3rem)}
.afl--side{top:50%;left:auto;right:auto;margin-top:calc(var(--s,104px)/-2)}
.afl--l{left:clamp(.5rem,3.5vw,4rem)}
.afl--r{right:clamp(.5rem,3.5vw,4rem)}
/* hide side floats once content fills the width (would overlap text) */
@media(max-width:1180px){.afl--side{display:none}}
@media(max-width:760px){
  .awarefloat{min-height:clamp(220px,56vw,320px)}
  .afl{width:clamp(50px,13vw,68px);height:clamp(50px,13vw,68px)}
  .afl::after{max-width:min(200px,64vw);font-size:1.2rem}
}

/* Academy, champions by country */
.aca-countries{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:var(--space-6,2rem)}
/* vibrant academy-colour cards, each with an academy photo */
.cocard{--co:#BD1805;position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:18px;
  background:var(--co);box-shadow:0 16px 36px -22px rgba(40,20,10,.6);
  transition:transform .32s var(--ease-out-soft),box-shadow .32s}
.cocard:nth-child(2){--co:#0554BB}
.cocard:nth-child(3){--co:#C2670B}
.cocard:nth-child(4){--co:#1C1C1C}
.cocard:nth-child(5){--co:#9E1404}
.cocard__media{position:relative;aspect-ratio:16/11;overflow:hidden;background:var(--co)}
.cocard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease-out-soft)}
/* colour wash so the photo melts into the coloured body */
.cocard__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 42%,color-mix(in srgb,var(--co) 90%,transparent))}
.cocard__body{background:var(--co);color:#fff;padding:1.4rem 1.5rem 1.6rem;flex:1}
.cocard__name{font-family:var(--font-display,inherit);font-weight:700;font-size:1.6rem;line-height:1.1;margin:0 0 .5rem;color:#fff}
.cocard__body p{margin:0;color:rgba(255,255,255,.93);font-size:1.2rem;line-height:1.6}
/* brown / orange card reads better with near-black text than white */
.cocard:nth-child(3) .cocard__name{color:#171210}
.cocard:nth-child(3) .cocard__body p{color:rgba(20,14,8,.92)}
.cocard:hover{transform:translateY(-6px);box-shadow:0 28px 56px -24px rgba(40,20,10,.65)}
.cocard:hover .cocard__media img{transform:scale(1.07)}
/* coming-soon, desaturated photo + bright-orange badge */
.cocard--soon .cocard__media img{filter:saturate(.4) brightness(.92)}
.cocard__badge{position:absolute;top:.9rem;left:.9rem;z-index:2;display:inline-block;padding:.36rem .9rem;border-radius:999px;
  background:var(--aca-orange,#F8941E);color:#241405;font-weight:800;font-size:1.2rem;letter-spacing:.05em;text-transform:uppercase;
  box-shadow:0 8px 18px -6px rgba(0,0,0,.55)}
@media(max-width:860px){.aca-countries{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.aca-countries{grid-template-columns:1fr}}

/* ============================================================
   PUBLICATIONS, filter tabs + full PDF preview modal
   ============================================================ */
.res-card[hidden]{display:none}
.res-tabs{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center;margin:0 0 2rem}
.res-tab{padding:.55rem 1.2rem;border-radius:999px;border:1px solid var(--line,#e7e0d4);background:#fff;
  color:var(--ink-700,#5a534a);font-weight:600;font-size:1.2rem;line-height:1;cursor:pointer;
  transition:background .16s,color .16s,border-color .16s}
.res-tab:hover{border-color:var(--orange-300,#FCC580);color:var(--ink-900)}
.res-tab.is-on{background:var(--orange-500,#F8941E);border-color:var(--orange-500,#F8941E);color:var(--ink-900)}
.res-empty{grid-column:1/-1;text-align:center;color:var(--color-text-muted);padding:2rem 0;font-style:italic}

/* full-size PDF preview modal */
.docmodal--pdf{max-width:min(1040px,96vw);width:min(1040px,96vw);height:90vh;flex-direction:column;overflow:hidden}
.docmodal--pdf[open]{display:flex}
.docmodal--pdf .docmodal__bar{display:flex;align-items:center;gap:1rem;justify-content:space-between;
  padding:.85rem 1.1rem;border-bottom:1px solid var(--line,#e7e0d4);background:var(--bone,#f7f2ea);flex:none}
.docmodal__bartext{min-width:0}
.docmodal__bartext .type{display:block;font-size:1.2rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}
.docmodal__bartext h3{margin:.1rem 0 0;font-size:1.2rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48vw}
.docmodal__baractions{display:flex;align-items:center;gap:.5rem;flex:none}
.btn--sm{padding:.5em 1em;font-size:1.2rem}
.docmodal--pdf .docmodal__close{position:static;width:38px;height:38px;border-radius:10px;border:1px solid var(--line,#e7e0d4);
  background:#fff;font-size:1.5rem;line-height:1;color:var(--ink-700,#5a534a);cursor:pointer}
.docmodal--pdf .docmodal__close:hover{background:var(--orange-50,#fff7ee);color:var(--ink-900)}
.docmodal__viewer{flex:1;min-height:0;background:#525659;position:relative}
.docmodal__frame{width:100%;height:100%;border:0;display:block}
.docmodal--pdf.is-loading .docmodal__viewer::after{content:"Loading preview…";position:absolute;inset:0;
  display:grid;place-items:center;color:#d4d7d9;font-size:1.3rem;letter-spacing:.02em;pointer-events:none}
@media(max-width:600px){
  .docmodal--pdf{height:94vh}
  .docmodal__bartext h3{max-width:42vw}
  .btn--sm{padding:.5em .7em;font-size:1.2rem}
}

/* Academy, scroll pointer (lottie) + full-width film */
.aca-pointer{width:clamp(96px,12vw,140px);height:auto;margin:2.2rem auto .2rem;display:block}
.aca-pointer svg{display:block;width:100%;height:auto}
.aca-pointer__cap{text-align:center;margin:.1rem 0 0;color:var(--aca-red,#BD1805);font-weight:600;font-size:1.2rem;letter-spacing:.01em}
/* CSS fallback if the lottie library can't load */
.aca-pointer--fallback{position:relative;height:60px}
.aca-pointer--fallback::after{content:"";position:absolute;left:50%;top:6px;width:26px;height:26px;
  border-right:5px solid var(--aca-red,#BD1805);border-bottom:5px solid var(--aca-red,#BD1805);
  transform:translateX(-50%) rotate(45deg);animation:acabob 1.4s ease-in-out infinite}
@keyframes acabob{0%,100%{transform:translateX(-50%) rotate(45deg) translateY(0);opacity:.4}50%{transform:translateX(-50%) rotate(45deg) translateY(10px);opacity:1}}

.aca-video{width:100%;line-height:0;padding:var(--section-y) 0}
.aca-video__el{display:block;width:min(100% - 2*var(--gutter),var(--w-content));height:auto;max-height:80vh;margin:0 auto;background:#000;border-radius:var(--radius-lg);object-fit:contain}

/* Academy header logo (wider lockup than the default brand mark) */
.brand__logo--academy{height:46px;width:auto}
@media(max-width:600px){.brand__logo--academy{height:38px}}

/* Academy, "What is the Academy?" image slideshow */
.aca-slides{position:relative;aspect-ratio:4/5;width:100%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2);background:#e9e2d6}
.aca-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s var(--ease-out-soft)}
.aca-slide.is-active{opacity:1}
.aca-slides::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(transparent,rgba(20,8,4,.42));z-index:1;pointer-events:none}
.aca-slides__dots{position:absolute;left:0;right:0;bottom:.9rem;z-index:2;display:flex;justify-content:center;gap:.5rem}
.aca-slides__dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;transition:background .2s,transform .2s}
.aca-slides__dots button:hover{background:rgba(255,255,255,.85)}
.aca-slides__dots button.is-on{background:#fff;transform:scale(1.3)}

/* tighter vertical rhythm for full-bleed bands (e.g. scrolling image strip) */
.section--tight{padding-top:clamp(1.5rem,3vw,2.6rem);padding-bottom:clamp(1.5rem,3vw,2.6rem)}
/* Tools page: tighten the category-nav → first-category gap */
.toolnav-sec{padding-block:clamp(1.4rem,3vw,2.2rem) 0}
.toolnav-sec .tool-toc{margin-top:0}
.section--tight-top{padding-top:clamp(1.4rem,3vw,2.2rem)}

/* ============================================================
   MANIFESTO, sign-on form + signatories directory
   ============================================================ */
/* --- live signatory snapshot bar --- */
.signstats{width:fit-content;max-width:100%;margin:0 auto 1.6rem;display:flex;align-items:center;justify-content:center;gap:1.2rem;flex-wrap:wrap;
  background:linear-gradient(180deg,#fff,#fffaf2);border:1px solid var(--line,#e7e0d4);border-radius:999px;
  box-shadow:var(--shadow-2);padding:.85rem 1.9rem}
.signstats__metric{display:flex;flex-direction:column;line-height:1;padding-right:1.2rem;border-right:1px solid var(--line,#efe7d8)}
.signstats__num{font-family:var(--font-display,inherit);font-weight:800;font-size:2rem;color:var(--orange-600,#D9760A)}
.signstats__lbl{font-size:1.2rem;color:var(--color-text-muted);margin-top:.3rem;letter-spacing:.05em;text-transform:uppercase}
.signstats__recent{display:flex;align-items:center;gap:.8rem;min-width:0}
.signstats__avatars{display:inline-flex}
.signstats__av{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:1.2rem;font-weight:700;color:#fff;background:linear-gradient(150deg,#FBA94B,var(--orange-600,#D9760A));border:2px solid #fff;margin-left:-8px;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.signstats__av:first-child{margin-left:0}
.signstats__recent-txt{font-size:1.2rem;color:var(--ink-700,#5a534a);font-weight:500}
@media(max-width:640px){.signstats{width:auto;border-radius:var(--radius-xl);justify-content:center;text-align:center}
  .signstats__recent{width:100%;justify-content:center}}

/* --- multi-step progress + steps --- */
.signsteps{margin-bottom:.4rem}
.signsteps__list{list-style:none;display:flex;justify-content:space-between;gap:.5rem;margin:0 0 .9rem;padding:0;counter-reset:none}
.signsteps__i{display:flex;align-items:center;gap:.5rem;font-size:1.2rem;color:var(--color-text-muted);min-width:0}
.signsteps__n{width:30px;height:30px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;background:#f1e9da;color:var(--ink-700,#5a534a);border:2px solid transparent;transition:.25s}
.signsteps__i.is-current .signsteps__n{background:var(--orange-500,#F8941E);color:#fff}
.signsteps__i.is-done .signsteps__n{background:#e6f4ea;color:#1e7a37;border-color:#bfe3c9}
.signsteps__i.is-done .signsteps__n::before{content:"\2713"}
.signsteps__i.is-done .signsteps__n{font-size:0}
.signsteps__i.is-done .signsteps__n::before{font-size:1.2rem}
.signsteps__i.is-active .signsteps__t{color:var(--ink-900,#1c1c1c);font-weight:600}
.signsteps__t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:560px){.signsteps__t{display:none}.signsteps__list{justify-content:center;gap:1.2rem}}
.signsteps__bar{height:6px;border-radius:999px;background:#f1e9da;overflow:hidden}
.signsteps__fill{display:block;height:100%;width:33.33%;border-radius:999px;
  background:linear-gradient(90deg,var(--orange-500,#F8941E),var(--orange-600,#D9760A));transition:width .35s ease}
.signstep{display:flex;flex-direction:column;gap:1.1rem;animation:signstepin .3s ease both}
@keyframes signstepin{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.signstep[hidden]{display:none}
.signstep__nav{display:flex;justify-content:space-between;gap:.8rem;margin-top:.3rem}
.signstep__nav--end{justify-content:flex-end}
.signstep__nav [data-step-next]{flex:1 1 auto;justify-content:center}
@media(prefers-reduced-motion:reduce){.signstep{animation:none}}

.signcard{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line,#e7e0d4);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-3);padding:clamp(1.4rem,3vw,2.6rem)}
.signform{display:flex;flex-direction:column;gap:1.1rem}
.signform .formrow{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:620px){.signform .formrow{grid-template-columns:1fr}}
.signform .field{display:flex;flex-direction:column;gap:.4rem;margin:0}
.signform label{font-weight:600;color:var(--ink-900,#1c1c1c);font-size:1.2rem}
.signform .opt{display:inline;flex:none;max-width:none;background:none;padding:0;border-radius:0;box-shadow:none;font-weight:400;color:var(--color-text-muted);font-size:1.2rem}
.signform .req{color:var(--orange-600,#D9760A)}
.signform input[type=text],.signform input[type=email],.signform select,.signform textarea{
  font:inherit;font-size:1.2rem;padding:.7em .9em;border:1.5px solid var(--color-border,#e4d8c4);
  border-radius:var(--radius-md);background:var(--bone-50,#faf7f0);color:var(--ink-900);width:100%}
.signform input:focus,.signform select:focus,.signform textarea:focus{outline:none;border-color:var(--orange-500,#F8941E);
  box-shadow:0 0 0 3px rgba(248,148,30,.18);background:#fff}
.signform textarea{resize:vertical;min-height:96px}
.field__help{margin:.15rem 0 0;font-size:1.2rem;color:var(--color-text-muted);line-height:1.45}

/* segmented "signing as" toggle */
.seg{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.seg legend{font-weight:600;color:var(--ink-900);font-size:1.2rem;margin-bottom:.5rem;float:left;width:100%}
.seg__opt{position:relative;cursor:pointer}
.seg__opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg__opt span{display:inline-block;padding:.55em 1.1em;border:1.5px solid var(--color-border,#e4d8c4);border-radius:999px;
  font-weight:600;font-size:1.2rem;color:var(--ink-700,#5a3a20);background:var(--bone-50,#faf7f0);transition:.15s}
.seg__opt input:checked+span{background:var(--orange-500,#F8941E);border-color:var(--orange-500,#F8941E);color:var(--ink-900)}
.seg__opt input:focus-visible+span{box-shadow:0 0 0 3px rgba(248,148,30,.3)}

.signform .check{display:flex;flex-direction:row;align-items:flex-start;gap:.6em;font-weight:400;cursor:pointer}
.signform .check input{margin-top:.28em;width:18px;height:18px;flex:none;accent-color:var(--orange-600,#D9760A)}
.signform .check span{font-size:1.2rem;line-height:1.45;color:var(--ink-700,#5a534a)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.signform__error{background:#fdecef;color:#b32d63;border:1px solid #f0c4bd;border-radius:var(--radius-md);padding:.7em .9em;margin:0;font-size:1.2rem}
.signform__submit{width:100%;justify-content:center;font-size:1.2rem;padding:1.05em 2rem}
.signform__foot{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin-top:.2rem}
.signform__note{text-align:center;margin:.3rem 0 0;color:var(--color-text-muted)}

/* ---- Academy application form (/apply) ---- */
.applycard{max-width:820px}
.applyfs{border:0;margin:0 0 1.6rem;padding:0;min-width:0}
.applyfs legend{padding:0;margin:0 0 .8rem;font-family:var(--font-display);font-weight:700;font-size:1.5rem;
  color:var(--clay-900);display:flex;align-items:center;gap:.5rem}
.applyfs legend::before{content:"";width:1.1em;height:3px;border-radius:3px;background:var(--aca-red,#BD1805);flex:0 0 auto}
.applyform .field textarea{resize:vertical;min-height:3.4em}
.applydone{text-align:center;padding:1.5rem .5rem 1rem}
.applydone__mark{width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;display:grid;place-items:center;
  font-size:1.9rem;font-weight:700;color:#fff;background:var(--aca-red,#BD1805)}
.applydone h3{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);color:var(--clay-900);margin:0 0 .5rem}
.applydone p{color:var(--color-text-muted);max-width:52ch;margin:0 auto 1.3rem;font-size:1.2rem;line-height:1.6}
.applydone__cta{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center}

/* success state */
.signdone{text-align:center;padding:.5rem 0}
.signdone__check{width:60px;height:60px;margin:0 auto 1rem;border-radius:50%;background:#e6f4ea;color:#1e7a37;
  display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800}
.signdone h3{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 .3rem}
.signdone>p{color:var(--color-text-muted);max-width:48ch;margin:0 auto 1.3rem}
.signdone__data{max-width:520px;margin:0 auto 1.4rem;text-align:left;border:1px solid var(--line,#eee);border-radius:var(--radius-lg);overflow:hidden}
.signdone__row{display:grid;grid-template-columns:140px 1fr;gap:1rem;padding:.7em 1em;border-bottom:1px solid var(--line,#f0e9dd)}
.signdone__row:last-child{border-bottom:0}
.signdone__row dt{font-weight:700;color:var(--color-text-muted);font-size:1.2rem;margin:0}
.signdone__row dd{margin:0;color:var(--ink-900);font-size:1.2rem}

/* directory modal */
.sigmodal{border:0;border-radius:var(--radius-xl);padding:0;max-width:min(900px,96vw);width:min(900px,96vw);
  max-height:88vh;overflow:hidden;flex-direction:column}
.sigmodal[open]{display:flex}
.sigmodal::backdrop{background:rgba(30,18,6,.55);backdrop-filter:blur(3px)}
.sigmodal__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:1rem 1.2rem;border-bottom:1px solid var(--line,#e7e0d4);background:var(--bone,#f7f2ea)}
.sigmodal__bar h3{margin:0;font-size:1.5rem;display:inline}
.sigmodal__count{color:var(--color-text-muted);font-size:1.2rem;margin-left:.5rem}
.sigmodal__bar-r{display:flex;align-items:center;gap:.6rem}
.sigmodal__search{font:inherit;font-size:1.2rem;padding:.5em .8em;border:1.5px solid var(--color-border);border-radius:999px;background:#fff;min-width:min(46vw,260px)}
.sigmodal__body{padding:1.2rem;overflow:auto}
.sigmodal .docmodal__close{position:static;width:40px;height:40px;border-radius:10px;border:1px solid var(--line,#e7e0d4);background:#fff;font-size:1.6rem;line-height:1;color:var(--ink-700);cursor:pointer}
.sigdir{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem}
.sigcard{background:#fff;border:1px solid var(--line,#e7e0d4);border-left:4px solid var(--orange-500,#F8941E);
  border-radius:var(--radius-md);padding:.9rem 1.05rem;display:flex;flex-direction:column;gap:.15rem}
.sigcard__name{font-weight:700;color:var(--ink-900);font-size:1.2rem}
.sigcard__org{color:var(--ink-700,#5a534a);font-size:1.2rem}
.sigcard__country{color:var(--color-text-muted);font-size:1.2rem}
.sigdir__empty{grid-column:1/-1;text-align:center;color:var(--color-text-muted);padding:2rem 0}

/* ---- two-column sign layout: form left, live directory right ---- */
.signlayout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1.5rem;align-items:start;max-width:1300px;margin:0 auto}
.signlayout__form.signcard{max-width:none;margin:0;padding:clamp(1.15rem,2.2vw,1.7rem);background:transparent;box-shadow:none;border:2px solid var(--color-border,#e4d8c4)}
.signlayout__side{display:flex;flex-direction:column;gap:1.2rem;position:sticky;top:90px;min-width:0}
.signlayout__side .signstats{width:100%;margin:0;justify-content:flex-start;border-radius:var(--radius-xl);background:#fff;border:1px solid var(--line,#e7e0d4);padding:1rem 1.2rem;box-shadow:0 8px 24px rgba(20,12,2,.05)}
.sigpanel{background:#fff;border:1px solid var(--line,#e7e0d4);border-radius:var(--radius-xl);box-shadow:0 8px 24px rgba(20,12,2,.05);display:flex;flex-direction:column;overflow:hidden;min-width:0;max-width:100%}
.sigpanel__head{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1.2rem;border-bottom:1px solid var(--line,#efe7d8)}
.sigpanel__head h3{margin:0;font-size:1.5rem}
.sigpanel__search{font:inherit;font-size:1.2rem;padding:.55em .9em;border:1.5px solid var(--color-border);border-radius:999px;background:#fff;width:100%}
/* submitted signatories as a horizontal slider (not a vertical scroll) */
.sigslider{position:relative;min-width:0}
.sigpanel__scroll{display:flex;gap:1.4rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:2.9rem;scroll-behavior:smooth;padding:1.5rem 2.9rem 1.7rem;-ms-overflow-style:none;scrollbar-width:none}
.sigpanel__scroll::-webkit-scrollbar{display:none}
.sigpanel__scroll::after{content:"";flex:0 0 2rem;align-self:stretch}
.sigpanel__scroll .sigcard{flex:0 0 auto;width:min(260px,82%);scroll-snap-align:start}
.sigpanel__scroll .commit{flex:0 0 100%;scroll-snap-align:start;margin:0}
.sigpanel__scroll .commit:hover{transform:none}
.sigpanel__scroll .commit__text{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.sigpanel__scroll .sigdir__empty{flex:1 0 100%;padding:1.4rem 0;text-align:center}
.sigslider__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:36px;height:36px;border-radius:50%;border:1px solid var(--line,#e7e0d4);background:#fff;color:var(--ink-700);font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(20,12,2,.12)}
.sigslider__nav:hover{background:var(--bone-50,#faf6ee)}
.sigslider__nav--prev{left:.35rem}
.sigslider__nav--next{right:.35rem}
@media(max-width:900px){
  .signlayout{grid-template-columns:minmax(0,1fr)}
  .signlayout__side{position:static}
}
@media(max-width:560px){
  .sigpanel__scroll{gap:.9rem;padding:1.2rem 2.4rem 1.4rem;scroll-padding-inline:2.4rem}
  .sigpanel__scroll .sigcard{width:88%}
  .sigslider__nav{width:32px;height:32px;font-size:1.3rem}
  .sigslider__nav--prev{left:.15rem}
  .sigslider__nav--next{right:.15rem}
}

/* ---- thank-you popup ---- */
.signdone-modal{border:0;border-radius:var(--radius-xl);padding:1.8rem clamp(1.2rem,4vw,2.4rem) 2rem;max-width:min(560px,94vw);width:min(560px,94vw);background:#fff;color:var(--ink-900);position:relative;box-shadow:0 30px 80px rgba(20,12,2,.4)}
.signdone-modal::backdrop{background:rgba(30,18,6,.55);backdrop-filter:blur(3px)}
.signdone-modal[open]{display:block}
.signdone-modal__x{position:absolute;top:.8rem;right:.8rem;width:40px;height:40px;border-radius:10px;border:1px solid var(--line,#e7e0d4);background:#fff;font-size:1.6rem;line-height:1;color:var(--ink-700);cursor:pointer}
.signdone-modal .signdone{padding:0}
.signdone-modal .signform__foot{margin-top:1.2rem}

/* ---- Champion "Share your story" wizard modal ---- */
.storymodal{border:0;border-radius:var(--radius-xl);padding:0;max-width:min(600px,94vw);width:min(600px,94vw);
  max-height:94vh;overflow:auto;background:var(--bone-50,#fbf7f0);color:var(--ink-900);position:relative;box-shadow:0 30px 90px rgba(20,12,2,.45)}
.storymodal::backdrop{background:rgba(30,18,6,.55);backdrop-filter:blur(3px)}
.storymodal[open]{display:block}
.storymodal__x{position:absolute;top:.7rem;right:.7rem;z-index:2;width:38px;height:38px;border-radius:10px;border:1px solid var(--line,#e7e0d4);background:#fff;font-size:1.5rem;line-height:1;color:var(--ink-700);cursor:pointer}
.storymodal__inner{padding:1.3rem clamp(1.1rem,4vw,1.8rem) 1.4rem}
.storymodal__head{margin-bottom:1rem}
.storymodal__head h2{margin:.2rem 0 .35rem;font-size:clamp(1.5rem,3vw,1.9rem)}
.storymodal__head p{margin:0;color:var(--color-text-muted);font-size:1.2rem;line-height:1.4}
/* the form sits inside the dialog card, so drop the extra card chrome + tighten spacing to avoid a scrollbar */
.storymodal .signform{background:none;box-shadow:none;padding:0;max-width:none;margin:0;gap:.85rem}
.storymodal .signstep{gap:.85rem}
.storymodal .signsteps{margin-bottom:.2rem}
.storymodal .field__help{margin-top:.05rem}
.storymodal .signform__note{margin-top:.2rem}
.storymodal textarea{min-height:0}
/* file upload dropzone */
.storyfile{display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;cursor:pointer;
  border:2px dashed var(--line,#e0d7c8);border-radius:var(--radius-lg);padding:1.1rem 1rem;background:#fff;transition:border-color .2s,background .2s}
.storyfile:hover{border-color:var(--orange-500,#F8941E);background:#fffdf9}
.storyfile input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.storyfile__icon{font-size:1.6rem;line-height:1}
.storyfile__text{font-weight:600;font-size:1.2rem;color:var(--ink-900)}
.storyfile__hint{font-size:1.2rem;color:var(--color-text-muted);line-height:1.35}
.storyfile__preview{display:block;margin-top:.7rem;max-height:180px;width:auto;max-width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}

/* ============================================================
   GET INVOLVED, floating action button + hub modal
   ============================================================ */
.fabstack{position:fixed;right:clamp(1rem,2vw,1.6rem);bottom:clamp(1rem,2vw,1.6rem);z-index:95;
  display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}
.fab{position:relative;display:inline-flex;align-items:center;gap:.5em;padding:.62em 1.05em;border-radius:999px;cursor:pointer;
  text-decoration:none;font-family:var(--font-body);font-weight:700;font-size:1.2rem;line-height:1;
  transition:transform .18s var(--ease-out-soft,ease),box-shadow .18s,background .18s}
.fab--primary{border:0;background:var(--orange-500,#F8941E);color:var(--ink-900,#1c1c1c);
  box-shadow:0 10px 26px -8px rgba(248,148,30,.65),0 3px 8px rgba(26,16,4,.16)}
.fab--primary::before{content:"";position:absolute;inset:0;border-radius:999px;border:2px solid var(--orange-500,#F8941E);
  animation:fabpulse 2.6s ease-out infinite;pointer-events:none}
@keyframes fabpulse{0%{opacity:.55;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.3)}}
.fab--ghost{background:#fff;color:var(--orange-700,#A85A0A);border:1.5px solid var(--orange-300,#FCC580);
  box-shadow:0 8px 20px -10px rgba(26,16,4,.3)}
.fab--ghost:hover{background:var(--orange-50,#fff7ee);border-color:var(--orange-500,#F8941E)}
.fab:hover{transform:translateY(-2px) scale(1.02)}
.fab--primary:hover{box-shadow:0 16px 34px -8px rgba(248,148,30,.72),0 5px 12px rgba(26,16,4,.2)}
.fab__ic{display:inline-flex;width:1.25em;height:1.25em}
.fab__ic .ico{width:100%;height:100%}
@media(max-width:600px){.fab__label{display:none}.fab{padding:.72em}}
@media print{.fabstack{display:none}}
@media (prefers-reduced-motion:reduce){.fab--primary::before{animation:none;display:none}}

.gimodal{border:0;border-radius:var(--radius-xl);padding:0;max-width:min(720px,96vw);width:min(720px,96vw);
  overflow:hidden;box-shadow:var(--shadow-4)}
.gimodal::backdrop{background:rgba(30,18,6,.6);backdrop-filter:blur(4px)}
.gimodal[open]{animation:gipop .28s var(--ease-out-soft,ease)}
@keyframes gipop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.gimodal__head{position:relative;padding:clamp(1.4rem,3vw,2rem) clamp(1.4rem,3vw,2.2rem) clamp(1.1rem,2.4vw,1.5rem);
  background:var(--orange-500,#F8941E);color:var(--ink-900,#1c1c1c)}
.gimodal__head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--orange-600,#D9760A)}
.gimodal__eyebrow{display:block;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:1.2rem;color:var(--orange-800,#7a3f06);margin-bottom:.4rem}
.gimodal__head h2{color:var(--ink-900,#1c1c1c);font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .3rem;line-height:1.12}
.gimodal__head p{margin:0;color:rgba(26,16,4,.82);font-size:1.2rem;max-width:48ch}
.gimodal__close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(26,16,4,.14);color:var(--ink-900,#1c1c1c);font-size:1.6rem;line-height:1;transition:background .15s}
.gimodal__close:hover{background:rgba(26,16,4,.26)}
.gimodal__grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;padding:clamp(1.2rem,2.6vw,1.6rem)}
@media(max-width:560px){.gimodal__grid{grid-template-columns:1fr}}
.gicard{display:flex;align-items:flex-start;gap:.85rem;padding:1rem 1.1rem;border:1px solid var(--line,#e7e0d4);
  border-radius:var(--radius-lg);text-decoration:none;background:#fff;transition:transform .16s,border-color .16s,box-shadow .16s;position:relative}
.gicard:hover{transform:translateY(-3px);border-color:var(--orange-300,#FCC580);box-shadow:0 14px 30px -16px rgba(40,20,10,.5)}
.gicard__ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;
  background:var(--orange-100,#fdecd6);color:var(--orange-700,#A85A0A)}
.gicard__ic .ico{width:22px;height:22px}
.gicard__b{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.gicard__t{font-family:var(--font-display);font-weight:700;color:var(--ink-900,#1c1c1c);font-size:1.25rem;line-height:1.15}
.gicard__d{color:var(--color-text-muted);font-size:1.2rem;line-height:1.35}
.gicard__go{margin-left:auto;align-self:center;color:var(--orange-600,#D9760A);font-size:1.3rem;transition:transform .16s}
.gicard:hover .gicard__go{transform:translateX(4px)}
.gimodal__foot{margin:0;padding:0 clamp(1.4rem,3vw,1.6rem) clamp(1.3rem,2.6vw,1.6rem);text-align:center;color:var(--color-text-muted);font-size:1.2rem}

/* ---- Get Involved, multi-step wizard ---- */
.gimodal--wizard[open]{display:flex;flex-direction:column;max-height:94vh}
.giform{padding:clamp(1.1rem,2.6vw,1.6rem);padding-top:1rem;overflow:auto;min-height:0}
.gisteps{margin:0 0 1.4rem}
.gisteps__list{display:flex;gap:.5rem;list-style:none;margin:0 0 .7rem;padding:0}
.gisteps__i{display:flex;align-items:center;gap:.45em;flex:1;min-width:0;font-size:1.2rem;color:var(--color-text-muted)}
.gisteps__n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:1.1rem;
  background:var(--bone-100,#f1e9da);color:var(--color-text-muted);transition:background .2s,color .2s}
.gisteps__t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gisteps__i.is-current .gisteps__n,.gisteps__i.is-done .gisteps__n{background:var(--orange-500);color:#fff}
.gisteps__i.is-current{color:var(--ink-900,#1c1c1c);font-weight:600}
.gisteps__bar{height:6px;border-radius:99px;background:var(--bone-100,#f1e9da);overflow:hidden}
.gisteps__fill{display:block;height:100%;width:33%;border-radius:99px;background:linear-gradient(90deg,var(--orange-500),var(--orange-600));transition:width .35s var(--ease-out-soft,ease)}
@media(max-width:560px){.gisteps__t{display:none}}
.gistep{display:flex;flex-direction:column;gap:1rem;animation:gifade .3s var(--ease-out-soft,ease)}
.gistep[hidden],.gichips[hidden]{display:none}
@keyframes gifade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.gistep__q{margin:0;font-weight:700;color:var(--ink-900,#1c1c1c);font-size:1.3rem}
.gistep__nav{display:flex;justify-content:space-between;gap:.7rem;margin-top:.4rem}
.gistep__nav--end{justify-content:flex-end}
.gichoices{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
@media(max-width:560px){.gichoices{grid-template-columns:1fr}}
.gichoices.is-shake{animation:gishake .45s}
@keyframes gishake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.gichoice{position:relative;display:flex;align-items:flex-start;gap:.7rem;padding:.9rem 1rem;border:1.5px solid var(--line,#e7e0d4);
  border-radius:var(--radius-md);cursor:pointer;background:#fff;transition:border-color .18s,box-shadow .18s,transform .12s}
.gichoice:hover{border-color:var(--orange-300,#FCC580)}
.gichoice input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.gichoice:has(input:checked){border-color:var(--orange-500);box-shadow:0 0 0 3px rgba(248,148,30,.18)}
.gichoice:active{transform:scale(.99)}
.gichoice__ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;
  background:var(--orange-50,#fff5e8);color:var(--orange-700,#A85A0A);transition:background .18s,color .18s}
.gichoice__ic .ico{width:20px;height:20px}
.gichoice:has(input:checked) .gichoice__ic{background:var(--orange-500);color:#fff}
.gichoice__b{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.gichoice__t{font-weight:700;color:var(--ink-900,#1c1c1c);font-size:1.25rem;line-height:1.2}
.gichoice__d{color:var(--color-text-muted);font-size:1.2rem;line-height:1.3}
.gichips{display:flex;flex-wrap:wrap;gap:.55rem}
.gichip{font:inherit;font-size:1.2rem;padding:.5em 1em;border-radius:999px;border:1.5px solid var(--line,#e7e0d4);background:#fff;
  color:var(--ink-700,#5a534a);cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.gichip:hover{border-color:var(--orange-300,#FCC580)}
.gichip.is-on{background:var(--orange-500);border-color:var(--orange-500);color:#fff}
.giform .formrow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.giform .formrow{grid-template-columns:1fr}}
.giform .field{display:flex;flex-direction:column;gap:.35rem}
.giform label{font-weight:600;color:var(--ink-900,#1c1c1c);font-size:1.2rem}
.giform .opt{font-weight:400;color:var(--color-text-muted)}
.giform .req{color:var(--orange-600,#D9760A)}
.giform input[type=text],.giform input[type=email],.giform input[type=tel],.giform textarea{
  font:inherit;font-size:1.2rem;padding:.7em .85em;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:#fff;color:var(--ink-900);width:100%}
.giform input:focus,.giform textarea:focus{outline:none;border-color:var(--orange-500);box-shadow:0 0 0 3px rgba(248,148,30,.16)}
.giform textarea{resize:vertical;min-height:74px}
.giform .check{display:flex;align-items:flex-start;gap:.6em;cursor:pointer}
.giform .check input{margin-top:.25em;width:18px;height:18px;flex:none;accent-color:var(--orange-600,#D9760A)}
.giform .check span{font-size:1.2rem;line-height:1.4;color:var(--ink-700,#5a534a)}
.giform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.giform__error{margin:0;color:#b3261e;background:#fdecea;border:1px solid #f5c6c0;border-radius:var(--radius-md);padding:.6em .8em;font-size:1.2rem}
.gidone{text-align:center;padding:clamp(1.8rem,4vw,2.6rem)}
.gidone__check{width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;display:grid;place-items:center;font-size:2rem;color:#fff;
  background:linear-gradient(140deg,#2f9e44,#248a3a);box-shadow:0 10px 24px -10px rgba(36,138,58,.7)}
.gidone h3{margin:0 0 .3rem;font-size:1.6rem;color:var(--ink-900,#1c1c1c)}
.gidone p{margin:0 auto;max-width:40ch;color:var(--color-text-muted);font-size:1.3rem;line-height:1.5}
.gidone__foot{margin-top:1.4rem}

/* ============================================================
   HIV PREVENTION PIPELINE, flow of prevention methods by stage
   ============================================================ */
.pipeline .section-head{max-width:62ch;margin-inline:auto;text-align:center}
.pipeline .section-head>*{margin-inline:auto}
.pipeline .section-head .lead{max-width:52ch}
.pipeline .section-head h2,.pipeline .section-head .lead,.pipeline .section-head .eyebrow{text-wrap:balance}
/* top flow rail, aligns to the 4-column grid; dev spans the first two */
.pl-rail{display:grid;grid-template-columns:2fr 1fr 1fr;gap:clamp(.6rem,1.4vw,1rem);
  margin-top:clamp(1.6rem,3vw,2.6rem)}
.pl-rail__seg{border-radius:99px;padding:.5em 1.1em;color:#fff;font-family:var(--font-display);font-weight:700;
  font-size:1.2rem;display:flex;align-items:center;justify-content:center;gap:.5em;position:relative;box-shadow:var(--shadow-1)}
.pl-rail__seg--dev{background:var(--clay-700)}
.pl-rail__seg--app{background:var(--orange-700)}
.pl-rail__seg--avl{background:var(--orange-500)}
.pl-rail__seg em{font-style:normal;font-size:1.2em;line-height:1}
@media(max-width:820px){.pl-rail{display:none}}

/* the four stage columns */
.pl-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.8rem,1.6vw,1.3rem);
  margin-top:clamp(.9rem,1.8vw,1.3rem);align-items:stretch}
@media(max-width:1080px){.pl-flow{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.pl-flow{grid-template-columns:1fr}}

.pl-stage{--s:var(--clay-900);--st:#ece3d7;background:var(--st);border:1px solid rgba(0,0,0,.05);
  border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-1);display:flex;flex-direction:column}
.pl-stage--dev1{--s:var(--clay-900);--st:#ece3d7}
.pl-stage--dev2{--s:var(--clay-500);--st:#f0e7db}
.pl-stage--app{--s:var(--orange-700);--st:#f8e6d2}
.pl-stage--avl{--s:var(--orange-500);--st:#fdeede}
.pl-stage__head{background:var(--s);color:#fff;padding:1.1rem 1.1rem 1.35rem;text-align:center;position:relative}
.pl-stage__head::after{content:"";position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);
  width:18px;height:18px;background:var(--s);border-radius:3px;rotate:45deg;z-index:1}
.pl-stage__kicker{display:block;font-family:var(--font-body);font-weight:700;text-transform:uppercase;
  letter-spacing:.12em;font-size:1.2rem;opacity:.9;margin-bottom:.15em}
.pl-stage__head h3{color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.35rem;line-height:1.15;margin:0}
.pl-cards{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;padding:1.4rem .8rem .9rem}
.pl-cards--1{grid-template-columns:1fr}
@media(max-width:1080px){.pl-cards{grid-template-columns:repeat(3,1fr)}.pl-cards--1{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.pl-cards,.pl-cards--1{grid-template-columns:1fr 1fr}}

.pl-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-top:3px solid var(--s);border-radius:14px;
  padding:1rem .6rem .85rem;display:flex;flex-direction:column;align-items:center;gap:.55rem;text-align:center;
  transition:transform .22s var(--ease-out-soft),box-shadow .22s}
.pl-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.pl-card__ico{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--st);color:var(--s);flex:none}
.pl-card__name{font-family:var(--font-display);font-weight:700;font-size:1.2rem;line-height:1.2;color:var(--clay-900)}
.pl-card__name strong{color:var(--s)}
.pl-card__sub{display:block;font-family:var(--font-body);font-weight:600;font-size:1.2rem;color:var(--color-text-muted);margin-top:.15em;line-height:1.25}
.pl-fn{color:var(--s);text-decoration:none;font-weight:700}
.pl-fn sup{font-size:.7em}
.pl-note{margin:0 .8rem 1rem;padding:.65em .9em;border-radius:12px;background:#fff;border:1px dashed var(--s);
  color:var(--clay-700);font-size:1.2rem;text-align:center;font-style:italic}
.pl-note strong{color:var(--s);font-style:normal}
.pl-note--pin{margin-top:auto}

/* implementation-science callout (stage 3) */
.pl-callout{margin:0 .8rem 1rem;margin-top:auto;display:block;text-decoration:none;border-radius:14px;
  background:var(--s);color:#fff;padding:.95rem 1rem;transition:transform .22s,box-shadow .22s}
.pl-callout:hover{transform:translateY(-2px);box-shadow:var(--shadow-3)}
.pl-callout__label{display:block;font-family:var(--font-body);font-weight:700;font-size:1.2rem;text-transform:uppercase;letter-spacing:.08em;opacity:.92;margin-bottom:.25em}
.pl-callout__link{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:#fff}

/* footnotes + source */
.pl-foot{margin-top:clamp(1.6rem,3vw,2.4rem);border-top:1px solid var(--color-border);padding-top:1.2rem;
  display:grid;gap:.8rem;max-width:90ch}
.pl-foot__notes{margin:0;padding:0;list-style:none;display:grid;gap:.4em}
.pl-foot__notes li{font-size:1.2rem;color:var(--color-text-muted);line-height:1.5}
.pl-foot__notes sup{color:var(--orange-600);font-weight:700}
.pl-foot__src{font-size:1.2rem;color:var(--color-text-muted)}
.pl-foot__src a{color:var(--orange-600);font-weight:600}

/* ============================================================
   CHAMPION VOICES, single story + archive (CPT: story)
   ============================================================ */

/* --- Single: hero --- */
.cv-hero{
  padding-top:calc(var(--header-h) + clamp(1.4rem,4vw,3rem));
  padding-bottom:clamp(2rem,5vw,4rem);
  background:linear-gradient(180deg,var(--bone-100),var(--bone-50));
  border-bottom:1px solid var(--color-border);
}
.cv-hero__grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.8rem,4vw,4rem);
  align-items:center;
}
.cv-hero__text .breadcrumb{margin-bottom:1.2rem}
/* breadcrumb sits on the LIGHT cream hero, override the default white text so it's legible */
.cv-hero .breadcrumb ol,.cv-ahero .breadcrumb ol{color:var(--color-text-muted)}
.cv-hero .breadcrumb a,.cv-ahero .breadcrumb a{color:var(--clay-700)}
.cv-hero .breadcrumb a:hover,.cv-ahero .breadcrumb a:hover{color:var(--orange-600)}
.cv-hero .breadcrumb [aria-current],.cv-ahero .breadcrumb [aria-current]{color:var(--clay-900)}
.cv-hero__title{
  font-size:clamp(2.1rem,3.6vw,3.4rem);line-height:1.05;margin:.2em 0 .35em;
  color:var(--clay-700);text-wrap:balance;
}
.cv-hero__dek{
  font-size:var(--fs-lead);line-height:1.5;color:var(--color-text-muted);
  max-width:44ch;margin:0 0 1.6rem;
}
.cv-hero__media{
  margin:0;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-4);aspect-ratio:4/5;background:var(--sand-200);
  transform:rotate(-1.2deg);
}
.cv-hero__media img{width:100%;height:100%;object-fit:cover;display:block}

/* meta chips */
.cv-meta{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.7rem;
}
.cv-meta__item{
  display:flex;flex-direction:column;gap:.15rem;padding:.55rem .9rem;
  background:var(--white);border:1px solid var(--color-border);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-1);
}
.cv-meta__k{
  font-size:1.2rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--orange-600);font-weight:700;
}
.cv-meta__v{font-size:1.2rem;color:var(--clay-700);font-weight:600}

/* --- Single: pull quote band --- */
.cv-quote{
  background:var(--clay-900);color:var(--bone-50);
  padding:clamp(2.6rem,6vw,5rem) 0;position:relative;overflow:hidden;
}
.cv-quote::before{
  content:"\201C";position:absolute;left:clamp(.5rem,3vw,3rem);top:-.15em;
  font-family:var(--font-display);font-size:clamp(9rem,20vw,18rem);
  line-height:1;color:var(--orange-500);opacity:.22;
}
.cv-quote__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1.6rem,4vw,4rem);align-items:center}
.cv-quote__block{margin:0;position:relative;max-width:26ch}
.cv-quote__media{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-4);aspect-ratio:4/5;max-height:460px;align-self:center;background:#241a10}
.cv-quote__media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.cv-quote__text{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.18;margin:0 0 1rem;
  text-wrap:balance;color:var(--bone-50);
}
.cv-quote__cite{
  display:block;font-style:normal;font-size:1.2rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--orange-300);font-weight:700;
}

/* --- Single: video --- */
.cv-video__frame{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-3);background:#000;aspect-ratio:16/9;
}
.cv-video__frame .cv-video__iframe,
.cv-video__frame .cv-video__el{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
.cv-video__frame .wp-block-embed,.cv-video__frame iframe{position:absolute;inset:0;width:100%;height:100%}

/* --- Single: body extras (galleries / images / embeds inside prose) --- */
.cv-body{max-width:none}
.cv-body .wp-block-image{margin:2em 0}
.cv-body .wp-block-image img{
  width:100%;height:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-2);display:block;
}
.cv-body figcaption,.cv-body .wp-element-caption{
  margin-top:.6em;color:var(--color-text-muted);font-size:1.2rem;text-align:center;
}
.cv-body .wp-block-gallery{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.9rem;margin:2.2em 0;list-style:none;padding:0;
}
.cv-body .wp-block-gallery.columns-2{grid-template-columns:repeat(2,1fr)}
.cv-body .wp-block-gallery.columns-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.cv-body .wp-block-gallery .wp-block-image{margin:0}
.cv-body .wp-block-gallery .wp-block-image img{
  aspect-ratio:1/1;object-fit:cover;height:100%;box-shadow:var(--shadow-1);
}
.cv-body .wp-block-embed{margin:2em 0}
.cv-body .wp-block-embed__wrapper{position:relative;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-2)}
.cv-body .wp-block-quote{
  border-left:4px solid var(--orange-500);margin:1.8em 0;padding:.2em 0 .2em 1.2em;
  font-family:var(--font-display);font-size:clamp(1.4rem,2vw,1.8rem);
  color:var(--clay-700);font-style:italic;
}
.cv-body__cta{margin-top:2.4em}

/* --- Cards + grid (archive + related) --- */
.cv-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));
  gap:clamp(1.1rem,2.2vw,1.8rem);
}
.cv-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.cv-card{
  display:flex;flex-direction:column;background:var(--white);
  border:1px solid var(--color-border);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow-1);text-decoration:none;
  transition:transform .3s ease,box-shadow .3s ease;
}
.cv-card:hover,.cv-card:focus-visible{transform:translateY(-6px);box-shadow:var(--shadow-3)}
.cv-card__media{
  display:block;aspect-ratio:1/1;background-size:cover;background-position:center top;
  position:relative;
}
.cv-card__country{
  position:absolute;left:.8rem;bottom:.8rem;background:rgba(58,35,19,.72);
  color:#fff;font-size:1.2rem;font-weight:600;padding:.28em .7em;border-radius:var(--radius-pill);
  backdrop-filter:blur(4px);
}
.cv-card__body{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.2rem 1.3rem}
.cv-card__label{
  font-family:var(--font-display);font-weight:600;
  font-size:1.5rem;line-height:1.2;color:var(--clay-700);
}
.cv-card__name{font-size:1.2rem;color:var(--color-text-muted);font-weight:600}
.cv-card__more{
  margin-top:.4rem;font-size:1.2rem;font-weight:700;color:var(--orange-600);
  display:inline-flex;align-items:center;gap:.4em;
}
.cv-card:hover .cv-card__more .arrow{transform:translateX(4px)}
.cv-card__more .arrow{transition:transform .3s ease}

/* --- Archive hero --- */
.cv-ahero{
  padding-top:calc(var(--header-h) + clamp(1.4rem,4vw,3rem));
  padding-bottom:clamp(2rem,5vw,4rem);
  background:linear-gradient(180deg,var(--bone-100),var(--bone-50));
  border-bottom:1px solid var(--color-border);
}
.cv-ahero__grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.8rem,4vw,4rem);align-items:center;
}
.cv-ahero__lead{font-size:var(--fs-lead);line-height:1.6;color:var(--color-text-muted);max-width:52ch;margin:1rem 0 0}
.cv-ahero__collage{
  display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:.9rem;aspect-ratio:1/1;
}
.cv-ahero__tile{
  border-radius:var(--radius-md);background-size:cover;background-position:center top;
  box-shadow:var(--shadow-2);
}
.cv-ahero__tile:nth-child(1){transform:rotate(-1.5deg)}
.cv-ahero__tile:nth-child(4){transform:rotate(1.5deg)}

.cv-empty{font-size:var(--fs-lead);color:var(--color-text-muted);text-align:center;padding:3rem 0}

/* pagination */
.cv-archive .pagination,.cv-archive .nav-links{
  display:flex;gap:.5rem;justify-content:center;margin-top:clamp(1.6rem,3vw,2.6rem);flex-wrap:wrap;
}
.cv-archive .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:2.6em;padding:.5em .8em;
  border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--white);
  color:var(--clay-700);font-weight:600;text-decoration:none;
}
.cv-archive .page-numbers.current{background:var(--orange-500);color:#fff;border-color:var(--orange-500)}
.cv-archive .page-numbers:hover{border-color:var(--orange-500)}

/* --- Responsive --- */
@media (max-width:860px){
  .cv-hero__grid,.cv-ahero__grid{grid-template-columns:1fr}
  .cv-hero__media{transform:none;max-width:420px;margin-inline:auto;order:-1;aspect-ratio:4/5}
  .cv-ahero__collage{max-width:420px;margin-inline:auto;width:100%}
  .cv-quote__grid{grid-template-columns:1fr}
  .cv-quote__media{max-width:420px;width:100%;margin-inline:auto;aspect-ratio:4/5}
  .cv-quote__block{max-width:none}
}
