/*
Theme Name: Smart Regional Consultants
Theme URI: https://smartregionalconsultants.test
Author: Smart Regional Consultants
Description: A bold, editorial theme for Smart Regional Consultants.
Version: 3.5.205
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: src
*/

/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 · macrostructure: studied-DNA (source: tool-riff-26498280.figma.site) · contrast: pass (46–50) · nav/footer: studied reference · slop: pass (51–60) · mobile: pass (320/375/414/768) */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,900;1,400;1,600&display=swap');

/* SRC v3 programme catalogue and detail pages */
.src-v3-programmes { background: var(--cream); }
.src-v3-programmes-hero { height: min(100vh,920px); min-height: min(100vh,920px); max-height: 920px; display: flex; align-items: stretch; padding: 0; background: #4a0e12; }
.page-hero.src-v3-programmes-hero { padding: 0; }
.src-v3-programmes-hero::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgba(74,14,18,.88) 0%,rgba(110,22,28,.7) 30%,rgba(150,35,40,.3) 55%,rgba(150,35,40,0) 75%),linear-gradient(0deg,rgba(74,14,18,.45),transparent 35%); content: ''; }
.src-v3-programmes-hero::after { display: none; }
.src-v3-programmes-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; animation: srcProgrammeHeroZoom 1.6s ease-out both; }
.src-v3-programmes-ring { position: absolute; z-index: 2; top: -90px; right: -330px; width: 900px; height: 900px; border: 90px solid rgba(193,39,45,.35); border-radius: 50%; pointer-events: none; }
.src-v3-programmes-ring::after { position: absolute; inset: 28px; border: 1px solid rgba(255,255,255,.24); border-radius: inherit; content: ''; }
.src-v3-programmes-hero .src-v3-programmes-ring--archive { --ring-parallax: 0px; transform: translate3d(0,var(--ring-parallax),0) rotate(var(--ring-rotate,0deg)); transform-origin: center; will-change: transform; }
.page-hero.src-v3-programmes-hero .src-v3-programmes-hero-content { position: relative; z-index: 3 !important; display: flex; width: 100%; max-width: 1200px; flex-direction: column; justify-content: center; margin-inline: auto; padding: 150px 40px 48px; }
.src-v3-programmes-breadcrumb { margin-bottom: 22px; color: white; font-size: 12px; line-height: 16px; }
.src-v3-programmes-breadcrumb a { color: rgba(255,255,255,.82); }
.src-v3-programmes-breadcrumb span { padding: 0 7px; }
.src-v3-programmes-hero h1 { max-width: 14ch; font-size: clamp(40px,5.2vw,84px); line-height: 1.02; text-wrap: balance; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-v3-programmes-hero h1 em { color: var(--orange); font-style: italic; }
.src-v3-programmes-hero .eyebrow { margin-bottom: 20px; color: #f0954a; font-size: 13px; letter-spacing: .14em; }
.src-v3-programmes-hero .lede { max-width: 60ch; margin: 24px 0 30px; color: white; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
@media (min-width: 768px) {
  .page-hero.src-v3-programmes-hero .lede { max-width: 715.175px; margin-bottom: 41px; }
  .page-hero.src-v3-programmes-hero .hero-actions { align-items: center; gap: 24px; }
  .page-hero.src-v3-programmes-hero .hero-actions > .button { min-height: 50px; padding: 16px 32px; font-size: 12px; font-weight: 700; letter-spacing: .1em; line-height: 18px; }
  .page-hero.src-v3-programmes-hero .src-v3-hero-secondary span { font-size: 12px; line-height: 18px; }
}
.src-v3-hero-secondary { display: inline-flex; align-items: center; gap: 12px; padding: 0; border: 0; background: transparent; color: white; font: inherit; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: color .2s ease; cursor: pointer; }
.src-v3-hero-secondary span { font-size: 20px; }
.src-v3-hero-secondary:hover { color: var(--orange); }
@keyframes srcProgrammeHeroZoom { from { transform: scale(1.06); } to { transform: scale(1); } }
.src-programme-filters { position: sticky; z-index: 40; top: 88px; width: calc(100% - 48px); max-width: 1400px; margin: 0 auto; overflow: hidden; border: 1px solid rgba(31,31,31,.08); border-radius: 24px; background: rgba(250,248,244,.88); box-shadow: 0 8px 24px rgba(74,14,18,.1); backdrop-filter: blur(18px) saturate(140%); transition: border-radius 250ms ease, box-shadow 250ms ease; }
.post-type-archive-programme .site-header.is-scrolled .header-inner { border-bottom-color: rgba(31,31,31,.06); border-radius: 24px 24px 0 0; box-shadow: none; }
.src-programme-filters.sticky-subnav--docked { border-top-color: rgba(31,31,31,.06); border-radius: 0 0 24px 24px; box-shadow: 0 12px 28px rgba(74,14,18,.1); }
.admin-bar .src-programme-filters { top: 120px; }
.src-programme-filter-scroll { position: relative; }
.src-programme-filter-scroll::before, .src-programme-filter-scroll::after { position: absolute; z-index: 2; top: 0; bottom: 0; width: 40px; opacity: 0; pointer-events: none; content: ''; transition: opacity 180ms ease; }
.src-programme-filter-scroll::before { left: 0; background: linear-gradient(90deg,#faf8f4,rgba(250,248,244,0)); }
.src-programme-filter-scroll::after { right: 0; background: linear-gradient(270deg,#faf8f4,rgba(250,248,244,0)); }
.src-programme-filters.has-scroll-left .src-programme-filter-scroll::before, .src-programme-filters.has-scroll-right .src-programme-filter-scroll::after { opacity: 1; }
.src-programme-filter-inner { display: flex; width: 100%; height: 44px; align-items: stretch; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.src-programme-filter-inner::-webkit-scrollbar { display: none; }
.src-programme-filter-status { display: flex; flex: 0 0 auto; align-items: stretch; }
.src-programme-filter { display: flex; flex: 1 0 max-content; min-width: max-content; height: 44px; align-items: center; justify-content: center; padding: 0 16px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #2b2b2b; font-family: Montserrat,system-ui,sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .12em; line-height: 1; text-transform: uppercase; transition: color 200ms ease,border-color 200ms ease; white-space: nowrap; cursor: pointer; }
.src-programme-filter-separator { padding-inline: 3px; }
.src-programme-filter-count { color: inherit; }
.src-programme-filter:hover, .src-programme-filter.is-active { border-bottom-color: #b3262c; color: #b3262c; }
.src-programme-filter:focus-visible { position: relative; z-index: 3; outline: 2px solid #b3262c; outline-offset: -4px; }
.src-programme-filter-scroll::before, .src-programme-filter-scroll::after { background-color: transparent; }
.src-programme-results [hidden], .src-programme-empty[hidden], .src-v3-programme-card[hidden] { display: none !important; }
.src-programme-section { scroll-margin-top: 158px; padding: 96px 0; background: var(--cream); }
.src-programme-section-past { background: #fff; }
.src-programme-section-heading { max-width: 670px; margin-bottom: 40px; }
.src-programme-section-heading .eyebrow { margin-bottom: 12px; }
.src-programme-section-heading h2 { margin: 0; }
.src-programme-section-heading > p:last-child { max-width: 580px; margin: 16px 0 0; color: var(--ink-muted); font-size: 13px; line-height: 1.75; }
.src-programme-section .container { width: min(1200px,calc(100% - 80px)); }
.src-v3-programme-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.src-v3-programme-card { min-width: 0; height: 580px; display: flex; flex-direction: column; overflow: hidden; background: #fff; box-shadow: 0 8px 30px rgba(28,28,28,.08); }
.src-v3-programme-card:hover { transform: none; }
.src-v3-programme-card-past { border: 1px solid #f3f4f6; box-shadow: none; }
.src-v3-programme-card-span-md-2 { grid-column: auto; }
.src-v3-programme-card-span-xl-2, .src-v3-programme-card-span-xl-3, .src-v3-programme-card-span-xl-4 { grid-column: auto; }
.src-v3-programme-image { position: relative; display: block; flex: 0 0 200px; height: 200px; overflow: hidden; background: #dedbd5; }
.src-v3-programme-image::after { position: absolute; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.45),transparent); content: ''; pointer-events: none; }
.src-v3-programme-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.src-v3-programme-card:hover .src-v3-programme-image img { transform: scale(1.05); }
.src-v3-status { display: inline-flex; width: fit-content; align-items: center; padding: 4px 10px; background: rgba(193,39,45,.1); color: var(--red); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-programme-image > .src-v3-status { position: absolute; z-index: 1; top: 12px; left: 12px; }
.src-v3-status-upcoming { background: var(--orange); color: var(--charcoal); }
.src-v3-status-past { background: var(--red); color: white; }
.src-v3-status-current { background: #059669; color: white; }
.src-v3-programme-card-past .src-v3-programme-image img { filter: grayscale(1); }
.src-v3-image-tags { position: absolute; z-index: 1; bottom: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 5px; }
.src-v3-image-tags span, .src-v3-programme-tags span { padding: 4px 8px; background: #f2a33a; color: #1f1f1f; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.src-v3-programme-card-past .src-v3-programme-image > .src-v3-status { right: 12px; left: auto; }
.src-v3-programme-card-body { display: flex; flex: 1; flex-direction: column; padding: 20px; }
.src-v3-programme-logos { display: flex; min-height: 32px; flex-wrap: wrap; align-items: center; gap: 8px; }
.src-v3-programme-logo { display: flex; min-width: 48px; height: 32px; align-items: center; justify-content: center; padding: 0 8px; border: 1px solid rgba(0,0,0,.05); background: #fff; }
.src-v3-programme-logo img { display: block; max-width: 80px; max-height: 20px; object-fit: contain; }
.src-v3-programme-logo > span { max-width: 144px; color: var(--charcoal); font-size: 7px; font-weight: 700; line-height: 1.15; text-align: center; text-transform: uppercase; }
.src-v3-programme-theme { margin: 16px 0 8px; color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.src-v3-programme-card h3 { margin: 0 0 8px; font-family: var(--serif); font-size: 18px; line-height: 1.25; }
.src-v3-programme-card h3 a:hover { color: var(--red); }
.src-v3-programme-card .src-v3-programme-summary { display: -webkit-box; overflow: hidden; margin: 0 0 12px; color: var(--ink-muted); font-size: 12px; line-height: 1.625; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.src-v3-programme-facts { display: grid; gap: 8px; margin: 0 0 16px; color: var(--ink-muted); font-size: 10px; }
.src-v3-programme-facts div { display: flex; gap: 6px; }
.src-v3-programme-facts dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.src-v3-programme-facts dd { margin: 0; }
.src-v3-programme-facts dd span { color: rgba(43,43,43,.58); font-size: 8px; font-weight: 800; }
.src-v3-programme-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; }
.src-v3-programme-tags span { padding: 2px 8px; background: var(--cream); font-size: 9px; }
.src-v3-programme-past-fact { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 12px; color: var(--ink-muted); font-size: 12px; line-height: 16px; }
.src-v3-programme-note { margin: 0 0 12px; color: var(--ink-muted); font-size: 10px; line-height: 1.5; }
.src-v3-programme-note { margin-bottom: 16px; }
.src-v3-programme-actions { display: flex; flex: 0 0 auto; gap: 8px; margin-top: auto; padding-top: 16px; }
.src-v3-button { display: inline-flex; flex: 1; min-height: 41px; align-items: center; justify-content: center; padding: 7px 9px; background: var(--red); color: white; font-size: 8px; font-weight: 800; letter-spacing: .09em; text-align: center; text-transform: uppercase; transition: background .2s ease, color .2s ease; }
.src-v3-button:hover { background: var(--charcoal); color: #fff; }
.src-v3-button-outline { border: 1px solid var(--red); background: transparent; color: var(--red); }
.src-v3-button-outline:hover { background: var(--red); color: #fff; }
.src-v3-link { display: inline-flex; gap: 9px; align-items: center; padding-bottom: 2px; border-bottom: 1px solid var(--red); color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .12em; line-height: 15px; text-transform: uppercase; }
.src-v3-link:hover { color: var(--orange); border-color: var(--orange); }
.src-programme-empty { display: grid; min-height: 216px; place-items: center; padding: 48px 24px; color: rgba(43,43,43,.45); text-align: center; }
.src-programme-empty p { margin: 0; font-size: 14px; }
.src-v3-detail-hero { position: relative; display: flex; min-height: 590px; align-items: end; overflow: hidden; padding: 150px 0 80px; background: var(--charcoal); color: white; }
.src-v3-detail-hero::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgba(74,14,18,.88),rgba(110,22,28,.58) 58%,rgba(150,35,40,.2)),linear-gradient(0deg,rgba(74,14,18,.45),transparent); content: ''; }
.src-v3-detail-hero::after { position: absolute; z-index: 0; inset: 0; background-image: var(--programme-cover); background-position: center 42%; background-size: cover; content: ''; }
.src-v3-detail-hero .container { position: relative; z-index: 2; }
.src-v3-detail-hero h1 { max-width: 900px; margin: 14px 0 20px; }
.src-v3-detail-hero .lede { margin: 0 0 26px; }
.src-v3-detail-back { display: inline-block; margin-bottom: 42px; color: rgba(255,255,255,.75); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-detail-back:hover { color: var(--orange); }
.src-v3-detail-facts { background: var(--red); color: white; }
.src-v3-detail-facts-grid { display: flex; flex-wrap: wrap; gap: 0; }
.src-v3-detail-facts-grid > div { flex: 1 1 160px; min-height: 100px; display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 18px 22px; border-right: 1px solid rgba(255,255,255,.2); }
.src-v3-detail-facts-grid > div:first-child { padding-left: 0; }
.src-v3-detail-facts-grid span { color: rgba(255,255,255,.65); font-size: 8px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.src-v3-detail-facts-grid strong { font-family: var(--serif); font-size: 18px; }
.src-v3-detail-columns { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(270px,.7fr); gap: 90px; }
.src-v3-county-map-card { padding: 24px; background: white; }
.src-v3-county-map { width: min(100%,300px); margin: 0 auto; }
.src-v3-county-svg { display: block; width: 100%; height: auto; }
.src-v3-county-svg .county.is-selected { fill: var(--red) !important; }
.src-v3-county-svg .county.is-all-selected { fill: rgba(193,39,45,.35) !important; }
.src-v3-county-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.src-v3-county-tags span { padding: 7px 9px; background: var(--cream); color: var(--charcoal); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.src-v3-county-label { margin: 16px 0 0; color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.src-v3-detail-block { margin: 0 0 46px; }
.src-v3-detail-block .eyebrow { margin-bottom: 13px; }
.src-v3-detail-copy { color: var(--ink-muted); font-size: 14px; line-height: 1.85; }
.src-v3-detail-copy > :first-child { margin-top: 0; }
.src-v3-journey, .src-v3-plain-list { padding: 0; margin: 0; list-style: none; }
.src-v3-journey li { display: flex; align-items: center; gap: 18px; min-height: 58px; border-top: 1px solid rgba(28,28,28,.14); }
.src-v3-journey li:last-child { border-bottom: 1px solid rgba(28,28,28,.14); }
.src-v3-journey li span { color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.src-v3-journey li strong, .src-v3-plain-list li { font-size: 12px; }
.src-v3-plain-list li { padding: 9px 0; border-top: 1px solid rgba(28,28,28,.12); }
.src-v3-detail-cta { padding: 30px; background: var(--charcoal); color: white; }
.src-v3-detail-cta h2 { margin: 0 0 22px; font-size: 31px; }
.src-v3-detail-cta .button { width: 100%; }
.src-v3-detail-cta small { display: block; margin-top: 14px; color: rgba(255,255,255,.56); font-size: 10px; line-height: 1.6; }
@media (max-width: 1080px) {
  .src-v3-programme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .src-v3-detail-columns { gap: 52px; }
}
@media (max-width: 1023px) {
  .src-programme-section .container { width: calc(100% - 48px); }
}
@media (min-width: 768px) {
  .src-v3-programme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .src-v3-programme-card-span-md-2 { grid-column: span 2; }
}
@media (min-width: 1280px) {
  .src-v3-programme-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .src-v3-programme-card-span-xl-2 { grid-column: span 2; }
  .src-v3-programme-card-span-xl-3 { grid-column: span 3; }
  .src-v3-programme-card-span-xl-4 { grid-column: span 4; }
}
@media (max-width: 680px) {
  .src-v3-programmes-hero { height: auto; min-height: 100svh; max-height: 920px; }
  .src-v3-programmes-hero::before { background: linear-gradient(180deg,rgba(74,14,18,.35),rgba(74,14,18,.85) 70%); }
  .src-v3-programmes-ring { top: auto; right: -220px; bottom: -180px; width: 560px; height: 560px; border-width: 56px; opacity: .25; }
  .page-hero.src-v3-programmes-hero .src-v3-programmes-hero-content { padding: 120px 20px 36px; }
  .src-v3-programmes-hero .src-v3-programmes-breadcrumb { margin-bottom: 20px; }
  .src-v3-programmes-hero .eyebrow { line-height: 1.5; }
  .src-v3-programmes-hero .hero-actions { width: 100%; flex-direction: column; align-items: stretch; gap: 16px; margin-top: 40px; }
  .src-v3-programmes-hero .hero-actions .button { width: 100%; min-height: 50px; padding: 16px 32px; font-size: 12px; line-height: 18px; }
  .src-v3-programmes-hero .src-v3-hero-secondary { min-height: 0; justify-content: center; line-height: 18px; }
  .src-v3-programmes-hero .src-v3-hero-secondary span { font-size: 12px; line-height: 18px; }
  .src-v3-programmes-hero h1 { font-size: clamp(40px,10vw,56px); }
  .page-hero.src-v3-programmes-hero .lede { display: -webkit-box; max-width: 60ch; margin: 24px 0 0; overflow: hidden; font-size: 16px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .src-v3-programmes-hero .src-v3-programmes-ring--archive { top: auto; right: -220px; bottom: -180px; width: 495px; height: 495px; opacity: .25; }
  .src-programme-section { padding: 64px 0; }
  .src-programme-section-heading { margin-bottom: 40px; }
  .src-programme-section .container { width: calc(100% - 48px); }
  .src-v3-programme-grid { grid-template-columns: 1fr; gap: 24px; }
  .src-v3-programme-card { display: flex; flex-direction: column; }
  .src-v3-programme-image { flex-basis: 180px; height: 180px; }
  .src-v3-programme-image > .src-v3-status { top: 12px; left: 12px; padding: 4px 10px; font-size: 8px; }
  .src-v3-image-tags { display: none; }
  .src-v3-programme-card-body { padding: 20px; }
  .src-v3-programme-theme { font-size: 9px; }
  .src-v3-programme-card h3 { font-size: 18px; }
  .src-v3-programme-card .src-v3-programme-summary { font-size: 12px; }
  .src-v3-programme-facts { margin-bottom: 16px; font-size: 10px; }
  .src-v3-programme-tags { margin-bottom: 20px; }
  .src-v3-programme-actions { gap: 8px; }
  .src-v3-button { min-height: 40px; padding-inline: 12px; font-size: 9px; }
  .src-v3-detail-hero { min-height: 560px; padding: 125px 0 55px; }
  .src-v3-detail-hero h1 { font-size: clamp(42px,12vw,64px); }
  .src-v3-detail-back { margin-bottom: 32px; }
  .src-v3-detail-facts-grid > div { flex-basis: 50%; min-height: 82px; padding: 14px; }
  .src-v3-detail-facts-grid > div:first-child { padding-left: 14px; }
  .src-v3-detail-facts-grid > div:nth-child(2n) { border-right: 0; }
  .src-v3-detail-columns { grid-template-columns: 1fr; gap: 6px; }
  .src-v3-detail-block { margin-bottom: 34px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .src-v3-programmes-hero .src-v3-programmes-ring--archive { top: -40px; right: -420px; width: 675px; height: 675px; }
}

/* About SRC page follows the exported v3 page composition. */
.page-hero.about-v3-hero {
  display: flex;
  height: min(100vh, 920px);
  min-height: min(100vh, 920px);
  max-height: 920px;
  padding: 0;
  background: #4a0e12;
}
.page-hero.about-v3-hero::after { display: none; }
.about-v3-hero-backdrop { position: absolute; inset: 0; overflow: hidden; }
.about-v3-hero-backdrop img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; animation: srcProgrammeHeroZoom 1.6s ease-out both; }
.about-v3-hero-gradient { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(74,14,18,.88) 0%,rgba(110,22,28,.70) 30%,rgba(150,35,40,.30) 55%,rgba(150,35,40,0) 75%),linear-gradient(0deg,rgba(74,14,18,.45),transparent 35%); }
.about-v3-hero-ring { position: absolute; z-index: 1; top: -90px; right: -330px; width: 900px; height: 900px; border: 90px solid rgba(193,39,45,.35); border-radius: 50%; pointer-events: none; }
.about-v3-hero-ring::after { position: absolute; inset: 28px; border: 1px solid rgba(255,255,255,.24); border-radius: inherit; content: ''; }
.about-v3-hero-content { position: relative; z-index: 2; display: flex; width: min(100%,1200px); height: 100%; align-items: center; margin-inline: auto; padding: 150px 40px 48px; }
.about-v3-hero-copy { width: 100%; max-width: 760px; }
.about-v3-breadcrumb { margin: 0 0 22px; color: #fff; font-size: 12px; font-weight: 500; }
.about-v3-breadcrumb a { color: rgba(255,255,255,.9); text-decoration: none; }
.about-v3-breadcrumb span { padding: 0 7px; }
.about-v3-eyebrow { margin: 0 0 20px; color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.about-v3-hero h1 { max-width: 15ch; margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-shadow: 0 2px 12px rgba(40,8,10,.35); text-wrap: balance; }
.about-v3-hero h1 em { color: var(--orange); font-weight: inherit; }
.about-v3-hero h1 + .about-v3-hero-intro { margin-top: 24px; }
.v3-countdown-tbc { margin: 11px 0 16px; color: rgba(255,255,255,.68); font-size: 10px; font-weight: 600; }
.v3-countdown.is-expired { opacity: .72; }
.impact-panel-context { font-size: 14px; line-height: 1.55; }
.impact-panel-facts { font-size: 13px; line-height: 1.55; }
.home-report-cover { position: relative; display: flex; min-height: 440px; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: clamp(28px,5vw,64px); background: linear-gradient(145deg,#4a0e12 0%,#8d1e24 58%,#b3262c 100%); color: #fff; }
.home-report-cover::before,.home-report-cover::after { position: absolute; width: 440px; height: 440px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; content: ''; pointer-events: none; }
.home-report-cover::before { top: -190px; right: -70px; box-shadow: 0 0 0 42px rgba(255,255,255,.035),0 0 0 84px rgba(255,255,255,.025); }
.home-report-cover::after { right: -220px; bottom: -300px; border-width: 60px; border-color: rgba(245,130,32,.55); }
.home-report-cover-mark { position: absolute; top: 28px; left: 30px; font-size: 12px; font-weight: 800; letter-spacing: .2em; }
.home-report-cover-label { position: relative; color: #ffc37c; font-size: 11px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.home-report-cover strong { position: relative; margin-top: 12px; font-family: var(--serif); font-size: clamp(64px,10vw,112px); line-height: .95; }
.home-report-cover-caption { position: relative; margin-top: 24px; color: rgba(255,255,255,.76); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.stay-connected-action > p { max-width: 38ch; margin: 0 0 18px; color: rgba(255,255,255,.75); font-size: 14px; line-height: 1.65; }
.site-footer-socials:empty { display: none; }
.partners-hero { display: flex; min-height: 520px; align-items: center; background: linear-gradient(112deg,rgba(74,14,18,.96),rgba(130,27,33,.84)),url('assets/hero-man-with-camels-poster.png') center 52%/cover; }
.partners-hero-content { width: min(1200px,calc(100% - 80px)); margin: auto; padding-top: 120px; }
.partners-breadcrumb { margin-bottom: 38px; color: rgba(255,255,255,.75); font-size: 12px; }
.partners-breadcrumb a { color: #fff; text-decoration: none; }
.partners-breadcrumb span { padding-inline: 8px; }
.partners-hero h1 { margin: 0; color: #fff; }
.partners-hero .lede { max-width: 58ch; margin-top: 20px; }
.partners-directory { padding: 96px max(40px,calc((100% - 1200px)/2)); background: #faf7f2; }
.partners-directory-heading { max-width: 680px; margin: 0 auto 52px; text-align: center; }
.partners-directory-heading h2 { margin: 0; }
.partners-directory-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.partners-directory-item { display: grid; min-height: 146px; place-items: center; padding: 24px; background: #fff; box-shadow: 0 8px 28px rgba(28,28,28,.055); }
.partners-directory-item > a { display: grid; width: 100%; height: 100%; place-items: center; }
.partners-directory-item img { display: block; max-width: 100%; max-height: 72px; object-fit: contain; }
.partners-directory-name { color: #4a0e12; font-size: 15px; font-weight: 700; text-align: center; }
.partners-directory-empty { text-align: center; }
@media(max-width:767px) { .partners-hero-content { width: calc(100% - 40px); padding-top: 120px; } .partners-directory { padding: 72px 20px; } .partners-directory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; } .partners-directory-item { min-height: 114px; padding: 16px; } .home-report-cover { min-height: 340px; } }
.about-v3-hero-intro { display: -webkit-box; max-width: 60ch; margin: 24px 0 0; overflow: hidden; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.about-v3-shell { width: min(100%,1280px); margin-inline: auto; padding-right: 40px; padding-left: 40px; }
.about-v3-story { padding: 112px 0; background: #fff; }
.about-v3-story-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 80px; }
.about-v3-section-eyebrow { margin: 0 0 12px; color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .15em; line-height: 1.4; text-transform: uppercase; }
.about-v3-story-copy > .about-v3-section-eyebrow { margin-bottom: 20px; }
.about-v3-story-copy h2 { margin: 0 0 24px; color: var(--charcoal); font-family: var(--serif); font-size: 30px; font-weight: 700; line-height: 1.25; }
.about-v3-story-body p { margin: 0 0 16px; color: rgba(28,28,28,.65); font-size: 16px; line-height: 1.625; }
.about-v3-story-body p:last-child { margin-bottom: 0; }
.about-v3-story-media { position: relative; aspect-ratio: 4/5; }
.about-v3-story-media > img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.about-v3-story-tint { position: absolute; inset: 0; background: rgba(193,39,45,.30); mix-blend-mode: multiply; pointer-events: none; }
.about-v3-founded { position: absolute; bottom: -20px; left: -20px; display: flex; width: 112px; min-height: 108px; flex-direction: column; align-items: center; justify-content: center; padding: 20px 12px; background: var(--red); color: #fff; text-align: center; }
.about-v3-founded strong { font-family: var(--serif); font-size: 30px; font-weight: 900; line-height: 1.1; }
.about-v3-founded span { margin-top: 4px; color: rgba(255,255,255,.72); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.about-v3-pillars { display: grid; min-height: 233px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.about-v3-pillar { min-width: 0; padding: 56px 48px; color: #fff; }
.about-v3-pillar-1 { background: var(--red); }
.about-v3-pillar-2 { background: #4a0e12; }
.about-v3-pillar-3 { background: var(--orange); }
.about-v3-pillar > p { margin: 0 0 16px; color: rgba(255,255,255,.55); font-size: 10px; font-weight: 700; line-height: 15px; letter-spacing: .15em; text-transform: uppercase; }
.about-v3-pillar h2 { margin: 0; color: #fff; font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1.25; }
.about-v3-values, .about-v3-theory { padding: 112px 0; }
.about-v3-values { background: var(--cream); }
.about-v3-centered-heading { margin-bottom: 57px; text-align: center; }
.about-v3-centered-heading .about-v3-section-eyebrow, .about-v3-section-heading .about-v3-section-eyebrow { margin-bottom: 12px; }
.about-v3-centered-heading h2, .about-v3-section-heading h2 { margin: 0; color: var(--charcoal); font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 40px; }
.about-v3-values-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; }
.about-v3-value { padding-top: 24px; border-top: 2px solid var(--red); }
.about-v3-value h3 { margin: 0 0 12px; color: var(--charcoal); font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: .04em; }
.about-v3-value p, .about-v3-theory-step p { margin: 0; color: rgba(28,28,28,.58); font-size: 14px; line-height: 1.625; }
.about-v3-theory { background: #fff; }
.about-v3-section-heading { margin-bottom: 57px; }
.about-v3-theory-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; }
.about-v3-theory-step { display: flex; min-width: 0; align-items: flex-start; gap: 20px; }
.about-v3-theory-step > span { flex: 0 0 auto; margin-top: 4px; color: transparent; font-family: var(--serif); font-size: 48px; font-weight: 900; line-height: 1; -webkit-text-stroke: 1.5px var(--red); }
.about-v3-theory-step h3 { margin: 0 0 6px; color: var(--charcoal); font-size: 14px; font-weight: 700; line-height: 20px; }
.about-v3-stats { padding: 48px 0; background: var(--red); }
.about-v3-stats-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); }
.about-v3-stat { min-width: 0; padding: 0 32px; color: #fff; }
.about-v3-stat:first-child { padding-left: 0; }
.about-v3-stat:last-child { padding-right: 0; }
.about-v3-stat + .about-v3-stat { border-left: 1px solid rgba(255,255,255,.2); }
.about-v3-stat strong { display: block; margin-bottom: 2px; font-family: var(--serif); font-size: 36px; font-weight: 900; line-height: 40px; }
.about-v3-stat span { display: block; color: rgba(255,255,255,.68); font-size: 10px; font-weight: 600; line-height: 15px; letter-spacing: .13em; text-transform: uppercase; }
.about-v3-cta { padding: 64px 24px; background: #fff; text-align: center; }
.about-v3-cta .about-v3-section-eyebrow { margin-bottom: 16px; color: rgba(28,28,28,.4); line-height: 15px; }
.about-v3-cta h2 { margin: 0 0 24px; color: var(--charcoal); font-family: var(--serif); font-size: 30px; font-weight: 700; line-height: 1.2; }
.about-v3-cta a { display: inline-flex; min-height: 43px; align-items: center; justify-content: center; padding: 0 32px; background: var(--red); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease; }
.about-v3-cta a:hover { background: #4a0e12; }
.about-v3-cta a:focus-visible, .about-v3-breadcrumb a:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }

@media (max-width: 1023px) {
  .about-v3-story, .about-v3-values, .about-v3-theory { padding: 80px 0; }
  .about-v3-story-grid { grid-template-columns: 1fr; gap: 48px; }
  .about-v3-story-media { width: min(100%,620px); margin-inline: auto; }
  .about-v3-pillars { grid-template-columns: 1fr; }
  .about-v3-pillar { padding: 48px 40px; }
  .about-v3-values-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-v3-theory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-v3-stats-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px 0; }
  .about-v3-stat:nth-child(4) { padding-left: 0; border-left: 0; }
  .about-v3-stat:nth-child(5) { border-left: 1px solid rgba(255,255,255,.2); }
  .about-v3-hero-ring { top: -40px; right: -420px; width: 675px; height: 675px; border-width: 68px; }
}
@media (min-width: 1024px) {
  .about-v3-story-copy { transform: translateY(2px); }
  .about-v3-story-copy h2 { font-size: 48px; line-height: 60px; }
  .about-v3-pillar h2 { font-size: 24px; line-height: 30px; }
  .about-v3-centered-heading h2, .about-v3-section-heading h2 { font-size: 48px; line-height: 48px; }
}
@media (max-width: 1024px) {
  .about-v3-hero-content { padding-right: 32px; padding-left: 32px; }
}
@media (max-width: 767px) {
  .page-hero.about-v3-hero { height: auto; min-height: 100svh; max-height: 920px; padding: 0; }
  .about-v3-hero-gradient { background: linear-gradient(180deg,rgba(74,14,18,.35) 0%,rgba(74,14,18,.85) 70%); }
  .about-v3-hero-ring { top: auto; right: -220px; bottom: -180px; width: 450px; height: 450px; border-width: 45px; }
  .about-v3-hero-content { width: 100%; min-height: 100svh; padding: 120px 20px 36px; }
  .about-v3-hero h1 { font-size: clamp(40px,10vw,56px); -webkit-line-clamp: 3; }
  .about-v3-hero-intro { font-size: 16px; }
  .about-v3-shell { width: 100%; padding-right: 24px; padding-left: 24px; }
  .about-v3-story, .about-v3-values, .about-v3-theory { padding: 80px 0; }
  .about-v3-story-copy h2 { font-size: 34px; }
  .about-v3-story-body p { font-size: 15px; }
  .about-v3-founded { bottom: -16px; left: -8px; }
  .about-v3-pillar { padding: 40px 24px; }
  .about-v3-centered-heading { margin-bottom: 44px; }
  .about-v3-values-grid, .about-v3-theory-grid { grid-template-columns: 1fr; gap: 32px; }
  .about-v3-section-heading { margin-bottom: 44px; }
  .about-v3-stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 0; }
  .about-v3-stat, .about-v3-stat:first-child, .about-v3-stat:nth-child(4) { padding: 0 12px; border-left: 1px solid rgba(255,255,255,.2); }
  .about-v3-stat:nth-child(odd) { padding-left: 0; border-left: 0; }
  .about-v3-stat:last-child { padding-right: 12px; }
  .about-v3-stat strong { font-size: 32px; }
  .about-v3-cta { padding: 56px 20px; }
}
@media (min-width: 681px) and (max-width: 1024px) {
  .page-hero.src-v3-programmes-hero .src-v3-programmes-hero-content { padding-right: 32px; padding-left: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .src-v3-programmes-backdrop { animation: none; }
  .src-v3-programme-card, .src-v3-programme-image img { transition: none; }
  .src-v3-programme-card:hover { transform: none; }
}

/* Native WooCommerce catalogue, cart and checkout */
.src-commerce-main { min-height: 55vh; padding: 150px 0 90px; background: var(--cream); }
.src-commerce-main-blocks { padding: 0 0 84px; }
.src-commerce-hero { position: relative; display: flex; min-height: 340px; align-items: end; overflow: hidden; padding: 150px 0 58px; background: var(--charcoal); color: white; }
.src-commerce-hero::after { position: absolute; right: 2%; bottom: -16%; color: rgba(255,255,255,.04); content: 'SRC'; font-family: var(--serif); font-size: 28vw; font-weight: 900; line-height: .7; }
.src-commerce-hero .container { position: relative; z-index: 1; }
.src-commerce-hero h1 { margin: 0; }
.src-commerce-content { padding-top: 64px; }
.src-commerce-main--confirmation .src-commerce-hero { min-height: 310px; padding-bottom: 112px; background: linear-gradient(115deg,#4a0e12,#802027); }
.src-commerce-main--confirmation .src-commerce-content { padding-top: 0; }
.src-order-confirmation { position: relative; z-index: 2; width: min(900px,100%); margin: -68px auto 0; padding: clamp(28px,5vw,56px); background: #fff; box-shadow: 0 22px 64px rgba(28,28,28,.12); }
.src-order-confirmation [hidden] { display: none !important; }
.src-order-confirmation-head { --status-icon-size: 48px; --status-title-gap: 20px; }
.src-order-confirmation-title-row { display: flex; min-width: 0; align-items: center; gap: var(--status-title-gap); }
.src-order-confirmation-icon { display: grid; width: var(--status-icon-size); height: var(--status-icon-size); flex: 0 0 var(--status-icon-size); place-items: center; border-radius: 50%; background: #176b52; color: #fff; }
.src-order-confirmation[data-payment-state="paid"] .src-order-confirmation-icon::before { content: '✓'; font-size: 28px; font-weight: 700; }
.src-order-confirmation[data-payment-state="failed"] .src-order-confirmation-icon { background: var(--red); }
.src-order-confirmation[data-payment-state="failed"] .src-order-confirmation-icon::before { content: '×'; font-size: 32px; }
.src-order-confirmation[data-payment-state="pending"] .src-order-confirmation-icon { background: #f7e9d7; }
.src-order-confirmation[data-payment-state="pending"] .src-order-confirmation-icon::before { width: 22px; height: 22px; border: 3px solid rgba(193,39,45,.2); border-top-color: var(--red); border-radius: 50%; animation: srcPaymentSpin .8s linear infinite; content: ''; }
.src-order-confirmation-kicker { margin: 2px 0 10px calc(var(--status-icon-size) + var(--status-title-gap)); color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.src-order-confirmation h2 { min-width: 0; margin: 0; color: var(--charcoal); font-family: var(--serif); font-size: clamp(30px,4vw,44px); line-height: 1.15; }
.src-order-confirmation-message { max-width: 64ch; margin: 16px 0 0 calc(var(--status-icon-size) + var(--status-title-gap)); color: #54504c; font-size: 15px; line-height: 1.65; }
.src-order-confirmation-facts { display: flex; flex-wrap: wrap; gap: 20px 32px; margin: 36px 0 0; padding: 24px 0; border-top: 1px solid #ddd7d0; border-bottom: 1px solid #ddd7d0; }
.src-order-confirmation-facts > div { flex: 1 1 180px; min-width: 0; }
.src-order-confirmation-facts dt { margin-bottom: 7px; color: #76716c; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.src-order-confirmation-facts dd { margin: 0; color: var(--charcoal); font-size: 15px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.src-order-confirmation-next { margin-top: 32px; padding: 24px 28px; background: #f7f2eb; }
.src-order-confirmation-next h3 { margin: 0 0 8px; color: var(--charcoal); font-family: var(--serif); font-size: 22px; }
.src-order-confirmation-next p { margin: 0; color: #54504c; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.src-order-confirmation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; }
.src-order-confirmation-actions a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 14px; padding: 12px 20px; font-size: 12px; font-weight: 800; line-height: 1.4; text-decoration: none; }
.src-order-confirmation-primary { background: var(--red); color: #fff; }
.src-order-confirmation-primary:hover { background: #8e1b21; color: #fff; }
.src-order-confirmation-secondary { border: 1px solid var(--red); color: var(--red); }
.src-order-confirmation-secondary:hover { background: var(--red); color: #fff; }
.src-order-confirmation-actions a:focus-visible { outline: 3px solid #f58220; outline-offset: 3px; }
@media (max-width: 640px) {
  .src-commerce-main--confirmation .src-commerce-hero { min-height: 250px; padding-bottom: 86px; }
  .src-order-confirmation { margin-top: -48px; padding: 28px 22px; }
  .src-order-confirmation-head { --status-icon-size: 40px; --status-title-gap: 14px; }
  .src-order-confirmation-message { margin-left: 0; }
  .src-order-confirmation-facts { margin-top: 28px; }
  .src-order-confirmation-next { padding: 20px; }
  .src-order-confirmation-actions a { width: 100%; }
}
.src-commerce-main > .woocommerce { width: min(var(--container),calc(100% - 48px)); margin-inline: auto; }
.src-commerce-main .woocommerce-products-header__title, .src-commerce-main .entry-title { margin: 0 0 30px; font-family: var(--serif); font-size: clamp(38px,5vw,64px); line-height: 1; }
.src-commerce-main .woocommerce-notices-wrapper { margin-bottom: 20px; }
.src-commerce-main .woocommerce-message, .src-commerce-main .woocommerce-info, .src-commerce-main .woocommerce-error { border-top-color: var(--red); background: #fff; color: var(--charcoal); font-size: 12px; }
.src-commerce-main .woocommerce-message::before, .src-commerce-main .woocommerce-info::before { color: var(--red); }
.src-commerce-main a.button, .src-commerce-main button.button, .src-commerce-main input.button, .src-commerce-main #place_order { min-height: 48px; padding: 0 22px; border: 0; border-radius: 0; background: var(--red); color: white; font-family: var(--sans); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.src-commerce-main a.button:hover, .src-commerce-main button.button:hover, .src-commerce-main input.button:hover, .src-commerce-main #place_order:hover { background: var(--charcoal); color: white; }
.src-commerce-main input.input-text, .src-commerce-main textarea, .src-commerce-main select, .src-commerce-main .select2-container .select2-selection--single { min-height: 48px; padding: 12px 14px; border: 1px solid rgba(28,28,28,.17); border-radius: 0; background-color: white; color: var(--charcoal); font-family: var(--sans); font-size: 12px; }
.src-commerce-main .select2-container .select2-selection--single { height: 48px; }
.src-commerce-main .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 24px; }
.src-commerce-main label { color: var(--charcoal); font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.src-commerce-main .woocommerce-checkout #payment, .src-commerce-main .woocommerce-cart .cart-collaterals, .src-commerce-main .woocommerce-checkout-review-order { padding: 22px; background: white; }
.src-commerce-main .woocommerce-checkout #payment div.payment_box { background: var(--cream); font-size: 11px; }
.src-commerce-main .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--cream); }
.src-commerce-main table.shop_table { border-collapse: collapse; border-color: rgba(28,28,28,.14); background: white; font-size: 11px; }
.src-commerce-main table.shop_table th, .src-commerce-main table.shop_table td { padding: 14px; border-color: rgba(28,28,28,.12); }
.src-commerce-main .woocommerce form.checkout_coupon, .src-commerce-main .woocommerce form.login, .src-commerce-main .woocommerce form.register { border: 1px solid rgba(28,28,28,.14); border-radius: 0; background: white; }
.src-commerce-main .woocommerce-MyAccount-navigation ul { padding: 0; list-style: none; }
.src-commerce-main .woocommerce-MyAccount-navigation li { padding: 10px 0; border-bottom: 1px solid rgba(28,28,28,.14); font-size: 11px; }
.src-commerce-main .woocommerce-MyAccount-navigation .is-active { color: var(--red); font-weight: 800; }
.src-commerce-main .woocommerce ul.products li.product { padding: 14px; background: #fff; box-shadow: 0 12px 38px rgba(28,28,28,.07); }
.src-commerce-main .woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--serif); font-size: 20px; }
.src-commerce-main .wc-block-components-notice-banner { border-radius: 0; border-top-color: var(--red); background: white; font-size: 12px; }
.src-commerce-main .wc-block-components-button:not(.is-link) { min-height: 48px; border: 0; border-radius: 0; background: var(--red); color: #fff; font-family: var(--sans); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.src-commerce-main .wc-block-components-button:not(.is-link):hover { background: var(--charcoal); color: #fff; }
.src-commerce-main .wc-block-components-text-input input, .src-commerce-main .wc-block-components-combobox .wc-block-components-combobox-control input, .src-commerce-main .wc-block-components-textarea textarea { min-height: 48px; border: 1px solid rgba(28,28,28,.17); border-radius: 0; background: white; font-family: var(--sans); font-size: 12px; }
.src-commerce-main .wc-block-components-text-input label, .src-commerce-main .wc-block-components-combobox label { color: var(--charcoal); font-family: var(--sans); font-size: 10px; font-weight: 700; }
.src-commerce-main .wc-block-cart__empty-cart__title { color: var(--charcoal); font-family: var(--serif); font-size: 34px; }
.src-commerce-main .wc-block-cart__empty-cart__title::before { color: var(--red); }
.src-commerce-main .wc-block-cart__empty-cart__title + .wc-block-cart__empty-cart__title { margin-top: 24px; }
.src-commerce-main .wc-block-components-sidebar, .src-commerce-main .wc-block-cart__main, .src-commerce-main .wc-block-checkout__main { font-family: var(--sans); }
.src-commerce-main .wc-block-components-order-summary, .src-commerce-main .wc-block-checkout__sidebar { background: white; }
.src-commerce-main .wc-block-components-totals-wrapper { border-color: rgba(28,28,28,.12); }
.src-commerce-catalog { padding: 0 0 8px; }
.src-commerce-catalog-heading { max-width: 760px; margin: 0 0 40px; }
.src-commerce-catalog-heading .eyebrow { margin: 0 0 12px; color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.src-commerce-catalog-heading h2 { margin: 0; color: var(--charcoal); font-family: var(--serif); font-size: clamp(32px,4vw,48px); line-height: 1.1; }
.src-commerce-catalog-heading > p:last-child { max-width: 62ch; margin: 16px 0 0; color: rgba(43,43,43,.62); font-size: 14px; line-height: 1.65; }
.src-commerce-empty { padding: 48px; border-top: 4px solid var(--red); background: #fff; }
.src-commerce-empty h3 { margin: 0; color: var(--charcoal); font-family: var(--serif); font-size: 28px; line-height: 1.2; }
.src-commerce-empty p { max-width: 56ch; margin: 12px 0 24px; color: rgba(43,43,43,.62); font-size: 14px; line-height: 1.65; }
.src-commerce-empty .src-v3-button { display: inline-flex; min-height: 48px; align-items: center; gap: 10px; padding: 0 22px; background: var(--red); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.src-commerce-empty .src-v3-button:hover { background: var(--charcoal); }
.src-commerce-empty .src-v3-button:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
@media (max-width: 767px) { .src-commerce-empty { padding: 32px 24px; } .src-commerce-empty h3 { font-size: 24px; } }
@media (max-width: 680px) {
  .src-commerce-main { padding: 120px 0 60px; }
  .src-commerce-main--confirmation { padding-top: 0; }
  .src-commerce-main > .woocommerce { width: calc(100% - 36px); }
  .src-commerce-main .woocommerce-checkout #payment, .src-commerce-main .woocommerce-cart .cart-collaterals, .src-commerce-main .woocommerce-checkout-review-order { padding: 14px; }
  .src-commerce-main table.shop_table th, .src-commerce-main table.shop_table td { padding: 9px 6px; font-size: 9px; }
}

/* Programme checkout: calm editorial cards and a clear M-PESA action. */
.src-commerce-main:has(.wc-block-checkout) .src-commerce-hero { min-height:270px; padding:130px 0 42px; }
.src-commerce-main:has(.wc-block-checkout) .src-commerce-content { padding-top:52px; }
.src-checkout-intro { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:34px; padding-bottom:22px; border-bottom:1px solid rgba(74,14,18,.14); }
.src-checkout-step { flex:none; padding:0 0 0 12px; border-left:2px solid var(--red); color:#8b2027; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.src-checkout-intro p { max-width:52ch; margin:0; color:#645c57; font-size:13px; line-height:1.6; }
.src-commerce-main .wc-block-checkout { gap:36px; }
.src-commerce-main .wc-block-checkout__main { width:62%; }
.src-commerce-main .wc-block-checkout__sidebar { width:34%; }
.src-commerce-main .wc-block-components-checkout-step { margin:0 0 30px; padding:0 0 28px; border:0; border-bottom:1px solid rgba(28,28,28,.16); border-radius:0; background:transparent; box-shadow:none; }
.src-commerce-main .wc-block-components-checkout-step__heading { margin-bottom:20px; }
.src-commerce-main .wc-block-components-checkout-step__title { color:#342a29; font-family:var(--serif); font-size:23px; font-weight:700; line-height:1.2; }
.src-commerce-main .wc-block-components-checkout-step__description { color:#746d68; font-size:12px; line-height:1.6; }
.src-commerce-main .wc-block-components-text-input input,
.src-commerce-main .wc-block-components-combobox-control input,
.src-commerce-main .wc-block-components-combobox-control select { min-height:56px; border:1px solid rgba(28,28,28,.52); border-radius:0; background:#fff; color:#342a29; font-size:14px; }
.src-commerce-main .wc-block-components-text-input input:focus,
.src-commerce-main .wc-block-components-combobox-control input:focus { border-color:#b3262c; box-shadow:0 0 0 3px rgba(179,38,44,.1); }
.src-commerce-main .wc-block-components-radio-control-accordion-option { overflow:hidden; border:1px solid rgba(28,28,28,.18); border-left:3px solid #169b57; border-radius:0; background:#f7faf7; }
.src-commerce-main .wc-block-components-radio-control-accordion-option:has(input:checked) { border-color:#169b57; box-shadow:none; }
.src-commerce-main .wc-block-components-radio-control__option { position:relative; min-height:68px; padding:16px 20px 16px 52px; }
.src-commerce-main .wc-block-components-radio-control__option .wc-block-components-radio-control__input { top:50% !important; left:16px !important; margin:0 !important; transform:translateY(-50%) !important; }
.src-mpesa-label { display:flex; width:100%; align-items:center; justify-content:space-between; gap:14px; color:#125c35; font-size:15px; font-weight:800; }
.src-mpesa-label img { width:65px; height:auto; max-height:33px; object-fit:contain; }
.src-mpesa-instructions { margin:0 0 12px; padding:16px 22px 4px 52px; border-top:1px solid rgba(22,155,87,.2); border-radius:0; background:transparent; color:#344139; font-size:12px; line-height:1.65; }
.src-mpesa-instructions strong { display:block; margin-bottom:6px; color:#125c35; font-size:14px; }
.src-mpesa-instructions p { margin:0 0 12px; }
.src-mpesa-instructions ol { margin:0 0 12px; padding-left:21px; }
.src-mpesa-instructions li { padding-left:3px; margin:0 0 6px; }
.src-mpesa-instructions small { display:block; padding-top:10px; border-top:1px solid #dfebe1; color:#53645a; font-size:11px; }
.src-commerce-main .wc-block-checkout__sidebar .wc-block-components-order-summary { overflow:hidden; border:1px solid rgba(28,28,28,.2); border-radius:0; background:#fff; box-shadow:none; }
.src-commerce-main .wc-block-checkout__sidebar .wc-block-components-order-summary-item { border-radius:0; box-shadow:none; }
.src-commerce-main .wc-block-components-checkout-place-order-button { display:flex; width:100%; min-height:62px !important; align-items:center; justify-content:center; padding:18px 28px !important; border-radius:0 !important; background:#b3262c !important; color:#fff !important; font-size:12px !important; font-weight:800 !important; letter-spacing:.1em !important; line-height:1.4 !important; box-shadow:none; }
.src-commerce-main .wc-block-components-checkout-place-order-button:hover { background:#8b2027 !important; box-shadow:none; }
.src-commerce-main .wc-block-components-checkout-place-order-button:focus-visible { outline:3px solid #f58220; outline-offset:3px; }
@media (max-width:900px) {
  .src-commerce-main .wc-block-checkout__main,
  .src-commerce-main .wc-block-checkout__sidebar { width:100%; }
  .src-checkout-intro { align-items:flex-start; flex-direction:column; }
}
@media (max-width:600px) {
  .src-commerce-main:has(.wc-block-checkout) .src-commerce-content { padding-top:30px; }
  .src-commerce-main .wc-block-components-checkout-step { padding:0 0 22px; }
  .src-commerce-main .wc-block-components-checkout-step__title { font-size:20px; }
}

/* Programme checkout: keep the customer journey quiet and give the programme room. */
.src-commerce-main:has(.wc-block-checkout) .src-checkout-intro { padding-bottom:0; border-bottom:0; }
.src-commerce-main .wc-block-components-checkout-step { margin-bottom:38px; padding-bottom:0; border-bottom:0; }
.src-commerce-main .wc-block-checkout__guest-checkout-notice,
.src-commerce-main .wc-block-checkout__create-account,
.src-commerce-main .wc-block-checkout__login-prompt { display:none !important; }
.src-commerce-main .wc-block-checkout__sidebar { background:transparent; }
.src-commerce-main .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block { padding:0; border:0; background:transparent; }
.src-commerce-main .wc-block-checkout .wc-block-components-checkout-order-summary__title { margin-top:0; padding:0 0 24px; border:0; }
.src-commerce-main .wc-block-checkout .wc-block-components-checkout-order-summary__content { border:0; }
.src-commerce-main .wc-block-checkout .wc-block-components-checkout-order-summary__title-text { color:#342a29; font-family:var(--serif); font-size:29px; font-weight:700; line-height:1.15; }
.src-commerce-main .wc-block-checkout .wc-block-components-order-summary { overflow:visible; border:0; background:transparent; }
.src-commerce-main .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block { padding:0 !important; }
.src-commerce-main .wc-block-checkout .wc-block-components-order-summary-item {
  display:block !important; width:100%; margin:0 0 16px; padding:4px 0 4px 20px !important; border:0; border-left:3px solid var(--red); background:transparent;
}
.src-commerce-main .wc-block-components-order-summary-item__image { display:none; }
.src-commerce-main .wc-block-components-order-summary-item__description { display:block; min-width:0; width:100%; margin:0 0 20px; padding:0 !important; }
.src-commerce-main .wc-block-components-order-summary-item__description::before { content:'Selected programme'; display:block; margin:0 0 9px; color:#8b2027; font-size:10px; font-weight:800; letter-spacing:.13em; line-height:1.4; text-transform:uppercase; }
.src-commerce-main .wc-block-components-order-summary-item__description .wc-block-components-product-name { display:block; margin:0; color:#342a29; font-family:var(--serif); font-size:22px; font-weight:700; line-height:1.2; }
.src-commerce-main .wc-block-components-order-summary-item__description .wc-block-components-product-metadata,
.src-commerce-main .wc-block-components-order-summary-item__description .wc-block-components-order-summary-item__individual-prices { display:none !important; }
.src-commerce-main .wc-block-components-order-summary-item__total-price { display:flex; width:100%; align-items:baseline; justify-content:space-between; gap:12px; padding:0 !important; white-space:nowrap; color:#342a29; font-size:18px; font-weight:700; text-align:left; }
.src-commerce-main .wc-block-components-order-summary-item__total-price::before { content:'Registration fee'; color:#746d68; font-size:12px; font-weight:500; }
.src-commerce-main .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block { display:none; }
.src-commerce-main .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block { padding:6px 0 !important; }
.src-commerce-main .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-totals-block { padding:0 !important; border:0; }
.src-commerce-main .wc-block-checkout .checkout-order-summary-block-fill { border:0; }
.src-commerce-main .wc-block-checkout .wc-block-components-totals-coupon { padding:0; color:#746d68; font-size:12px; }
.src-commerce-main .wc-block-checkout .wc-block-components-totals-footer-item { padding:0; color:#342a29; font-weight:700; }
.src-commerce-main .wc-block-checkout .wc-block-components-totals-wrapper:has(> .wc-block-components-totals-footer-item) { padding:14px 0 0 !important; }
.src-commerce-main .wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color:#8b2027; font-size:22px; }
.src-commerce-main .wc-block-components-totals-wrapper { border:0 !important; }
.src-commerce-main .wc-block-components-order-summary .wc-block-components-order-summary-item + .wc-block-components-order-summary-item { margin-top:28px; }
@media (max-width:900px) {
  .src-commerce-main .wc-block-checkout__sidebar { position:static !important; top:auto !important; }
  .src-commerce-main .wc-block-checkout .wc-block-components-checkout-order-summary__title.is-open .wc-block-components-checkout-order-summary__title-price { display:none; }
}

:root {
  --red: #b3262c;
  --color-accent: var(--red);
  --color-accent-ink: #fff;
  --red-dark: #8b0005;
  --orange: #f58220;
  --orange-light: #ffab5e;
  --charcoal: #2b2b2b;
  --cream: #faf7f2;
  --warm: #f0ede8;
  --red-soft: #f7e8e7;
  --ink-muted: rgba(43, 43, 43, .55);
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Montserrat', system-ui, sans-serif;
  --container: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; color: var(--charcoal); background: #fff; font-family: var(--sans); overflow-x: clip; }
body.admin-bar .site-header { top: 32px; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }

.container { width: min(var(--container), calc(100% - 48px)); margin-inline: auto; }
.container-narrow { width: min(820px, calc(100% - 48px)); margin-inline: auto; }
.section { padding: 112px 0; }
.section-sm { padding: 72px 0; }
.eyebrow { margin: 0 0 16px; color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow-light { color: var(--orange); }
.display { min-width: 0; margin: 0; overflow-wrap: anywhere; font-family: var(--serif); font-weight: 700; line-height: .98; letter-spacing: -.04em; }
.display-xl { font-size: clamp(54px, 8vw, 112px); }
.display-lg { font-size: clamp(42px, 6vw, 76px); }
.display-md { font-size: clamp(34px, 4vw, 56px); }
.lede { max-width: 640px; color: var(--ink-muted); font-size: 17px; line-height: 1.75; }
.lede-light { color: rgba(255,255,255,.65); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 48px; }
.section-heading h2 { max-width: 650px; }
.section-link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid currentColor; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; transition: gap .25s ease, color .25s ease; }
.section-link:hover { gap: 18px; color: var(--red); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 24px; border: 0; background: var(--red); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; transition: background .25s ease, transform .25s ease; }
.button:hover { background: var(--charcoal); transform: translateY(-2px); }
.button-dark { background: var(--charcoal); }
.button-orange { background: var(--orange); }
.button-ghost { border: 1px solid rgba(255,255,255,.34); background: transparent; }
.button-ghost:hover { background: #fff; color: var(--charcoal); }

.site-header { position: absolute; z-index: 20; top: 0; left: 0; width: 100%; color: #fff; transition: background .25s ease, color .25s ease, transform .25s ease; }
.site-header.is-scrolled { position: fixed; background: rgba(255,255,255,.97); color: var(--charcoal); box-shadow: 0 1px 0 rgba(28,28,28,.12); backdrop-filter: blur(12px); }
.site-header.is-scrolled .primary-nav a { color: rgba(28,28,28,.72); }
.site-header.is-scrolled .primary-nav a:hover, .site-header.is-scrolled .primary-nav .current-menu-item a { color: var(--red); }
.site-header.is-scrolled .nav-toggle { color: var(--charcoal); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 88px; }
.brand { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.brand-mark { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--red); color: #fff; font-family: var(--serif); font-size: 10px; font-weight: 900; letter-spacing: -.06em; }
.brand-copy small { display: block; margin-top: 2px; color: var(--orange-light); font-size: 8px; letter-spacing: .16em; }
.primary-nav { display: flex; align-items: center; gap: 26px; }
.primary-nav a { position: relative; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.82); }
.primary-nav a::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 2px; background: var(--orange); content: ''; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.primary-nav a:hover::after, .primary-nav .current-menu-item a::after { transform: scaleX(1); transform-origin: left; }
.header-cta { min-height: 38px; padding: 0 15px; background: var(--red); color: #fff !important; transition: background-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease; }
.site-header .header-cta:hover,
.site-header.is-scrolled .primary-nav .header-cta:hover { background: var(--orange); color: #fff !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(28,28,28,.16); }
.nav-toggle { display: none; border: 0; background: transparent; color: #fff; font-size: 24px; }

.hero { position: relative; min-height: 760px; display: flex; align-items: end; overflow: hidden; background: var(--charcoal); color: #fff; }
.hero::before { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,28,28,.95) 0%, rgba(28,28,28,.63) 42%, rgba(28,28,28,.12) 100%); content: ''; z-index: 1; }
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .72; filter: saturate(.75); }
.hero-content { position: relative; z-index: 2; padding: 180px 0 116px; }
.hero-content h1 { max-width: 820px; }
.hero-content h1 em { color: var(--orange); font-style: normal; }
.hero-content .lede { margin: 28px 0 34px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-stamp { position: absolute; right: 6vw; bottom: 75px; z-index: 2; width: 118px; height: 118px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: rgba(255,255,255,.72); font-size: 9px; font-weight: 700; letter-spacing: .16em; text-align: center; text-transform: uppercase; transform: rotate(-12deg); }
.hero-stamp::before { position: absolute; inset: 10px; border: 1px solid rgba(245,130,32,.75); border-radius: 50%; content: ''; }

.stats-band { background: var(--red); color: #fff; }
.stats-grid { display: grid; grid-template-columns: repeat(5, 1fr); }
.stat { padding: 34px 28px; border-right: 1px solid rgba(255,255,255,.22); }
.stat:first-child { padding-left: 0; }
.stat:last-child { border-right: 0; }
.stat-number { margin-bottom: 5px; font-family: var(--serif); font-size: 42px; font-weight: 700; line-height: 1; }
.stat-label { color: rgba(255,255,255,.66); font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }

.cream { background: var(--cream); }
.warm { background: var(--warm); }
.charcoal { background: var(--charcoal); color: #fff; }
.red { background: var(--red); color: #fff; }
.orange { background: var(--orange); color: #fff; }
.image-duotone { position: relative; overflow: hidden; }
.image-duotone img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.image-duotone::after { position: absolute; inset: 0; background: rgba(193,39,45,.38); mix-blend-mode: multiply; content: ''; }

.sector-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.sector-card { position: relative; min-height: 310px; display: flex; align-items: end; overflow: hidden; color: #fff; }
.sector-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.4); transition: transform .6s ease; }
.sector-card::after { position: absolute; inset: 0; background: linear-gradient(transparent 25%, rgba(28,28,28,.94) 100%); content: ''; }
.sector-card:hover img { transform: scale(1.05); }
.sector-card-content { position: relative; z-index: 1; padding: 28px; }
.sector-card-content h3 { margin: 0 0 8px; font-family: var(--serif); font-size: 28px; }
.sector-card-content p { margin: 0; color: rgba(255,255,255,.68); font-size: 12px; line-height: 1.6; }

.split-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 84px; }
.split-grid.reverse .split-media { order: 2; }
.split-media { position: relative; min-height: 560px; }
.split-media > img { width: 100%; height: 560px; object-fit: cover; filter: grayscale(.25); }
.split-media-card { position: absolute; right: -24px; bottom: -24px; width: 170px; padding: 22px; background: var(--red); color: #fff; }
.split-media-card strong { display: block; font-family: var(--serif); font-size: 45px; line-height: 1; }
.split-media-card span { color: rgba(255,255,255,.68); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.check-list { padding: 0; margin: 30px 0; list-style: none; }
.check-list li { display: flex; gap: 14px; padding: 12px 0; border-top: 1px solid rgba(28,28,28,.12); font-size: 13px; line-height: 1.6; }
.check-list li::before { color: var(--red); content: '↗'; font-weight: 800; }

.pillar-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.pillar { min-height: 280px; padding: 44px 40px; }
.pillar h3 { margin: 0 0 14px; font-family: var(--serif); font-size: 29px; }
.pillar p { margin: 0; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.75; }
.pillar:nth-child(1) { background: var(--red); }
.pillar:nth-child(2) { background: var(--charcoal); }
.pillar:nth-child(3) { background: var(--orange); }

.programme-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.programme-card { display: flex; min-height: 300px; flex-direction: column; padding: 28px; background: #fff; box-shadow: 0 16px 45px rgba(28,28,28,.06); transition: transform .25s ease, box-shadow .25s ease; }
.programme-card:hover { transform: translateY(-5px); box-shadow: 0 22px 55px rgba(28,28,28,.12); }
.status { display: inline-flex; align-self: flex-start; padding: 7px 9px; background: rgba(193,39,45,.1); color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.status.upcoming { background: rgba(245,130,32,.14); color: #b55c08; }
.status.closed { background: #ece9e5; color: #777; }
.programme-card h3 { margin: 22px 0 8px; font-family: var(--serif); font-size: 25px; line-height: 1.12; }
.programme-card p { margin: 0; color: var(--ink-muted); font-size: 12px; line-height: 1.65; }
.programme-facts { display: flex; gap: 14px; margin-top: auto; padding-top: 24px; color: rgba(28,28,28,.54); font-size: 9px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.programme-card .section-link { align-self: flex-start; margin-top: 24px; }

.project-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.project-card { position: relative; min-height: 360px; display: flex; align-items: end; overflow: hidden; color: #fff; }
.project-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.45); transition: transform .55s ease; }
.project-card::after { position: absolute; inset: 0; background: linear-gradient(transparent 20%, rgba(28,28,28,.92) 100%); content: ''; }
.project-card:hover img { transform: scale(1.05); }
.project-card-content { position: relative; z-index: 1; padding: 30px; }
.project-card-content h3 { margin: 0 0 9px; font-family: var(--serif); font-size: 30px; }
.project-card-content p { max-width: 430px; margin: 0; color: rgba(255,255,255,.68); font-size: 12px; line-height: 1.65; }
.project-meta { display: flex; gap: 18px; margin-top: 20px; color: var(--orange-light); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.team-section { overflow: hidden; background: var(--charcoal); color: #fff; }
.team-track { display: grid; grid-auto-columns: minmax(260px, 1fr); grid-auto-flow: column; gap: 10px; overflow-x: auto; padding-bottom: 8px; scrollbar-width: none; scroll-snap-type: x mandatory; }
.team-track::-webkit-scrollbar { display: none; }
.team-card { position: relative; min-height: 475px; overflow: hidden; padding: 28px; scroll-snap-align: start; }
.team-card.red { background: var(--red); }
.team-card.dark { background: #111; }
.team-card.orange { background: var(--orange); }
.team-card h3 { position: relative; z-index: 2; margin: 0; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.team-card h4 { position: relative; z-index: 2; margin: 4px 0; font-family: var(--serif); font-size: 29px; line-height: 1.05; }
.team-card blockquote { position: absolute; right: 28px; bottom: 26px; left: 28px; z-index: 2; margin: 0; color: rgba(255,255,255,.78); font-family: var(--serif); font-size: 15px; font-style: italic; line-height: 1.45; }
.team-card img { position: absolute; right: 0; bottom: 0; left: 0; width: 100%; height: 78%; object-fit: cover; object-position: center top; filter: grayscale(1) contrast(1.05); mix-blend-mode: screen; opacity: .8; transition: transform .5s ease, opacity .5s ease; }
.team-card:hover img { transform: scale(1.04); opacity: .94; }
.team-arrows { display: flex; gap: 8px; }
.team-arrows button { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; font-size: 18px; transition: background .2s ease; }
.team-arrows button:hover { background: var(--red); }

.cta-band { position: relative; overflow: hidden; padding: 100px 0; background: var(--charcoal); color: #fff; }
.cta-band::after { position: absolute; right: -4vw; bottom: -9vw; color: rgba(255,255,255,.04); content: 'SRC'; font-family: var(--serif); font-size: 25vw; font-weight: 900; line-height: .7; }
.cta-band .container { position: relative; z-index: 1; }

.page-hero { position: relative; overflow: hidden; padding: 190px 0 92px; background: var(--charcoal); color: #fff; }
.page-hero::after { position: absolute; right: 3%; bottom: -12%; color: rgba(255,255,255,.035); content: attr(data-mark); font-family: var(--serif); font-size: 28vw; font-weight: 900; line-height: .7; }
.page-hero .container { position: relative; z-index: 1; }
.page-hero .lede { max-width: 600px; }
.article-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: start; }
.article-copy p { color: var(--ink-muted); font-size: 15px; line-height: 1.85; }
.article-copy h2, .article-copy h3 { margin: 38px 0 14px; font-family: var(--serif); line-height: 1.1; }
.article-copy h2 { font-size: 39px; }
.article-copy h3 { font-size: 25px; }
.values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.value-card { padding-top: 20px; border-top: 2px solid var(--red); }
.value-card h3 { margin: 0 0 10px; font-size: 14px; }
.value-card p { margin: 0; color: var(--ink-muted); font-size: 12px; line-height: 1.7; }

.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { color: rgba(28,28,28,.62); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.field input, .field textarea, .field select { width: 100%; padding: 15px 14px; border: 1px solid #dedbd6; border-radius: 0; background: #fff; color: var(--charcoal); outline: none; }
.field textarea { min-height: 140px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(193,39,45,.09); }
.notice { margin-bottom: 24px; padding: 18px; background: rgba(193,39,45,.08); border-left: 3px solid var(--red); font-size: 13px; line-height: 1.6; }
.job-list { display: grid; gap: 12px; }
.job-card { padding: 26px; border: 1px solid #e5e1dc; background: #fff; }
.job-card-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.job-card h3 { margin: 0 0 7px; font-family: var(--serif); font-size: 24px; }
.job-card-meta { color: rgba(28,28,28,.5); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.job-card p { max-width: 730px; color: var(--ink-muted); font-size: 13px; line-height: 1.7; }

.footer { padding: 80px 0 28px; background: #111; color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr; gap: 44px; }
.footer h3 { margin: 0 0 20px; font-family: var(--serif); font-size: 20px; }
.footer p, .footer a { color: rgba(255,255,255,.55); font-size: 12px; line-height: 1.7; }
.footer a:hover { color: var(--orange); }
.footer-links { display: grid; gap: 6px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 70px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.35); font-size: 10px; }
.social-links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 22px; }
.social-links a { color: rgba(255,255,255,.42); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.county-list { color: rgba(255,255,255,.42); font-size: 12px; line-height: 1.9; }
.footer-contact { display: inline-flex; margin-top: 8px; padding: 11px 18px; border: 1px solid rgba(255,255,255,.22); color: #fff !important; font-size: 9px !important; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }

[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1); }
[data-reveal='left'] { transform: translateX(-26px); }
[data-reveal='right'] { transform: translateX(26px); }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* Reference homepage composition */
.ref-hero { min-height: 100vh; }
.ref-hero .hero-content { padding-top: 165px; padding-bottom: 90px; }
.ref-hero h1 { max-width: 620px; font-size: clamp(58px, 6vw, 92px); line-height: .91; }
.ref-hero h1 em { display: inline-block; font-style: italic; }
.ref-hero .hero-meta { color: var(--orange); font-size: 10px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.ref-hero .hero-copy { max-width: 600px; color: rgba(255,255,255,.65); font-size: 17px; line-height: 1.65; }
.ref-hero .hero-actions { align-items: center; }
.watch-story { display: inline-flex; align-items: center; gap: 12px; color: rgba(255,255,255,.62); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.watch-story .watch-icon { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; font-size: 11px; }
.scroll-hint { position: absolute; bottom: 20px; left: 50%; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; color: rgba(255,255,255,.35); font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; transform: translateX(-50%); }
.scroll-hint i { display: block; width: 1px; height: 34px; background: rgba(255,255,255,.22); }
.ref-stats .stats-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ref-stats .stat { min-width: 0; padding: 30px 22px; }
.ref-stats .stat:first-child { padding-left: 0; }
.ref-stats .stat-number { font-size: 37px; }
.ref-stats .stat-label { line-height: 1.35; }
.sector-showcase { padding: 118px 0 132px; background: var(--cream); }
.sector-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 74px; align-items: start; }
.sector-intro h2 { margin-bottom: 22px; }
.sector-intro > p { margin: 0 0 28px; color: var(--ink-muted); font-size: 13px; line-height: 1.8; }
.sector-list { display: grid; gap: 2px; }
.sector-list button { display: flex; align-items: center; gap: 15px; width: 100%; padding: 8px 0; border: 0; background: transparent; color: rgba(28,28,28,.38); text-align: left; transition: color .25s ease, padding .25s ease; }
.sector-list button:hover, .sector-list button.is-active { color: var(--red); padding-left: 3px; }
.sector-list .sector-index { width: 25px; color: rgba(28,28,28,.23); font-family: var(--serif); font-size: 15px; font-weight: 700; }
.sector-list button.is-active .sector-index { color: var(--red); }
.sector-list .sector-name { font-size: 12px; font-weight: 600; }
.sector-list .sector-rule { width: 21px; height: 1px; margin-left: auto; background: var(--red); opacity: 0; transition: opacity .25s ease; }
.sector-list button.is-active .sector-rule { opacity: 1; }
.sector-stage { min-width: 0; }
.sector-visual { position: relative; height: 390px; margin-inline: 8px; overflow: hidden; }
.sector-visual::before, .sector-visual::after { position: absolute; inset: 0; background: #cfcac3; content: ''; transform-origin: bottom center; }
.sector-visual::before { transform: rotate(-7deg) translateX(-20px); opacity: .55; }
.sector-visual::after { transform: rotate(-3deg) translateX(-8px); opacity: .38; }
.sector-image { position: absolute; inset: 0 18px; z-index: 2; width: calc(100% - 36px); height: 100%; object-fit: cover; filter: saturate(.9); animation: sectorFadeIn .45s ease-out both; }
.sector-tint { position: absolute; inset: 0 18px; z-index: 3; background: rgba(193,39,45,.15); mix-blend-mode: multiply; pointer-events: none; }
.sector-number { position: absolute; right: 4px; bottom: -12px; z-index: 4; color: transparent; font-family: var(--serif); font-size: 118px; font-weight: 900; line-height: 1; -webkit-text-stroke: 1px var(--red); background: repeating-linear-gradient(-45deg, var(--red) 0 1px, transparent 1px 7px); -webkit-background-clip: text; background-clip: text; }
.sector-caption { margin: 28px 18px 0; animation: sectorCaptionIn .45s ease-out both; }
.sector-caption h3 { margin: 0 0 10px; font-family: var(--serif); font-size: 36px; line-height: 1; }
.sector-caption p { max-width: 540px; margin: 0 0 18px; color: var(--ink-muted); font-size: 15px; line-height: 1.7; }
.text-cta { color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.text-cta:hover { color: var(--orange); }
.thematic-section { padding: 95px 0; background: #fff; }
.thematic-section .section-heading { display: block; margin-bottom: 42px; text-align: center; }
.thematic-section .section-heading h2 { margin-inline: auto; }
.thematic-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 4px; }
.theme-chip { min-height: 132px; padding: 22px; border: 0; border-top: 2px solid var(--red); background: rgba(193,39,45,.04); color: var(--charcoal); text-align: left; transition: transform .25s ease, background .25s ease; }
.theme-chip:nth-child(2) { border-top-color: var(--orange); background: rgba(245,130,32,.06); }
.theme-chip:nth-child(3) { border-top-color: #5f8d61; background: #f1f7ef; }
.theme-chip:nth-child(4) { border-top-color: var(--charcoal); background: #f7f7f7; }
.theme-chip:nth-child(5) { border-top-color: #3d73a5; background: #f0f6fc; }
.theme-chip:hover { transform: translateY(-4px); background: var(--warm); }
.theme-chip b { display: block; margin-bottom: 18px; color: var(--red); font-size: 16px; }
.theme-chip:nth-child(2) b { color: var(--orange); }
.theme-chip:nth-child(3) b { color: #47734a; }
.theme-chip:nth-child(4) b { color: var(--charcoal); }
.theme-chip:nth-child(5) b { color: #3d73a5; }
.theme-chip span { font-size: 11px; font-weight: 700; line-height: 1.3; }
.footprint-ref { position: relative; min-height: 720px; overflow: hidden; padding: 82px 0 0; background: var(--cream); }
.footprint-ref .container { position: relative; z-index: 2; }
.footprint-heading { position: absolute; top: 58px; left: max(24px, calc((100% - var(--container)) / 2)); z-index: 3; }
.map-art { position: relative; width: min(960px, 80vw); height: 610px; margin: 40px auto 0 34%; }
.map-art img { width: 100%; height: 100%; object-fit: contain; filter: brightness(.18) saturate(0); opacity: .98; }
.map-dot { position: absolute; z-index: 4; width: 10px; height: 10px; border: 2px solid rgba(255,255,255,.55); border-radius: 50%; background: var(--red); box-shadow: 0 0 0 4px rgba(193,39,45,.17); }
.map-dot.ke { top: 38%; left: 72%; }.map-dot.tz { top: 47%; left: 68%; }.map-dot.mw { top: 56%; left: 62%; }.map-dot.zm { top: 54%; left: 55%; }.map-dot.za { top: 78%; left: 49%; }.map-dot.sn { top: 24%; left: 22%; }
.map-legend { position: absolute; bottom: 22px; left: 24px; z-index: 3; display: flex; flex-wrap: wrap; gap: 14px; color: rgba(28,28,28,.52); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.map-legend span::before { display: inline-block; width: 9px; height: 9px; margin-right: 6px; border-radius: 50%; background: #dc8a90; content: ''; vertical-align: -1px; }
.project-ref { padding: 92px 0 0; background: var(--cream); }
.project-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 2px; }
.project-tile { position: relative; min-height: 222px; display: flex; align-items: end; overflow: hidden; color: #fff; }
.project-tile.span-2 { grid-column: span 2; }
.project-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.project-tile::after { position: absolute; inset: 0; background: linear-gradient(transparent 25%, rgba(0,0,0,.77)); content: ''; }
.project-tile:hover img { transform: scale(1.05); }
.project-tile-content { position: relative; z-index: 1; width: 100%; padding: 18px; }
.project-tile-partner { margin-bottom: 5px; color: rgba(255,255,255,.55); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.project-tile h3 { margin: 0; font-family: var(--serif); font-size: 17px; line-height: 1.08; }
.project-tile-arrow { position: absolute; top: 12px; right: 12px; z-index: 2; display: grid; place-items: center; width: 27px; height: 27px; background: var(--red); color: #fff; opacity: 0; transition: opacity .2s ease; }
.project-tile:hover .project-tile-arrow { opacity: 1; }
.partners-ref { border-block: 1px solid #f3f3f3; background: var(--warm); }
.partner-heading { width: min(1280px, 100%); padding: 48px 24px 24px; }
.partner-heading .eyebrow { margin-bottom: 4px; color: rgba(28,28,28,.35); font-weight: 700; line-height: 15px; }
.partner-heading h2 { margin: 0; font-size: 24px; line-height: 32px; letter-spacing: normal; }
.partner-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: rgba(0,0,0,.08); }
.partner-tile { display: flex; height: 128px; align-items: center; justify-content: center; padding: 16px; color: #fff; text-align: center; }
.partner-tile.cta { grid-column: span 2; }
.partner-tile.partner-color-red { background: #c1272d; }
.partner-tile.partner-color-charcoal, .partner-tile.cta { background: #1c1c1c; }
.partner-tile.partner-color-orange { background: #f58220; }
.partner-tile.photo { overflow: hidden; padding: 0; }
.partner-tile.photo img { width: 100%; height: 100%; object-fit: cover; }
.partner-tile:not(.photo):not(.cta) { cursor: default; transition: filter .2s ease; }
.partner-tile:not(.photo):not(.cta):hover { filter: brightness(1.12); }
.partner-tile-copy { transition: transform .2s ease; }
.partner-tile:not(.photo):not(.cta):hover .partner-tile-copy { transform: scale(1.05); }
.partner-tile strong { display: block; color: #fff; font-family: var(--sans); font-size: 16.8px; font-weight: 900; line-height: 1; letter-spacing: .07em; }
.partner-tile.partner-short strong { font-size: 23.2px; letter-spacing: .14em; }
.partner-tile small { display: block; max-width: 9rem; margin: .4rem auto 0; color: rgba(255,255,255,.5); font-family: var(--sans); font-size: 9.28px; font-weight: 400; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; }
.partner-tile.cta { flex-direction: column; gap: 8px; color: #fff; cursor: pointer; transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke; transition-duration: .3s; }
.partner-tile.cta:hover { background: #c1272d; }
.partner-tile.cta span { color: #fff; font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; text-transform: uppercase; }
.partner-tile.cta i { color: rgba(255,255,255,.6); font-size: 20px; font-style: normal; line-height: 28px; transition-property: transform, translate, scale, rotate; transition-duration: .3s; }
.partner-tile.cta:hover i { transform: translateX(6px); }

.team-ref { overflow: hidden; background: #111; color: #fff; }
.team-ref-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; width: 100%; padding: 56px 24px 32px; }
.team-ref-header .eyebrow { margin-bottom: 8px; color: #c1272d; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; }
.team-ref-header h2 { margin: 0; color: #fff; font-size: 30px; line-height: 1.25; letter-spacing: normal; }
.team-heading-actions { display: flex; align-items: center; gap: 20px; }
.team-all-link { display: inline-flex; align-items: center; gap: 6px; color: rgba(255,255,255,.5); font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: .025em; line-height: 16.5px; transition: color .2s ease; }
.team-all-link span { display: inline-block; transition: transform .2s ease; }
.team-all-link:hover { color: #fff; }
.team-all-link:hover span { transform: translateX(4px); }
.team-ref-arrows { display: flex; align-items: center; gap: 8px; }
.team-ref-arrows button { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; font-size: 16px; transition: border-color .2s ease, color .2s ease; }
.team-ref-arrows button:disabled { border-color: rgba(255,255,255,.1); color: rgba(255,255,255,.2); cursor: default; }
.team-ref-arrows button:not(:disabled):hover { border-color: #fff; color: #fff; }
.team-ref-viewport { overflow: hidden; }
.team-ref-grid { display: flex; gap: 1px; will-change: transform; transition: transform .48s cubic-bezier(.4,0,.2,1); }
.team-ref-card { position: relative; flex: 0 0 clamp(260px, 25vw, 340px); width: clamp(260px, 25vw, 340px); height: 520px; overflow: hidden; color: #fff; cursor: default; outline: none; }
.team-panel-red { background: #c1272d; }
.team-panel-charcoal { background: #1c1c1c; }
.team-panel-orange { background: #f58220; }
.team-ref-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; mix-blend-mode: luminosity; opacity: .8; transition: opacity .35s ease; user-select: none; }
.team-ref-card.is-active img { opacity: .92; animation: portraitBreathe 3.5s ease-in-out infinite; }
.team-ref-vignette { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 35%, transparent 45%, rgba(0,0,0,.28) 100%); }
.team-ref-bottom-gradient { position: absolute; right: 0; bottom: 0; left: 0; height: 150px; pointer-events: none; background: linear-gradient(to top, rgba(0,0,0,.6) 0%, transparent 100%); }
.team-ref-card-content { position: absolute; z-index: 1; top: 0; right: 0; left: 0; padding: 24px 20px 0; }
.team-ref-role { margin-bottom: 4px; color: rgba(255,255,255,.6); font-family: var(--sans); font-size: 9px; font-weight: 700; letter-spacing: .15em; line-height: normal; text-transform: uppercase; }
.team-ref-card h3 { margin: 0; color: #fff; font-family: var(--serif); font-size: 20px; font-weight: 700; line-height: 1.25; }
.team-ref-bio { position: absolute; right: 20px; bottom: 0; left: 20px; z-index: 1; margin: 0; padding-bottom: 24px; color: rgba(255,255,255,.78); font-family: var(--serif); font-size: 12px; font-style: italic; line-height: 1.6; }
.team-ref-card:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.team-ref-footer { display: flex; align-items: center; justify-content: space-between; padding: 24px; }
.team-all-link-mobile { display: block; color: rgba(255,255,255,.45); }
.team-all-link-desktop { display: none; }
.team-ref-dots { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.team-ref-dots button { width: 6px; height: 6px; padding: 0; border: 0; border-radius: 999px; background: rgba(255,255,255,.2); transition: width .2s ease, background .2s ease; }
.team-ref-dots button.is-in-view { width: 20px; background: #fff; }
@keyframes portraitBreathe { 0%, 100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.024) translateY(-5px); } }
.programmes-ref { padding: 80px 0; background: var(--warm); }
.programmes-ref > .container { width: min(1280px, 100%); padding-right: 24px; padding-left: 24px; }
.programmes-ref .section-heading { margin-bottom: 40px; }
.programmes-ref .section-heading h2 { font-size: 30px; line-height: 1.25; letter-spacing: normal; }
.programme-ref-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; }
.programme-ref-card { display: flex; min-height: 280px; flex-direction: column; overflow: hidden; background: #fff; box-shadow: 0 1px 6px rgba(0,0,0,.07); }
.programme-ref-card-media { position: relative; height: 144px; flex-shrink: 0; overflow: hidden; }
.programme-ref-card-media::after { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.5), transparent); content: ''; pointer-events: none; }
.programme-ref-card-media img { width: 100%; height: 100%; object-fit: cover; filter: none; transition: transform .5s ease; }
.programme-ref-card:hover .programme-ref-card-media img { transform: scale(1.05); }
.programme-status, .programme-fee { position: absolute; z-index: 1; top: 12px; padding: 4px 10px; font-size: 9px; font-weight: 700; letter-spacing: .1em; line-height: 13.5px; text-transform: uppercase; }
.programme-status { left: 12px; color: #fff; background: #c1272d; }
.programme-status-upcoming { background: #f58220; }
.programme-status-closed { color: rgba(28,28,28,.45); background: rgba(28,28,28,.12); }
.programme-fee { right: 12px; color: #fff; background: rgba(0,0,0,.55); }
.programme-ref-card-body { display: flex; min-height: 0; flex: 1; flex-direction: column; padding: 16px 20px 20px; }
.programme-ref-card h3 { margin: 0 0 6px; font-family: var(--serif); font-size: 16px; font-weight: 700; line-height: 1.375; }
.programme-ref-card p { min-height: 0; flex: 1; margin: 0 0 12px; color: rgba(28,28,28,.58); font-size: 12px; line-height: 1.625; }
.programme-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 16px; color: rgba(28,28,28,.45); font-size: 10px; font-weight: 400; letter-spacing: normal; line-height: 15px; text-transform: none; }
.programme-ref-card .button { position: static; width: 100%; min-height: 0; padding: 10px 0; font-size: 10px; line-height: 15px; }
.quote-band { position: relative; overflow: hidden; padding: 100px 0; background: var(--charcoal); color: #fff; }
.quote-band::after { position: absolute; top: 0; right: -10%; width: 60%; height: 100%; background: radial-gradient(ellipse at center, rgba(245,130,32,.3), transparent 65%); content: ''; pointer-events: none; }
.quote-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.quote-grid blockquote { margin: 0; font-family: var(--serif); font-size: clamp(31px, 3.5vw, 50px); font-weight: 700; line-height: 1.12; }
.quote-attribution { display: flex; align-items: center; gap: 14px; margin-top: 30px; color: rgba(255,255,255,.48); font-size: 13px; }
.quote-attribution::before { width: 40px; height: 1px; background: var(--orange); content: ''; }
.quote-aside { text-align: right; }
.quote-aside p { max-width: 330px; margin: 0 0 25px auto; color: rgba(255,255,255,.45); font-size: 13px; line-height: 1.7; }
.newsletter-ref { padding: 60px 0; background: var(--red); color: #fff; }
.newsletter-grid { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.newsletter-grid h2 { margin: 0; font-size: 31px; }
.newsletter-form { display: flex; min-width: min(100%, 350px); }
.newsletter-form input { min-width: 0; flex: 1; padding: 14px 16px; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.1); color: #fff; outline: 0; }
.newsletter-form input::placeholder { color: rgba(255,255,255,.54); }
.newsletter-form .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.newsletter-form button { border: 0; background: var(--orange); color: #fff; padding: 0 18px; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }

@media (max-width: 900px) {
  .primary-nav { position: absolute; top: 76px; right: 24px; left: 24px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 16px; background: var(--charcoal); box-shadow: 0 20px 40px rgba(0,0,0,.22); }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { padding: 13px 0; }
  .primary-nav a::after { display: none; }
  .header-cta { text-align: center; }
  .nav-toggle { display: block; }
  .hero { min-height: 680px; }
  .hero-stamp { display: none; }
  .stats-grid { grid-template-columns: repeat(3, 1fr); }
  .stat:nth-child(3) { border-right: 0; }
  .stat:nth-child(n+4) { border-top: 1px solid rgba(255,255,255,.22); }
  .split-grid, .article-grid { grid-template-columns: 1fr; gap: 48px; }
  .split-grid.reverse .split-media { order: initial; }
  .split-media, .split-media > img { min-height: 420px; height: 420px; }
  .programme-grid { grid-template-columns: repeat(2, 1fr); }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Reference interaction parity: hero mark, footprint and project dossier */
.hero-watermark {
  position: absolute;
  right: -2vw;
  bottom: 0;
  z-index: 2;
  color: transparent;
  font-family: var(--serif);
  font-size: 24vw;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
  user-select: none;
  -webkit-text-stroke: 1px rgba(255,255,255,.06);
}
.ref-hero .hero-content, .ref-hero .scroll-hint, .ref-hero .hero-stamp { z-index: 3; }

.footprint-ref {
  height: 78vh;
  min-height: 580px;
  max-height: 860px;
  padding: 0;
}
.footprint-heading { top: 40px; left: 48px; pointer-events: none; }
.footprint-heading .eyebrow { margin-bottom: 8px; }
.footprint-heading .display { font-size: clamp(30px, 3vw, 42px); }
.footprint-map-window {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  transition: right .5s cubic-bezier(.4,0,.2,1);
}
.footprint-ref .map-art {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  margin: 0;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
  transform-origin: center;
}
.map-art .africa-map-svg { position: absolute; inset: 0; width: 100%; height: 100%; min-width: 0; min-height: 0; display: block; }
.map-art .africa-map-svg path {
  fill: var(--charcoal) !important;
  stroke: #fff !important;
  stroke-width: .7px;
  cursor: default;
  transition: fill .2s ease, opacity .2s ease;
}
.map-art .africa-map-svg path[data-id="KE"],
.map-art .africa-map-svg path[data-id="TZ"],
.map-art .africa-map-svg path[data-id="MW"],
.map-art .africa-map-svg path[data-id="ZM"],
.map-art .africa-map-svg path[data-id="ZA"],
.map-art .africa-map-svg path[data-id="SN"] { cursor: pointer; }
.map-art .africa-map-svg path[data-country] { cursor: pointer; }
.map-art .africa-map-svg path.is-hovered,
.map-art .africa-map-svg path.is-selected { fill: #431d1e !important; }
.map-dot {
  width: 14px;
  height: 14px;
  padding: 0;
  border: 2px solid rgba(255,255,255,.72);
  opacity: .82;
  transform: translate(-50%, -50%);
  transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease;
}
.map-dot span { position: absolute; inset: -14px; border: 1px solid rgba(193,39,45,.28); border-radius: 50%; opacity: 0; transform: scale(.55); transition: opacity .2s ease, transform .2s ease; }
.map-dot:hover, .map-dot:focus-visible, .map-dot.is-active { opacity: 1; transform: translate(-50%, -50%) scale(1.3); box-shadow: 0 0 0 8px rgba(193,39,45,.16); }
.map-dot:hover span, .map-dot:focus-visible span, .map-dot.is-active span { opacity: 1; transform: scale(1); }
.map-dot.ke { top: 43%; left: 72%; }.map-dot.tz { top: 51%; left: 69%; }.map-dot.mw { top: 58%; left: 66%; }.map-dot.zm { top: 61%; left: 57%; }.map-dot.za { top: 82%; left: 56%; }.map-dot.sn { top: 36%; left: 18%; }
.map-legend { left: 48px; bottom: 30px; gap: 18px; }
.map-legend button { display: inline-flex; align-items: center; gap: 7px; padding: 6px 0; border: 0; background: transparent; color: var(--charcoal); opacity: .5; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; transition: opacity .2s ease; }
.map-legend button:hover, .map-legend button:focus-visible, .map-legend button.is-active { opacity: 1; }
.map-legend button i { width: 8px; height: 8px; border-radius: 50%; background: var(--red); }
.map-legend button:first-child i { width: 12px; height: 12px; }
.map-legend button b { color: var(--red); font-size: 8px; letter-spacing: .12em; }
.footprint-detail {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  width: 46%;
  padding: 54px 56px 40px 40px;
  overflow-y: auto;
  background: #fff;
  opacity: 0;
  transform: translateX(100%);
  transition: transform .5s cubic-bezier(.4,0,.2,1), opacity .35s ease;
}
.footprint-ref.is-detail .footprint-map-window { right: 46%; }
.footprint-ref.is-detail .map-art { transform: translate(var(--map-x, 0), var(--map-y, 0)) scale(var(--map-scale, 1.55)); }
.footprint-ref.is-detail .footprint-detail { opacity: 1; transform: none; }
.footprint-back { padding: 0 0 10px; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.footprint-count { margin: 55px 0 10px; color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.footprint-detail h3 { margin: 0; font-family: var(--serif); font-size: clamp(38px, 4vw, 58px); line-height: 1; }
.footprint-meta { margin: 14px 0 40px; color: rgba(28,28,28,.52); font-size: 11px; line-height: 1.6; }
.footprint-detail-label { margin: 0 0 5px; color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.footprint-programmes { margin-inline: -14px; }
.footprint-programme { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 16px; width: 100%; min-height: 66px; align-content: center; padding: 14px; border: 0; border-bottom: 1px solid rgba(28,28,28,.08); background: transparent; color: var(--charcoal); cursor: pointer; text-align: left; transition: background-color .2s ease, color .2s ease; }
.footprint-programme::before { position: absolute; top: 9px; bottom: 9px; left: 0; width: 3px; background: var(--red); content: ''; opacity: 0; transform: scaleY(.35); transition: opacity .2s ease, transform .2s ease; }
.footprint-programme strong { min-width: 0; overflow: hidden; font-family: var(--serif); font-size: 15px; text-overflow: ellipsis; white-space: nowrap; transition: color .2s ease; }
.footprint-programme span { grid-column: 1; overflow: hidden; color: rgba(28,28,28,.52); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.footprint-programme i { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--red); font-size: 17px; font-style: normal; transition: transform .2s ease; }
.footprint-programme:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; background: var(--red-soft); }
.footprint-programme:focus-visible::before { opacity: 1; transform: none; }
.footprint-programme:active { background: var(--warm); }
.footprint-empty { margin: 16px 14px; color: var(--ink-muted); font-size: 12px; line-height: 1.6; }

@media (hover: hover) and (pointer: fine) {
  .footprint-programme:hover { background: var(--red-soft); }
  .footprint-programme:hover::before { opacity: 1; transform: none; }
  .footprint-programme:hover strong { color: var(--red); }
  .footprint-programme:hover i { transform: translate(3px, -3px); }
}

.project-tile { width: 100%; padding: 0; border: 0; background: #111; text-align: left; }
.project-ref .container { width: min(1280px, calc(100% - 48px)); padding-inline: 40px; }
.project-ref .project-tile { min-height: 220px; }
.project-tile-content { display: block; }
.project-tile-content strong { display: block; font-family: var(--serif); font-size: 17px; line-height: 1.08; }
.project-tile:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.project-dialog {
  width: min(1024px, calc(100vw - 32px));
  height: min(660px, calc(100vh - 32px));
  max-width: none;
  max-height: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--charcoal);
  box-shadow: 0 24px 70px rgba(0,0,0,.42);
}
.project-dialog::backdrop { background: rgba(0,0,0,.72); backdrop-filter: blur(4px); }
.project-modal-shell { position: relative; display: grid; grid-template-columns: 260px 46px 1fr; width: 100%; height: 100%; overflow: hidden; background: var(--cream); }
.project-modal-aside { position: relative; overflow: hidden; color: #fff; }
.project-modal-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(.9) brightness(1.1); }
.project-modal-tint { position: absolute; inset: 0; background: rgba(193,39,45,.84); mix-blend-mode: normal; }
.project-modal-summary { position: relative; z-index: 1; display: flex; height: 100%; flex-direction: column; padding: 28px 24px; }
.dialog-close { align-self: flex-start; margin-bottom: 46px; padding: 0; border: 0; background: transparent; color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.project-modal-kicker { margin: 0 0 15px; color: rgba(255,255,255,.67); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.project-modal-summary h2 { margin: 0 0 18px; font-family: var(--serif); font-size: 26px; line-height: 1; }
.project-modal-description { margin: 0; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.7; }
.project-modal-location { margin-top: auto; }
.project-modal-location span { display: block; margin-bottom: 8px; color: rgba(255,255,255,.55); font-size: 8px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.project-modal-location strong { color: rgba(255,255,255,.8); font-size: 10px; font-weight: 500; line-height: 1.5; }
.project-modal-tabs { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 10px; padding-top: 42px; background: #ede9e3; }
.project-modal-tabs button { height: 126px; padding: 12px 14px; border: 0; border-radius: 0 999px 999px 0; background: transparent; color: rgba(28,28,28,.36); font-size: 8px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); transition: background .2s ease, color .2s ease; }
.project-modal-tabs button[aria-selected="true"] { background: var(--red); color: #fff; }
.project-modal-main { overflow-y: auto; background: var(--cream); }
.project-tab-panel { display: none; min-height: 100%; padding: 34px 32px; animation: projectPanelIn .28s ease-out both; }
.project-tab-panel.is-active { display: block; }
.project-tab-panel h3 { margin: 0 0 6px; font-family: var(--serif); font-size: 31px; line-height: 1.1; }
.project-panel-location { margin: 0 0 28px; color: rgba(28,28,28,.5); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.project-panel-description, .project-tab-panel > p { max-width: 560px; color: rgba(28,28,28,.65); font-size: 13px; line-height: 1.72; }
.project-stats { display: flex; gap: 48px; margin-top: 44px; }
.project-stat strong { display: block; color: var(--red); font-family: var(--serif); font-size: 28px; line-height: 1; }
.project-stat span { display: block; margin-top: 7px; color: rgba(28,28,28,.4); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.project-impact-list { display: grid; gap: 20px; margin-top: 28px; }
.project-impact-item { display: grid; grid-template-columns: 4px 1fr; gap: 14px; }
.project-impact-item::before { border-radius: 4px; background: var(--red); content: ''; }
.project-impact-item strong { display: block; margin-bottom: 4px; color: var(--red); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.project-impact-item p { margin: 0; color: rgba(28,28,28,.62); font-size: 12px; line-height: 1.65; }
.project-panel-eyebrow { margin: 0 0 18px !important; color: var(--red) !important; font-size: 9px !important; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.project-tab-panel .button { margin-top: 22px; }
@keyframes projectPanelIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

button:focus-visible, a:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

@media (max-width: 900px) {
  .hero-watermark { right: -8vw; font-size: 38vw; }
  .footprint-heading { top: 30px; left: 24px; }
  .map-legend { left: 24px; right: 24px; bottom: 20px; gap: 12px; }
  .footprint-detail { width: 48%; padding: 44px 28px 28px; }
  .footprint-ref.is-detail .footprint-map-window { right: 48%; }
  .project-dialog { height: min(700px, calc(100vh - 24px)); }
  .project-modal-shell { grid-template-columns: 225px 44px 1fr; }
  .project-modal-summary { padding: 24px 20px; }
  .project-tab-panel { padding: 30px 26px; }
}

@media (max-width: 620px) {
  .hero-watermark { right: -17vw; font-size: 56vw; bottom: 2vh; }
  .footprint-ref { min-height: 650px; height: 82vh; }
  .footprint-heading { z-index: 7; }
  .footprint-ref .map-art { width: 138vw; margin-left: 32vw; }
  .map-legend { align-content: flex-end; }
  .map-legend button { font-size: 7px; }
  .footprint-detail { top: 115px; width: 100%; padding: 28px 20px; }
  .footprint-ref.is-detail .footprint-map-window { right: 0; opacity: .14; }
  .footprint-ref.is-detail .map-legend { opacity: 0; pointer-events: none; }
  .footprint-count { margin-top: 34px; }
  .project-dialog { width: calc(100vw - 16px); height: calc(100vh - 16px); }
  .project-ref .container { width: min(100% - 34px, var(--container)); padding-inline: 0; }
  .project-modal-shell { display: flex; flex-direction: column; overflow-y: auto; }
  .project-modal-aside { min-height: 280px; }
  .project-modal-summary { min-height: 280px; }
  .dialog-close { margin-bottom: 25px; }
  .project-modal-description { max-width: 86%; }
  .project-modal-tabs { position: sticky; top: 0; flex-direction: row; gap: 0; overflow-x: auto; padding: 0; }
  .project-modal-tabs button { min-width: max-content; height: auto; padding: 13px 14px; border-radius: 0; writing-mode: horizontal-tb; transform: none; }
  .project-modal-tabs button[aria-selected="true"] { color: var(--red); border-bottom: 2px solid var(--red); background: transparent; }
  .project-modal-main { min-height: 360px; overflow: visible; }
  .project-tab-panel { min-height: 360px; padding: 26px 22px; }
  .project-stats { gap: 30px; }
  .team-heading-actions { align-items: flex-end; flex-direction: column; gap: 14px; }
}

@media (min-width: 768px) {
  .partner-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .partner-tile { height: 160px; }
  .partner-tile.span-2 { grid-column: span 2; }
}

@media (min-width: 1024px) {
  .partner-heading { padding-right: 40px; padding-left: 40px; }
  .partner-heading h2 { font-size: 30px; line-height: 36px; }
  .programmes-ref { padding: 112px 0; }
  .programmes-ref > .container { padding-right: 40px; padding-left: 40px; }
  .programmes-ref .section-heading h2 { font-size: 36px; }
  .team-ref-header { padding-right: 40px; padding-left: 40px; }
  .team-ref-header h2 { font-size: 36px; }
  .team-ref-footer { padding-right: 40px; padding-left: 40px; }
}

@media (min-width: 640px) {
  .team-all-link-desktop { display: inline-flex; }
  .team-all-link-mobile { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (max-width: 620px) {
  .container, .container-narrow { width: min(100% - 34px, var(--container)); }
  .partner-heading { width: 100%; margin-inline: 0; }
  .section { padding: 76px 0; }
  .section-heading { display: block; margin-bottom: 30px; }
  .section-heading .section-link { margin-top: 22px; }
  .hero-content { padding: 150px 0 78px; }
  .hero-content .lede { font-size: 15px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat, .stat:first-child { padding: 22px 14px; }
  .stat:nth-child(2) { border-right: 0; }
  .stat:nth-child(3) { border-right: 1px solid rgba(255,255,255,.22); }
  .sector-grid, .programme-grid, .project-grid, .pillar-grid { grid-template-columns: 1fr; }
  .sector-card { min-height: 255px; }
  .pillar { min-height: 220px; padding: 34px 28px; }
  .split-media, .split-media > img { min-height: 330px; height: 330px; }
  .split-media-card { right: -8px; bottom: -16px; width: 140px; }
  .values-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .job-card-header { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; margin-top: 45px; }
}

@media (max-width: 900px) {
  .ref-stats .stats-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .sector-layout { grid-template-columns: 1fr; gap: 42px; }
  .sector-intro { max-width: 620px; }
  .sector-list { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0 18px; }
  .thematic-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .map-art { width: 90vw; margin-left: 18%; }
  .project-mosaic { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .team-ref-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .programme-ref-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .quote-grid { gap: 40px; }
}
@media (max-width: 620px) {
  .ref-hero .hero-content { padding-top: 130px; padding-bottom: 100px; }
  .ref-hero h1 { font-size: clamp(47px, 14vw, 74px); }
  .ref-hero .hero-copy { font-size: 14px; }
  .ref-stats .stats-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ref-stats .stat { border-right: 1px solid rgba(255,255,255,.22); }
  .ref-stats .stat:nth-child(2n) { border-right: 0; }
  .sector-showcase { padding: 76px 0 86px; }
  .sector-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .sector-visual { height: 270px; }
  .sector-number { font-size: 80px; }
  .sector-caption h3 { font-size: 30px; }
  .thematic-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .theme-chip { min-height: 112px; padding: 17px; }
  .theme-chip:last-child { grid-column: span 2; }
  .footprint-ref { min-height: 500px; padding-top: 70px; }
  .footprint-heading { top: 27px; left: 17px; }
  .map-art { width: 140vw; height: 410px; margin: 55px 0 0 15%; }
  .map-legend { right: 17px; bottom: 17px; left: 17px; gap: 8px; font-size: 7px; }
  .project-ref { padding-top: 76px; }
  .project-tile { min-height: 190px; }
  .project-tile.span-2 { grid-column: span 2; }
  .programme-ref-grid { grid-template-columns: 1fr; }
  .quote-grid { grid-template-columns: 1fr; gap: 42px; }
  .quote-aside { text-align: left; }
  .quote-aside p { margin-left: 0; }
  .newsletter-grid { align-items: stretch; flex-direction: column; }
  .newsletter-form { width: 100%; }
}

/* Reference chrome and hero calibration */
.site-header .header-inner {
  position: relative;
  width: min(1280px, calc(100% - 48px));
  min-height: 80px;
  padding: 0 40px 0 38px;
}
.site-header .brand { font-size: 12px; letter-spacing: .08em; }
.site-header .brand-copy { font-size: 11px; letter-spacing: .08em; }
.site-header .brand-copy small { font-size: 7px; letter-spacing: .14em; }
.site-header .primary-nav {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  pointer-events: none;
}
.site-header .primary-nav > li { display: block; list-style: none; pointer-events: auto; }
.site-header .primary-nav > li > a { display: block; line-height: 15px; }
.site-header .primary-nav > li:not(.header-cta) { transform: translateX(5px); }
.site-header .primary-nav a::after { display: none; }
.site-header .primary-nav .current-menu-item > a { color: var(--red); }
.site-header .primary-nav > .header-cta {
  position: absolute;
  top: 23px;
  right: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 35px;
  padding: 0 20px;
  pointer-events: auto;
}
.ref-hero { align-items: flex-start; }
.ref-hero::before {
  background: linear-gradient(90deg, var(--charcoal) 0%, rgba(28,28,28,.7) 50%, rgba(0,0,0,0) 100%);
}
.ref-hero::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(193,39,45,.15);
  content: '';
  mix-blend-mode: multiply;
  pointer-events: none;
}
.ref-hero .hero-media { opacity: .7; filter: grayscale(1); }
.ref-hero .hero-content {
  width: min(1204px, calc(100% - 80px));
  max-width: none;
  padding: 146px 0 0;
}
.ref-hero .hero-meta {
  margin: 0 0 24px;
  line-height: 15px;
}
.ref-hero h1 {
  max-width: 672px;
  margin: 0 0 32px;
  font-size: clamp(58px, 6vw, 96px);
  line-height: .93;
}
.ref-hero h1 .hero-title-line { display: block; }
.ref-hero h1 .hero-accent-line { color: var(--orange); font-style: italic; }
.ref-hero .hero-copy {
  max-width: 512px;
  margin: 0 0 40px;
  font-size: 18px;
  line-height: 1.625;
}
.ref-hero .hero-actions { gap: 20px; }
.ref-hero .button { min-height: 47px; padding-inline: 28px; }
.ref-hero .watch-story .watch-icon { width: 48px; height: 48px; }

@media (max-width: 900px) {
  .site-header .header-inner { width: 100%; padding: 0 24px; }
  .site-header .primary-nav {
    inset: auto 24px auto 24px;
    top: 76px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 16px;
    background: var(--charcoal);
    pointer-events: auto;
  }
  .site-header .primary-nav.is-open { display: flex; }
  .site-header .primary-nav > li { width: 100%; }
  .site-header .primary-nav > li:not(.header-cta) { transform: none; }
  .site-header .primary-nav > li > a { padding: 13px 0; }
  .site-header .primary-nav > .header-cta {
    position: static;
    min-height: 44px;
    margin-top: 8px;
  }
  .ref-hero .hero-content { width: min(100% - 48px, 620px); padding-top: 130px; }
  .ref-hero h1 { max-width: 100%; font-size: clamp(47px, 14vw, 74px); }
  .ref-hero .hero-copy { font-size: 14px; }
}

/* Keep interaction layouts authoritative after the legacy responsive rules above. */
@media (max-width: 900px) {
  .footprint-ref .map-art { width: min(820px, 86%); height: 100%; margin: 0; }
}
@media (max-width: 620px) {
  .footprint-ref { height: 82vh; min-height: 650px; padding: 0; }
  .footprint-heading { top: 27px; left: 17px; }
  .footprint-ref .map-art { width: 138vw; height: 100%; margin: 0 0 0 32vw; }
  .map-legend { right: 17px; bottom: 17px; left: 17px; gap: 8px; }
}

/* Mobile navigation: a real off-canvas surface, with the page kept in place behind it. */
.nav-scrim { display: none; }
.mobile-nav-head { display: none; }
.header-cta-copy { display: contents; }
.header-cta-copy small { display: none; }
.header-cta-copy strong { font: inherit; }
.header-cta > i { display: none; font-style: normal; }
body.nav-locked { overflow: hidden; overscroll-behavior: none; }

@media (max-width: 900px) {
  .site-header { z-index: 40; }
  .site-header .header-inner { z-index: 45; }
  .site-header .nav-toggle { position: relative; z-index: 46; display: block; }
  .site-header .primary-nav {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    z-index: 47;
    display: flex;
    width: min(92vw, 390px);
    height: 100vh;
    height: 100dvh;
    max-height: none;
    align-items: stretch;
    gap: 0;
    padding: 0 max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) 24px;
    overflow-y: auto;
    background: var(--charcoal);
    color: #fff;
    box-shadow: -30px 0 80px rgba(0,0,0,.32);
    opacity: 0;
    pointer-events: none;
    transform: translateX(105%);
    visibility: hidden;
    transition: transform .38s cubic-bezier(.2,.8,.2,1), opacity .2s ease, visibility 0s linear .38s;
  }
  .site-header.nav-open .primary-nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    visibility: visible;
    transition-delay: 0s;
  }
  .site-header .mobile-nav-head {
    display: flex;
    min-height: 80px;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.48);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
  }
  .site-header .mobile-nav-close {
    position: relative;
    display: grid;
    width: 44px;
    height: 44px;
    margin-right: -11px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    background: transparent;
    color: #fff;
  }
  .site-header .mobile-nav-close i,
  .site-header .mobile-nav-close i::after {
    position: absolute;
    width: 16px;
    height: 1px;
    background: currentColor;
    content: '';
    transform: rotate(45deg);
  }
  .site-header .mobile-nav-close i::after { transform: rotate(90deg); }
  .site-header .primary-nav > li { width: 100%; }
  .site-header.nav-open .primary-nav > li,
  .site-header.nav-open .primary-nav > a { display: block !important; visibility: visible; opacity: 1; }
  .site-header .primary-nav > li:not(.header-cta) { transform: none; }
  .site-header .primary-nav > li > a {
    min-height: 52px;
    padding: 18px 0 17px;
    border-bottom: 1px solid rgba(255,255,255,.12);
    color: rgba(255,255,255,.86) !important;
    white-space: nowrap;
  }
  .site-header .primary-nav > li > a:hover,
  .site-header .primary-nav > li.current-menu-item > a { color: var(--orange-light) !important; }
  .site-header .primary-nav > .header-cta {
    position: static;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 16px;
    width: 100%;
    min-height: 74px;
    margin-top: auto;
    padding: 14px 14px 14px 18px;
    border: 1px solid rgba(255,255,255,.16);
    background: var(--color-accent);
    color: var(--color-accent-ink) !important;
    text-align: left;
    box-shadow: 0 16px 36px rgba(0,0,0,.22);
  }
  .site-header.nav-open .primary-nav > .header-cta { display: grid !important; }
  .site-header .header-cta-copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; }
  .site-header .header-cta-copy small { display: block; margin-bottom: 5px; color: #fff; font-size: 7px; font-weight: 800; letter-spacing: .15em; line-height: 1; text-transform: uppercase; }
  .site-header .header-cta-copy strong { color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; }
  .site-header .header-cta > i { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #fff; font-size: 16px; transition: transform .2s ease, background-color .2s ease; }
  .site-header .header-cta::after { display: none; }
  .nav-scrim {
    position: fixed;
    inset: 0;
    z-index: 46;
    display: block;
    width: 100%;
    height: auto;
    padding: 0;
    border: 0;
    background: rgba(20,20,20,.62);
    backdrop-filter: blur(2px);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity .24s ease;
  }
  .site-header.nav-open .nav-scrim { opacity: 1; pointer-events: auto; visibility: visible; }
  .map-art .africa-map-svg path[data-id] { cursor: pointer; }
  .map-dot.is-hovered,
  .map-dot.is-active,
  .map-dot:hover,
  .map-dot:focus-visible { opacity: 1; transform: translate(-50%, -50%) scale(1.3); box-shadow: 0 0 0 8px rgba(193,39,45,.16); }
  .map-dot.is-hovered span,
  .map-dot.is-active span,
  .map-dot:hover span,
  .map-dot:focus-visible span { opacity: 1; transform: scale(1); }
  .map-legend button.is-hovered,
  .map-legend button.is-active,
  .map-legend button:hover,
  .map-legend button:focus-visible { opacity: 1; }
}

@media (hover: hover) and (pointer: fine) {
  .site-header .mobile-nav-close:hover { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.08); }
  .site-header .header-cta:hover > i { background: rgba(255,255,255,.12); transform: translate(2px,-2px); }
}
.site-header .mobile-nav-close:focus-visible,
.site-header .header-cta:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.site-header .mobile-nav-close:active { transform: translateY(1px); }
.site-header .header-cta:active { transform: translateY(1px); }
.v3-home-hero { min-height: 680px; height: 100vh; height: 100svh; align-items: stretch; flex-direction: column; }
.v3-home-hero::before { z-index: 1; background: linear-gradient(90deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.25) 55%,transparent 100%),linear-gradient(0deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.22) 38%,transparent 64%); }
.v3-home-hero::after { display: none; }
.v3-home-hero .v3-hero-poster { z-index: 0; opacity: 1; filter: none; }
.v3-home-hero .v3-hero-video { z-index: 0; opacity: 1; filter: none; }
.v3-home-hero .hero-content { z-index: 3; display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; box-sizing: border-box; width: min(1200px,100%); margin-inline: auto; padding: 136px 40px 0; }
.v3-home-hero .hero-content-inner { width: fit-content; max-width: min(900px,100%); }
.v3-home-hero h1 { max-width: 900px; margin: 0; font-size: clamp(40px,5vw,76px); font-weight: 900; line-height: 1; letter-spacing: normal; }
.v3-home-hero .hero-copy { max-width: 620px; margin: 16px 0; font-size: 17px; line-height: 1.45; }
.v3-home-hero .hero-meta { display: flex; max-width: none; flex-wrap: wrap; gap: 12px; margin: 0 0 16px; color: rgba(255,255,255,.7); font-size: 12px; font-weight: 700; letter-spacing: .16em; line-height: 16px; }
.v3-home-hero .hero-title-line { display: inline; }
.v3-home-hero .hero-title-line:first-child { display: block; }
.v3-home-hero .hero-title-line:not(:first-child) { display: inline; }
.v3-home-hero .hero-actions { gap: 12px; }
.v3-home-hero .hero-actions .button { min-height: 48px; padding-inline: 28px; border-radius: 0; font-size: 14px; font-weight: 700; letter-spacing: normal; text-transform: none; }
.v3-home-hero .watch-story { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 28px; border-radius: 30px; background: rgba(255,255,255,.12); backdrop-filter: blur(8px); font-size: 14px; font-weight: 700; letter-spacing: normal; text-transform: none; }
.v3-home-hero .watch-story .watch-icon { display: inline-grid; width: auto; height: auto; border: 0; font-size: 15px; }
.v3-hero-watermark { position: absolute; z-index: 2; top: 50%; right: -8%; bottom: auto; width: min(54vw,760px); max-width: none; aspect-ratio: 1062 / 1021; filter: drop-shadow(0 6px 24px rgba(0,0,0,.25)); pointer-events: none; transform: translateY(-50%); }
.v3-hero-watermark img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.v3-watermark-mark { opacity: .8; }
.v3-watermark-letters { opacity: .9; }
.v3-hero-enrolments { position: relative; z-index: 4; width: min(1200px,100%); margin: 0 auto; padding: 0 40px 32px; box-sizing: border-box; }
.v3-enrolment-label { margin: 0 0 8px; color: rgba(255,255,255,.74); font-size: 9px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.v3-enrolment-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding-bottom: 4px; }
.v3-enrol-card { display: block; min-width: 0; min-height: 229px; padding: 16px; border: 1px solid rgba(255,255,255,.4); border-radius: 20px; background: rgba(255,255,255,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.4),0 16px 40px rgba(0,0,0,.22); color: #fff; backdrop-filter: blur(16px) saturate(140%); text-align: left; transition: transform .25s ease,background-color .25s ease; }
.v3-enrol-card:hover,.v3-enrol-card:focus-visible { transform: translateY(-4px); border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.2); }
.v3-enrol-card:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.v3-enrol-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.v3-enrol-logo { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; padding: 8px; border-radius: 50%; background: rgba(255,255,255,.15); backdrop-filter: blur(12px); }
.v3-enrol-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.v3-enrol-badge { display: inline-flex; align-items: center; gap: 4px; padding: 4px 12px; border-radius: 30px; background: rgba(16,185,129,.2); color: #d1fae5; font-size: 8px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.v3-enrol-badge i { width: 6px; height: 6px; border-radius: 50%; background: #a4f3c3; }
.v3-enrol-card h2 { min-height: 36px; margin: 0 0 6px; font-family: var(--serif); font-size: 16px; font-weight: 700; line-height: 1.25; }
.v3-enrol-next { min-height: 0; margin: 0 0 8px; color: rgba(255,255,255,.65); font-size: 9px; }
.v3-enrol-next span { display: inline-block; min-width: max-content; animation: tickerMove 12s linear infinite; }
.v3-countdown { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
.v3-countdown span { display: flex; min-height: 40px; flex-direction: column; justify-content: center; padding: 0 4px; border-radius: 8px; background: rgba(255,255,255,.1); box-shadow: inset 0 1px 3px rgba(0,0,0,.08); text-align: center; }
.v3-countdown b { font-size: 14px; line-height: 1; font-variant-numeric: tabular-nums; }
.v3-countdown small { margin-top: 4px; color: rgba(255,255,255,.5); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.v3-enrol-cta { display: block; margin-top: 10px; padding: 8px 10px; border-radius: 12px; background: rgba(255,255,255,.8); color: var(--charcoal); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-align: center; text-transform: uppercase; transition: background .2s ease; }
.v3-enrol-card:hover .v3-enrol-cta { background: #fff; }
.site-header:not(.is-scrolled) .header-inner { width: min(1400px,calc(100% - 48px)); min-height: 74px; margin: 16px auto 0; padding: 0 38px; border: 1px solid rgba(255,255,255,.2); border-radius: 24px; background: rgba(255,255,255,.12); box-shadow: 0 8px 30px rgba(0,0,0,.25); backdrop-filter: blur(18px) saturate(140%); }
.site-header:not(.is-scrolled) .brand { transform: scale(.9); transform-origin: left center; }
@media (max-width: 1050px) {
  .v3-home-hero .hero-content { padding-top: 120px; }
  .site-header:not(.is-scrolled) .header-inner { width: calc(100% - 32px); padding: 0 24px; }
}
@media (min-width: 641px) and (max-width: 1099px) {
  .v3-home-hero .hero-content { padding-right: 32px; padding-left: 32px; }
  .v3-hero-enrolments { width: 100%; max-width: 1200px; padding: 0 32px 32px; }
  .v3-enrolment-grid { display: flex; gap: 16px; overflow-x: auto; padding: 0 40px 4px 0; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .v3-enrolment-grid::-webkit-scrollbar { display: none; }
  .v3-enrol-card { flex: 0 1 auto; width: auto; min-width: 0; height: 229px; min-height: 229px; scroll-snap-align: start; }
}
@media (max-width: 767px) {
  .v3-hero-watermark { right: -42%; width: 115vw; }
  .v3-watermark-mark,.v3-watermark-letters { opacity: .6; }
}
@media (max-width: 640px) {
  .v3-home-hero { height: auto; min-height: 100svh; }
  .v3-home-hero .hero-content { width: 100%; flex: 0 0 auto; padding: 126px 20px 36px; }
  .v3-home-hero h1 { max-width: 100%; font-size: clamp(40px,12vw,54px); }
  .v3-home-hero .hero-meta { max-width: none; line-height: 16px; }
  .v3-home-hero .hero-copy { font-size: 14px; }
  .v3-home-hero .hero-actions .button { min-height: 44px; padding-inline: 18px; font-size: 12px; }
  .v3-home-hero .watch-story { min-height: 44px; padding-inline: 18px; font-size: 12px; }
  .v3-hero-enrolments { width: 100%; padding: 0 20px 32px; }
  .v3-enrolment-grid { display: flex; gap: 16px; overflow-x: auto; padding: 0 20px 4px 0; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .v3-enrolment-grid::-webkit-scrollbar { display: none; }
  .v3-enrol-card { width: 82vw; min-width: 82vw; height: auto; min-height: 229px; flex: 0 0 82vw; padding: 16px; scroll-snap-align: start; }
  .site-header:not(.is-scrolled) .header-inner { width: calc(100% - 28px); min-height: 66px; margin-top: 10px; padding: 0 16px; border-radius: 36px; }
}

.src-team-profile-hero { position: relative; overflow: hidden; padding: 150px 0 88px; color: #fff; background: #292929; }
.src-team-profile-shell { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.src-team-profile-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 46px; color: rgba(255,255,255,.68); font-size: 13px; }
.src-team-profile-breadcrumb a { color: #fff; text-decoration: none; }
.src-team-profile-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr); gap: clamp(40px, 8vw, 120px); align-items: center; }
.src-team-profile-copy .eyebrow, .src-team-profile-bio .eyebrow { color: #f58220; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.src-team-profile-copy h1 { margin: 14px 0 18px; }
.src-team-profile-role { margin: 0; color: #f58220; font-size: clamp(20px, 2vw, 28px); font-weight: 700; }
.src-team-profile-county { margin: 12px 0 0; color: rgba(255,255,255,.74); }
.src-team-profile-summary { max-width: 680px; margin: 28px 0; color: rgba(255,255,255,.84); font-size: 18px; line-height: 1.65; }
.src-team-profile-linkedin { display: inline-flex; gap: 9px; align-items: center; color: #fff; font-weight: 700; text-decoration: none; }
.src-team-profile-portrait { overflow: hidden; aspect-ratio: 4 / 5; margin: 0; border-radius: 180px 180px 12px 12px; background: #454545; }
.src-team-profile-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
.src-team-profile-bio { padding: 84px 24px 100px; background: #f7f4ef; }
.src-team-profile-bio-inner { width: min(760px, 100%); margin: 0 auto; }
.src-team-profile-body { color: #373737; font-size: 18px; line-height: 1.8; }
.src-team-profile-body p { margin: 0 0 1.2em; }
.src-team-profile-bio-inner > a { display: inline-flex; gap: 10px; align-items: center; margin-top: 18px; color: #b3262c; font-weight: 700; text-decoration: none; }
.src-woocommerce-product { min-height: 70vh; padding: 150px 24px 96px; background: #f7f4ef; }
.src-woocommerce-product-shell { width: min(1160px, 100%); margin: 0 auto; }
.src-woocommerce-product-shell .product { padding: clamp(24px, 5vw, 64px); border-radius: 20px; background: #fff; }
@media (max-width: 760px) {
  .src-team-profile-hero { padding: 124px 0 60px; }
  .src-team-profile-shell { width: min(100% - 40px, 620px); }
  .src-team-profile-breadcrumb { margin-bottom: 32px; }
  .src-team-profile-grid { grid-template-columns: 1fr; gap: 34px; }
  .src-team-profile-portrait { width: min(100%, 420px); aspect-ratio: 4 / 4.5; }
  .src-team-profile-bio { padding: 58px 20px 72px; }
  .src-woocommerce-product { padding: 120px 16px 60px; }
  .src-woocommerce-product-shell .product { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) { .v3-hero-video { display: none; } .v3-enrol-card,.v3-enrol-cta { transition: none; } }
.v3-impact-section { position: relative; isolation: isolate; overflow: hidden; padding: 128px 0; background: var(--cream); }
.v3-impact-pattern { position: absolute; inset: 0; z-index: 0; background-image: radial-gradient(circle,rgba(31,31,31,.06) 1.5px,transparent 1.5px); background-size: 22px 22px; mask-image: radial-gradient(circle at center,transparent 18%,rgba(0,0,0,.12) 48%,#000 88%); -webkit-mask-image: radial-gradient(circle at center,transparent 18%,rgba(0,0,0,.12) 48%,#000 88%); pointer-events: none; }
.v3-impact-ring { --impact-ring-parallax: 0px; position: absolute; bottom: -480px; left: -290px; z-index: 0; width: 700px; height: 700px; color: #F58220; opacity: .45; pointer-events: none; transform: translate3d(0,var(--impact-ring-parallax),0); }
.v3-impact-inner { position: relative; z-index: 1; width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 40px; }
.v3-impact-heading { max-width: 672px; margin: 0 0 48px; }
.v3-impact-heading .eyebrow { margin-bottom: 16px; color: var(--red); font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.v3-impact-heading h2 { margin: 0; color: var(--charcoal); font-size: 36px; font-weight: 700; line-height: 1.25; letter-spacing: normal; }
.v3-impact-heading h2 em { color: var(--red); font-style: italic; }
.impact-grid { display: grid; grid-template-areas: 'money money jobs ent' 'money money coop coop' 'ctry ctry assoc assoc'; grid-template-columns: repeat(4,minmax(0,1fr)); grid-template-rows: repeat(3,260px); gap: 24px; }
.impact-tile { position: relative; overflow: hidden; border-radius: 24px; box-shadow: 0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1); transition: transform .35s ease; }
.impact-tile--money { grid-area: money; }
.impact-tile--jobs { grid-area: jobs; }
.impact-tile--ent { grid-area: ent; }
.impact-tile--coop { grid-area: coop; }
.impact-tile--ctry { grid-area: ctry; }
.impact-tile--assoc { grid-area: assoc; }
.impact-tile-trigger { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: var(--charcoal); text-align: left; cursor: pointer; }
.impact-tile-trigger img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.8); transition: filter .35s ease,transform .45s ease; }
.impact-tile-shade { position: absolute; inset: 0; background: linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.2) 50%,transparent); }
.impact-tile:hover { transform: scale(1.03); }
.impact-tile:hover .impact-tile-trigger img,.impact-tile--open .impact-tile-trigger img { filter: brightness(1); transform: scale(1.04); }
.impact-stat { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 24px; color: #fff; pointer-events: none; transition: bottom .45s ease-out; }
.impact-number { font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 40px; white-space: nowrap; }
.impact-label { margin-top: 4px; font-size: 12px; font-weight: 700; line-height: 16px; letter-spacing: .1em; text-transform: uppercase; }
.impact-panel { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; height: 55%; padding: 24px; overflow-y: auto; border-radius: 16px 16px 0 0; background: rgba(110,22,28,.82); color: white; line-height: 1.5; backdrop-filter: blur(10px); transform: translateY(100%); transition: transform .45s ease-out; pointer-events: none; }
.impact-tile--open .impact-stat { bottom: calc(55% + 8px); padding-bottom: 0; }
.impact-tile--open .impact-panel { transform: translateY(0); pointer-events: auto; }
.impact-panel-context { margin: 0; font-size: 11px; font-weight: 600; line-height: 1.35; }
.impact-panel-facts { margin: 6px 0 0; padding-left: 14px; color: rgba(255,255,255,.78); font-size: 9px; line-height: 1.35; list-style: disc; }
.impact-panel-link { display: inline-block; margin-top: 7px; color: white; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-decoration: underline; text-underline-offset: 3px; text-transform: uppercase; }
.impact-panel-link:hover,.impact-panel-link:focus-visible { color: #ffd7d7; }
.impact-tile-trigger:focus-visible { outline: 3px solid var(--orange); outline-offset: -5px; }
@media (min-width: 768px) { .v3-impact-heading h2 { font-size: 60px; } .impact-stat { padding: 32px; } .impact-number { font-size: 48px; line-height: 48px; } }
@media (min-width: 640px) and (max-width: 1023px) { .impact-grid { grid-template-areas: 'money money' 'jobs ent' 'coop coop' 'ctry assoc'; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(4,260px); } }
@media (max-width: 1024px) { .v3-impact-section { padding-block: 96px; } .v3-impact-inner { padding-inline: 32px; } }
@media (max-width: 640px) { .v3-impact-section { padding-block: 72px; } .v3-impact-inner { padding-inline: 20px; } .v3-impact-heading { margin-bottom: 48px; } .v3-impact-heading h2 { font-size: 36px; } .impact-grid { grid-template-areas: 'money' 'jobs' 'ent' 'coop' 'ctry' 'assoc'; grid-template-columns: minmax(0,1fr); grid-template-rows: repeat(6,220px); gap: 24px; } .impact-panel { padding: 24px; } }
@media (prefers-reduced-motion: reduce) { .impact-stat { transition: none; } .impact-panel { opacity: 0; transform: translateY(0); transition: opacity .18s ease-out; } .impact-tile--open .impact-panel { opacity: 1; } }
.site-header .mobile-nav-close:disabled,
.site-header .header-cta[aria-disabled="true"],
.map-dot:disabled,
.map-legend button:disabled,
.footprint-back:disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }

/* Shared map state: path, pin and legend always describe the same country. */
.map-art .africa-map-svg path.is-hovered,
.map-art .africa-map-svg path.is-selected { fill: #431d1e !important; opacity: 1; }
.map-hover-label {
  position: absolute;
  top: 43px;
  right: 48px;
  z-index: 6;
  display: grid;
  gap: 4px;
  min-width: 116px;
  padding-left: 12px;
  border-left: 2px solid var(--red);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: none;
}
.map-hover-label.is-visible { opacity: 1; transform: none; }
.map-hover-label span { color: var(--charcoal); font-family: var(--serif); font-size: 20px; line-height: 1; }
.map-hover-label small { color: rgba(28,28,28,.46); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

@media (max-width: 620px) {
  .site-header .primary-nav { width: min(92vw, 360px); }
  .map-hover-label { top: 76px; right: 17px; }
  .map-hover-label span { font-size: 16px; }
  .footprint-ref .map-art { width: min(430px, 86%); height: 100%; margin: 0; }
}

/* Map controls keep a small visual pin while meeting the 44px touch-target floor. */
.map-dot {
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  transform: translate(-50%, -50%);
}
.map-dot::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border: 2px solid rgba(255,255,255,.82);
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 4px rgba(193,39,45,.16);
  content: '';
  transform: translate(-50%, -50%);
  transition: box-shadow .2s ease, transform .2s ease;
}
.map-dot span { inset: 6px; }
.map-dot:hover,
.map-dot:focus-visible,
.map-dot.is-hovered,
.map-dot.is-active { box-shadow: none; transform: translate(-50%, -50%); }
.map-dot:hover::before,
.map-dot:focus-visible::before,
.map-dot.is-hovered::before,
.map-dot.is-active::before { box-shadow: 0 0 0 10px rgba(193,39,45,.18); transform: translate(-50%, -50%) scale(1.14); }
.map-dot:focus-visible { outline: 3px solid var(--orange); outline-offset: -5px; border-radius: 50%; }
.map-legend button { min-height: 44px; padding: 8px 2px; opacity: .68; }
.map-legend button span::before { display: none; content: none; }
.map-legend button.is-hovered { opacity: 1; }
.map-legend button:focus-visible,
.footprint-back:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
.footprint-detail { visibility: hidden; pointer-events: none; }
.footprint-ref.is-detail .footprint-map-window { pointer-events: none; }
.footprint-ref.is-detail .footprint-detail { visibility: visible; pointer-events: auto; }

@media (max-width: 620px) {
  .map-legend {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 10px;
  }
  .map-legend button { justify-content: flex-start; min-width: 0; font-size: 7px; white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header .primary-nav,
  .site-header .header-cta > i,
  .nav-scrim,
  .footprint-map-window,
  .footprint-detail,
  .map-art,
  .map-dot,
  .map-dot::before,
  .map-dot span,
  .map-hover-label { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* V3 project folders are grouped by the editable programme theme taxonomy. */
.project-theme-grid .project-tile { min-height: 270px; }
.project-theme-grid .project-tile-content strong { display: block; font-family: var(--serif); font-size: clamp(24px, 3vw, 38px); line-height: 1; }
.project-theme-name { display: block; margin-top: 7px; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.project-programme-links { display: grid; gap: 8px; }
.project-programme-links .project-impact-item { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 18px; border: 1px solid rgba(28,28,28,.1); color: inherit; text-decoration: none; transition: background .2s, border-color .2s, color .2s; }
.project-programme-links .project-impact-item strong { font-family: var(--serif); font-size: 17px; }
.project-programme-links .project-impact-item p { margin: 5px 0 0; color: rgba(28,28,28,.56); font-size: 11px; line-height: 1.5; }
.project-programme-arrow { flex: none; color: var(--red); font-size: 20px; }
@media (hover:hover) { .project-programme-links .project-impact-item:hover { border-color: var(--red); background: var(--red-soft); color: var(--red); } }
@media (max-width: 620px) { .project-theme-grid .project-tile { min-height: 210px; } }

/* SRC v3 navigation: floating grouped menu on desktop and dropdown on mobile. */
.site-header {
  position: fixed;
  z-index: 100;
  top: 16px;
  right: 24px;
  left: 24px;
  width: auto;
  color: #fff;
  transition: top .22s ease;
}
body.admin-bar .site-header { top: 48px; }
.site-header .header-inner {
  display: flex;
  width: min(1400px, 100%);
  min-height: 72px;
  align-items: center;
  gap: 22px;
  margin: 0 auto;
  padding: 0 26px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 28px;
  background: rgba(255,255,255,.12);
  box-shadow: 0 8px 30px rgba(0,0,0,.18);
  color: #fff;
  backdrop-filter: blur(18px) saturate(140%);
  transition: background .22s ease, border-color .22s ease, box-shadow .22s ease, color .22s ease;
}
.site-header.is-scrolled .header-inner,
.site-header.nav-open .header-inner {
  border-color: rgba(31,31,31,.08);
  background: rgba(250,248,244,.88);
  box-shadow: 0 8px 24px rgba(74,14,18,.1);
  color: #2b2b2b;
}
.site-header .brand { display: flex; flex: 0 0 198px; align-items: center; gap: 10px; width: 198px; line-height: 1; text-decoration: none; }
.site-header .brand-mark { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 50%; background: #c1272d; color: #fff; font-family: var(--serif); font-size: 9px; font-weight: 800; letter-spacing: -.04em; }
.site-header .brand-copy { display: block; color: #222; font-size: 10px; font-weight: 900; letter-spacing: .085em; line-height: 1.05; text-transform: uppercase; white-space: nowrap; }
.site-header:not(.is-scrolled) .brand-copy { color: #fff; }
.site-header .brand-copy small { display: block; margin-top: 4px; color: #c1272d; font-size: 7px; font-weight: 800; letter-spacing: .15em; line-height: 1; text-transform: uppercase; }
.site-header .primary-nav { position: static; display: flex; flex: 1 1 auto; min-width: 0; align-items: center; justify-content: flex-end; gap: 20px; padding: 0; background: transparent; box-shadow: none; pointer-events: auto; }
.site-header .primary-menu { display: flex; min-width: 0; align-items: center; justify-content: center; gap: clamp(13px,1.5vw,24px); margin: 0; padding: 0; list-style: none; }
.site-header .primary-menu > li { position: relative; display: block; margin: 0; padding: 0; list-style: none; }
.site-header .primary-menu > li > a,
.site-header .nav-parent-button { display: inline-flex; min-height: 42px; align-items: center; gap: 6px; padding: 0; border: 0; background: transparent; color: inherit; font-size: 10px; font-weight: 700; letter-spacing: .11em; line-height: 1.2; text-decoration: none; text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: color .2s ease; }
.site-header .nav-parent-indicator { color: var(--red); font-size: 15px; font-weight: 500; }
.site-header .primary-menu > li > a:hover,
.site-header .nav-parent-button:hover,
.site-header .primary-menu > li.is-submenu-open > .nav-parent-button { color: var(--red); }
.site-header .primary-menu .sub-menu { position: absolute; top: calc(100% + 2px); left: 50%; z-index: 5; display: block; width: max-content; min-width: 245px; max-width: min(340px, 88vw); margin: 0; padding: 9px; border: 1px solid rgba(31,31,31,.08); border-radius: 22px; background: rgba(250,248,244,.97); box-shadow: 0 12px 36px rgba(74,14,18,.12); color: #2b2b2b; opacity: 0; pointer-events: none; transform: translate(-50%,8px); visibility: hidden; transition: opacity .18s ease, transform .18s ease, visibility .18s ease; }
.site-header .primary-menu > li.is-submenu-open > .sub-menu { opacity: 1; pointer-events: auto; transform: translate(-50%,0); visibility: visible; }
.site-header .primary-menu .sub-menu li { display: block; margin: 0; padding: 0; list-style: none; }
.site-header .primary-menu .sub-menu a { display: block; padding: 12px 14px; border-radius: 13px; color: rgba(43,43,43,.76); font-size: 11px; font-weight: 650; letter-spacing: .025em; line-height: 1.3; text-decoration: none; text-transform: none; white-space: normal; transition: background .18s ease, color .18s ease; }
.site-header .primary-menu .sub-menu a:hover,
.site-header .primary-menu .sub-menu a:focus-visible { background: rgba(179,38,44,.08); color: #b3262c; }
.site-header .header-cta { display: inline-flex; min-height: 42px; flex: 0 0 auto; align-items: center; justify-content: center; margin-left: auto; padding: 0 21px; border: 1px solid transparent; border-radius: 999px; background: #b3262c; color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .1em; line-height: 1.2; text-decoration: none; text-transform: uppercase; white-space: nowrap; transition: background .2s ease, color .2s ease, transform .2s ease; }
.site-header .primary-nav > .header-cta { position: static; top: auto; right: auto; }
.site-header .header-cta:hover { background: #f58220; color: #fff; transform: translateY(-1px); }
.site-header .nav-toggle { display: none; }
.site-header :focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

@media (min-width: 1024px) and (max-width: 1160px) {
  .site-header { right: 16px; left: 16px; }
  .site-header .header-inner { gap: 12px; padding-inline: 20px; }
  .site-header .brand { flex-basis: 164px; width: 164px; gap: 8px; }
  .site-header .brand-mark { width: 32px; height: 32px; flex-basis: 32px; font-size: 8px; }
  .site-header .brand-copy { font-size: 8px; }
  .site-header .brand-copy small { font-size: 6px; }
  .site-header .primary-nav { gap: 12px; }
  .site-header .primary-menu { gap: 12px; }
  .site-header .primary-menu > li > a,
  .site-header .nav-parent-button { font-size: 8px; letter-spacing: .08em; }
  .site-header .primary-nav > .header-cta { min-height: 38px; padding-inline: 13px; font-size: 8px; }
}

@media (max-width: 1023px) {
  .site-header { top: 10px; right: 20px; left: 20px; }
  body.admin-bar .site-header { top: 42px; }
  .site-header .header-inner { width: 100%; min-height: 64px; justify-content: space-between; gap: 12px; padding: 0 17px; border-radius: 22px; }
  .site-header .brand { flex-basis: 178px; width: 178px; gap: 9px; }
  .site-header .brand-mark { width: 34px; height: 34px; flex-basis: 34px; }
  .site-header .nav-toggle { position: relative; z-index: 2; display: flex; width: 42px; height: 42px; flex: 0 0 42px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 0; border: 0; background: transparent; color: currentColor; cursor: pointer; }
  .site-header .nav-toggle span { display: block; width: 19px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
  .site-header.nav-open .nav-toggle span:first-child { transform: translateY(7px) rotate(45deg); }
  .site-header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  .site-header.nav-open .nav-toggle span:last-child { transform: translateY(-7px) rotate(-45deg); }
  .site-header .primary-nav {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    display: block;
    width: 100%;
    height: auto;
    max-height: calc(100dvh - 94px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 10px 12px 12px;
    border: 1px solid rgba(31,31,31,.08);
    border-radius: 22px;
    background: rgba(250,248,244,.97);
    box-shadow: 0 12px 36px rgba(74,14,18,.14);
    color: #2b2b2b;
    opacity: 0;
    pointer-events: none;
    transform: none;
    transition: none;
    visibility: hidden;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  }
  .site-header.nav-open .primary-nav { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
  .site-header .primary-menu { display: block; width: 100%; }
  .site-header .primary-menu > li { border-bottom: 1px solid rgba(31,31,31,.09); }
  .site-header .primary-menu > li > a,
  .site-header .nav-parent-button { display: flex; width: 100%; min-height: 43px; justify-content: space-between; padding: 0 5px; color: #272321; font-size: 10px; letter-spacing: .14em; }
  .site-header .nav-parent-button > span:first-child { color: #b3262c; }
  .site-header .primary-menu > li > a:hover,
  .site-header .nav-parent-button:hover { color: #b3262c; }
  .site-header .primary-menu .sub-menu { position: static; width: 100%; max-width: none; min-width: 0; margin: 0 0 9px; padding: 5px; border: 0; border-radius: 14px; background: #fff; box-shadow: none; opacity: 0; pointer-events: none; transform: none; visibility: hidden; }
  .site-header .primary-menu > li.is-submenu-open > .sub-menu { opacity: 1; pointer-events: auto; visibility: visible; }
  .site-header .primary-menu .sub-menu a { padding: 10px 11px; border-radius: 9px; font-size: 11px; line-height: 1.25; }
  .site-header .header-cta { display: flex; width: 100%; min-height: 48px; margin: 12px 0 0; border-radius: 12px; background: #c1272d; color: #fff; font-size: 9px; letter-spacing: .12em; }
}

@media (max-width: 620px) {
  .site-header { right: 20px; left: 20px; }
  .site-header .header-inner { min-height: 64px; padding-inline: 15px; }
  .site-header .brand { flex-basis: 170px; width: 170px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header, .site-header *, .site-header *::before, .site-header *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* v3 mobile navigation: compact light accordion panel below the floating brand bar. */
.site-header .brand { flex: 0 0 auto; width: auto; transform: none; }
.site-header .brand-logo { display: block; width: auto; height: 52px; object-fit: contain; }
.site-header .primary-menu .menu-group-label {
  display: block;
  padding: 12px 14px 8px;
  color: var(--orange);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}

@media (max-width: 1023px) {
  .site-header { top: 6px; right: 24px; left: 24px; }
  .site-header.nav-open { z-index: 1000; }
  .site-header:not(.is-scrolled) .header-inner {
    width: 100%;
    min-height: 72px;
    margin: 10px auto 0;
    padding: 0 20px;
    border-radius: 24px;
  }
  .site-header .brand { flex: 0 0 auto; width: auto; transform: none !important; }
  .site-header .brand-logo { display: block; width: auto; height: 48px; object-fit: contain; }
  .site-header .nav-toggle { width: 40px; height: 40px; flex-basis: 40px; }
  .site-header .nav-toggle span { width: 20px; }
  .site-header.nav-open .header-inner {
    border-color: rgba(31,31,31,.08);
    background: #faf8f4;
    box-shadow: 0 8px 24px rgba(74,14,18,.1);
    color: #2b2b2b;
  }
  .site-header.nav-open .brand-copy { color: #222 !important; }
  .site-header .primary-nav {
    position: absolute !important;
    top: calc(100% + 2px) !important;
    right: 8px !important;
    bottom: auto !important;
    left: 8px !important;
    width: auto;
    height: auto;
    max-height: calc(100dvh - 120px);
    padding: 16px 20px;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid rgba(31,31,31,.08);
    border-radius: 24px;
    background: #faf8f4;
    box-shadow: 0 12px 36px rgba(74,14,18,.14);
    color: #2b2b2b;
    z-index: 1001;
    transform: translateY(-7px);
  }
  .site-header.nav-open .primary-nav {
    display: block;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    visibility: visible;
  }
  .site-header .primary-menu { display: block; width: 100%; margin: 0; padding: 0; }
  .site-header .primary-menu > li { border-bottom: 1px solid rgba(31,31,31,.09); }
  .site-header .primary-menu > li > a,
  .site-header .nav-parent-button {
    display: flex;
    width: 100%;
    min-height: 0;
    justify-content: space-between;
    padding: 0;
    color: #272321;
    font-size: 11px;
    letter-spacing: .14em;
    line-height: 1.5;
    padding-block: 12px;
  }
  .site-header .nav-parent-button > span:first-child { color: #272321; }
  .site-header .nav-parent-indicator { color: #272321; font-size: 11px; font-weight: 700; line-height: 1.5; }
  .site-header .primary-menu > li > a:hover,
  .site-header .nav-parent-button:hover,
  .site-header .primary-menu > li.is-submenu-open > .nav-parent-button { color: #b3262c; }
  .site-header .primary-menu .sub-menu {
    position: static;
    width: 100%;
    max-width: none;
    min-width: 0;
    max-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    pointer-events: none;
    transform: none;
    visibility: hidden;
    transition: max-height .24s ease, margin .24s ease, padding .24s ease, opacity .18s ease, visibility .18s ease;
  }
  .site-header .primary-menu > li.is-submenu-open > .sub-menu {
    max-height: 520px;
    margin: 0;
    padding: 0 0 12px 16px;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    visibility: visible;
  }
  .site-header .primary-menu .sub-menu a { padding: 8px 0; border-radius: 0; color: #2b2b2b; font-size: 12px; font-weight: 400; line-height: 16px; }
  .site-header .primary-menu .menu-group-label { padding: 12px 0 8px; font-size: 9px; }
  .site-header .primary-menu .sub-menu a:hover,
  .site-header .primary-menu .sub-menu a:focus-visible { background: transparent; color: #2b2b2b; }
  .site-header .primary-nav > .header-cta,
  .site-header.nav-open .primary-nav > .header-cta {
    display: flex !important;
    grid-template-columns: none;
    gap: 0;
    width: 100%;
    min-height: 0;
    justify-content: center;
    align-items: center;
    margin: 16px 0 0 !important;
    padding: 12px 0;
    border: 0;
    border-radius: 16px;
    background: #c1272d;
    color: #fff !important;
    font-size: 10px;
    letter-spacing: .12em;
    line-height: 1.5;
    text-align: center;
    box-shadow: none;
  }
  .site-header .primary-nav > .header-cta:hover { background: #f58220; }
}

/* Desktop header geometry follows the v3 floating navigation component. */
@media (min-width: 1024px) {
  .site-header { top: 16px; right: 24px; left: 24px; }
  .site-header.is-scrolled { background: transparent; box-shadow: none; backdrop-filter: none; }
  body.admin-bar .site-header { top: 48px; }
  .site-header .header-inner { height: 74px; min-height: 74px; border-radius: 24px; }
  .site-header:not(.is-scrolled) .header-inner {
    width: min(1400px, 100%);
    height: 74px;
    min-height: 74px;
    margin: 0 auto;
    padding: 0 28px;
    border-radius: 24px;
  }
  .site-header:not(.is-scrolled) .brand { transform: none; }
  .site-header .brand { flex: 0 0 auto; width: auto; transform: none; }
  .site-header .brand-logo { height: 52px; }
  .site-header .primary-nav { gap: 28px; }
  .site-header .primary-menu { flex: 0 0 auto; gap: 28px; margin: 0 0 0 auto; }
  .site-header .primary-menu > li { display: flex; align-items: center; padding-block: 28px; }
  .site-header .primary-menu > li > a,
  .site-header .nav-parent-button {
    min-height: 20px;
    border-bottom: 2px solid transparent;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .09em;
    line-height: 1.5;
  }
  .site-header .nav-parent-button { gap: 8px; }
  .site-header .nav-parent-indicator { color: inherit; font-size: 14px; font-weight: 300; line-height: 1; }
  .site-header .primary-menu > li.current-menu-item > .nav-parent-button,
  .site-header .primary-menu > li.current-menu-ancestor > .nav-parent-button,
  .site-header .primary-menu > li > a[aria-current="page"] { border-bottom-color: #b3262c; color: #b3262c; }
  .site-header .primary-menu .sub-menu { top: calc(100% - 2px); width: 288px; min-width: 288px; padding: 12px; border-radius: 24px; }
  .site-header .primary-menu .sub-menu a { padding: 10px 12px; border-radius: 12px; font-size: 12px; font-weight: 600; letter-spacing: 0; line-height: 16px; }
  .site-header .primary-menu .menu-group-label { padding: 12px 12px 8px; }
  .site-header .header-cta,
  .site-header .primary-nav > .header-cta {
    min-height: 0;
    margin-left: 0;
    padding: 12px 20px;
    border: 0;
    border-radius: 16px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.5;
  }
  .site-header:not(.is-scrolled) .primary-menu .sub-menu {
    border-color: rgba(255,255,255,.2);
    background: rgba(74,14,18,.92);
    box-shadow: 0 12px 36px rgba(0,0,0,.28);
    backdrop-filter: blur(18px) saturate(140%);
    color: #fff;
  }
  .site-header:not(.is-scrolled) .primary-menu .sub-menu a { color: rgba(255,255,255,.75); }
  .site-header:not(.is-scrolled) .primary-menu .menu-group-label { color: #f58220; }
  .site-header:not(.is-scrolled) .primary-menu .sub-menu a:hover,
  .site-header:not(.is-scrolled) .primary-menu .sub-menu a:focus-visible { background: rgba(255,255,255,.1); color: #fff; }
}

/* SRC v3 homepage sequence */
.footprint-intro { max-width: 330px; margin: 14px 0 0; color: rgba(28,28,28,.56); font-size: 13px; line-height: 1.65; }
.home-partners-ref { position: relative; overflow: hidden; padding: 82px 0 88px; background: var(--warm); }
.home-partners-heading { width: min(1124px, calc(100% - 48px)); margin: 0 auto 36px; }
.home-partners-heading .eyebrow, .home-programmes-heading .eyebrow, .home-news-ref .eyebrow, .home-report-copy .eyebrow { margin: 0 0 10px; color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .16em; line-height: 1.3; text-transform: uppercase; }
.home-partners-heading h2, .home-programmes-heading h2, .home-news-ref h2, .home-report-copy h2 { margin: 0; color: var(--charcoal); font-size: clamp(34px, 4vw, 52px); line-height: 1.06; }
.home-partner-marquee { overflow: hidden; }
.home-partner-track { display: flex; width: max-content; align-items: center; gap: 64px; animation: logoMarquee 34s linear infinite; }
.home-partner-marquee:hover .home-partner-track, .home-partner-marquee:focus-within .home-partner-track { animation-play-state: paused; }
.home-partner-logo { display: grid; width: 176px; height: 80px; flex: none; place-items: center; padding: 18px 24px; border-radius: 16px; background: #fff; box-shadow: 0 2px 12px rgba(28,28,28,.04); color: var(--charcoal); text-align: center; }
.home-partner-logo img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.home-partner-logo span { font-size: 10px; font-weight: 800; letter-spacing: .09em; line-height: 1.3; text-transform: uppercase; }
.home-programmes-ref { position: relative; overflow: hidden; padding: 88px 0 92px; background: #fff; }
.home-programmes-inner, .home-news-inner { width: min(1124px, calc(100% - 48px)); margin-inline: auto; }
.home-programmes-heading, .home-news-ref header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.home-programmes-heading > a, .home-news-ref header > a { flex: none; padding-bottom: 5px; border-bottom: 1px solid currentColor; color: var(--charcoal); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.home-programmes-heading > a span, .home-news-ref header > a span { padding-left: 5px; }
.home-programme-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; align-items: stretch; }
.home-programme-card { min-width: 0; overflow: hidden; border-radius: 24px; background: #fff; box-shadow: 0 12px 45px rgba(28,28,28,.1); }
.home-programme-photo { display: block; height: 208px; overflow: hidden; background: #e5e1dd; }
.home-programme-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home-programme-photo:hover img, .home-programme-photo:focus-visible img { transform: scale(1.05); }
.home-programme-card-body { display: flex; min-height: 330px; flex-direction: column; padding: 24px; }
.home-programme-brand { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.home-programme-brand img { width: 32px; height: 32px; object-fit: contain; }
.home-programme-brand span { border-radius: 999px; background: #d9f2e2; padding: 7px 11px; color: #176b3a; font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.home-programme-card h3 { margin: 18px 0 8px; font-family: var(--serif); font-size: 24px; font-weight: 700; line-height: 1.16; }
.home-programme-card h3 a { color: inherit; text-decoration: none; }
.home-programme-card-body > p { margin: 0; color: rgba(28,28,28,.57); font-size: 12px; line-height: 1.6; }
.home-programme-meta { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 18px; color: rgba(28,28,28,.5); font-size: 9px; line-height: 1.4; }
.home-programme-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding: 14px 18px; border-radius: 14px; background: var(--red); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.home-programme-cta:hover, .home-programme-cta:focus-visible { background: var(--orange); color: var(--charcoal); transform: translateY(-1px); }
.home-coming-soon { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(28,28,28,.1); }
.home-coming-soon > span { margin-right: 8px; color: rgba(28,28,28,.45); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.home-coming-soon a { display: inline-flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 999px; background: rgba(245,130,32,.14); color: var(--charcoal); font-size: 10px; font-weight: 800; text-decoration: none; }
.home-coming-soon a:hover, .home-coming-soon a:focus-visible { background: rgba(245,130,32,.3); }
.home-testimonials-ref { position: relative; isolation: isolate; overflow: hidden; background: #b3262c; color: #fff; }
.home-testimonial-ring { --ring-parallax: 0px; position: absolute; top: -170px; right: -390px; z-index: 0; width: 780px; height: 780px; color: #f58220; opacity: .35; pointer-events: none; transform: translate3d(0,var(--ring-parallax),0) rotate(42deg); transform-origin: center; }
.home-testimonial-slide { position: relative; z-index: 1; animation: testimonialIn 420ms ease both; }
.home-testimonial-slide[hidden] { display: none; }
.home-testimonial-layout { display: grid; width: min(1200px,100%); grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; gap: 64px; margin-inline: auto; padding: 96px 40px; }
.home-testimonial-player { min-width: 0; min-height: 420px; overflow: hidden; border-radius: 24px; background: #4a0e12; box-shadow: 0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1); }
.home-testimonial-video { position: relative; display: flex; width: 100%; height: 100%; min-height: inherit; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 0; border: 0; background: transparent; color: #fff; font: inherit; text-align: left; text-decoration: none; cursor: default; }
.home-testimonial-video[data-testimonial-video] { cursor: pointer; }
.home-testimonial-video > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-testimonial-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,.04) 72%); }
.home-testimonial-play { position: absolute; z-index: 1; top: 50%; left: 50%; display: grid; width: 76px; height: 76px; place-items: center; padding-left: 5px; border-radius: 50%; background: #fff; color: #b3262c; font-size: 24px; transform: translate(-50%,-50%); }
.home-testimonial-caption { position: absolute; z-index: 1; bottom: 24px; left: 24px; display: flex; flex-direction: column; gap: 4px; }
.home-testimonial-caption strong { font-size: 14px; }
.home-testimonial-caption small { color: rgba(255,255,255,.6); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.home-testimonial-iframe { display: block; width: 100%; height: 100%; min-height: inherit; border: 0; }
.home-testimonial-copy { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; gap: 20px; }
.home-testimonial-copy-main { display: flex; flex-direction: column; gap: 18px; }
.home-testimonial-eyebrow { margin: 0; color: rgba(255,255,255,.65); font-size: 10px; font-weight: 700; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; }
.home-testimonial-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(32px, 3.4vw, 52px); line-height: 1.1; }
.home-testimonial-body { display: flex; flex-direction: column; gap: 16px; color: rgba(255,255,255,.75); font-size: 17px; line-height: 1.6; }
.home-testimonial-body p { margin: 0; }
.home-testimonial-person { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.home-testimonial-person strong { font-size: 16px; line-height: 24px; }
.home-testimonial-person span { color: rgba(255,255,255,.62); font-size: 12px; line-height: 16px; }
.home-story-action { align-self: flex-start; padding: 12px 24px; border: 0; border-radius: 999px; background: #fff; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.home-testimonial-controls { position: relative; z-index: 1; display: flex; height: 56px; align-items: center; justify-content: space-between; padding: 0 max(20px, calc((100% - 1200px)/2 + 40px)); border-top: 1px solid rgba(255,255,255,.2); }
.home-testimonial-controls > button { border: 0; background: transparent; color: rgba(255,255,255,.7); font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.home-testimonial-controls > div { display: flex; gap: 8px; }
.home-testimonial-controls > div button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 20px; background: rgba(255,255,255,.4); transition: width .2s, background .2s; }
.home-testimonial-controls > div button[aria-current="true"] { width: 28px; background: #fff; }
.home-news-ref { position: relative; overflow: hidden; padding: 92px 0 100px; background: var(--cream); }
.home-news-ref header h2 { max-width: 640px; }
.home-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.home-news-card { min-width: 0; overflow: hidden; border-radius: 22px; background: #fff; box-shadow: 0 10px 35px rgba(28,28,28,.08); }
.home-news-image { display: block; height: 208px; overflow: hidden; background: #e4dfd8; }
.home-news-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home-news-image:hover img, .home-news-image:focus-visible img { transform: scale(1.05); }
.home-news-card > div { padding: 24px; }
.home-news-meta { margin: 0; color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.home-news-card h3 { margin: 14px 0 10px; font-family: var(--serif); font-size: 23px; line-height: 1.16; }
.home-news-card h3 a { color: inherit; text-decoration: none; }
.home-news-excerpt { min-height: 58px; margin: 0; color: rgba(28,28,28,.57); font-size: 12px; line-height: 1.6; }
.home-news-link { display: inline-flex; gap: 10px; margin-top: 22px; color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.home-report-ref { position: relative; overflow: hidden; padding: 92px 0; background: #fff; }
.home-report-inner { display: grid; width: min(1124px, calc(100% - 48px)); grid-template-columns: .65fr 1.35fr; align-items: center; gap: 64px; margin-inline: auto; }
.home-report-copy h2 { font-size: clamp(38px,4vw,56px); }
.home-report-copy > p:not(.eyebrow) { margin: 20px 0 0; color: rgba(28,28,28,.58); font-size: 14px; line-height: 1.7; }
.home-report-download { display: inline-flex; gap: 16px; align-items: center; margin-top: 26px; padding: 14px 20px; border-radius: 999px; background: var(--red); color: white; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.home-report-download[aria-disabled="true"] { opacity: .55; }
.home-report-viewer { aspect-ratio: 16/10; overflow: hidden; border-radius: 24px; background: var(--maroon); box-shadow: 0 18px 45px rgba(28,28,28,.16); }
.home-report-viewer iframe { width: 100%; height: 100%; border: 0; }
.home-report-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: #fff; }
.home-report-placeholder span { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 1023px) {
  .home-programme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-testimonial-layout { grid-template-columns: minmax(0,1fr); gap: 36px; padding-block: 64px; }
  .home-testimonial-player { min-height: 0; aspect-ratio: 16/9; }
  .home-testimonial-video { min-height: 0; }
  .home-testimonial-copy { gap: 28px; }
  .home-news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-report-inner { gap: 36px; }
}
@media (max-width: 639px) {
  .home-partners-ref { padding: 62px 0 68px; }
  .home-partners-heading, .home-programmes-inner, .home-news-inner, .home-report-inner { width: calc(100% - 40px); }
  .home-partners-heading { margin-bottom: 28px; }
  .home-partner-track { gap: 24px; }
  .home-partner-logo { width: 142px; height: 66px; padding: 14px 18px; }
  .home-programmes-ref, .home-news-ref, .home-report-ref { padding-block: 72px; }
  .home-programmes-heading, .home-news-ref header { align-items: flex-start; margin-bottom: 28px; }
  .home-programmes-heading > a, .home-news-ref header > a { font-size: 8px; }
  .home-programme-grid, .home-news-grid { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .home-programme-photo, .home-news-image { height: 196px; }
  .home-programme-card-body { min-height: 0; padding: 20px; }
  .home-programme-cta { margin-top: 24px; }
  .home-coming-soon { align-items: flex-start; flex-direction: column; }
  .home-testimonial-copy h2 { font-size: clamp(32px, 3.4vw, 52px); }
  .home-report-inner { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .home-report-viewer { border-radius: 18px; }
}
@media (max-width: 1024px) {
  .home-testimonial-layout { padding-right: 32px; padding-left: 32px; }
  .home-testimonial-controls { padding-right: 32px; padding-left: 32px; }
}
@media (max-width: 640px) {
  .home-testimonial-layout { padding-right: 20px; padding-left: 20px; }
  .home-testimonial-controls { padding-right: 20px; padding-left: 20px; }
}
@media (max-width: 767px) {
  .home-testimonial-ring { width: 429px; height: 429px; }
}

.portfolio-hero { display: flex; height: min(100vh,920px); min-height: min(100vh,920px); max-height: 920px; align-items: stretch; padding: 0; background: #4a0e12; }
.portfolio-hero::after { display: none; }
.portfolio-hero-backdrop { position: absolute; inset: 0; overflow: hidden; }
.portfolio-hero-image { width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; animation: srcProgrammeHeroZoom 1.6s ease-out both; }
.portfolio-hero-gradient { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(74,14,18,.88) 0%,rgba(110,22,28,.7) 30%,rgba(150,35,40,.3) 55%,rgba(150,35,40,0) 75%),linear-gradient(0deg,rgba(74,14,18,.45),transparent 35%); }
.portfolio-hero-ring-layer { position: absolute; z-index: 1; inset: 0; overflow: hidden; pointer-events: none; }
.portfolio-brand-ring { position: absolute; top: -90px; right: -600px; width: 900px; height: 900px; color: #c1272d; opacity: .35; transform: rotate(150deg); transform-origin: center; }
.portfolio-hero-content { position: relative; z-index: 2; display: flex; width: min(var(--container),calc(100% - 48px)); min-height: inherit; align-items: center; justify-content: center; margin-inline: auto; padding: 150px 0 48px; }
.portfolio-hero-copy { width: 100%; max-width: 760px; margin-inline: auto; color: #fff; text-align: center; }
.portfolio-breadcrumb { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0 0 20px; color: rgba(255,255,255,.92); font-size: 12px; font-weight: 500; }
.portfolio-breadcrumb a { color: inherit; text-decoration: none; }
.portfolio-breadcrumb a:hover { text-decoration: underline; }
.portfolio-hero-eyebrow { margin: 0 0 20px; color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.portfolio-hero-headline { display: -webkit-box; max-width: 14ch; margin: 0 auto; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-shadow: 0 2px 12px rgba(40,8,10,.35); text-wrap: balance; }
.portfolio-hero-intro { display: -webkit-box; max-width: 60ch; margin: 24px auto 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.portfolio-companies { padding: 128px 0; background: var(--cream); }
.portfolio-companies-grid { display: grid; width: min(1200px,100%); grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; margin-inline: auto; padding-inline: 40px; }
.portfolio-company-card { display: flex; flex-direction: column; align-items: center; padding: 28px; border: 1px solid #e6e2de; border-radius: 12px; background: #fff; text-align: center; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.portfolio-company-card:hover, .portfolio-company-card:focus-within { transform: translateY(-4px); border-color: rgba(179,38,46,.25); box-shadow: 0 12px 28px rgba(28,28,28,.08); }
.portfolio-company-mark { display: grid; width: 80px; height: 80px; flex: none; place-items: center; margin-bottom: 24px; border-radius: 12px; background: var(--warm); color: rgba(28,28,28,.55); font-size: 18px; font-weight: 800; letter-spacing: .08em; }
.portfolio-company-card h2 { margin: 0; color: var(--red); font-family: var(--serif); font-size: 20px; line-height: 1.25; }
.portfolio-company-card p { margin: 8px 0 0; color: rgba(28,28,28,.55); font-size: 14px; line-height: 1.625; }
.portfolio-company-card > a { margin-top: 18px; color: var(--red); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.portfolio-companies .home-news-grid { width: min(1124px,100%); margin-inline: auto; }
.news-story { width: min(860px,calc(100% - 48px)); margin: 0 auto; padding: 64px 0 100px; }
.news-story-header { max-width: 760px; margin: 0 auto 40px; }
.news-story-header .portfolio-breadcrumb { color: rgba(28,28,28,.55); }
.news-story-header .page-hero-eyebrow { color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.news-story-header h1 { margin: 16px 0; font-family: var(--serif); font-size: clamp(38px,6vw,64px); line-height: 1.04; }
.news-story-header > p:last-child { color: rgba(28,28,28,.55); font-size: 12px; }
.news-story-image { display: block; width: 100%; max-height: 560px; margin: 0 auto 48px; border-radius: 20px; object-fit: cover; }
.news-story-content { max-width: 720px; margin: auto; color: rgba(28,28,28,.75); font-size: 16px; line-height: 1.8; }
@media (min-width: 768px) and (max-width: 1023px) { .portfolio-brand-ring { top: -40px; right: -420px; width: 675px; height: 675px; } }
@media (max-width: 1024px) { .portfolio-companies-grid { padding-inline: 32px; } .portfolio-companies { padding-block: 96px; } }
@media (max-width: 1023px) { .portfolio-companies-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767px) {
  .portfolio-hero { height: auto; min-height: 100svh; max-height: 920px; }
  .portfolio-hero-content { padding-top: 120px; padding-bottom: 36px; }
  .portfolio-brand-ring { top: auto; right: -220px; bottom: -180px; width: 495px; height: 495px; opacity: .25; }
  .portfolio-hero-headline { font-size: clamp(40px,10vw,56px); -webkit-line-clamp: 3; }
  .portfolio-hero-intro { font-size: 16px; }
}
@media (max-width: 640px) { .portfolio-companies { padding-block: 72px; } .portfolio-companies-grid { padding-inline: 20px; } }
@media (max-width: 639px) { .portfolio-companies-grid { grid-template-columns: minmax(0,1fr); gap: 24px; } .portfolio-companies .home-news-grid { grid-template-columns: minmax(0,1fr); } .news-story { width: calc(100% - 40px); padding-block: 44px 72px; } .news-story-image { margin-bottom: 32px; border-radius: 14px; } }

/* News archive and article page corrections */
body.single-src_news_item .site-header { position: fixed; background: rgba(255,255,255,.98); color: var(--charcoal); box-shadow: 0 1px 0 rgba(28,28,28,.1); backdrop-filter: blur(12px); }
body.single-src_news_item .site-header .primary-nav a { color: rgba(28,28,28,.78); }
body.single-src_news_item .site-header .primary-nav a:hover,
body.single-src_news_item .site-header .primary-nav .current-menu-item > a { color: var(--red); }
body.single-src_news_item .site-header .nav-toggle { color: var(--charcoal); }
body.single-src_news_item .news-story { padding-top: 132px; }
.news-story-header .portfolio-breadcrumb { justify-content: flex-start; align-items: center; gap: 9px; margin-bottom: 34px; color: #69645f; line-height: 1.6; }
.news-story-header .portfolio-breadcrumb a { color: var(--red); }
.news-story-header .portfolio-breadcrumb span[aria-current="page"] { color: #69645f; }
.news-story-header .page-hero-eyebrow { margin: 0 0 12px; }
.news-story-header h1 { max-width: 17ch; margin: 0 0 18px; color: var(--charcoal); text-wrap: balance; }
.news-story-date { margin: 0; }
.news-story-content { color: #514e4a; }
.news-story-content > * { margin-top: 0; margin-bottom: 1.35em; }
.news-story-content h2 { margin-top: 2.2em; margin-bottom: .7em; color: var(--charcoal); font-family: var(--serif); font-size: clamp(26px,3vw,36px); line-height: 1.16; }
.news-story-content h3 { margin-top: 1.8em; color: var(--charcoal); font-size: 17px; line-height: 1.4; }
.news-story-content ul, .news-story-content ol { padding-left: 1.3em; }
.news-story-content li { margin: .55em 0; padding-left: .25em; }
.news-story-content a { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.news-story-content blockquote { margin: 2em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--orange); color: var(--charcoal); font-family: var(--serif); font-size: 22px; line-height: 1.45; }
.news-archive-hero { position: relative; display: flex; min-height: 520px; align-items: center; overflow: hidden; padding: 112px max(24px,calc((100vw - 1160px)/2)) 68px; background: #4a0e12 var(--news-archive-image) center 38%/cover no-repeat; color: #fff; }
.news-archive-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(48,10,14,.94) 0%,rgba(67,13,18,.79) 48%,rgba(67,13,18,.22) 100%),linear-gradient(0deg,rgba(38,8,10,.32),transparent 50%); }
.news-archive-inner { position: relative; z-index: 1; width: min(680px,100%); }
.news-archive-hero .portfolio-breadcrumb { justify-content: flex-start; margin: 0 0 25px; color: rgba(255,255,255,.78); }
.news-archive-hero .portfolio-breadcrumb a { color: #fff; }
.news-archive-hero .page-hero-eyebrow { margin: 0 0 15px; color: #f2a15f; }
.news-archive-hero h1 { margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(52px,7vw,88px); line-height: .98; letter-spacing: -.035em; }
.news-archive-hero h1 em { color: #f2a15f; font-weight: 500; }
.news-archive-intro { max-width: 540px; margin: 22px 0 24px; color: rgba(255,255,255,.83); font-size: 16px; line-height: 1.7; }
.news-archive-link { display: inline-flex; align-items: center; gap: 14px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.55); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.news-archive-link span { color: #f2a15f; font-size: 17px; }
.news-archive-index { position: absolute; right: max(24px,calc((100vw - 1160px)/2)); bottom: 30px; margin: 0; color: rgba(255,255,255,.68); font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.news-archive-list { padding-top: 80px; }
.news-archive-list .home-news-grid { align-items: stretch; }
.news-archive-list .home-news-card h2 { margin: 12px 0; color: var(--charcoal); font-family: var(--serif); font-size: clamp(21px,2vw,27px); line-height: 1.2; }
@media (max-width: 900px) {
  body.single-src_news_item .site-header .primary-nav { background: #262626; }
  body.single-src_news_item .site-header .primary-nav a { color: rgba(255,255,255,.88); }
  body.single-src_news_item .site-header .primary-nav a:hover { color: #f2a15f; }
  body.single-src_news_item .site-header .nav-toggle { color: var(--charcoal); }
}
@media (max-width: 639px) {
  body.single-src_news_item .news-story { padding-top: 112px; }
  .news-story-header .portfolio-breadcrumb { margin-bottom: 26px; font-size: 11px; }
  .news-story-header h1 { font-size: clamp(36px,10vw,48px); }
  .news-archive-hero { min-height: 480px; padding: 108px 22px 56px; background-position: 62% center; }
  .news-archive-shade { background: linear-gradient(90deg,rgba(48,10,14,.92),rgba(67,13,18,.68)),linear-gradient(0deg,rgba(38,8,10,.4),transparent); }
  .news-archive-hero .portfolio-breadcrumb { margin-bottom: 24px; }
  .news-archive-hero h1 { font-size: clamp(49px,13vw,66px); }
  .news-archive-intro { max-width: 36ch; font-size: 15px; }
  .news-archive-index { right: 22px; bottom: 18px; }
  .news-archive-list { padding-top: 56px; }
}

#impact, #footprint, #portfolio, #programmes, #partners, #testimonials, #news { scroll-margin-top: 112px; }
.home-partners-ref { padding-top: 73px; padding-bottom: 79px; }
.home-partners-ref::before { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='260' viewBox='0 0 560 260' fill='none'%3E%3Cg stroke='%23C1272D' stroke-width='1' opacity='.07'%3E%3Cpath d='M-35 27C48-8 115 61 194 29s145-9 208 20 126 4 186-22'/%3E%3Cpath d='M-31 62c79-31 145 32 222 2s140-11 207 17 128 10 181-16'/%3E%3Cpath d='M-40 99c92-39 151 21 234-5s134-11 206 16 124 9 185-20'/%3E%3Cpath d='M-34 137c81-34 153 23 229-2s136-12 204 14 132 13 185-13'/%3E%3Cpath d='M-29 175c74-31 146 28 222 1s142-8 208 17 126 5 182-20'/%3E%3Cpath d='M-35 216c84-38 151 21 228-6s141-9 206 19 128 5 183-20'/%3E%3Cpath d='M-31 248c80-33 149 25 226-2s141-8 207 17 125 9 180-16'/%3E%3C/g%3E%3C/svg%3E"); background-position: center; background-repeat: repeat; content: ''; opacity: .72; pointer-events: none; }
.home-partners-heading, .home-partner-marquee { position: relative; z-index: 1; }
@media (max-width: 1023px) {
  .site-header.is-scrolled { top: 16px; }
  .site-header.is-scrolled .header-inner { min-height: 74px; }
}
@media (max-width: 639px) { .home-partners-ref { padding-top: 62px; padding-bottom: 68px; } }

/* Mobile About page and floating header values taken from the v3 reference. */
@media (max-width: 1023px) {
  .site-header:not(.is-scrolled):not(.nav-open) .header-inner {
    height: 74px;
    min-height: 74px;
    border-radius: 24px;
    background: rgba(255,255,255,.12);
    box-shadow: 0 8px 30px rgba(0,0,0,.25);
    backdrop-filter: blur(18px) saturate(1.4);
  }
}
@media (max-width: 767px) {
  .about-v3-story-copy h2 { font-size: 30px; line-height: 1.25; }
  .about-v3-story-body p { font-size: 16px; line-height: 26px; }
  .about-v3-pillar { padding: 56px 32px; }
  .about-v3-centered-heading, .about-v3-section-heading { margin-bottom: 56px; }
  .about-v3-stats-grid { gap: 32px 0; }
  .about-v3-cta { padding: 64px 20px; }
}

/* SRC v3 home section details and country map dossier */
.home-programmes-ref { isolation: isolate; background: #fff; }
.home-programmes-ref::before { position: absolute; inset: 0; z-index: -2; background-image: radial-gradient(circle,rgba(31,31,31,.06) 1.5px,transparent 1.5px); background-size: 22px 22px; content: ''; mask-image: radial-gradient(circle at center,transparent 18%,rgba(0,0,0,.12) 48%,#000 88%); }
.home-programmes-ref::after { display: none; }
.home-programmes-ring { --ring-parallax: 0px; position: absolute; top: -340px; left: -260px; z-index: 0; width: 600px; height: 600px; color: #f58220; opacity: .45; pointer-events: none; transform: translate3d(0,var(--ring-parallax),0) rotate(-30deg); transform-origin: center; will-change: transform; }
.home-programmes-inner { position: relative; z-index: 1; width: 100%; max-width: 1200px; padding-right: 40px; padding-left: 40px; }
.home-programmes-heading { margin-bottom: 48px; }
.home-programmes-heading .eyebrow { margin-bottom: 12px; }
.home-programmes-heading h2 { font-size: 36px; }
@media (min-width: 768px) { .home-programmes-heading h2 { font-size: 48px; } }
.home-programmes-heading .eyebrow { color: #47734a; }
.home-programme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.home-programme-photo { height: 204px; }
.home-programme-card-body { min-height: 320px; }
.home-programme-cta { border-radius: 14px; }
.home-news-ref { isolation: isolate; }
.home-news-ref::before { position:absolute; inset:0; z-index:-2; background-image:radial-gradient(rgba(193,39,45,.08) .7px,transparent .7px); background-size:18px 18px; content:''; }
.home-news-ref::after { position:absolute; right:-330px; bottom:-330px; z-index:-1; width:560px; height:560px; border:68px solid rgba(193,39,45,.12); border-radius:50%; content:''; pointer-events:none; }
.home-report-ref { isolation:isolate; }
.home-report-ref::before { position:absolute; inset:0; z-index:-2; background-image:radial-gradient(rgba(193,39,45,.09) .7px,transparent .7px); background-size:18px 18px; content:''; }
.home-report-ref::after { position:absolute; top:-120px; left:36%; z-index:-1; width:640px; height:640px; border:76px solid rgba(245,130,32,.26); border-radius:50%; content:''; pointer-events:none; }

.footprint-ref { min-height: 980px; height:auto; padding:0; isolation:auto; }

/* Homepage enrolment cards follow the published v3 layout and open the shared registration flow. */
.home-programmes-ref { padding-top: 128px; }
.home-programme-card { display: block; border-radius: 24px; }
.home-programme-photo { height: 208px; }
.home-programme-card-body { display: block; min-height: 0; padding: 24px; }
.home-programme-status { display: inline-flex; align-items: center; gap: 4px; padding: 4px 12px; border-radius: 999px; background: #d1fae5; color: #065f46; font-size: 9px; font-weight: 700; letter-spacing: .05em; line-height: 1.2; text-transform: uppercase; }
.home-programme-card h3 { margin: 20px 0 8px; font-size: 24px; line-height: 1.2; }
.home-programme-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 20px; margin: 20px 0 0; color: var(--charcoal); font-size: 10px; line-height: 1.35; }
.home-programme-facts > div { min-width: 0; }
.home-programme-facts .home-programme-fact-location { grid-column: 1 / -1; }
.home-programme-facts dt { margin-bottom: 5px; color: rgba(28,28,28,.35); font-size: 9px; }
.home-programme-facts dd { margin: 0; font-weight: 700; }
.home-programme-cta { width: 100%; min-height: 44px; justify-content: center; margin-top: 24px; border: 0; border-radius: 999px; background: #b3262c; font-family: inherit; cursor: pointer; }
.home-programme-cta:focus-visible, .v3-enrol-card:focus-visible { outline: 3px solid #f58220; outline-offset: 3px; }
.home-programmes-heading > a { color: var(--red); }

/* Shared, responsive programme-registration dialog. */
.src-register-dialog { width: min(896px,calc(100% - 32px)); max-width: none; max-height: 94vh; padding: 0; overflow: auto; border: 0; background: #fff; color: #1f1f1f; box-shadow: 0 24px 80px rgba(0,0,0,.3); }
.src-register-dialog[open] { animation: srcRegisterOpen 180ms ease-out both; }
.src-register-dialog::backdrop { background: rgba(74,14,18,.72); backdrop-filter: blur(2px); }
.src-register-shell { background: #fff; }
.src-register-hero { position: relative; display: flex; height: 224px; align-items: flex-end; overflow: hidden; padding: 30px 32px; background: #4a0e12; background-image: linear-gradient(90deg,rgba(0,0,0,.74),rgba(0,0,0,.08)),var(--register-image); background-position: center; background-size: cover; color: #fff; }
.src-register-hero-copy { position: relative; z-index: 1; }
.src-register-hero-copy p { margin: 0 0 8px; color: #f58220; font-size: 10px; font-weight: 800; letter-spacing: .2em; line-height: 1.4; text-transform: uppercase; }
.src-register-hero-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(28px,4vw,40px); font-weight: 700; line-height: 1.08; }
.src-register-close { position: absolute; z-index: 2; top: 16px; right: 16px; display: grid; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; backdrop-filter: blur(12px); transition: background .18s,color .18s; }
.src-register-close:hover, .src-register-close:focus-visible { background: #fff; color: var(--charcoal); }
.src-register-close:focus-visible, .src-register-option:focus-visible, .src-register-primary:focus-visible, .src-register-back:focus-visible { outline: 3px solid #f58220; outline-offset: 3px; }
.src-register-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; padding: 0; border-bottom: 1px solid rgba(0,0,0,.05); background: var(--cream); list-style: none; }
.src-register-steps li { display: flex; min-height: 0; align-items: center; justify-content: center; gap: 5px; padding: 16px 8px; color: rgba(31,31,31,.38); font-size: 8px; font-weight: 800; letter-spacing: .05em; line-height: 1.5; text-align: center; text-transform: uppercase; }
.src-register-steps li[aria-current="step"] { background: var(--red); color: #fff; }
.src-register-steps li.is-complete { color: var(--red); }
.src-register-content { padding: 40px; }
.src-register-content [hidden], .src-register-option[hidden], .src-register-dialog [hidden] { display: none !important; }
.src-register-content h3 { margin: 0 0 24px; font-family: var(--serif); font-size: 24px; font-weight: 700; line-height: 1.2; }
.src-register-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.src-register-option { display: flex; min-height: 86px; flex-direction: column; justify-content: center; gap: 6px; padding: 18px 20px; border: 1px solid rgba(31,31,31,.04); border-radius: 18px; background: var(--cream); color: var(--charcoal); text-align: left; box-shadow: 0 2px 5px rgba(0,0,0,.04); cursor: pointer; transition: background .2s,color .2s,box-shadow .2s,transform .2s; }
.src-register-option:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(28,28,28,.1); }
.src-register-option.is-selected { border-color: var(--red); background: var(--red); color: #fff; box-shadow: 0 0 0 2px #fff,0 0 0 4px var(--red); }
.src-register-option > span { font-size: 14px; font-weight: 800; line-height: 1.3; }
.src-register-option small { color: rgba(31,31,31,.48); font-size: 11px; line-height: 1.35; }
.src-register-option.is-selected small { color: rgba(255,255,255,.72); }
.src-register-primary { display: inline-flex; min-height: 43px; align-items: center; justify-content: center; margin-top: 32px; padding: 14px 28px; border: 0; background: var(--red); color: #fff; font-family: inherit; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background .18s,color .18s; }
.src-register-primary:hover { background: var(--orange); color: var(--charcoal); }
.src-register-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.src-register-fields > label { display: block; color: var(--charcoal); font-size: 12px; font-weight: 600; line-height: 16px; }
.src-register-fields input { width: 100%; height: 44px; min-height: 44px; margin-top: 8px; padding: 14px 16px; border: 0; border-radius: 12px; background: var(--cream); color: var(--charcoal); font: inherit; font-size: 12px; font-weight: 400; line-height: 16px; outline: none; box-shadow: 0 0 0 1px rgba(31,31,31,.1); }
.src-register-fields input:focus { box-shadow: 0 0 0 1px var(--red),0 0 0 3px rgba(193,39,45,.12); }
.src-register-fields input[aria-invalid="true"] { box-shadow: 0 0 0 1px var(--red); }
.src-register-phone { display: flex; height: 44px; margin-top: 8px; overflow: hidden; border: 0; border-radius: 12px; background: var(--cream); box-shadow: 0 0 0 1px rgba(31,31,31,.1); }
.src-register-phone > span { display: flex; align-items: center; padding: 14px 16px; background: #4a0e12; color: #fff; font-size: 12px; line-height: 16px; }
.src-register-phone input { height: 44px; min-height: 0; flex: 1; min-width: 0; margin: 0; padding: 0 16px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.src-register-phone input:focus { box-shadow: none; }
.src-register-phone:focus-within { box-shadow: 0 0 0 1px var(--red),0 0 0 3px rgba(193,39,45,.12); }
.src-register-phone:has(input[aria-invalid="true"]) { box-shadow: 0 0 0 1px var(--red); }
.src-register-consent { display: flex; align-items: flex-start; gap: 12px; margin-top: 24px; color: rgba(31,31,31,.62); font-size: 12px; line-height: 1.625; cursor: pointer; }
.src-register-consent input { flex: 0 0 auto; width: 13px; height: 13px; margin: 2px 0 0; accent-color: var(--red); }
.src-register-error { display: block; margin-top: 4px; color: var(--red); font-size: 10px; line-height: 1.5; }
.src-register-fields .src-register-error { line-height: 1.333333; }
.src-register-actions { display: flex; align-items: center; gap: 12px; margin-top: 32px; }
.src-register-actions .src-register-primary { margin-top: 0; }
.src-register-back { min-height: 43px; padding: 0 24px; border: 0; background: transparent; color: rgba(31,31,31,.52); font-family: inherit; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.src-register-back:hover { color: var(--red); }
.src-register-primary:disabled { opacity: .55; cursor: wait; }
.src-register-payment > p, .src-register-payment-pending > p, .src-register-content [data-register-step="3"] > p { max-width: 620px; margin: 0; color: rgba(31,31,31,.62); font-size: 13px; line-height: 1.7; }
.src-register-content .src-register-confirm-kicker { margin-bottom: 10px!important; color: var(--red)!important; font-size: 10px!important; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.src-register-confirm-status { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.src-register-content [data-register-step="3"] .src-register-confirm-status h3 { margin: 0; font-size: clamp(26px,4vw,36px); }
.src-register-confirm-indicator { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; color: #fff; }
.src-register-confirm-indicator[data-state="pending"]::before { content: ''; width: 25px; height: 25px; border: 3px solid rgba(193,39,45,.18); border-top-color: var(--red); border-radius: 50%; animation: srcPaymentSpin .8s linear infinite; }
.src-register-confirm-indicator[data-state="paid"] { background: #176b52; border-radius: 50%; }
.src-register-confirm-indicator[data-state="failed"] { background: var(--red); border-radius: 50%; }
.src-register-confirm-indicator[data-state="paid"]::before { content: '✓'; font-size: 25px; font-weight: 700; line-height: 1; }
.src-register-confirm-indicator[data-state="failed"]::before { content: '×'; font-size: 30px; font-weight: 500; line-height: 1; }
@keyframes srcPaymentSpin { to { transform: rotate(360deg); } }
.src-register-confirm-facts { max-width: 520px; margin: 26px 0 22px; border-top: 2px solid var(--red); }
.src-register-confirm-facts > div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid rgba(31,31,31,.13); font-size: 12px; }
.src-register-confirm-facts dt { color: rgba(31,31,31,.55); }
.src-register-confirm-facts dd { margin: 0; font-weight: 700; text-align: right; }
.src-register-content .src-register-confirm-email { margin-top: 18px!important; }
.src-register-content [data-register-step="3"] .src-register-primary { margin-top: 24px; }
.src-register-payment dl { display: grid; max-width: 520px; gap: 14px; margin: 22px 0 0; }
.src-register-payment dl > div { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 12px; border-bottom: 1px solid rgba(31,31,31,.1); font-size: 12px; }
.src-register-payment dt { color: rgba(31,31,31,.48); }
.src-register-payment dd { margin: 0; font-weight: 800; text-align: right; }
.src-register-payment-pending .src-register-primary { margin-top: 22px; }
.src-register-payment-pending .src-register-back { display: block; margin-top: 12px; }
@keyframes srcRegisterOpen { from { opacity: 0; transform: translateY(8px) scale(.99); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
  .home-programmes-ref { padding-top: 72px; }
  .src-register-dialog { position: fixed; inset-inline-start: 16px; inset-inline-end: auto; width: min(896px,calc(100vw - 32px)); height: fit-content; margin-inline: 0; border-radius: 12px; }
  .src-register-dialog:has([data-register-step="0"]:not([hidden])) { height: fit-content; }
  .src-register-hero { height: 160px; padding: 24px; }
  .src-register-hero-copy h2 { font-size: 30px; line-height: 1.2; }
  .src-register-steps li { min-height: 0; flex-direction: column; gap: 0; padding: 16px 8px; font-size: 8px; letter-spacing: .05em; line-height: 1.5; }
  .src-register-steps li span { display: none; }
  .src-register-content { padding: 24px; }
  .src-register-content h3 { margin-bottom: 24px; line-height: 1.333333; }
  .src-register-options { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .src-register-option { height: 84px; min-height: 84px; padding: 20px; border-radius: 16px; gap: 0; }
  .src-register-option > span { font-size: 14px; line-height: 1.5; }
  .src-register-option small { margin-top: 4px; font-size: 12px; line-height: 1.5; }
  .src-register-primary { min-height: 43px; padding-inline: 28px; font-weight: 700; letter-spacing: .1em; }
  .src-register-fields { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .src-register-actions .src-register-primary { flex: 0 0 auto; padding-inline: 28px; }
}
@media (min-width: 768px) { .src-register-steps li { font-size: 10px; } }
@media (prefers-reduced-motion: reduce) { .src-register-dialog[open], .src-register-confirm-indicator[data-state="pending"]::before { animation: none; } .src-register-option, .src-register-primary, .src-register-close { transition-duration: .01ms; } }
.footprint-brand-pattern { position:absolute; inset:0; z-index:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='260' viewBox='0 0 560 260' fill='none'%3E%3Cg stroke='%23C1272D' stroke-width='1' opacity='.07'%3E%3Cpath d='M-35 27C48-8 115 61 194 29s145-9 208 20 126 4 186-22'/%3E%3Cpath d='M-31 62c79-31 145 32 222 2s140-11 207 17 128 10 181-16'/%3E%3Cpath d='M-40 99c92-39 151 21 234-5s134-11 206 16 124 9 185-20'/%3E%3Cpath d='M-34 137c81-34 153 23 229-2s136-12 204 14 132 13 185-13'/%3E%3Cpath d='M-29 175c74-31 146 28 222 1s142-8 208 17 126 5 182-20'/%3E%3Cpath d='M-35 216c84-38 151 21 228-6s141-9 206 19 128 5 183-20'/%3E%3Cpath d='M-31 248c80-33 149 25 226-2s141-8 207 17 125 9 180-16'/%3E%3C/g%3E%3C/svg%3E"); background-position:center; background-repeat:repeat; mask-image:radial-gradient(circle at center,transparent 18%,rgba(0,0,0,.12) 48%,black 88%); -webkit-mask-image:radial-gradient(circle at center,transparent 18%,rgba(0,0,0,.12) 48%,black 88%); pointer-events:none; }
.footprint-brand-ring { position:absolute; top:-100px; right:-500px; z-index:0; width:820px; height:820px; color:#c1272d; transform:rotate(35deg); transform-origin:center; pointer-events:none; }
.footprint-heading { top:40px; left:48px; right:auto; z-index:4; width:min(280px,calc(100% - 48px)); pointer-events:auto; }
.footprint-heading .footprint-intro { margin-top:14px; }
.footprint-map-window { position:absolute; inset:0; z-index:1; right:0; display:block; overflow:hidden; }
.footprint-ref .map-art { position:absolute; inset:0; width:100%; height:100%; margin:0; transform:scale(var(--map-scale,1)); transition:transform .5s cubic-bezier(.4,0,.2,1); transform-origin:center; }
.footprint-ref .map-art[hidden], .map-legend[hidden] { display:none !important; }
.map-art .africa-map-svg, .map-art .kenya-county-svg { position:absolute; inset:0; display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:contain; }
.map-art .africa-map-svg { padding:38px 20px 80px 300px; }
.map-art .kenya-county-svg { padding:32px 24px 60px 300px; }
.map-art .africa-map-svg path, .map-art .kenya-county-svg path { fill:var(--charcoal) !important; stroke:#fff !important; stroke-width:.75px; cursor:default; transition:fill .2s ease,opacity .2s ease; }
.map-art .africa-map-svg path[data-country], .map-art .kenya-county-svg path[data-country] { cursor:pointer; }
.map-art .africa-map-svg path.is-hovered, .map-art .africa-map-svg path.is-selected, .map-art .kenya-county-svg path.is-hovered, .map-art .kenya-county-svg path.is-selected { fill:#4a0e12 !important; }
.map-dot { position:absolute; z-index:3; display:block; width:14px; height:14px; padding:0; border:2px solid rgba(255,255,255,.82); border-radius:50%; background:var(--red); box-shadow:0 0 0 4px rgba(193,39,45,.2); cursor:pointer; }
.map-dot span { position:absolute; inset:-8px; border:1px solid rgba(193,39,45,.42); border-radius:50%; opacity:.7; }
.map-hover-label { position:absolute; z-index:5; display:flex; flex-direction:column; gap:3px; padding:9px 12px; border-radius:3px; background:#fff; box-shadow:0 4px 18px rgba(0,0,0,.14); opacity:0; pointer-events:none; transform:translate(12px,-100%); transition:opacity .15s ease; }
.map-hover-label.is-visible { opacity:1; }
.map-hover-label span { color:var(--charcoal); font-size:10px; font-weight:800; }
.map-hover-label small { color:rgba(28,28,28,.52); font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.footprint-view-toggle { display:inline-flex; gap:3px; margin-top:22px; padding:4px; border-radius:999px; background:#fff; box-shadow:0 2px 12px rgba(28,28,28,.06); }
.footprint-view-toggle button { min-width:74px; padding:9px 13px; border:0; border-radius:999px; background:transparent; color:rgba(28,28,28,.48); cursor:pointer; font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; transition:background .2s,color .2s; }
.footprint-view-toggle button[aria-selected="true"] { background:var(--red); color:#fff; }
.footprint-view-toggle button:focus-visible, .map-legend button:focus-visible { outline:3px solid var(--orange); outline-offset:3px; }
.footprint-heading .map-legend { position:relative; inset:auto; display:flex; flex-direction:column; gap:2px; margin-top:18px; }
.footprint-heading .map-legend button { min-height:32px; justify-content:flex-start; padding:4px 0; opacity:.62; }
.footprint-heading .map-legend button i { flex:none; }
.footprint-heading .map-legend button.is-hovered, .footprint-heading .map-legend button.is-active { opacity:1; }
.map-legend-kenya p { margin:0 0 8px; color:rgba(28,28,28,.42); font-size:9px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.footprint-heading .map-legend-kenya { display:grid; max-height:405px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; overflow:auto; }
.footprint-heading .map-legend-kenya p { grid-column:1/-1; }
.footprint-detail { --footprint-top-space:112px; --footprint-bottom-space:24px; position:fixed; inset:0; z-index:110; display:grid; width:auto; max-width:none; align-items:center; justify-items:center; padding:var(--footprint-top-space) 20px var(--footprint-bottom-space); border:0; background:rgba(74,14,18,.65); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .24s ease,visibility .24s ease; }
body.admin-bar .footprint-detail { --footprint-top-space:144px; }
body.src-footprint-open .site-header { z-index:120; }
.footprint-ref.is-detail .footprint-detail { opacity:1; visibility:visible; pointer-events:auto; }
.footprint-ref.is-detail .footprint-map-window { right:0; opacity:1; pointer-events:none; }
.footprint-ref.is-detail .map-art { transform:scale(var(--map-scale,1)); }
.footprint-dialog { position:relative; display:flex; width:min(896px,100%); height:min(640px,calc(100vh - var(--footprint-top-space) - var(--footprint-bottom-space))); height:min(640px,calc(100dvh - var(--footprint-top-space) - var(--footprint-bottom-space))); min-height:0; flex-direction:column; overflow:hidden; isolation:isolate; border-radius:24px; background:#fff; background-color:#fff; box-shadow:0 24px 90px rgba(0,0,0,.3); transform:translateY(12px); transition:transform .24s ease; }
.footprint-ref.is-detail .footprint-dialog { transform:none; }
.footprint-dialog > .footprint-back { position:absolute; top:16px; right:16px; z-index:5; display:flex; width:40px; height:40px; align-items:center; justify-content:center; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.15); color:#fff; cursor:pointer; font-size:22px; line-height:1; backdrop-filter:blur(10px); }
.footprint-dialog-hero { position:relative; display:flex; height:256px; min-height:256px; flex:none; align-items:flex-end; overflow:hidden; border-radius:24px 24px 0 0; background:#4a0e12; }
.footprint-dialog-image { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; object-fit:cover; }
.footprint-dialog-shade { position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,rgba(0,0,0,.8),transparent 74%); }
.footprint-dialog-hero > div { position:relative; z-index:2; padding:28px 34px; color:#fff; }
.footprint-dialog-hero .footprint-count { margin:0 0 8px; color:#f58220; font-size:9px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.footprint-dialog-hero h3 { margin:0; font-family:var(--serif); font-size:36px; line-height:1; }
.footprint-dialog-hero .footprint-meta { margin:4px 0 0; color:rgba(255,255,255,.65); font-size:12px; }
.footprint-dialog-body { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:32px; }
.footprint-detail-label { margin:0 0 14px; color:var(--red); font-size:9px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.footprint-programmes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.footprint-dialog .footprint-programmes { margin:0; }
.footprint-programme-card { position:relative; display:flex; min-width:0; min-height:0; align-items:flex-start; gap:16px; overflow:hidden; padding:16px; border:0; border-radius:16px; background:var(--cream); color:var(--charcoal); cursor:pointer; text-decoration:none; box-shadow:0 2px 5px rgba(0,0,0,.08); transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.footprint-programme-card:hover, .footprint-programme-card:focus-visible { border-color:transparent; background:#fff; box-shadow:0 10px 26px rgba(28,28,28,.1); }
.footprint-programme-card:focus-visible { outline:3px solid var(--red); outline-offset:2px; }
.footprint-programme-card::before { position:absolute; inset:0 auto 0 0; z-index:2; width:3px; background:var(--red); content:''; opacity:0; transition:opacity .2s; }
.footprint-programme-card:hover::before, .footprint-programme-card:focus-visible::before { opacity:1; }
.footprint-programme-card > img { width:96px; height:96px; min-height:96px; flex:none; border-radius:12px; object-fit:cover; }
.footprint-programme-copy { display:flex; min-width:0; flex:1; flex-direction:column; align-items:flex-start; padding:5px 0 2.5px; }
.footprint-programme-status { display:inline-block; padding:4px 12px; border-radius:999px; background:rgba(193,39,45,.1); color:var(--red); font-size:8px; font-weight:800; letter-spacing:.08em; line-height:1.5; text-transform:uppercase; }
.footprint-programme-status.is-current { background:#d9f2e2; color:#176b3a; }
.footprint-programme-status.is-upcoming { background:rgba(245,130,32,.18); color:#783f0c; }
.footprint-programme-copy > strong { margin-top:8px; font-family:var(--serif); font-size:18px; line-height:1.25; }
.footprint-programme-partner, .footprint-programme-dates { display:block; width:100%; margin-top:4px; overflow:visible; color:rgba(28,28,28,.53); font-size:10px; line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
.footprint-programme-partner { color:var(--red); font-size:9px; letter-spacing:.05em; text-transform:uppercase; }
.footprint-programme-dates { line-height:1.625; }
.footprint-programme-action { margin-top:8px; padding-top:0; color:var(--red); font-size:9px; font-weight:800; letter-spacing:.11em; line-height:1.5; text-transform:uppercase; }
.footprint-empty { margin:0; padding:40px 0; color:rgba(28,28,28,.45); font-size:14px; line-height:20px; }
@media (min-width:1024px) { .home-programme-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:1024px) {
  .home-programmes-inner { padding-right:32px; padding-left:32px; }
  .footprint-ref { min-height:1060px; }
  .footprint-heading { top:36px; left:32px; }
  .footprint-map-window { inset:0; }
  .map-art .africa-map-svg { padding:40px 24px 80px 290px; }
  .map-art .kenya-county-svg { padding:50px 26px 80px 285px; }
}
@media (max-width:639px) {
  .home-programmes-inner { padding-right:20px; padding-left:20px; }
  .home-programmes-ref, .home-news-ref, .home-report-ref { padding-block:64px; }
  .home-programmes-heading { gap:10px; align-items:flex-end; margin-bottom:28px; }
  .home-programme-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
  .home-programme-card-body { min-height:0; }
  .footprint-ref { min-height:1020px; }
  .footprint-brand-ring { top:-100px; right:-500px; width:451px; height:451px; }
  .footprint-heading { top:26px; left:20px; right:20px; width:auto; }
  .footprint-heading .display { font-size:34px; }
  .footprint-view-toggle { margin-top:16px; }
  .footprint-heading .map-legend-africa { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 8px; margin-top:12px; }
  .footprint-heading .map-legend button { min-height:30px; font-size:7px; }
  .footprint-heading .map-legend-kenya { max-height:212px; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:10px; }
  .footprint-map-window { inset:350px 0 0; }
  .footprint-ref .map-art { inset:0; }
  .map-art .africa-map-svg { padding:6px 10px 22px; }
  .map-art .kenya-county-svg { padding:8px 8px 24px; }
  .map-dot { width:12px; height:12px; }
  .footprint-detail { --footprint-top-space:88px; --footprint-bottom-space:16px; padding-right:16px; padding-left:16px; }
  body.admin-bar .footprint-detail { --footprint-top-space:130px; }
  .footprint-dialog { width:100%; height:min(560px,calc(100vh - var(--footprint-top-space) - var(--footprint-bottom-space))); height:min(560px,calc(100dvh - var(--footprint-top-space) - var(--footprint-bottom-space))); }
  .footprint-dialog-hero { height:190px; min-height:190px; }
  .footprint-dialog-hero > div { padding:24px 20px; }
  .footprint-dialog-body { padding:24px; }
  .footprint-programmes { grid-template-columns:minmax(0,1fr); gap:16px; }
  .footprint-programme-card { min-height:0; gap:16px; padding:16px; }
  .footprint-programme-card > img { width:96px; height:96px; min-height:96px; }
  .footprint-programme-copy { padding:5px 0 2.5px; }
  .footprint-programme-copy > strong { font-size:18px; }
}
@media (max-width:767px) { .footprint-programmes { grid-template-columns:minmax(0,1fr); gap:16px; } .footprint-programme-card { min-height:0; } }

/* Project dossiers follow the exported folder interaction and responsive layout. */
.project-ref { padding:88px 0 0; background:#fff; }
.project-ref .section-heading { width:min(1124px,calc(100% - 48px)); margin:0 auto 48px; }
.projects-stage { height:664px; transition:height .7s cubic-bezier(.65,0,.35,1); }
.projects-stage--open { height:clamp(720px,100vh,900px); }
.projects-grid { display:grid; height:100%; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); gap:24px; }
.project-theme-grid .project-tile { position:relative; display:flex; width:100%; min-height:0; align-items:flex-end; overflow:hidden; padding:0; border:0; background:#7a1419; color:#fff; cursor:pointer; text-align:left; transition:opacity .5s ease,transform .7s ease; }
.project-theme-grid .project-tile.span-2 { grid-column:span 2; }
.project-theme-grid .project-tile img { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease-out; }
.project-tile-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.25) 55%,transparent); transition:background .3s ease; }
.project-theme-grid .project-tile:hover img, .project-theme-grid .project-tile:focus-visible img { transform:scale(1.04); }
.project-theme-grid .project-tile:hover .project-tile-overlay, .project-theme-grid .project-tile:focus-visible .project-tile-overlay { background:linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.5) 55%,rgba(0,0,0,.18)); }
.project-theme-grid .project-tile-content { position:relative; z-index:2; display:flex; flex-direction:column; width:100%; padding:20px; }
.project-theme-grid .project-tile-partner { margin:0 0 4px; color:rgba(255,255,255,.5); font-size:9px; font-weight:700; letter-spacing:.1em; line-height:1.5; text-transform:uppercase; }
.project-theme-grid .project-tile-content strong { display:block; margin:0 0 4px; font-family:var(--serif); font-size:30px; font-weight:900; line-height:1; }
.project-theme-grid .project-theme-name { margin:0; color:rgba(255,255,255,.8); font-size:10px; font-weight:700; letter-spacing:.1em; line-height:1.5; text-transform:uppercase; }
.project-theme-grid .project-tile:focus-visible { outline:3px solid var(--orange); outline-offset:3px; }
.project-theme-grid .project-tile--dimmed { opacity:0; transform:scale(.96); pointer-events:none; }

.project-folder { position:absolute; z-index:50; top:0; right:auto; left:0; width:100vw; height:clamp(720px,100vh,900px); max-width:none; max-height:none; margin:0; padding:0; overflow:hidden; border:0; background:#7a1419; color:#fff; opacity:1; transform:none; transition:left .7s cubic-bezier(.65,0,.35,1),top .7s cubic-bezier(.65,0,.35,1),width .7s cubic-bezier(.65,0,.35,1),height .7s cubic-bezier(.65,0,.35,1),opacity .3s ease,transform .7s cubic-bezier(.65,0,.35,1); }
.project-folder[open] { display:block; }
.project-folder::backdrop { background:transparent; }
.project-folder--primed { opacity:1; transform:none; }
.project-folder--opening, .project-folder--open { opacity:1; transform:none; }
.project-folder--closing { opacity:1; transform:none; }
.project-folder-photo { position:absolute; inset:0; background-position:center; background-size:cover; filter:grayscale(1) contrast(1.18); transform:scale(1.02); }
.project-folder-shade { position:absolute; inset:0; background:linear-gradient(120deg,rgba(122,20,25,.93),rgba(200,48,58,.72)),rgba(122,20,25,.5); background-blend-mode:multiply,color; }
.project-folder-content { position:relative; z-index:1; display:flex; height:100%; opacity:0; transition:opacity .2s ease .15s; }
.project-folder--opening .project-folder-content, .project-folder--open .project-folder-content, .project-folder--closing .project-folder-content { opacity:1; }
.project-folder-profile { position:relative; display:flex; width:clamp(320px,32vw,520px); flex:none; flex-direction:column; align-items:center; overflow:visible; padding:40px; text-align:center; }
.project-folder-profile::before { position:absolute; inset:0; z-index:0; background:rgba(122,20,25,.5); content:''; }
.project-file-back { position:relative; z-index:3; display:flex; width:56px; height:56px; flex:none; align-items:center; justify-content:center; align-self:flex-start; border:2px solid #fff; border-radius:50%; background:transparent; color:#fff; cursor:pointer; font-size:18px; transition:background .2s,color .2s; }
.project-file-back:hover, .project-file-back:focus-visible { background:#fff; color:var(--red); }
.project-profile-copy { position:relative; z-index:1; display:flex; width:100%; max-width:420px; flex-direction:column; align-items:center; margin-block:auto; padding-block:32px; }
.project-name-display { margin-bottom:24px; font-family:var(--serif); font-size:clamp(28px,2.6vw,44px); font-weight:700; line-height:1.25; overflow-wrap:anywhere; }
.project-profile-description { max-width:440px; margin:0; color:rgba(255,255,255,.9); font-size:clamp(15px,1.1vw,18px); line-height:1.6; }
.project-result-chip { margin-top:28px; padding:12px 20px; border:1.5px solid #fff; background:rgba(255,255,255,.08); color:#fff; font-size:13px; font-weight:700; letter-spacing:.05em; line-height:1.5; text-transform:uppercase; }
.project-funder { position:relative; z-index:2; width:140px; flex:none; align-self:flex-end; color:rgba(255,255,255,.75); font-size:9px; font-weight:800; letter-spacing:.1em; line-height:1.5; text-align:right; text-transform:uppercase; }
.project-index { position:relative; z-index:40; display:flex; width:min(35vw,calc(var(--folder-count, 3) * clamp(42px,4vw,64px))); flex:none; overflow:visible; }
.project-divider { position:relative; z-index:var(--divider-z); display:flex; width:0; min-width:0; height:100%; flex:1; flex-direction:column; padding:0; border:0; background:var(--divider-color); cursor:pointer; transition:transform .26s ease,filter .26s ease; }
.project-divider:nth-child(1) { justify-content:flex-start; }.project-divider:nth-child(2) { justify-content:center; }.project-divider:nth-child(3) { justify-content:flex-end; }
.project-divider:hover { transform:translateX(-10px); filter:brightness(1.08); }
.project-divider-ear { position:relative; left:0; z-index:5; display:flex; width:calc(100% + 30px); min-height:180px; align-items:center; justify-content:center; padding:28px 12px; border-radius:0 14px 14px 0; background:var(--divider-color); box-shadow:0 4px 16px rgba(0,0,0,.25); }
.project-divider-ear > span { color:#fff; font-size:clamp(10px,.84vw,12px); font-weight:700; letter-spacing:.03em; line-height:1.25; text-transform:uppercase; writing-mode:vertical-rl; transform:rotate(180deg); }
.project-divider--active .project-divider-ear { box-shadow:inset 0 0 0 1.5px white,0 4px 16px rgba(0,0,0,.25); }
.project-divider:focus-visible { outline:2px solid #fff; outline-offset:-5px; }
.project-stage { position:relative; display:flex; min-width:0; flex:1; overflow:hidden; container-name:project-stage; container-type:inline-size; }
.project-folder-tabs { display:flex; min-width:0; flex:1; }
.project-folder-tab { position:relative; display:flex; min-width:0; flex:1; overflow:hidden; border:0; border-left:1px solid rgba(255,255,255,.15); color:#fff; text-align:left; text-decoration:none; transition:flex-grow .35s ease,filter .25s ease; }
.project-folder-tab:first-child { border-left:0; }.project-folder-tab:nth-child(odd) { background:rgba(74,14,18,.92); }.project-folder-tab:nth-child(even) { background:rgba(179,38,46,.9); }
.project-folder-tab:hover, .project-folder-tab:focus-visible { flex-grow:1.15; filter:brightness(1.08); outline:2px solid #fff; outline-offset:-5px; }
.project-tab-description { position:absolute; top:44px; right:25px; left:25px; color:#fff; font-size:13px; font-weight:500; line-height:1.5; opacity:0; transform:translateY(-6px); transition:opacity .25s,transform .25s; }
.project-tab-label { position:absolute; bottom:58px; left:50%; display:block; max-height:80%; color:rgba(255,255,255,.85); font-size:clamp(18px,1.9vw,28px); font-weight:700; letter-spacing:.06em; line-height:1; text-transform:uppercase; writing-mode:vertical-rl; transform:translateX(-50%) rotate(180deg); white-space:nowrap; transition:bottom .25s,color .25s,opacity .25s; }
.project-folder-tab:hover .project-tab-label, .project-folder-tab:focus-visible .project-tab-label { bottom:72px; color:#fff; opacity:1; }
.project-folder-tab:hover .project-tab-description, .project-folder-tab:focus-visible .project-tab-description { opacity:1; transform:none; }
.programme-folder-layer { position:absolute; inset:0; z-index:30; display:flex; overflow-y:auto; background:var(--programme-color); color:#fff; transform:translateX(-100%); transition:transform .65s ease-in-out; }
.programme-folder-layer[hidden] { display:none; }
.programme-folder-layer--open { transform:translateX(0); }
.programme-folder-texture { position:absolute; inset:0; background-image:var(--folder-image); background-position:center; background-size:cover; filter:grayscale(1); opacity:.1; pointer-events:none; }
.programme-folder-close { position:absolute; top:32px; right:32px; z-index:5; display:flex; width:44px; height:44px; align-items:center; justify-content:center; border:1.5px solid #fff; border-radius:50%; background:transparent; color:#fff; cursor:pointer; font-size:25px; line-height:1; }
.programme-folder-close:hover { background:#fff; color:var(--programme-color); }
.programme-folder-copy { position:relative; z-index:1; display:grid; width:100%; min-height:100%; align-content:center; grid-template-columns:minmax(0,1fr); padding:clamp(32px,5cqw,96px); font-size:16px; line-height:1.5; }
.programme-folder-copy .programme-facts { display:block; margin:0; padding-top:0; color:#fff; font-size:initial; font-weight:400; letter-spacing:normal; text-transform:none; }
.programme-folder-eyebrow { margin-bottom:18px; color:rgba(255,255,255,.7); font-size:12px; font-weight:700; letter-spacing:.12em; line-height:1.5; text-transform:uppercase; }
.programme-folder-copy h3 { margin:0 0 22px; font-family:var(--serif); font-size:clamp(32px,3.4vw,56px); line-height:1.05; }
.programme-status-chip { display:inline-block; margin:0 0 25px; padding:10px 16px; border:1.5px solid rgba(255,255,255,.75); color:#fff; font-size:12px; font-weight:700; letter-spacing:.06em; line-height:1.5; text-transform:uppercase; }
.programme-folder-left > p { max-width:480px; margin:0; color:rgba(255,255,255,.9); font-size:clamp(15px,1.1vw,18px); line-height:1.6; }
.programme-folder-rule { width:100%; max-width:520px; height:1px; margin-top:34px; background:rgba(255,255,255,.25); }
.programme-folder-right { min-width:0; margin-top:32px; }
.programme-facts { width:100%; max-width:520px; }
.programme-facts > div { display:grid; min-height:70px; grid-template-columns:24px minmax(70px,.45fr) minmax(0,1fr); align-items:center; gap:12px; border-bottom:1px solid rgba(255,255,255,.15); }
.programme-folder-copy .programme-facts > div { min-height:0; grid-template-columns:24px minmax(0,1fr); align-items:start; gap:4px 12px; padding:14px 0; }
.programme-folder-copy .programme-facts .programme-fact-icon { grid-row:1 / span 2; margin-top:2px; }
.programme-folder-copy .programme-facts strong { grid-column:2; text-align:left; }
.programme-facts span { min-width:0; color:rgba(255,255,255,.8); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.programme-facts .programme-fact-icon { display:flex; width:20px; height:20px; align-items:center; justify-content:center; }
.programme-facts svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.5; }
.programme-facts strong { min-width:0; color:#fff; font-size:clamp(13px,1.05vw,16px); font-weight:600; line-height:1.4; text-align:right; overflow-wrap:anywhere; }
.programme-actions { display:flex; width:100%; max-width:520px; flex-direction:column; gap:16px; margin-top:34px; }
.programme-actions a { display:flex; min-height:56px; align-items:center; justify-content:center; padding:16px 22px; font-size:15px; font-weight:700; letter-spacing:.04em; text-align:center; text-decoration:none; text-transform:uppercase; transition:opacity .2s,background-color .2s; }
.programme-actions a:hover { opacity:.82; }
.programme-action-primary { background:#fff; color:var(--programme-color); }
.programme-action-secondary { border:1.5px solid #fff; color:#fff; }

@container project-stage (min-width:900px) {
  .programme-folder-copy { grid-template-columns:minmax(0,58fr) minmax(0,42fr); column-gap:64px; }
  .programme-folder-right { margin-top:0; }
}

@media (max-width:1023px) {
  .project-folder { position:fixed; z-index:1000; inset:0 !important; height:100dvh !important; min-height:100dvh; width:100vw !important; overflow-y:auto; transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .3s ease; }
  .project-folder--primed, .project-folder--closing { opacity:0; transform:translateY(100%); }
  .project-folder--opening, .project-folder--open { opacity:1; transform:translateY(0); }
  .project-folder-content { min-height:100%; flex-direction:column; }
  .project-folder-profile { order:1; width:100%; min-height:auto; flex:none; padding:40px; }
  .project-profile-copy { max-width:640px; padding-block:20px; }
  .project-funder { width:140px; }
  .project-index { order:2; display:grid; width:100%; height:auto; flex:none; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:visible; background:#7a1419; }
  .project-divider { width:100%; height:84px; flex:none; padding:0 8px; }
  .project-divider:hover { transform:none; }
  .project-divider-ear { position:relative; left:0; width:100%; height:84px; min-height:84px; padding:8px; border-radius:12px 12px 0 0; }
  .project-divider-ear > span { max-width:100%; font-size:9px; writing-mode:horizontal-tb; transform:none; white-space:normal; text-align:center; }
  .project-stage { order:3; width:100%; min-height:216px; flex:none; transition:min-height .65s ease-in-out; }
  .project-stage--folder-open { min-height:clamp(720px,100vh,900px); }
  .programme-folder-layer { flex-direction:column; overflow-y:auto; transform:translateY(100%); }
  .programme-folder-layer--open { transform:translateY(0); }
  .project-folder-tabs { flex:none; flex-direction:column; }
  .project-folder-tab { min-height:72px; width:100%; flex:none; border-left:0; border-top:1px solid rgba(255,255,255,.15); padding:0 24px; }
  .project-folder-tab:hover { flex-grow:0; }
  .project-tab-label { position:static; align-self:center; max-height:none; font-size:clamp(18px,2.2vw,22px); line-height:1.05; writing-mode:horizontal-tb; transform:none; white-space:nowrap; text-align:center; text-transform:uppercase; }
  .project-folder-tab:hover .project-tab-label, .project-folder-tab:focus-visible .project-tab-label { transform:translateY(-8px); }
  .project-tab-description { display:none; }
  .programme-folder-layer { flex-direction:column; overflow-y:auto; transform:translateY(100%); }
  .programme-folder-layer--open { transform:translateY(0); }
  .programme-folder-copy { grid-template-columns:minmax(0,1fr); padding:64px 36px 36px; }
  .programme-folder-right { margin-top:32px; }
  .projects-stage { height:560px; }
  .projects-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
  .project-theme-grid .project-tile.span-2 { grid-column:span 1; }
}
@media (max-width:767px) {
  .projects-stage { height:auto; }
  .projects-stage--open { height:auto; }
  .projects-grid { display:flex; flex-direction:column; gap:20px; }
  .project-theme-grid .project-tile { height:240px; min-height:240px; }
  .project-theme-grid .project-tile.span-2 { grid-column:auto; }
  .project-folder-profile { min-height:auto; padding:20px; }
  .project-profile-copy { padding-block:32px; }
  .project-funder { width:110px; }
  .project-stage--folder-open { min-height:780px; }
  .project-index { height:auto; }
  .programme-folder-copy { padding:64px 20px 20px; }
  .programme-folder-copy .programme-facts { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }
  .programme-folder-copy h3 { font-size:32px; }
  .programme-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .programme-folder-copy .programme-facts > div { display:grid; min-height:0; border-right:0; border-bottom:1px solid rgba(255,255,255,.15); padding:14px 0; text-align:left; }
  .programme-facts strong { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) { .project-folder,.project-folder-content,.project-folder-tab,.project-divider,.programme-folder-layer,.project-theme-grid .project-tile { animation-duration:1ms !important; transition-duration:1ms !important; } }

/* Footprint layout follows the published two-column section, with the complete map fitted to its panel. */
.footprint-ref { height:auto; min-height:0; max-height:none; padding:128px 0; isolation:isolate; }
.footprint-layout { position:relative; z-index:2; display:grid; width:min(1200px,100%); min-height:640px; grid-template-columns:320px minmax(0,1fr); gap:40px; align-items:stretch; margin-inline:auto; padding-inline:40px; }
.footprint-heading { position:relative; inset:auto; z-index:3; width:auto; align-self:start; padding-top:32px; pointer-events:auto; }
.footprint-heading .eyebrow { margin-bottom:16px; }
.footprint-heading .display { margin:0 0 16px; font-size:36px; }
.footprint-heading .footprint-intro { margin:0 0 32px; color:rgba(28,28,28,.55); font-size:14px; line-height:1.65; }
.footprint-view-toggle { margin-top:0; }
.footprint-heading .map-legend { position:relative; inset:auto; display:flex; width:100%; flex-direction:column; gap:2px; margin-top:40px; }
.footprint-heading .map-legend button { min-height:32px; }
.footprint-heading .map-legend-kenya { max-height:405px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:18px; }
.footprint-map-window { position:relative; inset:auto; z-index:1; display:block; width:100%; height:560px; min-width:0; min-height:560px; align-self:start; overflow:hidden; }
.footprint-ref .map-art { position:absolute; inset:0; width:100%; height:100%; min-width:0; min-height:0; margin:0; transform:scale(var(--map-scale,1)); transform-origin:center; }
.map-art .africa-map-svg, .map-art .kenya-county-svg { padding:0; }
@media (max-width:1024px) {
  .footprint-ref { padding-block:96px; }
  .footprint-layout { padding-inline:32px; }
}
@media (max-width:1023px) {
  .footprint-ref { padding-block:96px; }
  .footprint-layout { min-height:0; grid-template-columns:minmax(0,1fr); gap:28px; padding-inline:32px; }
  .footprint-heading { max-width:400px; padding-top:0; }
  .footprint-map-window { height:560px; min-height:560px; }
  .footprint-heading .map-legend-africa { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; margin-top:20px; }
  .footprint-heading .map-legend-kenya { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .footprint-ref { padding-block:72px; }
  .footprint-layout { gap:24px; padding-inline:20px; }
  .footprint-heading { max-width:none; }
  .footprint-heading .display { font-size:34px; }
  .footprint-heading .footprint-intro { margin-bottom:24px; }
  .footprint-view-toggle { margin-top:0; }
  .footprint-heading .map-legend-africa { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 8px; margin-top:18px; }
  .footprint-heading .map-legend button { min-height:32px; font-size:9px; }
  .footprint-heading .map-legend-kenya { display:grid; max-height:none; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; margin-top:12px; overflow:visible; }
  .footprint-map-window { height:430px; min-height:430px; }
  .footprint-ref .map-art { inset:0; width:100%; height:100%; margin:0; }
  .map-art .africa-map-svg, .map-art .kenya-county-svg { padding:0; }
  .footprint-dialog-hero { height:190px; min-height:190px; }
  .footprint-dialog-body { padding:24px; }
  .footprint-programmes { grid-template-columns:minmax(0,1fr); }
}

/* Keep the page scrollbar from reserving a visible strip beside the content. */
html { scrollbar-width: none; scrollbar-color: transparent transparent; -ms-overflow-style: none; }
html::-webkit-scrollbar { width: 0; height: 0; background: transparent; }

/* Keep internal scroll areas usable while the track stays visually clear. */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(193,39,45,.4); border-radius:2px; }
::-webkit-scrollbar-thumb:hover { background:rgba(193,39,45,.7); }

/* Match the published desktop footprint column's text rhythm and country list. */
@media (min-width:1024px) {
  .footprint-heading .eyebrow { line-height:1.5; }
  .footprint-heading .display { line-height:1.111111; }
  .footprint-heading .footprint-intro { line-height:1.625; }
  .footprint-view-toggle { gap:0; margin-bottom:32px; }
  .footprint-view-toggle button { min-width:0; padding:8px 16px; line-height:1.5; letter-spacing:.1em; }
  .footprint-heading .map-legend { gap:12px; }
  .footprint-heading .map-legend button { min-height:0; padding:0; line-height:1.5; }
}

@media (max-width:767px) {
  .footprint-dialog-hero { height:192px; min-height:192px; }
  .footprint-programme-status,
  .footprint-programme-action { line-height:1.5; }
  .footprint-programme-copy { padding:5px 0 2.5px; }
}

/* SRC v3 newsletter and footer */
.stay-connected {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: 80px;
  background: #f58220;
  color: #1f1f1f;
}
.stay-connected-ring {
  --ring-parallax: 0px;
  position: absolute;
  top: -230px;
  left: -300px;
  z-index: 0;
  width: 520px;
  height: 520px;
  color: #c1272d;
  opacity: .3;
  pointer-events: none;
  transform: translate3d(0,var(--ring-parallax),0) rotate(-22deg);
  transform-origin: center;
  will-change: transform;
}
.stay-connected-grain,
.stay-connected-topography { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.stay-connected-grain {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.9'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
  opacity: .09;
}
.stay-connected-topography {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='240' viewBox='0 0 520 240' fill='none'%3E%3Cg stroke='%23C96A26' stroke-width='1' opacity='.25'%3E%3Cpath d='M-30 26C45-5 107 58 181 27s137-8 196 18 118 4 173-20'/%3E%3Cpath d='M-25 57c72-28 135 29 207 2s131-10 194 15 120 9 169-14'/%3E%3Cpath d='M-35 91c86-35 142 19 219-4s125-10 193 14 116 8 173-18'/%3E%3Cpath d='M-30 126c76-31 143 21 214-2s127-11 191 12 123 12 173-12'/%3E%3Cpath d='M-25 161c69-28 136 25 207 1s133-7 195 15 118 4 170-18'/%3E%3Cpath d='M-30 199c78-35 141 19 213-5s132-8 193 17 120 5 171-18'/%3E%3Cpath d='M-28 228c75-30 139 23 211-2s132-7 194 15 117 8 169-14'/%3E%3C/g%3E%3C/svg%3E");
  background-position: right center;
  background-repeat: repeat;
  mask-image: linear-gradient(to right,transparent 0%,transparent 22%,#000 68%,#000 100%);
  -webkit-mask-image: linear-gradient(to right,transparent 0%,transparent 22%,#000 68%,#000 100%);
}
.stay-connected-grid,
.site-footer-grid,
.site-footer-copyright-inner { position: relative; z-index: 1; width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 40px; }
.stay-connected-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 64px; }
.stay-connected-column { display: grid; grid-template-rows: auto auto; gap: 16px; min-width: 0; margin: 0; }
.stay-connected-kicker { margin: 0; color: rgba(31,31,31,.75); font-size: 12px; font-weight: 700; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.stay-connected-headline { display: block; height: auto; margin: 0; color: #1f1f1f; font-family: var(--serif); font-size: 40px; font-weight: 700; line-height: 1.15; }
.stay-connected-label { display: block; margin: 0 0 14px; color: #1f1f1f; font-size: 12px; font-weight: 700; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.stay-connected-pill { display: flex; width: 100%; height: 72px; align-items: stretch; overflow: hidden; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(31,31,31,.12); }
.stay-connected-pill input { min-width: 0; height: 100%; flex: 1 1 auto; padding: 0 24px; border: 0; border-radius: 0; background: #fff; color: #1f1f1f; font-size: 14px; font-weight: 400; outline: none; appearance: none; }
.stay-connected-pill input::placeholder { color: rgba(31,31,31,.48); opacity: 1; }
.stay-connected-pill input:-webkit-autofill,
.stay-connected-pill input:-webkit-autofill:hover,
.stay-connected-pill input:-webkit-autofill:focus { -webkit-text-fill-color: #1f1f1f; box-shadow: 0 0 0 1000px #fff inset; caret-color: #1f1f1f; }
.stay-connected-pill button { display: grid; height: 100%; min-width: 120px; flex: 0 0 23%; place-items: center; padding: 0 20px; border: 0; border-radius: 0; background: #b5262d; color: #fff; cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .09em; line-height: 1; text-transform: uppercase; appearance: none; }
.stay-connected-pill button:hover { background: #a91f26; }
.stay-connected-pill button:focus-visible { outline: 2px solid #fff; outline-offset: -5px; }
.stay-connected-form { width: 100%; }
.stay-connected-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.stay-connected-action > .stay-connected-message { margin: 0; color: #1f1f1f; font-size: 14px; font-weight: 600; }
.site-footer { position: relative; overflow: hidden; border-top: 1px solid #d9d9d4; background: #ededea; color: #2b2b2b; }
.site-footer-watermark { position: absolute; bottom: 0; left: 50%; z-index: 0; width: auto; height: 100%; max-width: none; object-fit: contain; opacity: .12; pointer-events: none; transform: translateX(-50%); }
.site-footer-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 36px; padding-top: 56px; padding-bottom: 56px; }
.site-footer-column { min-width: 0; }
.site-footer-contact { grid-column: span 2; }
.site-footer-heading { margin: 0 0 16px; color: #2b2b2b; font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.site-footer-links { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.site-footer-links li { line-height: 24px; }
.site-footer-links a,
.site-footer-contact-details a { display: inline-block; color: #2b2b2b; font-size: 12px; font-weight: 400; line-height: 16px; text-decoration: none; transition: color .18s ease; }
.site-footer-links a:hover,
.site-footer-links a:focus-visible,
.site-footer-contact-details a:hover,
.site-footer-contact-details a:focus-visible { color: #b3262c; }
.site-footer-contact-details { display: block; color: #5c5c57; font-size: 14px; line-height: 20px; }
.site-footer-contact-details > * + * { margin-top: 12px; }
.site-footer-contact-details a { display: block; font-size: 14px; line-height: 20px; }
.site-footer-contact-details p { margin: 12px 0 0; color: #5c5c57; font-size: 14px; line-height: 20px; }
.site-footer-copyright { position: relative; z-index: 1; border-top: 1px solid #d9d9d4; }
.site-footer-copyright-inner { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 16px; padding-top: 20px; padding-bottom: 20px; }
.site-footer-copyright-inner > p { margin: 0; color: #5c5c57; font-size: 11px; line-height: 16px; }
.site-footer-socials { display: flex; align-items: center; gap: 16px; }
.site-footer-social { display: flex; width: 32px; height: 32px; flex: 0 0 32px; align-items: center; justify-content: center; border: 1px solid #2b2b2b; border-radius: 50%; color: #2b2b2b; transition: border-color .18s ease, background-color .18s ease, color .18s ease; }
a.site-footer-social:hover,
a.site-footer-social:focus-visible { border-color: #b3262c; background: #b3262c; color: #fff; }
.site-footer-social svg { width: 14px; height: 14px; fill: currentColor; }

@media (max-width:1024px) {
  .stay-connected-grid,
  .site-footer-grid,
  .site-footer-copyright-inner { padding-right: 32px; padding-left: 32px; }
}
@media (max-width:1023px) {
  .site-footer-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .site-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stay-connected-ring { width: 286px; height: 286px; }
}
@media (max-width:640px) {
  .stay-connected { padding-block: 56px; }
  .stay-connected-grid { grid-template-columns: minmax(0,1fr); gap: 32px; padding-right: 20px; padding-left: 20px; }
  .stay-connected-column { grid-template-rows: auto auto; }
  .stay-connected-headline { height: auto; font-size: 36px; line-height: 1.15; }
  .stay-connected-pill { height: 64px; }
  .site-footer-grid,
  .site-footer-copyright-inner { padding-right: 20px; padding-left: 20px; }
  .site-footer-grid { gap: 36px; padding-top: 56px; padding-bottom: 56px; }
  .site-footer-copyright-inner { min-height: 0; flex-direction: column; align-items: center; justify-content: space-between; gap: 16px; }
  .site-footer-copyright-inner > p { line-height: 1.5; }
  .site-footer-socials { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .stay-connected-ring { --ring-parallax: 0px !important; will-change: auto; }
  .site-footer-links a,
  .site-footer-contact-details a,
  .site-footer-social { transition: none; }
}

/* What We Do pillar accordion and programme cabinet */
.pillar-section {
  scroll-margin-top: 88px;
  background: white;
  padding-block: 128px;
}

.pillar-section--page {
  padding-block: 0;
}

.pillar-stage {
  position: relative;
  width: 100%;
  height: 80vh;
  min-height: 620px;
  max-height: 900px;
  overflow: hidden;
  background: white;
}

.pillar-accordion-desktop {
  display: flex;
  width: 100%;
  height: 100%;
  gap: 12px;
  background: white;
}

.pillar-panel {
  position: relative;
  min-width: 0;
  overflow: hidden;
  flex: 0 0 96px;
  background: var(--pillar-gradient);
  color: white;
  cursor: pointer;
  text-align: left;
  transition: flex-grow 600ms cubic-bezier(0.65, 0, 0.35, 1), transform 180ms ease;
  will-change: flex-grow;
}

.pillar-panel.is-active {
  flex-grow: 1;
}

.pillar-panel:not(.is-active):hover {
  transform: translateY(-4px);
}

.pillar-panel-collapsed {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 28px 0 32px;
  opacity: 1;
  transition: opacity 150ms ease;
}

.pillar-panel.is-active .pillar-panel-collapsed {
  opacity: 0;
  pointer-events: none;
}

.pillar-panel-collapsed > span {
  padding: 6px 9px;
  background: rgba(255, 255, 255, 0.16);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.pillar-panel-collapsed strong {
  display: block;
  max-height: 100%;
  min-height: 0;
  flex: 1;
  margin-top: 24px;
  overflow: hidden;
  color: white;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-overflow: ellipsis;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

.pillar-panel--irf .pillar-panel-collapsed strong {
  font-size: 11px;
}

.pillar-panel-expanded {
  position: absolute;
  inset: 0 auto 0 0;
  display: flex;
  width: min(720px, 60vw);
  justify-content: space-between;
  flex-direction: column;
  padding: clamp(40px, 6vw, 88px);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity 150ms ease, transform 150ms ease;
}

.pillar-panel.is-active .pillar-panel-expanded {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition-duration: 260ms;
  transition-delay: 800ms;
}

.pillar-number {
  display: block;
  margin-bottom: 24px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.pillar-panel-expanded h3 {
  max-width: 680px;
  margin-top: 0;
  margin-bottom: 14px;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(42px, 5vw, 76px);
  font-weight: 700;
  line-height: 0.98;
}

.pillar-panel-expanded em {
  display: block;
  margin-bottom: 24px;
  color: rgba(255, 255, 255, 0.82);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 18px;
}

.pillar-panel-expanded p {
  max-width: 640px;
  margin: 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 15px;
  line-height: 1.7;
}

.pillar-audience {
  display: inline-flex;
  max-width: 540px;
  flex-direction: column;
  gap: 5px;
  margin-top: 30px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  padding: 14px 18px;
}

.pillar-audience span {
  color: rgba(255, 255, 255, 0.56);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.pillar-audience strong {
  font-size: 14px;
  font-weight: 600;
}

.pillar-learn {
  display: inline-flex;
  width: fit-content;
  min-height: 48px;
  align-items: center;
  gap: 14px;
  background: white;
  border: 0;
  padding: 16px 28px;
  color: var(--pillar-color);
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 200ms ease;
}

.pillar-learn:hover {
  background: #FAF8F4;
}

.pillar-learn > span {
  transition: transform 200ms ease;
}

.pillar-learn:hover > span {
  transform: translateX(4px);
}

.pillar-learn:focus-visible {
  outline: 3px solid white;
  outline-offset: 4px;
}

.pillar-accordion-mobile {
  display: none;
}

.pillar-stage--cabinet {
  height: auto;
  min-height: 80vh;
  max-height: none;
  overflow: visible;
}

.pillar-cabinet {
  position: relative;
  z-index: 5;
  display: grid;
  min-height: 80vh;
  grid-template-columns: 88px 200px 36px minmax(0, 1fr);
  overflow: hidden;
  border-radius: 0;
  background: var(--pillar-gradient);
}

.pillar-title-strip {
  position: relative;
  min-height: 80vh;
  color: white;
}

.pillar-title-strip > button {
  position: absolute;
  top: 16px;
  left: 50%;
  z-index: 3;
  display: flex;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  background: transparent;
  color: inherit;
  font-size: 24px;
  font-weight: 300;
  line-height: 1;
  transform: translateX(-50%);
  transition: background-color 180ms ease, color 180ms ease;
}

.pillar-title-strip > button:hover {
  background: white;
  color: var(--pillar-color);
}

.pillar-title-strip > span {
  position: absolute;
  top: 72px;
  left: 50%;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  transform: translateX(-50%);
  white-space: nowrap;
}

.pillar-title-strip > strong {
  position: absolute;
  top: 144px;
  right: 20px;
  bottom: 32px;
  left: 20px;
  display: flex;
  width: auto;
  align-items: center;
  justify-content: center;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

.pillar-title-strip--bms > strong {
  font-size: 29px;
}

.pillar-title-strip--irf > strong {
  font-size: 22px;
}

.pillar-tab-strip {
  position: relative;
  z-index: 6;
  display: flex;
  min-height: 80vh;
  align-items: flex-start;
  flex-direction: column;
  gap: 4px;
  padding-block: 12px;
  overflow: visible;
}

.pillar-tab-strip > button {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  min-height: 64px;
  max-height: 110px;
  flex: 1 1 0;
  align-items: center;
  gap: 10px;
  border: 0;
  border-radius: 0;
  background: color-mix(in srgb, var(--pillar-color), white 7%);
  padding: 12px 14px;
  color: white;
  text-align: left;
  transform: translateX(-10px);
  transition: transform 200ms ease;
}

.pillar-tab-strip > button:nth-child(even) {
  background: color-mix(in srgb, var(--pillar-color), black 7%);
}

.pillar-tab-strip > button:hover {
  transform: translateX(-4px);
}

.pillar-tab-strip > button.is-active {
  z-index: 4;
  width: calc(100% + 36px);
  flex-basis: 0;
  background: #FAF8F4;
  color: var(--pillar-color);
  transform: translateX(0);
}

.pillar-tab-strip > button strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-transform: uppercase;
}

.pillar-tab-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 999px;
  background: white;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.14);
}

.pillar-tab-dot--current {
  background: #43A66F;
}

.pillar-tab-dot--upcoming {
  background: #F0A43C;
}

.pillar-tab-dot--past {
  background: #D74B52;
}

.pillar-tab-strip > button.is-active .pillar-tab-dot {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pillar-color), transparent 84%);
}

.pillar-tab-strip > button.is-active .pillar-tab-dot--overview {
  background: var(--pillar-color);
}

.pillar-folder-edges {
  position: relative;
  min-height: 80vh;
  overflow: hidden;
}

.pillar-folder-edges span {
  position: absolute;
  top: 22px;
  bottom: 22px;
  width: 10px;
  border-radius: 0;
  background: color-mix(in srgb, var(--pillar-color), black 12%);
  box-shadow: 3px 0 8px rgba(43, 43, 43, 0.12);
}

.pillar-folder-edges span:nth-child(1) {
  left: 2px;
}

.pillar-folder-edges span:nth-child(2) {
  left: 12px;
  top: 30px;
  bottom: 30px;
  background: color-mix(in srgb, var(--pillar-color), black 18%);
}

.pillar-folder-edges span:nth-child(3) {
  left: 22px;
  top: 38px;
  bottom: 38px;
  background: color-mix(in srgb, var(--pillar-color), black 24%);
}

.pillar-paper {
  position: relative;
  z-index: 5;
  display: flex;
  min-width: 0;
  min-height: calc(80vh - 32px);
  flex-direction: column;
  margin: 16px 16px 16px 0;
  border-radius: 0;
  background: #FAF8F4;
  box-shadow: 0 18px 50px rgba(43, 43, 43, 0.2);
  color: #2B2B2B;
  padding: 48px;
}

.pillar-paper :where(h1,h2,h3,h4,h5,h6,p) { margin: 0; }
.pillar-paper :where(ol,ul,menu) { margin: 0; padding: 0; list-style: none; }

.pillar-sheet-content {
  flex: 1;
  animation: sheetContentIn 200ms ease both;
}

.pillar-sheet-eyebrow {
  margin-bottom: 12px;
  color: var(--pillar-color);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.pillar-sheet-summary h3,
.pillar-programme-sheet h3 {
  max-width: 820px;
  margin-bottom: 16px;
  font-family: 'Playfair Display', Georgia, serif;
  overflow-wrap: anywhere;
  font-size: clamp(34px, 3.8vw, 58px);
  font-weight: 700;
  line-height: 1.04;
}

.pillar-sheet-tagline {
  margin-bottom: 24px;
  color: rgba(43, 43, 43, 0.68);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 18px;
  font-style: italic;
}

.pillar-sheet-description {
  max-width: 700px;
  color: rgba(43, 43, 43, 0.72);
  font-size: 14px;
  line-height: 1.75;
}

.pillar-sheet-audience {
  display: flex;
  max-width: 620px;
  flex-direction: column;
  gap: 6px;
  margin-top: 28px;
  border-top: 1px solid rgba(43, 43, 43, 0.14);
  padding-top: 20px;
}

.pillar-sheet-audience span {
  color: rgba(43, 43, 43, 0.46);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.pillar-sheet-audience strong {
  font-size: 14px;
  font-weight: 700;
}

.pillar-overview-programmes {
  margin-top: 38px;
}

.pillar-overview-programmes > div:last-child {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.pillar-overview-programmes button {
  display: grid;
  min-height: 72px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: center;
  gap: 4px 12px;
  border: 1px solid rgba(43, 43, 43, 0.1);
  border-radius: 0;
  background: transparent;
  padding: 12px 14px;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease;
}

.pillar-overview-programmes button:hover {
  border-color: color-mix(in srgb, var(--pillar-color), transparent 50%);
  transform: translateY(-2px);
}

.pillar-overview-programmes button span {
  color: var(--pillar-color);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pillar-overview-programmes button strong {
  grid-column: 1;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
}

.pillar-overview-programmes button i {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  color: var(--pillar-color);
  font-size: 16px;
  font-style: normal;
}

.pillar-programme-topline {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 22px;
  margin-block: 20px 24px;
}

.pillar-sheet-logos > div {
  gap: 12px;
}

.pillar-sheet-logos > div > div {
  height: 32px;
}

.pillar-sheet-logos > div > div > span {
  color: #2B2B2B;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.025em;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
}

.pillar-sheet-logos img {
  max-height: 32px;
  filter: none;
}

.pillar-sheet-status {
  width: fit-content;
  flex: none;
  border: 1px solid color-mix(in srgb, var(--pillar-color), transparent 45%);
  border-radius: 0;
  padding: 8px 12px;
  color: var(--pillar-color);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pillar-sheet-facts {
  border-top: 1px solid rgba(43, 43, 43, 0.12);
}

.pillar-sheet-facts > div {
  display: grid;
  min-height: 58px;
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  border-bottom: 1px solid rgba(43, 43, 43, 0.12);
  padding-block: 14px;
}

.pillar-sheet-facts span {
  color: rgba(43, 43, 43, 0.46);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pillar-sheet-facts strong {
  color: rgba(43, 43, 43, 0.82);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.pillar-sheet-journey {
  margin-top: 28px;
}

.pillar-sheet-journey ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.pillar-sheet-journey li {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(43, 43, 43, 0.1);
  border-radius: 0;
  padding: 10px 12px;
}

.pillar-sheet-journey li span {
  color: var(--pillar-color);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 15px;
  font-weight: 700;
}

.pillar-sheet-journey li strong,
.pillar-sheet-journey > p {
  min-width: 0;
  color: rgba(43, 43, 43, 0.72);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.35;
}

.pillar-sheet-actions {
  display: flex;
  gap: 10px;
  margin-top: 28px;
}

.pillar-sheet-actions button {
  min-height: 48px;
  border: 1.5px solid var(--pillar-color);
  padding: 12px 18px;
  color: var(--pillar-color);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: opacity 180ms ease;
}

.pillar-sheet-actions button:first-child {
  background: var(--pillar-color);
  color: white;
}

.pillar-sheet-actions button:hover {
  opacity: 0.74;
}

.pillar-sheet-footer {
  display: flex;
  min-height: 44px;
  align-items: flex-end;
  gap: 8px;
  margin-top: 36px;
  border-top: 1px solid rgba(43, 43, 43, 0.1);
  padding-top: 18px;
  color: rgba(43, 43, 43, 0.48);
  font-size: 10px;
  font-weight: 700;
}

.pillar-sheet-footer button:hover {
  color: var(--pillar-color);
}

@keyframes sheetContentIn {
  from { opacity: 0; transform: translateX(-8px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 899px) {
  .pillar-section {
    padding-block: 72px;
  }

  .pillar-section--page {
    padding-block: 0;
  }

  .pillar-stage {
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }

  .pillar-accordion-desktop {
    display: none;
  }

  .pillar-accordion-mobile {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
  }

  .pillar-mobile-card {
    overflow: hidden;
    background: var(--pillar-gradient);
    color: white;
  }

  .pillar-mobile-card > button {
    display: flex;
    width: 100%;
    min-height: 78px;
    align-items: center;
    gap: 16px;
    border: 0;
    background: transparent;
    padding: 18px 22px;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-align: left;
  }

  .pillar-mobile-card > button > span {
    padding: 5px 8px;
    background: rgba(255, 255, 255, 0.16);
    font-size: 10px;
    font-weight: 900;
  }

  .pillar-mobile-card > button > strong {
    flex: 1;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 18px;
    line-height: 1.1;
  }

  .pillar-mobile-card > button > i {
    font-size: 22px;
    font-style: normal;
    transition: transform 250ms ease;
  }

  .pillar-mobile-card.is-active > button > i {
    transform: rotate(45deg);
  }

  .pillar-mobile-card > div {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    padding: 26px 22px 30px;
    animation: sheetContentIn 200ms ease both;
  }

  .pillar-mobile-card em {
    display: block;
    margin-bottom: 15px;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 16px;
  }

  .pillar-mobile-card p {
    color: rgba(255, 255, 255, 0.86);
    font-size: 13px;
    line-height: 1.65;
  }

  .pillar-mobile-card .pillar-audience {
    margin-block: 22px;
  }

  .pillar-cabinet {
    display: flex;
    min-height: 80vh;
    flex-direction: column;
  }

  .pillar-title-strip {
    display: grid;
    width: 100%;
    min-height: 88px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
  }

  .pillar-title-strip > button,
  .pillar-title-strip > span,
  .pillar-title-strip > strong {
    position: static;
    transform: none;
  }

  .pillar-title-strip > button {
    grid-column: 3;
    grid-row: 1;
  }

  .pillar-title-strip > span {
    grid-column: 1;
    grid-row: 1;
  }

  .pillar-title-strip > strong {
    width: auto;
    grid-column: 2;
    grid-row: 1;
    font-size: 24px;
    text-align: left;
    writing-mode: horizontal-tb;
    transform: none;
    white-space: normal;
  }

  .pillar-tab-strip {
    width: 100%;
    min-height: 0;
    align-items: stretch;
    flex-direction: row;
    gap: 4px;
    overflow-x: auto;
    padding: 0 12px 12px;
  }

  .pillar-tab-strip > button,
  .pillar-tab-strip > button.is-active {
    width: 170px;
    min-width: 170px;
    min-height: 72px;
    flex: 0 0 170px;
    border-radius: 0;
    transform: translateY(6px);
  }

  .pillar-tab-strip > button:hover,
  .pillar-tab-strip > button.is-active {
    transform: translateY(0);
  }

  .pillar-folder-edges {
    display: none;
  }

  .pillar-paper {
    width: calc(100% - 24px);
    min-height: 0;
    margin: 0 12px 12px;
    border-radius: 0;
    padding: 32px 20px;
  }

  .pillar-sheet-summary h3,
  .pillar-programme-sheet h3 {
    font-size: 36px;
  }

  .pillar-overview-programmes > div:last-child,
  .pillar-sheet-journey ol {
    grid-template-columns: 1fr;
  }

  .pillar-programme-topline {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }

  .pillar-sheet-facts > div {
    grid-template-columns: 82px minmax(0, 1fr);
  }

  .pillar-sheet-actions {
    flex-direction: column;
  }

  .pillar-sheet-footer {
    flex-wrap: wrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pillar-panel,
  .pillar-panel-collapsed,
  .pillar-panel-expanded,
  .pillar-tab-strip > button,
  .pillar-sheet-content,
  .pillar-mobile-card > div {
    animation-duration: 1ms !important;
    animation-delay: 0ms !important;
    transition-duration: 1ms !important;
    transition-delay: 0ms !important;
  }
}

/* What We Do hero and closing sections; the pillar accordion styles above are copied from the v3 export. */
.what-we-do-v3-hero { height: min(100vh,920px); min-height: min(100vh,920px); max-height: 920px; padding: 0; background: #4A0E12; }
.what-we-do-v3 { line-height: 1.5; }
.what-we-do-v3-hero::after { display: none; }
.what-we-do-v3-backdrop { position: absolute; inset: 0; overflow: hidden; }
.what-we-do-v3-backdrop img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; animation: srcProgrammeHeroZoom 1.6s ease-out both; }
.what-we-do-v3-gradient { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(74,14,18,.88) 0%,rgba(110,22,28,.70) 30%,rgba(150,35,40,.30) 55%,rgba(150,35,40,0) 75%),linear-gradient(0deg,rgba(74,14,18,.45),transparent 35%); }
.what-we-do-v3-ring { position: absolute; z-index: 1; top: -90px; right: -330px; width: 900px; height: 900px; color: #C1272D; opacity: .35; pointer-events: none; transform: rotate(var(--ring-rotate,0deg)); }
.what-we-do-v3-ring svg { display: block; width: 100%; height: 100%; }
.what-we-do-v3-hero-content { position: relative; z-index: 2; display: flex; width: 100%; max-width: 1200px; height: 100%; align-items: center; margin-inline: auto; padding: 150px 40px 48px; }
.what-we-do-v3-hero-copy { width: 100%; max-width: 760px; transform: translateY(-2px); }
.what-we-do-v3-breadcrumb { margin: 0 0 22px; color: #fff; font-size: 12px; font-weight: 500; }
.what-we-do-v3-breadcrumb a { color: rgba(255,255,255,.9); text-decoration: none; }
.what-we-do-v3-breadcrumb span { padding: 0 7px; }
.what-we-do-v3-eyebrow { margin: 0 0 20px; color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.what-we-do-v3-hero h1 { display: -webkit-box; max-width: 14ch; margin: 0; overflow: hidden; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-shadow: 0 2px 12px rgba(40,8,10,.35); text-wrap: balance; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.what-we-do-v3-hero h1 em { color: #F58220; font-weight: inherit; font-style: italic; }
.what-we-do-v3-intro { display: -webkit-box; max-width: 60ch; margin: 24px 0 0; overflow: hidden; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.what-we-do-v3-delivery { background: #F0EDE8; }
.what-we-do-delivery-inner { display: flex; width: 100%; max-width: 1200px; flex-direction: column; gap: 28px; margin-inline: auto; padding: 40px; }
.what-we-do-delivery-heading { flex: none; }
.what-we-do-delivery-heading p, .what-we-do-partner-inner > div > p { margin: 0; color: #B3262C; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.what-we-do-delivery-heading h2 { margin: 4px 0 0; color: #1F1F1F; font-family: var(--serif); font-size: 24px; font-weight: 700; line-height: 32px; }
.what-we-do-delivery-methods { display: flex; flex: 1; flex-wrap: wrap; gap: 8px; }
.what-we-do-delivery-methods span { border: 1px solid rgba(31,31,31,.10); background: #fff; padding: 8px 16px; color: #1F1F1F; font-size: 10px; font-weight: 700; letter-spacing: .05em; line-height: 1.5; text-transform: uppercase; }
.what-we-do-partner-cta { background: #4A0E12; color: #fff; }
.what-we-do-partner-inner { display: flex; width: 100%; max-width: 1200px; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 32px; margin-inline: auto; padding: 64px 40px; }
.what-we-do-partner-inner > div { max-width: 672px; }
.what-we-do-partner-inner > div > p { margin-bottom: 12px; color: #F58220; line-height: 1.5; }
.what-we-do-partner-inner h2 { margin: 0; color: #fff; font-family: var(--serif); font-size: 30px; font-weight: 700; line-height: 1.25; }
.what-we-do-partner-inner > a { display: inline-flex; min-height: 56px; flex: none; align-items: center; justify-content: center; background: #B3262C; padding: 0 32px; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease; }
.what-we-do-partner-inner > a:hover { background: #F58220; }
.pillar-accordion-desktop[hidden], .pillar-accordion-mobile[hidden],
.pillar-cabinet[hidden], .pillar-sheet-content[hidden] { display: none !important; }
.pillar-sheet-actions a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; border: 1.5px solid var(--pillar-color); padding: 12px 18px; color: var(--pillar-color); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: opacity 180ms ease; }
.pillar-sheet-actions a:first-child { background: var(--pillar-color); color: #fff; }
.pillar-sheet-actions a:hover { opacity: .74; }
.pillar-sheet-footer a { color: inherit; text-decoration: none; }
.pillar-sheet-footer a:hover { color: var(--pillar-color); }
.pillar-sheet-summary .pillar-overview-programmes > div:last-child button { cursor: pointer; }
@media (max-width: 1024px) {
  .what-we-do-v3-hero-content { padding-right: 32px; padding-left: 32px; }
  .what-we-do-delivery-inner, .what-we-do-partner-inner { padding-right: 32px; padding-left: 32px; }
}
@media (min-width: 768px) {
  .what-we-do-partner-inner { flex-direction: row; align-items: center; }
  .what-we-do-partner-inner h2 { font-size: 36px; }
}
@media (max-width: 767px) {
  .what-we-do-v3-hero { height: auto; min-height: 100svh; max-height: 920px; }
  .what-we-do-v3-gradient { background: linear-gradient(180deg,rgba(74,14,18,.35) 0%,rgba(74,14,18,.85) 70%); }
  .what-we-do-v3-ring { top: auto; right: -220px; bottom: -180px; width: 495px; height: 495px; opacity: .25; }
  .pillar-mobile-card p { margin: 0; }
  .what-we-do-v3-hero-content { min-height: 100svh; padding: 120px 20px 36px; }
  .what-we-do-v3-hero h1 { font-size: clamp(40px,10vw,56px); -webkit-line-clamp: 3; }
  .what-we-do-v3-intro { font-size: 16px; }
  .what-we-do-delivery-inner, .what-we-do-partner-inner { padding-right: 20px; padding-left: 20px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .what-we-do-v3-ring { top: -40px; right: -420px; width: 675px; height: 675px; }
}
@media (min-width: 1024px) {
  .what-we-do-delivery-inner { flex-direction: row; align-items: center; }
  .what-we-do-delivery-methods { justify-content: flex-end; }
}

/* Contact page structure follows the exported Contact.tsx and PageHero components. */
.contact-v3 { color: #2B2B2B; font-family: var(--sans); line-height: 1.5; }
.contact-v3-hero { height: min(100vh,920px); min-height: min(100vh,920px); max-height: 920px; padding: 0; background: #4A0E12; }
.contact-v3-hero::after { display: none; }
.contact-v3-backdrop { position: absolute; inset: 0; overflow: hidden; }
.contact-v3-backdrop img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; animation: srcProgrammeHeroZoom 1.6s ease-out both; }
.contact-v3-gradient { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(74,14,18,.88) 0%,rgba(110,22,28,.70) 30%,rgba(150,35,40,.30) 55%,rgba(150,35,40,0) 75%),linear-gradient(0deg,rgba(74,14,18,.45),transparent 35%); }
.contact-v3-ring { --ring-parallax: 0px; position: absolute; z-index: 1; top: -90px; right: -330px; width: 900px; height: 900px; color: #C1272D; opacity: .35; pointer-events: none; transform: translate3d(0,var(--ring-parallax),0) rotate(var(--ring-rotate,0deg)); transform-origin: center; will-change: transform; }
.contact-v3-ring svg { display: block; width: 100%; height: 100%; }
.contact-v3-hero-content { position: relative; z-index: 2; display: flex; width: 100%; max-width: 1200px; height: 100%; align-items: center; margin-inline: auto; padding: 150px 40px 48px; }
.contact-v3-hero-copy { width: 100%; max-width: 760px; transform: translateY(-2px); }
.contact-v3-breadcrumb { margin: 0 0 22px; color: #fff; font-size: 12px; font-weight: 500; }
.contact-v3-breadcrumb a { color: rgba(255,255,255,.9); text-decoration: none; }
.contact-v3-breadcrumb span { padding: 0 7px; }
.contact-v3-eyebrow { margin: 0 0 20px; color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.contact-v3-hero h1 { display: -webkit-box; max-width: 14ch; margin: 0; overflow: hidden; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-shadow: 0 2px 12px rgba(40,8,10,.35); text-wrap: balance; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.contact-v3-hero h1 em { color: #F58220; font-weight: inherit; font-style: italic; }
.contact-v3-intro { display: -webkit-box; max-width: 60ch; margin: 24px 0 0; overflow: hidden; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.contact-v3-main { padding: 64px 0; background: #fff; }
.contact-v3-grid { display: grid; width: 100%; max-width: 1280px; align-items: start; gap: 48px; margin-inline: auto; padding: 0 24px; }
.contact-v3-section-eyebrow { margin: 0 0 20px; color: #B3262C; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.contact-v3-form { display: flex; flex-direction: column; gap: 16px; }
.contact-v3-form input, .contact-v3-form select, .contact-v3-form textarea { display: block; width: 100%; min-width: 0; border: 1px solid #E5E7EB; border-radius: 0; background: #fff; padding: 12px 16px; color: #2B2B2B; font-family: var(--sans); font-size: 14px; line-height: 20px; }
.contact-v3-form input::placeholder, .contact-v3-form textarea::placeholder { color: #D1D5DB; opacity: 1; }
.contact-v3-form input:focus, .contact-v3-form select:focus, .contact-v3-form textarea:focus { border-color: #B3262C; outline: none; }
.contact-v3-name-row { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; }
.contact-v3-select-wrap { position: relative; }
.contact-v3-select-wrap select { height: 72px; appearance: none; border-color: #E2DFD8; padding: 0 56px 0 24px; color: #D1D5DB; }
.contact-v3-select-wrap select:has(option:checked:not([value=""])) { color: #2B2B2B; }
.contact-v3-select-wrap option { color: #2B2B2B; }
.contact-v3-select-wrap svg { position: absolute; top: 50%; right: 24px; width: 16px; height: 16px; fill: none; stroke: #B3262C; pointer-events: none; transform: translateY(-50%); }
.contact-v3-form textarea { height: auto; resize: none; }
.contact-v3-form > button { width: 100%; min-height: 0; margin-top: 6.5px; border: 0; background: #B3262C; padding: 16px 0; color: #fff; font-family: var(--sans); font-size: 10px; font-weight: 700; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; transition: background-color .2s ease; cursor: pointer; }
.contact-v3-form > button:hover { background: #4A0E12; }
.contact-v3-office-list { display: flex; flex-direction: column; gap: 16px; margin-bottom: 40px; }
.contact-v3-office { border-left: 4px solid #9CA3AF; background: #FAF7F2; padding: 20px; }
.contact-v3-office--red { border-left-color: #B3262C; }
.contact-v3-office h3 { margin: 0 0 4px; color: #2B2B2B; font-size: 14px; font-weight: 700; line-height: 20px; }
.contact-v3-office p { margin: 0 0 12px; color: rgba(43,43,43,.55); font-size: 14px; line-height: 20px; }
.contact-v3-office a { color: #B3262C; font-size: 12px; font-weight: 600; line-height: 16px; text-decoration: none; transition: color .2s ease; }
.contact-v3-office a:hover { color: #4A0E12; }
.contact-v3-social .contact-v3-section-eyebrow { margin-bottom: 16px; }
.contact-v3-social-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 40px; }
.contact-v3-social-list a { display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid #F3F4F6; padding: 12px 16px; line-height: 16px; text-decoration: none; transition: border-color .2s ease, background-color .2s ease; }
.contact-v3-social-list a:hover, .contact-v3-social-list a:focus-visible { border-color: rgba(179,38,44,.3); background: #FAF7F2; }
.contact-v3-social-list a span:first-child { color: #2B2B2B; font-size: 12px; font-weight: 700; transition: color .2s ease; }
.contact-v3-social-list a span:last-child { color: rgba(43,43,43,.4); font-size: 12px; }
.contact-v3-social-list a:hover span:first-child, .contact-v3-social-list a:focus-visible span:first-child { color: #B3262C; }
.contact-v3-success { min-height: 210px; border: 1px solid #F3F4F6; padding: 48px 24px; text-align: center; }
.contact-v3-success > div { margin-bottom: 16px; color: #B3262C; font-size: 36px; line-height: 1; }
.contact-v3-success h2 { margin: 0 0 8px; color: #2B2B2B; font-family: var(--serif); font-size: 20px; font-weight: 700; line-height: 1.4; }
.contact-v3-success p { margin: 0; color: rgba(43,43,43,.55); font-size: 14px; line-height: 1.5; }
.contact-v3-error { margin: 0 0 16px; border-left: 3px solid #B3262C; background: #FAF7F2; padding: 12px 16px; color: #4A0E12; font-size: 13px; line-height: 1.5; }
@media (min-width: 640px) { .contact-v3-name-row { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1024px) {
  .contact-v3-main { padding-block: 96px; }
  .contact-v3-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 80px; padding-inline: 40px; }
}
@media (max-width: 1024px) { .contact-v3-hero-content { padding-right: 32px; padding-left: 32px; } }
@media (max-width: 767px) {
  .contact-v3-hero { height: auto; min-height: 100svh; max-height: 920px; }
  .contact-v3-gradient { background: linear-gradient(180deg,rgba(74,14,18,.35) 0%,rgba(74,14,18,.85) 70%); }
  .contact-v3-ring { top: auto; right: -220px; bottom: -180px; width: 495px; height: 495px; opacity: .25; }
  .contact-v3-hero-content { min-height: 100svh; padding: 120px 32px 36px; }
  .contact-v3-hero h1 { font-size: clamp(40px,10vw,56px); -webkit-line-clamp: 3; }
  .contact-v3-intro { font-size: 16px; }
  .contact-v3-grid { gap: 48px; }
}
@media (max-width: 640px) { .contact-v3-hero-content { padding-right: 20px; padding-left: 20px; } }
@media (min-width: 768px) and (max-width: 1023px) { .contact-v3-ring { top: -40px; right: -420px; width: 675px; height: 675px; } }
@media (prefers-reduced-motion: reduce) { .contact-v3-backdrop img { animation-duration: 1ms; } }

/* Leadership directory structure; profile cards and modal use the export's shared component styles above. */
.leadership-v3 { color: #2B2B2B; font-family: var(--sans); line-height: 1.5; }
.leadership-v3-shell { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 40px; }
.team-directory-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.team-directory-card { width: calc(50% - 12px); }
.sticky-subnav { position: sticky; top: 88px; z-index: 40; width: calc(100% - 48px); max-width: 1400px; margin-inline: auto; overflow: hidden; border: 1px solid rgba(31,31,31,.08); border-radius: 24px; background: rgba(250,248,244,.88); box-shadow: 0 8px 24px rgba(74,14,18,.1); backdrop-filter: blur(18px) saturate(140%); transition: border-radius .25s ease; }
.sticky-subnav--docked { border-top-color: rgba(31,31,31,.06); border-radius: 0 0 24px 24px; }
.sticky-subnav-scroll { position: relative; }
.sticky-subnav-scroll::before,.sticky-subnav-scroll::after { position: absolute; top: 0; bottom: 0; z-index: 2; width: 40px; opacity: 0; pointer-events: none; content: ''; transition: opacity .18s ease; }
.sticky-subnav-scroll::before { left: 0; background: linear-gradient(90deg,#FAF8F4,rgba(250,248,244,0)); }
.sticky-subnav-scroll::after { right: 0; background: linear-gradient(270deg,#FAF8F4,rgba(250,248,244,0)); }
.sticky-subnav-scroll--left::before,.sticky-subnav-scroll--right::after { opacity: 1; }
.sticky-subnav-row { display: flex; height: 44px; overflow-x: auto; overflow-y: hidden; }
.sticky-subnav-item { display: flex; flex: 1 0 max-content; min-width: max-content; height: 44px; align-items: center; justify-content: center; padding-inline: 16px; border-bottom: 2px solid transparent; color: #2B2B2B; font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .12em; line-height: 1; text-decoration: none; text-transform: uppercase; transition: color .2s ease,border-color .2s ease; }
.sticky-subnav-item:hover,.sticky-subnav-item--active { border-bottom-color: #B3262C; color: #B3262C; }
#team-sections.sticky-subnav { height: 46px; box-sizing: border-box; border-width: 1px; border-color: rgba(31,31,31,.08); background: rgba(236,233,227,.92); }
#team-sections.sticky-subnav--docked { border-top-color: rgba(31,31,31,.08); }
#team-sections .sticky-subnav-scroll::before { background: linear-gradient(90deg,#ECE9E3,rgba(236,233,227,0)); }
#team-sections .sticky-subnav-scroll::after { background: linear-gradient(270deg,#ECE9E3,rgba(236,233,227,0)); }
.subnav-anchor { scroll-margin-top: 158px; }
.leadership-person-card { position: relative; aspect-ratio: 3 / 4; min-width: 0; overflow: hidden; border-radius: 20px; box-shadow: 0 8px 28px rgba(43,43,43,.08); }
.leadership-person-card--red { background: #B3262C; }
.leadership-person-card--grey { background: #8A8C8F; }
.leadership-person-card--yellow { background: #F2A33A; }
.leadership-portrait-photo { position: absolute; bottom: 0; left: 50%; z-index: 2; width: auto; max-width: 92%; height: 86%; object-fit: contain; transform: translateX(-50%); mask-image: linear-gradient(to bottom,#000 62%,transparent 100%); -webkit-mask-image: linear-gradient(to bottom,#000 62%,transparent 100%); }
.leadership-portrait-bottom { position: absolute; inset: auto 0 0; z-index: 3; height: 35%; pointer-events: none; }
.leadership-portrait-bottom--red { background: linear-gradient(to bottom,rgba(179,38,44,0),#B3262C); }
.leadership-portrait-bottom--grey { background: linear-gradient(to bottom,rgba(138,140,143,0),#8A8C8F); }
.leadership-portrait-bottom--yellow { background: linear-gradient(to bottom,rgba(242,163,58,0),#F2A33A); }
.leadership-card-copy { transition: opacity .2s ease; }
.leadership-card-reveal { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; color: #fff; opacity: 0; transform: translateY(100%); transition: transform .4s ease,opacity .4s ease; }
.leadership-card-reveal--red { background: rgba(179,38,44,.94); }
.leadership-card-reveal--grey { background: rgba(138,140,143,.94); }
.leadership-card-reveal--yellow { background: rgba(242,163,58,.94); }
.leadership-v3-section { padding-block: 80px; scroll-margin-top: 158px; }
.leadership-v3-section--white { background: #fff; }
.leadership-v3-section--cream { background: #FAF7F2; }
.leadership-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 40px; }
.leadership-section-heading-copy { max-width: 672px; }
.leadership-section-formal { margin: 0 0 12px; color: #B3262C; font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.leadership-section-heading h2 { margin: 0; color: #2B2B2B; font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 40px; }
.leadership-section-tagline { margin: 12px 0 0; color: rgba(43,43,43,.6); font-size: 14px; line-height: 20px; }
.leadership-section-illustration { width: 160px; }
.leadership-section-illustration svg { display: block; width: 100%; height: auto; }
.leadership-board-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.leadership-board-card { display: flex; aspect-ratio: 4 / 5; flex-direction: column; justify-content: space-between; border-top: 4px solid #B3262C; background: #FAF7F2; padding: 24px; }
.leadership-board-card > span { color: #B3262C; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.leadership-board-card strong { display: block; color: #2B2B2B; font-family: var(--serif); font-size: 30px; line-height: 36px; }
.leadership-board-card p { margin: 8px 0 0; color: rgba(43,43,43,.5); font-size: 12px; line-height: 16px; }
.leadership-person-pattern,.leadership-portrait-outline { position: absolute; inset: 0; width: 100%; height: 100%; }
.leadership-person-pattern { z-index: 0; }
.leadership-portrait-outline { z-index: 1; pointer-events: none; }
.leadership-person-initials { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; color: #fff; font-family: var(--serif); font-size: 48px; font-weight: 700; }
.leadership-card-copy { position: absolute; right: 0; bottom: 0; left: 0; z-index: 4; padding: 20px; color: #fff; }
.leadership-card-copy h3,.leadership-card-reveal h3 { margin: 0; font-family: var(--serif); font-size: 22px; font-weight: 700; line-height: 1.15; }
.leadership-card-copy p,.leadership-card-reveal-role { margin: 4px 0 0; color: rgba(255,255,255,.85); font-size: 13px; line-height: 1.3; }
.leadership-card-badge { display: inline-flex; max-width: 100%; margin-top: 12px; border-radius: 999px; background: rgba(255,255,255,.15); padding: 4px 12px; color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(4px); }
.leadership-card-reveal-bio { display: -webkit-box; overflow: hidden; margin: 20px 0 0; color: rgba(255,255,255,.85); font-size: 12px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.leadership-card-reveal-actions { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.leadership-card-reveal-actions button { width: fit-content; border: 0; border-bottom: 1px solid #fff; background: transparent; padding: 0 0 4px; color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.leadership-card-reveal-actions a { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: #fff; transition: background-color .2s ease,color .2s ease; }
.leadership-card-reveal-actions a:hover,.leadership-card-reveal-actions a:focus-visible { background: #fff; color: #B3262C; }
.leadership-card-reveal-actions svg { width: 16px; height: 16px; fill: currentColor; }
.leadership-featured-content { display: flex; flex-direction: column; justify-content: center; background: #B3262C; padding: 32px; color: #fff; }
.leadership-featured { display: grid; min-height: 420px; grid-template-columns: 40% 60%; overflow: hidden; border-radius: 20px; background: #B3262C; }
.leadership-featured-portrait { position: relative; min-height: 420px; overflow: hidden; background: #B3262C; }
.leadership-featured-role { color: rgba(255,255,255,.65); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.leadership-featured-content h3 { margin: 12px 0 0; color: #fff; font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 40px; }
.leadership-featured-bio { display: grid; gap: 16px; max-width: 672px; margin-top: 20px; }
.leadership-featured-bio p { margin: 0; color: rgba(255,255,255,.85); font-size: 14px; line-height: 1.625; }
.leadership-featured-link { display: inline-flex; width: fit-content; align-items: center; gap: 12px; margin-top: 28px; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.leadership-featured-link span { display: inline-grid; width: 20px; height: 20px; place-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 2px; font-family: Arial,sans-serif; font-size: 12px; font-weight: 700; text-transform: none; }
.leadership-featured-link svg { display: block; width: 16px; height: 16px; fill: currentColor; }
.round-table-row { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 20px; margin-top: 24px; }
.round-table-row .leadership-person-card { width: 100%; aspect-ratio: 2 / 3; }
.round-table-row .leadership-card-copy { padding: 20px; }
.round-table-row .leadership-card-copy h3 { font-size: 18px; }
.round-table-row .leadership-card-copy p { font-size: 12px; }
.brainstorm-team-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,1fr)); gap: 24px; }
.leadership-programmes-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 32px; border-top: 1px solid rgba(43,43,43,.1); padding-top: 32px; }
.leadership-programmes-toolbar h3 { margin: 0; color: #2B2B2B; font-family: var(--serif); font-size: 24px; font-weight: 700; line-height: 32px; }
.leadership-county-filter-shell { width: min(100%,860px); min-width: 0; }
.leadership-county-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; overflow: visible; }
.leadership-county-filters.hide-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.leadership-county-filters.hide-scrollbar::-webkit-scrollbar { display: none; }
.leadership-county-scroll-hint { display: none; }
.leadership-county-filter { flex: none; border: 0; border-radius: 999px; background: #FAF7F2; padding: 8px 16px; color: rgba(43,43,43,.6); font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; transition: color .2s ease,background-color .2s ease; cursor: pointer; }
.leadership-county-filter:hover { color: #B3262C; }
.leadership-county-filter.is-active { background: #B3262C; color: #fff; }
.leadership-county-filter:focus-visible { outline: .625px auto rgb(0,95,204); outline-offset: 0; }
.brainstorm-team-card[hidden] { display: none; }
.leadership-v3-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 40px; }
.leadership-v3-hero .contact-v3-hero-copy { transform: none; }
.leadership-v3-hero .contact-v3-breadcrumb { margin-bottom: 20px; line-height: 16px; }
.leadership-v3-hero-primary { display: inline-flex; min-height: 0; align-items: center; justify-content: center; background: #B3262C; padding: 16px 32px; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease,color .2s ease; }
.leadership-v3-hero-primary:hover { background: #fff; color: #2B2B2B; }
.leadership-v3-hero-secondary { color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: color .2s ease; }
.leadership-v3-hero-secondary:hover { color: #F58220; }
.leadership-v3-hero-actions a:focus-visible,.leadership-v3-cta a:focus-visible,.leadership-v3 .sticky-subnav-item:focus-visible { outline: 3px solid #F58220; outline-offset: 4px; }
.leadership-v3-cta { background: #F58220; padding: 64px 0; }
.leadership-v3-cta-inner { display: flex; width: 100%; max-width: 1200px; align-items: center; justify-content: space-between; gap: 28px; margin-inline: auto; padding-inline: 40px; }
.leadership-v3-cta h2 { margin: 0; color: #2B2B2B; font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 40px; }
.leadership-v3-cta a { display: inline-flex; min-height: 0; flex: none; align-items: center; justify-content: center; background: #B3262C; padding: 16px 28px; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease; }
.leadership-v3-cta a:hover { background: #4A0E12; }
.leadership-bio-modal-backdrop { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; background: rgba(74,14,18,.75); padding: 16px; }
.leadership-bio-modal-shell { display: grid; width: min(1100px,92vw); height: min(640px,86vh); overflow: hidden; grid-template-columns: 40% 60%; background: #fff; box-shadow: 0 28px 80px rgba(43,43,43,.32); }
.leadership-bio-modal-photo-panel { position: relative; height: 100%; overflow: hidden; }
.leadership-bio-modal-photo { position: absolute; bottom: 0; left: 50%; z-index: 2; width: auto; max-width: 94%; height: 88%; object-fit: contain; object-position: bottom center; transform: translateX(-50%); }
.leadership-bio-modal-content { display: flex; min-width: 0; min-height: 0; flex-direction: column; background: #fff; }
.leadership-bio-modal-header { display: flex; flex: none; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 38px 40px 24px; }
.leadership-bio-modal-scroll-wrap { position: relative; min-height: 0; flex: 1; }
.leadership-bio-modal-scroll-wrap::after { position: absolute; right: 16px; bottom: 0; left: 40px; height: 38px; background: linear-gradient(to bottom,rgba(255,255,255,0),#fff); content: ''; pointer-events: none; }
.leadership-bio-modal-scroll { height: 100%; overflow-y: auto; padding: 4px 12px 38px 40px; scrollbar-color: #B3262C transparent; scrollbar-width: thin; }
.leadership-bio-modal-scroll::-webkit-scrollbar { width: 4px; }
.leadership-bio-modal-scroll::-webkit-scrollbar-track { background: transparent; }
.leadership-bio-modal-scroll::-webkit-scrollbar-thumb { background: #B3262C; }
.leadership-bio-modal-footer { display: flex; min-height: 84px; flex: none; align-items: center; border-top: 1px solid rgba(43,43,43,.08); padding: 16px 40px 20px; }
.leadership-bio-modal-close { display: flex; width: 40px; height: 40px; flex: none; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: #4A0E12; color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.leadership-modal-role { color: #B3262C; font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 15px; text-transform: uppercase; }
.leadership-bio-modal-header h2 { margin: 12px 0 0; color: #2B2B2B; font-family: var(--serif); font-size: 44px; font-weight: 700; line-height: 1; }
.leadership-modal-initials { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; color: #fff; font-family: var(--serif); font-size: 72px; font-weight: 700; }
.leadership-modal-bio-copy { display: grid; gap: 16px; }
.leadership-modal-bio-copy p { margin: 0; color: rgba(43,43,43,.7); font-size: 14px; line-height: 1.7; }
.leadership-bio-modal-link { display: inline-flex; align-items: center; gap: 12px; background: #B3262C; padding: 12px 20px; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.leadership-bio-modal-link svg { width: 16px; height: 16px; fill: currentColor; }
@media (min-width: 640px) { .leadership-section-illustration { display: block; } }
@media (min-width: 768px) { .leadership-section-heading h2 { font-size: 48px; line-height: 1; } }
@media (min-width: 768px) { .team-directory-card { width: calc(33.333% - 16px); } }
@media (min-width: 1280px) { .team-directory-card { width: calc(25% - 18px); } }
@media (min-width: 768px) { .leadership-v3-cta h2 { font-size: 48px; line-height: 48px; } }
@media (min-width: 1024px) {
  .leadership-v3-section { padding-block: 112px; }
  .leadership-section-illustration { width: 220px; }
  .leadership-board-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .leadership-featured-content { padding: 48px; }
  .leadership-featured-content h3 { font-size: 48px; line-height: 48px; }
  .leadership-programmes-toolbar { gap: 20px; padding-top: 31.668px; }
  .leadership-programmes-toolbar h3 { flex: 0 0 257px; width: 257px; }
  .leadership-county-filter-shell { flex: 1 1 860px; width: min(100%,860px); min-width: 0; }
  .leadership-county-filters { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; overflow-y: hidden; }
  .leadership-v3-cta { padding-block: 80px; }
}
@media (max-width: 1023px) {
  .leadership-programmes-toolbar { align-items: flex-start; flex-direction: column; gap: 20px; }
}
@media (max-width: 1024px) { .leadership-v3-shell,.leadership-v3-cta-inner { padding-inline: 32px; } }
@media (max-width: 767px) {
  .leadership-bio-modal-backdrop { padding: 0; }
  .leadership-bio-modal-shell { width: 100vw; height: 100dvh; grid-template-columns: 1fr; grid-template-rows: 40vh minmax(0,1fr); }
  .leadership-bio-modal-photo-panel { height: 40vh; }
  .leadership-bio-modal-header { padding: 24px 20px 18px; }
  .leadership-bio-modal-header h2 { font-size: 34px; }
  .leadership-bio-modal-scroll-wrap::after { right: 8px; left: 20px; }
  .leadership-bio-modal-scroll { padding: 4px 8px 38px 20px; }
  .leadership-bio-modal-footer { min-height: 76px; padding: 14px 20px 18px; }
  .leadership-section-heading { align-items: flex-start; gap: 20px; }
  .leadership-section-heading h2 { font-size: 36px; }
  .leadership-section-illustration { display: none; }
  .leadership-board-grid { gap: 20px; }
  .leadership-board-card { padding: 24px; }
  .leadership-featured { grid-template-columns: 1fr; }
  .leadership-featured-portrait { min-height: 0; aspect-ratio: 3 / 4; }
  .leadership-featured-content { padding: 32px; }
  .leadership-featured-content h3 { font-size: 36px; line-height: 40px; }
  .round-table-row { grid-template-columns: 1fr; }
  .leadership-programmes-toolbar { padding-top: 32px; }
  .leadership-county-filter-shell { width: 100%; }
  .leadership-county-filters { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; padding-right: 0; }
  .leadership-county-scroll-hint { display: none; }
  .leadership-v3-hero-actions { align-items: stretch; flex-direction: column; gap: 16px; }
  .leadership-v3-hero-primary { width: 100%; }
  .leadership-v3-hero-secondary { padding: 0; }
  .leadership-v3-cta-inner { align-items: flex-start; flex-direction: column; gap: 28px; }
  .leadership-v3-cta h2 { font-size: 36px; line-height: 40px; }
  .leadership-v3-cta a { width: fit-content; min-height: 0; line-height: 15px; }
}
@media (max-width: 640px) { .leadership-v3-shell,.leadership-v3-cta-inner { padding-inline: 20px; } }
@media (prefers-reduced-motion: reduce) { .leadership-v3 * { scroll-behavior: auto; } }

/* SRC v3 Pool of Experts */
.src-experts-v3 { background: #fff; }
.page-hero.src-experts-v3-hero { padding: 0; }
.src-experts-v3-hero .src-v3-programmes-hero-content { padding-top: 150px; padding-bottom: 48px; }
.src-experts-v3-hero .src-v3-programmes-hero-copy { max-width: 760px; }
.src-experts-v3-hero .eyebrow { margin-bottom: 20px; color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.src-experts-v3-hero h1 { max-width: 14ch; margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-wrap: balance; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-experts-v3-hero .lede { display: -webkit-box; max-width: 560px; margin: 24px 0 0; overflow: hidden; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.src-experts-v3-ring { display: block; border: 0; opacity: .35; transform: rotate(var(--ring-rotate)); }
.src-experts-v3-ring::after { display: none; }
.src-experts-v3-ring svg { width: 100%; height: 100%; overflow: visible; color: #c1272d; }
.src-experts-v3-ring circle { stroke: currentColor; }
.src-experts-v3-filters { position: sticky; z-index: 40; top: 88px; width: calc(100% - 48px); max-width: 1400px; margin: 0 auto; overflow: hidden; border: 1px solid rgba(31,31,31,.08); border-radius: 24px; background: rgba(250,248,244,.88); box-shadow: 0 8px 24px rgba(74,14,18,.1); backdrop-filter: blur(18px) saturate(140%); transition: border-radius 250ms ease; }
.src-experts-v3-filters.is-docked { border-top-color: rgba(31,31,31,.06); border-radius: 0 0 24px 24px; }
.admin-bar .src-experts-v3-filters { top: 120px; }
.src-experts-v3-filter-scroll { position: relative; }
.src-experts-v3-filter-scroll::before,.src-experts-v3-filter-scroll::after { position: absolute; z-index: 2; top: 0; bottom: 0; width: 40px; opacity: 0; pointer-events: none; content: ''; transition: opacity 180ms ease; }
.src-experts-v3-filter-scroll::before { left: 0; background: linear-gradient(90deg,#faf8f4,rgba(250,248,244,0)); }
.src-experts-v3-filter-scroll::after { right: 0; background: linear-gradient(270deg,#faf8f4,rgba(250,248,244,0)); }
.src-experts-v3-filters.has-scroll-left .src-experts-v3-filter-scroll::before,.src-experts-v3-filters.has-scroll-right .src-experts-v3-filter-scroll::after { opacity: 1; }
.src-experts-v3-filter-row { display: flex; height: 44px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.src-experts-v3-filter-row::-webkit-scrollbar { display: none; }
.src-experts-v3-filter { display: flex; flex: 1 0 max-content; min-width: max-content; height: 44px; align-items: center; justify-content: center; padding: 0 16px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #2b2b2b; font-family: Montserrat,system-ui,sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .12em; line-height: 1; text-transform: uppercase; transition: color 200ms ease,border-color 200ms ease; white-space: nowrap; cursor: pointer; }
.src-experts-v3-filter:hover,.src-experts-v3-filter.is-active { border-bottom-color: #b3262c; color: #b3262c; }
.src-experts-v3-list { padding: 80px 0 80px; background: #fff; }
.src-experts-v3-shell { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.src-experts-v3-category { margin: 0 0 40px; }
.src-experts-v3-category:last-child,.src-experts-v3-category.is-last-visible { margin-bottom: 0; }
.src-experts-v3-category[hidden] { display: none !important; }
.src-experts-v3-category-heading { display: flex; min-height: 0; align-items: center; gap: 16px; margin-bottom: 24px; }
.src-experts-v3-category-dot { width: 12px; height: 12px; flex: 0 0 12px; border-radius: 50%; background: #b3262c; }
.src-experts-v3-category--orange .src-experts-v3-category-dot { background: #f58220; }
.src-experts-v3-category--blue .src-experts-v3-category-dot { background: #2563eb; }
.src-experts-v3-category--green .src-experts-v3-category-dot { background: #059669; }
.src-experts-v3-category-heading h2 { margin: 0; color: #b3262c; font-family: var(--serif); font-size: 24px; font-weight: 700; line-height: 1.333333; }
.src-experts-v3-category--orange .src-experts-v3-category-heading h2 { color: #f58220; }
.src-experts-v3-category--blue .src-experts-v3-category-heading h2 { color: #1d4ed8; }
.src-experts-v3-category--green .src-experts-v3-category-heading h2 { color: #047857; }
.src-experts-v3-category-rule { height: 1px; flex: 1 1 auto; background: #e5e7eb; }
.src-experts-v3-count { color: rgba(43,43,43,.35); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.src-experts-v3-accordion { display: grid; gap: 8px; }
.src-experts-v3-item { overflow: hidden; border: 1px solid #f3f4f6; background: #fff; transition: border-color 180ms ease; }
.src-experts-v3-item:hover,.src-experts-v3-item[open] { border-color: #e5e7eb; }
.src-experts-v3-item summary { display: flex; min-height: 52px; align-items: center; gap: 16px; padding: 16px 20px; cursor: pointer; list-style: none; text-align: left; }
.src-experts-v3-item summary::-webkit-details-marker { display: none; }
.src-experts-v3-item summary::marker { content: ''; }
.src-experts-v3-item-category { flex: 0 0 auto; color: #b3262c; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.src-experts-v3-category--orange .src-experts-v3-item-category { color: #f58220; }
.src-experts-v3-category--blue .src-experts-v3-item-category { color: #1d4ed8; }
.src-experts-v3-category--green .src-experts-v3-item-category { color: #047857; }
.src-experts-v3-item-title { color: #252525; font-size: 14px; font-weight: 600; }
.src-experts-v3-plus { margin-left: auto; color: #b3262c; font-size: 18px; font-weight: 400; line-height: 1; transition: transform 200ms ease; }
.src-experts-v3-item[open] .src-experts-v3-plus { transform: rotate(45deg); }
.src-experts-v3-item-body { margin: 0 20px; padding: 12px 0 20px; border-top: 1px solid #f3f4f6; }
.src-experts-v3-item-body p { margin: 0; color: rgba(43,43,43,.62); font-size: 14px; line-height: 1.625; }
.src-experts-v3-item-body a { display: inline-block; margin-top: 16px; border-bottom: 1px solid #b3262c; padding-bottom: 2px; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: color 180ms ease,border-color 180ms ease; }
.src-experts-v3-item-body a:hover { border-color: #f58220; color: #f58220; }
.src-experts-v3-item-body a:focus-visible,.src-experts-v3-cta a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.src-experts-v3-empty { margin: 0; color: rgba(43,43,43,.6); font-size: 14px; }
.src-experts-v3-cta { padding: 64px 0; background: #b3262c; color: #fff; text-align: center; }
.src-experts-v3-cta > p:first-child { margin: 0 0 16px; color: rgba(255,255,255,.6); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.src-experts-v3-cta h2 { max-width: 760px; margin: 0 auto 16px; color: #fff; font-family: var(--serif); font-size: 30px; font-weight: 700; line-height: 1.2; }
.src-experts-v3-cta-copy { max-width: 448px; margin: 0 auto 32px; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.6; }
.src-experts-v3-cta > a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 32px; background: #fff; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: background 180ms ease,color 180ms ease; }
.src-experts-v3-cta > a:hover { background: #4a0e12; color: #fff; }
@media (max-width: 767px) {
  .src-experts-v3-hero .src-v3-programmes-hero-content { padding: 120px 20px 36px; }
  .src-experts-v3-hero .lede { font-size: 16px; }
  .src-experts-v3-shell { padding: 0 24px; }
  .src-experts-v3-list { padding: 64px 0; }
  .src-experts-v3-category { margin-bottom: 40px; }
  .src-experts-v3-hero .src-experts-v3-ring { width: 495px; height: 495px; opacity: .25; }
  .src-experts-v3-category-heading { gap: 16px; margin-bottom: 24px; }
  .src-experts-v3-category-heading h2 { font-size: 20px; line-height: 1.4; }
  .src-experts-v3-count { font-size: 10px; letter-spacing: .1em; }
  .src-experts-v3-item summary { min-height: 52px; gap: 16px; padding: 16px 20px; }
  .src-experts-v3-item-body { margin-inline: 20px; }
  .src-experts-v3-cta { padding: 64px 0; }
}
@media (prefers-reduced-motion: reduce) {
  .src-experts-v3 *, .src-experts-v3-filters, .src-experts-v3-filter { scroll-behavior: auto; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* SRC v3 Get Involved */
.page-hero.src-involvement-v3-hero { padding: 0; }
.page-hero.src-v3-programmes-hero.src-involvement-v3-hero .src-v3-programmes-hero-content { padding-top: 180px; padding-bottom: 48px; }
.src-involvement-v3-hero .src-v3-programmes-hero-copy { max-width: 760px; }
.src-involvement-v3-hero .eyebrow { margin-bottom: 20px; color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.src-involvement-v3-hero h1 { max-width: 14ch; margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-wrap: balance; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-involvement-v3-hero .lede { max-width: 60ch; margin: 24px 0 0; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-involvement-v3-tabs { border-bottom: 1px solid #e5e7eb; background: #f0ede8; }
.src-involvement-v3-tab-shell { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.src-involvement-v3-tab-row { display: flex; width: 100%; margin: 0 auto; overflow-x: auto; }
.src-involvement-v3-tab { min-width: 160px; padding: 20px 24px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: rgba(43,43,43,.6); text-align: left; cursor: pointer; transition: all 150ms cubic-bezier(.4,0,.2,1); }
.src-involvement-v3-tab:hover { border-bottom-color: #d1d5db; }
.src-involvement-v3-tab.is-active { border-bottom-color: #b3262c; color: #b3262c; }
.src-involvement-v3-tab > span { display: block; margin-bottom: 2px; font-family: var(--serif); font-size: 14px; font-weight: 700; line-height: 20px; }
.src-involvement-v3-tab > small { display: block; color: rgba(43,43,43,.35); font-size: 9px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.src-involvement-v3-content { padding: 64px 0; background: var(--involvement-background,#b3262c); color: #fff; }
.src-involvement-v3-shell { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.src-involvement-v3-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 80px; }
.src-involvement-v3-panel[hidden] { display: none !important; }
.src-involvement-v3-subtitle,.src-involvement-v3-form-eyebrow { margin: 0 0 16px; color: rgba(255,255,255,.6); font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 15px; text-transform: uppercase; }
.src-involvement-v3-form-eyebrow { margin-bottom: 12px; }
.src-involvement-v3-panel h2 { margin: 0 0 24px; color: #fff; font-family: var(--serif); font-size: 48px; font-weight: 700; line-height: 1.25; }
.src-involvement-v3-description { margin: 0 0 32px; color: rgba(255,255,255,.7); font-size: 16px; line-height: 1.625; }
.src-involvement-v3-panel ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.src-involvement-v3-panel li { display: flex; align-items: flex-start; gap: 12px; color: rgba(255,255,255,.75); font-size: 14px; line-height: 20px; }
.src-involvement-v3-panel li > span { display: flex; width: 16px; height: 16px; flex: 0 0 16px; align-items: center; justify-content: center; margin-top: 2px; }
.src-involvement-v3-panel li i { display: block; width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.6); }
.src-involvement-v3-form-column h3 { margin: 0 0 4px; color: #fff; font-family: var(--serif); font-size: 24px; font-weight: 700; line-height: 32px; }
.src-involvement-v3-form-intro { margin: 0 0 4px; color: rgba(255,255,255,.55); font-size: 14px; line-height: 20px; }
.src-involvement-v3-form { display: grid; gap: 12px; margin-top: 20px; }
.src-involvement-v3-name-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.src-involvement-v3-form input,.src-involvement-v3-form textarea { width: 100%; min-width: 0; padding: 12px 16px; border: 1px solid rgba(255,255,255,.2); border-radius: 0; background: rgba(255,255,255,.1); color: #fff; font-family: inherit; font-size: 14px; line-height: 20px; }
.src-involvement-v3-form textarea { min-height: 86px; resize: vertical; }
.src-involvement-v3-form input::placeholder,.src-involvement-v3-form textarea::placeholder { color: rgba(255,255,255,.4); opacity: 1; }
.src-involvement-v3-form input:focus,.src-involvement-v3-form textarea:focus { border-color: rgba(255,255,255,.65); outline: 0; }
.src-involvement-v3-form input:focus-visible,.src-involvement-v3-form textarea:focus-visible { box-shadow: 0 0 0 2px rgba(255,255,255,.2); }
.src-involvement-v3-form button { width: 100%; margin-top: 6.5px; padding: 14px 16px; border: 0; background: #fff; color: var(--involvement-accent,#b3262c); font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 15px; text-transform: uppercase; cursor: pointer; transition: background-color 180ms ease,color 180ms ease; }
.src-involvement-v3-form button:hover { background: rgba(255,255,255,.9); }
.src-involvement-v3-form button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.src-involvement-v3-success { display: flex; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; padding: 32px 0; text-align: center; }
.src-involvement-v3-success span { margin-bottom: 8px; font-size: 24px; }
.src-involvement-v3-success p { margin: 0; color: rgba(255,255,255,.8); font-size: 14px; font-weight: 600; }
.src-involvement-v3-error { margin: 16px 0 0; color: #fff; font-size: 13px; line-height: 1.5; }
@media (max-width: 1023px) {
  .src-involvement-v3-grid { grid-template-columns: 1fr; gap: 48px; }
  .src-involvement-v3-content { padding: 64px 0; }
  .src-involvement-v3-tab-shell,.src-involvement-v3-shell { padding-right: 24px; padding-left: 24px; }
  .src-involvement-v3-panel h2 { font-size: 36px; }
}
@media (min-width: 1024px) {
  .src-involvement-v3-content { padding: 96px 0; }
}
@media (max-width: 767px) {
  .page-hero.src-v3-programmes-hero.src-involvement-v3-hero .src-v3-programmes-hero-content { padding: 120px 20px 36px; }
}
@media (max-width: 639px) {
  .src-involvement-v3-name-row { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .src-involvement-v3 * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* SRC v3 Careers */
.page-hero.src-careers-v3-hero { padding: 0; }
.src-careers-v3-hero .src-v3-programmes-hero-content { padding-top: 150px; padding-bottom: 48px; }
.src-careers-v3-hero .src-v3-programmes-hero-copy { max-width: 760px; }
.src-careers-v3-hero .eyebrow { margin-bottom: 20px; color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.src-careers-v3-hero h1 { max-width: 14ch; margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-wrap: balance; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-careers-v3-hero h1 em { color: #f58220; font-style: italic; }
.src-careers-v3-hero .lede { max-width: 60ch; margin: 24px 0 0; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-careers-v3-openings { padding: 64px 0; background: #fff; }
.src-careers-v3-shell { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.src-careers-v3-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.src-careers-v3-heading > div > p { margin: 0 0 8px; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-careers-v3-heading h2 { margin: 0; color: #2b2b2b; font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 1.2; }
.src-careers-v3-heading > span { color: rgba(43,43,43,.35); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.src-careers-v3-list { display: grid; gap: 16px; }
.src-careers-v3-card { border: 1px solid #f3f4f6; background: #fff; }
.src-careers-v3-card-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 24px; }
.src-careers-v3-card-copy { min-width: 0; }
.src-careers-v3-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 4px; }
.src-careers-v3-title-row h3 { margin: 0; color: #2b2b2b; font-family: var(--serif); font-size: 16px; font-weight: 700; line-height: 1.35; }
.src-careers-v3-title-row > span { padding: 2px 8px; background: #faf7f2; color: rgba(43,43,43,.6); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-careers-v3-meta { display: flex; flex-wrap: wrap; gap: 16px; color: rgba(43,43,43,.45); font-size: 10px; font-weight: 600; letter-spacing: .04em; }
.src-careers-v3-meta span::before { margin-right: 6px; color: rgba(43,43,43,.35); content: '●'; font-size: 7px; }
.src-careers-v3-card-head > button { flex: 0 0 auto; padding: 10px 20px; background: #b3262c; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: background-color 180ms ease; }
.src-careers-v3-card-head > button:hover { background: #4a0e12; }
.src-careers-v3-card-head > button:focus-visible { outline: 2px solid #b3262c; outline-offset: 3px; }
.src-careers-v3-details { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 40px; padding: 24px; border-top: 1px solid #f3f4f6; }
.src-careers-v3-details[hidden] { display: none !important; }
.src-careers-v3-detail-copy > p:first-child { margin: 0 0 20px; color: rgba(43,43,43,.65); font-size: 14px; line-height: 1.65; }
.src-careers-v3-requirements-label { margin: 0 0 12px; color: rgba(43,43,43,.35); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-careers-v3-detail-copy ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.src-careers-v3-detail-copy li { display: flex; align-items: flex-start; gap: 12px; color: rgba(43,43,43,.6); font-size: 14px; line-height: 1.5; }
.src-careers-v3-detail-copy li span { width: 6px; height: 6px; flex: 0 0 6px; margin-top: 7px; border-radius: 50%; background: #b3262c; }
.src-careers-v3-form { display: grid; gap: 12px; }
.src-careers-v3-form > p { margin: 0 0 4px; color: rgba(43,43,43,.35); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-careers-v3-form input,.src-careers-v3-form textarea { width: 100%; min-width: 0; padding: 12px 16px; border: 1px solid #e5e7eb; border-radius: 0; background: #fff; color: #2b2b2b; font-family: inherit; font-size: 14px; line-height: 1.5; }
.src-careers-v3-form textarea { min-height: 112px; resize: vertical; }
.src-careers-v3-form input::placeholder,.src-careers-v3-form textarea::placeholder { color: rgba(43,43,43,.45); opacity: 1; }
.src-careers-v3-form input:focus,.src-careers-v3-form textarea:focus { border-color: #b3262c; outline: 0; }
.src-careers-v3-form input:focus-visible,.src-careers-v3-form textarea:focus-visible { box-shadow: 0 0 0 2px rgba(179,38,44,.15); }
.src-careers-v3-cv-dropzone { position:relative; display:flex; min-height:112px; flex-direction:column; align-items:center; justify-content:center; gap:7px; overflow:hidden; padding:18px 20px; border:1px dashed rgba(179,38,44,.4); border-radius:12px; background:linear-gradient(135deg,rgba(179,38,44,.035),rgba(245,130,32,.045)); color:#4a0e12; text-align:center; cursor:pointer; transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease; }
.src-careers-v3-cv-dropzone:hover,.src-careers-v3-cv-dropzone.is-dragging { border-color:#b3262c; background:rgba(179,38,44,.08); box-shadow:0 8px 24px rgba(74,14,18,.08); }
.src-careers-v3-cv-dropzone.is-dragging { transform:scale(1.01); }
.src-careers-v3-cv-dropzone:focus-within { outline:3px solid rgba(179,38,44,.2); outline-offset:2px; }
.src-careers-v3-cv-dropzone input[type="file"] { position:absolute; z-index:2; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.src-careers-v3-cv-icon { display:grid; width:30px; height:30px; place-items:center; border:1px solid rgba(179,38,44,.2); border-radius:50%; background:#fff; color:#b3262c; font-size:19px; font-weight:600; line-height:1; }
.src-careers-v3-cv-title { max-width:100%; overflow:hidden; color:#4a0e12; font-size:13px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.src-careers-v3-cv-help { color:rgba(43,43,43,.56); font-size:10px; line-height:1.5; }
.src-careers-v3-cv-dropzone.has-file { border-style:solid; border-color:#1d8a52; background:#f3faf5; }
.src-careers-v3-cv-dropzone.has-file .src-careers-v3-cv-icon { border-color:rgba(29,138,82,.22); color:#1d8a52; }
.src-careers-v3-form > button { width: 100%; padding: 14px 16px; background: #b3262c; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: background-color 180ms ease; }
.src-careers-v3-form > button:hover { background: #4a0e12; }
.src-careers-v3-form > button:focus-visible { outline: 2px solid #b3262c; outline-offset: 3px; }
.src-careers-v3-success { padding: 32px 0; text-align: center; }
.src-careers-v3-success > span { display: block; margin-bottom: 12px; color: #b3262c; font-size: 30px; }
.src-careers-v3-success p { margin: 0; color: rgba(43,43,43,.55); font-size: 14px; line-height: 1.55; }
.src-careers-v3-success .src-careers-v3-success-heading { margin-bottom: 4px; color: #2b2b2b; font-weight: 600; }
.src-careers-v3-error { margin: 0 0 4px; color: #b3262c; font-size: 13px; line-height: 1.5; }
.src-careers-v3-empty { margin: 0; color: rgba(43,43,43,.6); font-size: 14px; }
.src-careers-v3-eoe { padding: 64px 0; background: #4a0e12; }
.src-careers-v3-eoe-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 48px; }
.src-careers-v3-eoe-eyebrow { margin: 0 0 16px; color: #f58220; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-careers-v3-eoe h2 { margin: 0 0 16px; color: #fff; font-family: var(--serif); font-size: 30px; font-weight: 700; line-height: 1.25; }
.src-careers-v3-eoe-copy { margin: 0; color: rgba(255,255,255,.55); font-size: 14px; line-height: 1.65; }
.src-careers-v3-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.src-careers-v3-stats > div { padding: 16px; background: rgba(255,255,255,.05); text-align: center; }
.src-careers-v3-stats strong { display: block; margin-bottom: 4px; color: #fff; font-family: var(--serif); font-size: 30px; font-weight: 900; line-height: 1.2; }
.src-careers-v3-stats span { display: block; color: rgba(255,255,255,.4); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
@media (max-width: 1023px) {
  .src-careers-v3-details,.src-careers-v3-eoe-grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 767px) {
  .src-careers-v3-hero .src-v3-programmes-hero-content { padding: 120px 20px 36px; }
  .src-careers-v3-shell { padding: 0 24px; }
  .src-careers-v3-openings,.src-careers-v3-eoe { padding: 56px 0; }
  .src-careers-v3-heading { align-items: flex-start; margin-bottom: 32px; }
  .src-careers-v3-heading h2 { font-size: 30px; }
  .src-careers-v3-heading > span { padding-top: 22px; font-size: 8px; }
  .src-careers-v3-card-head { align-items: flex-start; flex-direction: column; gap: 16px; padding: 20px; }
  .src-careers-v3-card-head > button { width: 100%; }
  .src-careers-v3-details { padding: 20px; }
  .src-careers-v3-stats { gap: 8px; }
  .src-careers-v3-stats > div { padding: 12px 8px; }
  .src-careers-v3-stats strong { font-size: 26px; }
  .src-careers-v3-stats span { font-size: 8px; letter-spacing: .08em; }
}
@media (min-width: 640px) and (max-width: 767px) {
  .src-careers-v3-card-head { align-items: center; flex-direction: row; }
  .src-careers-v3-card-head > button { width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .src-careers-v3 * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* SRC v3 programme detail pages */
.src-v3-programme-detail { background: #faf7f2; }
.src-v3-programme-detail-hero .src-v3-programmes-hero-content { padding-top: 150px; padding-bottom: 48px; }
.src-v3-programme-detail-hero .src-v3-programmes-hero-copy { max-width: 760px; }
.src-v3-detail-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 20px; }
.src-v3-detail-status { display: inline-flex; align-items: center; padding: 4px 12px; color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-detail-status--green { background: #059669; }
.src-v3-detail-status--amber { background: #f58220; color: #2b2b2b; }
.src-v3-detail-status--red { background: #b3262c; }
.src-v3-detail-theme { color: #f0954a; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.src-v3-programme-detail-hero h1 { max-width: 14ch; margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(40px,5.2vw,84px); font-weight: 700; line-height: 1.02; text-wrap: balance; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-v3-programme-detail-hero .page-hero-subtitle { max-width: 60ch; margin: 16px 0 0; color: rgba(255,255,255,.85); font-size: 18px; line-height: 1.5; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-v3-programme-detail-hero .page-hero-intro { max-width: 60ch; margin: 24px 0 0; color: #fff; font-size: 18px; line-height: 1.6; text-shadow: 0 2px 12px rgba(40,8,10,.35); }
.src-v3-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 40px; }
.src-v3-detail-primary { display: inline-flex; min-height: 56px; align-items: center; justify-content: center; padding: 0 32px; border: 0; background: #b3262c; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: background-color 180ms ease,color 180ms ease; cursor: pointer; }
.src-v3-detail-primary:hover { background: #fff; color: #2b2b2b; }
.src-v3-detail-primary:focus-visible,.src-v3-detail-secondary:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.src-v3-detail-secondary { display: inline-flex; align-items: center; gap: 12px; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: color 180ms ease; }
.src-v3-detail-secondary span { font-size: 20px; }
.src-v3-detail-secondary:hover { color: #f58220; }
.src-v3-programme-shell { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 40px; }
.src-v3-programme-detail > .src-v3-programme-summary,.src-v3-programme-detail > .src-v3-programme-journey,.src-v3-programme-detail > .src-v3-programme-reach,.src-v3-programme-detail > .src-v3-programme-related { padding: 128px 0; }
.src-v3-programme-detail > .src-v3-programme-summary,.src-v3-programme-detail > .src-v3-programme-reach { background: #fff; }
.src-v3-programme-detail > .src-v3-programme-journey,.src-v3-programme-detail > .src-v3-programme-related { background: #faf7f2; }
.src-v3-programme-section-heading { max-width: 720px; margin-bottom: 40px; }
.src-v3-programme-section-heading .eyebrow { margin: 0 0 12px; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-programme-section-heading h2 { margin: 0; color: #2b2b2b; font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 1.2; }
.src-v3-programme-section-heading > p:last-child:not(.eyebrow) { max-width: 720px; margin: 16px 0 0; color: rgba(43,43,43,.55); font-size: 14px; line-height: 1.625; }
.src-v3-programme-summary-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; }
.src-v3-programme-summary-grid article { min-width: 0; padding: 24px; border-top: 4px solid #b3262c; background: #faf7f2; }
.src-v3-programme-summary-grid article > p { margin: 0 0 12px; color: #b3262c; font-size: 9px; font-weight: 700; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.src-v3-programme-summary-grid article > div { color: rgba(43,43,43,.65); font-size: 14px; line-height: 1.625; }
.src-v3-programme-section-heading--compact { max-width: 672px; }
.src-v3-programme-steps { display: grid; grid-template-columns: minmax(0,1fr); margin: 0; padding: 0; list-style: none; }
.src-v3-programme-steps li { position: relative; min-height: 58px; padding: 0 0 28px 40px; border-left: 1px solid rgba(179,38,44,.3); }
.src-v3-programme-steps li > span { position: absolute; top: 0; left: -16px; display: flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 50%; background: #b3262c; color: #fff; font-size: 10px; font-weight: 700; }
.src-v3-programme-steps li > p { margin: 0; color: #2b2b2b; font-size: 14px; font-weight: 600; line-height: 1.625; }
.src-v3-programme-delivery-copy { padding: 28px; border-left: 4px solid #f58220; background: #fff; color: rgba(43,43,43,.65); font-size: 14px; line-height: 1.65; }
.src-v3-programme-reach-grid { display: grid; grid-template-columns: minmax(0,1fr); align-items: center; gap: 48px; }
.src-v3-programme-reach-copy > .eyebrow { margin: 0 0 12px; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-programme-reach-copy > h2 { margin: 0; color: #2b2b2b; font-family: var(--serif); font-size: 36px; font-weight: 700; line-height: 1.2; }
.src-v3-programme-signature { display: inline-block; margin-top: 16px; padding: 8px 16px; border-radius: 999px; background: rgba(179,38,44,.1); color: #b3262c; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-programme-county-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.src-v3-programme-county-tags span { padding: 8px 16px; background: #faf7f2; color: #2b2b2b; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.src-v3-programme-facts { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; margin-top: 28px; }
.src-v3-programme-facts article { min-width: 0; padding: 22px 24px; border: 1px solid #eee7de; background: #faf7f2; }
.src-v3-programme-facts .src-v3-programme-fact-heading { display: flex; align-items: center; gap: 10px; }
.src-v3-programme-fact-icon { display: flex; width: 28px; height: 28px; flex: 0 0 28px; align-items: center; justify-content: center; border-radius: 50%; background: #f4e7df; color: #b3262c; }
.src-v3-programme-fact-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.src-v3-programme-facts article p { margin: 0; color: #8c7770; font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.src-v3-programme-facts article strong { display: block; margin-top: 14px; color: #2b2b2b; font-size: 14px; font-weight: 600; line-height: 1.6; overflow-wrap: break-word; }
.src-v3-programme-partners { margin-top: 48px; }
.src-v3-programme-partners > .eyebrow { margin: 0 0 16px; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-programme-logo-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.src-v3-programme-logo-row > span { display: flex; min-width: 96px; height: 40px; align-items: center; justify-content: center; padding: 0 8px; color: #2b2b2b; font-size: 10px; font-weight: 700; text-align: center; }
.src-v3-programme-logo-row img { display: block; max-width: 144px; max-height: 40px; object-fit: contain; }
.src-v3-programme-map-card { padding: 24px; border-radius: 24px; background: #faf7f2; text-align: center; }
.src-v3-programme-map { width: min(100%,320px); aspect-ratio: 4/5; margin: 0 auto; }
.src-v3-programme-map .src-v3-county-svg { width: 100%; height: 100%; }
.src-v3-programme-map-card > p { margin: 12px 0 0; color: #b3262c; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.src-v3-programme-next-step { padding: 56px 0; background: #b3262c; color: #fff; }
.src-v3-programme-next-step > .src-v3-programme-shell { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 24px; }
.src-v3-programme-next-step p { margin: 0; color: #f58220; font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.src-v3-programme-next-step h2 { margin: 8px 0 0; color: #fff; font-family: var(--serif); font-size: 30px; font-weight: 700; line-height: 1.2; }
.src-v3-programme-next-step button,.src-v3-programme-next-step a { display: inline-flex; min-height: 56px; align-items: center; justify-content: center; gap: 8px; padding: 0 32px; background: #fff; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: background-color 180ms ease,color 180ms ease; }
.src-v3-programme-next-step button:hover,.src-v3-programme-next-step a:hover { background: #4a0e12; color: #fff; }
.src-v3-programme-next-step button:focus-visible,.src-v3-programme-next-step a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.src-v3-programme-related-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; }
@media (min-width: 768px) {
  .src-v3-programme-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .src-v3-programme-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .src-v3-programme-steps li { min-height: auto; padding: 40px 16px 0; border-top: 1px solid rgba(28,28,28,.14); border-left: 0; }
  .src-v3-programme-steps li > span { top: -16px; left: 16px; }
  .src-v3-programme-related-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (min-width: 1024px) {
  .src-v3-programme-reach-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; }
  .src-v3-programme-next-step > .src-v3-programme-shell { flex-direction: row; align-items: center; }
}
@media (min-width: 1280px) {
  .src-v3-programme-summary-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .src-v3-programme-steps { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .src-v3-programme-related-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1024px) {
  .src-v3-programme-detail > .src-v3-programme-summary,.src-v3-programme-detail > .src-v3-programme-journey,.src-v3-programme-detail > .src-v3-programme-reach,.src-v3-programme-detail > .src-v3-programme-related { padding: 96px 0; }
  .src-v3-programme-shell { padding-inline: 32px; }
}
@media (max-width: 767px) {
  .src-v3-programme-detail-hero .src-v3-programmes-hero-content { padding: 120px 20px 36px; }
  .src-v3-programme-detail-hero .src-v3-programmes-breadcrumb { margin: 0 0 20px; }
  .src-v3-programme-detail-hero .src-v3-detail-status,.src-v3-programme-detail-hero .src-v3-detail-theme { line-height: 1.5; }
  .src-v3-programme-detail-hero .page-hero-subtitle { font-size: 16px; line-height: 1.5; }
  .src-v3-programme-detail-hero .page-hero-intro { display: -webkit-box; overflow: hidden; font-size: 16px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .src-v3-detail-actions { align-items: stretch; flex-direction: column; gap: 16px; margin-top: 40px; }
  .src-v3-detail-primary { width: 100%; min-height: 50px; }
  .src-v3-detail-secondary { justify-content: center; min-height: 0; line-height: 18px; }
  .src-v3-programme-detail > .src-v3-programme-summary,.src-v3-programme-detail > .src-v3-programme-journey,.src-v3-programme-detail > .src-v3-programme-reach,.src-v3-programme-detail > .src-v3-programme-related { padding: 72px 0; }
  .src-v3-programme-shell { padding-inline: 20px; }
  .src-v3-programme-section-heading .eyebrow,.src-v3-programme-reach-copy > .eyebrow,.src-v3-programme-partners > .eyebrow { line-height: 1.5; }
  .src-v3-programme-section-heading h2,.src-v3-programme-reach-copy > h2 { font-size: 32px; line-height: 1.25; }
  .src-v3-programme-steps li { min-height: 0; padding-bottom: 32px; }
  .src-v3-programme-county-tags span { line-height: 1.5; }
  .src-v3-programme-summary-grid article { min-height: 0; }
  .src-v3-programme-next-step { padding: 56px 0; }
  .src-v3-programme-next-step h2 { font-size: 28px; line-height: 36px; }
  .src-v3-programme-next-step button,.src-v3-programme-next-step a { width: 100%; min-height: 47px; padding: 16px 32px; line-height: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .src-v3-programme-detail * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Match PageHeroRing's 55% mobile scale and scroll parallax on programme details. */
.src-v3-programme-detail-hero .src-v3-programmes-ring {
  --ring-parallax: 0px;
  transform: translate3d(0, var(--ring-parallax), 0) rotate(var(--ring-rotate, 0deg));
  transform-origin: center;
  will-change: transform;
}
@media (max-width: 767px) {
  .src-v3-programme-detail-hero .src-v3-programmes-ring {
    top: auto;
    right: -220px;
    bottom: -180px;
    width: 495px;
    height: 495px;
    opacity: .25;
  }
}

/* Homepage geometry and typography copied from the published SRC v3 composition. */
.project-ref { padding: 128px 0; background: #fff; }
.project-ref .container { width: 100%; max-width: 1200px; padding-inline: 40px; box-sizing: border-box; }
.project-ref .section-heading { display: flex; width: 100%; align-items: flex-end; justify-content: space-between; gap: 0; margin: 0 0 64px; }
.project-ref .section-heading .eyebrow { margin: 0 0 8px; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; }
.project-ref .section-heading h2 { margin: 0; color: #2b2b2b; font-size: 36px; line-height: 40px; }
.project-ref .section-heading .section-link { flex: none; padding-bottom: 0; border: 0; color: rgba(43,43,43,.4); font-size: 11px; font-weight: 600; letter-spacing: .04em; }
.projects-stage { height: 664px; }
.project-ref-mobile-link { display: none; }

.home-partners-ref { padding: 88px 0; background: #eeebe5; }
.home-partners-heading { width: 100%; max-width: 1200px; margin: 0 auto 40px; padding-inline: 40px; box-sizing: border-box; }
.home-partners-heading .eyebrow,
.home-programmes-heading .eyebrow,
.home-news-ref .eyebrow,
.home-report-copy .eyebrow { margin: 0 0 12px; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; text-transform: uppercase; }
.home-partners-heading .eyebrow { margin-bottom: 8px; }
.home-partners-heading h2,
.home-programmes-heading h2,
.home-news-ref h2,
.home-report-copy h2 { margin: 0; color: #2b2b2b; font-size: 36px; line-height: 40px; }
.home-partners-heading h2 { font-size: 36px; line-height: 40px; }
.home-partner-marquee { display: flex; width: max-content; max-width: none; align-items: center; gap: 64px; overflow: visible; padding-inline: 0; animation: logoMarquee 34s linear infinite; }
.home-partner-marquee:hover { animation-play-state: paused; }
.home-partner-logo { width: 176px; height: 80px; padding: 20px; border-radius: 16px; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.home-partner-logo img { max-width: 136px; max-height: 40px; object-fit: contain; }
.home-partner-logo span { color: #2b2b2b; font-size: 10px; font-weight: 800; letter-spacing: .05em; line-height: 13px; }

@keyframes logoMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.home-programmes-ref { padding: 128px 0; }
.home-programmes-inner,
.home-news-inner,
.home-report-inner { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 40px; box-sizing: border-box; }
.home-programmes-heading { margin-bottom: 48px; }
.home-programmes-heading .eyebrow { margin-bottom: 12px; color: #47734a; }
.home-programmes-heading h2,
.home-news-ref h2,
.home-report-copy h2 { font-size: 48px; line-height: 48px; }
.home-programmes-heading > a,
.home-news-ref header > a { padding: 0; border: 0; color: #b3262c; font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.home-programme-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
.home-programme-card { height: 566px; display: flex; flex-direction: column; border-radius: 24px; }
.home-programme-photo { flex: 0 0 208px; }
.home-programme-card-body { display: flex; min-height: 0; flex: 1; flex-direction: column; line-height: 24px; }
.home-programme-status { display: inline-flex; width: fit-content; max-width: 100%; align-self: flex-start; line-height: 13.5px; }
.home-programme-card h3 { margin: 20px 0 0; font-size: 24px; line-height: 32px; }
.home-programme-card-body > p { margin: 8px 0 0; color: rgba(43,43,43,.55); font-size: 12px; line-height: 19.5px; }
.home-programme-facts { gap: 12px; line-height: 15px; }
.home-programme-facts dt { margin: 0; color: rgba(43,43,43,.35); font-size: 10px; line-height: 15px; }
.home-programme-facts dd { margin: 4px 0 0; font-weight: 600; line-height: 15px; }
.home-programme-cta { display: flex; min-height: 44px; flex: 0 0 auto; justify-content: center; gap: 0; margin-top: auto; letter-spacing: .1em; line-height: 15px; }
.home-coming-soon { padding-top: 20px; }
.home-coming-soon > span { color: rgba(43,43,43,.45); font-size: 9px; font-weight: 700; letter-spacing: .1em; line-height: 13.5px; }
.home-coming-soon a { gap: 0; padding: 8px 16px; font-size: 9px; font-weight: 700; letter-spacing: .05em; line-height: 13.5px; text-transform: uppercase; }
.home-coming-soon a > span { display: none; }

.home-news-ref { padding: 128px 0; background: #faf7f2; }
.home-news-ref header { margin-bottom: 48px; }
.home-news-ref .eyebrow { margin-bottom: 12px; }
.home-news-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
.home-news-card { border-radius: 24px; }
.home-news-card > div { line-height: 24px; }
.home-news-image { height: 208px; }
.home-news-meta { font-size: 9px; font-weight: 700; letter-spacing: .1em; line-height: 13.5px; }
.home-news-card h3 { margin: 12px 0 0; font-size: 24px; line-height: 30px; }
.home-news-excerpt { min-height: 0; margin: 12px 0 0; color: rgba(43,43,43,.55); font-size: 12px; line-height: 19.5px; }
.home-news-link { display: inline-block; gap: 0; margin-top: 20px; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; }

.home-report-ref { padding: 128px 0; }
.home-report-inner { grid-template-columns: .65fr 1.35fr; align-items: center; gap: 48px; }
.home-report-copy .eyebrow { margin-bottom: 16px; }
.home-report-copy h2 { font-size: 48px; line-height: 48px; }
.home-report-copy > p:not(.eyebrow) { margin-top: 20px; color: rgba(43,43,43,.55); font-size: 14px; line-height: 22.75px; }
.home-report-download { display: inline-block; margin-top: 28px; padding: 14px 28px; font-size: 10px; font-weight: 700; letter-spacing: .1em; line-height: 15px; }
.home-report-placeholder span { font-size: 14px; font-weight: 600; letter-spacing: .14em; }
.v3-impact-heading .eyebrow { line-height: 15px; }

@media (min-width: 768px) {
  .home-programme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-news-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (min-width: 1024px) {
  .home-programme-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1024px) {
  .project-ref { padding-block: 96px; }
  .project-ref .container,
  .home-partners-heading,
  .home-programmes-inner,
  .home-news-inner,
  .home-report-inner { padding-inline: 32px; }
  .home-partners-ref { padding-block: 72px; }
  .home-programmes-ref,
  .home-news-ref,
  .home-report-ref { padding-block: 96px; }
  .home-report-inner { grid-template-columns: minmax(0,1fr); gap: 48px; }
}
/* The reference switches the report to its two-column layout at 1024px. */
@media (min-width: 1024px) {
  .home-report-inner { grid-template-columns: .65fr 1.35fr; }
}
@media (max-width: 767px) {
  .home-programme-grid,
  .home-news-grid { grid-template-columns: minmax(0,1fr); }
  .home-programmes-ring { width: 330px; height: 330px; }
}
@media (max-width: 640px) {
  .project-ref { padding-block: 72px; }
  .project-ref .container,
  .home-partners-heading,
  .home-programmes-inner,
  .home-news-inner,
  .home-report-inner { padding-inline: 20px; }
  .project-ref .section-heading { align-items: flex-start; margin-bottom: 48px; }
  .project-ref .section-heading .section-link { display: none; }
  .project-ref .section-heading h2 { font-size: 30px; line-height: 36px; }
  .home-partners-ref { padding-block: 56px; }
  .home-partner-marquee { gap: 64px; }
  .home-programmes-ref,
  .home-news-ref,
  .home-report-ref { padding-block: 72px; }
  .home-programmes-heading,
  .home-news-ref header { align-items: flex-start; margin-bottom: 48px; }
  .home-programmes-heading h2,
  .home-news-ref h2,
  .home-report-copy h2 { font-size: 36px; line-height: 40px; }
  .home-programme-grid,
  .home-news-grid { gap: 24px; }
  .home-programme-photo,
  .home-news-image { height: 208px; }
  .home-programme-card-body { padding: 24px; }
  .home-report-inner { gap: 48px; }
}
@media (max-width: 767px) {
  .home-programmes-heading > a { display: none; }
}
@media (max-width: 640px) {
  .project-ref { padding-bottom: 72px; }
  .footprint-ref { min-height: 1060px; }
  .footprint-layout { gap: 0; }
  .footprint-heading { padding-bottom: 24px; }
  .footprint-heading .eyebrow { line-height: 15px; }
  .footprint-heading .display { font-size: 30px; line-height: 36px; }
  .footprint-heading .footprint-intro { width: 100%; margin-bottom: 32px; }
  .footprint-view-toggle { margin-bottom: 32px; }
  .footprint-heading .map-legend-africa { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; margin-top: 40px; }
  .footprint-heading .map-legend-africa button { display: inline-flex; width: auto; min-height: 13.5px; align-items: center; gap: 8px; padding: 0; font-size: 9px; line-height: 13.5px; }
  .footprint-heading .map-legend-africa button i { width: 8px; height: 8px; flex: none; }
  .footprint-map-window { height: 560px; min-height: 560px; }
  .home-coming-soon { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; border-top: 1px solid rgba(43,43,43,.1); padding-top: 20px; }
  .home-coming-soon > span { margin-right: 8px; }

  .project-ref .section-heading { margin-bottom: 64px; }
  .projects-stage { height: auto; }
  .project-theme-grid { display: flex; flex-direction: column; gap: 24px; height: auto; }
  .project-theme-grid .project-tile,
  .project-theme-grid .project-tile.span-2 { width: 100%; height: 240px; min-height: 240px; grid-column: auto; }
  .project-ref-mobile-link { display: inline-block; margin-top: 32px; color: rgba(43,43,43,.4); font-size: 11px; font-weight: 600; letter-spacing: .025em; line-height: 16.5px; }
}

/* Keep the expanded dossier's desktop height in flow, as in the exported section. */
@media (min-width: 1024px) {
  .project-ref .projects-stage--open { height: clamp(720px, 100vh, 900px); }
}
@media (prefers-reduced-motion: reduce) {
  .home-partner-marquee { animation: none; }
  .home-programmes-ring { --ring-parallax: 0px !important; will-change: auto; }
}

/* Preserve the export's natural display-heading tracking and desktop hero grid. */
#impact .display,
#footprint .display,
#portfolio .display,
.home-partners-ref .display,
#programmes .display,
#news .display,
.home-report-ref .display { letter-spacing: normal; }
.v3-home-hero .hero-content { width: min(1200px,100%); }
.v3-home-hero .hero-content h1 { width: auto; max-width: 100%; }
@media (min-width: 1100px) {
  .v3-hero-enrolments { inset: auto; width: min(1200px,100%); max-width: 1200px; margin: 0 auto; padding: 0 40px 32px; box-sizing: border-box; transform: none; }
  .v3-enrolment-label { line-height: 13.5px; }
  .v3-enrolment-grid { padding-bottom: 4px; }
  .v3-enrol-card { height: 229px; }
}
.v3-enrolment-label { line-height: 13.5px; }

/* Programme archive typography and card states aligned to the SRC v3 export. */
.src-programme-section-heading .eyebrow {
  margin: 0 0 16px;
  color: #b3262c;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.5;
}
.src-programme-section-heading h2 {
  margin: 0;
  color: #2b2b2b;
  font-size: 36px;
  letter-spacing: normal;
  line-height: 40px;
  overflow-wrap: normal;
}
.src-programme-section-heading { max-width: 672px; }
.src-programme-section-heading > p:last-child {
  margin: 16px 0 0;
  color: rgba(43,43,43,.55);
  font-size: 14px;
  line-height: 1.625;
}
.src-v3-programme-card { color: #2b2b2b; }
.src-v3-programme-card-past .src-v3-programme-image::after { display: none; }
.src-v3-programme-card-past .src-v3-status { top: 18px; }
.src-v3-status { font-weight: 700; letter-spacing: .1em; line-height: 12px; }
.src-v3-image-tags span { padding: 2px 8px; font-size: 9px; letter-spacing: .05em; line-height: 13.5px; }
.src-v3-programme-tags span { padding: 4px 8px; font-size: 8px; letter-spacing: .05em; line-height: 12px; }
.src-v3-programme-theme { color: #b3262c; font-weight: 700; letter-spacing: .1em; }
.src-v3-programme-card h3 { color: #2b2b2b; }
.src-v3-programme-card .src-v3-programme-summary { color: rgba(43,43,43,.55); }
.src-v3-programme-card-current .src-v3-programme-summary,
.src-v3-programme-card-upcoming .src-v3-programme-summary { margin-bottom: 16px; }
.src-v3-programme-card .src-v3-programme-facts {
  grid-template-columns: minmax(0,1fr);
  gap: 8px;
  margin: 0 0 16px;
  line-height: 1.5;
}
.src-v3-programme-card .src-v3-programme-facts > div,
.src-v3-programme-card .src-v3-programme-facts dd { line-height: 1.5; }
.src-v3-programme-past-fact { color: rgba(43,43,43,.45); }
.src-v3-programme-note { color: rgba(43,43,43,.55); }
.src-v3-link { color: #b3262c; font-weight: 700; letter-spacing: .1em; }
.src-v3-link:hover { color: #f58220; border-color: #f58220; }
.src-v3-button { min-height: 0; border: 0; padding: 12px; font-size: 9px; font-weight: 700; letter-spacing: .1em; line-height: 13.5px; }
.src-v3-programme-card .src-v3-button-outline { border: 1px solid #b3262c; }
@media (min-width: 1024px) {
  .src-programme-section-heading h2 { font-size: 48px; line-height: 48px; }
}

/* User-requested mobile navigation: full-height, right-to-left off-canvas drawer. */
.site-header .mobile-nav-head,
.site-header .mobile-nav-close,
.site-header .nav-scrim { display: none; }
.site-header .header-cta-copy { display: contents; }
.site-header .header-cta-copy small { display: none; }
.site-header .header-cta-copy strong { font: inherit; }
.site-header .header-cta > i { display: none; }
@media (max-width: 1023px) {
  .site-header.nav-open { z-index: 1000; }
  .site-header .nav-scrim {
    position: fixed;
    inset: 0;
    z-index: 1001;
    display: block;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(17,18,18,.68);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity .32s ease, visibility 0s linear .38s;
    backdrop-filter: blur(3px);
  }
  .site-header.nav-open .nav-scrim {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition-delay: 0s;
  }
  .site-header .primary-nav {
    position: fixed !important;
    inset: 0 0 0 auto !important;
    z-index: 1002;
    display: flex !important;
    width: min(88vw, 420px) !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    margin: 0;
    padding: max(18px, env(safe-area-inset-top)) 26px max(22px, env(safe-area-inset-bottom));
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #202120;
    box-shadow: -24px 0 64px rgba(0,0,0,.28);
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transform: translateX(102%);
    visibility: hidden;
    transition: transform .4s cubic-bezier(.2,.75,.2,1), opacity .24s ease, visibility 0s linear .4s;
  }
  .site-header.nav-open .primary-nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    visibility: visible;
    transition-delay: 0s;
  }
  .site-header .mobile-nav-head {
    display: flex;
    min-height: 66px;
    flex: 0 0 66px;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 16px;
    padding: 0 0 12px;
    border-bottom: 1px solid rgba(255,255,255,.16);
    color: rgba(255,255,255,.52);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .19em;
    line-height: 1.4;
    text-transform: uppercase;
  }
  .site-header .mobile-nav-close {
    position: relative;
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease;
  }
  .site-header .mobile-nav-close i,
  .site-header .mobile-nav-close i::after {
    position: absolute;
    width: 15px;
    height: 1px;
    background: currentColor;
    content: '';
    transform: rotate(45deg);
  }
  .site-header .mobile-nav-close i::after { transform: rotate(90deg); }
  .site-header .primary-menu {
    display: block;
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.28) transparent;
  }
  .site-header .primary-menu > li { border-bottom: 1px solid rgba(255,255,255,.13); }
  .site-header .primary-menu > li > a,
  .site-header .nav-parent-button {
    display: flex;
    width: 100%;
    min-height: 54px;
    justify-content: space-between;
    padding: 0;
    color: rgba(255,255,255,.88) !important;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .14em;
    line-height: 1.45;
    text-align: left;
    white-space: normal;
  }
  .site-header .nav-parent-button > span:first-child { color: inherit; }
  .site-header .nav-parent-indicator { color: #f58220; font-size: 16px; }
  .site-header .primary-menu > li > a:hover,
  .site-header .nav-parent-button:hover,
  .site-header .primary-menu > li.is-submenu-open > .nav-parent-button,
  .site-header .primary-menu > li.current-menu-item > a { color: #f58220 !important; }
  .site-header .primary-menu .sub-menu {
    position: static;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    pointer-events: none;
    transform: none;
    visibility: hidden;
    transition: max-height .24s ease, opacity .18s ease, visibility .18s ease;
  }
  .site-header .primary-menu > li.is-submenu-open > .sub-menu {
    max-height: 620px;
    padding: 0 0 14px 14px;
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }
  .site-header .primary-menu .menu-group-label { padding: 12px 0 7px; color: #f58220; }
  .site-header .primary-menu .sub-menu a {
    padding: 8px 0;
    border-radius: 0;
    color: rgba(255,255,255,.68);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    text-transform: none;
  }
  .site-header .primary-menu .sub-menu a:hover,
  .site-header .primary-menu .sub-menu a:focus-visible { background: transparent; color: #fff; }
  .site-header .primary-nav > .header-cta,
  .site-header.nav-open .primary-nav > .header-cta {
    display: flex !important;
    min-height: 78px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    margin: 18px 0 0 !important;
    padding: 14px 14px 14px 17px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 4px;
    background: #b3262c;
    color: #fff !important;
    text-align: left;
    white-space: normal;
    box-shadow: 0 12px 28px rgba(0,0,0,.2);
    transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
  }
  .site-header .header-cta-copy { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
  .site-header .header-cta-copy small { display: block; color: rgba(255,255,255,.78); font-size: 8px; font-weight: 750; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
  .site-header .header-cta-copy strong { color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .11em; line-height: 1.3; text-transform: uppercase; }
  .site-header .header-cta > i { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: #fff; font-size: 18px; font-style: normal; line-height: 1; transition: transform .2s ease, background .2s ease; }
  .site-header .header-cta::after { display: none; }
  .site-header .nav-toggle { z-index: 1003; }
  .site-header .mobile-nav-close:focus-visible,
  .site-header .header-cta:focus-visible,
  .site-header .primary-menu a:focus-visible,
  .site-header .nav-parent-button:focus-visible { outline: 2px solid #f58220; outline-offset: 4px; }
}
@media (hover: hover) and (pointer: fine) and (max-width: 1023px) {
  .site-header .mobile-nav-close:hover { border-color: #f58220; background: rgba(255,255,255,.08); }
  .site-header .primary-nav > .header-cta:hover { background: #d63a3f; box-shadow: 0 16px 32px rgba(0,0,0,.3); transform: translateY(-2px); }
  .site-header .header-cta:hover > i { background: rgba(255,255,255,.12); transform: translate(2px,-2px); }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .primary-nav,
  .site-header .nav-scrim,
  .site-header .mobile-nav-close,
  .site-header .header-cta { transition-duration: .01ms !important; }
}
@media (max-width: 1023px) {
  body > .nav-scrim.is-mobile-portal {
    position: fixed;
    inset: 0;
    z-index: 1001;
    display: block;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    background: rgba(17,18,18,.68);
    transition: opacity .32s ease, visibility 0s linear .38s;
  }
  body > .nav-scrim.is-mobile-portal ~ .primary-nav.is-mobile-portal { z-index: 1002; }
  body > .nav-scrim.is-mobile-portal + .primary-nav.is-mobile-portal { z-index: 1002; }
  body > .nav-scrim.is-mobile-portal { backdrop-filter: blur(3px); }
  body > .nav-scrim.is-mobile-portal,
  body > .primary-nav.is-mobile-portal {
    box-sizing: border-box;
  }
  body > .nav-scrim.is-mobile-portal + .primary-nav.is-mobile-portal { display: flex !important; }
  body > .primary-nav.is-mobile-portal {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    z-index: 1002;
    display: flex !important;
    width: min(88vw, 420px) !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    margin: 0;
    padding: max(18px, env(safe-area-inset-top)) 26px max(22px, env(safe-area-inset-bottom));
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #202120;
    box-shadow: -24px 0 64px rgba(0,0,0,.28);
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transform: translateX(102%);
    visibility: hidden;
    transition: transform .4s cubic-bezier(.2,.75,.2,1), opacity .24s ease, visibility 0s linear .4s;
  }
  body > .primary-nav.is-mobile-portal.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    visibility: visible;
    transition-delay: 0s;
  }
  .site-header.nav-open .nav-toggle { visibility: hidden; }
  body > .nav-scrim.is-mobile-portal.is-open { opacity: 1; pointer-events: auto; visibility: visible; transition-delay: 0s; }
  body > .primary-nav.is-mobile-portal .mobile-nav-head {
    display: flex;
    min-height: 66px;
    flex: 0 0 66px;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 16px;
    padding: 0 0 12px;
    border-bottom: 1px solid rgba(255,255,255,.16);
    color: rgba(255,255,255,.52);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .19em;
    line-height: 1.4;
    text-transform: uppercase;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close {
    position: relative;
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    cursor: pointer;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close i,
  body > .primary-nav.is-mobile-portal .mobile-nav-close i::after {
    position: absolute;
    width: 15px;
    height: 1px;
    background: currentColor;
    content: '';
    transform: rotate(45deg);
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close i::after { transform: rotate(90deg); }
  body > .primary-nav.is-mobile-portal .primary-menu {
    display: block;
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.28) transparent;
  }
  body > .primary-nav.is-mobile-portal .primary-menu > li { border-bottom: 1px solid rgba(255,255,255,.13); }
  body > .primary-nav.is-mobile-portal .primary-menu > li > a,
  body > .primary-nav.is-mobile-portal .nav-parent-button {
    display: flex;
    width: 100%;
    min-height: 54px;
    justify-content: space-between;
    padding: 0;
    color: rgba(255,255,255,.88) !important;
    font-size: 11px;
    font-weight: 750;
    font-family: inherit;
    letter-spacing: .14em;
    line-height: 1.45;
    text-align: left;
    white-space: normal;
  }
  body > .primary-nav.is-mobile-portal .nav-parent-button { border: 0; background: transparent; appearance: none; cursor: pointer; }
  body > .primary-nav.is-mobile-portal .nav-parent-button > span:first-child { color: inherit; }
  body > .primary-nav.is-mobile-portal .nav-parent-indicator { color: #f58220; font-size: 16px; }
  body > .primary-nav.is-mobile-portal .primary-menu > li > a:hover,
  body > .primary-nav.is-mobile-portal .nav-parent-button:hover,
  body > .primary-nav.is-mobile-portal .primary-menu > li.is-submenu-open > .nav-parent-button,
  body > .primary-nav.is-mobile-portal .primary-menu > li.current-menu-item > a { color: #f58220 !important; }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu {
    position: static;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    pointer-events: none;
    transform: none;
    visibility: hidden;
    transition: max-height .24s ease, opacity .18s ease, visibility .18s ease;
  }
  body > .primary-nav.is-mobile-portal .primary-menu > li.is-submenu-open > .sub-menu { max-height: 620px; padding: 0 0 14px 14px; opacity: 1; pointer-events: auto; visibility: visible; }
  body > .primary-nav.is-mobile-portal .primary-menu .menu-group-label { padding: 12px 0 7px; color: #f58220; }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a { padding: 8px 0; border-radius: 0; color: rgba(255,255,255,.68); font-size: 12px; font-weight: 500; line-height: 1.5; text-transform: none; }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a:hover,
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a:focus-visible { background: transparent; color: #fff; }
  body > .primary-nav.is-mobile-portal > .header-cta {
    display: flex !important;
    min-height: 78px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    margin: 18px 0 0 !important;
    padding: 14px 14px 14px 17px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 4px;
    background: #b3262c;
    color: #fff !important;
    text-align: left;
    white-space: normal;
    box-shadow: 0 12px 28px rgba(0,0,0,.2);
  }
  body > .primary-nav.is-mobile-portal .header-cta-copy { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
  body > .primary-nav.is-mobile-portal .header-cta-copy small { display: block; color: rgba(255,255,255,.78); font-size: 8px; font-weight: 750; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
  body > .primary-nav.is-mobile-portal .header-cta-copy strong { color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .11em; line-height: 1.3; text-transform: uppercase; }
  body > .primary-nav.is-mobile-portal .header-cta > i { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: #fff; font-size: 18px; font-style: normal; line-height: 1; }
  body > .primary-nav.is-mobile-portal .header-cta::after { display: none; }
  body > .primary-nav.is-mobile-portal .mobile-nav-close:focus-visible,
  body > .primary-nav.is-mobile-portal .header-cta:focus-visible,
  body > .primary-nav.is-mobile-portal .primary-menu a:focus-visible,
  body > .primary-nav.is-mobile-portal .nav-parent-button:focus-visible { outline: 2px solid #f58220; outline-offset: 4px; }
}
@media (hover: hover) and (pointer: fine) and (max-width: 1023px) {
  body > .primary-nav.is-mobile-portal .mobile-nav-close:hover { border-color: #f58220; background: rgba(255,255,255,.08); }
  body > .primary-nav.is-mobile-portal > .header-cta:hover { background: #d63a3f; box-shadow: 0 16px 32px rgba(0,0,0,.3); transform: translateY(-2px); }
  body > .primary-nav.is-mobile-portal > .header-cta:hover > i { background: rgba(255,255,255,.12); transform: translate(2px,-2px); }
}

/* Mobile navigation follows the published v3 floating cream panel. */
@media (max-width: 1023px) {
  body > .nav-scrim.is-mobile-portal {
    background: rgba(94, 52, 52, .66);
    backdrop-filter: blur(5px);
  }
  body > .primary-nav.is-mobile-portal {
    top: 16px !important;
    right: 16px !important;
    bottom: 42px !important;
    left: auto !important;
    width: min(calc(100vw - 32px), 420px) !important;
    height: auto !important;
    max-height: calc(100dvh - 58px) !important;
    padding: 0 10px 10px;
    overflow: hidden;
    border: 1px solid rgba(43, 43, 43, .08);
    border-radius: 24px;
    background: #faf8f4;
    box-shadow: 0 24px 64px rgba(32, 16, 16, .24);
    color: #2b2b2b;
    transform: translateX(calc(100% + 24px));
    transition: transform .38s cubic-bezier(.2, .8, .2, 1), opacity .2s ease, visibility 0s linear .38s;
  }
  body > .primary-nav.is-mobile-portal.is-open { transform: translateX(0); }
  body > .primary-nav.is-mobile-portal .mobile-nav-head {
    min-height: 70px;
    flex: 0 0 70px;
    margin: 0 8px 2px;
    padding: 0;
    border: 0;
    color: #2b2b2b;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-head img {
    display: block;
    width: 116px;
    height: 48px;
    object-fit: contain;
    object-position: left center;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close {
    width: 40px;
    height: 40px;
    margin: 0 -8px 0 0;
    border: 0;
    border-radius: 50%;
    color: #2b2b2b;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close:hover { background: rgba(43, 43, 43, .06); }
  body > .primary-nav.is-mobile-portal .mobile-nav-close i { display: none; }
  body > .primary-nav.is-mobile-portal .mobile-nav-close > span {
    color: currentColor;
    font: 300 28px/1 Arial, sans-serif;
  }
  body > .primary-nav.is-mobile-portal .primary-menu {
    flex: 1 1 auto;
    padding: 0 8px;
    overflow-y: auto;
    scrollbar-width: none;
  }
  body > .primary-nav.is-mobile-portal .primary-menu::-webkit-scrollbar { display: none; }
  body > .primary-nav.is-mobile-portal .primary-menu > li { border-bottom-color: rgba(43, 43, 43, .1); }
  body > .primary-nav.is-mobile-portal .primary-menu > li > a,
  body > .primary-nav.is-mobile-portal .nav-parent-button {
    min-height: 49px;
    color: #292929 !important;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
  }
  body > .primary-nav.is-mobile-portal .nav-parent-indicator { color: #292929; font-size: 13px; }
  body > .primary-nav.is-mobile-portal .primary-menu > li > a:hover,
  body > .primary-nav.is-mobile-portal .nav-parent-button:hover,
  body > .primary-nav.is-mobile-portal .primary-menu > li.is-submenu-open > .nav-parent-button,
  body > .primary-nav.is-mobile-portal .primary-menu > li.current-menu-item > a { color: #292929 !important; }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu { transition: max-height .24s ease, opacity .18s ease, visibility .18s ease; }
  body > .primary-nav.is-mobile-portal .primary-menu > li.is-submenu-open > .sub-menu { padding: 0 0 12px 14px; }
  body > .primary-nav.is-mobile-portal .primary-menu .menu-group-label { padding: 12px 0 7px; color: #b3262c; }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a {
    padding: 8px 0;
    color: rgba(43, 43, 43, .72);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
  }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a:hover,
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a:focus-visible { background: transparent; color: #b3262c; }
  body > .primary-nav.is-mobile-portal > .header-cta {
    min-height: 40px;
    flex: 0 0 auto;
    justify-content: center;
    margin: 14px 8px 6px !important;
    padding: 0 12px;
    border: 0;
    border-radius: 22px;
    background: #b3262c;
    color: #242424 !important;
    text-align: center;
    box-shadow: none;
    transition: background .2s ease, transform .2s ease;
  }
  body > .primary-nav.is-mobile-portal .header-cta-copy { display: block; }
  body > .primary-nav.is-mobile-portal .header-cta-copy small,
  body > .primary-nav.is-mobile-portal .header-cta > i { display: none; }
  body > .primary-nav.is-mobile-portal .header-cta-copy strong {
    color: #242424;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1.2;
  }
}

/* Match the exported map pins: subtle country markers and a pulsing Kenya HQ. */
.footprint-ref .map-dot,
.footprint-ref .map-dot:hover,
.footprint-ref .map-dot:focus-visible,
.footprint-ref .map-dot.is-hovered,
.footprint-ref .map-dot.is-active {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  transform: translate(-50%, -50%) scale(var(--map-pin-counter, 1));
}
.footprint-ref .map-dot::before {
  width: 8px;
  height: 8px;
  border: 1px solid #fff;
  background: #c1272d;
  box-shadow: none;
  opacity: .82;
  transform: translate(-50%, -50%);
}
.footprint-ref .map-dot.is-hq::before { width: 12px; height: 12px; opacity: 1; }
.footprint-ref .map-dot span { display: none; }
.footprint-ref .map-dot.is-hq span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 24px;
  height: 24px;
  border: 1px solid #c1272d;
  border-radius: 50%;
  opacity: .45;
  transform: translate(-50%, -50%) scale(var(--map-pin-counter, 1));
  animation: src-footprint-ping 2.2s cubic-bezier(0, 0, .2, 1) infinite;
}
.footprint-ref .map-dot:hover::before,
.footprint-ref .map-dot:focus-visible::before,
.footprint-ref .map-dot.is-hovered::before,
.footprint-ref .map-dot.is-active::before { box-shadow: none; opacity: 1; transform: translate(-50%, -50%); }
.footprint-ref .map-dot:focus-visible { outline: 2px solid #f58220; outline-offset: -7px; }
.footprint-ref .map-art .africa-map-svg path.is-hovered,
.footprint-ref .map-art .kenya-county-svg path.is-hovered { fill: #2e1616 !important; }
.footprint-ref .map-art .africa-map-svg path.is-selected,
.footprint-ref .map-art .kenya-county-svg path.is-selected { fill: #8b0005 !important; }
.footprint-ref .map-art[data-map-panel="kenya"] .kenya-county-svg path.is-active-country { fill: #c1272d !important; }
.footprint-ref .map-art[data-map-panel="kenya"] .kenya-county-svg path.is-active-country.is-hovered { fill: #2e1616 !important; }
.footprint-ref .map-art[data-map-panel="kenya"] .kenya-county-svg path.is-active-country.is-selected { fill: #8b0005 !important; }
.footprint-ref .map-hover-label { transform: translate(12px, -50%) scale(var(--map-pin-counter, 1)); transform-origin: left center; }
.footprint-ref .map-hover-label span { font-family: 'Montserrat', system-ui, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .045em; line-height: 1; white-space: nowrap; }
.footprint-heading .map-legend-kenya { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@keyframes src-footprint-ping {
  75%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(2); }
}
@media (max-width: 639px) {
  .footprint-ref .map-dot,
  .footprint-ref .map-dot:hover,
  .footprint-ref .map-dot:focus-visible,
  .footprint-ref .map-dot.is-hovered,
  .footprint-ref .map-dot.is-active { width: 44px; height: 44px; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .footprint-heading .map-legend-kenya { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (hover: hover) and (pointer: fine) and (max-width: 1023px) {
  body > .primary-nav.is-mobile-portal > .header-cta:hover { background: #d63a3f; box-shadow: none; transform: translateY(-1px); }
}
@media (max-width: 1023px) {
  body > .primary-nav.is-mobile-portal::before {
    position: absolute;
    z-index: 0;
    top: 72px;
    right: 8px;
    bottom: 96px;
    left: 8px;
    border: 1px solid rgba(43, 43, 43, .05);
    border-radius: 22px;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 8px 24px rgba(74, 14, 18, .1);
    content: '';
    pointer-events: none;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-head { position: relative; z-index: 1; }
  body > .primary-nav.is-mobile-portal .primary-menu {
    position: absolute;
    z-index: 1;
    top: 72px;
    right: 8px;
    bottom: 165px;
    left: 8px;
    display: block;
    flex: none;
    width: auto;
    margin: 0;
    padding: 18px 28px 8px;
    overflow-x: hidden;
    overflow-y: auto;
    list-style: none;
    background: transparent;
  }
  body > .primary-nav.is-mobile-portal .primary-menu > li,
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu li {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  body > .primary-nav.is-mobile-portal .primary-menu > li { border-bottom: 1px solid rgba(43, 43, 43, .1); }
  body > .primary-nav.is-mobile-portal .primary-menu > li > a,
  body > .primary-nav.is-mobile-portal .nav-parent-button {
    min-height: 42px;
    font-size: 11px;
    line-height: 1.3;
    text-transform: uppercase;
  }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu {
    list-style: none;
    margin: 0;
    background: transparent;
  }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a {
    font-family: 'Montserrat', system-ui, sans-serif;
    display: block;
    width: 100%;
    padding: 7px 0;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 17px;
    text-transform: none;
  }
  body > .primary-nav.is-mobile-portal .primary-menu .menu-group-label {
    display: block;
    width: 100%;
    padding: 12px 0 7px;
    color: #f58220;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 12px;
    text-transform: uppercase;
  }
  body > .primary-nav.is-mobile-portal > .header-cta {
    position: absolute;
    z-index: 2;
    right: 41px;
    bottom: 121px;
    left: 37px;
    width: auto;
    margin: 0 !important;
  }
}

/* Current published v3 mobile menu: compact accordion panel with an expanding submenu. */
@media (max-width: 1023px) {
  /* Keep the floating capsule as the only header surface after scrolling. */
  .site-header.is-scrolled {
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .site-header.is-scrolled .header-inner {
    border-color: rgba(31,31,31,.08);
    background: rgba(250,248,244,.88);
    box-shadow: 0 8px 24px rgba(74,14,18,.1);
    backdrop-filter: blur(18px) saturate(140%);
  }
  body > .nav-scrim.is-mobile-portal { display: none !important; }
  body > .primary-nav.is-mobile-portal::before { content: none !important; }
  body > .primary-nav.is-mobile-portal {
    position: fixed !important;
    top: 16px !important;
    right: 24px !important;
    bottom: auto !important;
    left: 24px !important;
    z-index: 1002;
    display: flex !important;
    width: auto !important;
    min-width: 0;
    max-width: none;
    height: auto !important;
    min-height: 420px;
    max-height: calc(100dvh - 32px) !important;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    margin: 0;
    padding: 0 9px 8px;
    overflow: visible;
    border: 1px solid rgba(31,31,31,.08);
    border-radius: 24px;
    background: rgba(250,248,244,.88);
    box-shadow: 0 8px 24px rgba(74,14,18,.1);
    color: #2b2b2b;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-7px);
    visibility: hidden;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  body > .primary-nav.is-mobile-portal.is-open {
    height: auto !important;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
    transition-delay: 0s;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-head {
    display: flex;
    width: calc(100% + 18px);
    height: 72px;
    min-height: 72px;
    flex: 0 0 72px;
    align-items: center;
    justify-content: space-between;
    margin: 0 -9px;
    padding: 0 20px;
    border: 0;
    color: #2b2b2b;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-head img {
    display: block;
    width: 116px;
    height: 48px;
    object-fit: contain;
    object-position: left center;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #2b2b2b;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close > span {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
    overflow: hidden;
    color: transparent;
    font-size: 0;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close > span::before,
  body > .primary-nav.is-mobile-portal .mobile-nav-close > span::after {
    position: absolute;
    top: 7px;
    left: 0;
    width: 16px;
    height: 1px;
    background: #2b2b2b;
    content: '';
    transform: rotate(45deg);
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close > span::after { transform: rotate(-45deg); }
  body > .primary-nav.is-mobile-portal .mobile-nav-close:hover { background: transparent; }
  body > .primary-nav.is-mobile-portal .primary-menu {
    position: relative;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: block;
    width: calc(100% + 2px);
    min-height: 0;
    flex: 0 0 auto;
    margin: 0 0 0 -1px;
    padding: 16px 20px 71px;
    overflow: visible;
    border: 1px solid rgba(43,43,43,.05);
    border-radius: 24px;
    background: rgba(250,248,244,.94);
    box-shadow: 0 12px 36px rgba(74,14,18,.12);
    list-style: none;
  }
  body > .primary-nav.is-mobile-portal .primary-menu > li,
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu li {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  body > .primary-nav.is-mobile-portal .primary-menu > li { border-bottom: 1px solid rgba(43,43,43,.1); }
  body > .primary-nav.is-mobile-portal .primary-menu > li > a,
  body > .primary-nav.is-mobile-portal .nav-parent-button {
    display: flex;
    width: 100%;
    height: 40.5px;
    min-height: 40.5px;
    align-items: center;
    justify-content: space-between;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #2b2b2b !important;
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.3;
    text-align: left;
    text-decoration: none;
    text-transform: uppercase;
    white-space: normal;
  }
  body > .primary-nav.is-mobile-portal .nav-parent-indicator { color: #2b2b2b; font-size: 13px; }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu {
    position: static;
    display: block;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    pointer-events: none;
    transform: none;
    visibility: hidden;
    transition: max-height .22s ease, opacity .16s ease, visibility .16s ease;
  }
  body > .primary-nav.is-mobile-portal .primary-menu > li.is-submenu-open > .sub-menu {
    max-height: 280px;
    padding: 0 0 12px 16px !important;
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a {
    display: block;
    width: 100%;
    min-height: 32px;
    padding: 8px 0;
    border-radius: 0;
    color: rgba(43,43,43,.72);
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 16px;
    text-decoration: none;
    text-transform: none;
  }
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a:hover,
  body > .primary-nav.is-mobile-portal .primary-menu .sub-menu a:focus-visible { background: transparent; color: #b3262c; }
  body > .primary-nav.is-mobile-portal .primary-menu .menu-group-label {
    display: block;
    padding: 12px 0 8px;
    color: #f58220;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .16em;
    line-height: 1.5;
    text-transform: uppercase;
  }
  body > .primary-nav.is-mobile-portal > .header-cta {
    position: absolute;
    z-index: 2;
    right: 29px;
    bottom: 25px;
    left: 29px;
    display: flex !important;
    width: auto;
    height: 39px;
    min-height: 39px;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0 12px;
    border: 0;
    border-radius: 16px;
    background: #b3262c;
    color: #fff !important;
    box-shadow: none;
    text-align: center;
    transition: background .18s ease, color .18s ease;
  }
  body > .primary-nav.is-mobile-portal .header-cta-copy { display: block; }
  body > .primary-nav.is-mobile-portal .header-cta-copy small,
  body > .primary-nav.is-mobile-portal .header-cta > i { display: none; }
  body > .primary-nav.is-mobile-portal .header-cta-copy strong {
    color: inherit;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.2;
  }
  body > .primary-nav.is-mobile-portal > .header-cta:hover {
    background: #b3262c;
    color: #fff !important;
    box-shadow: none;
    transform: none;
  }
  body > .primary-nav.is-mobile-portal .mobile-nav-close:focus-visible,
  body > .primary-nav.is-mobile-portal .primary-menu a:focus-visible,
  body > .primary-nav.is-mobile-portal .nav-parent-button:focus-visible,
  body > .primary-nav.is-mobile-portal > .header-cta:focus-visible { outline: 2px solid #f58220; outline-offset: 3px; }
}

@media (prefers-reduced-motion: reduce) {
  body > .primary-nav.is-mobile-portal,
  body > .primary-nav.is-mobile-portal * { transition-duration: .01ms !important; }
}

/* Keep the published tablet footprint rhythm while retaining the responsive map. */
@media (min-width: 641px) and (max-width: 1023px) {
  .footprint-layout { gap: 23px; }
  .footprint-heading { max-width: none; }
  .footprint-heading .eyebrow { line-height: 15px; }
  .footprint-heading .display { line-height: 36px; }
  .footprint-heading .footprint-intro { width: 100%; max-width: none; }
  .footprint-view-toggle { gap: 0; }
  .footprint-view-toggle button { height: 30px; min-height: 30px; }
  .footprint-view-toggle button:first-child { width: 73px; }
  .footprint-view-toggle button:last-child { width: 69px; }
  .footprint-heading .map-legend-africa {
    display: flex;
    width: auto;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 71px;
  }
  .footprint-heading .map-legend-africa button {
    display: inline-flex;
    width: auto;
    min-height: 14px;
    align-items: center;
    gap: 8px;
    padding: 0;
    font-size: 9px;
    line-height: 14px;
  }
  .project-ref .section-heading h2 { font-size: 30px; line-height: 36px; }
  .project-ref .projects-grid { gap: 24px; }
}

/* Match the published mobile header and Latest News decoration/layout. */
@media (max-width: 1023px) {
  .site-header.is-scrolled .header-inner,
  .site-header.nav-open .header-inner { border-radius: 24px; }
}

.home-news-ref::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='260' viewBox='0 0 560 260' fill='none'%3E%3Cg stroke='%23C1272D' stroke-width='1' opacity='.07'%3E%3Cpath d='M-35 27C48-8 115 61 194 29s145-9 208 20 126 4 186-22'/%3E%3Cpath d='M-31 62c79-31 145 32 222 2s140-11 207 17 128 10 181-16'/%3E%3Cpath d='M-40 99c92-39 151 21 234-5s134-11 206 16 124 9 185-20'/%3E%3Cpath d='M-34 137c81-34 153 23 229-2s136-12 204 14 132 13 185-13'/%3E%3Cpath d='M-29 175c74-31 146 28 222 1s142-8 208 17 126 5 182-20'/%3E%3Cpath d='M-35 216c84-38 151 21 228-6s141-9 206 19 128 5 183-20'/%3E%3Cpath d='M-31 248c80-33 149 25 226-2s141-8 207 17 125 9 180-16'/%3E%3C/g%3E%3C/svg%3E");
  background-position: center;
  background-size: 560px 260px;
  background-repeat: repeat;
  mask-image: radial-gradient(circle at center, transparent 18%, rgba(0,0,0,.12) 48%, #000 88%);
  -webkit-mask-image: radial-gradient(circle at center, transparent 18%, rgba(0,0,0,.12) 48%, #000 88%);
}

.home-news-ref::after {
  right: -330px;
  bottom: -330px;
  width: 560px;
  height: 560px;
  border: 0;
  border-radius: 50%;
  background: conic-gradient(from 18deg, #c1272d 0deg 252deg, transparent 252deg 360deg);
  opacity: .85;
  transform: translate3d(0, var(--news-ring-parallax, 0px), 0);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 68px), #000 calc(100% - 67px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 68px), #000 calc(100% - 67px));
}

@media (max-width: 640px) {
  .home-news-ref header { align-items: flex-end; }
  .home-news-ref header > a {
    display: block;
    flex: 0 1 50px;
    width: 50px;
    max-width: 50px;
    text-align: right;
    white-space: normal;
  }
}
