/* Heading font: Draft Natural by Ryan Martinson / Yellow Design Studio (commercial
   web licence held by CERC). Files in assets/fonts/draft-natural/. Caveat Brush is the
   fallback while the fonts load. */
@font-face { font-family: "Draft Natural"; font-weight: 400; font-display: swap;
  src: url("../fonts/draft-natural/draft-natural-regular.woff2") format("woff2"),
       url("../fonts/draft-natural/draft-natural-regular.woff") format("woff"); }
@font-face { font-family: "Draft Natural"; font-weight: 700; font-display: swap;
  src: url("../fonts/draft-natural/draft-natural-bold.woff2") format("woff2"),
       url("../fonts/draft-natural/draft-natural-bold.woff") format("woff"); }
@font-face { font-family: "Draft Natural A"; font-weight: 700; font-display: swap;
  src: url("../fonts/draft-natural/draft-natural-a-bold.woff2") format("woff2"); }

/* CERC — static site. Design system modelled on integrityaction.org
   (palette, type scale, spacing and components); CERC content and branding. */
:root {
  --c-primary: #eca327; --c-primary-dk: #ce8812;
  --c-red: #ee7b42; --c-red-dk: #e85b15;
  --c-blue: #4faac6; --c-blue-dk: #3790ab;
  --c-green: #5ab78d; --c-green-dk: #439b73;
  --c-purple: #c671ba;
  --c-navy: #3b3a5e; --c-navy-dk: #27273e;
  --c-text: #414141; --c-muted: #868686; --c-rule: #e3e3e7;
  --bg-light: #f6f6f4; --bg-mid: #efede5;
  --font-body: "Barlow", system-ui, sans-serif;
  --font-display: "Draft Natural", "Caveat Brush", "Barlow", cursive;
  --container: 1280px; --container-wide: 1600px; --gutter: 24px;
  --shadow-card: 0 0 12px 3px rgba(0,0,0,.05); --shadow-card-hover: 0 0 18px 6px rgba(0,0,0,.15);
  --header-h: 96px;
  /* Type scale: every text role uses one of these, so sizes match on every page. Running text is 18px with a 27px
     line on every screen, as on wfp.org; titles keep wfp.org's sizes and grow with the screen, from phones (390px wide) to computers
     (1440px and more), where they stop growing. */
  --fs-body: 18px; --lh-body: 1.5;                                   /* running text: 18px on a 27px line, as on wfp.org */
  --fs-small: 14px;                                                  /* dates, labels, captions, legal lines */
  --fs-lead: max(calc(var(--fs-h1) / 2), calc(var(--fs-body) * 1.08)); /* subtitle under a page title */
  --fs-display: clamp(35px, 29.4px + 1.429vw, 50px);                 /* homepage headline */
  --fs-h1: clamp(31.5px, 25.4px + 1.571vw, 48px);                    /* page titles */
  --fs-h2: clamp(28px, 24.1px + 1.105vw, 40px);                      /* section titles */
  --fs-h3: clamp(20px, 18.5px + .381vw, 24px);                       /* titles in the body and on cards */
  --fs-h4: clamp(18px, 17px + .267vw, 20.8px);
  --fs-h5: calc(var(--fs-body) * 1.02);
}
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 18px; -webkit-text-size-adjust: 100%; } /* rem = the running text (18px), so components sized in rem follow it */
body { margin: 0; min-width: 320px; color: var(--c-text); font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.3; background: #fff; }
img { max-width: 100%; height: auto; }
main { display: block; padding-top: var(--header-h); }
p, ul, ol, address, dl { font-size: var(--fs-body); line-height: var(--lh-body); margin: 0 0 1.25rem; }
a { color: var(--c-red); font-weight: 600; transition: color .2s ease-in-out; }
a:hover { color: #b67910; }
h1, h2, h3, h4, h5 { font-family: var(--font-display); font-weight: 700; font-synthesis: none; letter-spacing: .01rem; margin: 0 0 .75rem; color: var(--c-primary); }
h1 { font-size: var(--fs-h1); line-height: 1.05; }
h2 { font-size: var(--fs-h2); line-height: 1.1; }
h3 { font-size: var(--fs-h3); line-height: 1.1; }
h4 { font-size: var(--fs-h4); line-height: 1.1; }
h5 { font-size: var(--fs-h5); line-height: 1.15; }
h6 { font-family: var(--font-body); font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; margin: 0 0 .75rem; }
:is(p, ul, ol, figure, div) + :is(h2, h3, h4, h5, h6) { margin-top: 2.25rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; padding: .75rem 1rem; }
.skip-link:focus { left: 1rem; top: 1rem; }
.icon { width: 1em; height: 1em; fill: currentColor; flex: none; }
.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.container--wide { max-width: var(--container-wide); }
.row { display: flex; flex-wrap: wrap; margin: 0 calc(var(--gutter) * -1); }
.row > * { padding: 0 var(--gutter); width: 100%; }
.text-center { text-align: center; }
.text-muted { color: var(--c-muted); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 120px;
  padding: 11px 24px; border: 2px solid transparent; border-radius: 2.25rem;
  min-height: 44px; font: 700 14px/1.15 var(--font-body); text-transform: uppercase; letter-spacing: .06em; text-decoration: none;
  color: #fff; background: var(--c-primary); cursor: pointer;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}
.btn:hover { color: #fff; background: var(--c-primary-dk); }
.btn-red { background: var(--c-red); } .btn-red:hover { background: var(--c-red-dk); }
.btn-blue { background: var(--c-blue); } .btn-blue:hover { background: var(--c-blue-dk); }
.btn-green { background: var(--c-green); } .btn-green:hover { background: var(--c-green-dk); }
.btn-white { background: #fff; color: var(--c-muted); } .btn-white:hover { background: var(--c-primary); color: #fff; }
.btn-outline { background: transparent; border-color: currentColor; color: var(--c-primary); }
.btn-outline:hover { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.btn .icon { width: 14px; height: 14px; }

/* ---------- Header ---------- */

/* ---------- Sections ---------- */
.section { position: relative; padding: 90px 0; }
.section--sm { padding: 60px 0; }
.section--lg { padding: 120px 0; }
.bg-light { background: var(--bg-light); }
.bg-mid { background: var(--bg-mid); }
.bg-dark { background: var(--c-navy); color: #fff; }
.bg-dark h2, .bg-dark h3, .bg-dark p { color: #fff; }
.decorate { margin: 21px 0; }
.decorate::before, .decorate::after {
  content: ""; position: absolute; left: 0; right: 0; height: 22px; background: inherit; pointer-events: none;
  -webkit-mask: var(--edge) center / 1200px 22px repeat-x; mask: var(--edge) center / 1200px 22px repeat-x;
}
.decorate::before { top: -21px; }
.decorate::after { bottom: -21px; transform: scaleY(-1); }
:root { --edge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 22' preserveAspectRatio='none'%3E%3Cpath d='M0 22V12l40-4 38 5 52-7 46 6 40-8 58 9 36-5 50 4 44-9 52 8 40-3 46 6 52-9 38 5 44-4 56 7 40-8 50 6 42-5 48 7 38-6 54 5 46-7 40 4 52-6 48 8 44-5 40 3V22z'/%3E%3C/svg%3E"); }
.section__tag { display: block; font-size: var(--fs-small); line-height: 1.25rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-text); margin: 0 0 .5rem; }
.bg-dark .section__tag { color: #fff; }
.section__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2.25rem; }
.section__header h2 { margin: 0; }

/* ---------- Home hero ---------- */
.hero--hp { position: relative; min-height: min(480px, calc(100vh - var(--header-h))); display: flex; align-items: center; background: var(--bg-mid); overflow: hidden; }
.hero--hp .hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
@media (min-width: 992px) {
  /* computer: shorter band, softly blurred photo (scaled so blurred edges stay hidden) */
  .hero--hp { min-height: 420px; }
  .hero--hp .hero__content { padding: 2.5rem var(--gutter) 3rem; }
  .hero--hp .hero__bg { filter: blur(6px); transform: scale(1.06); }
}
.hero--hp .hero__bg::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(239,237,229,.92) 0, rgba(239,237,229,.82) 38%, rgba(239,237,229,.25) 75%); }
.hero--hp .hero__content { position: relative; max-width: 46rem; margin: 0 auto; padding: 3.5rem var(--gutter) 4rem; text-align: center; }
.hero--hp h1 { font-family: "Draft Natural A", var(--font-display); font-size: var(--fs-display); line-height: 1; text-transform: uppercase; letter-spacing: .06rem; color: var(--c-red); margin-bottom: 1.25rem; }
.hero--hp .hero__lead { font-family: var(--font-display); font-weight: 700; font-size: calc(max(calc(var(--fs-display) / 2), var(--fs-body)) * 1.44); line-height: 1.1; max-width: 45rem; margin: 0 auto 2rem; color: var(--c-text); }
.hero__buttons { display: flex; flex-direction: column; gap: .9rem; width: 80%; max-width: 26rem; margin: 0 auto; }
.hero__scroll { position: absolute; bottom: 0; left: 50%; transform: translate(-50%, 50%); color: var(--c-primary); width: 18px; height: 53px; z-index: 2; }

/* ---------- Organic image mask ---------- */
.mask-blob { margin: 0; position: relative; }
.mask-blob img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 75' preserveAspectRatio='none'%3E%3Cpath d='M6 9C14 2 30 3 44 2s30-2 42 3 12 16 12 28-1 26-6 33-18 8-33 8-30 1-41-3S1 58 1 46s0-29 5-37z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 75' preserveAspectRatio='none'%3E%3Cpath d='M6 9C14 2 30 3 44 2s30-2 42 3 12 16 12 28-1 26-6 33-18 8-33 8-30 1-41-3S1 58 1 46s0-29 5-37z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }

.split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }

/* ---------- Briefs (icon blocks) ---------- */
.briefs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; text-align: center; }
.brief .brief__icon { width: 72px; height: 72px; margin: 0 auto 1.25rem; }
.brief p { font-size: var(--fs-body); line-height: var(--lh-body); }
.c-primary { color: var(--c-primary) !important; } .c-red { color: var(--c-red) !important; } .c-blue { color: var(--c-blue) !important; } .c-green { color: var(--c-green) !important; }

/* ---------- Stats ---------- */
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; text-align: center; }
.stat .icon { width: 90px; height: 90px; margin-bottom: 1rem; }
.stat p { color: var(--c-muted); }
.stat em { display: block; font-style: normal; font-family: var(--font-display); font-weight: 700; font-synthesis: none; font-size: 2.6rem; line-height: 1.1; color: var(--c-text); margin-bottom: .35rem; }

/* ---------- Cards ---------- */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.card {
  position: relative; display: flex; flex-direction: column; background: #fff; color: var(--c-text); text-decoration: none; font-weight: 400;
  box-shadow: var(--shadow-card); transition: box-shadow .2s ease-in-out; margin-top: 1.875rem;
}
.card:hover { box-shadow: var(--shadow-card-hover); color: var(--c-text); }
.card-body { padding: 3.75rem 2rem 2rem; flex: 1; display: flex; flex-direction: column; }
.card-title { font-size: var(--fs-h3); line-height: 1.1; color: var(--c-text); margin: 0 0 .75rem; }
.card-text { font-size: var(--fs-body); line-height: var(--lh-body); margin: 0; }
.function-icon {
  position: absolute; top: 0; left: 30px; transform: translateY(-50%); z-index: 2;
  display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%;
  background: var(--c-primary); color: #fff;
}
.function-icon .icon { width: 26px; height: 26px; }
.function-icon--static { position: static; transform: none; margin-bottom: 1rem; }
.info { display: flex; flex-wrap: wrap; font-size: var(--fs-small); line-height: 1.4; color: var(--c-muted); margin: 0 0 .75rem; }
.info > * + * { border-left: 1px solid currentColor; padding-left: 1.125rem; margin-left: 1.125rem; }
.story { display: flex; flex-direction: column; position: relative; }
.story__img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-mid); transition: box-shadow .2s; }
.story__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.story__img::after { content: ""; position: absolute; inset: 0; background: rgba(58,59,94,.3); }
.story__img:hover { box-shadow: 0 0 20px 10px rgba(0,0,0,.2); }
.story h3 { font-size: var(--fs-h3); color: var(--c-text); margin: 1.25rem 0 .75rem; }
.story h3 a { color: inherit; text-decoration: none; font-weight: 700; }
.story p { font-size: var(--fs-body); line-height: var(--lh-body); flex: 1; }
.story .btn { align-self: flex-start; }
.blog-link { display: block; position: relative; text-decoration: none; color: var(--c-text); font-weight: 400; }
.blog-link__title { font-size: var(--fs-h3); line-height: 1.15; color: var(--c-text); text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 2px; text-underline-offset: 4px; transition: text-decoration-color .2s; }
.blog-link:hover .blog-link__title { text-decoration-color: var(--c-primary); }

/* horizontal article cards (listing) */
.hcard { display: grid; grid-template-columns: 1fr 1fr; }
.hcard .card-body { padding: 3.75rem 2.25rem 2.25rem; }
.hcard__img { min-height: 260px; background: var(--bg-mid); }
.hcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hcard__img--art img { object-fit: contain; padding: 1.5rem; max-height: 320px; margin: auto; }
.hcards { display: flex; flex-direction: column; gap: 3rem; }
.badges { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 2rem; }
.badge { display: inline-block; padding: .5rem 1.125rem; border-radius: 5px; background: var(--c-blue); color: #fff; text-decoration: none; font-size: .875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08rem; }
.badge:hover, .badge.is-active { background: #2b6f84; color: #fff; }
.count { font-size: var(--fs-lead); color: var(--c-muted); margin-bottom: 1rem; }
.count strong { color: var(--c-text); font-weight: 600; }
.pagination { display: flex; justify-content: center; align-items: center; gap: .75rem; margin-top: 3rem; list-style: none; padding: 0; }
.pagination a, .pagination span { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; text-decoration: none; color: var(--c-text); font-size: 1.1rem; font-weight: 600; }
.pagination a:hover { background: var(--bg-mid); color: var(--c-text); }
.pagination .current { background: var(--c-primary); color: #fff; }

/* featured listing hero */
.hero--overlap { padding: 60px 0 0; }
.featured {
  position: relative; display: block; margin-bottom: -82px; min-height: 420px; padding: 3.375rem 2.25rem 6.375rem;
  background-size: cover; background-position: center; color: #fff; text-decoration: none; font-weight: 400;
  box-shadow: 0 0 25px 12px rgba(0,0,0,.23);
}
.featured::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, #414141 0, rgba(65,65,65,.75) 45%, rgba(134,134,134,0) 100%); }
.featured > * { position: relative; max-width: 36rem; }
.featured .info { color: #fff; }
.featured h1, .featured h2 { font-size: var(--fs-h2); color: #fff; }
.featured p { color: #fff; }
.featured:hover { color: #fff; }
.after-overlap { padding-top: 160px; }

/* ---------- Inner page ---------- */
.page-hero { background: var(--bg-mid); padding: 44px 0; }
.breadcrumb { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0 0 1rem; font-size: var(--fs-small); font-weight: 600; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-muted); }
.breadcrumb li + li::before { content: "/"; margin-right: .5rem; }
.breadcrumb a { color: var(--c-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--c-primary); }
.page-hero h1 { color: var(--c-red); max-width: 52rem; }
.page-hero .hero__lead { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-lead); line-height: 1.3; max-width: 43.75rem; margin: 0; }
.content-col { max-width: 840px; margin: 0 auto; }
.content-col.wide { max-width: var(--container); }

/* body content typography (WordPress blocks) */
/* Articles d'actualité : texte justifié (demande CERC) */
/* titles inside running text: 20px (h4 18px) on every screen */
:is(.entry, .mag-article__body) :is(h2, h3), .report-entry h3 { font-size: var(--fs-h3); line-height: 1.25; }
:is(.entry, .mag-article__body, .report-entry) :is(h4, h5) { font-size: var(--fs-h4); line-height: 1.3; }
/* justified running text, never hyphenated (no word cut with "-" at the end of a line); left-aligned on phones, where justification leaves gaps */
:is(.entry, .report-entry, .policy-sec .entry, .mag-article__body) :is(p, li), .content-col:not(.toc-intro) > p:not(.hero__lead) {
  text-align: justify; hyphens: manual; -webkit-hyphens: manual; text-wrap: pretty; }
@media (max-width: 479.98px) {
  :is(.entry, .report-entry, .policy-sec .entry, .mag-article__body) :is(p, li), .content-col:not(.toc-intro) > p:not(.hero__lead) { text-align: left; hyphens: manual; }
  .btn { min-height: 48px; }
}
.entry h2, .entry h3, .entry h4, .entry h5 { color: var(--c-primary); }
.entry h2 strong, .entry h3 strong, .entry h4 strong, .entry h5 strong { font-weight: inherit; }
.entry ul:not([class*="cerc-"]) { list-style: none; padding-left: 0; }
.entry ul:not([class*="cerc-"]) > li { position: relative; padding-left: 1.5rem; margin-bottom: .5625rem; }
.entry ul:not([class*="cerc-"]) > li::before { content: ""; position: absolute; left: .375rem; top: .65rem; width: 5px; height: 5px; border-radius: 50%; background: var(--c-primary); }
.entry ol { padding-left: 1.5rem; }
.entry ol > li { margin-bottom: .5625rem; }
.entry li { font-size: var(--fs-body); }
.entry .wp-block-embed iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }
.entry .cerc-name { color: var(--c-text); }
.entry mark { background: none; color: inherit; }
.entry figcaption, .entry label, .entry blockquote, .entry dd, .entry dt { font-size: var(--fs-body); line-height: var(--lh-body); }
.entry blockquote, .entry .wp-block-quote { margin: 2rem 0; padding: 0; border: 0; }
.entry blockquote p { font-weight: 600; font-style: italic; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--c-primary); }
.entry blockquote cite { display: block; text-align: right; font-style: normal; color: var(--c-muted); font-size: var(--fs-body); }
.entry img { height: auto; }
.entry table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: var(--fs-body); }
.entry th, .entry td { border: 1px solid var(--c-rule); padding: .6rem .8rem; text-align: left; }
.entry th { background: var(--bg-light); }
.entry .wp-block-media-text { margin-bottom: 2rem; }
.entry .wp-block-media-text__content { padding: 0 2rem; }
.entry .wp-block-columns { gap: 2.5rem; }
.entry hr, .entry .wp-block-separator { border: 0; border-top: 1px solid var(--c-rule); margin: 2.5rem 0; }

/* ---------- Article ---------- */
.article-hero { background: var(--c-navy); padding-top: 60px; }
.article-hero figure { margin: 0 auto -150px; max-width: 1080px; position: relative; z-index: 1; box-shadow: 0 0 25px 12px rgba(0,0,0,.23); }
.article-hero img { display: block; width: 100%; aspect-ratio: 1280 / 630; object-fit: cover; }
.article { padding: 210px 0 60px; }
.article--noimg { padding-top: 90px; }
.article .content-col { position: relative; padding-left: 3rem; }
.article .content-col::before { content: ""; position: absolute; left: 0; top: -60px; bottom: -60px; width: 1px; background: var(--c-rule); }
.article .function-icon { left: 0; top: 0; transform: translate(-50%, -50%); }
.article time { display: block; color: var(--c-muted); font-size: var(--fs-small); margin-bottom: .75rem; }
.article h1 { color: var(--c-text); margin-bottom: 1.5rem; }
.tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 2rem; }
.tag { padding: .4rem 1rem; border: 1px solid var(--c-muted); border-radius: 5px; color: var(--c-muted); text-decoration: none; font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08rem; }
.tag:hover { background: var(--bg-light); color: var(--c-text); }
.related { padding: 60px 0 90px; }
.related .content-col { position: relative; padding-left: 3rem; }
.related .content-col::before { content: ""; position: absolute; left: 0; top: -60px; bottom: 0; width: 1px; background: var(--c-rule); }
.related h2.h6 { font-family: var(--font-body); font-size: var(--fs-small); color: var(--c-text); text-transform: uppercase; letter-spacing: .08rem; }
.related .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 48px; margin-top: 1.5rem; }

/* ---------- Footer ---------- */
.footer { color: #fff; }
.footer p, .footer dd, .footer li { font-size: var(--fs-body); line-height: var(--lh-body); }
.footer a { color: #fff; font-weight: 400; text-decoration: none; }
.footer a:hover { color: #fff; text-decoration: underline; }
.list--social { list-style: none; display: flex; gap: .6rem; padding: 0; margin: 0; }
.list--social a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--c-blue); transition: background .2s; }
.list--social a:hover { background: var(--c-blue-dk); text-decoration: none; }
.list--social .icon { width: 18px; height: 18px; }

/* ---------- Floating helper ---------- */
.helper { position: fixed; right: 42px; bottom: 42px; z-index: 90; display: flex; align-items: flex-end; gap: 12px; }
.helper__box { background: var(--c-navy); border-radius: 999px; box-shadow: 0 6px 20px rgba(39,39,62,.3); }
.helper__toggle { display: flex; align-items: center; gap: 10px; border: 0; background: none; color: #fff; cursor: pointer; padding: 12px 20px 12px 16px;
  font: 600 15px/1 var(--font-body); }
.helper__toggle img { width: 32px; height: 32px; border-radius: 50%; margin: -4px 0 -4px -8px; box-shadow: 0 0 0 2px #fff; }
.helper__box:hover, .helper.is-open .helper__box { background: var(--c-navy-dk); }
.helper .to-top { opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; }
.helper.is-visible .to-top { opacity: 1; visibility: visible; }
.to-top { width: 48px; height: 48px; border-radius: 10px; background: rgba(150,149,163,.7); color: #fff; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.to-top:hover { background: var(--c-navy); color: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 1279.98px) {
}
@media (max-width: 991.98px) {
  :root { --gutter: 12px; --header-h: 72px; }
  .split, .briefs, .stats, .grid-3 { grid-template-columns: 1fr; gap: 36px; }
  .hcard { grid-template-columns: 1fr; }
  .hcard__img { order: -1; min-height: 220px; }
  .related .grid-2 { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .section { padding: 52px 0; } .section--lg { padding: 80px 0; }
  .hero__buttons { width: 100%; }
  .btn { padding: 10px 18px; font-size: 13.5px; }
  .featured { padding: 2rem 1.25rem 4rem; min-height: 360px; }
  .article { padding-top: 150px; }
  .article-hero figure { margin-bottom: -100px; }
  .article .content-col, .related .content-col { padding-left: 1.5rem; }
  .article .function-icon { position: static; transform: none; margin-bottom: 1rem; }
  .helper { right: 16px; bottom: 16px; }
  .entry .wp-block-media-text__content { padding: 1rem 0 0; }
}

/* ---------- Illustrated section cards (Initiatives) ---------- */
.card--illus .card-illus { margin: 0; background: var(--bg-light); padding: 1.25rem 1.5rem 0; }
.card--illus .card-illus img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: contain; transition: transform .3s; }
.card--illus:hover .card-illus img { transform: scale(1.04); }
.card--illus .card-body { padding-top: 1.75rem; }

/* ---------- Boxed page sections (Research and studies) ---------- */
.study-box { position: relative; background: #fff; box-shadow: var(--shadow-card); padding: 3.75rem 2.25rem 1.75rem; margin: 4rem 0 0; }
.study-box .function-icon { left: 2.25rem; }
.study-box > :first-child + * { margin-top: 0; }
.study-box > :last-child { margin-bottom: 0; }
.study-box + :is(h2, h3, h4) { margin-top: 3.5rem; }

/* ---------- Hero with illustration hanging into the next section ---------- */
.hero-overlap { position: relative; z-index: 5; padding: 60px 0 0; text-align: center; }
.hero-overlap .breadcrumb { justify-content: center; }
.hero-overlap h1 { color: var(--c-red); }
.hero-overlap .hero__lead { font-family: var(--font-display); font-size: var(--fs-lead); line-height: 1.3; max-width: 46rem; margin: 0 auto; }
.hero-overlap__image { margin: 2.5rem auto -120px; max-width: 760px; position: relative; z-index: 4; }
.hero-overlap__image img { display: block; width: 100%; }
.hero-overlap + .section { padding-top: 170px; }

/* ---------- Partner cards (Integrity Action partnerships) ---------- */
.partners { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.5rem 28px; }
.partners .partner__image { height: 11.5rem; padding: 1.5rem; }
.partners .partner__text { padding: 1.75rem 1.25rem 1.25rem; }
.partners .partner__title { font-size: var(--fs-h4); }
.partner { display: flex; flex-direction: column; }
.partner__image { display: flex; align-items: center; justify-content: center; height: 13.4375rem; padding: 1.75rem; margin: 0; background: #fff; }
.partner__image img { max-height: 100%; max-width: 80%; object-fit: contain; }
.partner__mono { display: inline-flex; align-items: center; justify-content: center; width: 110px; height: 110px; border-radius: 50%;
  background: var(--c-primary); color: #fff; font-family: var(--font-display); font-size: 2.6rem; font-weight: 700; }
.partner__mono--long { font-size: 1.5rem; letter-spacing: .02em; }
.partners-band .partners + .section__header { margin-top: 4.5rem; }
.partner__text { flex: 1; background: var(--bg-light); padding: 2.25rem 1.875rem 1.875rem; text-align: center; }
.partners-band .partner__text p, .partners-band .partner__text h3 { color: var(--c-text); }
.partners-band .partner__text .partner__tag { color: var(--c-muted); font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; margin: 0 0 .375rem; }
.partner__title { font-size: var(--fs-h3); line-height: 1.1; margin: 0 0 .5rem; }
.partners-band .partner__text .partner__prog { color: var(--c-red); font-weight: 600; margin: 0 0 1rem; }
.partner__desc { text-align: left; margin: 0; }

/* ---------- Light section with a beige block behind the right half ---------- */
.half-mid { overflow: hidden; }
.half-mid .split { position: relative; }
.half-mid__image { margin: 0; position: relative; z-index: 1; }
.half-mid__image img { display: block; width: 100%; max-width: 520px; margin: 0 auto; }
@media (min-width: 992px) {
  .half-mid { background: linear-gradient(to right, var(--bg-light) 50%, var(--bg-mid) 50%); }
}
@media (max-width: 991.98px) {
  .partners { grid-template-columns: repeat(2, 1fr); }
  .hero-overlap__image { margin-bottom: -80px; }
  .hero-overlap + .section { padding-top: 120px; }
}
@media (max-width: 767.98px) {
  .partners { grid-template-columns: 1fr; gap: 2.25rem; }
  .study-box { padding: 3.25rem 1.25rem 1.25rem; }
  .study-box .function-icon { left: 1.25rem; }
  .hero-overlap__image { margin-bottom: -50px; }
  .hero-overlap + .section { padding-top: 90px; }
}
.entry .card-title { color: var(--c-text); }
.study-box > .function-icon + :is(h2, h3, h4, h5) { font-size: var(--fs-h3); color: var(--c-text); }
.study-box > :not(.function-icon + *):is(h3, h4, h5) { font-size: var(--fs-h4); }

/* ---------- Page hero with a side illustration (Team) ---------- */
.page-hero--side { padding-bottom: 0; }
.page-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: end; }
.page-hero__grid > div { padding-bottom: 60px; }
.hero__image--side { width: 100%; margin: 0 -65px 0 0; transform: translateY(60px); max-width: 40rem; justify-self: end; position: relative; z-index: 2; }
.hero__image--side img { display: block; width: 100%; }
.page-hero--side + .section { padding-top: 110px; }

/* ---------- Filter pills ---------- */
.filter__list { display: flex; flex-wrap: nowrap; align-items: center; gap: .25rem; margin: 0 0 2.25rem; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; }
.filter__list dt { font-weight: 400; margin-right: .25rem; }
.filter__list dt, .filter__list dd { margin: 0; flex: none; white-space: nowrap; }
.filter__list button { border: 0; background: transparent; border-radius: 34px; padding: 9px 12px; font: 600 17.25px var(--font-body); white-space: nowrap;
  color: var(--c-text); cursor: pointer; transition: background .2s, color .2s; }
.filter__list button:hover, .filter__list button:focus-visible, .filter__list button.is-active { background: var(--c-primary); color: #fff; }

/* ---------- Team cards (Integrity Action "the team") ---------- */
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem 30px; }
.team-col[hidden] { display: none; }
.team { display: flex; flex-direction: column; height: 100%; background: #fff; box-shadow: var(--shadow-card); color: var(--c-text); text-decoration: none; font-weight: 400; }
.team:hover, .team:focus-visible { box-shadow: var(--shadow-card-hover); color: var(--c-text); }
.team__image { margin: 0; aspect-ratio: 1 / 1; background: var(--bg-mid); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.team__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.team__initials { font-family: var(--font-display); font-size: 4rem; color: var(--c-primary); }
.team__details { flex: 1; padding: 1.5rem; }
.team__tag { color: var(--c-primary); font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; margin: 0 0 .375rem; }
.team__name { font-size: var(--fs-h2); line-height: 1.08; color: var(--c-text); margin: 0; }
.team__role { color: var(--c-muted); font-size: var(--fs-small); font-weight: 600; margin: .5rem 0 0; }

/* ---------- Team profile pop-up ---------- */
.team-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 6rem 1rem 2rem;
  background: rgba(59, 58, 94, .9); opacity: 0; transition: opacity .3s; }
.team-modal[hidden] { display: none; }
.team-modal.is-open { opacity: 1; }
.team-modal__dialog { position: relative; width: 100%; max-width: 37.5rem; max-height: calc(100vh - 8rem); display: flex; flex-direction: column;
  border-radius: .625rem; transform: translateY(-50px); transition: transform .3s ease-out; }
.team-modal.is-open .team-modal__dialog { transform: none; }
.team-modal__close { position: absolute; top: 0; right: 0; transform: translate(50%, -50%); z-index: 3; width: 46px; height: 46px; border: 0; border-radius: 50%;
  background: var(--c-red); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s; }
.team-modal__close:hover { background: var(--c-red-dk); }
.team-modal__close .icon { width: 16px; height: 16px; }
.team-modal__header { position: relative; background: var(--bg-light); border-radius: .625rem .625rem 0 0; }
.team-modal__header .team__image { position: absolute; right: 3rem; top: 0; transform: translateY(-78px); width: 230px; height: 230px; border-radius: 50%;
  box-shadow: 0 0 0 6px #fff; }
.team-modal__header .team__details { padding: 42px 300px 30px 48px; min-height: 170px; }
.team-modal__header .team__role { font-size: var(--fs-body); }
.team-modal__body { background: #fff; padding: 36px 48px 30px; overflow-y: auto; }
.team-modal__body p { margin: 0 0 1rem; }
.team__subtitle { font-family: var(--font-body); font-size: var(--fs-body); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-text); margin: 0 0 1rem; }
.team-modal__footer { display: flex; justify-content: space-between; gap: 1rem; background: var(--bg-light); border-radius: 0 0 .625rem .625rem; padding: 24px 48px; }
.team-modal__nav { border: 0; background: none; padding: 0; text-align: left; cursor: pointer; font-family: var(--font-body); color: var(--c-text); }
.team-modal__nav--next { text-align: right; }
.team-modal__nav span { display: block; color: var(--c-primary); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; font-size: var(--fs-small);
  text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color .2s; }
.team-modal__nav:hover span { text-decoration-color: currentColor; }
.team-modal__nav strong { display: block; font-family: var(--font-display); font-size: var(--fs-h3); font-weight: 700; margin-top: .25rem; }
body.modal-open { overflow: hidden; }

@media (max-width: 991.98px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .page-hero__grid { grid-template-columns: 1fr; }
  .hero__image--side { margin: 0 auto; max-width: 26rem; transform: translateY(40px); }
  .page-hero__grid > div { padding-bottom: 0; }
}
@media (max-width: 767.98px) {
  .team-grid { grid-template-columns: 1fr; }
  .filter__list button { font-size: .9rem; padding: 9px 12px; }  /* one line, scrolls sideways */
  .team-modal { padding-top: 7rem; }
  .team-modal__dialog { max-height: calc(100vh - 9rem); }
  .team-modal__close { transform: translate(10%, -50%); }
  .team-modal__header .team__image { width: 160px; height: 160px; right: auto; left: 50%; transform: translate(-50%, -50%); }
  .team-modal__header .team__details { padding: 5.625rem 1.5rem 1.5rem; text-align: center; min-height: 0; }
  .team-modal__body { padding: 24px; }
  .team-modal__footer { padding: 18px 24px; }
  .team-modal__nav strong { display: none; }
}

/* ---------- Report list (Integrity Action governance) ---------- */
.page-hero--side + .reports-section { padding-top: 110px; }
.reports { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3.75rem 30px; }
.report { display: flex; align-items: center; }
.report__image { flex-shrink: 0; width: 8rem; margin: 0 1.5rem 0 0; }
.report__image img { display: block; width: 100%; }
.report__title { font-size: var(--fs-h3); line-height: 1.08; color: var(--c-text); margin: 0 0 .375rem; }
.report__date { color: var(--c-muted); font-size: var(--fs-small); margin: 0 0 .75rem; }
.btn-light { display: inline-flex; align-items: center; gap: 12px; min-width: 120px; background: var(--bg-light); color: var(--c-muted); }
.btn-light .icon { width: 11px; height: 16px; color: var(--c-primary); }
.btn-light:hover, .btn-light:focus-visible { background: var(--bg-light); color: var(--c-primary); }
@media (max-width: 1279.98px) { .reports { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 991.98px) { .reports { grid-template-columns: 1fr; gap: 2.8125rem; } }
@media (max-width: 767.98px) { .report__image { width: 5.625rem; } }
/* Team: 4 photos per line on computers */
.team-grid { grid-template-columns: repeat(4, 1fr); gap: 2.5rem 24px; }
.team-grid .team__name { font-size: var(--fs-h3); }
@media (max-width: 1279.98px) { .team-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 991.98px) { .team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .team-grid { grid-template-columns: 1fr; } }

/* ---------- Impact (Integrity Action "what we do / impact") ---------- */
.page-hero--side + .impact-band { margin-top: 0; }
.impact-band { padding-top: 110px; }
.impact-band__heading { max-width: 50%; }
.impact-band .impact-band__heading h2 { color: var(--c-primary); margin-bottom: 1.25rem; }
.impact-card { display: flex; flex-direction: column; }
.impact-card__img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-mid); transition: box-shadow .2s; }
.impact-card__img::before { content: ""; position: absolute; inset: 0; background: rgba(58, 59, 94, .3); z-index: 1; transition: background .2s; }
.impact-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.impact-card__img--art img { object-fit: contain; padding: .75rem; }
.impact-card__img--art::before { background: transparent; }
.impact-card__img:hover { box-shadow: 0 0 20px 10px rgba(0, 0, 0, .2); }
.impact-card__img:hover::before { background: rgba(58, 59, 94, .1); }
.impact-band .impact-card__title { color: #fff; font-size: var(--fs-h3); margin: 1.5rem 0 .75rem; }
.impact-band .impact-card__year + .impact-card__title { margin-top: 1rem; }
.impact-card .impact-card__year { flex: 0; margin: 1.5rem 0 -.75rem; color: var(--c-primary); font-weight: 700; font-size: var(--fs-small); letter-spacing: .08rem; }
.impact-card > p { flex: 1; }
.impact-card .impact-card__cta { flex: 0; margin: 0; }
.btn-blue .icon { width: 14px; height: 14px; }
.impact-text h2:first-child { margin-top: 0; }
.impact-story { margin-top: 2.25rem; scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.impact-story h3 { color: var(--c-text); }
.impact-story figure { margin: 0 0 1.25rem; }
.impact-story figure img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.impact-story:target h3 { color: var(--c-red); }
@media (max-width: 991.98px) { .impact-band__heading { max-width: none; } }
.impact-photo { margin: 2rem 0; }
.impact-photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--bg-mid); }
.impact-photo figcaption { color: var(--c-muted); font-size: var(--fs-small); margin-top: .5rem; }
.impact-photo--wide { margin-left: -4rem; margin-right: -4rem; }
.impact-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 2rem 0; }
.impact-photos .impact-photo { margin: 0; }
@media (max-width: 991.98px) { .impact-photo--wide { margin-left: 0; margin-right: 0; } }
@media (max-width: 575.98px) { .impact-photos { grid-template-columns: 1fr; } }

/* ---------- Accountability blocks ---------- */
.page-hero--side + .section { padding-top: 110px; }
.split--text { align-items: start; grid-template-columns: 5fr 7fr; }
.policies { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4rem 30px; padding-top: 1.5rem; }
.policy { position: relative; background: #fff; box-shadow: var(--shadow-card); padding: 3.75rem 2.25rem 2rem; }
.policy__title { font-size: var(--fs-h3); color: var(--c-text); }
.policy p { margin-bottom: 1rem; }
.policy .policy__link { margin: 1.25rem 0 0; }
.policy__link a { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; }
.policy__link a:hover { text-decoration: underline; }
.policy__link .icon { width: 14px; height: 14px; flex: none; }
.docs-intro { max-width: 52rem; }
.doc-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 1.5rem; }
.doc-tile { display: flex; flex-direction: column; gap: .75rem; background: #fff; box-shadow: var(--shadow-card); padding: 1.5rem; color: var(--c-text);
  text-decoration: none; font-weight: 400; transition: box-shadow .2s; }
.doc-tile:hover { box-shadow: var(--shadow-card-hover); color: var(--c-text); }
.doc-tile__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--c-primary); color: #fff; }
.doc-tile__icon .icon { width: 20px; height: 20px; }
.doc-tile__label { flex: 1; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h5); line-height: 1.15; }
.doc-tile__open { display: inline-flex; align-items: center; gap: .5rem; color: var(--c-red); font-weight: 700; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: .08rem; }
.doc-tile__open .icon { width: 12px; height: 12px; }
@media (max-width: 991.98px) { .policies, .split--text { grid-template-columns: 1fr; } .doc-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .doc-tiles { grid-template-columns: 1fr; } }

/* ---------- Theory of change steps ---------- */
.toc-intro p { font-size: var(--fs-lead); font-family: var(--font-display); line-height: 1.3; }
.toc-step { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; margin-top: 3.5rem; }
.toc-step--flip .toc-step__art { order: 2; }
.toc-step__art { margin: 0; }
.toc-step__art img { display: block; width: 100%; max-width: 520px; margin: 0 auto; }
.toc-step__num { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%;
  background: var(--c-red); color: #fff; font-weight: 700; font-size: 1.25rem; margin-bottom: 1rem; }
.toc-step__text h3 { color: var(--c-text); font-size: var(--fs-h2); }
@media (max-width: 991.98px) {
  .toc-step { grid-template-columns: 1fr; gap: 1.5rem; }
  .toc-step--flip .toc-step__art { order: 0; }
  .toc-step__art img { max-width: 380px; }
}
.page-hero--side { overflow-x: clip; }

/* ---------- Donate ---------- */
.page-hero--side .btn { margin-top: 1.5rem; }
.pay-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; padding-top: 1.5rem; }
.pay-card { position: relative; background: #fff; box-shadow: var(--shadow-card); padding: 3.75rem 1.75rem 1.75rem; }
.pay-card__title { font-size: var(--fs-h3); color: var(--c-text); }
.pay-card__list { margin: 0; }
.pay-card__list > div { padding: .875rem 0; border-top: 1px solid var(--c-rule); }
.pay-card__list dt { color: var(--c-muted); font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .06rem; }
.pay-card__list dd { margin: .25rem 0 0; display: flex; align-items: center; justify-content: space-between; gap: .75rem; font-weight: 600; word-break: break-word; }
.copy-btn { flex: none; display: inline-flex; align-items: center; gap: .35rem; border: 0; border-radius: 20px; padding: .35rem .75rem; background: var(--bg-light);
  color: var(--c-muted); font: 700 .75rem var(--font-body); text-transform: uppercase; letter-spacing: .06rem; cursor: pointer; transition: color .2s, background .2s; }
.copy-btn:hover, .copy-btn.is-done { background: var(--c-primary); color: #fff; }
.copy-btn .icon { width: 12px; height: 12px; }
.donate-note { margin-top: 2.5rem; max-width: 52rem; }
@media (max-width: 991.98px) { .pay-cards { grid-template-columns: 1fr; } }

/* ---------- Radio show: SoundCloud players ---------- */
.sc-players { display: grid; gap: 30px; }
.sc-player { background: #fff; box-shadow: var(--shadow-card); padding: 1rem 1rem 1.25rem; }
.sc-player iframe { display: block; width: 100%; height: 400px; border: 0; }
.sc-player .btn { margin-top: 1rem; }
.radio-art { margin: 2rem 0 0; }
.radio-art img { display: block; width: 100%; max-width: 420px; }
@media (max-width: 991.98px) { .radio-art { display: none; } .sc-player iframe { height: 360px; } }

/* ---------- Press coverage ---------- */
.press-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.press-card { display: flex; flex-direction: column; gap: 1rem; background: #fff; box-shadow: var(--shadow-card); padding: 1.75rem; color: var(--c-text);
  text-decoration: none; font-weight: 400; border-top: 4px solid var(--c-primary); transition: box-shadow .2s; }
.press-card:hover { box-shadow: var(--shadow-card-hover); color: var(--c-text); }
.press-card__outlet { display: flex; align-items: center; gap: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06rem; font-size: var(--fs-small); }
.press-card__outlet time { color: var(--c-muted); font-weight: 600; margin-left: auto; }
.press-card__dot { width: 12px; height: 12px; border-radius: 50%; background: currentColor; flex: none; }
.press-card__quote { flex: 1; margin: 0; padding: 0; border: 0; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h4); line-height: 1.2; }
.press-card__more { display: inline-flex; align-items: center; gap: .5rem; color: var(--c-red); font-weight: 700; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: .08rem; }
.press-card__more .icon { width: 12px; height: 12px; }
.c-purple { color: var(--c-purple); }
@media (max-width: 991.98px) { .press-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .press-cards { grid-template-columns: 1fr; } }


/* ---------- SDG targets and step cards ---------- */
.sdg-intro { max-width: 52rem; }
.sdg-tiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-top: 2rem; }
.sdg-tile { background: rgba(255,255,255,.08); border-top: 4px solid var(--c-primary); padding: 1.25rem; }
.sdg-tile__num { display: block; color: var(--c-primary); font-weight: 700; text-transform: uppercase; letter-spacing: .06rem; font-size: var(--fs-small); margin-bottom: .5rem; }
.bg-dark .sdg-tile p { margin: 0; color: #fff; }
.step-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.toc-step-card { background: #fff; box-shadow: var(--shadow-card); padding: 2rem; }
.toc-step-card h3 { color: var(--c-text); font-size: var(--fs-h3); }
.toc-step-card p:last-child { margin-bottom: 0; }
.bg-dark .btn { margin: .25rem 0; }
@media (max-width: 1199.98px) { .sdg-tiles { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767.98px) { .sdg-tiles, .step-cards { grid-template-columns: 1fr; } }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: 5fr 7fr; gap: 50px; align-items: start; }
.contact-item { display: flex; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--c-rule); }
.contact-item h3 { font-family: var(--font-body); font-size: var(--fs-small); text-transform: uppercase; letter-spacing: .08rem; color: var(--c-muted); margin: 0 0 .25rem; }
.contact-item p { margin: 0 0 .25rem; }
.contact-item__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--c-primary); color: #fff; }
.contact-item__icon .icon { width: 18px; height: 18px; }
.contact-item--social { display: block; border-bottom: 0; }
.contact-item--social .list--social a { background: var(--c-navy); }
.contact-form { background: #fff; box-shadow: var(--shadow-card); padding: 2.5rem; scroll-margin-top: calc(var(--header-h) + 24px); }
.contact-form h2 { color: var(--c-text); margin-top: 0; }
.form-note { color: var(--c-muted); font-size: var(--fs-small); }
.field { margin-bottom: 1.1rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.field label { display: block; font-weight: 600; margin-bottom: .35rem; }
.field input, .field select, .field textarea { width: 100%; font: inherit; font-size: var(--fs-body); color: var(--c-text); background: var(--bg-light);
  border: 2px solid transparent; border-radius: 6px; padding: .7rem .9rem; transition: border-color .2s, background .2s; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--c-primary); background: #fff; }
.field textarea { resize: vertical; }
.consent { display: flex; gap: .6rem; align-items: flex-start; margin: .5rem 0 1.5rem; font-size: var(--fs-small); }
.consent input { margin-top: .25rem; accent-color: var(--c-primary); }
.cform .btn { border: 0; }
.cform .btn[disabled] { opacity: .6; cursor: wait; }
.cform__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cform .cf-turnstile { margin: 0 0 1.25rem; }
.cform__send { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.cform__send .btn { display: inline-flex; align-items: center; gap: .55rem; }
.cform__privacy { flex: 1 1 14rem; margin: 0; color: var(--c-muted); font-size: var(--fs-small); line-height: 1.5; }
.form-error { display: flex; gap: .9rem; align-items: flex-start; margin: 0 0 1.5rem; padding: 1rem 1.15rem; border-radius: 10px;
  background: #fdf0ea; border-left: 4px solid var(--c-red-dk); }
.form-error[hidden] { display: none; }
.form-error__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
  background: var(--c-red-dk); color: #fff; font-weight: 700; }
.form-error p { margin: 0; font-size: var(--fs-small); line-height: 1.5; }
.form-error .form-error__msg { font-weight: 700; color: var(--c-text); margin-bottom: .2rem; }
.form-success { text-align: center; padding: 2rem 0; }
.form-success .function-icon { margin: 0 auto 1rem; }
.form-success p:last-child { margin-top: 1.5rem; }
@media (max-width: 991.98px) { .contact-grid { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .field-row { grid-template-columns: 1fr; } .contact-form { padding: 1.5rem; } }

/* ---------- Initiative pages ---------- */
.init-intro > :first-child { margin-top: 0; }
.init-sections .study-box:first-child { margin-top: 1.5rem; }
.study-box > h3 { color: var(--c-text); font-size: var(--fs-h3); margin-top: 0; }
.study-box--plain { padding-top: 2rem; }
.study-box img { max-width: 100%; height: auto; }
.stats--figures { grid-template-columns: repeat(3, 1fr); }
.stats--figures .stat p { color: var(--c-text); }
.stats--figures .stat em { color: var(--c-red); }
.sdg-icons { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.sdg-icons img { width: 130px; height: 130px; object-fit: contain; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.grid-4 .card-text { font-size: var(--fs-small); }
@media (max-width: 1199.98px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767.98px) { .grid-4, .stats--figures { grid-template-columns: 1fr; } .sdg-icons img { width: 96px; height: 96px; } }

/* ---------- Projects ---------- */
.projects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.project { display: flex; flex-direction: column; background: #fff; box-shadow: var(--shadow-card); padding: 2rem; border-top: 4px solid var(--c-primary); }
.project__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.project__years { background: var(--c-navy); color: #fff; font-weight: 700; font-size: var(--fs-small); letter-spacing: .06rem; padding: .3rem .8rem; border-radius: 20px; }
.project__amount { text-align: right; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h4); color: var(--c-red); line-height: 1.1; }
.project__amount small { display: block; font-family: var(--font-body); font-size: .75rem; color: var(--c-muted); text-transform: uppercase; letter-spacing: .08rem; }
.project__title { color: var(--c-text); font-size: var(--fs-h3); margin: 0 0 .35rem; }
.project__partners { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin: .5rem 0 1.1rem; }
.project__partners > span { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-muted); }
.project__partners ul { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .6rem; list-style: none; margin: 0; padding: 0; }
.project__partners li { display: flex; align-items: center; justify-content: center; height: 54px; min-width: 54px; padding: 6px 12px; background: #fff; border: 1px solid #e4e4ea; border-radius: 8px; }
.project__partners .project__partner-name { font-size: .8125rem; font-weight: 700; color: var(--c-text); line-height: 1.2; max-width: 140px; text-align: center; }
.project__partners img { display: block; height: 36px; width: auto; max-width: 140px; object-fit: contain; }
.project > p:last-of-type { flex: 1; }
.project__more { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; text-transform: uppercase; letter-spacing: .08rem; font-size: var(--fs-small); }
.project__more .icon { width: 12px; height: 12px; }
@media (max-width: 1199.98px) { .projects { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .projects { grid-template-columns: 1fr; } }

/* ---------- Partner cards: logo, years, name; details in a pop-up ---------- */
button.partner { display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; border: 0; text-align: center; cursor: pointer; font: inherit;
  background: none; transition: transform .2s, box-shadow .2s; }
button.partner:hover, button.partner:focus-visible { transform: translateY(-4px); box-shadow: 0 0 18px 6px rgba(0,0,0,.25); }
.partner-col { display: flex; }
.partners-band button.partner .partner__text { position: relative; padding-bottom: 3rem; }
.partner__open { position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%); display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%; background: var(--c-red); color: #fff; }
.partner__open .icon { width: 14px; height: 14px; }
.partner-modal__header { display: flex; align-items: center; gap: 1.5rem; padding: 2rem 3rem 1.5rem 2rem; }
.partner-modal__header .team__details { padding: 0; min-height: 0; }
.partner-modal__logo { flex: none; width: 140px; height: 90px; margin: 0; background: #fff; border-radius: 6px; display: flex; align-items: center; justify-content: center; padding: .5rem; }
.partner-modal__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.partner-modal .partner__prog { color: var(--c-red); font-weight: 700; }
@media (max-width: 575.98px) { .partner-modal__header { flex-direction: column; text-align: center; padding: 2rem 1.5rem 1rem; } }

/* ---------- Jobs ---------- */
.jobs-empty { display: flex; gap: 1.5rem; align-items: flex-start; background: #fff; box-shadow: var(--shadow-card); padding: 2.25rem; }
.jobs-empty .function-icon { flex: none; margin: 0; }
.jobs-empty h3 { color: var(--c-text); font-size: var(--fs-h3); margin-top: .5rem; }
.jobs-cta { margin-top: 2rem; }
.step-cards--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991.98px) { .step-cards--3 { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .jobs-empty { flex-direction: column; padding: 1.5rem; } }

/* ---------- Strategy ---------- */
.hero-badge { display: inline-block; background: var(--c-navy); color: #fff; font-weight: 700; font-size: var(--fs-small); letter-spacing: .06rem;
  text-transform: uppercase; padding: .35rem .9rem; border-radius: 20px; margin-bottom: .75rem; }
.area-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 1.5rem; }
.area-tiles--3 { grid-template-columns: repeat(3, 1fr); }
.area-tile { background: #fff; box-shadow: var(--shadow-card); padding: 2rem 1.25rem; text-align: center; border-top: 4px solid var(--c-primary); }
.area-tile h3 { color: var(--c-text); font-size: var(--fs-h3); margin: 1rem 0 0; }
.area-tile__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--c-primary); color: #fff; }
.area-tile__icon .icon { width: 28px; height: 28px; }
.area-tile--light { background: rgba(255,255,255,.08); box-shadow: none; }
.bg-dark .area-tile--light h3 { color: #fff; }
.area-tile--light .area-tile__icon { background: var(--c-red); }
.prin-text { margin-top: 2rem; }
@media (max-width: 991.98px) { .area-tiles { grid-template-columns: repeat(2, 1fr); } .area-tiles--3 { grid-template-columns: 1fr; } }

/* Who we are / Vision and mission */
.vm-intro p { font-size: var(--fs-body); }
.vm-quote { margin: 2.5rem 0 0; padding: 1.75rem 2rem; background: #fff; border-left: 6px solid var(--c-primary); box-shadow: var(--shadow-card);
  font-family: var(--font-display); font-size: var(--fs-h4); line-height: 1.4; color: var(--c-navy); }
.vm-split { display: grid; grid-template-columns: 5fr 7fr; gap: 60px; align-items: center; }
.vm-split__photo { margin: 0; }
.vm-split__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; }
.vm-goals { display: grid; gap: 1.5rem; margin-top: 1.75rem; }
.vm-goal { display: grid; grid-template-columns: 56px 1fr; gap: 1.25rem; background: #fff; box-shadow: var(--shadow-card); padding: 1.75rem; border-top: 4px solid var(--c-primary); }
.vm-goal__num { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--c-navy); color: #fff;
  font-family: var(--font-display); font-weight: 800; font-size: 1.5rem; }
.vm-goal h3 { color: var(--c-text); font-size: var(--fs-h3); margin: .5rem 0 .5rem; }
.vm-goal p { margin: 0; }
.vm-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 1.5rem; }
.vm-tile { background: #fff; color: var(--c-text); padding: 2rem 1.5rem; text-align: center; border-top: 4px solid var(--c-primary); }
.vm-tile:nth-child(2) { border-top-color: var(--c-blue); } .vm-tile:nth-child(2) .area-tile__icon { background: var(--c-blue); }
.vm-tile:nth-child(3) { border-top-color: var(--c-green); } .vm-tile:nth-child(3) .area-tile__icon { background: var(--c-green); }
.vm-tile:nth-child(4) { border-top-color: var(--c-red); } .vm-tile:nth-child(4) .area-tile__icon { background: var(--c-red); }
.vm-tile h3 { color: var(--c-text); font-size: var(--fs-h4); margin: 1rem 0 .75rem; }
.bg-dark .vm-tile p, .vm-tile p { margin: 0; color: var(--c-text); }
.value-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4rem 30px; padding-top: 1.5rem; }
.value-card { position: relative; background: #fff; box-shadow: var(--shadow-card); padding: 3.75rem 2rem 1.75rem; }
.value-card h3 { color: var(--c-text); font-size: var(--fs-h3); }
.value-card details { margin-top: .5rem; }
.value-card summary { display: inline-flex; align-items: center; gap: .5rem; cursor: pointer; font-weight: 700; color: var(--c-navy); list-style: none; }
.value-card summary::-webkit-details-marker { display: none; }
.value-card summary .icon { transition: transform .2s; }
.value-card details[open] summary .icon { transform: rotate(180deg); }
.value-card ul { margin: 1rem 0 0; padding-left: 1.25rem; }
.value-card li { margin-bottom: .6rem; }
.vm-next__h { text-align: center; margin-bottom: 2rem; }
.vm-nexts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.vm-next { display: flex; align-items: center; gap: 1rem; background: #fff; box-shadow: var(--shadow-card); padding: 1.25rem 1.5rem; color: var(--c-text);
  font-weight: 700; font-size: var(--fs-h5); text-decoration: none; transition: box-shadow .2s; }
.vm-next:hover { box-shadow: var(--shadow-card-hover); color: var(--c-text); }
.vm-next .area-tile__icon { flex: none; width: 52px; height: 52px; }
.vm-next > .icon:last-child { margin-left: auto; flex: none; }
@media (max-width: 1199.98px) { .vm-tiles { grid-template-columns: repeat(2, 1fr); } .value-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 991.98px) { .vm-split { grid-template-columns: 1fr; gap: 2rem; } .vm-split__photo img { aspect-ratio: 16 / 10; } .vm-nexts { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .vm-tiles, .value-cards { grid-template-columns: 1fr; } .vm-goal { grid-template-columns: 1fr; } .vm-quote { padding: 1.25rem 1.25rem; } }

/* Governance page */
.gov-jump { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; padding: 0; }
.gov-jump a { display: inline-block; padding: .4rem 1rem; border: 2px solid var(--c-navy); border-radius: 999px; color: var(--c-navy); font-weight: 700; font-size: calc(var(--fs-small) * .9); text-decoration: none; transition: background .2s, color .2s; }
.gov-jump a:hover, .gov-jump a:focus-visible { background: var(--c-navy); color: #fff; }
.gov-split { align-items: start; }
.gov-goals { margin-top: 0; }
.gov-goals h3 a, .value-card h3 a { color: inherit; text-decoration: underline; text-decoration-color: var(--c-primary); text-underline-offset: .2em; }
.value-card details p { margin: 1rem 0 0; }
.doc-tile__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.doc-tile__num { font-weight: 700; font-size: var(--fs-small); letter-spacing: .06rem; color: var(--c-navy); background: var(--bg-mid); border-radius: 999px; padding: .2rem .7rem; }
.gov-legal h3 { font-family: var(--font-body); font-size: var(--fs-h4); letter-spacing: .02rem; overflow-wrap: anywhere; }
.bg-dark .gov-legal p { margin: .5rem 0 0; opacity: .85; }
[id="good-governance"], [id="management"], [id="policies"], [id="legal"] { scroll-margin-top: calc(var(--header-h) + 1rem); }

/* Become a supporter page */
.sup-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.sup-way { display: flex; flex-direction: column; }
.sup-way .policy__link, .sup-way .sup-social { margin-top: auto; padding-top: 1rem; }
.value-card .sup-social { list-style: none; display: flex; gap: .5rem; margin: auto 0 0; padding-left: 0; }
.sup-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--c-navy); color: #fff; }
.sup-social a:hover, .sup-social a:focus-visible { background: var(--c-primary); }
.sup-trust { margin-top: 1.5rem; }
.sup-cta { text-align: center; }
.sup-cta p { max-width: 40rem; margin-left: auto; margin-right: auto; }
.sup-cta .sup-actions { justify-content: center; }

/* Illustrations in place of photos on pages (posts keep their photos) */
.art-blob { margin: 0; }
.art-blob img { display: block; width: 100%; height: auto; }
.vm-split__photo--art img { aspect-ratio: auto; object-fit: contain; border-radius: 0; }
.impact-photo--art img { aspect-ratio: auto; object-fit: contain; background: none; max-width: 36rem; margin: 0 auto; }
.hero--art .hero__content { text-align: left; margin: 0; max-width: none; }
.hero--art .hero__lead { margin-left: 0; }
.hero--art .hero__buttons { margin-left: 0; }
.hero__art { margin: 0; position: relative; }
.hero__art img { display: block; width: 100%; height: auto; }
/* the citizen monitoring apps, with their own logos: symbol, name in two colours, "by CERC" (home hero, footer, tools) */
.app-btns { display: flex; flex-wrap: nowrap; gap: .35rem; }   /* the four apps on one row; two by two on phones and in the footer */
.footer .app-btns { display: grid; grid-template-columns: repeat(2, max-content); }
@media (max-width: 575.98px) { .app-btns { display: grid; grid-template-columns: repeat(2, max-content); } }
@media (min-width: 992px) and (max-width: 1099.98px) { .hero__apps .app-btns { gap: .25rem; } }
.app-btns .btn-app { display: flex; flex: none; align-items: center; min-width: 0; min-height: 30px; padding: .25rem .4rem; border: 1px solid var(--c-rule);
  border-radius: .4rem; background: #fff; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.app-btns .btn-app:hover, .app-btns .btn-app:focus-visible { border-color: var(--c-navy); box-shadow: var(--shadow-card-hover); }
.app-logo { display: inline-flex; align-items: center; gap: .3rem; min-width: 0; }
.app-logo__mark { flex: none; width: 19px; height: 19px; }
.app-logo__text { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; text-align: left; }
.app-logo__name, .apps-choice__name { font: 700 .66rem/1 var(--font-display); letter-spacing: .01em; color: var(--app-ink); white-space: nowrap; }
.app-logo__name b, .apps-choice__name b { font-weight: 700; color: var(--app-accent); }
.app-logo__by { margin-top: .1rem; padding-left: .2rem; border-left: 1.5px solid var(--c-primary); font: 700 .34rem/1 var(--font-body);
  letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }
.hero__apps { width: 80%; max-width: 26rem; margin: 1.75rem 0 0; }
.hero__apps .section__tag { margin-bottom: .75rem; }
.footer .app-btns { margin-top: .25rem; }
.footer .app-btns .btn-app { background: transparent; border-color: rgba(255,255,255,.55); }
.footer .app-btns .btn-app:hover, .footer .app-btns .btn-app:focus-visible { background: rgba(255,255,255,.08); border-color: #fff; box-shadow: none; }
.footer .app-logo__name { color: #fff; }
.footer .app-logo__by { color: rgba(255,255,255,.75); }
@media (max-width: 991.98px) { .hero__apps { margin-left: auto; margin-right: auto; } .hero__apps .app-btns { justify-content: center; } }
/* EduCheck / HealthCheck pop-up (reuses the team pop-up overlay and close button) */
.apps-modal { z-index: 1100; padding-top: 2rem; }
.apps-modal__dialog { max-width: 46rem; background: #fff; }
.apps-modal__body { padding: 2.5rem 2.5rem 1.5rem; overflow-y: auto; text-align: center; }
.apps-modal__body h2 { font-size: var(--fs-h2); color: var(--c-navy); margin-bottom: .75rem; }
.apps-modal__body > p { max-width: 34rem; margin: 0 auto 1.75rem; }
.apps-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.apps-choice { display: flex; flex-direction: column; align-items: center; gap: .6rem; padding: 1.5rem 1.25rem; border-radius: .625rem;
  background: var(--bg-light); color: var(--c-text); font-weight: 400; text-decoration: none; border: 2px solid transparent; transition: border-color .2s, box-shadow .2s; }
.apps-choice:hover, .apps-choice:focus-visible { color: var(--c-text); border-color: var(--c-navy); box-shadow: var(--shadow-card-hover); }
.apps-choice__icon { display: inline-flex; width: 64px; height: 64px; }
.apps-choice__icon img { width: 100%; height: 100%; }
.apps-choice__name { font-size: 1.35rem; }
.apps-choice__text { font-size: var(--fs-small); line-height: 1.4; flex: 1; }
.apps-choice .btn-app { margin-top: .4rem; gap: .5rem; padding-left: 1rem; padding-right: 1rem; text-transform: none; letter-spacing: .03rem; font-size: .95rem; background: var(--c-navy); }
.apps-choice .btn-app .icon { width: 18px; height: 18px; }
.apps-choice:hover .btn-app { background: var(--c-navy-dk); }
.apps-modal__later { margin-top: 1.25rem; padding: .5rem 1rem; border: 0; background: none; color: var(--c-muted); font: 600 var(--fs-small) var(--font-body);
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.apps-modal__later:hover { color: var(--c-navy); }
@media (max-width: 575.98px) {
  .apps-modal { padding: 2rem .75rem 1rem; }
  .apps-modal__dialog { max-height: calc(100vh - 3rem); }
  .apps-modal__body { padding: 2rem 1.25rem 1rem; }
  .apps-modal .team-modal__close { transform: translate(25%, -40%); }
  .apps-modal__body h2 { font-size: var(--fs-h3); }
  .apps-modal__body > p { font-size: var(--fs-small); margin-bottom: 1.25rem; }
  .apps-choices { grid-template-columns: 1fr; gap: .75rem; }
  .apps-choice { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .25rem 1rem; padding: 1rem; text-align: left; }
  .apps-choice__icon { grid-row: span 2; width: 52px; height: 52px; }
  .apps-choice__text { display: none; }
  .apps-choice .btn-app { margin: 0; justify-self: start; }
  .apps-modal__later { margin-top: .5rem; }
}
@media (max-width: 767.98px) { .hero__apps { width: 100%; } }
@media (min-width: 992px) {
  .hero--art { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: center;
    padding: 0 max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter))); }
  .hero--art .hero__content { padding-left: 0; padding-right: 0; }
}
@media (max-width: 991.98px) {
  .hero--art { flex-direction: column; }
  .hero--art .hero__content { text-align: center; margin: 0 auto; }
  .hero--art .hero__lead { margin-left: auto; }
  .hero--art .hero__buttons { margin-left: auto; }
  .hero__art { width: 100%; max-width: 40rem; margin: -.5rem auto 1.5rem; padding: 0 var(--gutter); box-sizing: border-box; }   /* the whole illustration, full width */
}

/* Take action / Agir page */
.act-cards .card-body { position: relative; padding-right: 3.5rem; }
.act-card__more { position: absolute; right: 1.5rem; bottom: 1.5rem; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--c-primary); color: #fff; transition: background .2s; }
.act-card__more .icon { width: 14px; height: 14px; }
.card--illus:hover .act-card__more { background: var(--c-red); }
.act-quote { text-align: center; }
.act-quote blockquote { margin: 0 auto; max-width: 48rem; }
.act-quote blockquote p { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h2); line-height: 1.15; color: var(--c-navy); margin: 0 0 1rem; }
.act-quote blockquote footer { font-weight: 700; color: var(--c-red); text-transform: uppercase; letter-spacing: .08rem; font-size: var(--fs-small); }
.act-social a { width: 44px; height: 44px; background: var(--c-navy); }
.act-social a:hover { background: var(--c-primary); }

/* ---------- Our story: timeline of milestones ---------- */
.timeline { position: relative; list-style: none; max-width: 1040px; margin: 0 auto; padding: 0; }
.timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 3px; margin-left: -1.5px; border-radius: 2px; background: var(--c-primary); }
.timeline__year { position: relative; text-align: center; margin: 2.5rem 0 1.5rem; }
.timeline__year:first-child { margin-top: 0; }
.timeline__year span { display: inline-block; padding: .3rem 1.25rem; border-radius: 999px; background: var(--c-navy); color: #fff;
  font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h3); line-height: 1.2; }
.timeline__item { position: relative; width: 50%; margin: 0; padding: 0 3rem 1.5rem 0; font-size: var(--fs-body); }
.timeline__item--right { margin-left: 50%; padding: 0 0 1.5rem 3rem; }
.timeline__dot { position: absolute; top: .9rem; right: -22px; z-index: 1; display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%; background: var(--c-primary); color: #fff; box-shadow: 0 0 0 5px var(--bg-mid); }
.timeline__item--right .timeline__dot { right: auto; left: -22px; }
.timeline__item--key .timeline__dot { background: var(--c-red); }
.timeline__dot .icon { width: 20px; height: 20px; }
.timeline__card { background: #fff; box-shadow: var(--shadow-card); padding: 1.25rem 1.5rem; }
.timeline__date { display: block; margin-bottom: .4rem; font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-red); }
.timeline__card h3 { margin: 0; font-family: var(--font-body); font-size: var(--fs-h5); line-height: 1.3; color: var(--c-text); }
.timeline__card h3 a { color: inherit; font-weight: inherit; text-decoration: none; }
.timeline__card h3 a:hover { color: var(--c-red); }
.timeline__card p { margin: .6rem 0 0; font-size: var(--fs-small); line-height: 1.5; }
.timeline__card h3 .nowrap { white-space: nowrap; }
.timeline__card h3 .icon { width: 13px; height: 13px; margin-left: .5rem; color: var(--c-red); vertical-align: baseline; }
@media (max-width: 767.98px) {
  .timeline::before { left: 22px; }
  .timeline__year { text-align: left; }
  .timeline__item, .timeline__item--right { width: auto; margin-left: 0; padding: 0 0 1.25rem 4rem; }
  .timeline__dot, .timeline__item--right .timeline__dot { left: 0; right: auto; top: .75rem; }
}
.vm-story { align-items: start; }
.vm-story .vm-goal { padding: 1.25rem 1.5rem; align-items: center; }
.vm-story .vm-goal h3 { font-size: var(--fs-h5); line-height: 1.25; margin: 0; }

/* ---------- Gender and inclusion ---------- */
.incl-why { align-items: start; }
.incl-goal { margin-top: .5rem; }
.incl-figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
.incl-figure { background: #fff; box-shadow: var(--shadow-card); padding: 1.75rem 1.5rem; border-top: 4px solid var(--c-primary); }
.incl-figure:nth-child(2) { border-top-color: var(--c-blue); } .incl-figure:nth-child(3) { border-top-color: var(--c-green); }
.incl-figure:nth-child(4) { border-top-color: var(--c-red); } .incl-figure:nth-child(5) { border-top-color: var(--c-purple); }
.incl-figure em { display: block; font-style: normal; font-family: var(--font-display); font-weight: 700; font-synthesis: none; font-size: 2.6rem; line-height: 1.1; color: var(--c-red); margin-bottom: .5rem; }
.incl-figure p { margin: 0; font-size: var(--fs-small); line-height: 1.5; }

/* ---------- Compact hero (legal pages) ---------- */
.page-hero--compact { padding: 36px 0 32px; }
.page-hero--compact__grid { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.page-hero--compact h1 { margin-bottom: .5rem; }
.page-hero--compact .hero__lead { font-size: var(--fs-lead); }
.page-hero--compact__art { display: block; width: 190px; height: auto; }
@media (max-width: 767.98px) { .page-hero--compact__grid { grid-template-columns: 1fr; } .page-hero--compact__art { display: none; } }

/* ---------- Privacy policy ---------- */
.policy-doc { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 48px; align-items: start; }
.policy-toc { position: sticky; top: calc(var(--header-h) + 24px); background: #fff; box-shadow: var(--shadow-card); padding: 1.25rem 1.5rem; border-top: 4px solid var(--c-primary);
  max-height: calc(100vh - var(--header-h) - 48px); overflow-y: auto; }
.policy-toc ol { list-style: none; margin: 0; padding: 0; font-size: .9375rem; line-height: 1.25; }
.policy-toc li + li { margin-top: .35rem; }
.page-hero--compact + .section { padding-top: 48px; }
.policy-toc a { display: flex; gap: .6rem; color: var(--c-text); font-weight: 500; text-decoration: none; }
.policy-toc a:hover { color: var(--c-red); }
.policy-toc a span { flex: none; width: 1.5rem; color: var(--c-red); font-weight: 700; }
.policy-toc__contact { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--c-rule); font-size: var(--fs-small); }
.policy-toc__contact a { display: inline-flex; align-items: center; gap: .4rem; margin-top: .25rem; }
.policy-toc__contact .icon { width: 12px; height: 12px; }
/* online reports: the side contents and its links at 16px on every screen */
.report-toc ol, .report-toc .policy-toc__contact { font-size: 16px; }
.policy-secs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.policy-sec { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 1.25rem; background: #fff; box-shadow: var(--shadow-card); padding: 1.75rem 2rem; scroll-margin-top: calc(var(--header-h) + 24px); }
.policy-sec__num { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--c-navy); color: #fff; font-weight: 700; font-size: 1.125rem; }
.policy-sec h2 { font-size: var(--fs-h3); color: var(--c-text); margin: .6rem 0 .75rem; }
.policy-sec .entry > :last-child { margin-bottom: 0; }
.policy-sec .entry p, .policy-sec .entry li { font-size: var(--fs-body); line-height: 1.6; }
.policy-sec .entry a { overflow-wrap: anywhere; }
@media (max-width: 991.98px) {
  .policy-doc { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .policy-toc { position: static; max-height: none; }
  .policy-toc ol { columns: 2; column-gap: 24px; } .policy-toc li { break-inside: avoid; }
}
@media (max-width: 575.98px) {
  .policy-toc ol { columns: 1; }
  .policy-sec { grid-template-columns: minmax(0, 1fr); gap: .5rem; padding: 1.5rem 1.25rem; }
  .policy-sec__num { width: 40px; height: 40px; font-size: 1rem; }
}

/* ---------- ECOSOC quadrennial report (privacy-policy cards, with key facts and background) ---------- */
.ecosoc-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 32px; margin: 28px 0 0; padding: 20px 0 0; border-top: 1px solid var(--c-rule); }
.ecosoc-facts dt { font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-muted); margin: 0 0 .25rem; }
.ecosoc-facts dd { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h4); line-height: 1.2; color: var(--c-navy); }
.ecosoc-download { margin: 1.25rem 0 0; }
.ecosoc-download .btn { display: inline-flex; align-items: center; gap: .6rem; }
.ecosoc-download .icon { width: 16px; height: 16px; }
.ecosoc-about { display: grid; grid-template-columns: 3fr 2fr; gap: 48px; align-items: start; }
.ecosoc-source { border-left: 4px solid var(--c-blue); padding-left: 1.5rem; }
.ecosoc-source__label { display: block; font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-blue-dk); margin: 0 0 .75rem; }
.ecosoc-source p { line-height: var(--lh-body); }
.ecosoc-cerc { margin-top: .25rem; }
.ecosoc-cerc p { margin: 0; }
.report-sec__box { display: block; font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; color: var(--c-red); margin-top: .35rem; }
.report-sec h3 { font-size: var(--fs-h3); color: var(--c-text); margin: .25rem 0 .75rem; }
.report-sec .entry ol { padding-left: 1.5rem; margin: 0 0 1rem; }
.report-sec .entry ol li { padding-left: .25rem; margin-bottom: .85rem; }
.report-sec .entry ol li::marker { color: var(--c-red); font-weight: 700; }
.report-sec .entry sup a { text-decoration: none; font-weight: 700; padding: 0 .1rem; }
.report-closing { margin: .5rem 0 0; }
.report-closing p { margin: 0; }
@media (max-width: 991.98px) { .ecosoc-facts { grid-template-columns: repeat(2, 1fr); gap: 16px 24px; } .ecosoc-about { grid-template-columns: 1fr; gap: 32px; } }
@media (max-width: 575.98px) { .ecosoc-facts { grid-template-columns: 1fr 1fr; } .ecosoc-source { padding-left: 1rem; } }

/* ---------- Reports page: annual reports, ECOSOC, audits, evaluation ---------- */
.reports-jump { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.reports-jump a { padding: .4rem .9rem; border-radius: 999px; background: #fff; box-shadow: var(--shadow-card); font-size: var(--fs-small); font-weight: 600; color: var(--c-navy); text-decoration: none; }
.reports-jump a:hover { color: var(--c-red); }
.reports-group { scroll-margin-top: var(--header-h); }
.reports-group__lead { max-width: 52rem; margin: .5rem 0 0; }
.report-card .report-card__cover--note { position: relative; display: block; background: radial-gradient(circle at 80% 40%, #4a4970 0%, var(--c-navy) 45%, var(--c-navy-dk) 100%); }
.report-card .report-card__cover--note img { position: absolute; top: 9%; left: 7%; width: 30%; height: auto; object-fit: contain; }
.note-cover__rule { position: absolute; left: 7%; bottom: 40%; width: 8%; height: 4px; background: var(--c-primary); }
.note-cover__year { position: absolute; left: 7%; bottom: 14%; font-family: var(--font-display); font-weight: 700; font-size: 3.4rem; line-height: 1; color: var(--c-primary); }
.note-cover__stripe { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; display: flex; }
.note-cover__stripe i { flex: 1; } .note-cover__stripe i:nth-child(1) { background: var(--c-primary); } .note-cover__stripe i:nth-child(2) { background: var(--c-red); }
.note-cover__stripe i:nth-child(3) { background: var(--c-blue); } .note-cover__stripe i:nth-child(4) { background: var(--c-green); } .note-cover__stripe i:nth-child(5) { background: var(--c-purple); }
.report-card--note .report-card__body p { margin: 0 0 .6rem; font-size: var(--fs-small); line-height: 1.5; }
.report-card--note .report-card__body p:last-child { margin-bottom: 0; }
.report-card--note h3 { margin-bottom: .6rem; }
.note-more { margin-top: .25rem; }
.note-more summary { cursor: pointer; color: var(--c-red); font-weight: 700; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: .08rem; list-style: none; }
.note-more summary::-webkit-details-marker { display: none; }
.note-more summary::after { content: " +"; }
.note-more[open] summary::after { content: " –"; }
.note-more[open] summary { margin-bottom: .6rem; }
.report-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.report-cards--one { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); }
.report-card { display: flex; flex-direction: column; background: #fff; box-shadow: var(--shadow-card); transition: box-shadow .2s; }
.report-card:hover { box-shadow: var(--shadow-card-hover); }
.report-card__cover { display: block; aspect-ratio: 297 / 210; overflow: hidden; background: var(--bg-mid); }
.report-card__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.report-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem 1.5rem 1.5rem; }
.report-card__note { align-self: flex-start; margin-bottom: .5rem; padding: .15rem .6rem; border-radius: 999px; background: #e3f1f6; color: var(--c-blue-dk); font-size: .8125rem; font-weight: 700; }
.report-card h3 { margin: 0 0 .25rem; font-size: var(--fs-h4); }
.report-card__meta { margin: 0 0 1rem; color: var(--c-muted); font-size: var(--fs-small); }
.report-card__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: auto 0 0; }
.report-card__actions .btn { display: inline-flex; align-items: center; gap: .5rem; }
.report-card__actions .icon { width: 14px; height: 14px; }
.report-tile__year { color: var(--c-muted); font-size: var(--fs-small); margin-top: -.25rem; }
@media (max-width: 991.98px) { .report-cards, .report-cards--one { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .report-cards, .report-cards--one { grid-template-columns: 1fr; } }

/* ---------- Reports, online edition (reports/*.json; same blocks as the PDF template) ---------- */
.report__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.report-hero__note { margin: .75rem 0 0; font-size: var(--fs-small); font-style: italic; color: var(--c-muted); }
.report-hero__photo { display: block; width: 340px; height: 230px; object-fit: cover; border-radius: 8px; box-shadow: var(--shadow-card); }
.report-web-lead { font-size: var(--fs-h5); line-height: var(--lh-body); color: var(--c-blue-dk); margin: 0 0 1rem; }
/* photo or illustration on the right, the text wraps around it */
.report-web-sec > div, .report-web-divider > div { display: flow-root; }
.report-web-divider .incl-figures { clear: both; }
.report-web-media { float: right; width: min(42%, 400px); margin: .25rem 0 1rem 1.75rem; }
.report-web-media img { display: block; width: 100%; max-height: 320px; object-fit: cover; border-radius: 6px; }
.report-web-media--art { width: min(32%, 240px); }
.report-web-media--art img { max-height: 180px; object-fit: contain; border-radius: 0; }
@media (max-width: 700px) {
  .report-web-media { float: none; width: 100%; margin: 0 0 1rem; }
  .report-web-media--art { width: 60%; }
}
.report-web-divider { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 1.25rem; background: var(--c-navy); color: #fff; padding: 1.75rem 2rem;
  box-shadow: var(--shadow-card); scroll-margin-top: calc(var(--header-h) + 24px); }
.report-web-divider .policy-sec__num { background: var(--c-primary); }
.report-web-divider h2 { font-size: var(--fs-h3); color: #fff; margin: .6rem 0 .75rem; }
.report-web-divider p { font-size: var(--fs-body); line-height: var(--lh-body); }
.report-web-divider .incl-figures { margin-top: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.incl-figure--long em { font-size: 1.85rem; }
.incl-figure em, .report-entry .figure b { overflow-wrap: anywhere; }
.report-web-divider .incl-figure { color: var(--c-text); padding: 1.25rem; }
.report-web-divider .incl-figure p { font-size: var(--fs-small); }
.report-web-sec .sdgs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 1.25rem; }
.report-web-sec .sdg { width: 92px; height: 92px; padding: 8px; color: #fff; display: flex; flex-direction: column; justify-content: space-between; }
.report-web-sec .sdg b { font-family: var(--font-display); font-size: 1.75rem; line-height: 1; }
.report-web-sec .sdg span { font-size: .625rem; font-weight: 700; line-height: 1.15; text-transform: uppercase; letter-spacing: .03rem; }
.report-entry h3 { font-size: var(--fs-h3); color: var(--c-navy); margin: 1.5rem 0 .5rem; }
.report-entry h3 small { display: block; font-family: var(--font-body); font-size: .75rem; font-weight: 700; letter-spacing: .08rem; text-transform: uppercase; color: var(--c-red); margin-bottom: .2rem; }
.report-entry h4 { font-family: var(--font-body); font-size: var(--fs-body); color: var(--c-navy); margin: 1.25rem 0 .4rem; }
.report-entry .label { font-size: .8125rem !important; font-weight: 700; letter-spacing: .08rem; text-transform: uppercase; color: var(--c-red); margin-bottom: .5rem; }
.report-entry figure { margin: 1.25rem 0; }
.report-entry figure img { display: block; width: 100%; max-height: 460px; object-fit: cover; border-radius: 6px; }
.report-entry figure.photo--contain img { object-fit: contain; background: var(--bg-mid); }
.report-entry figcaption { margin-top: .4rem; font-size: .875rem; font-style: italic; color: var(--c-muted); }
.report-entry .photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 1.25rem 0; }
.report-entry .photos figure { margin: 0; }
.report-entry .photos img { height: 220px; }
.report-entry table { display: block; overflow-x: auto; width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: .9375rem; }
.report-entry th, .report-entry td { padding: .45rem .6rem; border-bottom: 1px solid var(--c-rule); text-align: left; vertical-align: top; }
.report-entry thead th { background: var(--c-navy); color: #fff; }
.report-entry tr.total td, .report-entry tr.total th { font-weight: 700; background: #fbf0d9; }
.report-entry tr.sub td, .report-entry tr.sub th { font-weight: 700; color: var(--c-navy); }
.report-entry .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.report-entry .figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin: 1rem 0 1.5rem; }
.report-entry .figure { border-top: 4px solid var(--c-primary); padding-top: .6rem; }
.report-entry .figure b { display: block; font-family: var(--font-display); font-size: 2.2rem; line-height: 1.05; color: var(--c-red); }
.report-entry .figure span { display: block; font-size: var(--fs-small); line-height: 1.4; margin-top: .25rem; }
.report-entry .boxes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 1.25rem 0; }
.report-entry .box { background: #fbf0d9; padding: 1rem 1.25rem; }
.report-entry .boxes > .box:nth-child(2) { background: #e3f1f6; }
.report-entry > .box { margin: 1.25rem 0; }
.report-entry .box h3 { margin: 0 0 .35rem; font-family: var(--font-body); font-size: var(--fs-small); letter-spacing: .06rem; text-transform: uppercase; color: var(--c-primary-dk); }
.report-entry .box p { margin: 0; }
.report-entry blockquote { margin: 1.25rem 0; padding: .25rem 0 .25rem 1.25rem; border-left: 5px solid var(--c-primary); font-style: italic; color: #8a5b08; }
.report-entry blockquote p { font-size: var(--fs-report, 16.5px) !important; margin: 0; }
.report-entry .signature { display: block; height: 96px; width: auto; margin: .75rem 0 .25rem; }
.report-entry .logos { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin: 1.25rem 0; }
.report-entry .logos img { height: 52px; width: auto; max-width: 180px; object-fit: contain; }
.report-entry .note { color: var(--c-muted); }
.report-entry__foot { margin: 1rem 0 0; padding-top: .75rem; border-top: 1px solid var(--c-rule); font-size: .875rem; font-style: italic; color: var(--c-muted); }
@media (max-width: 767.98px) { .report-hero__photo { display: none; } .report-entry .photos, .report-entry .boxes { grid-template-columns: 1fr; } .report-web-divider { grid-template-columns: 1fr; padding: 1.5rem 1.25rem; } }

/* ---------- Page heroes: compact on every page (same as the privacy policy) ---------- */
.page-hero, .page-hero--side { padding: 36px 0 32px; }
.page-hero__grid { grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.page-hero__grid > div { padding-bottom: 0; }
.page-hero h1 { margin-bottom: .5rem; }
.page-hero .hero__lead { font-size: var(--fs-lead); }
.hero__image--side { width: 190px; max-width: none; margin: 0; transform: none; justify-self: end; }
.page-hero--side + .section, .page-hero--side + .reports-section { padding-top: 48px; }
@media (max-width: 767.98px) {
  .page-hero__grid { grid-template-columns: 1fr; }
  .hero__image--side { display: none; }
}

/* ---------- ECOSOC status band (bottom of every page) ---------- */

/* Impact page: results in figures (annual reports) */
.stats.stats--impact { grid-template-columns: repeat(4, 1fr); gap: 40px 28px; }
.stats--impact .stat .icon { width: 56px; height: 56px; margin-bottom: .75rem; }
.stats--impact .stat em { font-size: 2.3rem; }
.impact-figures .section__header { text-align: center; }
.impact-reports { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin: 3rem 0 0; }
.impact-reports .btn { display: inline-flex; align-items: center; gap: .6rem; }
.impact-reports .btn .icon { width: 14px; height: 14px; }
.impact-story ul { margin-top: 0; }
@media (max-width: 991.98px) { .stats.stats--impact { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; } }
@media (max-width: 575.98px) { .stats--impact .stat em { font-size: 1.9rem; } }
.impact-quote { margin: 1.5rem 0 0; padding: 1.25rem 1.5rem; border-left: 4px solid var(--c-primary); background: #fff; }
.impact-quote p { margin: 0 0 .5rem; font-style: italic; color: var(--c-text); }
.impact-quote cite { font-style: normal; font-weight: 700; font-size: var(--fs-small); color: var(--c-muted); }

/* ---------------------------------------------------------------- magazine « Les Bâtisseurs de l'intégrité »: digital edition */
.mag-hero { background: var(--c-navy); color: #fff; position: relative; overflow: hidden; }
.mag-hero::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--c-red); }
.mag-hero .breadcrumb, .mag-hero .breadcrumb a { color: rgba(255, 255, 255, .75); }
.mag-hero .hero__lead { color: rgba(255, 255, 255, .9); }
.mag-hero__issue { display: inline-block; margin: 0 0 1rem; padding: .35rem .9rem; border-radius: 999px; background: var(--c-red); color: #fff;
  font-weight: 700; font-size: var(--fs-small); letter-spacing: .08rem; text-transform: uppercase; }
.page-hero .mag-hero__title { color: var(--c-primary); text-transform: uppercase; letter-spacing: .02em; line-height: 1; margin: 0 0 1rem; }
.mag-hero__summary { margin: 1.25rem 0 0; max-width: 40rem; color: rgba(255, 255, 255, .85); }
.mag-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.mag-hero__actions .btn, .mag-box .btn, .report__btns .btn { display: inline-flex; align-items: center; gap: .55rem; }
.mag-hero__actions .btn .icon, .mag-box .btn .icon, .report__btns .btn .icon { width: 14px; height: 14px; }
.mag-cover { margin: 0; justify-self: center; align-self: end; transform: translateY(60px); position: relative; z-index: 2; max-width: 22rem; width: 100%; }
.mag-cover img { display: block; width: 100%; box-shadow: 0 20px 45px rgba(0, 0, 0, .35); transform: rotate(2deg); }
.mag-toc-section { padding-top: 110px; }
.mag-toc { display: grid; grid-template-columns: 1fr 2fr; gap: 30px; align-items: start; }
.mag-toc h2 { margin: .25rem 0 0; }
.mag-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.mag-toc a { display: flex; gap: 1rem; align-items: baseline; padding: 1rem 1.25rem; background: #fff; text-decoration: none; color: var(--c-text);
  box-shadow: var(--shadow-card); transition: transform .15s; }
.mag-toc a:hover { transform: translateX(4px); }
.mag-toc__num { font-family: var(--font-display); font-weight: 700; font-size: 1.6rem; color: var(--c-red); line-height: 1; }
.mag-toc small { display: block; color: var(--c-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .08rem; font-size: .75rem; margin-bottom: .2rem; }
.mag-layout { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 60px; align-items: start; }
.mag-article { padding-bottom: 3rem; margin-bottom: 3rem; border-bottom: 2px solid var(--c-rule); scroll-margin-top: calc(var(--header-h, 90px) + 1rem); }
.mag-article:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.mag-article__kicker { display: flex; align-items: center; gap: .75rem; margin: 0 0 .75rem; color: var(--c-red); font-weight: 700; text-transform: uppercase;
  letter-spacing: .1rem; font-size: var(--fs-small); }
.mag-article__kicker span { display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--c-navy); color: #fff; letter-spacing: 0; }
.mag-article h2 { color: var(--c-navy); line-height: 1.15; margin: 0 0 1.5rem; }
.mag-article__img { margin: 0 0 1.75rem; }
.mag-article__img img { display: block; width: 100%; max-height: 34rem; object-fit: cover; }
.mag-article__img figcaption { color: var(--c-muted); font-size: var(--fs-small); margin-top: .5rem; }
.mag-article__body p { font-size: var(--fs-body); line-height: 1.75; }
.mag-quote { margin: 2rem 0 0; padding: 1.75rem 2rem; background: var(--c-navy); color: #fff; position: relative; }
.mag-quote::before { content: "“"; position: absolute; top: -.6rem; left: 1rem; font-family: Georgia, serif; font-size: 5rem; line-height: 1; color: var(--c-primary); }
.mag-quote p { margin: 0 0 .75rem; font-family: var(--font-display); font-size: 1.3rem; line-height: 1.4; }
.mag-quote cite { font-style: normal; font-weight: 700; color: var(--c-primary); font-size: var(--fs-small); }
.mag-aside { position: sticky; top: calc(var(--header-h, 90px) + 1.5rem); display: grid; gap: 24px; }
.mag-box { background: var(--bg-light); padding: 1.75rem; font-size: .95rem; }
.mag-box h2 { font-size: 1.215rem; margin: 0 0 .75rem; color: var(--c-navy); }
.mag-box h3 { font-size: 1rem; margin: 1.25rem 0 .4rem; color: var(--c-red); text-transform: uppercase; letter-spacing: .06rem; }
.mag-box ul { padding-left: 1.1rem; margin: 0; }
.mag-box--pdf { text-align: center; background: var(--c-navy); color: #fff; }
.mag-box--pdf img { display: block; width: 9rem; margin: 0 auto 1rem; box-shadow: 0 10px 25px rgba(0, 0, 0, .35); }
.mag-principles { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .4rem; }
.mag-principles li { background: #fff; border: 1px solid var(--c-rule); border-radius: 999px; padding: .2rem .7rem; font-weight: 700; font-size: .8rem; color: var(--c-navy); }
.mag-issues { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.mag-issue { display: flex; gap: 1.25rem; align-items: center; background: #fff; padding: 1rem; text-decoration: none; color: var(--c-text); box-shadow: var(--shadow-card); }
.mag-issue img { width: 6rem; flex-shrink: 0; box-shadow: 0 6px 14px rgba(0, 0, 0, .2); }
.mag-issue small { display: block; color: var(--c-red); font-weight: 700; text-transform: uppercase; letter-spacing: .06rem; margin-bottom: .3rem; }
.mag-issue:hover { box-shadow: 0 10px 30px rgba(0, 0, 0, .15); }
/* magazine list page */
.report--mag .report__image img { box-shadow: 0 8px 20px rgba(0, 0, 0, .2); }
.mag-badge { display: inline-block; margin-bottom: .5rem; padding: .15rem .6rem; border-radius: 999px; background: var(--c-red); color: #fff; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06rem; }
.report__btns { display: flex; flex-wrap: wrap; gap: .5rem; }
@media (max-width: 991.98px) {
  .mag-layout, .mag-toc { grid-template-columns: 1fr; gap: 36px; }
  .mag-aside { position: static; }
  .mag-cover { transform: none; max-width: 15rem; margin: 0 auto 2rem; }
  .mag-toc-section { padding-top: 60px; }
  .mag-issues { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .mag-quote { padding: 1.5rem 1.25rem; }
  .mag-quote p { font-size: 1.1rem; }
  .mag-article__body p { font-size: var(--fs-body); }
}
@media print {
  .mag-aside, .mag-hero__actions, .mag-toc-section { display: none; }
  .mag-layout { grid-template-columns: 1fr; }
}

/* Impact: one page per story */
.story-hero .page-hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.story-hero__photo { margin: 0; align-self: end; min-width: 0; transform: translateY(60px); position: relative; z-index: 2; }
.story-hero__photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; box-shadow: 0 18px 40px rgba(0, 0, 0, .18); }
.story-hero .hero__lead { font-size: var(--fs-lead); }
.story-text { padding-top: 1rem; }
.story-text > p:first-child { font-size: 1.25rem; }
.story-back { margin-top: 2.5rem; }
.story-back .btn { display: inline-flex; align-items: center; gap: .55rem; }
.story-back .btn .icon { width: 13px; height: 13px; transform: rotate(180deg); }
@media (max-width: 991.98px) { .story-hero .page-hero__grid { grid-template-columns: 1fr; } .story-hero__photo { transform: none; margin-bottom: 2rem; } }

/* ---------------------------------------------------------------- Our financial accountability */
.fin { position: relative; --fin-in: #2a78d6; --fin-out: #eb6834; --fin-grid: #e8e8ec; }
.fin-intro { max-width: 860px; margin: 0 0 2rem; }
.fin-intro p { font-size: var(--fs-body); margin: 0 0 1rem; }
.fin-filters { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: flex-end; padding: 18px 20px; margin: 0 0 1rem;
  background: var(--bg-light); border-radius: 10px; position: sticky; top: calc(var(--header-h) + 8px); z-index: 5; box-shadow: var(--shadow-card); }
.fin-field > span { display: block; font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--c-navy); margin: 0 0 6px; }
.fin-field { display: flex; flex-direction: column; min-width: 170px; flex: 1 1 170px; max-width: 320px; }
.fin-field select { font: inherit; font-size: .9375rem; padding: 8px 32px 8px 12px; border: 1px solid #cfd0d8; border-radius: 8px; background-color: #fff; color: var(--c-text);
  appearance: none; background-image: linear-gradient(45deg, transparent 50%, #6b6b78 50%), linear-gradient(135deg, #6b6b78 50%, transparent 50%);
  background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.fin-field select:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 1px; }
.fin-reset { align-self: flex-end; padding: 9px 16px; }
.fin-hint { font-size: var(--fs-small); color: var(--c-muted); margin: 0 0 1rem; }
.fin-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 24px; }
.fin-stat { background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); padding: 18px 20px; }
.fin-stat span { display: block; font-size: var(--fs-small); color: #5a5a66; }
.fin-stat strong { display: block; font-size: 2rem; line-height: 1.2; font-weight: 600; color: var(--c-navy); font-variant-numeric: tabular-nums; }
.fin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.fin-card { background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); padding: 20px 22px 16px; min-width: 0; }
.fin-card:first-child, .fin-card:last-child { grid-column: 1 / -1; }
.fin-card h3 { font-family: var(--font-body); font-size: var(--fs-h3); font-weight: 700; color: var(--c-navy); margin: 0 0 .5rem; }
.fin-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; padding: 0; margin: 0 0 10px; font-size: var(--fs-small); color: #5a5a66; }
.fin-legend li { display: flex; align-items: center; gap: 6px; }
.fin-key { display: inline-block; width: 12px; height: 12px; border-radius: 3px; flex: none; }
.fin-key--in { background: var(--fin-in); } .fin-key--out { background: var(--fin-out); }
.fin-chart { width: 100%; min-height: 60px; }
.fin-chart svg { display: block; overflow: visible; }
.fin-chart .fin-gl { stroke: var(--fin-grid); stroke-width: 1; shape-rendering: crispEdges; }
.fin-chart .fin-base { stroke: #c9c9d1; }
.fin-chart .fin-axis { font-size: 14.49px; fill: #6b6b78; font-variant-numeric: tabular-nums; }
.fin-chart .fin-label { font-size: 16.9px; fill: var(--c-text); }
.fin-chart .fin-value { font-size: 15.7px; fill: #3d3d48; font-weight: 600; font-variant-numeric: tabular-nums; }
.fin-bar--in { fill: var(--fin-in); } .fin-bar--out { fill: var(--fin-out); }
.fin-bar { transition: opacity .15s; } .fin-bar.is-hot { opacity: .78; }
.fin-hit { fill: transparent; cursor: default; outline: none; }
.fin-hit:focus-visible { stroke: var(--c-navy); stroke-width: 1.5; stroke-dasharray: none; }
.fin-empty { color: var(--c-muted); font-size: var(--fs-small); margin: 1rem 0; }
.fin-tip { position: absolute; z-index: 20; pointer-events: none; background: #fff; border-radius: 8px; padding: 10px 12px; min-width: 160px;
  box-shadow: 0 4px 18px rgba(0,0,0,.16); font-size: .9375rem; }
.fin-tip__head { font-weight: 700; color: var(--c-navy); margin: 0 0 6px; max-width: 280px; }
.fin-tip__row { display: flex; align-items: center; gap: 8px; color: #5a5a66; }
.fin-tip__row strong { color: #1f1f26; font-variant-numeric: tabular-nums; }
.fin-tip .fin-key { width: 14px; height: 3px; border-radius: 2px; }
.fin-table-wrap { margin: 32px 0 0; background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); padding: 20px 22px; }
.fin-table-wrap header { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin: 0 0 12px; }
.fin-table-wrap h3 { font-family: var(--font-body); font-size: var(--fs-h3); font-weight: 700; color: var(--c-navy); margin: 0; }
.fin-csv { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; }
.fin-table-scroll { overflow-x: auto; max-height: 560px; overflow-y: auto; }
.fin-table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.fin-table th, .fin-table td { padding: 8px 10px; border-bottom: 1px solid var(--c-rule); text-align: left; vertical-align: top; }
.fin-table thead th { position: sticky; top: 0; background: var(--c-navy); color: #fff; font-weight: 600; white-space: nowrap; }
.fin-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fin-table .fin-orig { display: block; font-size: .75rem; font-weight: 400; color: #6b6b78; }
.fin-table td .fin-key { margin-right: 6px; vertical-align: -1px; }
.fin-table td.kind { white-space: nowrap; }
.fin-table tfoot th, .fin-table tfoot td { font-weight: 700; background: var(--bg-mid); }
.fin-notes { margin: 32px 0 0; max-width: 900px; }
.fin-notes h3 { font-family: var(--font-body); font-size: var(--fs-h5); font-weight: 700; color: var(--c-navy); }
.fin-notes li { font-size: var(--fs-small); margin: 0 0 .5rem; color: #4a4a55; }
@media (max-width: 991.98px) {
  .fin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fin-grid { grid-template-columns: minmax(0, 1fr); }
  .fin-filters { position: static; }
}
@media (max-width: 575.98px) {
  .fin-stat strong { font-size: 1.5rem; }
  .fin-field { max-width: none; flex-basis: 100%; }
  .fin-reset { width: 100%; }
  .fin-card, .fin-table-wrap { padding: 16px; }
}

/* ---------- Arrow links ---------- */
.link-arrow { display: inline-flex; align-items: center; gap: .45rem; font-weight: 700; color: var(--c-navy); text-decoration: none; }
.link-arrow:hover { text-decoration: underline; }
.link-arrow .icon { width: 14px; height: 14px; color: var(--c-primary-dk); transition: transform .15s ease; }
.link-arrow:hover .icon, .link-arrow:focus-visible .icon { transform: translateX(3px); }

/* ---------- Impact: year by year ---------- */
.impact-years { list-style: none; margin: 0 auto; padding: 0; max-width: 980px; position: relative; }
.impact-years::before { content: ""; position: absolute; left: 138px; top: 8px; bottom: 8px; width: 2px; background: var(--c-rule, #e3e3e7); }
.impact-year { display: grid; grid-template-columns: 120px 1fr; gap: 0 38px; padding: 0 0 2.25rem; position: relative; }
.impact-year::before { content: ""; position: absolute; left: 132px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--c-amber, #eca327); box-shadow: 0 0 0 4px #fff; }
.impact-year__when { margin: 0; font-family: var(--font-display, inherit); font-size: 1.3rem; font-weight: 700; line-height: 1.2; color: var(--c-navy); text-align: right; white-space: nowrap; }
.impact-year__links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; }
.impact-year ul { margin: 0 0 .75rem; padding-left: 1.1rem; }
.impact-year li { margin: 0 0 .45rem; }
@media (max-width: 575.98px) {
  .impact-years::before { left: 6px; }
  .impact-year { grid-template-columns: 1fr; padding-left: 30px; }
  .impact-year::before { left: 0; }
  .impact-year__when { text-align: left; margin-bottom: .4rem; }
}

/* ---------- Impact: impact across our work ---------- */
.impact-areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.impact-area { background: #fff; border: 1px solid #e4e4ea; border-radius: 12px; padding: 26px 28px 24px; box-shadow: var(--shadow-card); display: flex; flex-direction: column; }
.impact-area header { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 14px; }
.impact-area__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--bg-light); }
.impact-area__icon .icon { width: 26px; height: 26px; }
.impact-area h3 { margin: 2px 0 4px; font-size: 1.125rem; line-height: 1.25; color: var(--c-navy); }
.impact-area__meta { margin: 0; font-size: .8125rem; line-height: 1.4; color: #6b6b78; }
.impact-area ul { margin: 0 0 14px; padding-left: 1.1rem; flex: 1; }
.impact-area li { margin: 0 0 .5rem; }
.impact-area .link-arrow { margin-top: auto; }
.impact-partner__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.impact-partner__inner p { color: rgba(255, 255, 255, .88); }
.impact-partner__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 1.5rem; }
@media (max-width: 767.98px) { .impact-areas { grid-template-columns: 1fr; } .impact-area { padding: 22px 20px 20px; } }

/* Our financial accountability: statement of funds by grant */
.fin-funds__intro { margin: 0 0 1rem; max-width: 900px; font-size: var(--fs-body); color: #55555f; }
.fin-funds { font-size: .875rem; }
.fin-funds th, .fin-funds td { padding: 8px 6px; }
.fin-funds thead th { white-space: normal; vertical-align: bottom; }
.fin-funds td.num { white-space: nowrap; font-size: .8125rem; }
.fin-funds td:nth-child(2) { min-width: 100px; }
.fin-funds td:nth-child(3) { min-width: 175px; }
.fin-funds .fin-audit { display: block; margin-top: 4px; font-size: .75rem; font-weight: 600; color: #8a5a00; }
.fin-funds .fin-audit.is-audited { color: #1d6b3a; }
.fin-funds .fin-note { display: block; margin-top: 4px; font-size: .75rem; line-height: 1.4; color: #6b6b78; max-width: 460px; }
.fin-funds .fin-close { font-weight: 700; }
.fin-funds .is-neg { color: #b3261e; }
.fin-funds tr.is-break td:first-child { box-shadow: inset 3px 0 0 var(--c-primary); }
/* compliance with the financial policies (status colours: always with an icon and a label) */
.fin { --lv-ok: #2e7d4f; --lv-partial: #d9940f; --lv-non: #c0392b; }
.fin-lv { display: inline-block; width: 12px; height: 12px; border-radius: 3px; flex: none; }
.fin-lv--ok { background: var(--lv-ok); } .fin-lv--partial { background: var(--lv-partial); } .fin-lv--non { background: var(--lv-non); }
.fin-tip .fin-lv { width: 14px; height: 3px; border-radius: 2px; }
.fin-lvbar--ok { fill: var(--lv-ok); } .fin-lvbar--partial { fill: var(--lv-partial); } .fin-lvbar--non { fill: var(--lv-non); }
.fin-chart .fin-inbar { font-size: 14.49px; font-weight: 700; fill: #fff; pointer-events: none; }
.fin-badge { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px 2px 4px; border-radius: 999px; font-size: .75rem; font-weight: 600; line-height: 1.5; white-space: nowrap; color: #1f1f26; background: #f1f1ee; }
.fin-badge i { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; color: #fff; font-style: normal; font-size: 12.07px; font-weight: 800; }
.fin-badge--ok { background: #e6f2ea; } .fin-badge--ok i { background: var(--lv-ok); }
.fin-badge--partial { background: #fbf0dc; } .fin-badge--partial i { background: var(--lv-partial); }
.fin-badge--non { background: #f8e3e0; } .fin-badge--non i { background: var(--lv-non); }
.fin-funds td.fin-lvcell { min-width: 150px; }
.fin-funds .fin-lvcell .fin-note { max-width: 210px; }
.fin-funds .fin-rules { display: block; margin-top: 5px; font-size: .75rem; font-weight: 600; color: #4a4a55; }
.fin-legend--lv { margin-top: 12px; }
.fin-card__sub { margin: -.25rem 0 .75rem; font-size: var(--fs-small); color: #6b6b78; }
.fin-dd { scroll-margin-top: 110px; }
.fin-dd__bar { display: flex; gap: 2px; height: 26px; margin: 0 0 18px; border-radius: 6px; overflow: hidden; }
.fin-dd__seg { display: flex; align-items: center; justify-content: center; min-width: 28px; color: #fff; font-size: .8125rem; transition: opacity .15s; }
.fin-dd__seg.is-dim { opacity: .3; }
.fin-lvbg--ok { background: var(--lv-ok); } .fin-lvbg--partial { background: var(--lv-partial); } .fin-lvbg--non { background: var(--lv-non); }
.fin-dd__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.fin-dd__item { padding: 14px 0; border-top: 1px solid var(--c-rule); }
.fin-dd__head { display: flex; gap: 12px; align-items: baseline; }
.fin-dd__head strong { color: var(--c-navy); }
.fin-dd__num { flex: none; min-width: 26px; font-weight: 700; color: #8a8a96; font-variant-numeric: tabular-nums; }
.fin-dd__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 6px 0 4px 38px; font-size: var(--fs-small); color: #6b6b78; }
.fin-dd__item p { margin: 0 0 0 38px; font-size: var(--fs-body); color: #4a4a55; }
@media (max-width: 600px) { .fin-dd__meta, .fin-dd__item p { margin-left: 0; } }
.docs-intro--after { margin-top: 1.25rem; }
.fin-funds th:last-child, .fin-funds td.fin-lvcell { width: 150px; min-width: 150px; }
.fin-funds .fin-badge { white-space: normal; }
.projects-recon { max-width: 52rem; margin: 2rem auto 0; text-align: center; color: var(--c-text); }
/* open discrepancies are flagged in red */
.fin-alert { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; padding: 14px 18px; border-radius: 10px; background: #fbe9e7; border: 1px solid #e8b4ad; color: #8e1f15; font-weight: 600; text-decoration: none; }
.fin-alert:hover { color: #6d160f; background: #f8dcd8; }
.fin-alert .icon { margin-left: auto; flex: none; }
.fin-alert__flag, .fin-flag i { display: inline-grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--lv-non); color: #fff; font-style: normal; font-weight: 800; }
.fin-flag { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: .75rem; font-weight: 700; color: #a3241a; text-decoration: none; }
.fin-flag i { width: 16px; height: 16px; font-size: 12.07px; }
.fin-flag:hover { text-decoration: underline; }
.fin-funds tr.has-flag td:first-child { box-shadow: inset 4px 0 0 var(--lv-non); }
.fin-diff__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.fin-diff__list { list-style: none; margin: 0; padding: 0; background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); }
.fin-diff__item { padding: 16px 20px; border-top: 1px solid var(--c-rule); scroll-margin-top: 120px; }
.fin-diff__item:first-child { border-top: 0; }
.fin-diff__item.is-open { background: #fdf3f2; box-shadow: inset 4px 0 0 var(--lv-non); }
.fin-diff__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.fin-diff__head strong { color: var(--c-navy); }
.fin-diff__amt { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; color: #1f1f26; white-space: nowrap; }
.fin-diff__item.is-open .fin-diff__amt { color: #a3241a; }
.fin-diff__meta { margin: 4px 0 6px; font-size: var(--fs-small); color: #6b6b78; }
.fin-diff__item p { margin: 0 0 6px; font-size: var(--fs-body); color: #3d3d48; max-width: 62rem; }
.fin-diff__needed { color: #8e1f15 !important; }
.fin-diff__src { color: #6b6b78 !important; }
.fin-export { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 24px; padding: 16px 20px; background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); }
.fin-export p { margin: 0; max-width: 46rem; font-size: var(--fs-small); color: #4a4a55; }
.fin-export .btn { display: inline-flex; align-items: center; gap: 8px; }
.fin-version { font-size: var(--fs-small); color: #6b6b78; }
.fin-version code { font-size: .875em; }
/* overall compliance verdict, under the page hero */
.fin-verdict-wrap { --lv-ok: #2e7d4f; --lv-partial: #d9940f; --lv-non: #c0392b; padding-top: 0; }
.fin-verdict { display: grid; grid-template-columns: 1.1fr 1fr; gap: 20px 40px; padding: 28px 32px; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); border-top: 6px solid var(--lv-partial); }
.fin-verdict--ok { border-top-color: var(--lv-ok); } .fin-verdict--non { border-top-color: var(--lv-non); }
.fin-verdict__head p { color: #3d3d48; }
.fin-verdict__level { display: flex; align-items: center; gap: 12px; margin: .4rem 0 .75rem; font-family: var(--font-heading, inherit); font-size: var(--fs-h4, 1.4rem); font-weight: 700; line-height: 1.25; color: var(--c-navy) !important; }
.fin-verdict__icon { display: inline-grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; color: #fff; font-size: 24.15px; font-weight: 800; background: var(--lv-partial); }
.fin-verdict--ok .fin-verdict__icon { background: var(--lv-ok); } .fin-verdict--non .fin-verdict__icon { background: var(--lv-non); }
.fin-verdict__cap { margin: .25rem 0 .4rem; font-size: var(--fs-small); font-weight: 600; color: #4a4a55; }
.fin-vbar { display: flex; gap: 2px; height: 30px; margin: 0 0 14px; border-radius: 6px; overflow: hidden; }
.fin-vbar__seg { display: flex; align-items: center; justify-content: center; min-width: 6px; color: #fff; font-size: .8125rem; font-weight: 700; white-space: nowrap; }
.fin-verdict-wrap .fin-lvbg--ok { background: var(--lv-ok); } .fin-verdict-wrap .fin-lvbg--partial { background: var(--lv-partial); } .fin-verdict-wrap .fin-lvbg--non { background: var(--lv-non); }
.fin-verdict-wrap .fin-lv { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }
.fin-verdict-wrap .fin-lv--ok { background: var(--lv-ok); } .fin-verdict-wrap .fin-lv--partial { background: var(--lv-partial); } .fin-verdict-wrap .fin-lv--non { background: var(--lv-non); }
.fin-verdict__todo { grid-column: 1 / -1; border-top: 1px solid var(--c-rule); padding-top: 18px; }
.fin-verdict__todo h3 { margin: 0 0 .5rem; font-size: var(--fs-h5); color: var(--c-navy); }
.fin-verdict__todo ol { margin: 0 0 .75rem; padding-left: 1.25rem; columns: 2; column-gap: 40px; }
.fin-verdict__todo li { margin: 0 0 .5rem; font-size: var(--fs-small); color: #3d3d48; break-inside: avoid; }
.fin-verdict__todo li.is-open::marker { color: var(--lv-non); font-weight: 700; }
.fin-verdict__todo li.is-open a { color: #a3241a; font-weight: 700; }
.fin-verdict__links { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0; }
@media (max-width: 860px) { .fin-verdict { grid-template-columns: minmax(0, 1fr); padding: 22px 18px; } .fin-verdict * { overflow-wrap: break-word; } .fin-verdict__todo ol { columns: 1; } }
.fin-verdict__dl { display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 0 0 14px; }
.fin-verdict__dl .btn, .fin-export .btn { display: inline-flex; align-items: center; gap: 8px; }
.fin-export { gap: 12px; }
.fin-verdict__rate { display: flex; align-items: baseline; gap: 10px; margin: 0 0 6px; }
.fin-verdict__rate strong { font-size: 2.2rem; line-height: 1; color: var(--c-navy); font-variant-numeric: tabular-nums; }
.fin-verdict__rate span { font-size: var(--fs-small); color: #4a4a55; }
.fin-gauge { position: relative; height: 14px; margin: 0 0 18px; border-radius: 7px; background: #ecebe6; }
.fin-gauge__fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 7px; }
.fin-gauge__target { position: absolute; top: -4px; bottom: -4px; width: 3px; margin-left: -1.5px; background: var(--c-navy); border-radius: 2px; }
.fin-gauge--sm { height: 8px; margin: 4px 0 0; grid-column: 1 / -1; }
.fin-verdict__reports { grid-column: 1 / -1; border-top: 1px solid var(--c-rule); padding-top: 18px; }
.fin-verdict__reports h3 { margin: 0 0 .4rem; font-size: var(--fs-h5); color: var(--c-navy); }
.fin-verdict__reports > p { margin: 0 0 12px; font-size: var(--fs-small); color: #4a4a55; max-width: 62rem; }
.fin-reps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px 24px; }
.fin-reps li { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 4px 8px; font-size: var(--fs-small); }
.fin-reps li a { font-weight: 600; }
.fin-reps li strong { font-variant-numeric: tabular-nums; color: #1d6b3a; }
.fin-reps li.is-low strong { color: #a3241a; }
/* technology partners (Our projects) */
.tech-partners { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 20px; }
.tech-partner { background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); padding: 20px; }
.tech-partner__logo { height: 64px; margin: 0 0 14px; display: flex; align-items: center; }
.tech-partner__logo img { max-height: 60px; max-width: 160px; width: auto; height: auto; }
.tech-partner__name { font-weight: 700; font-size: 1.125rem; color: var(--c-navy); }
.tech-partner h3 { font-size: var(--fs-h3); margin: 0 0 6px; color: var(--c-navy); }
.tech-partner p { margin: 0; font-size: var(--fs-body); color: #4a4a55; }
/* homepage hero: the three buttons on one line */
.hero--hp .hero__buttons { flex-direction: row; flex-wrap: nowrap; width: auto; max-width: none; gap: .6rem; }
.hero--hp .hero__buttons .btn { flex: 0 1 auto; min-width: 0; padding-left: 1.4rem; padding-right: 1.4rem; }
@media (max-width: 991.98px) { .hero--hp .hero__buttons { justify-content: center; } }
@media (max-width: 575.98px) {
  .hero--hp .hero__buttons { gap: .4rem; }
  .hero--hp .hero__buttons .btn { flex: 1 1 auto; padding: .5rem .5rem; font-size: 14px; letter-spacing: .02rem; line-height: 1.15; white-space: nowrap; text-align: center; }
}
@media (min-width: 992px) and (max-width: 1199.98px) { .hero--hp .hero__buttons .btn { padding-left: .85rem; padding-right: .85rem; letter-spacing: .04rem; white-space: nowrap; } }
@media (max-width: 374.98px) { .hero--hp .hero__buttons .btn { font-size: 13px; letter-spacing: 0; padding-left: .35rem; padding-right: .35rem; } }
/* homepage hero: buttons, apps title and app buttons 10% smaller */
.hero--hp .hero__buttons .btn { font-size: 15.5px; }
.hero--hp .hero__apps .section__tag { font-size: 1.05rem; text-transform: none; letter-spacing: .01rem; }   /* "Our citizen monitoring apps" in lower case */
@media (max-width: 575.98px) { .hero--hp .hero__buttons .btn { font-size: 12.6px; } }
@media (max-width: 374.98px) { .hero--hp .hero__buttons .btn { font-size: 11.7px; } }
/* ---------- Research and studies (EN 59, FR 133) ---------- */
.rs-center { text-align: center; }
.rs-figs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: .75rem; }
.rs-fig { background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); padding: 22px 20px; text-align: center; }
.rs-fig em { display: block; font-family: var(--font-display); font-style: normal; font-weight: 700; font-size: 2.1rem; line-height: 1; color: var(--c-red); margin-bottom: .5rem; }
.rs-fig p { margin: 0; font-size: var(--fs-small); line-height: 1.4; color: #4a4a55; }
.rs-apps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.rs-app { background: var(--bg-light); border-radius: 12px; padding: 26px 24px; border-top: 4px solid var(--c-primary); }
.rs-app:nth-child(2) { border-top-color: var(--c-blue); } .rs-app:nth-child(3) { border-top-color: var(--c-green); }
.rs-app .function-icon { margin-bottom: .75rem; }
.rs-app h3 { color: var(--c-navy); margin-bottom: .5rem; }
.rs-app p { margin: 0; }
.rs-featured { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.rs-featured__text p { text-align: left; }
.rs-chart { margin: 0; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 26px 26px 18px; }
.rs-chart figcaption { font-weight: 700; color: var(--c-navy); margin-bottom: 1rem; }
.rs-bars { list-style: none; margin: 0; padding: 0; }
.rs-bar { display: grid; grid-template-columns: minmax(0, 1fr) 4.2rem; grid-template-rows: auto auto; column-gap: 12px; margin: 0 0 14px; font-size: var(--fs-small); }
.rs-bar__label { grid-column: 1 / 3; color: #3d3d48; line-height: 1.35; margin-bottom: 4px; }
.rs-bar__track { grid-column: 1; align-self: center; height: 12px; border-radius: 6px; background: #efede5; overflow: hidden; }
.rs-bar__fill { display: block; height: 100%; border-radius: 6px; background: var(--c-red); }
.rs-bar__value { grid-column: 2; text-align: right; color: var(--c-navy); font-variant-numeric: tabular-nums; }
.rs-filter { display: flex; flex-wrap: nowrap; gap: .3rem; overflow-x: auto; margin: 0 0 1.75rem; padding-bottom: 4px; }
.rs-filter button { flex: none; border: 0; border-radius: 34px; padding: 9px 16px; font: 600 15px var(--font-body); background: transparent; color: var(--c-text); cursor: pointer; white-space: nowrap; }
.rs-filter button:hover, .rs-filter button.is-active { background: var(--c-primary); color: #fff; }
.rs-studies { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.rs-study { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 20px; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 24px; }
.rs-study[hidden] { display: none; }
.rs-study__year { font-family: var(--font-display); font-weight: 700; font-size: 1.6rem; color: var(--c-primary); line-height: 1; }
.rs-study h3 { color: var(--c-navy); margin: .35rem 0 .5rem; }
.rs-study__body > p { margin: 0 0 .6rem; }
.rs-study__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: var(--fs-small); color: #6b6b78; }
.rs-type { display: inline-block; padding: 2px 10px; border-radius: 999px; font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .05rem; }
.rs-type--survey { background: #fdf0dc; color: #8a5a07; } .rs-type--sector { background: #e1f1f6; color: #23667b; } .rs-type--policy { background: #e3f3eb; color: #2b6b4e; }
.rs-study__find { background: var(--bg-light); border-left: 3px solid var(--c-red); padding: .6rem .9rem; border-radius: 0 6px 6px 0; }
.rs-method { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.rs-method__item h3 { color: var(--c-navy); }
.rs-sdg { display: flex; align-items: center; gap: 16px; margin-top: 2rem; }
.rs-sdg p { margin: 0; font-weight: 600; color: var(--c-navy); }
.rs-sdg__badge { flex: none; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 8px; background: #00689d; color: #fff; font: 700 .7rem/1 var(--font-body); letter-spacing: .05rem; }
.rs-sdg__badge b { font-size: 1.6rem; }
.rs-related { margin-top: 2rem; } .rs-related > div { display: flex; flex-wrap: wrap; gap: .6rem; }
@media (max-width: 991.98px) { .rs-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rs-featured, .rs-apps, .rs-method { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575.98px) { .rs-study { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 20px 18px; } .rs-fig em { font-size: 1.7rem; } }

/* four citizen monitoring apps: two by two */
.hero--hp .hero__apps { width: 100%; max-width: 36rem; }

/* Our projects: one button per donor, linked to the impact of the work it funded */
.donors { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 991.98px) { .donors { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .donors { grid-template-columns: 1fr; } }
.donor { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid #e4e4ea; border-top: 4px solid var(--c-primary);
  border-radius: 12px; padding: 20px 20px 16px; box-shadow: var(--shadow-card); transition: transform .15s ease, box-shadow .15s ease; text-align: left; }
.donor--kind { border-top-color: var(--c-blue, #1c5aa6); }
.donor--own { border-top-color: var(--c-red, #c8102e); }
.donor:hover, .donor:focus-within { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(20, 30, 60, .14); }
.donor__logos { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; min-height: 52px; margin: 0 0 14px; }
.donor__logos img { max-height: 44px; max-width: 120px; width: auto; height: auto; }
.donor__amount { margin: 0 0 6px; font-size: 1.5rem; font-weight: 800; line-height: 1.15; color: var(--c-navy); font-variant-numeric: tabular-nums; }
.donor__amount small { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5b5b66; margin-bottom: 2px; }
.donor__name { font-size: 1rem; line-height: 1.3; margin: 0 0 4px; text-align: left; hyphens: manual; }
.donor__link { color: var(--c-text); text-decoration: none; }
.donor__link::after { content: ""; position: absolute; inset: 0; border-radius: 12px; }
.donor__link:focus-visible { outline: none; }
.donor:focus-within { outline: 3px solid var(--c-blue, #1c5aa6); outline-offset: 2px; }
.donor__years { margin: 0 0 8px; font-size: .82rem; color: #5b5b66; }
.donor__projects { list-style: none; margin: 0 0 14px; padding: 0; font-size: .82rem; line-height: 1.35; color: #4a4a55; text-align: left; }
.donor__projects li + li { margin-top: 4px; }
.donor__actions { margin: auto 0 0; padding-top: 12px; border-top: 1px solid var(--c-rule, #e4e4ea); display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: .82rem; font-weight: 700; }
.donor__impact { display: inline-flex; align-items: center; gap: 6px; color: var(--c-navy); }
.donor__impact .icon { color: var(--c-red-dk); }
.donor:hover .donor__impact .icon { transform: translateX(3px); }
.donor__impact .icon { transition: transform .15s ease; }
.donor__figures { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px;
  background: #f1f2f6; color: var(--c-navy); text-decoration: none; }
.donor__figures:hover, .donor__figures:focus-visible { background: var(--c-navy); color: #fff; }
.donors-wrap .projects-recon { margin-top: 2.25rem; }
.impact-area:target, .impact-year:target { outline: 3px solid var(--c-primary); outline-offset: 4px; }
.impact-area, .impact-year, #impact-years { scroll-margin-top: calc(var(--header-h) + 24px); }

/* Our projects: the total as a simple sum, one line per part */
.recon { max-width: 46rem; margin: 2.5rem auto 0; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 24px 28px 20px; }
.recon__h { margin: 0 0 12px; font-size: 1.15rem; color: var(--c-navy); text-align: left; }
.recon__rows { list-style: none; margin: 0; padding: 0; }
.recon__row { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) auto; gap: 4px 14px; align-items: baseline; padding: 12px 0; border-top: 1px solid var(--c-rule); }
.recon__sign { font-size: 1.4rem; font-weight: 800; color: var(--c-red-dk); line-height: 1; }
.recon__what { margin: 0; text-align: left; hyphens: manual; font-size: .9rem; color: #4a4a55; line-height: 1.4; }
.recon__what strong { display: block; font-size: 1rem; color: var(--c-navy); }
.recon__amount { font-weight: 800; font-size: 1.1rem; color: var(--c-navy); font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.recon__row--t { border-top: 3px solid var(--c-navy); }
.recon__row--t .recon__amount { font-size: 1.35rem; color: var(--c-red-dk); }
.recon__link { margin: 10px 0 0; text-align: right; }
@media (max-width: 480px) {
  .recon { padding: 18px 16px 14px; }
  .recon__row { grid-template-columns: 1.1rem minmax(0, 1fr); }
  .recon__amount { grid-column: 2; text-align: left; }
}
.nowrap { white-space: nowrap; }

/* Our strategy 2027–2030: post-conflict eastern Congo */
.st-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 20px; }
.st-fact { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); border-top: 4px solid var(--c-red); padding: 22px 22px 18px; display: flex; flex-direction: column; }
.st-fact .icon { color: var(--c-red-dk); }
.st-fact p { margin: 0; text-align: left; hyphens: manual; }
.st-fact__n { font-size: 2rem; font-weight: 800; line-height: 1.1; color: var(--c-navy); margin: 10px 0 6px !important; }
.st-fact__src { margin-top: auto !important; padding-top: 12px; font-size: .78rem; color: #5b5b66; }
.st-risk { max-width: 52rem; }
.st-risk h2 { color: #fff; }
.st-risk p { color: rgba(255, 255, 255, .9); }
.st-belief { margin: 2rem 0 0; padding: 1.5rem 1.75rem; border-left: 5px solid var(--c-primary); background: rgba(255, 255, 255, .07); border-radius: 0 12px 12px 0; }
.st-belief p { margin: 0; font-size: 1.1rem; line-height: 1.55; color: #fff; }
.st-belief .st-belief__h { font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; color: var(--c-primary); margin-bottom: .5rem; }
.st-axes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.st-axis { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 26px 28px 22px; border-top: 5px solid var(--c-primary); display: flex; flex-direction: column; }
.st-axis--blue { border-top-color: var(--c-blue); } .st-axis--red { border-top-color: var(--c-red); } .st-axis--green { border-top-color: var(--c-green); }
.st-axis header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.st-axis__num { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--c-navy); color: #fff; font-weight: 800; display: grid; place-items: center; }
.st-axis__icon { flex: none; display: inline-flex; }
.st-axis h3 { margin: 0; font-size: var(--fs-h4, 20.7px); line-height: 1.25; color: var(--c-navy); text-align: left; }
.st-axis__goal { font-weight: 700; color: var(--c-text); text-align: left; }
.st-axis ul { margin: 0 0 1rem; padding-left: 1.2rem; }
.st-axis li { margin-bottom: .5rem; }
.st-axis__tool { margin: auto 0 0; padding-top: 12px; border-top: 1px solid var(--c-rule); font-size: .85rem; font-weight: 700; color: #5b5b66; text-align: left; }
.st-prins { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px; }
.st-prin { text-align: center; padding: 1.5rem 1.25rem; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); }
.st-prin h3 { margin: 1rem 0 .4rem; color: var(--c-navy); }
.st-prin p { margin: 0; text-align: center; hyphens: manual; }
.st-phases { list-style: none; margin: 0 0 2.5rem; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; counter-reset: none; }
.st-phase { position: relative; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 22px 24px; }
.st-phase__when { display: inline-block; margin: 0 0 .5rem; padding: .2rem .8rem; border-radius: 999px; background: var(--c-navy); color: #fff; font-weight: 800; font-size: .85rem; }
.st-phase h3 { margin: 0 0 .4rem; color: var(--c-navy); text-align: left; }
.st-phase p { margin: 0; text-align: left; }
.st-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.st-box { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 24px 28px; }
.st-box h3 { margin: 0 0 .75rem; color: var(--c-navy); }
.st-box ul { margin: 0 0 1rem; padding-left: 1.2rem; }
.st-box li { margin-bottom: .45rem; }
.st-note { font-size: .88rem; color: #5b5b66; margin: 0; }
.st-reports { margin-top: 2.5rem; }
.st-sources h2 { font-size: var(--fs-h3); }
.st-sources ul { margin: 0; padding-left: 1.2rem; font-size: .88rem; }
.st-sources li { margin-bottom: .35rem; text-align: left; }
@media (max-width: 860px) {
  .st-axes, .st-cols, .st-phases { grid-template-columns: minmax(0, 1fr); }
  .st-axis, .st-box { padding: 22px 20px 18px; }
}
.st-fact .icon { width: 30px; height: 30px; }
.st-axis__icon .icon { width: 28px; height: 28px; }
/* logos centred in their cards (Our projects) */
.donor__logos { justify-content: center; }
.tech-partner__logo { justify-content: center; }
.project__partners ul { justify-content: center; }
.project__partners > span { display: block; text-align: center; }
.project__partners { flex-direction: column; align-items: center; }
.mag-article__img--art img { max-height: 16rem; object-fit: contain; background: var(--c-bg-light, #f6f4ef); padding: 1.5rem; }
.st-anchor { scroll-margin-top: calc(var(--header-h) + 8px); }
.page-hero .gov-jump { margin-top: 1.25rem; }

/* Impact page for donors and partners */
.impact-hero { background: radial-gradient(circle at 85% 20%, #4a4977 0%, var(--c-navy) 55%, #2c2b48 100%); color: #fff; padding: 2.5rem 0 3rem; }
.impact-hero .breadcrumb, .impact-hero .breadcrumb a { color: rgba(255, 255, 255, .75); }
.impact-hero h1 { color: #fff; margin: .75rem 0 .75rem; }
.impact-hero .hero-badge { background: var(--c-primary); color: var(--c-navy); }
.impact-hero__lead { max-width: 46rem; font-size: var(--fs-lead); color: rgba(255, 255, 255, .92); text-align: left; hyphens: manual; }
.impact-hero__cta { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0 2.25rem; }
.btn-ghost { background: transparent; border: 2px solid rgba(255, 255, 255, .8); color: #fff; }
.btn-ghost:hover { background: #fff; color: var(--c-navy); }
.impact-proof { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(255, 255, 255, .2); }
.impact-proof li { padding: 1.25rem 1.25rem 0 0; }
.impact-proof li + li { padding-left: 1.25rem; border-left: 1px solid rgba(255, 255, 255, .2); }
.impact-proof b { display: block; font-size: 2.6rem; line-height: 1; font-weight: 800; color: var(--c-primary); font-variant-numeric: tabular-nums; }
.impact-proof span { display: block; margin-top: .4rem; font-size: .9rem; color: rgba(255, 255, 255, .85); }
.kpi-filter { margin-bottom: 1.5rem; }
.kpis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 18px; }
.kpi { background: #fff; border: 1px solid #e4e4ea; border-radius: 12px; padding: 20px 20px 18px; box-shadow: var(--shadow-card); }
.kpi[hidden] { display: none; }
.kpi__icon { display: inline-flex; }
.kpi__icon .icon { width: 30px; height: 30px; }
.kpi__n { display: block; margin: .5rem 0 .35rem; font-size: 2.1rem; font-weight: 800; line-height: 1.05; color: var(--c-navy); font-variant-numeric: tabular-nums; }
.kpi p { margin: 0; font-size: .92rem; line-height: 1.45; color: #4a4a55; text-align: left; hyphens: manual; }
.chain { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; counter-reset: none; }
.chain__step { position: relative; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .15); border-radius: 12px; padding: 22px 22px 20px; }
.chain__step + .chain__step::before { content: "→"; position: absolute; left: -16px; top: 26px; color: var(--c-primary); font-weight: 800; font-size: 1.2rem; }
.chain__num { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-primary); color: var(--c-navy); font-weight: 800; }
.chain__step h3 { color: #fff; margin: .75rem 0 .5rem; font-size: var(--fs-h4, 20.7px); }
.chain__step p { margin: 0; color: rgba(255, 255, 255, .88); text-align: left; hyphens: manual; font-size: .95rem; }
.fchart { list-style: none; margin: 1rem 0 0; padding: 0; height: 300px; display: flex; align-items: flex-end; gap: 14px; border-bottom: 2px solid var(--c-rule); }
.fchart__col { position: relative; flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; outline: none; }
.fchart__bar { width: 100%; max-width: 64px; background: var(--c-blue); border-radius: 4px 4px 0 0; transition: background .15s; }
.fchart__col:hover .fchart__bar, .fchart__col:focus .fchart__bar { background: var(--c-blue-dk); }
.fchart__val { font-size: .8rem; font-weight: 700; color: var(--c-navy); margin-bottom: 4px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fchart__year { position: absolute; bottom: -28px; font-size: .78rem; color: #5b5b66; white-space: nowrap; }
.fchart__tip { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); background: var(--c-navy); color: #fff; font-size: .78rem; padding: 6px 9px; border-radius: 6px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .12s; z-index: 2; }
.fchart__col:hover .fchart__tip, .fchart__col:focus .fchart__tip { opacity: 1; }
.fchart__note { margin: 2.5rem 0 0; font-size: .82rem; color: #5b5b66; }
.why-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.why-card { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 24px; border-top: 4px solid var(--c-primary); }
.why-card .icon { width: 30px; height: 30px; color: var(--c-red-dk); }
.why-card p { margin: .75rem 0 0; text-align: left; hyphens: manual; }
.why-card strong { display: block; color: var(--c-navy); font-size: 1.1rem; margin-bottom: .25rem; }
.trust-logos { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 22px 34px; }
.trust-logos img { max-height: 46px; max-width: 130px; width: auto; height: auto; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.trust-logos img:hover { filter: none; opacity: 1; }
.trust-badges { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.trust-badge { display: flex; gap: 14px; align-items: flex-start; background: var(--bg-mid, #f1efe9); border-radius: 12px; padding: 18px 20px; }
.trust-badge .icon { flex: none; width: 30px; height: 30px; color: var(--c-navy); }
.trust-badge b { display: block; color: var(--c-navy); }
.trust-badge span { font-size: .88rem; color: #4a4a55; }
.link-arrow--light { color: #fff; }
@media (max-width: 991.98px) {
  .chain, .why-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chain__step:nth-child(odd)::before { display: none; }
  .impact-proof { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .impact-proof li:nth-child(3) { padding-left: 0; border-left: 0; }
  .trust-badges { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .chain, .why-cards { grid-template-columns: 1fr; }
  .chain__step::before { display: none; }
  .impact-proof b { font-size: 2rem; }
  .fchart { gap: 4px; height: 240px; }
  .fchart__val { font-size: .62rem; writing-mode: vertical-rl; transform: rotate(180deg); }
  .fchart__year { font-size: .6rem; transform: rotate(-35deg); transform-origin: top center; }
}
.kpi-filter { flex-wrap: wrap; overflow: visible; }
.fchart__col:first-child .fchart__tip, .fchart__col:nth-child(2) .fchart__tip { left: 0; transform: none; }
.fchart__col:last-child .fchart__tip, .fchart__col:nth-last-child(2) .fchart__tip { left: auto; right: 0; transform: none; }
.fchart__tip { visibility: hidden; } .fchart__col:hover .fchart__tip, .fchart__col:focus .fchart__tip { visibility: visible; }
/* Our projects: results and funding of each project */
.project__results { margin: .25rem 0 1rem; padding: 14px 16px; background: var(--bg-mid, #f4f2ec); border-radius: 10px; }
.project__results h4 { margin: 0 0 .5rem; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--c-navy); }
.project__results ul { margin: 0; padding-left: 1.1rem; font-size: .9rem; line-height: 1.45; }
.project__results li { margin-bottom: .4rem; text-align: left; hyphens: manual; }
.project__funding { margin: 0 0 1rem; border: 1px solid var(--c-rule); border-radius: 10px; padding: 0 14px; }
.project__funding summary { cursor: pointer; padding: 10px 0; font-weight: 700; font-size: .88rem; color: var(--c-navy); }
.project__funding table { width: 100%; border-collapse: collapse; font-size: .82rem; margin: 0 0 .5rem; }
.project__funding th, .project__funding td { padding: 5px 4px; border-top: 1px solid var(--c-rule); text-align: left; vertical-align: top; font-weight: 400; }
.project__funding tfoot th, .project__funding tfoot td { font-weight: 800; border-top: 2px solid var(--c-navy); }
.project__funding .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.project__funding .link-arrow { display: inline-flex; margin: 0 0 10px; font-size: .85rem; }
.project > p:last-of-type { flex: none; }
.project__funding { margin-bottom: auto; }
.project__more { margin-top: 1rem; }
.fin-hero .impact-proof b { font-size: 2.1rem; }
@media (max-width: 575.98px) { .fin-hero .impact-proof b { font-size: 1.45rem; } .fin-hero .impact-proof li { padding-right: .5rem; } .fin-hero .impact-proof li + li { padding-left: .75rem; } }
.card--illus .card-text, .card--illus .card-title { text-align: left; hyphens: manual; }
.card--illus { height: 100%; }
/* UNCAC civil society report */
.un-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; }
.un-scopes { display: grid; grid-template-columns: 3fr 2fr; gap: 24px; }
.un-scope { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 24px 28px; border-top: 4px solid var(--c-blue); }
.un-scope h3 { margin: 0 0 .75rem; color: var(--c-navy); }
.un-scope ul { margin: 0; padding-left: 1.1rem; columns: 2 16rem; column-gap: 2rem; }
.un-scope li { margin-bottom: .45rem; break-inside: avoid; text-align: left; hyphens: manual; }
.un-find__p { margin-bottom: 1.25rem; }
.un-finds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; align-items: start; }
.un-find { background: #fff; border: 1px solid var(--c-rule); border-radius: 10px; padding: 0 18px; }
.un-find summary { cursor: pointer; padding: 14px 0; font-weight: 700; color: var(--c-navy); }
.un-find .entry { padding-bottom: 12px; font-size: .95rem; }
.un-recs { margin: 0; padding: 0; list-style: none; counter-reset: rec; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; }
.un-recs li { counter-increment: rec; position: relative; padding: 16px 18px 16px 58px; background: rgba(255, 255, 255, .07); border-radius: 10px; color: #fff; text-align: left; hyphens: manual; }
.un-recs li::before { content: counter(rec); position: absolute; left: 16px; top: 14px; width: 30px; height: 30px; border-radius: 50%; background: var(--c-primary); color: var(--c-navy); font-weight: 800; display: grid; place-items: center; }
.un-note { margin: 1.25rem 0 0; color: rgba(255, 255, 255, .8); font-size: .9rem; }
.un-note--dark { color: #5b5b66; }
@media (max-width: 991.98px) { .un-steps, .un-scopes, .un-finds, .un-recs { grid-template-columns: minmax(0, 1fr); } }
.entry .card-text, .entry .card-title { text-align: left; hyphens: manual; }
/* statement of funds: grouped by year, notes folded, cards on phones */
.fin-funds .fin-funds__year th { background: var(--bg-mid, #eeece6); color: var(--c-navy); font-size: .95rem; font-weight: 800; padding: 8px 10px; position: static; }
.fin-funds__grant strong { display: block; color: var(--c-navy); font-weight: 700; }
.fin-funds__grant small { display: block; margin-top: 2px; }
.fin-funds .fin-donor { color: #55555f; }
.fin-funds td:nth-child(1) { min-width: 260px; }
.fin-funds td:nth-child(2), .fin-funds td:nth-child(3) { min-width: 0; }
.fin-funds details.fin-note { margin-top: 4px; font-size: .78rem; color: #55555f; }
.fin-funds details.fin-note summary { cursor: pointer; color: var(--c-blue-dk); font-weight: 700; }
.fin-funds details.fin-note p { margin: 4px 0 0; text-align: left; hyphens: manual; max-width: 34rem; }
.fin-funds td { vertical-align: middle; }
.fin-funds td.fin-funds__grant { vertical-align: top; }
@media (max-width: 767.98px) {
  .fin-funds-wrap .fin-table-scroll { max-height: none; overflow: visible; }
  .fin-funds thead { display: none; }
  .fin-funds, .fin-funds tbody, .fin-funds tr, .fin-funds td, .fin-funds th { display: block; width: 100%; }
  .fin-funds tr { border-bottom: 1px solid var(--c-rule); padding: 6px 0; }
  .fin-funds td { border: 0; padding: 3px 4px; }
  .fin-funds td.num, .fin-funds td.fin-lvcell { display: flex; justify-content: space-between; gap: 12px; text-align: right; }
  .fin-funds td.num::before, .fin-funds td.fin-lvcell::before { content: attr(data-label); color: #55555f; font-size: .8rem; text-align: left; }
  .fin-funds td:nth-child(1) { min-width: 0; }
  .fin-funds tfoot { display: block; }
}
@media (max-width: 767.98px) { .fin-funds tr.fin-funds__year th { display: block; width: auto; max-width: none; box-sizing: border-box; } }
.impact-area__art { margin: -26px -28px 18px; height: 170px; background: var(--bg-mid, #f1efe9); border-radius: 12px 12px 0 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.impact-area__art img { max-height: 140px; max-width: 80%; width: auto; height: auto; }
.st-teaser { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: center; background: #fff; border-radius: 14px; box-shadow: var(--shadow-card); padding: 32px 36px; border-left: 6px solid var(--c-primary); }
.st-teaser h2 { margin-top: .4rem; }
.st-teaser__axes { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.st-teaser__axes li { display: flex; gap: 12px; align-items: center; font-weight: 700; color: var(--c-navy); text-align: left; }
@media (max-width: 860px) { .st-teaser { grid-template-columns: 1fr; padding: 24px 20px; } }
/* Our projects on phones: centred */
@media (max-width: 575.98px) {
  .donors-wrap .section__header, .donors-wrap .section__header h2, .donors-wrap .section__header p { text-align: center; }
  .donor, .donor__name, .donor__projects, .donor__years, .donor__amount { text-align: center; }
  .donor__actions { justify-content: center; flex-wrap: wrap; }
  .projects .project__head { flex-direction: column; align-items: center; gap: .5rem; text-align: center; }
  .projects .project__title, .projects .project__more { text-align: center; justify-content: center; }
  .projects .project > p { text-align: left; }
  .projects .project__results h4, .project__funding summary { text-align: center; }
  .projects-page-hero h1, .projects-page-hero .hero__lead { text-align: center; }
  .tech-partner { text-align: center; }
  .tech-partner p, .tech-partner h3 { text-align: center; }
  .recon__h { text-align: center; }
}
@media (max-width: 575.98px) { .projects .project__amount { text-align: center; align-items: center; } .projects-page-hero .breadcrumb { justify-content: center; } }

/* ---------------------------------------------------------------- app layer: tab bar, toast, reveal, install, offline */
.tabbar { display: none; }
@media (max-width: 767.98px) {
  .tabbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; background: rgba(255, 255, 255, .97); backdrop-filter: saturate(1.4) blur(10px);
    border-top: 1px solid #e3e3e7; box-shadow: 0 -4px 18px rgba(30, 30, 60, .08); padding-bottom: env(safe-area-inset-bottom); }
  .tabbar ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); }
  .tabbar__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 58px; width: 100%; padding: 6px 2px;
    background: none; border: 0; color: #5b5b66; font: 600 .7rem var(--font-body); letter-spacing: .02em; text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .tabbar__item .icon { width: 22px; height: 22px; }
  .tabbar__item.is-active, .tabbar__item:active { color: var(--c-navy); }
  .tabbar__item.is-active .icon { color: var(--c-red-dk); }
  .tabbar li:last-child .tabbar__item { color: var(--c-red-dk); }
  body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
  .helper { bottom: calc(70px + env(safe-area-inset-bottom)) !important; right: 12px !important; }
  .app-toast { bottom: calc(72px + env(safe-area-inset-bottom)); }
}
.app-toast { position: fixed; left: 50%; bottom: 24px; z-index: 120; transform: translate(-50%, 20px); opacity: 0; transition: opacity .25s, transform .25s;
  max-width: min(92vw, 30rem); display: flex; align-items: center; gap: 12px; background: var(--c-navy); color: #fff; padding: 12px 16px; border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .2); font-size: .9rem; }
.app-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.app-toast button { flex: none; border: 0; border-radius: 999px; background: var(--c-primary); color: var(--c-navy); font: 700 .8rem var(--font-body); padding: 6px 12px; cursor: pointer; }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }
.install-app { margin: 1rem 0 0; }
.install-app .btn { display: inline-flex; align-items: center; gap: .5rem; }
.install-ios { margin: 1rem 0 0; font-size: .85rem; opacity: .85; }
/* touch: bigger hit areas, no grey flash, smooth scrolling */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
a, button { -webkit-tap-highlight-color: rgba(59, 58, 94, .12); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (display-mode: standalone) { .skip-link { top: env(safe-area-inset-top); } }
.offline-page { background: #efede5; }
.offline { max-width: 34rem; margin: 12vh auto; padding: 0 20px; text-align: center; }
.offline h1 { margin: 1.5rem 0 .5rem; }
.offline h2 { font-size: 1.3rem; margin: 2rem 0 .5rem; }

/* Our projects: one case per project (side: key facts; main: story and results) */
.pcases { display: grid; gap: 28px; }
.pcase { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); background: #fff; border-radius: 16px; box-shadow: var(--shadow-card); overflow: hidden; }
.pcase__side { background: var(--bg-mid, #f4f2ec); padding: 28px 26px; display: flex; flex-direction: column; gap: 18px; border-right: 1px solid #e7e4dc; }
.pcase__years { align-self: flex-start; margin: 0; background: var(--c-navy); color: #fff; font-weight: 800; font-size: .85rem; letter-spacing: .05em; padding: .35rem .9rem; border-radius: 999px; }
.pcase__amount { margin: 0; font-size: 1.9rem; font-weight: 800; line-height: 1.1; color: var(--c-navy); font-variant-numeric: tabular-nums; }
.pcase__amount small, .pcase__partners small { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #5b5b66; margin-bottom: 4px; }
.pcase__partners ul { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pcase__partners li { display: flex; align-items: center; justify-content: center; height: 52px; min-width: 64px; padding: 6px 12px; background: #fff; border-radius: 8px; border: 1px solid #e4e4ea; }
.pcase__partners img { display: block; max-height: 34px; max-width: 120px; width: auto; height: auto; }
.pcase__funding { background: #fff; border-radius: 10px; padding: 0 14px; border: 1px solid #e4e4ea; }
.pcase__funding summary { cursor: pointer; padding: 11px 0; font-weight: 700; font-size: .88rem; color: var(--c-navy); }
.pcase__funding table { width: 100%; border-collapse: collapse; font-size: .8rem; margin: 0 0 .5rem; }
.pcase__funding th, .pcase__funding td { padding: 5px 3px; border-top: 1px solid var(--c-rule); text-align: left; vertical-align: top; font-weight: 400; }
.pcase__funding tfoot th, .pcase__funding tfoot td { font-weight: 800; border-top: 2px solid var(--c-navy); }
.pcase__funding .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pcase__funding .link-arrow { display: inline-flex; margin: 0 0 12px; font-size: .85rem; }
.pcase__main { padding: 30px 34px 28px; display: flex; flex-direction: column; }
.pcase__title { margin: 0 0 .6rem; color: var(--c-navy); font-size: var(--fs-h3); line-height: 1.25; text-align: left; }
.pcase__desc { margin: 0 0 1.25rem; text-align: left; hyphens: manual; color: #3f3f4a; }
.pcase__res-h { margin: 0 0 .6rem; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--c-red-dk); }
.pcase__results { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 22px; }
.pcase__results li { position: relative; padding-left: 28px; font-size: .93rem; line-height: 1.45; text-align: left; hyphens: manual; }
.pcase__results li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--c-green, #5ab78d);
  -webkit-mask: none; box-shadow: inset 0 0 0 2px var(--c-green, #5ab78d); }
.pcase__results li::after { content: ""; position: absolute; left: 6px; top: 5px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.pcase__more { align-self: flex-start; margin-top: auto; display: inline-flex; align-items: center; gap: .5rem; }
.pcase__more .icon { width: 12px; height: 12px; }
@media (max-width: 991.98px) {
  .pcase { grid-template-columns: minmax(0, 1fr); }
  .pcase__side { border-right: 0; border-bottom: 1px solid #e7e4dc; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px 18px; padding: 22px; }
  .pcase__partners, .pcase__funding { grid-column: 1 / -1; }
  .pcase__amount { text-align: right; font-size: 1.5rem; }
  .pcase__main { padding: 22px; }
  .pcase__results { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 575.98px) {
  .pcase__side { grid-template-columns: 1fr; text-align: center; }
  .pcase__years { align-self: center; justify-self: center; }
  .pcase__amount { text-align: center; }
  .pcase__partners ul { justify-content: center; }
  .pcase__title { font-size: 1.25rem; text-align: center; }
  .pcase__res-h { text-align: center; }
  .pcase__more { align-self: stretch; justify-content: center; }
}
/* donor cards: uniform, logo panel, badge, two clear actions */
.donors { gap: 22px; }
.donor { padding: 0; border: 1px solid #e6e4ee; border-top: 0; border-radius: 14px; overflow: hidden; }
.donor::before { content: ""; display: block; height: 4px; background: var(--c-primary); }
.donor--kind::before { background: var(--c-blue); } .donor--own::before { background: var(--c-red); }
.donor { border-top: 0 !important; }
.donor__logos { margin: 0; height: 92px; min-height: 0; padding: 14px 18px; background: #faf9f6; border-bottom: 1px solid #efede7; justify-content: center; }
.donor__logos img { max-height: 42px; max-width: 120px; }
.donor__amount, .donor__name, .donor__years, .donor__projects { padding: 0 20px; }
.donor__amount { margin-top: 16px; font-size: 1.6rem; }
.donor__amount small { display: inline-block; margin-bottom: 6px; padding: 3px 9px; border-radius: 999px; background: #fdf1dc; color: #8a5a00; font-size: .68rem; }
.donor--kind .donor__amount small { background: #e3f2f7; color: #1f6378; }
.donor--own .donor__amount small { background: #fde7dd; color: #9a3a12; }
.donor__name { font-size: 1rem; min-height: 2.6em; }
.donor__projects { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 16px; }
.donor__projects li { display: inline; } .donor__projects li + li::before { content: " · "; }
.donor__actions { margin: auto 0 0; padding: 12px 20px 16px; border-top: 1px solid #efede7; background: #fff; }
@media (max-width: 575.98px) {
  .donors { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .donor { display: grid; grid-template-columns: 104px minmax(0, 1fr); text-align: left; }
  .donor::before { grid-column: 1 / -1; }
  .donor__logos { grid-row: 2 / span 4; height: auto; flex-direction: column; border-bottom: 0; border-right: 1px solid #efede7; padding: 10px; gap: 8px; }
  .donor__logos img { max-width: 80px; max-height: 30px; }
  .donor__amount, .donor__name, .donor__years, .donor__projects { padding: 0 14px; text-align: left !important; }
  .donor__amount { margin-top: 12px; font-size: 1.3rem; }
  .donor__name { min-height: 0; font-size: .95rem; }
  .donor__projects { margin-bottom: 10px; }
  .donor__actions { grid-column: 1 / -1; padding: 10px 14px 12px; justify-content: space-between !important; }
}
.donor__amount small { display: table; }
.pcase__partners img { height: 34px; max-height: none; width: auto; max-width: 130px; object-fit: contain; }
.donor__logos img { height: 40px; max-height: none; width: auto; object-fit: contain; }
@media (max-width: 575.98px) { .donor__logos img { height: 28px; } }
/* impact dashboard: figures centred in their boxes */
.kpi { text-align: center; display: flex; flex-direction: column; align-items: center; }
.kpi p { text-align: center; }
.pcase__desc { font-size: calc(var(--fs-body) * .9); }
/* donor names: 30% smaller, regular weight */
.donor__name { font-size: .7rem; font-weight: 400; min-height: 0; line-height: 1.4; }
.donor__name a, .donor__link { font-weight: 400; }
@media (max-width: 575.98px) { .donor__name { font-size: .665rem; } }
/* From funding to change: steps centred, like Impact at a glance */
.chain__step { text-align: center; display: flex; flex-direction: column; align-items: center; }
.chain__step h3, .chain__step p { text-align: center; }
/* impact areas: list text and report link 10% smaller */
.impact-area ul li, .impact-area .link-arrow { font-size: calc(var(--fs-body) * .9); }
/* impact areas: title only, centred (no icon, no project line) */
.impact-area header { display: block; text-align: center; margin-bottom: 12px; }
.impact-area h3 { text-align: center; margin: 0; }
/* impact areas: lists and report links another 10% smaller (81% of body text) */
.impact-area ul li, .impact-area .link-arrow { font-size: calc(var(--fs-body) * .81); }
/* key figures on phones: smaller icons and numbers */
@media (max-width: 575.98px) {
  .stat .icon { width: 58px; height: 58px; margin-bottom: .6rem; }
  .stat em { font-size: 2rem; }
  .stats { gap: 28px; }
}
/* phones: the assistant button is a round icon above the tab bar, beside the back-to-top button */
@media (max-width: 767.98px) { .helper__toggle { padding: 6px; } .helper__toggle span { display: none; } .helper__toggle img { width: 44px; height: 44px; margin: 0; box-shadow: none; } }
/* impact stories: smaller "Read the story" buttons */
.impact-card__cta .btn { font-size: .72rem; padding: .5rem 1rem; letter-spacing: .06em; gap: .4rem; }
.impact-card__cta .btn .icon { width: 11px; height: 11px; }
.impact-card__cta .btn { min-height: 38px; min-width: 0; }
/* online reports (annual, project, learning, ECOSOC): running text at the site's body size (18px) */
.report-entry { --fs-report: var(--fs-body); }
.policy-sec .report-entry p, .policy-sec .report-entry li, .report-entry p, .report-entry li, .report-entry dd, .report-entry dt, .report-entry .box p { font-size: var(--fs-report); line-height: var(--lh-body); }
.report-entry table { font-size: calc(var(--fs-report) * .92); }
/* statements of funds: six columns – smaller text, room for the grant names */
.report-entry table.funds { font-size: calc(var(--fs-report) * .85); }
.report-entry table.funds td:first-child, .report-entry table.funds th:first-child { min-width: 10rem; }
.report-entry table.funds th, .report-entry table.funds td { padding: .45rem .45rem; }
.report-entry figcaption, .report-entry .footnote, .report-entry .note, .policy-sec .report-entry :is(p.note, p.footnote, figcaption) { font-size: calc(var(--fs-report) * .88); }
.report-entry blockquote p { font-size: var(--fs-report); }
.report-web-lead { font-size: calc(var(--fs-report) * 1.1) !important; }

/* impact story pages: magazine article style, reading size */
.story-text { --fs-story: clamp(15.5px, 14.9px + .18vw, 16.75px); max-width: 44rem; margin-left: auto; margin-right: auto; }
.story-text p, .story-text li { font-size: var(--fs-story) !important; line-height: 1.75; text-align: left !important; hyphens: manual !important; color: #3a3a44; }
.story-text > p:first-child { font-size: calc(var(--fs-story) * 1.18) !important; line-height: 1.6; color: var(--c-navy); font-weight: 500; }
.story-text ul { padding-left: 0; list-style: none; margin: 1.25rem 0 1.5rem; border-left: 3px solid var(--c-primary); padding: .25rem 0 .25rem 1.25rem; }
.story-text li { position: relative; margin-bottom: .6rem; }
.story-text strong { color: var(--c-navy); }
.story-text .impact-quote { margin: 2rem 0; padding: 1.5rem 1.75rem; background: var(--bg-mid); border-left: 0; border-radius: 12px; position: relative; }
.story-text .impact-quote::before { content: "“"; position: absolute; top: -.35rem; left: 1rem; font-family: Georgia, serif; font-size: 4rem; line-height: 1; color: var(--c-primary); }
.story-text .impact-quote p { font-size: calc(var(--fs-story) * 1.12) !important; font-style: italic; color: var(--c-navy); padding-top: .75rem; }
.story-text .impact-quote cite { font-size: .8rem; }
.story-hero h1 { font-size: clamp(26px, 20px + 1.3vw, 36px); line-height: 1.15; }
.story-hero .hero__lead { font-size: clamp(16px, 15px + .3vw, 19px); }
.story-back { margin-top: 2.5rem; }
.story-text { max-width: 40rem; }
.donor__note { margin: -4px 0 8px; padding: 0 20px; font-size: .72rem; font-weight: 700; color: var(--c-green-dk, #439b73); }
@media (max-width: 575.98px) { .donor__note { padding: 0 14px; text-align: left; } }
/* Our projects: news posts about a project, and anchors that clear the fixed header */
.pcase, .partner-col { scroll-margin-top: calc(var(--header-h) + 24px); }
.pcase__news ul { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: 8px; }
.pcase__news li { font-size: .93rem; line-height: 1.45; }
.pcase__news a { font-weight: 600; }
.pcase__news time { display: block; color: var(--c-text); font-size: .82rem; }
/* Partners page: logos only, on white tiles (a name tile while a logo file is missing) */
.logo-wall { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px; }
.logo-wall + .section__header { margin-top: 3.5rem; }
.logo-tile { display: flex; align-items: center; justify-content: center; height: 120px; padding: 18px 22px; background: #fff;
  border-radius: 12px; box-shadow: var(--shadow-card); scroll-margin-top: calc(var(--header-h) + 24px); }
.logo-tile img { max-height: 72px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.logo-tile--name span { font-weight: 700; font-size: 1.35rem; letter-spacing: .03em; color: var(--c-navy); text-align: center; line-height: 1.15; }
/* A real photo at the top of a page, in place of the illustration: larger than the drawings, and kept on phones */
.hero__image--photo { width: 340px; }
.hero__image--photo img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; box-shadow: var(--shadow-card); }
@media (max-width: 767.98px) {
  .hero__image--photo { display: block; width: 100%; }
  .hero__image--photo img { aspect-ratio: 16 / 9; }
}
/* Our story: a photo between the title and the text of a step */
.timeline__photo { margin: .5rem 0 .875rem; }
.timeline__photo img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; }

/* What we learn from our projects: featured learning report (cover and text) */
.learn-feat { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 40px; align-items: center; }
.learn-feat__cover img { display: block; width: 100%; height: auto; box-shadow: var(--shadow-card); }
.learn-feat h2 { margin-bottom: .75rem; }
@media (max-width: 767.98px) { .learn-feat { grid-template-columns: minmax(0, 1fr); gap: 24px; } .learn-feat__cover { max-width: 340px; } }
/* learning reports online: rating lines and references */
.report-entry p.rating { padding: .75rem 1rem; background: var(--bg-light); border-left: 4px solid var(--c-primary); }
.report-entry ol.refs { font-size: var(--fs-small); }

/* Who we are / À propos: the milestones follow the founding story */
.vm-milestones { margin-top: 64px; }

/* Our projects: one presentation per project (photo, funds, period, donors, results) */
.pshows { display: grid; gap: 40px; }
.pshow { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; align-items: start; background: #fff; border-radius: 16px;
  box-shadow: var(--shadow-card); padding: 28px; scroll-margin-top: 110px; }
.pshow:nth-child(even) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.pshow:nth-child(even) .pshow__side { order: 2; }
.pshow__side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }   /* the picture, then the key facts under it */
.pshow__media { margin: 0; }
.pshow__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; }
.pshow__media--art { background: var(--bg-light); border-radius: 12px; }
.pshow__media--art img.pshow__art { object-fit: contain; padding: 12%; }
.pshow__media--card img { object-fit: cover; }
.pshow__years { margin: 0 0 .35rem; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-primary); }
.pshow__title { margin: 0 0 1rem; font-size: var(--fs-h3); color: var(--c-navy); }
.pshow__facts { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0; margin: 0 0 1rem; border: 1px solid var(--c-rule); border-radius: 10px; }
.pshow__facts > div { padding: .7rem .9rem; }
.pshow__facts > div:first-child { border-right: 1px solid var(--c-rule); }
.pshow__facts > .pshow__funders { grid-column: 1 / -1; border-top: 1px solid var(--c-rule); }
.pshow__facts dt { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); margin-bottom: .2rem; }
.pshow__facts dd { margin: 0; font-weight: 600; color: var(--c-navy); line-height: 1.35; }
.pshow__facts dd.pshow__amount { font-family: var(--font-display); font-size: 1.45rem; color: var(--c-red, #e0631f); white-space: nowrap; }
.pshow__desc { margin: 0 0 1rem; }
.pshow__funding { margin-top: 0; }
.pshow__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 1.25rem 0 0; }
.pshow__actions:empty { display: none; }
@media (max-width: 991.98px) {
  /* one column: picture, title, key facts, story */
  .pshow { display: flex; flex-direction: column; gap: 18px; padding: 20px; }
  .pshow__side, .pshow__main { display: contents; }
  .pshow__head { order: 1; } .pshow__key { order: 2; } .pshow__body { order: 3; }
  .pshow__title { margin-bottom: 0; }
  .pshow__media img { aspect-ratio: 16 / 9; }
  .pshow__media--card img { aspect-ratio: 4 / 3; }   /* a card with text: shown whole */
}
@media (max-width: 575.98px) {
  .pshow__facts { grid-template-columns: 1fr 1fr; }
  .pshow__facts > div:nth-child(2) { border-right: 0; }
  .pshow__facts .pshow__funders { grid-column: 1 / -1; border-top: 1px solid var(--c-rule); }
  .pshow__facts dd.pshow__amount { white-space: normal; font-size: 1.25rem; }
}
/* Our approach and strategy: why corruption matters, one card per reason */
.why-cards-lg { margin-top: 32px; }
.why-card-lg p { margin: 0 0 .6rem; }
.why-card-lg ul { margin: 0 0 .6rem; padding-left: 1.1rem; }
.why-card-lg li { margin-bottom: .2rem; }

/* What we do: initiatives with a highlight, list of projects */
.wwd-ini .card-title a { color: inherit; text-decoration: none; }
.wwd-ini__hl { margin: .25rem 0 1rem; padding: .7rem .9rem; background: var(--bg-light); border-left: 3px solid var(--c-primary); border-radius: 6px; font-size: .9rem; line-height: 1.45; }
.wwd-ini__hl strong { display: block; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-primary); margin-bottom: .2rem; }
.wwd-projs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--c-rule); }
.wwd-projs li { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--c-rule); }
.wwd-proj__years { font-weight: 700; color: var(--c-primary); white-space: nowrap; }
.wwd-proj__name { font-weight: 600; color: var(--c-navy); }
#tools .app-btns { max-width: none; }

/* home page, as on integrityaction.org: the about statement, the app spotlight */
.home-about__h { font-size: 21px; line-height: 1.3; color: var(--c-primary); margin-bottom: 1.25rem; }
.home-app__photo { margin: 0; }
.home-app__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; box-shadow: var(--shadow-card); }
.home-app__also { font-size: .95rem; color: var(--c-muted); }
.home-app__also a { font-weight: 700; }
/* a centred button under a grid of figures or cards keeps its distance from the grid */
.kpis + .rs-center, .st-prins + .rs-center, .rs-figs + .rs-center { margin: 36px 0 0; }
/* Gender and inclusion, as Integrity Action's Gender and social justice page: one column of text */
.incl-text { font-size: 1.05rem; }
.incl-text .incl-goal { margin: 1.75rem 0; }
.incl-list { margin: 0 0 1.5rem; padding-left: 1.25rem; }
.incl-list li { margin-bottom: .6rem; }
.incl-list li::marker { color: var(--c-primary); }
.incl-list strong { color: var(--c-navy); }
/* Research, evaluation and learning: examples of evidence that shaped our projects */
.rs-cases__h { margin: 40px 0 16px; color: var(--c-navy); }
.rs-cases .rs-study__body h3 { margin-top: 0; }

/* Gender equality and social inclusion (GESI) */
.gesi-facts { display: grid; gap: 20px; align-content: start; }
.gesi-whos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.gesi-who { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 22px 20px; border-top: 4px solid var(--c-primary); }
.gesi-who h3 { margin: .75rem 0 .4rem; font-size: 1.05rem; color: var(--c-navy); }
.gesi-who p { margin: 0; font-size: .92rem; line-height: 1.5; }
.gesi-how { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; list-style: none; padding: 0; margin: 0; }
.gesi-done { margin: 28px 0 0; padding-left: 1.2rem; }
.gesi-done li { margin-bottom: .7rem; line-height: 1.55; }
.gesi-done li::marker { color: var(--c-primary); }
.gesi-done strong { color: var(--c-navy); }
@media (max-width: 991.98px) { .gesi-whos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gesi-how { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575.98px) { .gesi-whos { grid-template-columns: minmax(0, 1fr); } }

/* Research, evaluation and learning: research agenda */
.rs-agenda { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.rs-agenda__item { display: flex; flex-direction: column; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 26px 24px; border-top: 4px solid var(--c-primary); }
.rs-agenda__item h3 { margin: .8rem 0 .5rem; color: var(--c-navy); }
.rs-agenda__item p { flex: 1; margin: 0 0 1rem; }
.rs-agenda__item .link-arrow { font-size: .9rem; }
@media (max-width: 991.98px) { .rs-agenda { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .rs-agenda { grid-template-columns: minmax(0, 1fr); } }
/* reports page: filter by type of report */
.reports-filter { padding-top: 32px; padding-bottom: 8px; }
.reports-lib > .reports-group:first-of-type { padding-top: 40px; }
/* Our projects: status of each project (ongoing / completed) and the filter by status */
.pstatus { display: inline-block; margin-left: .5rem; padding: .15rem .6rem; border-radius: 999px; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; vertical-align: middle; }
.pstatus--completed { background: #e6f4ee; color: #1f7a52; }
.pstatus--ongoing { background: #fff1dc; color: #a35a00; }
.pstatus-filter { margin-bottom: 24px; }
.pshows__none { margin: 0 0 24px; padding: 1.25rem 1.5rem; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); border-left: 4px solid var(--c-primary); }
.pshow[hidden], .pshows__none[hidden] { display: none; }
/* compact buttons in the featured study and learning report blocks */
.rs-featured__text p:last-child, .learn-feat p:last-child { display: flex; flex-wrap: wrap; gap: 10px; }
.rs-featured__text .btn, .learn-feat .btn { font-size: 13px; letter-spacing: .05em; padding: 10px 18px; min-height: 0; }
.rs-featured__text .btn .icon, .learn-feat .btn .icon { width: 14px; height: 14px; }


/* impact story: text and a side panel (year, share, support); no drop cap */
.story-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; max-width: 1080px; margin: 0 auto; }
.story-layout .story-text { max-width: none; margin: 0; }
.story-aside { position: sticky; top: 110px; display: grid; gap: 16px; }
.story-aside__card { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 20px 22px; }
.story-aside__label { margin: 0 0 .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); }
.story-aside__year { margin: 0; font-family: var(--font-display); font-size: 2rem; line-height: 1; color: var(--c-primary); }
.story-share { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.story-share a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bg-mid); color: var(--c-navy); }
.story-share a:hover { background: var(--c-primary); color: #fff; }
.story-aside__card--cta { background: var(--c-navy); color: #fff; }
.story-aside__card--cta h3 { margin: 0 0 .4rem; color: #fff; font-size: 1.1rem; }
.story-aside__card--cta p { margin: 0 0 1rem; font-size: .92rem; color: rgba(255, 255, 255, .85); }
.story-aside__btns { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 !important; }
@media (max-width: 991.98px) { .story-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; } .story-aside { position: static; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } }

/* Governance and accountability: one tab at a time, compact sections, a search box over the policies */
.gov-tabs-bar { position: sticky; top: 72px; z-index: 5; background: #fff; box-shadow: 0 6px 16px rgba(0, 0, 0, .05); }
.gov-tabs { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 14px; padding-bottom: 14px; margin: 0 auto; }
.gov-panel[hidden], .doc-tile[hidden] { display: none; }
.gov-panel .section { padding: 48px 0; }
.gov-search { padding-top: 28px; }
.doc-search { width: 100%; max-width: 32rem; padding: .75rem 1rem .75rem 2.5rem; border: 1px solid var(--c-rule); border-radius: 999px; font: inherit; font-size: .95rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='5' fill='none' stroke='%23999' stroke-width='1.6'/%3E%3Cpath d='M11 11l3.5 3.5' stroke='%23999' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat 1rem 50% / 16px; }
.doc-search:focus { outline: 2px solid var(--c-primary); outline-offset: 2px; }
.doc-search__none { margin: 1rem 0 0; color: var(--c-muted); }
@media (max-width: 991.98px) { .gov-tabs-bar { top: 64px; } .gov-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; } .gov-tabs button { flex: none; } }
.gov-panel section[hidden] { display: none; }
.doc-search:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(240, 165, 0, .2); }
.toc-step-card details summary { cursor: pointer; font-weight: 700; color: var(--c-primary); margin-top: .5rem; list-style: none; display: inline-flex; gap: .35rem; align-items: center; }

/* Media: magazine, radio show and press coverage in tabs */
.media-stats { display: flex; flex-wrap: wrap; gap: 10px 28px; list-style: none; padding: 0; margin: 1.25rem 0 0; }
.media-stats li { display: flex; align-items: baseline; gap: .4rem; }
.media-stats strong { font-family: var(--font-display); font-size: 1.6rem; color: var(--c-primary); }
.media-stats span { font-size: .9rem; color: var(--c-muted); }
.media-lib .reports-section .docs-intro { max-width: 52rem; margin-bottom: 1.5rem; }
.media-contact { text-align: center; }

/* Partner with us: one tab per kind of partner, what support funds, track record */
.sup-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.sup-panel .function-icon { margin-bottom: 1rem; }
.sup-panel__card { background: var(--c-light, #f6f5f2); padding: 2rem; border-radius: 6px; }
.sup-list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .85rem; }
.sup-list li { display: flex; gap: .65rem; align-items: flex-start; }
.sup-list .icon { flex: none; width: 18px; height: 18px; margin-top: .2rem; color: var(--c-primary); }
.sup-panel__links { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; }
.sup-funds { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.sup-fund { color: var(--c-text); text-decoration: none; transition: box-shadow .2s, transform .2s; }
.sup-fund:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); color: var(--c-text); }
.sup-trust-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sup-trust-item { color: var(--c-text); text-decoration: none; }
.step-cards--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991.98px) { .sup-panel, .sup-trust-row, .step-cards--3 { grid-template-columns: 1fr; } .sup-funds { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .sup-funds { grid-template-columns: 1fr; } }

/* Reports: filters by year, category, project and donor */
.rep-filters-bar { position: sticky; top: 72px; z-index: 5; background: #fff; box-shadow: 0 6px 16px rgba(0, 0, 0, .05); }
.rep-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; padding-top: 14px; padding-bottom: 14px; }
.rep-filter { display: flex; flex-direction: column; gap: 4px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); margin: 0; }
.rep-filter select { min-width: 170px; padding: .55rem 2rem .55rem .8rem; border: 1px solid var(--c-rule); border-radius: 8px; font: inherit; font-size: .92rem; font-weight: 400;
  letter-spacing: 0; text-transform: none; color: var(--c-text); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23999' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right .7rem center / 12px; appearance: none; }
.rep-filter select:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(236, 163, 39, .2); }
.rep-reset { padding: 9px 16px; }
.rep-count { margin: 0 0 0 auto; align-self: center; font-size: .9rem; color: var(--c-muted); }
.rep-none { padding: 2rem 0 0; color: var(--c-muted); }
.rep-lib [data-cat][hidden], .rep-lib .reports-group[hidden] { display: none; }
@media (max-width: 991.98px) { .rep-filters-bar { position: static; } .rep-filter { flex: 1 1 45%; } .rep-filter select { min-width: 0; width: 100%; } .rep-count { margin-left: 0; } }
@media (min-width: 992px) { .rep-filters { flex-wrap: nowrap; } .rep-filter select { width: 210px; min-width: 0; text-overflow: ellipsis; } }

/* About: short introduction, tabs, compact milestones */
.about-intro { display: grid; grid-template-columns: 3fr 2fr; gap: 48px; align-items: center; }
.about-intro .vm-quote { margin: 0; }
.ms-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ms-year { background: #fff; box-shadow: var(--shadow-card); border-top: 4px solid var(--c-primary); padding: 1.5rem 1.5rem .5rem; }
.ms-year h3 { font-size: 1.6rem; margin: 0 0 1rem; }
.ms-year ul { list-style: none; margin: 0; padding: 0; }
.ms-year li { padding: 0 0 1rem 1rem; border-left: 2px solid var(--c-rule); margin-left: .25rem; position: relative; }
.ms-year li::before { content: ""; position: absolute; left: -6px; top: .35rem; width: 10px; height: 10px; border-radius: 50%; background: var(--c-rule); }
.ms-year li.ms-key::before { background: var(--c-primary); }
.ms-date { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-muted); }
.ms-year h4 { font-size: 1rem; margin: .2rem 0 .3rem; color: var(--c-navy); }
.ms-year p { font-size: .9rem; margin: 0; }
.about-more { margin-top: 2rem; }
@media (max-width: 991.98px) { .about-intro, .ms-grid { grid-template-columns: 1fr; gap: 24px; } }
.ms-grid { align-items: start; }

/* Page tabs: underline tabs with a sliding indicator (replaces the pills) */
.gov-tabs { position: relative; flex-wrap: nowrap; gap: 4px; overflow-x: auto; scrollbar-width: none; padding-top: 0; padding-bottom: 0; margin-bottom: 0; }
.gov-tabs::-webkit-scrollbar { display: none; }
.gov-tabs button { flex: none; position: relative; border-radius: 0; padding: 18px 18px 16px; font: 700 14.5px/1.2 var(--font-body); letter-spacing: .01em; color: #5b5b66; background: transparent; transition: color .2s; }
.gov-tabs button:hover, .gov-tabs button.is-active { background: transparent; color: var(--c-navy); }
.gov-tabs button.is-active { color: var(--c-primary-dk); }
.gov-tabs button:focus-visible { outline: 2px solid var(--c-primary); outline-offset: -4px; border-radius: 6px; }
.tab-ink { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; border-radius: 3px 3px 0 0; background: var(--c-primary); transition: transform .3s cubic-bezier(.4, 0, .2, 1), width .3s cubic-bezier(.4, 0, .2, 1); pointer-events: none; }
.gov-tabs-bar { border-bottom: 1px solid var(--c-rule); box-shadow: 0 8px 18px rgba(20, 20, 50, .04); }
.gov-panel:not([hidden]) { animation: panel-in .35s ease both; }
@keyframes panel-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gov-panel:not([hidden]) { animation: none; } .tab-ink { transition: none; } }

/* Filter chips: the number of items each one shows */
.chip-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; margin-left: 8px; padding: 0 6px; border-radius: 10px;
  font-size: 12px; font-weight: 700; background: rgba(65, 65, 65, .08); color: inherit; }
.rs-filter button.is-active .chip-count { background: rgba(255, 255, 255, .28); }

/* "On this page": sticky section navigator with the section being read highlighted and a reading progress line */
.page-nav { position: sticky; top: 72px; z-index: 5; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--c-rule); transition: box-shadow .2s; }
.page-nav.is-stuck { box-shadow: 0 8px 18px rgba(20, 20, 50, .06); }
.page-nav__inner { display: flex; align-items: center; gap: 18px; }
.page-nav__label { flex: none; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.page-nav__list { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; scroll-behavior: smooth; }
.page-nav__list::-webkit-scrollbar { display: none; }
.page-nav__list a { display: block; white-space: nowrap; padding: 16px 14px 14px; font: 600 14px/1.2 var(--font-body); color: #5b5b66; text-decoration: none; border-bottom: 3px solid transparent; transition: color .2s, border-color .2s; }
.page-nav__list a:hover { color: var(--c-navy); }
.page-nav__list a.is-active { color: var(--c-primary-dk); border-bottom-color: var(--c-primary); }
.page-nav__progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--c-primary); transform: scaleX(0); transform-origin: 0 50%; opacity: .55; }
main section[id] { scroll-margin-top: 140px; }
@media (max-width: 991.98px) { .page-nav { top: 64px; } .page-nav__label { display: none; } .page-nav__list a { padding: 13px 12px 11px; font-size: 13.5px; } }
.page-nav__list a { max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
.gov-tabs-bar, .rep-filters-bar, .page-nav { top: var(--hdr, 72px); }
@media (max-width: 991.98px) { .gov-tabs-bar, .page-nav { top: var(--hdr, 64px); } }
.gov-tabs button:focus-visible { outline-offset: -8px; }

/* Media: the magazines two per row, each a card with a large cover */
.media-lib .reports { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.media-lib .report { align-items: stretch; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.media-lib .report:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }
.media-lib .report__image { width: 46%; margin: 0; background: var(--bg-mid, #f1efe9); display: flex; align-items: center; justify-content: center; }
.media-lib .report__image img { width: 100%; height: 100%; object-fit: cover; box-shadow: none; }
.media-lib .report:not(.report--mag) .report__image img { width: 62%; height: auto; object-fit: contain; }
.media-lib .report__text { flex: 1; min-width: 0; padding: 22px 22px 20px; display: flex; flex-direction: column; align-items: flex-start; }
.media-lib .report__title { font-size: 1.15rem; line-height: 1.2; }
.media-lib .report__lead { font-size: .9rem; line-height: 1.45; color: var(--c-text); margin: 0 0 .9rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.media-lib .report__btns { margin-top: auto; }
.media-lib .report__btns .btn { padding: 9px 16px; font-size: 12.5px; }
@media (max-width: 991.98px) { .media-lib .reports { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .media-lib .report { flex-direction: column; } .media-lib .report__image { width: 100%; aspect-ratio: 1123 / 794; } .media-lib .report:not(.report--mag) .report__image { aspect-ratio: auto; padding: 20px 0; } }
/* the covers are landscape (A4 spread): show them whole, on top of each card */
.media-lib .report { flex-direction: column; }
.media-lib .report__image, .media-lib .report:not(.report--mag) .report__image { width: 100%; aspect-ratio: 1123 / 794; padding: 0; }
.media-lib .report__image img { width: 100%; height: 100%; object-fit: contain; }
.media-lib .report:not(.report--mag) .report__image img { width: auto; height: 78%; }
.media-lib .report__text { padding: 20px 24px 22px; }
@media (min-width: 992px) { .media-lib .report__lead { -webkit-line-clamp: 2; } }
/* issues without a digital edition: a cover block in the magazine's colours */
.media-lib .report__image.mag-ph { position: relative; flex-direction: column; align-items: flex-start; justify-content: center; gap: .4rem; padding: 0 9%; background: var(--c-navy); color: #fff; }
.mag-ph img { position: absolute; top: 9%; left: 9%; width: 26%; height: auto !important; }
.mag-ph span { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; line-height: 1.15; max-width: 60%; }
.mag-ph b { font-family: var(--font-display); font-size: 2.2rem; line-height: 1; color: var(--c-primary); }
.mag-ph i { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(90deg, #eca327 0 20%, #ee7b42 20% 40%, #3a94b2 40% 60%, #5bb48b 60% 80%, #b067b8 80%); }
.media-lib .report__image.mag-ph img { position: absolute; top: 10%; left: 9%; width: 24% !important; height: auto !important; }
.media-lib .report__image.mag-ph { justify-content: flex-end; padding-bottom: 12%; }
.media-lib .report .report__image.mag-ph { padding: 0 9% 10%; }

/* rich page tabs (Media): icon, name and count; the chosen one lit in the brand colour */
.gov-tabs--rich { gap: 8px; padding-top: 10px; padding-bottom: 10px; }
.gov-tabs--rich button.tabx { display: flex; align-items: center; gap: 12px; padding: 10px 22px 10px 12px; border-radius: 12px; text-align: left; transition: background .2s, color .2s, box-shadow .2s; }
.gov-tabs--rich button.tabx:hover { background: var(--bg-mid, #f1efe9); }
.gov-tabs--rich button.tabx.is-active { background: #fff6e6; color: var(--c-navy); box-shadow: inset 0 0 0 1px rgba(236, 163, 39, .45); }
.tabx__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bg-mid, #f1efe9); color: var(--c-navy); transition: background .2s, color .2s; }
.tabx__icon .icon { width: 20px; height: 20px; }
.tabx.is-active .tabx__icon { background: var(--c-primary); color: #fff; }
.tabx__text { display: flex; flex-direction: column; line-height: 1.2; }
.tabx__text b { font-size: 15px; font-weight: 700; }
.tabx__text small { font-size: 12.5px; font-weight: 500; color: var(--c-muted); margin-top: 2px; }
.gov-tabs--rich .tab-ink { display: none; }
@media (max-width: 575.98px) { .gov-tabs--rich button.tabx { padding: 8px 14px 8px 8px; gap: 8px; } .tabx__icon { width: 32px; height: 32px; } .tabx__text b { font-size: 14px; } }
@media (max-width: 575.98px) { .gov-tabs--rich { gap: 4px; } .gov-tabs--rich button.tabx { flex: 1 1 0; min-width: 0; flex-direction: column; gap: 4px; padding: 8px 4px; text-align: center; } .tabx__text small { display: none; } .tabx__text b { font-size: 12.5px; white-space: normal; } }

/* Reports: categories as rich tabs, year / project / donor as dropdowns underneath */
.rep-cats { padding-bottom: 6px !important; }
.rep-filters-bar .rep-filters { padding-top: 6px; }
@media (max-width: 991.98px) { .rep-filters-bar .rep-filter { flex: 1 1 0; } }
@media (max-width: 575.98px) {
  .rep-filters-bar .rep-filters { flex-wrap: nowrap; gap: 6px; padding-bottom: 10px; }
  .rep-filters-bar .rep-filter { flex: 1 1 0; min-width: 0; }
  .rep-filters-bar .rep-filter > span { display: none; }
  .rep-filters-bar .rep-filter select { width: 100%; font-size: 12.5px; padding: .5rem 1.4rem .5rem .55rem; background-position: right .45rem center; }
  .rep-filters-bar .rep-reset { flex: none; padding: 8px 10px; font-size: 11px; }
  .rep-filters-bar .rep-count { display: none; }
}
/* rich tabs on phones: one row; equal widths when they fit, otherwise the row scrolls */
@media (max-width: 575.98px) {
  .gov-tabs--rich { flex-wrap: nowrap; overflow-x: auto; }
  .gov-tabs--rich button.tabx { flex: 1 0 74px; }
}

/* filter chips inside a page: a segmented control */
.rs-filter:not(.gov-tabs) { display: inline-flex; max-width: 100%; gap: 2px; padding: 4px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--c-rule); scrollbar-width: none; }
.rs-filter:not(.gov-tabs)::-webkit-scrollbar { display: none; }
.rs-filter:not(.gov-tabs) button { padding: 8px 16px; font-size: 14px; transition: background .2s, color .2s; }
.rs-filter:not(.gov-tabs) button:hover { background: var(--bg-mid, #f1efe9); color: var(--c-navy); }
.rs-filter:not(.gov-tabs) button.is-active { background: var(--c-primary); color: #fff; box-shadow: 0 2px 6px rgba(236, 163, 39, .35); }
@media (max-width: 575.98px) { .rs-filter:not(.gov-tabs) button { padding: 7px 12px; font-size: 13px; } }
.gov-tabs--rich button.tabx { border: 0; background: transparent; cursor: pointer; font-family: var(--font-body); color: #5b5b66; }
.gov-tabs--rich button.tabx.is-active { background: #fff6e6; }
.rep-filters-bar .rep-reset.btn { min-width: 0; }
@media (max-width: 575.98px) {
  .gov-tabs--rich button.tabx { flex: 0 0 auto; min-width: 70px; padding: 8px 8px; }
  .tabx__text b { font-size: 12px; white-space: nowrap; }
  .rep-filters-bar .rep-reset.btn { padding: 8px 10px; font-size: 10.5px; letter-spacing: .03em; }
}
.media-lib .report__image.mag-ph { background-size: cover; background-position: center; }

/* Strategy 2027–2030: the problems we tackle, and the fifth area of work */
.st-ctx { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.st-ctx__item { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 26px 24px; }
.st-ctx__item .function-icon { margin-bottom: 14px; }
.st-ctx__item h3 { color: var(--c-navy); font-size: 1.1rem; margin-bottom: .5rem; }
.st-ctx__item p { font-size: .95rem; margin: 0; }
.st-axis--purple { border-top-color: var(--c-purple); }
@media (max-width: 991.98px) { .st-ctx { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .st-ctx { grid-template-columns: 1fr; } }
.st-axes > .st-axis:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (min-width: 992px) { .st-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rs-lib .rs-studies { margin-top: 28px; } .rs-study[hidden] { display: none; }
.rs-lib .gov-tabs-bar { position: static; }

/* hero key figures: no reliance on flex gap (older phone browsers); on phones, three columns, number above label */
.media-stats { gap: 0; margin-left: -14px; margin-right: -14px; }
.media-stats li { margin: 6px 14px; }
.media-stats strong { margin-right: .15rem; line-height: 1.1; }
@media (max-width: 575.98px) {
  .media-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0 0; }
  .media-stats li { display: block; margin: 0; padding: 10px 8px 0 0; }
  .media-stats li + li { padding-left: 10px; border-left: 1px solid var(--c-rule); }
  .media-stats strong { display: block; margin: 0 0 2px; font-size: 1.45rem; }
  .media-stats span { display: block; font-size: .78rem; line-height: 1.3; }
}

/* Our projects: status tabs inside the section (not sticky) */
.pshows-lib .gov-tabs-bar { position: static; background: transparent; box-shadow: none; border: 0; margin: 0 0 24px; }
.pshows-lib .gov-tabs--rich { padding-top: 0; padding-bottom: 0; }

/* key figures bands (.stats) on phones: three compact columns instead of a tall stack */
@media (max-width: 575.98px) {
  .stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .stat .icon { width: 36px; height: 36px; margin-bottom: .4rem; }
  .stat em { font-size: 1.25rem; margin-bottom: .2rem; overflow-wrap: anywhere; }
  .stat p { font-size: .75rem; line-height: 1.35; margin: 0; }
}

@media (max-width: 575.98px) {
  .stat em { overflow-wrap: normal; }
  /* the total in US$ is too long for a third of a phone: it takes the first row */
  .stats--money { grid-template-columns: 1fr 1fr; row-gap: 18px; }
  .stats--money .stat:nth-child(2) { grid-column: 1 / -1; order: -1; }
  .stats--money .stat:nth-child(2) em { font-size: 1.6rem; }
  /* rich tabs on phones keep their count, on a second line */
  .gov-tabs--rich .tabx__text small { display: block; font-size: 10.5px; margin-top: 1px; }
}

/* Our projects on phones: every sentence starts from the same left edge */
@media (max-width: 991.98px) {
  .projects-page-hero h1, .projects-page-hero .hero__lead { text-align: left; }
  .projects-page-hero .breadcrumb { justify-content: flex-start; }
}
@media (max-width: 575.98px) {
  .stats--money { text-align: left; }
  .stats--money .stat .icon { display: block; }
  .recon__h { text-align: left; }
  .tech-partner { text-align: left; }
  .tech-partner__logo { justify-content: flex-start; margin-left: 0; }
}
@media (max-width: 991.98px) { .tech-partner p, .tech-partner h3, .tech-partner { text-align: left; } }

/* step cards: the number and the title on the same row, the text underneath */
.toc-step-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; }
.toc-step-card > .toc-step__num { margin: 0; flex: none; }
.toc-step-card > h3 { margin: 0; }
.toc-step-card > :not(.toc-step__num):not(h3) { grid-column: 1 / -1; }
.toc-step-card > h3 + * { margin-top: 1rem; }
.toc-step-card { align-content: start; }

/* phones: multi-line texts start from the left edge, like the rest of the page (cards, figures, quotes, calls to action) */
@media (max-width: 575.98px) {
  .kpis .kpi, .kpi p, .st-prin, .st-prin p, .st-prin h3, .chain__step, .chain__step p, .vm-tile, .vm-tile p, .vm-tile h3,
  .sup-fund, .sup-fund p, .sup-fund h3, .impact-partner__inner, .impact-partner__inner p, .impact-partner__inner h2,
  .sup-cta, .sup-cta p, .sup-cta h2, .stat, .stat p, .brief p, .rs-fig, .rs-fig p, .hero__content .hero__lead,
  .act-quote blockquote, .act-quote p, .stats--figures .stat { text-align: left; }
  .kpi__icon, .st-prin .area-tile__icon, .vm-tile .area-tile__icon, .sup-fund .area-tile__icon, .stat .icon { margin-left: 0; margin-right: auto; }
  .impact-partner__cta, .sup-cta .sup-actions, .hero__content .hero__cta, .hero__content .hero__btns { justify-content: flex-start; }
}
@media (max-width: 575.98px) { .mag-box--pdf, .mag-box--pdf p { text-align: left; } }
@media (max-width: 575.98px) { .kpi .kpi__n, .kpi b, .chain__step .chain__num, .stat em { text-align: left; margin-left: 0; justify-content: flex-start; } .kpi { align-items: flex-start; } }
@media (max-width: 575.98px) {
  .chain__step { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; align-content: start; }
  .chain__step .chain__num { justify-content: center; text-align: center; margin: 0; }
  .chain__step h3 { margin: 0; text-align: left; }
  .chain__step > :not(.chain__num):not(h3) { grid-column: 1 / -1; margin-top: .6rem; }
}
.toc-step__text { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; align-content: start; }
.toc-step__text > .toc-step__num { margin: 0; }
.toc-step__text > h3 { margin: 0; }
.toc-step__text > :not(.toc-step__num):not(h3) { grid-column: 1 / -1; }
.toc-step__text > h3 + * { margin-top: 1rem; }

/* Home page: short sections and a call to support CERC */
.home-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 1.5rem; }
.home-projs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.home-proj { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); border-top: 4px solid var(--c-primary); padding: 22px 24px; display: flex; flex-direction: column; }
.home-proj__years { font-size: .8rem; font-weight: 700; letter-spacing: .06em; color: var(--c-muted); margin: 0 0 .4rem; }
.home-proj h3 { color: var(--c-navy); font-size: 1.1rem; margin: 0 0 .6rem; }
.home-proj__donors { font-size: .9rem; margin: 0 0 1rem; }
.home-proj__amount { margin: auto 0 0; font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; color: var(--c-primary-dk); }
.home-stories { margin-top: 48px; }
.home-acts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.home-act { display: flex; flex-direction: column; background: #fff; border-radius: 12px; padding: 26px 24px; color: var(--c-text); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.home-act:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0, 0, 0, .25); color: var(--c-text); }
.home-act h3 { color: var(--c-navy); margin: .8rem 0 .4rem; }
.home-act p { margin: 0 0 1rem; }
.home-act .link-arrow { margin-top: auto; }
@media (max-width: 991.98px) { .home-projs, .home-acts { grid-template-columns: 1fr; } }
/* impact story aside: Donate and Partner with us side by side, on computers and phones */
.story-aside__btns { display: flex; flex-wrap: nowrap; gap: 8px; }
.story-aside__btns .btn { flex: 1 1 0; min-width: 0; justify-content: center; text-align: center; padding: 10px 10px; font-size: 12.5px; letter-spacing: .04em; white-space: nowrap; }
.home-act p { color: var(--c-text); } .home-act h3 { color: var(--c-navy); }
@media (max-width: 575.98px) {
  .home-acts { gap: 14px; }
  .home-act { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; padding: 18px; }
  .home-act .function-icon { grid-row: span 3; width: 46px; height: 46px; }
  .home-act h3 { margin: 0 0 .25rem; }
  .home-act p { margin: 0 0 .5rem; font-size: .92rem; }
}
@media (max-width: 575.98px) {
  .gesi-whos { gap: 12px; }
  .gesi-who { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 16px; }
  .gesi-who .area-tile__icon { grid-row: span 2; width: 44px; height: 44px; margin: 0; }
  .gesi-who .area-tile__icon .icon { width: 20px; height: 20px; }
  .gesi-who h3 { margin: 0 0 .2rem; font-size: 1rem; }
  .gesi-who p { margin: 0; font-size: .9rem; }
}

/* icon and title on the same row: key facts, problem cards, principles (strategy, approach, research, home) */
.st-fact { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; align-content: start; }
.st-fact > .icon { margin: 0; }
.st-fact > .st-fact__n { margin: 0 !important; }
.st-fact > p:not(.st-fact__n) { grid-column: 1 / -1; }
.st-fact > .st-fact__n + p { margin-top: 10px !important; }
.st-ctx__item { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; align-content: start; }
.st-ctx__item > .function-icon { margin: 0; }
.st-ctx__item > h3 { margin: 0; }
.st-ctx__item > p { grid-column: 1 / -1; margin-top: .8rem !important; }
.st-prin { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; align-content: start; text-align: left; }
.st-prin > .area-tile__icon { margin: 0; }
.st-prin > h3 { margin: 0; text-align: left; }
.st-prin > p { grid-column: 1 / -1; margin-top: .7rem; text-align: left; }
/* phases: the period and the place on the same line, the text underneath */
.st-phase { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; align-content: start; }
.st-phase > .st-phase__when { margin: 0; }
.st-phase > h3 { margin: 0; }
.st-phase > p:not(.st-phase__when) { grid-column: 1 / -1; margin-top: .7rem; }
/* principles: a smaller icon so short titles (e.g. "Build and support") stay on one line */
.st-prin > .area-tile__icon { width: 40px; height: 40px; flex: none; }
.st-prin > .area-tile__icon .icon { width: 19px; height: 19px; }
.st-prin { column-gap: 10px; }
.st-prin > h3 { font-size: 1.05rem; line-height: 1.2; }
/* key facts: the figure in a short title next to the icon, then the sentence that explains it, then the source */
.st-fact > .st-fact__h { margin: 0; font-size: 1.3rem; line-height: 1.2; color: var(--c-navy); }
.st-fact > .st-fact__h + p { margin-top: 10px !important; }
/* figure cards (impact, what we do): the icon and the figure on one row as the title, then the sentence */
.kpi { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; align-content: start; text-align: left; }
.kpi > .kpi__icon { margin: 0; }
.kpi > .kpi__n { margin: 0; text-align: left; }
.kpi > p { grid-column: 1 / -1; margin-top: .6rem; text-align: left; }
/* phones: the icon and the title of each principle centred in the card */
@media (max-width: 575.98px) {
  .st-prin { grid-template-columns: 1fr auto auto 1fr; }
  .st-prin > .area-tile__icon { grid-column: 2; }
  .st-prin > h3 { grid-column: 3; }
  .st-prin > p { grid-column: 1 / -1; }
}

/* research page: agenda cards with icon and title on one row; studies and examples with the year next to the title on phones */
.rs-agenda__item { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; align-content: start; }
.rs-agenda__item > .area-tile__icon { margin: 0; }
.rs-agenda__item > h3 { margin: 0; }
.rs-agenda__item > p, .rs-agenda__item > .link-arrow { grid-column: 1 / -1; }
.rs-agenda__item > p { margin-top: .8rem; }
.impact-hero__cta { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 575.98px) {
  .rs-study { grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; row-gap: 0; align-items: center; }
  .rs-study__body { display: contents; }
  .rs-study__year { font-size: 1.35rem; }
  .rs-study__body > :first-child { margin: 0; }
  .rs-study__body > :not(:first-child) { grid-column: 1 / -1; }
  .rs-study__body > :nth-child(2) { margin-top: .6rem; }
  .impact-hero__cta .btn { flex: 1 1 0; min-width: 0; justify-content: center; padding-left: 12px; padding-right: 12px; }
}
@media (min-width: 576px) and (max-width: 1199.98px) { .st-prins { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* figure cards: the figure in a short title */
.kpi > .kpi__n { font-size: 1.3rem; line-height: 1.2; font-weight: 800; color: var(--c-navy); }
/* listing pages: the section after the featured article starts just below it */
.after-overlap { padding-top: 122px; }
.after-overlap > .container > h2:first-child { margin-top: 0; }
@media (max-width: 575.98px) { .after-overlap { padding-top: 112px; } }

/* the forms of the logo, each on its own card */
.logo-forms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 1.5rem 0 2rem; }
.logo-form { margin: 0; border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-card); background: #fff; }
.logo-form__img { height: 170px; display: flex; align-items: center; justify-content: center; padding: 24px; }
.logo-form__img img { max-width: 100%; max-height: 100%; width: auto; height: auto; margin: 0 !important; box-shadow: none !important; }
.logo-form--icon .logo-form__img img { height: 110px; }
.logo-form--l .logo-form__img { background: #f7f3ec; }
.logo-form--d .logo-form__img { background: var(--c-navy); }
.logo-form--w .logo-form__img { background: #fff; border-bottom: 1px solid var(--c-rule); }
.logo-form figcaption { padding: 12px 16px 14px; font-size: .9rem; color: var(--c-text); text-align: left; }
.logo-form figcaption strong { display: block; color: var(--c-navy); font-size: 1rem; margin-bottom: 2px; }
@media (max-width: 575.98px) { .logo-forms { grid-template-columns: 1fr; } .logo-form__img { height: 140px; } }

/* category tag on articles: small */
.article .tags .tag { padding: 4px 10px; font-size: 11px; letter-spacing: .06em; line-height: 1.3; }
/* blog page: the categories as small tags */
.badges { gap: 8px; }
.badges .badge { padding: 5px 12px; font-size: 11.5px; letter-spacing: .06em; border-radius: 999px; }
.hero--overlap { position: relative; z-index: 2; }
/* old logo → new logo */
.logo-compare { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 14px; margin: 1.5rem 0 2rem; }
.logo-compare .logo-form__img { height: 200px; }
.logo-compare__arrow { font-size: 2rem; font-weight: 700; color: var(--c-primary); }
@media (max-width: 575.98px) { .logo-compare { grid-template-columns: 1fr; } .logo-compare__arrow { justify-self: center; transform: rotate(90deg); } .logo-compare .logo-form__img { height: 160px; } }
/* milestones: three condensed columns, the years of a column in one card */
.ms-col { background: #fff; box-shadow: var(--shadow-card); border-top: 4px solid var(--c-primary); padding: 1.5rem 1.5rem .5rem; align-self: start; }
.ms-col .ms-year { background: none; box-shadow: none; border-top: 0; padding: 0; }
.ms-col .ms-year + .ms-year { margin-top: .5rem; padding-top: 1rem; border-top: 1px solid var(--c-rule); }
/* blog filters */
.news-lib > .container:first-child h2 { margin-bottom: 1rem; }
.news-filters-bar { margin: 0 0 1.5rem; }
.news-lib .hcards > [hidden] { display: none; }
.news-more-wrap { margin: 1.5rem 0 0; }
.news-more[hidden], .news-lib .pagination[hidden] { display: none; }
/* site map page */
.sitemap-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px 40px; align-items: start; }
.sitemap-sec h2 { font-size: 1.2rem; margin: 0 0 .75rem; padding-bottom: .5rem; border-bottom: 3px solid var(--c-primary); color: var(--c-navy); }
.sitemap-sec h2 small { font-size: .8rem; font-weight: 600; color: var(--c-muted); }
.sitemap-sec ul { list-style: none; margin: 0; padding: 0; }
.sitemap-sec li { padding: .35rem 0; border-bottom: 1px solid var(--c-rule); font-size: .95rem; line-height: 1.4; }
.sitemap-sec li time { display: block; font-size: .78rem; color: var(--c-muted); }
.sitemap-sec--wide { grid-column: 1 / -1; }
.sitemap-sec--wide ul { columns: 2 320px; column-gap: 40px; }
.sitemap-sec--wide li { break-inside: avoid; }
/* offer of the page in the visitor's browser language */
.lang-offer { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; max-width: 560px; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px 18px; background: var(--c-navy); color: #fff;
  border-radius: 14px; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }
.lang-offer p { flex: 1 1 220px; margin: 0; font-size: .95rem; }
.lang-offer .btn { padding: 9px 18px; }
.lang-offer__close { background: none; border: 0; color: rgba(255, 255, 255, .8); font: inherit; font-size: .85rem; text-decoration: underline; cursor: pointer; padding: 6px 2px; }
.lang-offer__close:hover { color: #fff; }
@media (max-width: 991.98px) { .lang-offer { bottom: 84px; } }  /* above the app tab bar on phones */

/* home page: the lead sentence in orange, everywhere; centred on phones (an exception to the phone rule above) */
.hero--hp .hero__lead { color: var(--c-primary); }
@media (max-width: 575.98px) { .hero--hp .hero__content .hero__lead { text-align: center; } }


/* brand kit page */
.brand-h { font-size: var(--fs-h3); color: var(--c-navy); margin: 2.5rem 0 .75rem; }
.brand-h:first-child { margin-top: 0; }
.brand-p { max-width: 46rem; margin: 0 0 1.25rem; }
.brand-dls { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; }
.brand-dl { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; border-radius: .625rem; background: var(--c-navy); color: #fff; text-decoration: none; }
.brand-dl:hover, .brand-dl:focus-visible { background: var(--c-navy-dk); color: #fff; }
.brand-dl .icon { flex: none; width: 28px; height: 28px; color: var(--c-primary); }
.brand-dl strong { display: block; font-family: var(--font-display); font-size: var(--fs-h5, 1.2rem); }
.brand-dl small { display: block; margin-top: .2rem; font-size: var(--fs-small); line-height: 1.35; color: rgba(255,255,255,.85); }
.brand-forms { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.brand-form { margin: 0; border: 1px solid var(--c-rule); border-radius: .625rem; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.brand-form__img { display: flex; align-items: center; justify-content: center; height: 9rem; padding: 1.25rem; background: #fff; border-bottom: 1px solid var(--c-rule); }
.brand-form--dark .brand-form__img { background: var(--c-navy); }
.brand-form__img img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.brand-form figcaption { display: grid; grid-template-columns: 1fr auto; gap: .2rem .75rem; padding: .85rem 1rem; font-size: var(--fs-small); line-height: 1.35; }
.brand-form figcaption strong { color: var(--c-navy); }
.brand-form figcaption span { grid-column: 1; color: var(--c-muted); }
.brand-form figcaption a { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-weight: 700; color: var(--c-navy); }
.brand-forms--apps .brand-form__img { height: 6rem; }
.brand-cols { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: .75rem; }
.brand-cols li { display: grid; gap: .15rem; font-size: var(--fs-small); }
.brand-cols li span { height: 4.5rem; border-radius: .5rem; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); margin-bottom: .35rem; }
.brand-cols strong { color: var(--c-navy); }
.brand-contact { margin-top: 2.5rem; }

/* footer: smaller menus; the brand kit in the bottom bar */
.footer__brand { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .85rem; border: 1px solid rgba(255,255,255,.45); border-radius: 99px;
  font-size: var(--fs-small); font-weight: 700 !important; color: #fff; }
.footer__brand:hover, .footer__brand:focus-visible { border-color: var(--c-primary); text-decoration: none !important; }
.footer__brand .icon { width: 15px; height: 15px; color: var(--c-primary); }

/* Strategy 2027–2030: the sixth area (navy), theory of change, success boxes */
.st-axis--navy { border-top-color: var(--c-navy); } .c-navy { color: var(--c-navy) !important; }
.st-cols + .st-cols { margin-top: 24px; }
.st-box h3 + p { margin-top: 0; }
.st-box ul + h3 { margin-top: 1.25rem; }
.st-toc__h { font-size: var(--fs-h4, 1.35rem); color: var(--c-navy); margin: 2rem 0 1rem; }
.st-toc__blocks, .st-toc__changes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: st; }
.st-toc__blocks li, .st-toc__changes li { background: var(--bg-light, #f6f6f4); border-radius: 12px; padding: 18px 20px; }
.st-toc__blocks li { counter-increment: st; border-top: 4px solid var(--c-red); }
.st-toc__changes li { border-top: 4px solid var(--c-green); }
.st-toc__blocks h4, .st-toc__changes h4 { font-family: var(--font-display); font-size: var(--fs-h5, 1.15rem); color: var(--c-navy); margin: 0 0 .4rem; }
.st-toc__blocks h4::before { content: counter(st) ". "; color: var(--c-red); }
.st-toc__blocks p, .st-toc__changes p { margin: 0; font-size: var(--fs-small); line-height: 1.45; }
.st-toc__if { margin: 2rem 0 0; padding: 22px 26px; border-left: 5px solid var(--c-primary); background: #fff; box-shadow: var(--shadow-card); border-radius: 0 12px 12px 0;
  font-family: var(--font-display); font-size: var(--fs-lead); line-height: 1.4; color: var(--c-navy); }
.st-toc__impact { margin: 1.25rem 0 0; padding: 16px 22px; border-radius: 12px; background: var(--c-navy); color: #fff; font-weight: 600; }
.st-toc__assume { margin: 0; padding-left: 1.2rem; }
.st-toc__assume li { margin-bottom: .4rem; }
@media (max-width: 991.98px) { .st-toc__blocks, .st-toc__changes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .st-toc__blocks, .st-toc__changes { grid-template-columns: minmax(0, 1fr); } .st-toc__if { padding: 18px 18px; } }
.bg-light .st-toc__blocks li, .bg-light .st-toc__changes li, .bg-mid .st-toc__blocks li, .bg-mid .st-toc__changes li { background: #fff; }
.st-toc__more { margin-top: 1.5rem; }
.st-sources details summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .5rem; }
.st-sources details summary::-webkit-details-marker { display: none; }
.st-sources details summary h2 { margin: 0; }
.st-sources details summary::after { content: "+"; font: 700 1.4rem/1 var(--font-body); color: var(--c-primary); }
.st-sources details[open] summary::after { content: "–"; }
.st-sources details ul { margin-top: 1rem; }
/* the short strategy page: four facts two by two, six principles three by three */
@media (min-width: 768px) { .st-brief .st-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .st-brief .st-prins { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* the short strategy page: our earlier strategies, cover and download */
.st-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.st-doc { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 20px; align-items: start; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 20px; }
.st-doc__cover img { display: block; width: 100%; height: auto; border-radius: 4px; box-shadow: 0 2px 10px rgba(0,0,0,.15); }
.st-doc h3 { font-size: var(--fs-h4, 1.35rem); color: var(--c-navy); margin: 0 0 .4rem; }
.st-doc__sub { margin: 0 0 .5rem; line-height: 1.4; }
.st-doc__meta { margin: 0 0 1rem; font-size: var(--fs-small); color: var(--c-muted); }
@media (max-width: 991.98px) { .st-docs { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1199.98px) { .st-doc { grid-template-columns: 12rem minmax(0, 1fr); } }
@media (max-width: 575.98px) { .st-doc { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 16px; } .st-doc .btn { font-size: 12.5px; padding-left: .8rem; padding-right: .8rem; } }
.st-doc .btn { white-space: nowrap; }
.st-doc .btn { max-width: 100%; }

/* Our approach family: the other pages, linked at the end of each */
.fam-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fam-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 18px 20px; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); text-decoration: none; color: var(--c-text); }
.fam-card:hover, .fam-card:focus-visible { box-shadow: var(--shadow-card-hover); color: var(--c-text); }
.fam-card strong { display: block; font-family: var(--font-display); font-size: var(--fs-h5, 1.15rem); color: var(--c-navy); }
.fam-card small { display: block; margin-top: .2rem; font-size: var(--fs-small); line-height: 1.4; color: var(--c-text); }
.fam-card > .icon { color: var(--c-primary); }
@media (max-width: 767.98px) { .fam-cards { grid-template-columns: minmax(0, 1fr); } }
.fam-card small { font-weight: 400; }

/* Our strategy: our strategies since 2017, and the page of each earlier strategy */
.sh-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sh-card { display: flex; flex-direction: column; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 22px 24px; border-top: 5px solid var(--c-muted); }
.sh-card--done { border-top-color: var(--c-navy); } .sh-card--current { border-top-color: var(--c-primary); }
.sh-card__when { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 0 0 .6rem; }
.sh-card__when strong { font-family: var(--font-display); font-size: 1.6rem; color: var(--c-navy); }
.sh-card__when span { font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .06rem; color: var(--c-muted); }
.sh-card--current .sh-card__when span { color: var(--c-primary-dk); }
.sh-card h3 { font-size: var(--fs-h5, 1.2rem); line-height: 1.25; margin: 0 0 .5rem; }
.sh-card h3 a { color: var(--c-navy); text-decoration: none; }
.sh-card h3 a:hover { text-decoration: underline; }
.sh-card > p { margin: 0 0 1rem; line-height: 1.45; }
.sh-card__cta { margin-top: auto !important; display: flex; flex-wrap: wrap; gap: 8px; }
.sh-card__cta .btn { font-size: 12.5px; padding-left: .9rem; padding-right: .9rem; }
.sh-evo { overflow-x: auto; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); }
.sh-evo table { width: 100%; border-collapse: collapse; min-width: 640px; }
.sh-evo th, .sh-evo td { text-align: left; vertical-align: top; padding: 12px 16px; border-bottom: 1px solid var(--c-rule); line-height: 1.4; }
.sh-evo thead th { font-family: var(--font-display); font-size: 1.15rem; color: var(--c-navy); }
.sh-evo tbody th { width: 16%; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: .05rem; color: var(--c-muted); }
.sh-evo tr:last-child th, .sh-evo tr:last-child td { border-bottom: 0; }
.sh-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sh-tags li { padding: 6px 14px; border-radius: 99px; background: #fff; box-shadow: var(--shadow-card); font-weight: 600; color: var(--c-navy); font-size: var(--fs-small); }
.sh-cover { border-radius: 8px; box-shadow: 0 6px 24px rgba(0,0,0,.18); }
.sh-doc { margin-top: 24px; }
@media (max-width: 991.98px) { .sh-cards { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Our approach and theory of change (on the model of Integrity Action) ---------- */
.ap-intro p { font-size: var(--fs-body); line-height: var(--lh-body); }  /* the running text size */
.ap-methods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin-top: 2.5rem; }
.ap-method { display: flex; flex-direction: column; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); overflow: hidden; }
.ap-method img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.ap-method > div { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 1.5rem; }
.ap-method h3 { margin: 0 0 .5rem; color: var(--c-navy); }
.ap-method p { flex: 1; margin: 0 0 1.25rem; }
.ap-features { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.ap-feature { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; padding: 1.5rem; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); }
.ap-feature h3 { margin: 0 0 .4rem; color: var(--c-navy); }
.ap-feature p { margin: 0; }
.ap-apps { margin-top: 3rem; text-align: center; }
.ap-apps__h { margin: 0 0 1rem; color: var(--c-navy); }
.ap-apps .app-btns { justify-content: center; flex-wrap: wrap; zoom: 1.5; }
.ap-sdgs { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 40px; align-items: center; }
.ap-sdgs__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: 85%; }  /* the SDG icons 15% smaller than the column */
.ap-sdg { display: block; width: 100%; height: auto; aspect-ratio: 1; }
.ap-ask { text-align: center; }
.ap-ask h2 { margin-bottom: 1rem; }
.ap-ask .impact-hero__cta { justify-content: center; }
.toc-text h2 { margin: 2.5rem 0 1rem; }
.toc-text h2:first-child { margin-top: 0; }
.toc-groups { columns: 2; column-gap: 30px; margin: 0 0 1rem; padding-left: 1.2rem; }
.toc-groups li { break-inside: avoid; margin-bottom: .3rem; }
.toc-vm { margin: 0 0 1.5rem; padding: 1.5rem 1.75rem; border-left: 4px solid var(--c-primary); background: var(--c-light, #f7f5ef); border-radius: 0 12px 12px 0; }
.toc-vm p { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 600; color: var(--c-navy); }
.toc-vm p:last-child { margin-bottom: 0; }
.toc-vm span { display: block; margin-bottom: .2rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-primary-dk); }
.toc-notes { padding-left: 1.2rem; font-size: .9rem; color: var(--c-muted); }
@media (max-width: 767.98px) {
  .ap-methods, .ap-sdgs { grid-template-columns: minmax(0, 1fr); }
  .toc-groups { columns: 1; }
}
.sh-eval { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 24px; align-items: center; }
.sh-eval img { display: block; width: 100%; border-radius: 6px; box-shadow: var(--shadow-card); }
@media (max-width: 767.98px) { .sh-eval { grid-template-columns: minmax(0, 1fr); } .sh-eval img { max-width: 14rem; } }
/* Strategy 2027–2030: each area's change and method, our four apps, the operational plan */
.st-axis__map { margin: 0 0 12px; font-size: .85rem; line-height: 1.5; text-align: left; color: var(--c-muted); }
.st-axis__map strong { color: var(--c-navy); }
.st-apps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.st-app { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 1.5rem; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); }
.st-app h3 { margin: 0 0 .4rem; font-family: var(--font-display); color: var(--app-ink); }
.st-app h3 b { color: var(--app-accent); }
.st-app p { margin: 0 0 .75rem; }
.st-app__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin: 0 !important; font-size: .85rem; font-weight: 700; }
.st-app__foot span { color: var(--c-muted); }
.st-app__foot a { display: inline-flex; align-items: center; gap: 6px; }
.st-plan tbody th { width: 28%; text-transform: none; letter-spacing: 0; font-size: .9rem; color: var(--c-navy); }
.st-plan td { font-size: .9rem; }
.st-plan .sh-evo__group th { background: var(--c-navy); color: #fff; text-transform: uppercase; letter-spacing: .05rem; font-size: .8rem; }
.st-plan__note { margin-top: 1rem; font-size: .9rem; color: var(--c-muted); }
@media (max-width: 767.98px) { .st-apps { grid-template-columns: minmax(0, 1fr); } }
.st-sectors { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 2rem; }
.st-sector { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 1.25rem; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); }
.st-sector h4 { margin: 0 0 .3rem; color: var(--c-navy); }
.st-sector p { margin: 0; font-size: .92rem; }
.st-sector .st-sector__tool { margin-top: .5rem; font-size: .8rem; font-weight: 700; color: var(--c-muted); }
@media (max-width: 991.98px) { .st-sectors { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .st-sectors { grid-template-columns: minmax(0, 1fr); } }

/* impact story pages: the study or report a story is drawn from */
.story-report { display: grid; grid-template-columns: 112px 1fr; gap: 20px; align-items: start; margin: 2rem 0 1rem; padding: 20px; background: var(--bg-mid); border-radius: 12px; }
.story-report__cover img { display: block; width: 100%; height: auto; border-radius: 4px; box-shadow: 0 4px 14px rgba(39, 39, 62, .18); }
.story-text .story-report__label { margin: 0 0 .3rem; font-size: .72rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); line-height: 1.4; }
.story-report h3 { margin: 0 0 .4rem; font-size: 1.15rem; line-height: 1.25; color: var(--c-navy); }
.story-text .story-report__meta { margin: 0 0 1rem; font-size: .88rem !important; line-height: 1.5; color: #55546f; }
.story-report__btns { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 !important; }
@media (max-width: 560px) { .story-report { grid-template-columns: 1fr; } .story-report__cover { max-width: 140px; } }

/* redesigned programme pages (programme_page in scripts/build.py): illustrations, steps, charts, story, timeline */
.pg-hero .hero-badge { margin-bottom: 1rem; }
.pg-hero__cta { display: flex; flex-wrap: wrap; gap: 10px; margin: 1.5rem 0 0; }
.pg-hero__cta .btn { display: inline-flex; align-items: center; gap: .5rem; }
.pg-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pg-card { background: #fff; border-radius: 14px; box-shadow: var(--shadow-card); padding: 0 0 1.5rem; overflow: hidden; }
.pg-card img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; background: #fff; }
.pg-card h3, .pg-card p { padding: 0 1.5rem; }
.pg-card h3 { margin: .5rem 0 .5rem; color: var(--c-navy); font-size: var(--fs-h3); }
.pg-card p { margin: 0; color: var(--c-text); }
.pg-split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.pg-split--top { align-items: start; }
.pg-split--chart { margin-top: 3rem; background: #fff; border-radius: 14px; box-shadow: var(--shadow-card); padding: 2rem 2.25rem; grid-template-columns: 7fr 5fr; }
.pg-split--chart h3 { color: var(--c-navy); margin-top: 0; font-size: var(--fs-h3); }
.pg-split--chart p { margin: 0; }
.pg-chart { margin: 0; }
.pg-chart svg { display: block; width: 100%; height: auto; max-width: 360px; margin: 0 auto; overflow: visible; }
.pg-chart__v { font-family: var(--font-display); font-size: 22px; font-weight: 700; fill: var(--c-navy); }
.pg-chart__k { font-family: var(--font-body); font-size: 14px; font-weight: 600; fill: var(--c-muted); }
.pg-chart figcaption { text-align: center; font-size: var(--fs-small); color: var(--c-muted); margin-top: .5rem; }
.pg-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.pg-step { position: relative; }
.pg-step figure { margin: 0 0 1rem; background: var(--bg-light); border-radius: 14px; overflow: hidden; }
.pg-step img { display: block; width: 100%; height: auto; }
.pg-step__n { position: absolute; top: 12px; left: 12px; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border-radius: 50%; background: var(--c-navy); color: #fff; font-family: var(--font-display); font-size: 1.15rem; }
.pg-step h3 { margin: 0 0 .4rem; color: var(--c-navy); font-size: var(--fs-h3); }
.pg-step p { margin: 0; }
.pg-aud { display: flex; gap: 1rem; align-items: flex-start; background: #fff; border-radius: 12px; padding: 1.25rem 1.4rem; margin-top: 1rem; box-shadow: var(--shadow-card); }
.pg-aud .area-tile__icon { flex: none; width: 52px; height: 52px; }
.pg-aud h3 { margin: 0 0 .3rem; color: var(--c-navy); font-size: var(--fs-h4); }
.pg-aud p { margin: 0; }
.pg-growth { background: #fff; border-radius: 14px; box-shadow: var(--shadow-card); padding: 1.75rem 2rem; }
.pg-growth h3 { margin: 0 0 1.25rem; color: var(--c-navy); font-size: var(--fs-h3); }
.pg-facts { list-style: none; margin: 1.5rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--c-rule); display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pg-facts b { display: block; font-family: var(--font-display); font-size: 1.6rem; line-height: 1.1; color: var(--c-red); }
.pg-facts span { font-size: var(--fs-small); line-height: 1.4; color: var(--c-text); }
.pg-story { display: grid; grid-template-columns: 6fr 5fr; gap: 0; align-items: stretch; background: var(--bg-mid); border-radius: 16px; overflow: hidden; }
.pg-story figure { margin: 0; min-height: 280px; }
.pg-story img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pg-story > div { padding: 2.25rem 2.5rem; align-self: center; }
.pg-story h2 { margin-top: 0; }
.pg-story .btn { display: inline-flex; align-items: center; gap: .5rem; }
.pg-time { list-style: none; margin: 1.25rem 0 0; padding: 0 0 0 1.25rem; border-left: 3px solid var(--c-primary); }
.pg-time li { position: relative; margin: 0 0 1.25rem; }
.pg-time li::before { content: ""; position: absolute; left: calc(-1.25rem - 9px); top: .35rem; width: 15px; height: 15px; border-radius: 50%; background: var(--c-primary); border: 3px solid var(--c-navy); }
.pg-time b a { color: #fff; text-decoration: none; }
.pg-time li:hover b a, .pg-time b a:focus-visible { text-decoration: underline; }
.pg-time__y { display: block; font-size: var(--fs-small); font-weight: 700; letter-spacing: .06rem; color: var(--c-primary); }
.pg-time b { display: block; font-size: 1.1rem; margin: .1rem 0 .2rem; }
.pg-time span:last-child { display: block; opacity: .85; font-size: var(--fs-small); line-height: 1.5; }
.pg-mores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pg-more { display: flex; align-items: center; gap: 1rem; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 1.25rem 1.4rem; color: var(--c-text); text-decoration: none; transition: box-shadow .2s, transform .2s; position: relative; }
.pg-more:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }
.pg-more .area-tile__icon { flex: none; width: 48px; height: 48px; }
.pg-more > span:nth-child(2) { flex: 1; }
.pg-more b { display: block; color: var(--c-navy); margin-bottom: .15rem; }
.pg-more > span > span { display: block; font-size: var(--fs-small); line-height: 1.45; }
.pg-more > .icon { flex: none; color: var(--c-primary); }
@media (max-width: 991.98px) {
  .pg-cards, .pg-mores { grid-template-columns: 1fr; }
  .pg-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pg-split, .pg-split--chart, .pg-story { grid-template-columns: 1fr; }
  .pg-split { gap: 32px; }
}
@media (max-width: 575.98px) {
  .pg-steps { grid-template-columns: 1fr; }
  .pg-facts { grid-template-columns: 1fr; }
  .pg-split--chart, .pg-growth { padding: 1.5rem; }
  .pg-story > div { padding: 1.5rem; }
}
.pg-rates { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pg-rate { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 1.1rem 1.25rem; display: grid; grid-template-columns: 1fr auto; gap: .35rem .75rem; align-items: center; }
.pg-rate b { color: var(--c-navy); font-size: 1.05rem; }
.pg-rate__meter { display: inline-flex; gap: 4px; }
.pg-rate__meter i { width: 18px; height: 8px; border-radius: 4px; background: var(--c-rule); }
.pg-rate__meter i.on { background: var(--c-primary); }
.pg-rate--4 .pg-rate__meter i.on { background: var(--c-green); }
.pg-rate__label { grid-column: 1 / -1; font-size: var(--fs-small); font-weight: 700; color: var(--c-text); }
.pg-rate--0 .pg-rate__label { color: var(--c-muted); font-style: italic; }
.pg-rate__note { grid-column: 1 / -1; font-size: var(--fs-small); line-height: 1.5; color: var(--c-text); }
.pg-lists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 2.5rem; }
.pg-list { background: #fff; border-radius: 12px; padding: 1.4rem 1.5rem; border-top: 4px solid var(--c-green); box-shadow: var(--shadow-card); }
.pg-list--1 { border-top-color: var(--c-red); } .pg-list--2 { border-top-color: var(--c-navy); }
.pg-list h3 { margin: 0 0 .75rem; color: var(--c-navy); font-size: var(--fs-h4); }
.pg-list ul { margin: 0; padding-left: 1.1rem; }
.pg-list li { margin-bottom: .45rem; font-size: var(--fs-small); line-height: 1.5; }
.pg-eval__btns { display: flex; flex-wrap: wrap; gap: 10px; margin: 2rem 0 0; }
.pg-eval__btns .btn { display: inline-flex; align-items: center; gap: .5rem; }
@media (max-width: 991.98px) { .pg-rates, .pg-lists { grid-template-columns: 1fr; } }

/* programme pages: theory of change, activities, video, a page without a chart beside its audience */
.pg-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pg-cards--4 .pg-card h3 { font-size: var(--fs-h4); }
.pg-then { margin: 2rem 0 0; padding: 1.25rem 1.5rem; border-radius: 12px; background: var(--c-navy); color: #fff; }
.pg-then b { color: var(--c-primary); }
.pg-goal { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 2.5rem; }
.pg-goal__box { background: var(--bg-light); border-radius: 14px; padding: 1.75rem 2rem; border-top: 4px solid var(--c-primary); }
.pg-goal__box + .pg-goal__box { border-top-color: var(--c-green); }
.pg-goal__box h3 { margin: 0 0 .75rem; color: var(--c-navy); font-size: var(--fs-h3); }
.pg-goal__box p { margin: 0; }
.pg-goal__box ol { margin: 0; padding-left: 1.25rem; }
.pg-goal__box li + li { margin-top: .6rem; }
.pg-acts { list-style: none; margin: 0; padding: 0; counter-reset: act; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; }
.pg-acts li { counter-increment: act; position: relative; background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); padding: 1rem 1.25rem 1rem 3.75rem; line-height: 1.5; }
.pg-acts li::before { content: counter(act); position: absolute; left: 1rem; top: 1rem; width: 30px; height: 30px; border-radius: 50%; background: var(--c-primary); color: var(--c-navy);
  font-weight: 700; font-size: .9rem; display: flex; align-items: center; justify-content: center; }
.pg-split--one { grid-template-columns: 1fr; }
.pg-split--one > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.pg-split--one > div > h2 { grid-column: 1 / -1; }
.pg-story--art figure { background: var(--bg-light); display: flex; align-items: center; }
.pg-story--art img { object-fit: contain; height: auto; }
.pg-video { grid-template-columns: 5fr 7fr; }
.pg-video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: var(--c-navy); }
.pg-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 991.98px) {
  .pg-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pg-goal, .pg-acts, .pg-split--one > div, .pg-video { grid-template-columns: 1fr; }
}
/* cards with an illustration, a title and a text (the problems, the steps) are centered */
.pg-card, .pg-step { text-align: center; }
.pg-step__n { left: 50%; transform: translateX(-50%); }
@media (max-width: 767.98px) {
  .pg-cards--4 { grid-template-columns: 1fr; }
  .pg-card img, .pg-step figure { max-width: 26rem; margin-left: auto; margin-right: auto; }
}

/* programme pages: key figures – one panel, a brand stripe, each figure centered: an icon, the figure (it counts up), what it counts, where or when */
.pg-proof { --rule: rgba(39, 39, 62, .1); list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  position: relative; background: #fff; border-radius: 18px; overflow: hidden;
  box-shadow: 0 1px 2px rgba(39, 39, 62, .06), 0 20px 44px -26px rgba(39, 39, 62, .45); }
.pg-proof::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px;
  background: linear-gradient(90deg, var(--c-primary) 0 25%, var(--c-blue) 25% 50%, var(--c-green) 50% 75%, var(--c-red) 75%); }
.pg-proof li { --accent: var(--c-primary); position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 1.75rem 1.5rem 1.5rem; }
.pg-proof li:nth-child(2) { --accent: var(--c-blue); } .pg-proof li:nth-child(3) { --accent: var(--c-green); } .pg-proof li:nth-child(4) { --accent: var(--c-red); }
.pg-proof li + li::before { content: ""; position: absolute; left: 0; top: 1.75rem; bottom: 1.5rem; width: 1px; background: var(--rule); }
.pg-proof__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; margin-bottom: 1rem;
  color: var(--accent); background: #f6f4ee; background: color-mix(in srgb, var(--accent) 14%, #fff); }
.pg-proof__icon .icon { width: 20px; height: 20px; }
.pg-proof__n { display: block; font-family: var(--font-display); font-size: clamp(36px, 26px + 1.7vw, 52px); font-weight: 700; line-height: 1; letter-spacing: -.01em;
  color: var(--c-navy); font-variant-numeric: tabular-nums; }
.pg-proof__label { display: block; margin-top: .55rem; font-size: .95rem; font-weight: 500; line-height: 1.45; color: var(--c-text); }
.pg-proof__meta { display: block; margin-top: auto; padding-top: .9rem; font-size: .72rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.pg-proof__meta::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 .45rem 0 0; vertical-align: .12em; border-radius: 50%; background: var(--accent); }
@media (max-width: 991.98px) {
  .pg-proof { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pg-proof li:nth-child(odd)::before { display: none; }
  .pg-proof li:nth-child(n + 3) { border-top: 1px solid var(--rule); }
}
@media (max-width: 575.98px) {
  .pg-proof li { padding: 1.4rem 1.1rem 1.2rem; }
  .pg-proof__icon { width: 36px; height: 36px; border-radius: 10px; margin-bottom: .8rem; }
  .pg-proof__label { font-size: .875rem; }
  .pg-proof__meta { font-size: .66rem; letter-spacing: .06em; }
}

/* Discover CERC (Who we are), after IREX's Discover page */
.discover-areas__h { margin: 3rem 0 1.5rem; }
.discover-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.discover-logos { margin: 2.5rem 0 0; }
.discover-brand__logo { display: block; width: 100%; max-width: 320px; height: auto; margin-top: 1.5rem; }
.discover-social { list-style: none; display: flex; justify-content: center; gap: .6rem; margin: 1.5rem 0 0; padding: 0; }
.discover-social a { background: rgba(255,255,255,.12); }
.discover-apps .apps-choice__text { color: var(--c-muted); }
@media (max-width: 575.98px) { .discover-apps { grid-template-columns: 1fr; } }

/* Stories and press releases, laid out as on worldbank.org (feature story, press release) */
.wb-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; font-size: .8rem; margin: 0 0 2rem; }
.wb-crumbs li + li::before { content: "|"; margin-right: .6rem; opacity: .5; }
.wb-crumbs .icon { width: 13px; height: 13px; vertical-align: -1px; }
.wb-kicker { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 .9rem; }
.wb-kicker span { margin: 0 .5rem; opacity: .6; }
.fs-head { background: var(--c-navy-dk); color: #fff; padding: 2rem 0 12rem; text-align: center; }
.fs-head--noimg { padding-bottom: 3.5rem; }
.fs-head .wb-crumbs { justify-content: flex-start; text-align: left; }
.fs-head .wb-crumbs, .fs-head .wb-crumbs a { color: rgba(255,255,255,.8); font-weight: 500; }
.fs-head h1 { color: #fff; font-family: var(--font-body); font-weight: 700; font-size: clamp(1.9rem, 3.6vw, 3.1rem); line-height: 1.15; max-width: 54rem; margin: 0 auto; }
.fs-photo-wrap { margin-top: -9.5rem; }
.fs-photo { margin: 0; }
.fs-photo img { display: block; width: 100%; max-height: 640px; object-fit: cover; border-radius: 8px; }
.fs-photo figcaption { font-size: .8rem; color: var(--c-muted); margin-top: .6rem; }
.fs-main { padding: 3rem 0 4rem; }
.fs-highlights { max-width: 46rem; margin: 0 auto 3rem; background: #f3f6fa; border-radius: 6px; padding: 1.75rem 2rem 1.25rem; }
.fs-highlights h2 { font-family: var(--font-body); font-weight: 700; font-size: 1.45rem; color: var(--c-navy-dk); margin: 0 0 1rem; }
.fs-highlights li { margin-bottom: .75rem; color: var(--c-text); }
.wb-article { position: relative; max-width: 46rem; margin: 0 auto; }
.wb-tools { position: absolute; left: -4.25rem; top: 0; display: flex; flex-direction: column; gap: .5rem; }
.wb-tools summary, .wb-tools__print { list-style: none; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; border: 0;
  background: var(--c-navy); color: #fff; cursor: pointer; }
.wb-tools summary::-webkit-details-marker { display: none; }
.wb-tools summary .icon { transform: rotate(-35deg); }
.wb-tools__share { position: relative; }
.wb-tools__share ul { list-style: none; margin: .5rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.wb-tools__share a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #e8ebf2; color: var(--c-navy); }
.wb-tools__share a:hover, .wb-tools summary:hover, .wb-tools__print:hover { background: var(--c-primary); color: #fff; }
.fs-entry h2, .pr-entry h2 { font-family: var(--font-body); font-weight: 700; color: var(--c-navy-dk); font-size: 1.55rem; line-height: 1.25; }
.fs-entry blockquote, .pr-entry blockquote { margin: 2.25rem 0; padding: 0; border: 0; }
.fs-entry blockquote::before, .pr-entry blockquote::before { content: ""; display: block; height: 30px; margin-bottom: 1.1rem;
  background: linear-gradient(var(--c-navy), var(--c-navy)) 42px 50% / calc(100% - 42px) 2px no-repeat,
              url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath fill='%233b3a5e' d='M0 24V14C0 6 4 1 12 0l1 4c-4 1-6 4-6 8h5v12zm19 0V14c0-8 4-13 12-14l1 4c-4 1-6 4-6 8h5v12z'/%3E%3C/svg%3E") 0 50% / 32px 24px no-repeat; }
.fs-entry blockquote p, .pr-entry blockquote p { font-style: normal; font-weight: 700; font-size: 1.25rem; line-height: 1.55; color: var(--c-navy); }
.fs-entry blockquote cite, .pr-entry blockquote cite { text-align: left; font-size: .85rem; font-weight: 700; color: var(--c-navy); }
.wb-more { background: linear-gradient(#fff, #e9edf3); padding: 3.5rem 0 4.5rem; }
.wb-more h2 { font-family: var(--font-body); font-weight: 700; color: var(--c-navy-dk); font-size: 2rem; margin: 0 0 1.75rem; }
.wb-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.wb-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wb-card { display: flex; flex-direction: column; color: var(--c-navy-dk); position: relative; }
/* the title is the link; it stretches over the whole card, so the card stays clickable */
.wb-card__title { text-decoration: none; }
.wb-card__title::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.wb-card__title:focus-visible { outline: none; }
.wb-card:focus-within { outline: 2px solid var(--c-primary); outline-offset: 4px; border-radius: 4px; }
.wb-cards--3 .wb-card { border-top: 1px solid #c9cfda; padding-top: 1rem; }
.wb-card__img { display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 4px; margin-bottom: 1rem; background: var(--bg-mid); }
.wb-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.wb-card__img--art img { object-fit: contain; padding: .5rem; }
.wb-card:hover .wb-card__img img { transform: scale(1.04); }
.wb-card__kind { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); margin-bottom: .35rem; }
.wb-card__title { font-weight: 700; font-size: 1.05rem; line-height: 1.35; color: var(--c-navy); }
.wb-card:hover .wb-card__title, .wb-card__title:focus-visible { color: var(--c-red-dk); text-decoration: underline; }
.wb-card time, .wb-card__date { font-size: .8rem; color: var(--c-muted); margin-top: .5rem; }
.pr-head { padding: 1.75rem 0 1.5rem; }
.pr-head .wb-crumbs, .pr-head .wb-crumbs a { color: var(--c-navy); font-weight: 500; }
.pr-head .wb-kicker { color: var(--c-muted); }
.pr-head h1 { font-family: var(--font-body); font-weight: 700; color: var(--c-navy-dk); font-size: clamp(1.8rem, 3.2vw, 2.7rem); line-height: 1.2; max-width: 44rem; margin: 0; }
.pr-main { padding: 1.5rem 0 3rem; }
.pr-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 4.5rem; }
.pr-article { margin: 0 0 0 4.25rem; max-width: 42rem; }
.pr-photo { margin: 1.5rem 0; }
.pr-photo img { display: block; width: 100%; border-radius: 6px; }
.pr-aside h2 { font-family: var(--font-body); font-weight: 700; font-size: 1.5rem; text-transform: uppercase; color: var(--c-navy-dk); margin: 0 0 1.25rem; }
.pr-aside ul { list-style: none; margin: 0; padding: 0; }
.pr-aside li { border-bottom: 1px solid var(--c-rule); padding: 1rem 0 1.4rem; }
.pr-aside a { color: var(--c-navy); font-weight: 700; }
.pr-aside a .icon { margin-left: .3rem; vertical-align: -2px; }
.pr-contacts h2, .pr-about h2 { font-family: var(--font-body); font-weight: 700; color: var(--c-navy-dk); font-size: 1.6rem; margin: 2.5rem 0 1rem; }
.pr-contacts h3 { font-family: var(--font-body); font-size: 1.2rem; color: var(--c-navy-dk); margin: 0 0 .35rem; }
.pr-contacts p { font-size: .85rem; }
.pr-press { padding: 1rem 0 2.5rem; }
.pr-press__box { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; background: var(--c-navy-dk); color: #fff; border-radius: 8px; padding: 2.25rem 2.75rem; }
.pr-press__box h2 { color: #fff; font-family: var(--font-body); font-weight: 700; margin: 0 0 .4rem; font-size: 1.6rem; }
.pr-press__box p { margin: 0; font-size: .9rem; color: rgba(255,255,255,.85); }
.pr-press__btns { display: flex; gap: .75rem; flex-wrap: wrap; }
@media (max-width: 1199.98px) { .wb-tools { position: static; flex-direction: row; margin-bottom: 1.25rem; } .wb-tools__share ul { flex-direction: row; position: absolute; left: 0; top: 100%; z-index: 2; }
  .pr-article { margin-left: 0; } }
@media (max-width: 991.98px) { .pr-grid { grid-template-columns: 1fr; gap: 1rem; } .wb-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wb-cards--3 { grid-template-columns: 1fr; }
  .fs-head { padding-bottom: 7rem; } .fs-photo-wrap { margin-top: -5rem; } }
@media (max-width: 575.98px) { .wb-cards { grid-template-columns: 1fr; } .fs-highlights { padding: 1.25rem 1.25rem .75rem; } .pr-press__box { padding: 1.5rem; } }
@media print { .wb-tools, .wb-more, .pr-press, .pr-aside { display: none !important; } .fs-head { background: none; color: #000; padding: 0; } .fs-head h1 { color: #000; } .fs-photo-wrap { margin-top: 0; } }
.wb-crumbs, .wb-crumbs a { text-transform: none; letter-spacing: 0; }
.pr-aside a { text-decoration: none; }
.pr-aside a:hover { text-decoration: underline; }

/* Our priorities, laid out like the World Bank's priority pages (worldbank.org/ext/en/jobs) */
.pp-hero { position: relative; min-height: 480px; display: flex; align-items: flex-start; color: #fff; padding: 1.5rem 0 4rem;
  background: linear-gradient(180deg, rgba(39,39,62,.55) 0%, rgba(39,39,62,.35) 45%, rgba(39,39,62,.85) 100%), var(--pp-hero) center 35% / cover no-repeat; }
.pp-hero .breadcrumb, .pp-hero .breadcrumb a { color: rgba(255,255,255,.85); }
.pp-hero__words { font-weight: 800; font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: 1.1; margin: 7rem 0 0; text-align: center; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.pp-rotate { display: inline-grid; color: var(--c-primary); text-align: left; min-width: 6ch; }
.pp-rotate span { grid-area: 1 / 1; opacity: 0; animation: pp-word 10s infinite; animation-delay: calc(var(--i) * 2.5s); }
@keyframes pp-word { 0% { opacity: 0; transform: translateY(.3em); } 2%, 25% { opacity: 1; transform: none; } 27%, 100% { opacity: 0; transform: translateY(-.3em); } }
@media (prefers-reduced-motion: reduce) { .pp-rotate span { animation: none; } .pp-rotate span:first-child { opacity: 1; } }
.pp-sub { display: flex; align-items: center; gap: 1rem 1.5rem; flex-wrap: wrap; background: #e8ebf2; border-radius: 8px; padding: 1rem 1.75rem; margin-top: -2rem; position: relative; }
.pp-sub > span { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); padding-right: 1.25rem; border-right: 1px solid #b9bfcc; }
.pp-sub ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; margin: 0; padding: 0; }
.pp-sub a { color: var(--c-navy); font-weight: 700; padding-bottom: .2rem; border-bottom: 3px solid transparent; }
.pp-sub a[aria-current], .pp-sub a:hover { border-color: var(--c-primary); }
.pp-statement { padding: 4.5rem 0 3.5rem; text-align: center; }
.pp-statement p { font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.2; color: var(--c-navy-dk); max-width: 50rem; margin: 0 auto .75rem; }
.pp-statement small { color: var(--c-muted); }
.pp-intro { background: linear-gradient(#fff, #eef1f6); padding: 1rem 0 4rem; }
.pp-intro__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 3.5rem; align-items: center; }
.pp-intro h2, .pp-prios h2, .pp-where-wrap h2, .pp-doing-wrap h2, .pp-more h2 { font-family: var(--font-body); font-weight: 800; color: var(--c-navy-dk); font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.2; }
.pp-feature { position: relative; display: block; border-radius: 10px; overflow: hidden; color: #fff; }
.pp-feature img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.pp-feature span { position: absolute; left: 1.75rem; top: 1.5rem; right: 6rem; font-weight: 800; font-size: 1.5rem; line-height: 1.2; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.pp-feature i, .pp-card__go, .pp-why i { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--c-navy); }
.pp-feature i { position: absolute; left: 1.75rem; bottom: 1.5rem; width: 54px; height: 54px; }
.pp-prios { background: #eef1f6; padding: 2rem 0 4.5rem; }
.pp-lead { font-size: 1.1rem; color: var(--c-text); max-width: 46rem; margin-bottom: 2rem; }
.pp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.pp-card { position: relative; display: block; min-height: 400px; border-radius: 10px; overflow: hidden; color: #fff; background: var(--c-navy-dk); }
.pp-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.pp-card:hover > img { transform: scale(1.05); }
.pp-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(39,39,62,0) 20%, rgba(39,39,62,.92) 68%); }
.pp-card__body { position: absolute; z-index: 1; left: 1.5rem; right: 4.5rem; bottom: 1.4rem; display: flex; flex-direction: column; gap: .35rem; }
.pp-card__num { font-weight: 800; color: var(--c-primary); font-size: 1rem; }
.pp-card__kind { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .9; }
.pp-card__title { font-weight: 800; font-size: 1.3rem; line-height: 1.2; }
.pp-card__text { font-size: .9rem; line-height: 1.45; opacity: .92; }
.pp-card .pp-card__go { position: absolute; z-index: 1; right: 1.25rem; bottom: 1.4rem; width: 32px; height: 32px; background: transparent; border: 2px solid #fff; color: #fff; }
.pp-together { background: linear-gradient(180deg, #3d5a8a, var(--c-navy-dk)); color: #fff; text-align: center; padding: 4.5rem 0 5rem; border-radius: 48px 48px 0 0; }
.pp-together h2 { color: #fff; font-family: var(--font-body); font-weight: 800; font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 1.15; }
.pp-together > .container > p { max-width: 42rem; margin: 0 auto; color: rgba(255,255,255,.88); }
.pp-levers__h { color: #fff; font-family: var(--font-body); font-weight: 800; font-size: 1.8rem; margin: 3rem 0 2rem; }
.pp-levers { list-style: none; margin: 0 auto; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; }
.pp-circle { width: 250px; height: 250px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.75rem; margin: 0 -14px; color: var(--c-navy-dk); }
.pp-circle--0 { background: #fff; } .pp-circle--1 { background: #c9d6ea; } .pp-circle--2 { background: #7f9cc8; color: #fff; } .pp-circle--3 { background: #2e4f86; color: #fff; }
.pp-circle span .icon { width: 26px; height: 26px; }
.pp-circle h3 { font-family: var(--font-body); font-weight: 800; font-size: 1.15rem; color: inherit; margin: .5rem 0 .35rem; }
.pp-circle p { font-size: .78rem; line-height: 1.35; margin: 0; }
.pp-why-wrap { padding: 3rem 0 1rem; }
.pp-why { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; background: var(--c-navy); color: #fff; border-radius: 60px; padding: 1.6rem 2.2rem 1.6rem 2.75rem; font-weight: 800; font-size: clamp(1.1rem, 2vw, 1.5rem); }
.pp-why:hover { background: var(--c-navy-dk); color: #fff; }
.pp-why i { flex: none; }
.pp-where-wrap { padding: 3.5rem 0; }
.pp-where-grid { display: grid; grid-template-columns: 4fr 8fr; gap: 2.5rem; }
.pp-where-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pp-where { background: var(--c-navy-dk); color: #fff; border-radius: 10px; padding: 1.5rem 1.6rem; }
.pp-where h3 { color: #fff; font-family: var(--font-body); font-weight: 800; font-size: 1.25rem; margin: .4rem 0 .5rem; }
.pp-where p { font-size: .9rem; margin: 0; color: rgba(255,255,255,.88); }
.pp-where .pp-card__kind { color: var(--c-primary); }
.pp-doing-wrap { padding: 1rem 0 4rem; }
.pp-doings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pp-doing { position: relative; display: flex; flex-direction: column; gap: .5rem; background: #eef1f6; border-radius: 10px; padding: 1.5rem 1.6rem 1.5rem; color: var(--c-navy-dk); min-height: 200px; }
.pp-doing:hover { background: #e2e7f0; color: var(--c-navy-dk); }
.pp-doing__logo { width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: #fff; }
.pp-doing .pp-card__kind { font-size: .8rem; color: var(--c-navy); }
.pp-doing__text { font-size: .95rem; padding-right: 2.5rem; }
.pp-doing .pp-card__go { position: absolute; right: 1.25rem; bottom: 1.25rem; width: 34px; height: 34px; background: var(--c-navy); color: #fff; }
.pp-quote { text-align: center; padding: 3.5rem 0 4rem; }
.pp-quote img { border-radius: 50%; background: #fff; box-shadow: var(--shadow-card); padding: 10px; }
.pp-quote__by { margin: .75rem 0 1.5rem; display: flex; flex-direction: column; font-size: .85rem; }
.pp-quote__by b { color: var(--c-navy-dk); font-size: 1rem; }
.pp-quote blockquote { margin: 0 auto 2rem; max-width: 46rem; font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.2; color: var(--c-navy-dk); }
.pp-btn { background: var(--c-navy); }
.pp-btn:hover { background: var(--c-navy-dk); }
.pp-more { border-top: 1px solid var(--c-rule); padding: 2.5rem 0 3.5rem; }
.pp-more .container { display: flex; align-items: center; justify-content: center; gap: 1.25rem 2rem; flex-wrap: wrap; }
.pp-more h2 { font-size: 1.3rem; color: var(--c-muted); margin: 0; }
.pp-pills { display: flex; gap: .75rem; flex-wrap: wrap; }
.pp-pill { border: 2px solid var(--c-navy); border-radius: 40px; padding: .7rem 1.4rem; color: var(--c-navy); font-weight: 700; font-size: .9rem; }
.pp-pill:hover { background: var(--c-navy); color: #fff; }
@media (max-width: 991.98px) { .pp-intro__grid, .pp-where-grid { grid-template-columns: 1fr; gap: 1.5rem; } .pp-cards, .pp-doings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-circle { width: 210px; height: 210px; margin: -8px; } }
@media (max-width: 575.98px) { .pp-cards, .pp-doings, .pp-where-list { grid-template-columns: 1fr; } .pp-hero { min-height: 380px; } .pp-hero__words { margin-top: 4rem; }
  .pp-sub { padding: .9rem 1.1rem; } .pp-sub > span { border: 0; padding: 0; width: 100%; } .pp-levers { flex-direction: column; align-items: center; } .pp-circle { margin: -10px 0; }
  .pp-why { border-radius: 24px; padding: 1.25rem 1.4rem; } .pp-together { border-radius: 28px 28px 0 0; } }
.pp-sub a, .pp-feature, .pp-card, .pp-why, .pp-doing, .pp-pill, .wb-card, .wb-crumbs a { text-decoration: none; }

/* Impact as a scorecard, laid out like the World Bank Group Scorecard (scorecard.worldbank.org/en/home) */
.sc-hero { position: relative; color: #fff; text-align: center; padding: 2rem 0 5rem;
  background: radial-gradient(ellipse at 50% 0%, #4a4977 0%, var(--c-navy) 45%, var(--c-navy-dk) 100%); }
.sc-hero .breadcrumb { justify-content: flex-start; text-align: left; }
.sc-hero .breadcrumb, .sc-hero .breadcrumb a { color: rgba(255,255,255,.75); }
.sc-hero h1 { color: #fff; font-family: var(--font-body); font-weight: 800; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.05; margin: 1.5rem 0 1.25rem; }
.sc-hero h1 span { display: block; font-weight: 300; }
.sc-hero__lead { max-width: 44rem; margin: 0 auto 2.5rem; color: rgba(255,255,255,.88); font-size: 1.1rem; }
.sc-hero__label { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.75); margin: 0 0 .75rem; }
.sc-hero__label--sm { margin-top: -.25rem; opacity: .8; }
.sc-dial { width: 190px; height: 190px; border-radius: 50%; margin: 0 auto 1rem; display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: radial-gradient(circle at 50% 0%, rgba(255,255,255,.18) 0 38%, transparent 39%), var(--c-navy-dk); border: 3px solid var(--c-primary); box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.sc-dial b { font-size: 3.6rem; line-height: 1; font-weight: 800; color: #fff; }
.sc-dial span { font-size: 1.05rem; line-height: 1.2; max-width: 8rem; }
.sc-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 760px; margin: 0 auto 2.25rem; border-radius: 12px; overflow: hidden; background: rgba(255,255,255,.08); }
.sc-tier { display: flex; flex-direction: column; gap: .35rem; padding: 1.4rem 1.1rem; color: #fff; text-decoration: none; background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.02)); }
.sc-tier + .sc-tier { border-left: 1px solid rgba(255,255,255,.15); }
.sc-tier b { font-size: 1.2rem; line-height: 1.2; }
.sc-tier span { font-size: .8rem; color: rgba(255,255,255,.8); }
.sc-tier:hover { background: rgba(255,255,255,.16); color: #fff; }
.sc-hero__areas { display: inline-block; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.sc-hero__down { position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%); width: 110px; height: 44px; clip-path: polygon(50% 0, 100% 100%, 0 100%);
  background: var(--c-navy-dk); color: #fff; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 6px; }
.sc-nav { position: sticky; top: var(--header-h, 0); z-index: 5; background: var(--c-navy-dk); border-top: 1px solid rgba(255,255,255,.12); }
.sc-nav ul { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: .25rem 1.75rem; margin: 0; padding: .85rem 0; }
.sc-nav a { color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.sc-nav a:hover { color: var(--c-primary); }
.sc-updates { background: var(--c-navy-dk); color: #fff; padding: 2.5rem 0 3rem; }
.sc-updates__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
.sc-updates h2 { color: #fff; font-family: var(--font-body); font-weight: 400; font-size: clamp(1.8rem, 3vw, 2.5rem); margin: 0 0 .5rem; }
.sc-updates p { color: rgba(255,255,255,.88); margin: 0; }
.sc-new { display: grid; grid-template-columns: 180px 1fr; gap: 1.25rem; align-items: center; background: rgba(0,0,0,.25); border-radius: 12px; padding: 1.25rem; }
.sc-new img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 6px; }
.sc-new h3 { color: #fff; font-family: var(--font-body); font-size: 1.15rem; margin: 0 0 .35rem; }
.sc-new p { font-size: .85rem; margin-bottom: .9rem; }
.sc-new .btn { padding: .5rem 1rem; font-size: .75rem; }
.sc-new .btn .icon { margin-left: .4rem; }
.sc-head { max-width: 40rem; margin-bottom: 2rem; }
.sc-head h2 { font-family: var(--font-body); font-weight: 300; color: var(--c-navy-dk); font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.1; margin: 0 0 .75rem; }
.sc-results { background: #f4f5f8; }
.sc-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.sc-card { display: flex; flex-direction: column; background: #fff; border-radius: 10px; padding: 1.25rem 1.25rem 1.1rem; min-height: 250px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.sc-card[hidden] { display: none; }
.sc-card__icon { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 50%; border: 2px solid currentColor; background: none !important; }
.sc-card__icon.c-primary, .sc-card__bar.c-primary { color: var(--c-primary); } .sc-card__icon.c-red, .sc-card__bar.c-red { color: var(--c-red); }
.sc-card__icon.c-blue, .sc-card__bar.c-blue { color: var(--c-blue); } .sc-card__icon.c-green, .sc-card__bar.c-green { color: var(--c-green); }
.sc-card__h { font-family: var(--font-body); font-weight: 400; font-size: 1.15rem; line-height: 1.3; color: var(--c-muted); margin: .9rem 0 1rem; }
.sc-card__h b { color: var(--c-navy-dk); font-weight: 700; }
.sc-card__n { display: flex; align-items: flex-end; gap: .5rem; margin: auto 0 .2rem; }
.sc-card__bar { width: 10px; height: 46px; border-radius: 2px; background: currentColor; flex: none; }
.sc-card__n b { font-size: 2.6rem; line-height: .95; font-weight: 400; color: var(--c-navy-dk); font-variant-numeric: tabular-nums; }
.sc-card__n small { font-size: .8rem; font-weight: 700; color: var(--c-navy-dk); padding-bottom: .2rem; }
.sc-card__when { font-size: .8rem; color: var(--c-muted); margin: 0 0 0 18px; }
.sc-src { font-size: .8rem; color: var(--c-muted); margin: 1.25rem 0 0; }
.sc-ctxs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sc-ctx { border-top: 3px solid var(--c-navy); padding: 1.25rem .25rem 0; }
.sc-ctx__icon { color: var(--c-navy); }
.sc-ctx b { display: block; font-size: 2.2rem; font-weight: 300; color: var(--c-navy-dk); margin: .25rem 0 .4rem; }
.sc-ctx p { font-size: .92rem; margin: 0 0 .5rem; }
.sc-ctx small { font-size: .75rem; color: var(--c-muted); }
.sc-badges { margin-bottom: 2.5rem; }
.sc-sub { font-family: var(--font-body); color: var(--c-navy-dk); margin: 0 0 1rem; }
.sc-tlist { columns: 2; column-gap: 3rem; margin: 0 0 1.5rem; padding-left: 1.4rem; }
.sc-tlist li { break-inside: avoid; margin: 0 0 .8rem; padding-left: .3rem; }
.sc-tlist li::marker { color: var(--c-primary); font-weight: 800; }
@media (max-width: 1199.98px) { .sc-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991.98px) { .sc-cards, .sc-ctxs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sc-updates__grid { grid-template-columns: 1fr; } .sc-nav { position: static; } }
@media (max-width: 575.98px) { .sc-cards, .sc-ctxs { grid-template-columns: 1fr; } .sc-card { min-height: 0; } .sc-tiers { grid-template-columns: 1fr; } .sc-tier + .sc-tier { border-left: 0; border-top: 1px solid rgba(255,255,255,.15); }
  .sc-new { grid-template-columns: 1fr; } .sc-tlist { columns: 1; } .sc-nav ul { justify-content: flex-start; gap: .4rem 1.1rem; } }
.sc-card__n--long b { font-size: 2rem; }
.sc-card__n { flex-wrap: wrap; }
#results, #context, #how-we-work, #targets { scroll-margin-top: calc(var(--header-h, 80px) + 64px); }
@media (min-width: 992px) { #impact-areas, #stories, #impact-years { scroll-margin-top: calc(var(--header-h, 80px) + 64px); } }

/* Press releases and stories: reading comfort, structure and mobile */
.read-progress { position: fixed; left: 0; right: 0; top: 0; height: 4px; z-index: 1001; pointer-events: none; }
.read-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--c-primary), var(--c-red)); transform: scaleX(0); transform-origin: 0 50%; }
.pr-entry p, .pr-entry li, .fs-entry p, .fs-entry li { font-size: var(--fs-body); line-height: var(--lh-body); color: #33333f; }
/* body paragraphs keep the site's justified text on wide screens; quotes and lists, where it leaves gaps, are left-aligned */
.entry.pr-entry li, .entry.fs-entry li, .entry.pr-entry blockquote p, .entry.fs-entry blockquote p { text-align: left; }
.pr-entry > p:first-child { font-size: 1.2rem; line-height: 1.65; color: var(--c-navy-dk); }
.pr-entry h2, .fs-entry h2 { position: relative; margin: 2.75rem 0 1rem; padding-left: 1rem; }
.pr-entry h2::before, .fs-entry h2::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 4px; border-radius: 2px; background: var(--c-primary); }
.pr-entry ul:not([class*="cerc-"]), .fs-entry ul:not([class*="cerc-"]) { background: #f3f5f9; border-radius: 10px; padding: .6rem 1.25rem; margin: 1.25rem 0 1.75rem; }
.pr-entry ul:not([class*="cerc-"]) > li, .fs-entry ul:not([class*="cerc-"]) > li { margin: 0; padding: .7rem 0 .7rem 1.5rem; }
.pr-entry ul:not([class*="cerc-"]) > li + li, .fs-entry ul:not([class*="cerc-"]) > li + li { border-top: 1px solid #dfe3eb; }
.pr-entry ul:not([class*="cerc-"]) > li::before, .fs-entry ul:not([class*="cerc-"]) > li::before { top: 1.45rem; width: 7px; height: 7px; }
.pr-entry ul strong, .fs-entry ul strong { color: var(--c-navy-dk); }
.pr-entry ol, .fs-entry ol { list-style: none; counter-reset: step; padding: 0; margin: 1.25rem 0 1.75rem; display: grid; gap: .75rem; }
.pr-entry ol > li, .fs-entry ol > li { counter-increment: step; position: relative; margin: 0; padding: 1rem 1.25rem 1rem 3.6rem; background: #fff; border: 1px solid #e1e5ee; border-radius: 10px; }
.pr-entry ol > li::before, .fs-entry ol > li::before { content: counter(step); position: absolute; left: 1rem; top: .95rem; width: 1.85rem; height: 1.85rem; border-radius: 50%;
  background: var(--c-navy); color: #fff; font-weight: 800; font-size: .9rem; display: flex; align-items: center; justify-content: center; }
.pr-entry figure, .fs-entry figure { margin: 2rem 0; }
.pr-entry figure img, .fs-entry figure img { display: block; width: 100%; border-radius: 8px; }
.pr-entry figcaption, .fs-entry figcaption { font-size: .85rem; line-height: 1.5; color: var(--c-muted); margin-top: .6rem; padding-left: .75rem; border-left: 3px solid var(--c-rule); text-align: left; }
.pr-entry > p:last-child:has(> em:only-child), .fs-entry > p:last-child:has(> em:only-child) { font-size: .88rem; line-height: 1.6; color: var(--c-muted); border-top: 1px solid var(--c-rule); padding-top: 1.25rem; margin-top: 2.5rem; }
.pr-entry a, .fs-entry a { text-underline-offset: 3px; }
.pr-photo img { border-radius: 8px; }
.pr-grid { grid-template-columns: minmax(0, 1fr) 300px; grid-template-areas: "text aside" "after ."; row-gap: 0; }
.pr-grid > .pr-article:first-child { grid-area: text; }
.pr-aside { grid-area: aside; }
.pr-after { grid-area: after; }
@media (min-width: 992px) { .pr-aside__inner { position: sticky; top: calc(var(--header-h, 80px) + 24px); } }
.pr-aside a { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.pr-aside a .icon { flex: none; margin: .3rem 0 0; color: var(--c-primary); transition: transform .2s; }
.pr-aside a:hover .icon { transform: translateX(3px); }
.pr-contacts a { display: inline-flex; align-items: center; gap: .4rem; }
.pr-contacts__grid > div { background: #f3f5f9; border-radius: 10px; padding: 1.1rem 1.25rem; display: inline-block; }
.pr-about { border-top: 1px solid var(--c-rule); margin-top: 2rem; }
.pr-about p { color: var(--c-muted); }
@media (max-width: 991.98px) {
  .pr-grid { grid-template-columns: 1fr; grid-template-areas: "text" "aside" "after"; }
  .pr-aside { background: #f3f5f9; border-radius: 12px; padding: 1.25rem 1.25rem .25rem; margin-top: 2rem; }
  .pr-aside h2 { font-size: 1.1rem; margin-bottom: .25rem; }
  .pr-aside li { padding: .85rem 0; } .pr-aside li:last-child { border-bottom: 0; }
}
@media (max-width: 575.98px) {
  .wb-crumbs [aria-current] { display: none; }
  .wb-crumbs li:nth-last-child(2)::after { content: ""; }
  .pr-head h1 { font-size: 1.75rem; }
  .pr-entry > p:first-child { font-size: 1.08rem; }

  .pr-photo, .pr-entry figure, .fs-entry figure { margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); }
  .pr-photo img, .pr-entry figure img, .fs-entry figure img { border-radius: 0; }
  .pr-entry figcaption, .fs-entry figcaption { margin-left: var(--gutter); margin-right: var(--gutter); }
  .pr-entry blockquote p, .fs-entry blockquote p { font-size: 1.1rem; line-height: 1.5; }
  .pr-entry h2, .fs-entry h2 { font-size: 1.3rem; margin-top: 2.25rem; }
  .pr-entry ul:not([class*="cerc-"]), .fs-entry ul:not([class*="cerc-"]) { padding: .4rem 1rem; }
  .pr-entry ol > li, .fs-entry ol > li { padding: .9rem 1rem .9rem 3.2rem; } .pr-entry ol > li::before, .fs-entry ol > li::before { left: .8rem; }
  .pr-contacts__grid > div { display: block; }
}
@media print { .read-progress { display: none; } }
.pp-doing { align-items: center; text-align: center; padding-bottom: 3.75rem; }
.pp-doing__text { padding-right: 0; }
.pp-doing .pp-card__go { right: 50%; transform: translateX(50%); }

/* Our priorities: brand typography (Draft Natural for titles, statements and the quote) at calmer sizes */
.pp-hero__words { font-family: var(--font-display); font-weight: 700; font-size: clamp(2rem, 4.4vw, 3.3rem); letter-spacing: .01em; }
.pp-statement p { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.3rem, 2.1vw, 1.8rem); line-height: 1.3; max-width: 46rem; }
.pp-intro h2, .pp-prios h2, .pp-where-wrap h2, .pp-doing-wrap h2, .pp-more h2, .pp-together h2, .pp-levers__h, .pp-where h3, .pp-circle h3 { font-family: var(--font-display); font-weight: 700; }
.pp-intro h2, .pp-prios h2, .pp-where-wrap h2, .pp-doing-wrap h2 { font-size: clamp(1.45rem, 2.2vw, 1.9rem); }
.pp-together h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.pp-levers__h { font-size: 1.5rem; }
.pp-card__title, .pp-feature span, .pp-why { font-family: var(--font-display); font-weight: 700; }
.pp-card__title { font-size: 1.2rem; }
.pp-feature span { font-size: 1.25rem; }
.pp-why { font-size: clamp(1.05rem, 1.6vw, 1.3rem); }
.pp-quote blockquote { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.3rem, 2.1vw, 1.75rem); line-height: 1.3; }
.pp-more h2 { font-size: 1.2rem; }
@media (max-width: 575.98px) { .pp-statement p, .pp-quote blockquote { font-size: 1.25rem; } .pp-hero__words { font-size: 1.9rem; } }

/* Case studies in the CERC brand (brand kit: navy, amber, orange; Draft Natural titles, Barlow text; cream sections) */
.cs-hero { background: var(--c-navy); color: #fff; padding: 1.75rem 0 4.5rem; position: relative; overflow: hidden; }
.cs-hero::after { content: ""; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%; border: 60px solid rgba(236,163,39,.12); }
.cs-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 7fr 5fr; gap: 3rem; align-items: center; }
.cs-hero .wb-crumbs, .cs-hero .wb-crumbs a { color: rgba(255,255,255,.75); }
.cs-kicker { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; margin: 0 0 1rem; font-size: .8rem; }
.cs-kicker time { color: rgba(255,255,255,.8); font-weight: 600; }
.cs-hero h1 { font-family: "Draft Natural A", var(--font-display); font-weight: 700; text-transform: uppercase; color: #fff; font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.08; letter-spacing: .02em; margin: 0 0 1.1rem; }
.cs-lead { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.35; color: rgba(255,255,255,.92); margin: 0 0 1.5rem; max-width: 38rem; }
.cs-hero__photo { margin: 0; position: relative; }
.cs-hero__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; box-shadow: 14px 14px 0 var(--c-primary); }
.cs-hero__photo figcaption { font-size: .78rem; color: rgba(255,255,255,.7); margin-top: 1.4rem; }
.cs-sec { padding: 4rem 0; scroll-margin-top: calc(var(--header-h, 80px) + 56px); }
.cs-sec > .container > .section__tag { color: var(--c-red); }
.cs-sec h2 { font-family: var(--font-display); font-weight: 700; color: var(--c-navy); font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.15; max-width: 40rem; margin-bottom: 1.5rem; }
.cs-sec--cream { background: var(--bg-mid); }
.cs-sec--navy { background: var(--c-navy); color: #fff; }
.cs-sec--navy h2 { color: #fff; } .cs-sec--navy > .container > .section__tag { color: var(--c-primary); }
.cs-intro { padding: 3rem 0 3.5rem; }
.cs-intro .container { display: grid; grid-template-columns: 60px minmax(0, 46rem); gap: 1.5rem; justify-content: center; }
.cs-tools .wb-tools { position: static; }
.cs-prose p { font-size: 1.0625rem; line-height: 1.75; text-align: left; color: #33333f; max-width: 46rem; }
.cs-prose--lead p { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.2rem, 1.7vw, 1.45rem); line-height: 1.45; color: var(--c-navy); }
.cs-prose--lead strong { font-weight: 700; color: var(--c-red-dk); }
.cs-context { display: grid; grid-template-columns: 7fr 4fr; gap: 3rem; align-items: center; }
.cs-art { margin: 0; } .cs-art img { width: 100%; height: auto; }
.cs-apps { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1.5rem; align-items: stretch; }
.cs-tabs { display: flex; flex-direction: column; gap: .6rem; }
.cs-tab { display: flex; align-items: center; gap: .85rem; width: 100%; text-align: left; border: 2px solid var(--c-rule); background: #fff; border-radius: 12px; padding: .8rem 1rem; cursor: pointer;
  font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; color: var(--c-navy); transition: border-color .2s, box-shadow .2s, transform .2s; }
.cs-tab b { color: var(--app); font-weight: 700; }
.cs-tab:hover { border-color: var(--app); transform: translateX(3px); }
.cs-tab[aria-selected="true"] { border-color: var(--app); box-shadow: inset 6px 0 0 var(--app), var(--shadow-card); }
.cs-panel { height: 100%; border-radius: 14px; padding: 2rem 2.25rem; background: #fff; border: 2px solid var(--app); box-shadow: var(--shadow-card); position: relative; overflow: hidden; animation: cs-in .35s ease; }
.cs-panel::before { content: ""; position: absolute; right: -60px; bottom: -60px; width: 200px; height: 200px; border-radius: 50%; background: var(--app); opacity: .12; }
.cs-panel__logo { height: 54px; width: auto; margin-bottom: 1.25rem; }
.cs-panel p { font-size: 1.08rem; line-height: 1.7; text-align: left; max-width: 40rem; }
.cs-panel__btn { background: var(--c-navy); margin-top: .5rem; }
.cs-panel__btn .icon { margin-left: .5rem; }
@keyframes cs-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cs-panel { animation: none; } }
.cs-principle { display: flex; gap: 1rem; align-items: flex-start; margin-top: 1.75rem; background: var(--bg-light); border-left: 5px solid var(--c-green); border-radius: 10px; padding: 1.1rem 1.4rem; }
.cs-principle > span { flex: none; display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; background: var(--c-green); color: #fff; }
.cs-principle p { margin: 0; text-align: left; font-weight: 600; color: var(--c-navy); }
.cs-cards { display: grid; gap: 18px; }
.cs-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .cs-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cs-card, .cs-why { border-radius: 14px; padding: 1.5rem 1.4rem; transition: transform .25s, box-shadow .25s; }
.cs-card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); }
.cs-card:hover, .cs-why:hover { transform: translateY(-4px); }
.cs-why { background: #fff; border: 1px solid var(--c-rule); box-shadow: var(--shadow-card); border-top: 5px solid var(--tone, var(--c-primary)); }
.cs-card__icon, .cs-why__icon { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border-radius: 50%; color: #fff; background: var(--tone, var(--c-primary)); margin-bottom: 1rem; }
.cs-card__icon .icon, .cs-why__icon .icon { width: 22px; height: 22px; }
.cs-card h3, .cs-why h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; line-height: 1.2; margin: 0 0 .6rem; }
.cs-card h3 { color: #fff; } .cs-why h3 { color: var(--c-navy); }
.cs-card p, .cs-why p { font-size: .95rem; line-height: 1.6; margin: 0; text-align: left; }
.cs-card p { color: rgba(255,255,255,.85); }
.t-primary { --tone: var(--c-primary); } .t-red { --tone: var(--c-red); } .t-blue { --tone: var(--c-blue); } .t-green { --tone: var(--c-green); } .t-purple { --tone: var(--c-purple); }
/* a text that followed a bold lead ("EduCheck – launched…") starts with a capital once the lead is set apart */
.cs-panel p::first-letter, .cs-card p::first-letter, .cs-why p::first-letter, .cs-acc p::first-letter { text-transform: uppercase; }
.cs-call { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.45; color: var(--c-navy); max-width: 46rem; text-align: left; }
.cs-call strong { color: var(--c-red-dk); }
.cs-accs { display: grid; gap: .75rem; max-width: 52rem; }
.cs-acc { background: #fff; border-radius: 12px; box-shadow: var(--shadow-card); overflow: hidden; }
.cs-acc summary { list-style: none; display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; cursor: pointer; }
.cs-acc summary::-webkit-details-marker { display: none; }
.cs-acc summary b { flex: 1; font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; color: var(--c-navy); }
.cs-acc__icon { flex: none; display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 50%; background: var(--tone); color: #fff; }
.cs-acc summary i { flex: none; display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 50%; background: var(--bg-mid); color: var(--c-navy); transition: transform .25s; }
.cs-acc[open] summary i { transform: rotate(45deg); background: var(--c-primary); color: #fff; }
.cs-acc p { margin: 0; padding: 0 1.4rem 1.25rem 5.25rem; text-align: left; line-height: 1.7; }
.cs-close { padding: 3.5rem 0; }
.cs-close__box { background: var(--c-navy); color: #fff; border-radius: 18px; padding: 2.25rem 2.5rem; text-align: center; }
.cs-close__box p { max-width: 44rem; margin: 0 auto .9rem; text-align: center; color: rgba(255,255,255,.9); }
.cs-close__box a:not(.btn) { color: var(--c-primary); }
.cs-close__btns { display: flex; justify-content: center; gap: .75rem; flex-wrap: wrap; margin-top: 1.25rem !important; }
.cs-close__btns .btn .icon { margin-right: .4rem; }
@media (max-width: 1199.98px) { .cs-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991.98px) {
  .cs-hero__grid, .cs-context, .cs-apps { grid-template-columns: 1fr; gap: 1.75rem; }
  .cs-hero__photo { max-width: 560px; }
  .cs-tabs { flex-direction: row; overflow-x: auto; scrollbar-width: none; padding-bottom: .25rem; } .cs-tab { width: auto; flex: none; }
  .cs-art { max-width: 320px; } .cs-cards--3 { grid-template-columns: 1fr; }
  .cs-intro .container { grid-template-columns: 1fr; gap: 1rem; } }
@media (max-width: 575.98px) {
  .cs-hero { padding-bottom: 4rem; } .cs-hero__photo img { box-shadow: 8px 8px 0 var(--c-primary); }
  .cs-sec { padding: 3rem 0; } .cs-cards--4 { grid-template-columns: 1fr; }
  .cs-panel { padding: 1.5rem 1.25rem; } .cs-tab { font-size: 1.05rem; padding: .6rem .8rem; }
  .cs-acc summary b { font-size: 1.05rem; } .cs-acc p { padding: 0 1.1rem 1.1rem; }
  .cs-close__box { padding: 1.75rem 1.25rem; } }
@media print { .cs-close, .read-progress { display: none; } .cs-panel[hidden] { display: block !important; } }

/* Scorecard hero, compact, in the brand layout: title and lead on the left, what's in the scorecard on the right */
.sc-hero { text-align: left; padding: 1.75rem 0 3rem; }
.sc-hero__grid { display: grid; grid-template-columns: 6fr 5fr; gap: 3rem; align-items: center; }
.sc-hero h1 { font-family: var(--font-display); font-weight: 700; color: var(--c-primary); font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.05; margin: .75rem 0 1rem; letter-spacing: .01em; }
.sc-hero h1 span { display: inline; font-weight: 700; color: #fff; }
.sc-hero__lead { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.4; max-width: 36rem; margin: 0 0 1.5rem; }
.sc-hero__areas { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; color: var(--c-primary); }
.sc-hero__areas .icon { transition: transform .2s; } .sc-hero__areas:hover .icon { transform: translateX(3px); }
.sc-hero__panel { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 16px; padding: 1.5rem 1.6rem; }
.sc-hero__label { margin: 0 0 .9rem; }
.sc-hero__label--sm { margin: 1.25rem 0 .6rem; }
.sc-hero__count { display: flex; align-items: center; gap: 1.1rem; }
.sc-hero__count .sc-dial { width: 92px; height: 92px; margin: 0; flex: none; border-width: 3px; }
.sc-hero__count .sc-dial b { font-family: var(--font-display); font-size: 2.6rem; }
.sc-hero__count p { margin: 0; display: flex; flex-direction: column; }
.sc-hero__count p b { font-family: var(--font-display); font-size: 1.45rem; color: #fff; line-height: 1.1; }
.sc-hero__count p span { font-size: .85rem; color: rgba(255,255,255,.75); }
.sc-hero .sc-tiers { grid-template-columns: 1fr; max-width: none; margin: 0; background: none; gap: .5rem; overflow: visible; }
.sc-hero .sc-tier { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 1rem; border-radius: 10px; padding: .75rem 1rem; background: rgba(255,255,255,.08); border: 0; }
.sc-hero .sc-tier + .sc-tier { border: 0; }
.sc-hero .sc-tier b { font-family: var(--font-display); font-size: 1.1rem; flex: none; }
.sc-hero .sc-tier span { text-align: right; font-size: .78rem; }
.sc-hero .sc-tier:hover { background: rgba(236,163,39,.25); }
.sc-hero__down { display: none; }
@media (max-width: 991.98px) { .sc-hero__grid { grid-template-columns: 1fr; gap: 1.75rem; } }
@media (max-width: 575.98px) { .sc-hero .sc-tier { flex-direction: column; align-items: flex-start; gap: .15rem; } .sc-hero .sc-tier span { text-align: left; } .sc-hero__panel { padding: 1.2rem; } }

/* Story library: newsroom (news, categories) and impact stories, in the CERC brand */
.sl-hero { background: var(--c-navy); color: #fff; padding: 1.75rem 0 2.75rem; position: relative; overflow: hidden; }
.sl-hero::after { content: ""; position: absolute; right: -140px; bottom: -180px; width: 460px; height: 460px; border-radius: 50%; border: 70px solid rgba(236,163,39,.1); }
.sl-hero .container { position: relative; z-index: 1; }
.sl-hero .breadcrumb, .sl-hero .breadcrumb a { color: rgba(255,255,255,.75); }
.sl-hero__tag { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-navy); background: var(--c-primary); border-radius: 30px; padding: .3rem .85rem; margin-top: .75rem; }
.sl-hero h1 { font-family: var(--font-display); font-weight: 700; color: #fff; font-size: clamp(2.2rem, 4.2vw, 3.4rem); line-height: 1.05; margin: .9rem 0 .75rem; }
.sl-hero__lead { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.4; max-width: 44rem; color: rgba(255,255,255,.9); margin: 0 0 1.4rem; }
.sl-hero__links { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.sl-cat, .sl-rss { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem 1rem; border-radius: 30px; font-size: .85rem; font-weight: 700; text-decoration: none; color: #fff; border: 1.5px solid rgba(255,255,255,.35); }
.sl-cat:hover, .sl-rss:hover { border-color: var(--c-primary); color: var(--c-primary); }
.sl-cat.is-on { background: #fff; color: var(--c-navy); border-color: #fff; }
.sl-rss { margin-left: auto; border-style: dashed; }
.sl-latest { padding: 2.5rem 0 1rem; background: var(--bg-light); }
.sl-latest[hidden] { display: none; }
.sl-latest__h { font-family: var(--font-display); color: var(--c-navy); font-size: 1.6rem; margin: 0 0 1.1rem; }
.sl-latest__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 20px; }
.sl-latest__side { display: grid; gap: 20px; }
.sl-top { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 200px; border-radius: 14px; overflow: hidden; color: #fff; text-decoration: none; background: var(--c-navy); }
.sl-top--main { min-height: 440px; }
.sl-top__img { position: absolute; inset: 0; }
.sl-top__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.sl-top:hover .sl-top__img img { transform: scale(1.04); }
.sl-top::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(39,39,62,0) 25%, rgba(39,39,62,.94) 82%); }
.sl-top__body { position: relative; z-index: 1; padding: 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .5rem; }
.sl-top__title { font-family: var(--font-display); font-weight: 700; font-size: 1.35rem; line-height: 1.2; }
.sl-top--main .sl-top__title { font-size: clamp(1.5rem, 2.4vw, 2.1rem); }
.sl-top .sl-card__text { color: rgba(255,255,255,.88); }
.sl-top .sl-card__go { color: var(--c-primary); }
.sl-top .sl-card__meta time { color: rgba(255,255,255,.8); }
.sl-wrap, .sl-impact { background: var(--bg-light); padding-bottom: 4rem; }
.sl-impact { padding-top: 3.5rem; }
.sl-bar { position: sticky; top: var(--header-h, 80px); z-index: 7; background: rgba(246,246,244,.97); backdrop-filter: blur(6px); border-bottom: 1px solid var(--c-rule); padding: .9rem 0 .6rem; margin-bottom: 1.25rem; }
.sl-bar__row { display: flex; align-items: center; gap: .75rem 1rem; flex-wrap: wrap; }
.sl-bar__row--2 { margin-top: .6rem; justify-content: space-between; }
.sl-search { flex: 1 1 260px; max-width: 420px; display: flex; align-items: center; gap: .5rem; background: #fff; border: 1.5px solid #d9d7cf; border-radius: 30px; padding: 0 1rem; color: var(--c-muted); transition: border-color .2s, box-shadow .2s; }
.sl-search:focus-within { border-color: var(--c-navy); box-shadow: 0 0 0 3px rgba(59,58,94,.12); }
.sl-search input { flex: 1; border: 0; outline: 0; background: none; font: inherit; padding: .65rem 0; color: var(--c-text); min-width: 0; }
.sl-chips, .sl-topics { display: flex; gap: .4rem; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.sl-chips::-webkit-scrollbar, .sl-topics::-webkit-scrollbar { display: none; }
.sl-chip, .sl-topic { flex: none; display: inline-flex; align-items: center; gap: .45rem; border: 1.5px solid #d9d7cf; background: #fff; color: var(--c-navy); border-radius: 30px; padding: .45rem .95rem; font: 700 .85rem var(--font-body); cursor: pointer; transition: all .2s; }
.sl-chip b { font-size: .72rem; background: var(--bg-mid); color: var(--c-navy); border-radius: 20px; padding: .05rem .5rem; }
.sl-chip:hover, .sl-topic:hover { border-color: var(--c-navy); }
.sl-chip.is-on { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }
.sl-chip.is-on b { background: var(--c-primary); color: var(--c-navy); }
.sl-topic { font-weight: 600; font-size: .8rem; padding: .35rem .8rem; }
.sl-topic.is-on { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-navy); }
.sl-sels { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.sl-sel select { appearance: none; border: 1.5px solid #d9d7cf; border-radius: 30px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%233b3a5e' stroke-width='1.8'/%3E%3C/svg%3E") right .85rem center / 11px no-repeat;
  padding: .45rem 2.2rem .45rem .95rem; font: 600 .82rem var(--font-body); color: var(--c-navy); cursor: pointer; max-width: 220px; }
.sl-reset { border: 0; background: none; color: var(--c-red-dk); font: 700 .82rem var(--font-body); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.sl-count { font-size: .9rem; color: var(--c-muted); margin: 0 0 1rem; }
.sl-count b { color: var(--c-navy); }
.sl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.sl-card { display: flex; flex-direction: column; background: #fff; border-radius: 14px; overflow: hidden; text-decoration: none; color: var(--c-text); box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: transform .25s, box-shadow .25s; }
.sl-card[hidden] { display: none; }
.sl-card { position: relative; }
.sl-card:hover .sl-card__title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.sl-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); color: var(--c-text); }
.sl-card__img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-mid); }
.sl-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.sl-card__img--art img { object-fit: contain; padding: .75rem; }
.sl-card:hover .sl-card__img img { transform: scale(1.05); }
.sl-card__body { flex: 1; display: flex; flex-direction: column; gap: .55rem; padding: 1.1rem 1.25rem 1.2rem; }
.sl-card__meta { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; font-size: .78rem; color: var(--c-muted); }
.sl-kind { font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; border-radius: 20px; padding: .2rem .6rem; background: var(--c-navy); color: #fff; }
.sl-card--feature .sl-kind, .sl-card--field .sl-kind { background: var(--c-primary); color: var(--c-navy); }
.sl-card--impact .sl-kind { background: var(--c-green); }
.sl-card__title { font-family: var(--font-display); font-weight: 700; font-size: 1.22rem; line-height: 1.22; color: var(--c-navy); }
.sl-card__text { font-size: .9rem; line-height: 1.55; color: #5a5a66; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sl-card__foot { margin-top: auto; padding-top: .4rem; display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.sl-tag { font-size: .72rem; font-weight: 600; color: var(--c-navy); background: var(--bg-mid); border-radius: 20px; padding: .2rem .6rem; }
.sl-card__go { margin-left: auto; display: inline-flex; align-items: center; gap: .35rem; font-size: .82rem; font-weight: 700; color: var(--c-red-dk); }
.sl-card__go .icon { transition: transform .2s; } .sl-card:hover .sl-card__go .icon, .sl-top:hover .sl-card__go .icon { transform: translateX(3px); }
.sl-none { text-align: center; padding: 2.5rem 1rem; }
.sl-none[hidden] { display: none; }
.sl-none h3 { font-family: var(--font-display); color: var(--c-navy); margin: .75rem 0 .3rem; }
.sl-more-wrap { text-align: center; margin: 2rem 0 0; }
.sl-more { background: var(--c-navy); }
.sl-impact .sc-head { margin-bottom: 1.5rem; }
.sl-impact .sl-bar { background: rgba(246,246,244,.97); }
@media (max-width: 1199.98px) { .sl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991.98px) { .sl-latest__grid { grid-template-columns: 1fr; } .sl-top--main { min-height: 340px; } .sl-latest__side { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767.98px) { .sl-bar { position: static; } .sl-latest__side { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) {
  .sl-grid { grid-template-columns: 1fr; gap: 16px; } .sl-search { max-width: none; flex-basis: 100%; }
  .sl-bar__row--2 { flex-direction: column; align-items: stretch; } .sl-sels { width: 100%; } .sl-sel { flex: 1; } .sl-sel select { width: 100%; max-width: none; }
  .sl-rss { margin-left: 0; } .sl-top--main { min-height: 300px; } .sl-top__body { padding: 1.1rem; } }
.sl-impact .sc-head h2 { font-family: var(--font-display); font-weight: 700; color: var(--c-navy); font-size: clamp(1.7rem, 2.8vw, 2.4rem); }
.sc-card__icon { align-self: center; width: 44px; height: 44px; }
.sc-card__link { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--c-rule);
  font-size: .82rem; font-weight: 700; color: var(--c-navy); text-decoration: none; line-height: 1.3; }
.sc-card__link span { font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); font-weight: 700; width: 100%; }
.sc-card__link .icon { color: var(--c-red-dk); transition: transform .2s; }
.sc-card__link a { color: inherit; text-decoration: none; }
.sc-card__link:hover, .sc-card__link a:hover { color: var(--c-red-dk); } .sc-card__link:hover .icon { transform: translateX(3px); }
/* scorecard result cards: everything centred */
.sc-card { text-align: center; align-items: center; }
.sc-card__n { justify-content: center; }
.sc-card__when { margin-left: 0; }
.sc-card__link { justify-content: center; width: 100%; }
.sc-card__n--long small { width: 100%; text-align: center; padding: 0; }
/* scorecard result cards: line 1 icon and figure, line 2 what it counts, line 3 when */
.sc-card { justify-content: flex-start; }
.sc-card__n { order: 0; display: flex; align-items: center; justify-content: center; gap: .7rem; margin: 0 0 .7rem; flex-wrap: nowrap; }
.sc-card__n .sc-card__icon { align-self: center; flex: none; width: 46px; height: 46px; }
.sc-card__n .sc-card__icon .icon { width: 20px; height: 20px; }
.sc-card__n b { font-size: 2.7rem; line-height: 1; font-weight: 400; color: var(--c-navy-dk); }
.sc-card__n--long b { font-size: 2.1rem; }
.sc-card__h { margin: 0 0 .5rem; font-size: 1.08rem; }
.sc-card__when { margin: 0; font-size: .82rem; }
.sc-card__link { margin-top: auto; }
.sc-card { gap: 0; }
.sc-card__when + .sc-card__link { margin-top: auto; padding-top: .75rem; }
.sc-card > .sc-card__when { margin-bottom: .9rem; }
/* scorecard theme filter: one line, scrolling sideways on narrow screens */
.sc-results .kpi-filter { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; max-width: 100%; -webkit-overflow-scrolling: touch; }
.sc-results .kpi-filter button { flex: none; white-space: nowrap; }
@media (max-width: 575.98px) { .sc-results .kpi-filter button { padding: 7px 11px; font-size: 13px; } }
@media (max-width: 767.98px) { .sc-results .kpi-filter { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); } }
/* case study hero, compact: category button, date and author; the title in normal case */
.cs-hero { padding: 2rem 0 4rem; }
.cs-hero__grid { grid-template-columns: 7fr 4fr; gap: 2.5rem; }
.cs-hero h1 { font-family: var(--font-display); text-transform: none; letter-spacing: .005em; font-size: clamp(1.6rem, 2.6vw, 2.25rem); line-height: 1.15; margin-bottom: .9rem; }
.cs-lead { font-size: clamp(1.02rem, 1.3vw, 1.15rem); margin-bottom: 1.1rem; }
.cs-kicker { gap: .6rem .9rem; margin-bottom: .9rem; }
.cs-kicker__cat { background: var(--c-primary); color: var(--c-navy); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; border-radius: 30px; padding: .3rem .85rem; text-decoration: none; }
.cs-kicker__cat:hover { background: #fff; color: var(--c-navy); }
.cs-kicker__by { color: rgba(255,255,255,.8); }
.cs-kicker__by b { color: #fff; }
.cs-kicker time + .cs-kicker__by::before { content: "·"; margin-right: .9rem; opacity: .6; }
.cs-hero__photo img { aspect-ratio: 4 / 3; box-shadow: 10px 10px 0 var(--c-primary); }
@media (max-width: 991.98px) { .cs-hero__grid { grid-template-columns: 1fr; gap: 1.5rem; } .cs-hero__photo { max-width: none; } }
@media (max-width: 575.98px) {
  .cs-hero { padding: 1.25rem 0 3.5rem; }
  .cs-hero h1 { font-size: 1.55rem; }
  .cs-lead { font-size: 1rem; }
  .cs-kicker { font-size: .75rem; }
  /* the photo lines up with the text: no offset frame, an amber line under it instead */
  .cs-hero__photo img { box-shadow: none; border-radius: 10px 10px 0 0; border-bottom: 5px solid var(--c-primary); aspect-ratio: 16 / 10; }
  .cs-hero__photo figcaption { margin-top: .6rem; }
  .cs-intro .container { gap: .75rem; } .cs-prose--lead p { font-size: 1.12rem; }
}

/* every post and impact story in the case study style */
.cs-hero--noimg .cs-hero__grid { grid-template-columns: 1fr; max-width: 52rem; }
.cs-hero__photo--art img { object-fit: contain; background: var(--bg-mid); padding: 1.25rem; }
.bp-sec { padding: 3.25rem 0; }
.bp-sec > .container > .section__tag, .bp-sec > .container > h2 { max-width: 46rem; margin-left: auto; margin-right: auto; }
.bp-entry { max-width: 46rem; margin: 0 auto; }
.bp-entry + .bp-cards, .bp-cards + .bp-entry { margin-top: 1.75rem; }
.bp-entry p, .bp-entry li { font-size: 1.0625rem; line-height: 1.75; color: #33333f; text-align: left; hyphens: none; }
.bp-entry h3, .bp-entry h4, .bp-entry h5 { font-family: var(--font-display); color: var(--c-navy); margin-top: 1.75rem; }
.bp-entry a { text-underline-offset: 3px; }
.bp-entry strong { color: var(--c-navy); }
.bp-entry ul:not([class*="cerc-"]) { background: #fff; border: 1px solid var(--c-rule); border-radius: 12px; padding: .5rem 1.25rem; margin: 1.25rem 0 1.5rem; }
.cs-sec--cream .bp-entry ul:not([class*="cerc-"]) { background: rgba(255,255,255,.7); }
.bp-entry ul:not([class*="cerc-"]) > li { margin: 0; padding: .7rem 0 .7rem 1.5rem; }
.bp-entry ul:not([class*="cerc-"]) > li + li { border-top: 1px solid var(--c-rule); }
.bp-entry ul:not([class*="cerc-"]) > li::before { top: 1.45rem; width: 7px; height: 7px; }
.bp-entry ol { list-style: none; counter-reset: step; padding: 0; margin: 1.25rem 0 1.5rem; display: grid; gap: .75rem; }
.bp-entry ol > li { counter-increment: step; position: relative; margin: 0; padding: 1rem 1.25rem 1rem 3.6rem; background: #fff; border: 1px solid var(--c-rule); border-radius: 12px; }
.bp-entry ol > li::before { content: counter(step); position: absolute; left: 1rem; top: .95rem; width: 1.85rem; height: 1.85rem; border-radius: 50%; background: var(--c-navy); color: #fff;
  font-weight: 800; font-size: .9rem; display: flex; align-items: center; justify-content: center; }
.bp-entry blockquote { margin: 2rem 0; padding: 1.5rem 1.6rem 1.25rem; border: 0; border-left: 5px solid var(--c-primary); background: #fff; border-radius: 0 12px 12px 0; box-shadow: var(--shadow-card); }
.bp-entry blockquote p { font-family: var(--font-display); font-style: normal; font-weight: 400; font-size: 1.25rem; line-height: 1.45; color: var(--c-navy); margin: 0 0 .6rem; }
.bp-entry blockquote cite { display: block; text-align: left; font-style: normal; font-size: .85rem; font-weight: 700; color: var(--c-red-dk); }
.bp-entry figure { margin: 2rem 0; }
.bp-entry figure img { display: block; width: 100%; height: auto; border-radius: 10px; }
.bp-entry figcaption { font-size: .85rem; line-height: 1.5; color: var(--c-muted); margin-top: .6rem; padding-left: .75rem; border-left: 3px solid var(--c-primary); text-align: left; }
.bp-entry > p:last-child:has(> em:only-child) { font-size: .88rem; color: var(--c-muted); border-top: 1px solid var(--c-rule); padding-top: 1.1rem; margin-top: 2rem; }
.bp-cards { max-width: 60rem; margin-left: auto; margin-right: auto; }
.cs-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bp-cards .cs-why h3 { font-size: 1.15rem; }
.cs-close__h { font-family: var(--font-display); color: #fff; font-size: 1.6rem; margin: 0 0 .9rem; }
.cs-intro .cs-prose--lead p { margin: 0; }
@media (max-width: 767.98px) { .cs-cards--2, .bp-cards.cs-cards--3, .bp-cards.cs-cards--4 { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) {
  .bp-sec { padding: 2.5rem 0; }
  .bp-entry p, .bp-entry li { font-size: 1rem; line-height: 1.7; }
  .bp-entry figure { margin-left: 0; margin-right: 0; }
  .bp-entry ol > li { padding: .9rem 1rem .9rem 3.2rem; } .bp-entry ol > li::before { left: .8rem; }
  .bp-entry blockquote { padding: 1.2rem 1.1rem 1rem; } .bp-entry blockquote p { font-size: 1.1rem; } }
/* posts in the case study style: left-aligned reading text (outweighs the site's justified :is(… .policy-sec .entry) rule) */
.bp-sec .entry.bp-entry :is(p, li), .bp-sec .entry.bp-entry blockquote p { text-align: left; }
.bp-cards .cs-why h3::first-letter { text-transform: uppercase; }
.cs-intro + .bp-sec:not(.cs-sec--cream) { padding-top: 0; }
.cs-intro { padding-bottom: 2.5rem; }
.bp-sec .bp-entry blockquote { padding: 1.5rem 1.6rem 1.25rem; border-left: 5px solid var(--c-primary); }
@media (max-width: 575.98px) { .bp-sec .bp-entry blockquote { padding: 1.2rem 1.1rem 1rem; } }
.bp-call { padding: 0 0 1rem; }
.bp-call__box { max-width: 46rem; margin: 0 auto; background: #fff; border: 2px solid var(--c-primary); border-radius: 14px; padding: 1.25rem 1.5rem; }
.bp-call__box p { margin: .3rem 0; text-align: left; font-size: 1rem; }
.bp-call__box strong { color: var(--c-navy); }
/* the lead paragraph of posts: Draft Natural only, 20px */
.cs-prose--lead p, .cs-prose--lead p :is(strong, b, em, i, a) { font-family: var(--font-display); }
.cs-prose--lead p { font-size: 20px; line-height: 1.5; font-weight: 400; color: var(--c-navy); }
.cs-prose--lead p :is(strong, b) { font-weight: 700; color: var(--c-navy); }
.cs-prose--lead p :is(em, i) { font-style: normal; }
@media (max-width: 575.98px) { .cs-prose--lead p { font-size: 20px; } }
/* news: the sector filter */
.sl-bar__row--2 { justify-content: flex-start; flex-wrap: nowrap; }
.sl-sector__h { flex: none; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.sl-topic { gap: .45rem; font-size: .82rem; padding: .42rem .9rem; }
.sl-topic b { font-size: .7rem; background: var(--bg-mid); color: var(--c-navy); border-radius: 20px; padding: .05rem .5rem; }
.sl-topic.is-on { background: var(--c-navy); border-color: var(--c-navy); color: #fff; }
.sl-topic.is-on b { background: var(--c-primary); color: var(--c-navy); }
.sl-topic.is-empty { opacity: .45; }
.sl-bar__row:first-child .sl-sels { margin-left: auto; }
@media (max-width: 767.98px) { .sl-bar__row--2 { flex-direction: column; align-items: flex-start; gap: .4rem; } .sl-topics { width: 100%; } }
@media (max-width: 575.98px) { .sl-bar__row:first-child .sl-sels { margin-left: 0; } }
.sl-topics { flex-wrap: wrap; overflow: visible; }
@media (max-width: 767.98px) { .sl-topics { flex-wrap: nowrap; overflow-x: auto; } }
@media (max-width: 575.98px) { .sl-bar__row:first-child .sl-sels { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; } .sl-bar__row:first-child .sl-sel select { width: 100%; max-width: none; } }
.sl-sel--sector select { max-width: 260px; font-weight: 700; }
@media (max-width: 575.98px) { .sl-bar__row:first-child .sl-sel--sector { grid-column: 1 / -1; } }

/* a magazine issue laid out as a newspaper has a portrait cover: its masthead and headline show in the frame */
.report--mag .report__image img, .mag-cover img, .mag-issue img, .mag-box--pdf img { object-position: top; }

/* Media: each issue of the magazine as a box – number and date, title, contents, Read online and PDF (no cover) */
.mag-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; align-items: stretch; }
.mag-card { --mc: var(--c-primary); position: relative; display: flex; flex-direction: column; background: #fff; border-radius: 18px; box-shadow: var(--shadow-card); padding: 26px 26px 24px; border-top: 6px solid var(--mc); transition: box-shadow .2s, transform .2s; }
.mag-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }
.mag-card.c-red { --mc: var(--c-red); } .mag-card.c-blue { --mc: var(--c-blue); } .mag-card.c-green { --mc: var(--c-green); } .mag-card.c-purple { --mc: var(--c-purple); }
.mag-card__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--c-rule); }
.mag-card__no { font-family: var(--font-display); font-weight: 700; font-size: clamp(34px, 3vw, 44px); line-height: 1; color: var(--mc); }
.mag-card__date { font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--c-navy); text-align: right; }
.mag-card__title { font-size: var(--fs-h4); line-height: 1.25; margin: 0 0 14px; }
.mag-card__title a { color: var(--c-navy); text-decoration: none; }
.mag-card__title a:hover { color: var(--c-red-dk); }
.mag-card__h { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--c-muted); margin: 0 0 8px; }
.mag-card__toc { list-style: none; counter-reset: toc; margin: 0 0 20px; padding: 0; }
.mag-card__toc li { counter-increment: toc; border-top: 1px dashed var(--c-rule); }
.mag-card__toc li:first-child { border-top: 0; }
.mag-card__toc a { display: grid; grid-template-columns: 28px 1fr; column-gap: 10px; padding: 9px 0; text-decoration: none; color: var(--c-text); font-size: 15.5px; line-height: 1.35; }
.mag-card__toc a::before { content: counter(toc, decimal-leading-zero); grid-row: 1 / span 2; font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--mc); line-height: 1.3; }
.mag-card__toc small { display: block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--c-muted); }
.mag-card__toc a:hover { color: var(--c-red-dk); }
.mag-card__note { color: var(--c-muted); font-size: 15px; margin: 0 0 20px; }
.mag-card__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.mag-card--archive { background: var(--bg-light); }
@media (max-width: 640px) { .mag-cards { gap: 18px; } .mag-card { padding: 20px 18px 18px; } }

/* text sizes chosen in the editor of /admin (admin/cms.js): classes, since font-size written in the HTML is removed */
.txt-14 { font-size: 14px; } .txt-16 { font-size: 16px; } .txt-18 { font-size: 18px; } .txt-20 { font-size: 20px; }
.txt-22 { font-size: 22px; } .txt-24, .txt-28, .txt-32 { line-height: 1.3; } .txt-24 { font-size: 24px; } .txt-28 { font-size: 28px; }
.txt-32 { font-size: 32px; }

/* printing: what only the printed page shows (assets/css/print.css) */
.print-head, .print-foot { display: none; }

/* a card's link is its title (it reads as the title of the page it opens); it stretches over the whole card, which stays clickable */
.card-link { color: inherit; text-decoration: none; }
.card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card-link:focus-visible { outline: none; }
:is(.sl-card, .sl-top, .card, .story, .blog-link, .pg-more, .pg-time li):focus-within { outline: 2px solid var(--c-primary); outline-offset: 3px; }
/* the latest news: the text sits in its own layer above the picture's shade, so its link reaches over the card from there */
.sl-top .card-link::after { inset: -100vh -100vw; }
.story:hover h3 a, .blog-link:hover .blog-link__title { text-decoration-color: var(--c-primary); }

/* the annual reports shown on Governance and on Our financial accountability: the link to all the reports */
.annual-more { margin: 28px 0 0; }

/* the sources at the end of a post (ul.post-sources): a small heading and the list in small type, without the boxed list */
.bp-sec:has(.post-sources) { padding-top: 1.25rem; padding-bottom: 1.75rem; }
.bp-sec:has(.post-sources) h2 { font-size: 14px; letter-spacing: .02em; margin-bottom: .35rem; }
.bp-entry ul.post-sources { background: none; border: 0; border-radius: 0; padding: 0; margin: 0; list-style: none; }
.bp-entry ul.post-sources > li, .bp-entry ul.post-sources > li + li { font-size: 12px; line-height: 1.5; margin: 0 0 .2rem; padding: 0; border: 0; color: #6b6b78; }
.bp-entry ul.post-sources > li::before { content: none; }
.bp-entry ul.post-sources a { font-weight: 400; color: #6b6b78; text-decoration: underline; text-decoration-color: rgba(107,107,120,.4); }
@media print { .bp-entry ul.post-sources > li { font-size: 7.5pt !important; } .bp-sec:has(.post-sources) h2 { font-size: 9pt !important; } }

/* ---------- The CERC assistant (assets/js/assistant.js): a compact panel above its button, after GovCheck's ----------
   sizes in px, not rem: the site's root size is large and the panel must stay a small window beside the page */
.assistant { position: absolute; right: 0; bottom: calc(100% + 14px); width: 370px; height: min(414px, calc(100vh - 220px)); min-height: 240px;
  display: flex; flex-direction: column; background: #fff; border-radius: 18px; box-shadow: 0 14px 44px rgba(39,39,62,.25); overflow: hidden;
  font-family: var(--font-body); font-size: 15px; line-height: 1.45; }
.assistant[hidden] { display: none; }
.assistant__head { display: flex; align-items: flex-start; gap: 8px; padding: 14px 14px 12px 18px; color: #fff;
  background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-navy-dk) 100%); }
.assistant__head div { flex: 1; min-width: 0; }
.assistant__avatar { flex: none; width: 40px; height: 40px; border-radius: 50%; box-shadow: 0 0 0 2px rgba(255,255,255,.85); }
.assistant__head h2 { margin: 0; font: 700 17px/1.2 var(--font-body); color: #fff; letter-spacing: 0; text-transform: none; }
.assistant__head p { margin: 2px 0 0; font-size: 12px; line-height: 1.35; color: rgba(255,255,255,.78); }
.assistant__btn { flex: none; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; }
.assistant__btn:hover { background: rgba(255,255,255,.28); }
.assistant__btn .icon { width: 14px; height: 14px; }
.assistant__log { flex: 1; overflow-y: auto; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; background: #fff; overscroll-behavior: contain; }
.assistant__msg { margin: 0; max-width: 86%; padding: 10px 13px; border-radius: 14px; font-size: 14.5px; line-height: 1.45; white-space: pre-line; }
.assistant__msg--bot { align-self: flex-start; background: #f2f1ec; color: #33333f; border-top-left-radius: 4px; }
.assistant__msg--user { align-self: flex-end; background: var(--c-navy); color: #fff; border-top-right-radius: 4px; }
.assistant__msg.is-waiting { color: var(--c-muted); font-style: italic; }
.assistant__msg:empty { display: none; }
.assistant__chips, .assistant__links, .assistant__results { list-style: none; margin: 0; padding: 0; }
.assistant__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.assistant__chip { border: 1px solid rgba(59,58,94,.35); background: #fff; color: var(--c-navy); border-radius: 999px; padding: 5px 12px;
  font: 600 13px/1.35 var(--font-body); cursor: pointer; text-align: left; }
.assistant__chip:hover { border-color: var(--c-navy); background: rgba(59,58,94,.06); }
.assistant__links { display: flex; flex-wrap: wrap; gap: 6px; }
.assistant__links a { display: inline-block; padding: 4px 10px; border-radius: 999px; background: rgba(236,163,39,.16); color: var(--c-navy-dk);
  font: 600 12.5px/1.35 var(--font-body); text-decoration: none; }
.assistant__links a:hover { background: rgba(236,163,39,.32); }
.assistant__found { display: flex; flex-direction: column; gap: 6px; max-width: 92%; }
.assistant__label { margin: 0; font: 700 11px var(--font-body); text-transform: uppercase; letter-spacing: .05em; color: var(--c-muted); }
.assistant__results { display: flex; flex-direction: column; gap: 6px; }
.assistant__result { display: block; padding: 8px 11px; background: #fff; border: 1px solid var(--c-rule); border-radius: 10px; text-decoration: none; color: #33333f; }
.assistant__result:hover { border-color: var(--c-primary); }
.assistant__result b { display: block; color: var(--c-navy-dk); font-size: 13.5px; line-height: 1.3; }
.assistant__result span { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: #5b5b66; }
.assistant__result i { display: block; margin-top: 3px; font-style: normal; font-weight: 700; font-size: 12px; color: var(--c-red-dk); }
.assistant__form { display: flex; align-items: center; gap: 8px; padding: 10px 12px 6px; border-top: 1px solid var(--c-rule); background: #fff; }
.assistant__form input { flex: 1; min-width: 0; height: 42px; border: 1px solid #cfd0d8; border-radius: 10px; padding: 0 12px; font: 15px var(--font-body); color: var(--c-text); background: #fff; }
.assistant__form input:focus { outline: 2px solid var(--c-navy); outline-offset: 0; border-color: transparent; }
.assistant__form button { flex: none; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--c-navy); color: #fff; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; }
.assistant__form button:hover { background: var(--c-red-dk); }
.assistant__note { margin: 0; padding: 0 14px 10px; background: #fff; font-size: 11px; line-height: 1.4; color: var(--c-muted); }
@media (max-width: 767.98px) {
  .assistant { position: fixed; right: 12px; left: 12px; top: auto; bottom: calc(132px + env(safe-area-inset-bottom)); width: auto;
    height: min(396px, calc(100vh - 230px)); }
}
@media print { .assistant { display: none !important; } }

/* GovCheck Climate Innovation (project page) */
.cl-note { max-width: 860px; margin: 1.75rem auto 0; text-align: center; color: var(--c-muted); }
.cl-how { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cl-motto { font-family: var(--font-display); font-size: 1.6rem; color: var(--c-primary); margin: 0; }
.bg-dark .cl-ai { gap: 16px 40px; }
.bg-dark .cl-ai li { color: rgba(255, 255, 255, .9); font-size: 1rem; }
.cl-pilot { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.cl-home { gap: 16px 40px; }
.cl-home li { font-size: 1rem; }
.cl-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cl-step__y { margin: 0 0 .35rem; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-primary); }
@media (max-width: 991.98px) {
  .cl-how, .cl-steps { grid-template-columns: minmax(0, 1fr); }
  .cl-pilot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Header and menu, as on wfp.org ----------
   CERC's logo on the left; on the right, a small top row (apps, Media & resources,
   language) above the main menu and the Donate button. Each item opens a full-width panel: the section's name, a
   sentence and a Read more button on a tinted block, then its pages in columns. Below 1200 px the ≡ button opens the
   menu over the page, and each item slides in its panel with a Back link. */
.header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: #fff; box-shadow: 0 2px 14px rgba(39,39,62,.08); }
.header__inner { display: flex; align-items: stretch; gap: 1.5rem; height: var(--header-h); }
.logo { flex: none; align-self: center; display: inline-flex; align-items: center; text-decoration: none; }
.logo img.logo__mark { display: block; width: auto; height: 59px; }
.nav-chevron { flex: none; transition: transform .2s; }
.nav-primary ul { list-style: none; margin: 0; padding: 0; }
.nav-top { display: flex; align-items: center; gap: .4rem; color: var(--c-navy); text-decoration: none; }
.nav-top:hover { color: var(--c-navy); }
.nav-apps { display: inline-flex; align-items: center; gap: .5rem; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; padding: 0; }
.nav-handler { display: none; background: none; border: 0; padding: 0; cursor: pointer; color: var(--c-navy); }
.nav-handler span { display: block; width: 26px; height: 3px; margin: 4px 0; background: currentColor; border-radius: 2px; transition: transform .25s, opacity .25s; }
.nav-open .nav-handler span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-open .nav-handler span:nth-child(2) { opacity: 0; }
.nav-open .nav-handler span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.btn.nav-cta { min-width: 0; min-height: 0; white-space: nowrap; }
.nav-cta--bar { display: none; }
.mega ul { margin: 0; font-size: inherit; line-height: 1.3; }
.mega__col li { margin: 0 0 .7rem; }
.mega__col a, .mega--lang a { color: var(--c-navy); font-weight: 500; line-height: 1.3; text-decoration: none; }
.mega__col a:hover, .mega__col a[aria-current], .mega--lang a:hover, .mega--lang a[aria-current] {
  color: var(--c-navy); text-decoration: underline; text-decoration-color: var(--c-primary); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.mega__cols--1 a { font-weight: 700; }
.mega__h { margin: 0 0 .8rem; font: 700 20.8px/1.2 var(--font-display); color: var(--c-navy); }
.mega__title { margin: 0 0 1rem; font: 700 22px/1.2 var(--font-display); color: var(--c-navy); }  /* the panel title: 22px */
.mega__intro p:not(.mega__title) { font-size: 18px; line-height: 1.5; }
.btn.mega__more { min-height: 0; padding: .65rem 1.3rem; font-size: 12px; }
.mega__back { display: none; }

@media (min-width: 1200px) {
  .logo { align-self: flex-end; height: 56px; }  /* on the line of the main menu, under the top row */
  .logo img.logo__mark { height: 50px; }
  .nav-primary { flex: 1; display: grid; grid-template-columns: auto auto; grid-template-rows: 40px 1fr; justify-content: end; align-items: center; column-gap: 1.5rem; }
  .nav-util { grid-column: 1 / -1; grid-row: 1; justify-self: end; align-self: end; display: flex; align-items: center; gap: 1.6rem; }
  .nav-util .nav-top, .nav-apps { font: 700 12px/1.5 var(--font-body); text-transform: uppercase; letter-spacing: .06em; color: #55546f; padding: .45rem 0; }
  .nav-util .nav-top:hover, .nav-apps:hover, .nav-util .is-open > .nav-top { color: var(--c-navy); }
  .nav-apps span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .nav-apps .icon { width: 17px; height: 17px; }
  .nav-util .is-open > .nav-top .nav-chevron { transform: rotate(180deg); }
  .nav-main { grid-column: 1; grid-row: 2; align-self: stretch; display: flex; }
  .nav-main > li > .nav-top { position: relative; height: 100%; padding: 0 1.1rem; font: 700 16px/1.2 var(--font-body); text-transform: uppercase; letter-spacing: .01em; white-space: nowrap; }
  .nav-main > li > .nav-top::after { content: ""; position: absolute; left: .55rem; right: .55rem; bottom: 0; height: 4px; background: var(--c-primary);
    transform: scaleX(0); transition: transform .2s; }
  .nav-main > li > .nav-top:hover::after, .nav-main > li.is-open > .nav-top::after, .nav-main > li.is-active > .nav-top::after { transform: none; }
  .nav-main .nav-chevron { display: none; }
  .nav-primary > .nav-cta { grid-column: 2; grid-row: 2; padding: .6rem 1.3rem; font-size: 12px; }
  .mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 1; max-height: calc(100vh - var(--header-h)); overflow-y: auto; background: #fff;
    border-top: 1px solid var(--c-rule); box-shadow: 0 22px 30px -16px rgba(39,39,62,.3); visibility: hidden; opacity: 0; transition: opacity .2s, visibility .2s; }
  .is-open > .mega { visibility: visible; opacity: 1; }
  .mega__inner { position: relative; display: grid; grid-template-columns: minmax(260px, 22rem) minmax(0, 1fr); column-gap: 3rem; }
  .mega__intro { padding: 2.75rem 1.75rem 2.25rem; background: var(--bg-light); }
  .mega__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 2.5rem; align-content: start; padding: 3.5rem 3.5rem 2.5rem 0; }
  .mega__col a { font-size: 15px; }
  .mega__cols--1 a { font-size: 15px; }
  .mega__close { position: absolute; top: .9rem; right: var(--gutter); display: inline-flex; padding: .4rem; border: 0; background: none; color: var(--c-navy); cursor: pointer; }
  .mega__close:hover { color: var(--c-primary-dk); }
  .nav-lang { position: relative; }
  .mega--lang { left: auto; right: -1rem; min-width: 11rem; border-top: 3px solid var(--c-primary); }
  .mega--lang .mega__inner { display: block; padding: .9rem 1.25rem .6rem; }
  .mega--lang .mega__title { display: none; }
  .mega--lang li { margin: 0 0 .5rem; font-size: 15px; }
}
@media (min-width: 1200px) and (max-width: 1365.98px) { .nav-main > li > .nav-top { padding: 0 .8rem; } .mega__cols { padding-right: 2.5rem; column-gap: 1.75rem; } }
.nav-primary > .nav-cta { flex: none; min-width: max-content; }

/* tablets and phones: the Donate button and ≡ beside the logo, the menu covers the page */
@media (max-width: 1199.98px) {
  .header__inner { align-items: center; gap: .75rem; }
  .nav-cta--bar { display: inline-flex; margin-left: auto; padding: 9px 16px; font-size: 12px; }
  .nav-handler { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; }
  body.nav-open { overflow: hidden; }  /* the page does not scroll behind the open menu */
  .nav-primary { position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; padding: 0 0 6rem;
    overflow-y: auto; overscroll-behavior: contain; background: #fff; border-top: 1px solid var(--c-rule); visibility: hidden; opacity: 0; transition: opacity .2s, visibility .2s; }
  .nav-open .nav-primary { visibility: visible; opacity: 1; }
  .nav-main { order: 1; } .nav-util { order: 2; }
  .nav-main > li, .nav-util > li { border-bottom: 1px solid var(--c-rule); }
  .nav-main .nav-top, .nav-util .nav-top, .nav-apps { justify-content: space-between; width: 100%; min-height: 54px; padding: .8rem var(--gutter);
    font: 700 18px/1.3 var(--font-body); color: var(--c-navy); text-align: left; }
  .nav-main .nav-top { font-size: 16px; text-transform: uppercase; letter-spacing: .01em; }
  .nav-apps { justify-content: flex-start; gap: .7rem; } .nav-apps .icon { color: var(--c-primary); }
  .nav-top .nav-chevron { transform: rotate(-90deg); color: var(--c-primary); }
  .nav-primary > .nav-cta { order: 3; align-self: flex-start; margin: 1.5rem var(--gutter) 0; }
  .mega { position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; z-index: 2; overflow-y: auto; overscroll-behavior: contain; background: #fff;
    border-top: 1px solid var(--c-rule); transform: translateX(100%); visibility: hidden; transition: transform .25s, visibility .25s; }
  .is-open > .mega { transform: none; visibility: visible; }
  .mega__inner { padding: 0 0 6rem; max-width: none; }
  .mega__back { display: flex; align-items: center; gap: .6rem; width: 100%; min-height: 54px; padding: .8rem var(--gutter); border: 0; border-bottom: 1px solid var(--c-rule);
    background: none; font: 700 18px/1.3 var(--font-body); color: var(--c-navy); cursor: pointer; }
  .mega__back .nav-chevron { transform: rotate(90deg); color: var(--c-primary); }
  .mega__intro { padding: 1.75rem var(--gutter); background: var(--bg-light); }
  .mega__cols { padding: 0 var(--gutter); }
  .mega__col { padding: 1.25rem 0 .75rem; border-bottom: 1px solid var(--c-rule); }
  .mega__col:last-child { border-bottom: 0; }
  .mega__col a { display: block; padding: .35rem 0; font-size: 15px; }
  .mega__close { display: none; }
  .mega--lang .mega__title { padding: 1.5rem var(--gutter) .5rem; }
  .mega--lang ul { padding: 0 var(--gutter); }
  .mega--lang li { margin: 0 0 .5rem; }
  .mega--lang a { display: block; padding: .35rem 0; font-size: 15px; }
}
@media (max-width: 991.98px) { .logo img.logo__mark { height: 44px; } }
@media (max-width: 479.98px) { .nav-cta--bar { display: none; } .nav-handler { margin-left: auto; } }
@media (max-width: 374.98px) { .logo img.logo__mark { height: 40px; } }

/* ---------- Footer, as on wfp.org ----------
   On navy, the menu sections in three columns, then the logo and address, Follow
   us (with the apps) and Support us, the ECOSOC status, and a bottom line with the copyright and the legal links.
   Centred on phones. */
.footer ul { list-style: none; margin: 0; padding: 0; }
.footer__main { background: linear-gradient(180deg, var(--c-navy) 0%, var(--c-navy-dk) 100%); padding: 3.25rem 0 0; }
.footer__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 3rem; }
.footer__h { margin: 0 0 1rem; font: 700 20px/1.2 var(--font-body); text-transform: uppercase; letter-spacing: .02em; }
.footer__h a { color: var(--c-primary); font-weight: inherit; }
.footer__h a:hover { color: var(--c-primary); }
.footer__col ul { margin-bottom: 2.5rem; }
.footer__col li { margin: 0 0 .5rem; font-size: 16px; line-height: 1.5; }
.footer__mid { display: grid; grid-template-columns: 1.3fr 1fr auto; gap: 2.5rem 3rem; align-items: start; padding: 1.5rem 0 2.5rem; }
.footer__logo img { display: block; width: 300px; max-width: 100%; height: auto; }
.footer__org address { margin: -8px 0 0; padding-left: 11px; font-style: normal; font-size: 16px; font-weight: 700; line-height: 1.5; }  /* right under the logo (its built-in clear space), in bold */
.footer__org address a { font-weight: 700; }
.footer__mid-h { margin: .5rem 0 1.1rem; font: 700 24px/1.2 var(--font-body); color: #fff; }
.footer__social { display: flex; flex-wrap: wrap; gap: 1.1rem; }
.footer__social a { display: inline-flex; color: #fff; transition: color .2s; }
.footer__social a:hover { color: var(--c-primary); }
.footer__social .icon { width: 28px; height: 28px; }
.footer .btn.footer__donate { min-height: 56px; font-weight: 700; padding: 14px 34px; font-size: 18px; border-radius: 6px; }
.footer__ecosoc { display: flex; align-items: center; gap: .75rem; margin: 0; padding: 1.1rem 0; border-top: 1px solid rgba(255,255,255,.2);
  font-size: var(--fs-small) !important; font-weight: 600; line-height: 1.4; }
.footer__ecosoc .icon { width: 22px; height: 22px; color: var(--c-primary); }
.footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 2rem; padding: 1.4rem 0 1.75rem;
  border-top: 1px solid rgba(255,255,255,.2); }
.footer__bottom p { margin: 0; font-size: 16px; font-weight: 700; }
.footer__links { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.75rem; }
.footer__links li { font-size: 16px; line-height: 1.5; }
@media (max-width: 991.98px) {
    .footer__mid { grid-template-columns: 1fr 1fr; }
  .footer__support { grid-column: 2; }
}
@media (max-width: 767.98px) {
  .footer { text-align: center; }
    .footer__nav, .footer__mid { grid-template-columns: 1fr; }
  .footer__support { grid-column: auto; }
  .footer__col ul { margin-bottom: 2rem; }
  .footer__logo img { margin: 0 auto; }
  .footer__org address { padding-left: 0; }
  .footer__social, .footer .app-btns, .footer__links { justify-content: center; }
  .footer .app-btns { margin: 0 auto; }
  .footer__ecosoc { justify-content: center; text-align: left; }
  .footer__bottom { flex-direction: column; padding-bottom: 6rem; }  /* clear of the app tab bar */
}

/* titles and running text at the sizes of wfp.org on every kind of page (news, stories, case studies, reports),
   whose own layouts set other sizes above */
.cs-hero h1, .pr-head h1, .story-hero h1, .fs-head h1, .sl-hero h1 { font-size: var(--fs-h1); }
.cs-prose p, .bp-entry p, .bp-entry li, .mag-article__body p { font-size: var(--fs-body); line-height: var(--lh-body); }
.story-text { --fs-story: var(--fs-body); }
.story-text p, .story-text li { line-height: var(--lh-body); }

/* About corruption pages (Ending corruption, Conflict and corruption…), as wfp.org's About hunger: figures with
   their source, causes in boxes, the SDG 16 targets and CERC's SDGs */
.ct-sec h2 { margin-bottom: 1.5rem; color: var(--c-navy); }
.ct-sec .content-col h2 { margin-top: 0; }
.ct-numbers .stat small { display: block; margin-top: .6rem; font-size: var(--fs-small); color: var(--c-muted); }
.ct-numbers .stat p { margin: 0; }
.ct-more { margin: 2rem 0 0; }
.ct-sec--numbers .ct-more { text-align: center; }
.ct-quote { margin: 2rem 0 0; padding: 1.5rem 1.75rem; border-left: 6px solid var(--c-primary); background: #fff; box-shadow: var(--shadow-card); }
.ct-quote p { margin: 0; font-family: var(--font-display); font-size: var(--fs-h4); line-height: 1.35; color: var(--c-navy); }
.ct-points { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ct-points li { padding: 1.5rem 1.75rem; background: #fff; border-top: 4px solid var(--c-red); box-shadow: var(--shadow-card); }
.ct-points h3 { margin: 0 0 .5rem; color: var(--c-navy); }
.ct-points p { margin: 0; }
.ct-evidence { list-style: none; margin: 0; padding: 0; counter-reset: ev; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ct-evidence li { display: flex; flex-direction: column; padding: 1.5rem 1.75rem; background: #fff; border-top: 4px solid var(--c-red); box-shadow: var(--shadow-card); }
.ct-evidence li > div { display: flex; flex-direction: column; flex: 1; }
.ct-evidence__n { display: block; font-family: var(--font-display); font-weight: 700; font-synthesis: none; font-size: 2.2rem; line-height: 1.1; color: var(--c-red); margin-bottom: .35rem; }
.ct-evidence h3 { margin: 0 0 .6rem; color: var(--c-navy); }
.ct-evidence p { margin: 0 0 .9rem; }
.ct-evidence small { display: block; margin-top: auto; font-size: var(--fs-small); line-height: 1.4; color: var(--c-muted); }
.ct-evidence small a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.ct-evidence small a:hover { color: var(--c-navy); }
.ct-sec--evidence .content-col { margin-bottom: 2rem; }
.ct-sec--evidence .content-col p { font-size: var(--fs-lead, 1.125rem); }
.ct-targets { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
.ct-targets li { display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 1.25rem; background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); }
.ct-targets span { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 3.4rem; height: 3.4rem; padding: 0 .4rem; border-radius: 8px;
  background: #00689d; color: #fff; font-weight: 700; font-size: 1rem; }  /* SDG 16 blue */
.ct-targets p { margin: 0; align-self: center; }
.ct-sdgs { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.ct-sdgs li { display: flex; gap: 1.5rem; align-items: center; padding: 1.25rem 1.5rem; background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); }
.ct-sdgs__icons { flex: none; display: flex; gap: 6px; }
.ct-sdgs__icons img { display: block; width: 72px; height: 72px; }
.ct-sdgs h3 { margin: 0 0 .35rem; color: var(--c-navy); }
.ct-sdgs p { margin: 0; }
@media (max-width: 767.98px) {
  .ct-points, .ct-targets, .ct-evidence { grid-template-columns: minmax(0, 1fr); }
  .ct-sdgs li { flex-direction: column; align-items: flex-start; gap: .9rem; }
  .ct-sdgs__icons img { width: 60px; height: 60px; }
}

/* the menu in the font of wfp.org, Open Sans, with WFP's weights: main items 700, top row 700, Donate 800, panel titles
   and headings 800, panel links 400 */
:root { --font-menu: "Open Sans", system-ui, sans-serif; }
.nav-top, .nav-main > li > .nav-top, .nav-main .nav-top, .nav-util .nav-top, .nav-apps, .mega, .mega__h, .mega__title, .mega__back,
.header .btn { font-family: var(--font-menu); }
.header .nav-cta, .header .btn.mega__more { font-weight: 800; }
.mega__h, .mega__title { font-weight: 800; }
.mega__col a, .mega__cols--1 a, .mega--lang a { font-weight: 400; }

/* Where we work (home page), as on wfp.org: centred title, the DRC map, a card over the map for each province where we
   work (or the list of them), the legend and a note on boundaries. Without the map, the cards are listed. */
.where__head { max-width: 46rem; margin: 0 auto 2rem; text-align: center; }
.where__head h2 { margin: 0 0 .75rem; color: var(--c-navy); }
.where__head p { margin: 0 0 1.25rem; }
.where__head .btn { min-height: 0; padding: .65rem 1.3rem; font: 800 12px/1.5 var(--font-menu, var(--font-body)); text-transform: uppercase; }
.where__stage { position: relative; }
.where__map { height: 0; }
.where.has-map .where__map { height: clamp(340px, 50vw, 500px); border-radius: 12px; overflow: hidden; background: #eef3f6; }
.where__panel { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.where.has-map .where__panel { position: absolute; top: 16px; left: 16px; bottom: 16px; z-index: 3; width: min(380px, calc(100% - 32px)); display: block; pointer-events: none; }
.where__card, .where__list { position: relative; background: #fff; border-radius: 10px; box-shadow: 0 10px 30px rgba(39,39,62,.18); padding: 1.5rem 1.5rem 1.25rem; }
.where.has-map .where__card, .where.has-map .where__list { max-height: 100%; overflow-y: auto; pointer-events: auto; }
.where__card[hidden], .where__list[hidden] { display: none; }
.where:not(.has-map) .where__card[hidden] { display: block; }  /* no map: every card is shown */
.where:not(.has-map) .where__close, .where:not(.has-map) .where__all { display: none; }
.where__close { position: absolute; top: .6rem; right: .6rem; display: inline-flex; padding: .35rem; border: 0; background: none; color: var(--c-navy); cursor: pointer; }
.where__close:hover { color: var(--c-primary-dk); }
.where__kicker { margin: 0 0 .25rem; font-size: var(--fs-small); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--c-red); }
.where__card h3, .where__list h3 { margin: 0 0 .6rem; padding-right: 2rem; color: var(--c-navy); }
.where__card p, .where__card li { font-size: 16px; line-height: 1.5; }
.where__card ul { margin: 0 0 1rem; padding-left: 1.1rem; }
.where__card li { margin-bottom: .35rem; }
.where__links { display: flex; flex-direction: column; gap: .4rem; margin: 0; }
.where__links .link-arrow { font-size: 14px; }
.where__list ul { list-style: none; margin: 0; padding: 0; }
.where__list li + li { border-top: 1px solid var(--c-rule); }
.where__list ul button { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: .8rem 0; border: 0; background: none;
  font: 700 16px/1.3 var(--font-menu, var(--font-body)); color: var(--c-navy); cursor: pointer; text-align: left; }
.where__list ul button .icon { color: var(--c-primary); }
.where__label { font: 600 11px/1.1 var(--font-menu, var(--font-body)); color: #6b6f7d; text-shadow: 0 0 3px #fff, 0 0 3px #fff; pointer-events: none; white-space: nowrap; }
.where__label--work { padding: 3px 7px; border: 0; border-radius: 99px; background: rgba(255,255,255,.92); color: var(--c-navy); font-size: 13px; font-weight: 800;
  text-shadow: none; pointer-events: auto; cursor: pointer; box-shadow: 0 1px 4px rgba(39,39,62,.25); }
.where__label--work:hover, .where__label--work:focus-visible { background: var(--c-primary); color: #fff; }
.where__town { display: flex; align-items: center; gap: 4px; pointer-events: none; }
.where__town i { width: 10px; height: 10px; border-radius: 50%; background: #fff; border: 2px solid var(--c-navy); }
.where__town b { font: 700 12px/1 var(--font-menu, var(--font-body)); color: #fff; text-shadow: 0 0 3px var(--c-navy), 0 0 3px var(--c-navy); }
.where__town--office i { width: 14px; height: 14px; background: var(--c-primary); border-color: #fff; box-shadow: 0 0 0 2px var(--c-primary); }
.where__legend { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.75rem; margin: 1.25rem 0 .5rem; padding: 0; font-size: var(--fs-small); }
.where__key { display: inline-flex; align-items: center; gap: .5rem; }
.where__key::before { content: ""; width: 16px; height: 12px; border-radius: 2px; background: var(--c-navy); }
.where__key--office::before { width: 12px; height: 12px; border-radius: 50%; background: var(--c-primary); }
.where__key--town::before { width: 8px; height: 8px; border-radius: 50%; background: #fff; border: 2px solid var(--c-navy); }
.where:not(.has-map) .where__legend { display: none; }
.where__note { max-width: 46rem; margin: 0 auto; text-align: center; font-size: 13px !important; line-height: 1.45; color: var(--c-muted); }
.where .maplibregl-ctrl-group button { width: 34px; height: 34px; }
@media (max-width: 767.98px) {
  .where.has-map .where__panel { position: static; width: auto; margin-top: 12px; pointer-events: auto; }
  .where.has-map .where__card, .where.has-map .where__list { max-height: none; box-shadow: var(--shadow-card); }
  .where__label:not(.where__label--work) { display: none; }  /* phones: only the provinces where we work are named */
  .where__town b { display: none; }
}
/* menu panels: links 15px on a 16.5px line, 6.6px apart, group headings 1.2 with 10.4px below */
@media (min-width: 1200px) {
  .mega__col li { margin: 0 0 6.6px; }
  .mega__col a { display: block; line-height: 1.1; }
  .mega__h { margin-bottom: 10.4px; line-height: 1.2; }
}

/* footer: the citizen monitoring apps in a column beside the menu sections, one app per line */
.footer__navs { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 0 3rem; }
.footer__apps .app-btns { display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; margin: 0 0 2.5rem; }
@media (max-width: 991.98px) { .footer__navs { grid-template-columns: 1fr; } }
@media (max-width: 767.98px) { .footer__apps .app-btns { align-items: center; } }
@media (min-width: 992px) {   /* on computers the apps are larger: logo 32px, name 1.1rem */
  .footer__apps .app-btns { gap: .8rem; }
  .footer__apps .btn-app { padding: .45rem .85rem; border-radius: .5rem; }
  .footer__apps .app-logo { gap: .55rem; }
  .footer__apps .app-logo__mark { width: 32px; height: 32px; }
  .footer__apps .app-logo__name { font-size: 1.1rem; }
  .footer__apps .app-logo__by { margin-top: .15rem; padding-left: .3rem; font-size: .56rem; }
}

/* Get involved panel: a Donate button under its links, as the one in the header */
.header .btn.mega__donate { display: inline-flex; width: auto; min-height: 0; margin-top: 4px; padding: .6rem 1.3rem; font: 800 12px/1.5 var(--font-menu); text-transform: uppercase; color: #fff; }

/* Where we work: less white space – the next section (same white background) brings its own top space */
.section.where { padding: 60px 0 0; }
@media (max-width: 767.98px) { .section.where { padding: 40px 0 0; } }

/* Impact (Scorecard) page and the blocks it shares with other pages: running text at the body size (18px on 27px),
   dates, sources, labels and "read more" links at the small size (14px) – these blocks were sized in rem when rem was
   larger, which left them between the two */
.sc-card__h, .sc-ctx p, .sc-new p, .chain__step p, .impact-area ul li, .sl-card__text { font-size: var(--fs-body); line-height: var(--lh-body); }
.sc-card__when, .sc-src, .sc-ctx small, .sc-hero__label, .sc-hero__areas, .sc-hero__count p span, .sc-tier span, .sc-hero .sc-tier span,
.sc-card__link, .sc-card__link a, .impact-area .link-arrow, .fchart__tip, .fchart__note, .trust-badge span { font-size: var(--fs-small); }
.sc-hero__lead { font-size: var(--fs-lead); }  /* as the lead of every page */
.impact-area h3, .sl-card__title { font-size: var(--fs-h4); }  /* titles on the scale: h4 */

/* Who we are: the sentence that says what CERC is, in Draft Natural bold 20px */
.hero__lead.hero__lead--org { font: 700 20px/1.5 var(--font-display); }
/* reports in the WFP style (online edition): theme of a story, foreword portrait and quote, pull quotes, key figures */
.report-theme { margin: 0 0 .4rem; font-size: var(--fs-small); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-red-dk); }
.report-foreword { display: grid; grid-template-columns: 140px 1fr; gap: 24px; align-items: center; margin: .75rem 0 1.25rem; }
.report-foreword__photo { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; border: 5px solid var(--c-primary); }
.report-foreword__quote { margin: 0; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.3; color: var(--c-blue-dk); }
.report-pull { margin: 0 0 1.25rem; padding: .9rem 0 .9rem 1.25rem; border-left: 5px solid var(--c-primary); font-family: var(--font-display); font-size: 1.3rem; line-height: 1.3; color: var(--c-navy); }
.report-pull p { margin: 0; text-align: left !important; font-size: inherit !important; }
.report-pull cite { display: block; margin-top: .5rem; font-family: var(--font-body); font-size: var(--fs-small); font-style: normal; font-weight: 600; color: var(--c-muted); }
.report-glance__label { margin: 1rem 0 .5rem; font-family: var(--font-display); font-size: 1.2rem; color: var(--c-navy); }
.report-glance .incl-figures { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
@media (max-width: 599.98px) { .report-foreword { grid-template-columns: 1fr; } .report-foreword__photo { width: 120px; height: 120px; } }
/* cerc.cd/uvira: the map of the city (MapLibre over OpenStreetMap data), its legend and the cards under it */
.uvira__map { height: 0; }
.uvira.has-map .uvira__map { height: clamp(420px, 72vh, 760px); border-radius: 12px; overflow: hidden; background: #f1ede3; }
.uvira.no-map .uvira__map { height: auto; }
.uvira__fallback { display: none; margin: 0; padding: 1rem 1.25rem; background: var(--bg-light); border-radius: 12px; }
.uvira.no-map .uvira__fallback { display: block; }
.uvira__label { font: 600 12px/1.1 var(--font-menu, var(--font-body)); color: #5e6270; text-shadow: 0 0 3px #f1ede3, 0 0 3px #f1ede3, 0 0 4px #f1ede3; pointer-events: none; white-space: nowrap; }
.uvira__label--town { font-size: 16px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--c-navy); }
.uvira__label--suburb { font-size: 13px; font-weight: 700; color: var(--c-navy); }
.uvira__label--river { font-size: 11px; font-style: italic; font-weight: 600; color: #3f7ea3; text-shadow: 0 0 3px #fff, 0 0 3px #fff; }
.uvira__office { display: flex; align-items: center; gap: 6px; pointer-events: none; }
.uvira__office i { width: 16px; height: 16px; border-radius: 50%; background: var(--c-primary); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--c-primary); }
.uvira__office b { padding: 3px 8px; border-radius: 99px; background: var(--c-navy); color: #fff; font: 700 12px/1.2 var(--font-menu, var(--font-body)); white-space: nowrap; }
.uvira__legend { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: center; margin: 1rem 0 0; padding: 0; list-style: none; font-size: var(--fs-small); }
.uvira__key { display: inline-flex; align-items: center; gap: .5rem; }
.uvira__key i { width: 18px; height: 0; border-top: 3px solid var(--c-navy); }
.uvira__key--limit i { border-top-style: dashed; }
.uvira__key--river i { border-top-color: #6fa9cc; }
.uvira__key--road i { border-top-color: #f6d68a; border-top-width: 4px; }
.uvira__key--office i { width: 12px; height: 12px; border: 0; border-radius: 50%; background: var(--c-primary); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--c-primary); }
.uvira__toggle { display: inline-flex; align-items: center; gap: .45rem; cursor: pointer; }
.uvira__toggle input { accent-color: var(--c-navy); margin: 0; }
.uvira__toggle i { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
.uvira:not(.has-map) .uvira__legend { display: none; }
.uvira__popup .maplibregl-popup-content { padding: .45rem .7rem; font: 600 13px/1.3 var(--font-body); color: var(--c-navy); border-radius: 8px; box-shadow: 0 6px 20px rgba(39,39,62,.2); }
.uvira__note { margin: .75rem 0 0; font-size: var(--fs-small); color: var(--c-muted); }
.uvira__facts { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 2rem 0 0; }
.uvira__fact { background: #fff; border-radius: 10px; box-shadow: var(--shadow-card); padding: 1.4rem 1.5rem; }
.uvira__fact h3 { margin: 0 0 .5rem; color: var(--c-navy); }
.uvira__fact p { margin: 0 0 .75rem; font-size: 16px; line-height: 1.5; }
.uvira__fact .link-arrow { font-size: 14px; }
.uvira__fact em { display: block; font-family: var(--font-display); font-style: normal; font-size: 2rem; line-height: 1; color: var(--c-red); margin-bottom: .35rem; }
.uvira__stage { position: relative; }
.uvira__locator { position: absolute; left: 12px; bottom: 32px; z-index: 2; margin: 0; padding: 6px; background: rgba(255,255,255,.92); border-radius: 8px; box-shadow: 0 4px 14px rgba(39,39,62,.18); pointer-events: none; }
.uvira__inset { display: block; width: 96px; height: 120px; }
.uvira:not(.has-map) .uvira__locator { display: none; }
.uvira__legend--toggles b { font-weight: 700; color: var(--c-navy); }
@media (max-width: 599.98px) { .uvira__locator { display: none; } .uvira.has-map .uvira__map { height: clamp(380px, 80vh, 560px); } }

/* Body text at the size of integrityaction.org's running text: 16px on phones, 20px from 768px.
   Post titles (posts, press releases, stories) at the size and line height of the home page intro
   ("Nous aidons les gouvernements…"), through one shared value so they stay equal. As on integrityaction.org:
   Draft Natural for titles, Barlow for text. */
:root {
  --fs-body: 16px;
  --fs-hero-lead: calc(max(calc(var(--fs-display) / 2), var(--fs-body)) * 1.44);
}
@media (min-width: 768px) { :root { --fs-body: 19px; } }
.hero--hp .hero__lead { font-size: var(--fs-hero-lead); line-height: 1.1; }
.cs-hero h1, .pr-head h1, .fs-head h1, .story-hero h1 { font-family: var(--font-display); font-size: var(--fs-hero-lead); line-height: 1.1; }


/* Section titles in amber, as on integrityaction.org (titles on dark bands stay white) */
.where__head h2, .sl-latest__h, .wb-more h2, .contact-form h2 { color: var(--c-primary); }

/* All titles on white and light backgrounds in amber (integrityaction.org's title colour). Titles on dark bands, photos
   and coloured cards keep their colour; figures and result labels are not titles; the footer is outside #main. */
#main :is(h1, h2, h3, h4, h5, h6, .sl-top__title):not(.kpi__n, .sc-card__h):not(:is(.bg-dark, .cs-hero, .cs-close, .cs-sec--navy, .sl-hero, .sl-top, .report-web-divider, .mag-hero, .impact-hero, .pp-where, .pp-circle, .pp-together, .sc-hero, .sc-updates, .chain, .cs-card) *) { color: var(--c-primary); }
#main :is(.vm-tile, .home-act) :is(h2, h3, h4) { color: var(--c-primary); }  /* white tiles inside a dark band */

/* Story and news card titles in navy (subtitles inside posts and stories stay amber) */
#main .sl-card .sl-card__title { color: var(--c-navy); }

/* "Annual reports and financial statements": the page title at 22px (the page is the only one holding the reports library) */
#main:has(.rep-lib) .page-hero h1 { font-size: 22px; line-height: 1.2; }

/* Careers page ("Volunteer with us" and the other section titles) at 21.5px */
#main .careers h2 { font-size: 21.5px; line-height: 1.2; }

/* Links inside the text of posts, stories and pages (paragraphs, lists, tables, quotes): text in the body colour (#414141),
   underlined in amber (bold inside a link keeps it). Buttons, cards and links on dark bands keep their own style. */
#main :is(p, li, dd, td, th, blockquote, figcaption) a:not(.btn, .card-link, .link-arrow, [class*="card"], [class*="__title"], [class*="tile"]):not(:is(nav, .list--social, [class*="nav"], .bg-dark, .bg-navy, .cs-hero, .cs-close, .cs-sec--navy, .sl-hero, .sl-top, .mag-hero, .impact-hero, .sc-hero, .sc-updates, .sc-nav, .pp-where, .pp-circle, .pp-together, .chain, .cs-card, .bp-call, .home-support, .report-web-divider) *) { color: #414141; text-decoration: underline; text-decoration-color: var(--c-primary); text-decoration-thickness: 2px; text-underline-offset: 3px; }
#main :is(p, li, dd, td, th, blockquote, figcaption) a:not(.btn, .card-link, .link-arrow, [class*="card"], [class*="__title"], [class*="tile"]):not(:is(nav, .list--social, [class*="nav"], .bg-dark, .bg-navy, .cs-hero, .cs-close, .cs-sec--navy, .sl-hero, .sl-top, .mag-hero, .impact-hero, .sc-hero, .sc-updates, .sc-nav, .pp-where, .pp-circle, .pp-together, .chain, .cs-card, .bp-call, .home-support, .report-web-divider) *):hover { color: var(--c-primary-dk); text-decoration-color: var(--c-primary-dk); }
#main a strong { color: inherit; }
/* Subtitles inside posts and stories (their body sections): navy, 21.5px */
#main :is(.bp-sec, .cs-intro) :is(h2, h3):not(:is(.cs-card, .cs-sec--navy, .bg-dark) *) { font-size: 21.5px; line-height: 1.2; color: var(--c-navy); }
