/* Heading font: Draft Natural by Ryan Martinson / Yellow Design Studio (commercial
   web licence held by CERC, also used for the Fondation Gisaro Muhoza site). 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("/assets/fonts/draft-natural/draft-natural-regular.woff2") format("woff2"),
       url("/assets/fonts/draft-natural/draft-natural-regular.woff") format("woff"); }
@font-face { font-family: "Draft Natural"; font-weight: 700; font-display: swap;
  src: url("/assets/fonts/draft-natural/draft-natural-bold.woff2") format("woff2"),
       url("/assets/fonts/draft-natural/draft-natural-bold.woff") format("woff"); }
@font-face { font-family: "Draft Natural A"; font-weight: 700; font-display: swap;
  src: url("/assets/fonts/draft-natural/draft-natural-a-bold.woff2") format("woff2"); }

/* Fondation Gisaro Muhoza — static site, built on the CERC (cerc.cd) design system. 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;
  --footer-top: #414141; --footer-bottom: #353535;
  --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. The sizes are fluid: they grow
     smoothly with the screen, from phones (390px wide) to computers (1280px and more), where they stop growing. */
  --fs-body: clamp(16.5px, 15.4px + .28vw, 18.5px); --lh-body: 1.6;   /* running text: 16.5px on phones, 18.5px on computers */
  --fs-small: clamp(14px, 13.4px + .15vw, 15.5px);                   /* 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(30px, 23px + 1.9vw, 44px);                     /* homepage headline */
  --fs-h1: clamp(28px, 22px + 1.5vw, 40px);                          /* page titles */
  --fs-h2: clamp(25px, 19px + 1.5vw, 36px);                          /* section titles */
  --fs-h3: clamp(19px, 17px + .5vw, 23px);                           /* titles in the body and on cards */
  --fs-h4: clamp(17.5px, 16px + .35vw, 20.5px);
  --fs-h5: calc(var(--fs-body) * 1.02);
}
@media (max-width: 767.98px) { :root { --lh-body: 1.55; } }
*, *::before, *::after { box-sizing: border-box; }
html { font-size: clamp(16.5px, 15.6px + .3vw, 19.32px); -webkit-text-size-adjust: 100%; } /* rem: 19.32px on computers (1240px and wider), down to 16.5px on phones */
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 ---------- */
.header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: #fff;
  box-shadow: 0 -5px 18px -5px rgba(17,17,17,.25); padding: 1.125rem 0; transition: background .2s;
}
.header.has-scrolled { background: rgba(255,255,255,.95); }
.header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.logo { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--c-navy); font-weight: 700; flex: none; }
.logo img { width: 58px; height: 58px; }
.logo img.logo--full { width: 220px; height: auto; border-radius: 0; }
.logo__text { display: flex; flex-direction: column; line-height: 1.05; }
.logo__name { font-family: var(--font-display); font-weight: 700; font-size: 2.1rem; line-height: 1; color: var(--c-navy); letter-spacing: .02rem; }
.logo__tag { line-height: 1.25; font-size: .72rem; text-transform: uppercase; letter-spacing: .06rem; color: var(--c-navy); max-width: 15rem; }
.header__nav { display: flex; align-items: center; gap: .5rem; }
.nav-primary { display: flex; align-items: center; }
.nav-primary > ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; font-size: 1rem; }
.nav-primary > ul > li { position: relative; }
.nav-primary > ul > li > a {
  position: relative; display: block; padding: .875rem 1rem; color: var(--c-navy); text-decoration: none;
  font: 700 .7875rem/.9375rem var(--font-body); text-transform: uppercase; letter-spacing: .08rem;   /* main menu: -10% */
}
.nav-primary > ul > li > a::after {
  content: ""; position: absolute; bottom: .4375rem; left: 1rem; right: 1rem; height: .125rem; background: var(--c-primary);
  opacity: 0; transform: translateY(.4375rem); transition: opacity .2s, transform .2s;
}
.nav-primary > ul > li > a:hover::after, .nav-primary > ul > li.is-open > a::after,
.nav-primary > ul > li.is-active > a::after { opacity: 1; transform: none; }
.nav-secondary {
  position: absolute; top: 100%; left: 50%; min-width: 15rem; transform: translate(-50%, -2px);
  visibility: hidden; opacity: 0; transition: opacity .2s, visibility .2s; z-index: 10;
}
.nav-primary > ul > li:hover > .nav-secondary, .nav-primary > ul > li:focus-within > .nav-secondary,
.nav-primary > ul > li.is-open > .nav-secondary { visibility: visible; opacity: 1; }
.nav-secondary ul {
  position: relative; list-style: none; margin: .75rem 0 0; padding: 1.125rem 0; background: var(--c-navy);
  border-radius: 6px; text-align: center; font-size: .888rem;   /* sub-menu: about 17.2px (14.3px +20%) */
}
.nav-secondary ul::before {
  content: ""; position: absolute; top: -12px; left: 50%; margin-left: -12px;
  border-style: solid; border-width: 0 12px 12px; border-color: transparent transparent var(--c-navy);
}
.nav-secondary a { display: block; padding: .42rem 1.125rem; color: #fff; text-decoration: none; font-weight: 600; line-height: 1.2; }
.nav-secondary a span { background-image: linear-gradient(var(--c-primary), var(--c-primary)); background-size: 0 2px; background-repeat: no-repeat; background-position: 50% 100%; padding-bottom: 4px; transition: background-size .2s; }
.nav-secondary a:hover { color: #fff; }
.nav-secondary a:hover span { background-size: 100% 2px; }
.nav-cta { margin-left: 1.25rem; }
.lang-switch { margin-left: .75rem; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(59,58,94,.7); color: #fff; text-decoration: none; font: 700 .8rem var(--font-body); letter-spacing: .05rem; }
.lang-switch:hover { background: var(--c-primary); color: #fff; }
.nav-handler { display: none; background: none; border: 0; padding: .5rem; cursor: pointer; color: var(--c-primary); }
.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); }

/* ---------- 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: 400; font-size: max(calc(var(--fs-display) / 2), var(--fs-body)); line-height: 1.3; max-width: 37.5rem; 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; }
.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; 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__top { background: var(--footer-top); padding: 60px 0 54px; }
.footer__grid { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 48px; }
.footer__title { color: var(--c-primary); font-size: var(--fs-h2); }
.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--contact { display: grid; grid-template-columns: 1.6rem 1fr; gap: .4rem 0; margin: 0 0 1.5rem; }
.list--contact dt { color: var(--c-primary); font-weight: 700; font-size: var(--fs-body); }
.list--contact dd { margin: 0; }
.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; }
.list--arrow { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.list--arrow li { display: flex; gap: .6rem; align-items: center; margin-bottom: .5rem; }
.list--arrow .icon { color: var(--c-primary); width: 14px; height: 14px; }
.footer__legal { font-size: var(--fs-small) !important; color: #cfcfcf; }
.footer__bottom { background: var(--footer-bottom); padding: 21px 0 18px; }
.footer__bottom p { margin: 0; font-size: var(--fs-small); color: #cfcfcf; }

/* ---------- Floating helper ---------- */
.helper { position: fixed; right: 42px; bottom: 42px; z-index: 90; display: flex; align-items: flex-end; gap: 12px; opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; }
.helper.is-visible { opacity: 1; visibility: visible; }
.helper__box { background: var(--c-green); border-radius: 3px; box-shadow: 0 4px 18px rgba(0,0,0,.15); }
.helper.is-open .helper__box { min-width: 15rem; }
.helper__toggle { display: flex; align-items: center; justify-content: space-between; gap: .5rem; width: 100%; border: 0; background: none; color: #fff; cursor: pointer; padding: .4rem .55rem; font: 700 11.5px var(--font-body); text-transform: uppercase; letter-spacing: .05rem; }
.helper__toggle i { position: relative; width: 9px; height: 9px; flex: none; }
.helper__toggle i::before, .helper__toggle i::after { content: ""; position: absolute; left: 0; top: 4px; width: 9px; height: 1.5px; background: #fff; transition: transform .2s; }
.helper__toggle i::after { transform: rotate(90deg); }
.helper.is-open .helper__toggle i::after { transform: rotate(0); }
.helper__links { display: none; list-style: none; margin: 0; padding: 0 .75rem .75rem; }
.helper.is-open .helper__links { display: block; }
.helper__links a { display: block; background: #fff; padding: .7rem .9rem; color: var(--c-muted); font-weight: 700; font-size: 1rem; text-decoration: none; border-top: 2px solid var(--c-rule); }
.helper__links li:first-child a { border-top: 0; border-radius: 2px 2px 0 0; }
.helper__links li:last-child a { border-radius: 0 0 2px 2px; }
.helper__links a:hover { color: var(--c-text); }
.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) {
  .nav-primary > ul > li > a { padding: .875rem .7rem; letter-spacing: .05rem; }
  .nav-primary > ul > li > a::after { left: .7rem; right: .7rem; }
  .logo__tag { display: none; }
}
@media (max-width: 991.98px) {
  :root { --gutter: 12px; --header-h: 72px; }
  .header { padding: .5rem 0; }
  .logo img { width: 46px; height: 46px; }
  .nav-handler { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; }  /* 48px touch target */
  body.nav-open { overflow: hidden; }  /* the page does not scroll behind the open menu */
  .nav-primary { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .nav-primary > ul > li.has-sub > a { display: flex; align-items: center; justify-content: center; gap: .6rem; }
  .nav-primary > ul > li.has-sub > a::after { display: block; content: ""; position: static; width: .5rem; height: .5rem; background: none; opacity: 1;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-.15rem) rotate(45deg); transition: transform .2s; }
  .nav-primary > ul > li.has-sub.is-open > a { color: var(--c-primary); }
  .nav-primary > ul > li.has-sub.is-open > a::after { transform: translateY(.1rem) rotate(-135deg); }
  .nav-secondary a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding-top: .35rem; padding-bottom: .35rem; }  /* 44px touch target */
  .nav-primary {
    position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; background: var(--c-navy);
    flex-direction: column; justify-content: flex-start; padding: 2rem 1rem 3rem; overflow-y: auto;
    opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s;
  }
  .nav-open .nav-primary { opacity: 1; visibility: visible; }
  .nav-primary > ul { flex-direction: column; width: 100%; text-align: center; }
  .nav-primary > ul > li { width: 100%; }
  .nav-primary > ul > li > a { color: #fff; font-size: .9rem; padding: 1rem; }
  .nav-primary > ul > li:not(.has-sub) > a::after { display: none; }
  .nav-secondary { position: static; transform: none; visibility: visible; opacity: 1; display: none; min-width: 0; }
  .nav-primary > ul > li.is-open > .nav-secondary { display: block; }
  .nav-secondary ul { margin: 0; border-radius: 0; background: var(--c-navy-dk); }
  .nav-secondary ul::before { display: none; }
  .nav-cta { margin: 1.5rem 0 0; }
  .split, .briefs, .stats, .grid-3, .footer__grid { 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; }
  .logo__name { font-size: 1.5rem; }
  .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; }
  .helper.is-open .helper__box { min-width: 12rem; }
  .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; }
}
/* keep menu labels and the Donate button on one line */
.nav-primary > ul > li > a, .nav-cta .btn, .nav-cta { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1199.98px) {
  .nav-primary > ul > li > a { padding: .875rem .5rem; letter-spacing: .03rem; font-size: .72rem; }
  .nav-cta { margin-left: .75rem; }
  .logo__tag { display: none; }
}
.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; } }

/* Header logo: CERC wordmark (magnifier as the C) + name */
.logo img.logo__mark { width: auto; height: 50px; border-radius: 0; }
.logo .logo__tag { border-left: 2px solid var(--c-rule); padding-left: .75rem; font-weight: 600; letter-spacing: .07rem; }
@media (max-width: 991.98px) { .logo img.logo__mark { height: 40px; } }
@media (max-width: 575.98px) { .logo .logo__tag { display: none; } }

/* ---------- 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; }
.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; }
.form-success { text-align: center; padding: 2rem 0; }
.form-success .function-icon { margin: 0 auto 1rem; }
@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; } }
/* keep the header on one line with the wider logo (FR labels are longer) */
@media (min-width: 992px) and (max-width: 1439.98px) {
  .nav-primary > ul > li > a { padding: .875rem .55rem; letter-spacing: .04rem; }
  .nav-cta { margin-left: .75rem; }
  .logo .logo__tag { font-size: .66rem; }
}
@media (min-width: 992px) and (max-width: 1279.98px) { .logo .logo__tag { display: none; } }
/* text +5%: tighter menu so the language switch stays inside the header */
@media (min-width: 1280px) and (max-width: 1439.98px) { .nav-primary > ul > li > a { padding: .875rem .45rem; letter-spacing: .02rem; } .nav-primary > ul > li > a::after { left: .45rem; right: .45rem; } }
@media (min-width: 1440px) and (max-width: 1599.98px) { .nav-primary > ul > li > a { padding: .875rem .75rem; } .nav-primary > ul > li > a::after { left: .75rem; right: .75rem; } }
@media (min-width: 1100px) and (max-width: 1279.98px) { .nav-primary > ul > li > a { padding: .875rem .55rem; letter-spacing: .02rem; } .nav-primary > ul > li > a::after { left: .55rem; right: .55rem; } }
@media (min-width: 992px) and (max-width: 1099.98px) { .nav-primary > ul > li > a { padding: .875rem .36rem; letter-spacing: 0; } .nav-primary > ul > li > a::after { left: .36rem; right: .36rem; } .nav-cta, .lang-switch { margin-left: .4rem; } }

/* 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; }
/* EduCheck / HealthCheck app buttons (home hero and footer) */
.app-btns { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.btn-app { min-width: 0; padding-left: 1rem; padding-right: 1rem; gap: .5rem; text-transform: none; letter-spacing: .03rem; font-size: .95rem; background: var(--c-navy); }
.btn-app:hover { background: var(--c-navy-dk); }
.btn-app .icon { width: 18px; height: 18px; }
.hero__apps { width: 80%; max-width: 26rem; margin: 1.75rem 0 0; }
.hero__apps .section__tag { margin-bottom: .75rem; }
.footer .app-btns { max-width: 24rem; margin-top: .25rem; }
.footer .btn-app, .footer .btn-app:hover { color: #fff; text-decoration: none; }
.footer .btn-app { background: transparent; border-color: #fff; }
.footer .btn-app:hover { background: var(--c-blue); border-color: var(--c-blue); }
@media (max-width: 991.98px) { .hero__apps { margin-left: auto; margin-right: auto; } }
/* 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; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; color: #fff; }
.apps-choice__icon .icon { width: 30px; height: 30px; }
.apps-choice--educheck .apps-choice__icon { background: var(--c-blue); }
.apps-choice--healthcheck .apps-choice__icon { background: var(--c-red); }
.apps-choice--govcheck .apps-choice__icon { background: var(--c-green); }
.apps-choice--uncactracker .apps-choice__icon { background: var(--c-navy); }
.apps-choice__name { font-family: var(--font-display); font-size: var(--fs-h3); color: var(--c-navy); }
.apps-choice__text { font-size: var(--fs-small); line-height: 1.4; flex: 1; }
.apps-choice .btn-app { margin-top: .4rem; }
.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__icon .icon { width: 24px; height: 24px; }
  .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 (max-width: 359.98px) { .app-btns { grid-template-columns: 1fr; } }
@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 { max-width: 26rem; margin: -1.5rem auto 2rem; padding: 0 var(--gutter); }
}

/* 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: 1.4; 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-h5); line-height: 1.45; }
.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) ---------- */
.ecosoc-band { background: var(--c-blue-dk); color: #fff; padding: 16px 0; }
.ecosoc-band .container { display: flex; align-items: center; justify-content: center; gap: .75rem; text-align: center; }
.ecosoc-band .icon { width: 22px; height: 22px; flex: none; }
.ecosoc-band p { margin: 0; font-size: var(--fs-small); font-weight: 600; line-height: 1.4; color: #fff; }
@media (max-width: 575.98px) { .ecosoc-band .container { justify-content: flex-start; text-align: left; } }

/* 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: .9rem; }
.hero--hp .hero__apps .btn { font-size: .855rem; }
@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 { max-width: 30rem; }
.app-btns .btn-app { white-space: nowrap; }

/* 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__partner-name { font-size: .78rem; font-weight: 700; color: var(--c-text); text-align: center; line-height: 1.2; }
.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 tab bar replaces the floating "Have a question?" box; only the small back-to-top button stays */
@media (max-width: 767.98px) { .helper__box { display: 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, ECOSOC): a reading size like a printed report – 15.5px on phones, 16.5px on computers */
.report-entry { --fs-report: clamp(15.5px, 14.8px + .2vw, 16.5px); }
.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: 1.6; }
.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); }

/* header button to the citizen monitoring apps (as Integrity Action's DevCheck button); phones use the Apps tab */
.nav-apps { margin-left: 1.25rem; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 42px; height: 42px; padding: 0;
  border: 2px solid var(--c-primary); border-radius: 50%; background: #fff; color: var(--c-primary); cursor: pointer; transition: background .2s, color .2s; }
.nav-apps:hover, .nav-apps:focus-visible { background: var(--c-primary); color: #fff; }
.nav-apps + .nav-cta { margin-left: .6rem; }
@media (min-width: 992px) and (max-width: 1199.98px) { .nav-apps { margin-left: .5rem; } .nav-apps + .nav-cta { margin-left: .4rem; } }
@media (max-width: 991.98px) { .nav-apps { display: none; } }
/* six menu items: the logo tagline only on wide screens (French labels are longer), tighter items on small desktops */
@media (min-width: 992px) and (max-width: 1699.98px) { .logo__tag { display: none; } }
@media (min-width: 992px) { html[lang="fr"] .logo__tag { display: none; } }
@media (min-width: 1200px) and (max-width: 1365.98px) {
  .nav-primary > ul > li > a { padding-left: .55rem; padding-right: .55rem; letter-spacing: .03rem; }
  html[lang="fr"] .nav-primary > ul > li > a { padding-left: .45rem; padding-right: .45rem; letter-spacing: .02rem; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .nav-primary > ul > li > a { padding-left: .28rem; padding-right: .28rem; font-size: .67rem; letter-spacing: 0; }
  .nav-cta { padding-left: .9rem; padding-right: .9rem; }
  .nav-apps { width: 38px; height: 38px; margin-left: .4rem; }
  .lang-switch { width: 38px; height: 38px; }
}
@media (min-width: 1200px) and (max-width: 1299.98px) { html[lang="fr"] .nav-primary > ul > li > a { padding-left: .3rem; padding-right: .3rem; font-size: .7rem; letter-spacing: 0; } html[lang="fr"] .nav-cta { padding-left: 1rem; padding-right: 1rem; } }
@media (min-width: 992px) and (max-width: 1099.98px) { html[lang="fr"] .nav-primary > ul > li > a { padding-left: .2rem; padding-right: .2rem; font-size: .64rem; } }

/* sub-menus as on integrityaction.org: a navy panel centred under its menu item, centred items; a group
   (Our Approach, Initiatives) opens its pages inside the panel under a chevron */
.nav-sub__toggle { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: .42rem 1.125rem; border: 0; background: none;
  color: #fff; font: inherit; font-weight: 600; line-height: 1.2; cursor: pointer; }
.nav-sub__toggle span { background-image: linear-gradient(var(--c-primary), var(--c-primary)); background-size: 0 2px; background-repeat: no-repeat; background-position: 50% 100%; padding-bottom: 4px; transition: background-size .2s; }
.nav-sub__toggle:hover span, .nav-sub__toggle[aria-expanded="true"] span, .nav-secondary a[aria-current="page"] span { background-size: 100% 2px; }
.nav-sub__chevron { flex: none; color: var(--c-primary); transition: transform .2s; }
.nav-sub__toggle[aria-expanded="true"] .nav-sub__chevron { transform: rotate(180deg); }
.nav-secondary .nav-tertiary { margin: 0; padding: .1rem 0 .45rem; background: none; border-radius: 0; font-size: .84rem; }
.nav-secondary .nav-tertiary::before { display: none; }
.nav-secondary .nav-tertiary a { font-weight: 400; padding-top: .32rem; padding-bottom: .32rem; }
.nav-tertiary[hidden] { display: none; }
@media (min-width: 992px) {
  .nav-secondary { left: 50%; min-width: 15.5rem; transform: translate(-50%, -2px); }
  .nav-secondary a, .nav-sub__toggle { padding-left: 1.4rem; padding-right: 1.4rem; }
}
@media (max-width: 991.98px) {
  .nav-sub__toggle { width: 100%; min-height: 44px; }
  .nav-secondary .nav-tertiary { background: rgba(0, 0, 0, .18); padding: .25rem 0; }
}
/* Who we are / À propos: the milestones follow the founding story */
.vm-milestones { margin-top: 64px; }

/* Our projects: projects at a glance, then one presentation per project (photo, funds, period, donors, results) */
.pglance { overflow-x: auto; background: #fff; border-radius: 14px; box-shadow: var(--shadow-card); }
.pglance table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.pglance th, .pglance td { padding: .8rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-rule); }
.pglance thead th { background: var(--c-navy); color: #fff; font-weight: 600; font-size: .85rem; letter-spacing: .03em; }
.pglance tbody th a { color: var(--c-navy); font-weight: 700; text-decoration: none; }
.pglance tbody th a:hover { color: var(--c-primary); text-decoration: underline; }
.pglance td:nth-child(2) { white-space: nowrap; }
.pglance .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; }
.pglance tfoot th, .pglance tfoot td { background: var(--bg-light); font-weight: 700; border-bottom: 0; }
.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__media { order: 2; }
.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: contain; background: #3b3a5e; }
.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 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; border-right: 1px solid var(--c-rule); }
.pshow__facts > div:last-child { border-right: 0; }
.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__logos { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 1rem; padding: 0; }
.pshow__logos img { height: 34px; width: auto; max-width: 130px; object-fit: contain; }
.pshow__desc { margin: 0 0 1rem; }
.pshow__funding { margin-top: 1rem; }
.pshow__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 1.25rem 0 0; }
.pshow__actions:empty { display: none; }
@media (max-width: 991.98px) {
  .pshow { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 20px; }
  .pshow:nth-child(even) { grid-template-columns: minmax(0, 1fr); }
  .pshow:nth-child(even) .pshow__media { order: 0; }
  .pshow__media img { aspect-ratio: 16 / 9; }
}
@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); }
  .pglance th, .pglance td { padding: .6rem .7rem; font-size: .85rem; }
  .pglance .pglance__funder { display: none; }  /* funders: in each project's presentation */
  .pshow__facts dd.pshow__amount { white-space: normal; font-size: 1.25rem; }
  .pglance td:nth-child(2), .pglance .num { white-space: normal; }
}
/* 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: 40rem; }

/* home page, as on integrityaction.org: the about statement, the app spotlight */
.home-about__h { font-size: clamp(1.6rem, 2.6vw, 2.25rem); line-height: 1.2; 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; }
.pglance .pstatus { margin-left: 0; }
.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); }
@media (max-width: 575.98px) { .pglance .pglance__status { display: none; } }
.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; }

/* the header Donate button keeps its larger size */
.btn.nav-cta { font-size: 17.25px; padding: .75rem 1.875rem; letter-spacing: .08rem; }
@media (min-width: 992px) and (max-width: 1199.98px) { .btn.nav-cta { padding-left: .9rem; padding-right: .9rem; } }
@media (max-width: 991.98px) { .btn.nav-cta { font-size: 14px; padding: 11px 24px; } }

/* 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; }
}

/* projects at a glance on phones: one card-like row per project – name, then period and funds */
@media (max-width: 575.98px) {
  .pglance { overflow: visible; }
  .pglance thead { display: none; }
  .pglance table, .pglance tbody, .pglance tfoot { display: block; }
  .pglance tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 4px 12px; padding: 12px 14px; border-bottom: 1px solid var(--c-rule); }
  .pglance th, .pglance td { padding: 0; border: 0; }
  .pglance tbody th { grid-column: 1 / -1; font-size: .95rem; }
  .pglance .pglance__funder, .pglance .pglance__status { display: none; }
  .pglance tbody td:not(.num) { color: var(--c-muted); font-size: .85rem; }
  .pglance td.num { text-align: right; font-weight: 700; color: var(--c-navy); white-space: nowrap; }
  .pglance tfoot tr { background: var(--bg-mid, #f1efe9); border-bottom: 0; border-radius: 0 0 14px 14px; }
  .pglance tfoot th { grid-column: auto; }
}
@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 */
