* { box-sizing: border-box; }
:root {
  --primary: #1e1d2f;
  --blue: #356ddc;
  --pale-blue: #daecf6;
  --ink: #1e1d2f;
  --muted: #5f6270;
  --line: #d9dce5;
  --soft: #f5f5f3;
}
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.55;
}
a { color: inherit; text-underline-offset: .18em; }
img { display: block; max-width: 100%; }
.container { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 100; background: white; color: var(--primary); padding: 10px 14px; box-shadow: 0 8px 24px rgba(30,29,47,.18); }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top: 0; z-index: 10; background: white; box-shadow: 0 1px 0 rgba(30,29,47,.08); }
.search-bar { display: none; background: var(--primary); color: white; padding: 18px 0; }
.search-bar:target,
.search-bar:focus-within { display: block; }
.search-bar form { display: flex; }
.search-bar input { flex: 1; border: 0; padding: 14px 16px; }
.search-bar button { border: 1px solid white; background: transparent; color: white; padding: 0 28px; }
.navbar { padding: 18px 0; }
.nav-inner { display: flex; align-items: center; gap: 28px; }
.brand img { width: 120px; }
.primary-menu { display: flex; align-items: center; justify-content: flex-end; gap: 2px; flex: 1; list-style: none; margin: 0; padding: 0; }
.primary-menu > li { position: relative; }
.primary-menu > li > a, .search-toggle { display: block; padding: 12px 11px; color: var(--ink); font-size: 15px; text-decoration: none; }
.dropdown > a::after { content: " ▾"; font-size: 11px; }
.dropdown ul { position: absolute; top: 100%; left: 0; min-width: 260px; display: none; list-style: none; margin: 0; padding: 10px 0; background: white; border: 1px solid var(--line); box-shadow: 0 18px 36px rgba(30,29,47,.14); }
.dropdown:hover ul, .dropdown:focus-within ul { display: block; }
.dropdown li a { display: block; padding: 10px 18px; text-decoration: none; }
.dropdown li a:hover, .primary-menu > li > a:hover, .search-toggle:hover { background: var(--soft); }
.primary-menu > li > a[href="donaciones.php"] {
  margin: 0 4px;
  padding: 9px 16px;
  border-radius: 999px;
  background: #dceff8;
  color: var(--primary);
  font-weight: 700;
  transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.primary-menu > li > a[href="donaciones.php"]:hover,
.primary-menu > li > a[href="donaciones.php"]:focus-visible {
  background: #c9e5f2;
  box-shadow: 0 8px 20px rgba(53, 109, 220, .13);
  transform: translateY(-1px);
}
.search-toggle { border: 1px solid var(--line); }
.menu-toggle { display: none; }
.top-composition { display: grid; grid-template-columns: minmax(280px, 33.33%) minmax(0, 1fr); background: var(--soft); }
.hero-panel { background: var(--primary); color: white; padding: clamp(32px,5vw,70px); min-height: 432px; display: flex; flex-direction: column; justify-content: center; }
.hero-panel h1 { margin: 0 0 28px; font-size: clamp(30px,3.15vw,45px); line-height: 1.16; }
.hero-panel p { margin: 0; font-size: 20px; }
.featured-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(330px, 420px); justify-content: start; overflow-x: auto; }
.featured-row,
.programme-strip {
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}
.featured-row .story-card,
.programme-strip .story-card {
  scroll-snap-align: start;
}
.featured-row.is-gliding { scroll-snap-type: none; scroll-behavior: auto; }
.slider-shell { position: relative; min-width: 0; background: var(--soft); }
.slider-controls {
  position: absolute;
  right: 18px;
  bottom: 18px;
  display: flex;
  gap: 8px;
  z-index: 2;
}
.slider-btn {
  width: 42px;
  height: 42px;
  border: 1px solid var(--primary);
  background: rgba(255, 255, 255, 0.92);
  color: var(--primary);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.slider-btn:hover,
.slider-btn:focus-visible {
  background: var(--primary);
  color: white;
}
.story-card { background: white; border-right: 1px solid var(--line); display: flex; flex-direction: column; }
.story-image { min-height: 240px; background-position: center; background-size: cover; position: relative; }
.story-image::after { content: ""; position: absolute; inset: 0; background: rgba(53,109,220,.05); }
.story-copy { padding: 28px; display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
.eyebrow { color: var(--blue); font-size: 13px; line-height: 1.35; margin: 0 0 14px; font-weight: 700; }
.story-copy h2, .story-copy h3 { margin: 0 0 14px; font-size: 23px; line-height: 1.25; }
.story-copy p:not(.eyebrow) { color: var(--muted); margin: 0 0 22px; }
.outline-button { margin-top: auto; border: 1px solid var(--ink); padding: 9px 18px; text-decoration: none; text-transform: uppercase; font-size: 13px; font-weight: 700; background: white; }
.separator { height: 1px; background: var(--line); }
.programmes, .latest, .videos { padding: 58px max(24px, calc((100vw - 1180px) / 2)); background: white; }
.programmes h2, .latest h2, .videos h2, .grant-stats h2 { margin: 0 0 24px; color: var(--primary); font-size: clamp(33px,4.6vw,62px); line-height: 1.05; }
.programmes p { max-width: 940px; margin: 0 0 32px; font-size: 22px; line-height: 1.45; }
.programme-list { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.programme-list a { min-height: 92px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; align-items: flex-end; font-weight: 700; text-decoration: none; background: #fbfbfa; }
.programme-list a:hover { background: var(--pale-blue); }
.annual { display: grid; grid-template-columns: 1fr 280px; align-items: center; gap: 46px; padding: 56px max(24px, calc((100vw - 1180px) / 2)); background: var(--pale-blue); color: var(--primary); }
.annual h2 { margin: 0 0 28px; font-size: clamp(34px,4vw,55px); line-height: 1.08; }
.annual img { width: 240px; justify-self: end; box-shadow: 0 18px 40px rgba(0,0,0,.26); }
.annual-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.annual-actions a { color: var(--primary); font-weight: 700; }
.grant-stats { background: var(--pale-blue); color: var(--primary); padding: 58px max(24px, calc((100vw - 1180px) / 2)) 66px; text-align: center; }
.stats-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.stats-grid div { min-height: 210px; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.stats-grid strong { display: block; font-size: clamp(78px,10vw,142px); line-height: .9; }
.stats-grid span { max-width: 210px; font-size: 20px; line-height: 1.18; }
.latest-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.compact { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.compact .story-image { min-height: 210px; }
.read-more { margin: 30px 0 0; font-size: 18px; }
.stories-index { padding-top: 10px; }
.stories-load-grid [hidden] { display: none; }
.load-more-row { display: flex; justify-content: center; padding: 42px 0 6px; }
.load-more-button { cursor: pointer; min-width: 150px; }
.load-more-button[hidden] { display: none; }
.video-grid { display: grid; grid-template-columns: repeat(3,1fr); background: rgba(240,240,240,.5); }
.video-card { padding: 0 28px 28px; }
.video-card iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; margin-bottom: 22px; }
.video-card p { font-size: 18px; }
.site-footer { background: var(--primary); color: white; padding: 64px 0 34px; }
.site-footer a { color: white; }
.footer-main { display: grid; grid-template-columns: minmax(280px, 0.9fr) minmax(360px, 1.1fr) minmax(220px, 0.65fr); gap: 34px; align-items: start; margin-bottom: 46px; }
.footer-kicker { margin: 0 0 8px; color: #9ec2ff; font-size: 13px; font-weight: 700; letter-spacing: 0; }
.footer-mission h2 { margin: 0 0 14px; color: white; font-size: clamp(28px,3vw,42px); line-height: 1.04; }
.footer-mission p:not(.footer-kicker) { max-width: 470px; margin: 0 0 22px; color: rgba(255,255,255,.88); font-size: 18px; line-height: 1.55; }
.footer-text-link { font-weight: 700; }
.footer-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.28); border-left: 1px solid rgba(255,255,255,.28); }
.footer-links a { min-height: 172px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 22px; border-right: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid rgba(255,255,255,.28); text-decoration: none; }
.footer-links a:hover,
.footer-links a:focus-visible { background: rgba(255,255,255,.08); outline: 0; }
.footer-links strong { display: block; font-size: 19px; line-height: 1.18; }
.footer-links span { color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.45; }
.social { text-align: right; }
.social p { margin: 0 0 16px; font-weight: 700; }
.social div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.social a { border: 1px solid rgba(255,255,255,.65); min-width: 96px; padding: 10px 12px; text-align: center; text-decoration: none; }
.social a:hover,
.social a:focus-visible { background: white; color: var(--primary); outline: 0; }
.footer-bottom { display: flex; justify-content: space-between; gap: 28px; border-top: 1px solid rgba(255,255,255,.25); padding-top: 28px; }
.footer-bottom div { display: flex; flex-wrap: wrap; gap: 14px 26px; }
.footer-bottom p { margin: 0; text-align: right; }
.cookie-box { position: fixed; right: 18px; bottom: 18px; z-index: 30; width: min(560px, calc(100vw - 36px)); max-height: min(520px, calc(100vh - 36px)); overflow: auto; background: white; border: 1px solid var(--line); box-shadow: 0 20px 55px rgba(30,29,47,.2); padding: 22px; }
.cookie-box[hidden] { display: none; }
.cookie-box h2 { margin: 0 0 10px; font-size: 22px; }
.cookie-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 16px 0; color: var(--muted); }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cookie-actions button { border: 1px solid var(--primary); background: var(--primary); color: white; padding: 8px 12px; cursor: pointer; }
.cookie-actions button:nth-child(n+2) { background: white; color: var(--primary); }
.page-hero { background: var(--primary); color: white; padding: 74px 0 68px; }
.programme-hero { background: var(--primary); color: white; padding: 82px 0 74px; }
.programme-hero .container,
.page-hero .container {
  width: min(1120px, calc(100% - 48px));
}
.programme-hero .eyebrow,
.page-hero .eyebrow {
  color: #7fb0ff;
  font-size: 14px;
  letter-spacing: 0;
  margin-bottom: 18px;
}
.programme-hero h1 {
  max-width: 1120px;
  margin: 0;
  font-size: clamp(38px,4.6vw,66px);
  line-height: 1.08;
  font-weight: 700;
  text-wrap: balance;
}
.programme-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(330px, 420px); justify-content: center; overflow-x: auto; background: var(--soft); }
.programme-slider-shell { background: var(--soft); }
.programme-showcase { padding: 0 0 58px; background: white; }
.programme-showcase .container { width: min(1096px, calc(100% - 96px)); }
.programme-showcase .breadcrumb { margin: 36px 0 18px; }
.programme-showcase-grid { display: grid; grid-template-columns: minmax(340px, .5fr) minmax(0, 1fr); align-items: stretch; }
.programme-intro-panel { display: flex; flex-direction: column; justify-content: flex-start; min-height: 444px; padding: 42px 36px; color: white; }
.environment-showcase .programme-intro-panel { background: #969537; }
.gci-showcase .programme-intro-panel { background: #0b4462; }
.housing-showcase .programme-intro-panel { background: #4d4f91; }
.women-showcase .programme-intro-panel { background: #7f315a; }
.ihr-showcase .programme-intro-panel { background: #274d73; }
.learning-showcase .programme-intro-panel { background: #3f6d63; }
.latam-showcase .programme-intro-panel { background: #a84f38; }
.denmark-showcase .programme-intro-panel { background: #e6673e; }
.pcsa-showcase .programme-intro-panel { background: #1eaccc; }
.special-showcase .programme-intro-panel { background: #448993; }
.zimbabwe-showcase .programme-intro-panel { background: #ffc212; color: var(--primary); }
.programme-intro-panel p { margin: 0 0 28px; font-size: 20px; line-height: 1.25; }
.programme-intro-panel h1 { margin: 0; max-width: 330px; color: white; font-size: clamp(35px,3.25vw,42px); line-height: 1.16; text-wrap: balance; }
.zimbabwe-showcase .programme-intro-panel h1 { color: var(--primary); }
.programme-feature-shell { overflow: hidden; background: var(--soft); }
.programme-feature-track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.programme-feature-track::-webkit-scrollbar { display: none; }
.programme-feature-card { position: relative; min-height: 444px; border: 0; background-size: cover; background-position: center; scroll-snap-align: start; }
.programme-feature-card::before { content: ""; position: absolute; inset: 0; background: rgba(53,109,220,.05); }
.programme-feature-copy { position: absolute; top: 18px; right: 0; width: min(465px, calc(100% - 50px)); min-height: 230px; padding: 22px 28px; background: rgba(255,255,255,.82); }
.programme-feature-copy .eyebrow { margin-bottom: 14px; color: #969537; text-transform: uppercase; font-size: 14px; }
.gci-showcase .programme-feature-copy .eyebrow { color: #4d5aa3; }
.housing-showcase .programme-feature-copy .eyebrow { color: #4d4f91; }
.women-showcase .programme-feature-copy .eyebrow { color: #7f315a; }
.ihr-showcase .programme-feature-copy .eyebrow { color: #274d73; }
.learning-showcase .programme-feature-copy .eyebrow { color: #3f6d63; }
.denmark-showcase .programme-feature-copy .eyebrow { color: #e6673e; }
.pcsa-showcase .programme-feature-copy .eyebrow { color: #1e7f96; }
.special-showcase .programme-feature-copy .eyebrow { color: #448993; }
.zimbabwe-showcase .programme-feature-copy .eyebrow { color: #8b6900; }
.programme-feature-copy h2 { margin: 0 0 16px; color: var(--primary); font-size: clamp(23px,2.1vw,29px); line-height: 1.14; }
.programme-feature-copy p:not(.eyebrow) { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 20px; color: var(--ink); font-size: 17px; line-height: 1.45; }
.programme-feature-copy .outline-button { margin-top: 0; background: transparent; border-color: #969537; color: var(--primary); }
.gci-showcase .programme-feature-copy .outline-button { border-color: #4d5aa3; }
.housing-showcase .programme-feature-copy .outline-button { border-color: #4d4f91; }
.women-showcase .programme-feature-copy .outline-button { border-color: #7f315a; }
.ihr-showcase .programme-feature-copy .outline-button { border-color: #274d73; }
.learning-showcase .programme-feature-copy .outline-button { border-color: #3f6d63; }
.denmark-showcase .programme-feature-copy .outline-button { border-color: #e6673e; }
.pcsa-showcase .programme-feature-copy .outline-button { border-color: #1eaccc; }
.special-showcase .programme-feature-copy .outline-button { border-color: #448993; }
.zimbabwe-showcase .programme-feature-copy .outline-button { border-color: #ffc212; }
.programme-feature-shell .slider-controls { inset: auto 16px 16px 16px; justify-content: space-between; }
.programme-feature-shell .slider-btn { border-color: #969537; background: rgba(255,255,255,.88); color: #969537; }
.gci-showcase .programme-feature-shell .slider-btn { border-color: #4d5aa3; color: #4d5aa3; }
.housing-showcase .programme-feature-shell .slider-btn { border-color: #4d4f91; color: #4d4f91; }
.women-showcase .programme-feature-shell .slider-btn { border-color: #7f315a; color: #7f315a; }
.ihr-showcase .programme-feature-shell .slider-btn { border-color: #274d73; color: #274d73; }
.learning-showcase .programme-feature-shell .slider-btn { border-color: #3f6d63; color: #3f6d63; }
.denmark-showcase .programme-feature-shell .slider-btn { border-color: #e6673e; color: #e6673e; }
.pcsa-showcase .programme-feature-shell .slider-btn { border-color: #1eaccc; color: #1e7f96; }
.special-showcase .programme-feature-shell .slider-btn { border-color: #448993; color: #448993; }
.zimbabwe-showcase .programme-feature-shell .slider-btn { border-color: #ffc212; color: #8b6900; }
.programme-content, .what-we-fund { padding: 62px 0; background: white; }
.programme-content h2, .what-we-fund h2 { margin: 0 0 24px; color: var(--primary); font-size: clamp(34px,4vw,56px); line-height: 1.06; }
.programme-content p { font-size: 22px; line-height: 1.55; color: var(--ink); }
.denmark-info-section { padding: 0 0 62px; background: white; }
.denmark-info-section article { border-top: 1px solid var(--line); padding: 34px 0; }
.denmark-info-section article:last-child { border-bottom: 1px solid var(--line); }
.denmark-info-section h2 { margin: 0 0 16px; color: var(--primary); font-size: clamp(30px,3.4vw,44px); line-height: 1.08; }
.denmark-info-section p { margin: 0 0 12px; color: var(--ink); font-size: 21px; line-height: 1.55; }
.denmark-info-section strong { color: #e6673e; }
.what-we-fund { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fund-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.fund-grid article { min-height: 360px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
.fund-grid h3 { margin: 0 0 8px; font-size: 29px; color: var(--primary); }
.fund-grid p { margin: 0; color: var(--muted); font-size: 18px; }
.fund-grid strong { margin-top: auto; color: var(--primary); }
.fund-grid span { color: var(--muted); }
.fund-tabs { border-bottom: 1px solid var(--line); padding-bottom: 48px; }
.fund-tab-list { display: flex; flex-wrap: wrap; gap: 34px; margin: -10px 0 30px; }
.fund-tab-list button { position: relative; border: 0; background: transparent; color: var(--primary); padding: 0 0 8px; font: inherit; font-size: 18px; font-weight: 700; cursor: pointer; }
.fund-tab-list button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #969537; }
.fund-panel h3 { max-width: 1120px; margin: 0 0 20px; color: #969537; font-size: clamp(28px,3vw,37px); line-height: 1.18; }
.gci-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #4d5aa3; }
.gci-fund-tabs-section .fund-panel h3 { color: #4d5aa3; }
.housing-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #4d4f91; }
.housing-fund-tabs-section .fund-panel h3 { color: #4d4f91; }
.women-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #7f315a; }
.women-fund-tabs-section .fund-panel h3 { color: #7f315a; }
.ihr-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #274d73; }
.ihr-fund-tabs-section .fund-panel h3 { color: #274d73; }
.learning-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #3f6d63; }
.learning-fund-tabs-section .fund-panel h3 { color: #3f6d63; }
.latam-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #a84f38; }
.latam-fund-tabs-section .fund-panel h3 { color: #a84f38; }
.pcsa-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #1eaccc; }
.pcsa-fund-tabs-section .fund-panel h3 { color: #1e7f96; }
.zimbabwe-fund-tabs-section .fund-tab-list button[aria-selected="true"]::after { background: #ffc212; }
.zimbabwe-fund-tabs-section .fund-panel h3 { color: #8b6900; }
.fund-panel p { max-width: 1100px; margin: 0 0 16px; color: var(--ink); font-size: 21px; line-height: 1.55; }
.video-grid.single { grid-template-columns: minmax(0, 760px); justify-content: start; }
.video-grid.three-col { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.video-grid.three-col .video-card { padding: 0 18px 24px; }
.video-grid.three-col .video-card iframe { margin-bottom: 16px; }
.video-grid.three-col .video-card p { font-size: 16px; line-height: 1.45; }
.values-page { background: white; padding: 72px 0 56px; }
.values-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 72px; align-items: start; }
.values-layout h1 { margin: 0 0 36px; color: var(--primary); font-size: clamp(44px,6vw,86px); line-height: 1; }
.values-list { display: grid; gap: 24px; }
.values-list article { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.values-list h2 { margin: 0 0 8px; color: var(--primary); font-size: 24px; line-height: 1.2; }
.values-list p { margin: 0; color: var(--muted); font-size: 19px; line-height: 1.55; }
.values-illustration { position: sticky; top: 132px; padding-top: 12px; }
.values-illustration img { width: 242px; margin-left: auto; }
.wide-separator { height: 1px; background: var(--line); margin: 0 max(24px, calc((100vw - 1180px) / 2)); }
.mission-band { padding: 52px 0; text-align: center; background: white; }
.mission-band h2 { margin: 0 0 18px; color: var(--primary); font-size: clamp(34px,4vw,56px); }
.mission-band p { margin: 0 auto; max-width: 760px; color: var(--primary); font-size: 28px; line-height: 1.32; font-weight: 700; }
.history-section { padding: 62px 0 76px; background: white; }
.history-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 72px; }
.history-grid h2 { margin: 0; color: var(--primary); font-size: clamp(34px,4vw,56px); line-height: 1.08; }
.history-grid h3 { margin: 34px 0 10px; color: var(--primary); font-size: 26px; }
.history-grid p { margin: 0 0 20px; color: var(--ink); font-size: 20px; line-height: 1.6; }
.editorial-page { padding: 86px 0 82px; background: white; }
.compact-editorial { padding-top: 76px; }
.editorial-grid { display: grid; grid-template-columns: minmax(360px, 0.42fr) minmax(0, 1fr); gap: 72px; align-items: start; }
.editorial-grid aside { position: static; }
.editorial-grid h1 { margin: 0; color: var(--primary); font-size: clamp(40px,4.35vw,62px); line-height: 1.08; text-wrap: balance; overflow-wrap: normal; hyphens: none; }
.editorial-copy .lead { margin: 0 0 34px; color: var(--ink); font-size: 22px; line-height: 1.58; }
.editorial-sections { display: grid; gap: 0; border-top: 1px solid var(--line); }
.editorial-sections article { padding: 24px 0; border-bottom: 1px solid var(--line); }
.editorial-sections h2 { margin: 0 0 10px; color: var(--primary); font-size: 25px; line-height: 1.18; }
.editorial-sections p { margin: 0; color: var(--muted); font-size: 19px; line-height: 1.58; }
.cbod-page { padding-top: 74px; }
.cbod-page .editorial-grid { display: block; }
.cbod-page .editorial-grid aside { max-width: 1040px; margin-bottom: 32px; }
.cbod-page .editorial-grid h1 { max-width: 980px; font-size: clamp(42px,5vw,70px); line-height: 1.02; }
.cbod-page .editorial-copy { max-width: 1040px; }
.cbod-page .editorial-copy .lead { max-width: 920px; font-size: 24px; line-height: 1.5; }
.cbod-intro { margin: 0 0 26px; color: var(--ink); font-size: 21px; line-height: 1.55; }
.support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.support-grid article { min-height: 230px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fbfbfa; }
.support-grid h2 { margin: 0 0 12px; color: var(--primary); font-size: 29px; line-height: 1.12; }
.support-grid p { margin: 0; color: var(--muted); font-size: 19px; line-height: 1.58; }
.access-callout { margin-top: 34px; padding: 28px; background: var(--pale-blue); color: var(--primary); }
.access-callout h2 { margin: 0 0 10px; font-size: 30px; line-height: 1.12; }
.access-callout p { margin: 0; font-size: 20px; line-height: 1.5; }
.latest-grid.two-col, .video-grid.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cbod-stories h2, .cbod-videos h2 { max-width: 1040px; font-size: clamp(34px,3.7vw,52px); line-height: 1.08; text-wrap: balance; }
.section-lead { max-width: 880px; margin: -6px 0 30px; color: var(--muted); font-size: 21px; line-height: 1.5; }
.principles-section { padding: 68px 0; background: white; }
.principles-grid { display: grid; grid-template-columns: minmax(300px, 0.86fr) minmax(0, 1fr); gap: 62px; align-items: start; }
.principles-image { display: grid; place-items: center; padding: 24px; background: #fbfbfa; border: 1px solid var(--line); }
.principles-image img { width: min(100%, 500px); }
.principles-grid h2 { margin: 0 0 18px; color: var(--primary); font-size: clamp(34px,4vw,56px); line-height: 1.06; }
.principles-grid > div > p { margin: 0 0 24px; color: var(--muted); font-size: 21px; line-height: 1.5; }
.principles-list { display: grid; border-top: 1px solid var(--line); }
.principles-list article { padding: 18px 0; border-bottom: 1px solid var(--line); }
.principles-list h3 { margin: 0 0 6px; color: var(--primary); font-size: 22px; line-height: 1.15; }
.principles-list p { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.5; }
.publication-feature-section { padding: 64px 0 78px; background: white; }
.publication-feature { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 42px; align-items: center; padding: 32px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.publication-feature img { width: 220px; }
.publication-feature h2 { margin: 0 0 16px; color: var(--primary); font-size: clamp(32px,3.2vw,48px); line-height: 1.08; }
.publication-feature p:not(.eyebrow) { margin: 0 0 24px; max-width: 780px; color: var(--muted); font-size: 20px; line-height: 1.55; }
.breadcrumb { margin: 36px 0 18px; color: var(--muted); font-size: 15px; }
.breadcrumb a { color: var(--muted); }
.safeguarding-hero { padding: 0 0 48px; background: white; }
.safeguarding-hero-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, 0.92fr); gap: 42px; align-items: center; padding: 38px; background: #073966; color: white; }
.safeguarding-hero h1 { margin: 0 0 28px; color: white; font-size: clamp(38px,4.3vw,56px); line-height: 1.08; text-wrap: balance; }
.safeguarding-intro { max-width: 540px; }
.safeguarding-intro p { margin: 0 0 26px; color: white; font-size: 20px; line-height: 1.5; font-weight: 400; }
.safeguarding-intro p:last-child { margin-bottom: 0; }
.safeguarding-hero video { width: 100%; background: var(--primary); }
.safeguarding-detail-section { padding: 54px 0 70px; background: white; }
.safeguarding-detail-section h2, .safeguarding-policy-section h2 { margin: 0 0 24px; color: var(--primary); font-size: clamp(30px,3vw,42px); line-height: 1.08; }
.safeguarding-copy { max-width: 1110px; }
.safeguarding-copy p { margin: 0 0 24px; color: var(--ink); font-size: 20px; line-height: 1.62; }
.safeguarding-policy-section { padding: 56px 0 82px; background: white; }
.section-heading-row { display: block; margin-bottom: 34px; }
.section-heading-row p { margin: 0; max-width: 1110px; color: var(--ink); font-size: 20px; line-height: 1.6; }
.policy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.policy-grid article { display: flex; flex-direction: column; align-items: stretch; min-height: 540px; border: 1px solid var(--line); background: white; }
.policy-grid img { width: 100%; height: 78px; object-fit: cover; background: #12335c; }
.policy-grid article > div { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 22px 18px 24px; }
.policy-grid .eyebrow { text-transform: uppercase; color: #073966; font-size: 13px; }
.policy-grid h3 { margin: 0 0 22px; color: var(--primary); font-size: 27px; line-height: 1.16; }
.policy-grid p:not(.eyebrow) { margin: 0 0 22px; color: var(--ink); font-size: 17px; line-height: 1.58; }
.careers-showcase { padding: 0 0 46px; background: white; }
.careers-showcase .container { width: min(1610px, calc(100% - 96px)); }
.careers-showcase-grid { display: grid; grid-template-columns: minmax(410px, 0.5fr) minmax(0, 1fr); align-items: stretch; }
.careers-intro-panel { display: flex; flex-direction: column; justify-content: center; min-height: 560px; padding: 46px 44px; background: #073966; color: white; }
.careers-intro-panel p:first-child { margin: 0 0 28px; font-size: 21px; line-height: 1.25; }
.careers-intro-panel h1 { margin: 0 0 28px; max-width: 460px; color: white; font-size: clamp(37px,3.15vw,50px); line-height: 1.14; text-wrap: balance; }
.careers-intro-panel p:last-child { margin: 0; max-width: 470px; color: white; font-size: 20px; line-height: 1.48; }
.careers-feature-shell { overflow: hidden; background: var(--primary); }
.career-feature-track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.career-feature-track::-webkit-scrollbar { display: none; }
.career-feature-card { position: relative; min-height: 560px; border: 0; background-size: cover; background-position: center; scroll-snap-align: start; }
.career-feature-card::before { content: ""; position: absolute; inset: 0; background: rgba(30,29,47,.12); }
.career-feature-copy { position: absolute; top: 34px; right: 26px; width: min(660px, calc(100% - 52px)); padding: 28px; background: rgba(255,255,255,.82); backdrop-filter: blur(1px); }
.career-feature-copy .eyebrow { margin-bottom: 16px; color: #655e9b; text-transform: uppercase; font-size: 16px; }
.career-feature-copy h2 { margin: 0 0 22px; color: var(--primary); font-size: clamp(25px,2.5vw,33px); line-height: 1.18; }
.career-feature-copy p:not(.eyebrow) { margin: 0 0 30px; color: var(--ink); font-size: 20px; line-height: 1.52; }
.career-feature-copy .outline-button { margin-top: 0; background: transparent; }
.careers-feature-shell .slider-controls { inset: auto 22px 22px 22px; justify-content: space-between; }
.careers-feature-shell .slider-btn { background: rgba(255,255,255,.88); }
.careers-openings, .careers-diversity, .careers-data { padding: 58px 0 72px; background: white; }
.careers-openings h2, .careers-two-column h2, .careers-data h2 { margin: 0 0 28px; color: var(--primary); font-size: clamp(34px,4vw,56px); line-height: 1.06; }
.job-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 34px; align-items: center; padding: 30px; border: 1px solid var(--line); background: #fbfbfa; }
.job-card h3 { margin: 0 0 12px; color: var(--primary); font-size: 30px; line-height: 1.15; }
.job-card p:not(.eyebrow) { margin: 0; max-width: 760px; color: var(--muted); font-size: 19px; line-height: 1.55; }
.careers-two-column { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 64px; align-items: start; }
.careers-two-column > div p, .careers-data p { margin: 0 0 22px; color: var(--ink); font-size: 20px; line-height: 1.62; }
.career-publication-card { border: 1px solid var(--line); background: white; }
.career-publication-card img { width: 100%; height: 78px; object-fit: cover; background: #12335c; }
.career-publication-card .eyebrow, .career-publication-card h3, .career-publication-card p, .career-publication-card a { margin-left: 22px; margin-right: 22px; }
.career-publication-card .eyebrow { margin-top: 22px; text-transform: uppercase; color: #073966; }
.career-publication-card h3 { margin-top: 0; margin-bottom: 18px; color: var(--primary); font-size: 27px; line-height: 1.14; }
.career-publication-card p:not(.eyebrow) { margin-top: 0; margin-bottom: 22px; color: var(--ink); font-size: 17px; line-height: 1.58; }
.career-publication-card .outline-button { margin-bottom: 24px; }
.careers-data-grid { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 70px; align-items: center; }
.careers-data-grid img { width: 220px; justify-self: center; }
.page-hero h1 { margin: 0 0 18px; max-width: 1120px; font-size: clamp(38px,4.6vw,66px); line-height: 1.08; text-wrap: balance; }
.page-hero p:not(.eyebrow) { max-width: 760px; margin: 0; font-size: 22px; }
.page-content { padding: 62px 0 76px; background: white; }
.narrow { max-width: 840px; }
.page-content p { font-size: 22px; line-height: 1.55; color: var(--ink); }
.page-block { margin-top: 42px; }
.page-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.story-detail-image { min-height: 420px; background-size: cover; background-position: center; }
.story-detail-copy { padding-top: 54px; padding-bottom: 74px; }
.story-detail-copy h1 { margin: 0 0 22px; font-size: clamp(36px,5vw,64px); line-height: 1.08; }
.story-detail-copy p { font-size: 21px; }
.programme-story-detail { padding: 44px 0 84px; background: white; }
.story-title-container { width: min(1096px, calc(100% - 96px)); }
.programme-story-detail h1 { max-width: 900px; margin: 0 0 24px 94px; color: var(--primary); font-size: clamp(38px,4.1vw,52px); line-height: 1.08; }
.programme-story-detail .breadcrumb { margin: 0 0 34px 94px; color: #9aa0aa; }
.story-hero-figure { width: min(1096px, calc(100% - 96px)); margin-top: 0; margin-bottom: 44px; }
.story-hero-figure img { width: 100%; max-height: 620px; object-fit: cover; }
.story-hero-figure figcaption { margin-top: 10px; color: var(--muted); font-size: 14px; }
.story-detail-layout { width: min(920px, calc(100% - 96px)); display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 54px; align-items: start; }
.story-meta { border-top: 4px solid #969537; padding-top: 18px; }
.story-meta .eyebrow { color: #969537; text-transform: uppercase; }
.story-meta p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.5; }
.story-article-copy h2 { margin: 36px 0 14px; color: var(--primary); font-size: clamp(26px,2.6vw,34px); line-height: 1.16; }
.story-article-copy p { margin: 0 0 22px; color: var(--ink); font-size: 20px; line-height: 1.64; }
.story-video { margin: 36px 0; }
.story-video iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.story-navigation { display: flex; justify-content: space-between; gap: 20px; margin-top: 42px; padding-top: 24px; border-top: 1px solid var(--line); }
.story-navigation a { color: var(--primary); font-weight: 700; }
.result-list { display: grid; gap: 12px; }
.result-list a { display: grid; gap: 4px; padding: 18px; border: 1px solid var(--line); text-decoration: none; }
.result-list a:hover { background: var(--pale-blue); }
.result-list span { color: var(--muted); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 26px; }
.filter-bar span { font-weight: 700; color: var(--primary); margin-right: 10px; }
.filter-bar button { border: 1px solid var(--line); background: white; color: var(--primary); padding: 10px 14px; cursor: pointer; }
.publication-filter-bar { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 12px; margin: 0 0 30px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.publication-filter-bar > span { margin-right: 4px; color: var(--primary); font-weight: 700; }
.publication-filter-bar select,
.publication-reset { min-width: 190px; height: 45px; border: 1px solid var(--line); border-radius: 0; background: white; color: var(--primary); padding: 0 42px 0 15px; font: inherit; cursor: pointer; }
.publication-reset { min-width: 126px; padding: 0 15px; }
.publication-reset[hidden],
.publication-empty[hidden],
.publication-grid article[hidden] { display: none; }
.publication-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.publication-grid.row-layout { grid-template-columns: 1fr; border-left: 0; }
.highlight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.highlight-grid article { min-height: 210px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fbfbfa; }
.highlight-grid h2 { margin: 0 0 14px; color: var(--primary); font-size: 28px; line-height: 1.15; }
.highlight-grid p { font-size: 18px; color: var(--muted); }
.publication-grid article { min-height: 220px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; align-items: flex-start; }
.publication-grid.row-layout article { min-height: 120px; display: grid; grid-template-columns: minmax(210px, .32fr) minmax(0, 1fr) auto; gap: 28px; align-items: center; padding: 25px 0; border-right: 0; }
.publication-grid h2 { margin: 0 0 14px; color: var(--primary); font-size: 28px; line-height: 1.15; }
.publication-grid p { font-size: 18px; color: var(--muted); }
.publication-grid.row-layout h2 { margin-bottom: 10px; font-size: clamp(24px,2.2vw,34px); }
.publication-grid.row-layout p { margin: 0; font-size: 18px; line-height: 1.55; }
.publication-grid.row-layout .publication-meta { align-self: stretch; padding-right: 24px; border-right: 4px solid #6f6aaa; }
.publication-grid.row-layout .publication-meta .eyebrow { margin: 0 0 10px; color: #6f6aaa; text-transform: uppercase; font-size: 13px; line-height: 1.35; }
.publication-grid.row-layout .publication-meta span { color: var(--muted); font-size: 16px; }
.publication-grid.row-layout .outline-button { white-space: nowrap; }
.publication-empty { margin: 28px 0 0; color: var(--muted); font-size: 18px; text-align: center; }
.publication-detail { padding: 44px 0 84px; background: white; }
.publication-detail .story-title-container h1 { max-width: 980px; margin-left: 94px; color: var(--primary); font-size: clamp(40px,5vw,76px); line-height: 1; }
.publication-detail-copy .outline-button { margin-top: 10px; }
.publication-detail-meta { border-top-color: #6f6aaa; }
.publication-detail-meta .eyebrow { color: #6f6aaa; }
.latest-grants-page { background: white; color: var(--primary); }
.latest-grants-hero { padding: 84px 0 30px; }
.latest-grants-container,
.latest-grants-report-inner { width: min(1120px, calc(100% - 96px)); }
.latest-grants-hero h1 { margin: 0 0 28px; color: var(--primary); font-size: clamp(58px,8vw,116px); line-height: .95; }
.latest-grants-hero p { max-width: 980px; margin: 0; color: var(--primary); font-size: clamp(22px,2.2vw,32px); line-height: 1.35; }
.latest-grants-report { padding: 18px 0 92px; }
.latest-grants-report-inner { display: flex; flex-direction: column; align-items: center; }
.latest-grants-cover { margin: 0 0 34px; width: min(100%, 520px); text-align: center; }
.latest-grants-cover img { display: block; width: 100%; height: auto; box-shadow: 0 22px 48px rgba(30,29,47,.18); }
.latest-grants-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.latest-grants-actions .outline-button { margin-top: 0; min-width: 168px; text-align: center; }
.grant-making-page { background: white; }
.grant-hero { padding: 72px 0 54px; }
.grant-hero .container,
.grant-section .container,
.grant-snapshot .container,
.grant-cta .container { width: min(1120px, calc(100% - 96px)); }
.grant-hero h1 { max-width: 880px; margin: 0 0 36px; color: var(--primary); font-size: clamp(58px,8vw,116px); line-height: .94; }
.grant-hero-copy { max-width: 900px; margin-left: auto; }
.grant-hero-copy p { margin: 0 0 22px; color: var(--ink); font-size: 22px; line-height: 1.55; }
.grant-snapshot { padding: 16px 0 58px; }
.grant-snapshot-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.grant-snapshot article { min-height: 205px; padding: 34px 42px 30px 0; border-right: 1px solid var(--line); }
.grant-snapshot article:last-child { padding-left: 42px; border-right: 0; }
.grant-snapshot strong { display: block; margin-bottom: 16px; color: var(--primary); font-size: clamp(44px,5vw,72px); line-height: .95; }
.grant-snapshot p { max-width: 330px; margin: 0; color: var(--ink); font-size: 22px; line-height: 1.4; }
.grant-section { padding: 58px 0; border-top: 1px solid var(--line); }
.grant-two-column { display: grid; grid-template-columns: minmax(240px, .38fr) minmax(0, 1fr); gap: 72px; align-items: start; }
.grant-two-column h2,
.grant-section-heading h2,
.grant-cta h2 { margin: 0; color: var(--primary); font-size: clamp(38px,4.2vw,62px); line-height: 1; }
.grant-two-column p,
.grant-section-heading p,
.grant-note,
.grant-cta p { margin: 0 0 22px; color: var(--ink); font-size: 20px; line-height: 1.6; }
.grant-section-heading { max-width: 900px; margin-bottom: 34px; }
.grant-section-heading h2 { margin-bottom: 22px; }
.grant-pathways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.grant-pathways article { min-height: 285px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.grant-pathways h3,
.grant-two-column h3 { margin: 0 0 14px; color: var(--primary); font-size: 28px; line-height: 1.12; }
.grant-pathways p { margin: 0 0 22px; color: var(--ink); font-size: 18px; line-height: 1.55; }
.grant-pathways a { color: var(--primary); font-weight: 700; }
.grant-timeline { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.grant-timeline li { display: grid; grid-template-columns: 120px minmax(0, 1fr) 180px; gap: 26px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--line); }
.grant-timeline span { color: var(--blue); font-weight: 700; }
.grant-timeline strong { color: var(--primary); font-size: 26px; line-height: 1.15; }
.grant-timeline em { color: var(--muted); font-style: normal; font-size: 18px; }
.grant-note { max-width: 860px; margin-top: 28px; }
.grant-principles ul,
.grant-two-column ul { margin: 0; padding-left: 22px; color: var(--ink); font-size: 20px; line-height: 1.65; }
.grant-cta { padding: 72px 0 82px; background: var(--primary); color: white; }
.grant-cta h2 { max-width: 620px; color: white; margin-bottom: 22px; }
.grant-cta p { max-width: 820px; color: white; }
.grant-container { width: min(1140px, calc(100% - 48px)); padding: 28px 0 72px; }
.grant-breadcrumb { margin: 0 0 24px; color: #8a929e; font-size: 18px; }
.grant-breadcrumb a { color: #8a929e; }
.grant-top-panel { display: grid; grid-template-columns: 1.05fr .75fr .9fr; gap: 0; background: rgba(203,229,247,.42); padding: 42px; align-items: stretch; }
.grant-intro-column { padding-right: 34px; }
.grant-intro-column h1 { margin: 0 0 26px; color: var(--primary); font-size: clamp(46px,5.5vw,78px); line-height: .98; }
.grant-intro-column p,
.grant-flow-section p,
.grant-flow-section li { color: var(--ink); font-size: 20px; line-height: 1.55; }
.grant-intro-column p { margin: 0 0 22px; }
.grant-stats-column { display: grid; align-content: center; padding: 0 32px; }
.grant-stats-column article { text-align: center; }
.grant-stats-column strong { display: block; color: var(--primary); font-size: clamp(40px,4.2vw,56px); line-height: 1; }
.grant-stats-column p { margin: 12px 0; color: var(--ink); font-size: 20px; line-height: 1.35; }
.grant-stats-column hr,
.grant-separator { width: 100%; height: 1px; border: 0; background: var(--line); }
.grant-stats-column hr { margin: 34px 0; }
.grant-support-card { display: flex; flex-direction: column; justify-content: center; background: var(--primary); color: white; padding: 40px 34px; }
.grant-support-card h2 { margin: 0 0 22px; color: white; font-size: clamp(28px,3vw,42px); line-height: 1.08; }
.grant-support-card p { margin: 0; color: white; font-size: 20px; line-height: 1.55; }
.grant-separator { margin: 54px 0 24px; }
.grant-flow-section { margin: 0 0 54px; }
.grant-flow-section h2 { margin: 0 0 22px; color: var(--primary); font-size: clamp(34px,3.7vw,54px); line-height: 1.05; }
.grant-flow-section p { max-width: 980px; margin: 0 0 22px; }
.grant-flow-section a { color: var(--primary); font-weight: 700; }
.grant-pathway-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 34px 0 20px; }
.grant-pathway-grid article { background: rgba(203,229,247,.42); padding: 34px; min-height: 270px; }
.grant-pathway-grid p { margin: 0; }
.grant-card-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 34px 0; padding: 0; list-style: none; border-top: 1px solid rgba(203,229,247,.85); border-left: 1px solid rgba(203,229,247,.85); }
.grant-card-timeline li { min-height: 220px; display: grid; align-content: start; gap: 14px; padding: 34px 24px; text-align: center; border-right: 1px solid rgba(203,229,247,.85); border-bottom: 1px solid rgba(203,229,247,.85); }
.grant-card-timeline span { color: var(--primary); font-size: 22px; }
.grant-card-timeline strong { color: var(--primary); font-size: 26px; line-height: 1.12; }
.grant-card-timeline em { color: var(--ink); font-style: normal; font-size: 20px; line-height: 1.35; }
.grant-flow-section ul { max-width: 940px; margin: 0 0 24px; padding-left: 28px; }
.grant-additional-grid { display: grid; grid-template-columns: 1fr 360px; gap: 48px; align-items: stretch; }
.grant-enquiry-card { background: var(--primary); color: white; padding: 36px; }
.grant-enquiry-card h3 { margin: 0 0 22px; color: white; font-size: 32px; line-height: 1.12; }
.grant-enquiry-card p { color: white; font-size: 19px; }
.enquiry-page { background: white; }
.enquiry-container { width: min(1180px, calc(100% - 48px)); padding: 28px 0 82px; }
.enquiry-breadcrumb { margin: 0 0 24px; color: #8a929e; font-size: 18px; }
.enquiry-breadcrumb a { color: #8a929e; }
.enquiry-hero-panel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); gap: 0; align-items: stretch; background: rgba(203,229,247,.42); }
.enquiry-hero-copy { padding: 48px 54px 52px; }
.enquiry-hero-copy h1 { margin: 0 0 28px; max-width: 760px; color: var(--primary); font-size: clamp(52px,6.2vw,92px); line-height: .96; }
.enquiry-hero-copy p { max-width: 760px; margin: 0; color: var(--ink); font-size: 24px; line-height: 1.48; }
.enquiry-notice { display: flex; flex-direction: column; justify-content: center; background: var(--primary); color: white; padding: 46px 40px; }
.enquiry-notice h2 { margin: 0 0 22px; color: white; font-size: clamp(30px,3vw,44px); line-height: 1.05; }
.enquiry-notice p { margin: 0; color: white; font-size: 20px; line-height: 1.55; }
.enquiry-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 34px 0 52px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.enquiry-info-grid article { min-height: 250px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.enquiry-info-grid h2 { margin: 0 0 14px; color: var(--primary); font-size: 27px; line-height: 1.12; }
.enquiry-info-grid p { margin: 0; color: var(--ink); font-size: 19px; line-height: 1.55; }
.enquiry-form-section { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 52px; align-items: start; padding-top: 46px; border-top: 1px solid var(--line); }
.enquiry-form-heading { position: sticky; top: 104px; }
.enquiry-form-heading h2 { margin: 0 0 18px; color: var(--primary); font-size: clamp(36px,3.8vw,58px); line-height: 1; }
.enquiry-form-heading p { margin: 0; color: var(--ink); font-size: 20px; line-height: 1.55; }
.enquiry-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.stats-grid.mini { margin-bottom: 34px; }
.stats-grid.mini strong { font-size: clamp(38px,5vw,64px); line-height: 1; }
.timeline { counter-reset: steps; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.timeline li { display: grid; grid-template-columns: 90px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.timeline li::before { counter-increment: steps; content: "Paso " counter(steps); color: var(--blue); font-weight: 700; }
.timeline span { display: block; color: var(--muted); }
.team-page { background: white; }
.team-intro { padding: 70px 0 34px; }
.team-intro .container,
.team-directory .container { width: min(1280px, calc(100% - 96px)); }
.team-intro h1 { margin: 0 0 26px; color: var(--primary); font-size: clamp(50px,6.4vw,94px); line-height: .96; }
.team-lead { max-width: 1040px; }
.team-lead p { margin: 0 0 24px; color: var(--ink); font-size: 21px; line-height: 1.62; }
.team-directory { padding: 12px 0 82px; }
.team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 34px; row-gap: 56px; }
.team-grid article { min-width: 0; }
.team-grid img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: #f3f3f0; margin-bottom: 22px; }
.team-grid h2 { margin: 0 0 7px; color: var(--primary); font-size: clamp(22px,1.65vw,28px); line-height: 1.08; }
.team-grid p { margin: 0; font-size: 18px; line-height: 1.35; color: var(--primary); font-weight: 700; }
.team-grid span { display: block; margin-top: 2px; color: var(--ink); font-size: 18px; line-height: 1.35; }
.avatar { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--pale-blue); color: var(--primary); font-weight: 700; font-size: 28px; }
.grant-table { display: grid; gap: 0; border-top: 1px solid var(--line); }
.grant-table article { padding: 24px 0; border-bottom: 1px solid var(--line); }
.grant-table h2 { margin: 0 0 8px; font-size: 28px; }
.grant-table p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 18px; }
.contact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.contact-grid article { min-height: 210px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.contact-grid h2 { margin: 0 0 12px; font-size: 30px; }
.contact-grid p { font-size: 18px; color: var(--muted); }
.enquiry-form { display: grid; gap: 18px; padding: 34px; background: #f7f7f4; border: 1px solid var(--line); }
.enquiry-form h2 { margin: 22px 0 0; color: var(--primary); font-size: 30px; }
.enquiry-form h2:first-of-type { margin-top: 0; }
.enquiry-form label { display: grid; gap: 8px; font-weight: 700; }
.enquiry-form label span,
.checkbox-group legend span,
.privacy-check span { color: #b00020; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { width: 100%; border: 1px solid var(--line); padding: 13px 14px; background: white; color: var(--ink); font: inherit; }
.enquiry-form .checkbox { display: flex; align-items: center; gap: 10px; }
.enquiry-form .checkbox input { width: auto; }
.enquiry-form button { justify-self: start; border: 1px solid var(--primary); background: var(--primary); color: white; padding: 13px 28px; cursor: pointer; font-weight: 700; }
.checkbox-group { display: grid; gap: 12px; margin: 4px 0; padding: 0; border: 0; }
.checkbox-group legend { margin-bottom: 4px; color: var(--primary); font-weight: 700; }
.checkbox-group .checkbox,
.privacy-check { font-weight: 400; }
.privacy-check a { color: var(--primary); text-decoration: underline; }
.field-error { margin: -4px 0 0; color: #b00020; font-size: 15px; }
.form-status { padding: 14px 16px; border: 1px solid; font-weight: 700; }
.form-status[hidden] { display: none; }
.form-status.success { border-color: #3e7d46; background: #e7f4e9; color: #1f5c28; }
.form-status.error { border-color: #b00020; background: #fdebec; color: #8f001a; }
.donation-page { background: white; color: var(--primary); }
.donation-hero { padding: 36px 0 54px; background: #f7f7f4; }
.donation-hero .container,
.donation-form-section .container { width: min(1120px, calc(100% - 96px)); }
.donation-hero .breadcrumb { margin: 0 0 24px; }
.donation-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 56px; align-items: center; }
.donation-hero h1 { max-width: 760px; margin: 0 0 22px; color: var(--primary); font-size: clamp(50px,6.8vw,92px); line-height: .96; }
.donation-hero p:not(.eyebrow) { max-width: 720px; margin: 0; color: var(--ink); font-size: 23px; line-height: 1.45; }
.donation-hero img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 22px 46px rgba(30,29,47,.14); }
.donation-form-section { padding: 42px 0 76px; }
.donation-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 28px; align-items: start; }
.donation-summary { position: sticky; top: 104px; padding-top: 4px; }
.donation-summary h2 { margin: 0 0 12px; color: var(--primary); font-size: clamp(30px,2.4vw,38px); line-height: 1.05; }
.donation-summary p { margin: 0 0 18px; color: var(--ink); font-size: 16px; line-height: 1.48; }
.donation-impact-card { display: grid; gap: 8px; padding: 18px 18px 18px 20px; border-left: 4px solid #a84f38; background: #f7f7f4; }
.donation-impact-card strong { color: var(--primary); font-size: 18px; line-height: 1.18; }
.donation-impact-card span { color: var(--ink); font-size: 15px; line-height: 1.42; }
.donation-form { display: grid; gap: 16px; padding: clamp(24px,3vw,34px); background: #f8f8f6; border: 1px solid #cfd5e0; box-shadow: 0 22px 52px rgba(30,29,47,.09); }
.donation-form-head { display: grid; gap: 3px; padding-bottom: 2px; }
.donation-form-head .eyebrow { margin-bottom: 0; }
.donation-form h2 { margin: 0; color: var(--primary); font-size: clamp(30px,2.8vw,40px); line-height: 1.04; }
.donation-card { display: grid; gap: 16px; padding: 22px; border: 1px solid #d5d9e3; background: white; }
.donation-card-highlight { border-top: 4px solid #a84f38; }
.donation-card h3 { margin: 0; color: var(--primary); font-size: 22px; line-height: 1.12; }
.donation-card-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.donation-fields-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.donation-form label { display: grid; gap: 7px; color: var(--primary); font-size: 15px; font-weight: 700; }
.donation-form .anonymous-option { display: inline-flex; align-items: center; justify-content: flex-start; justify-self: start; gap: 9px; width: auto; min-height: 38px; margin: -4px 0 2px; padding: 7px 12px; border: 1px solid #cfd5e0; border-radius: 999px; background: #f8f8f6; cursor: pointer; }
.anonymous-option input { width: 16px; height: 16px; }
.anonymous-option span { color: var(--primary); font-size: 15px; font-weight: 700; }
.donor-fields { display: grid; gap: 15px; }
.donor-fields.is-hidden { display: none; }
.donation-form .field-label-text { display: inline-block; color: var(--primary); }
.donation-form .required-mark { color: #b00020; }
.donation-form .anonymous-option span { color: var(--primary); }
.donation-form input,
.donation-form select { width: 100%; min-height: 48px; border: 1px solid #cfd5e0; padding: 13px 14px; background: white; color: var(--ink); font: inherit; font-size: 16px; }
.donation-form input:focus,
.donation-form select:focus { outline: 2px solid rgba(53,109,220,.22); border-color: var(--blue); }
.donation-form select:invalid { color: var(--muted); }
.donation-form small { color: #b00020; font-size: 14px; font-weight: 400; }
.donation-form button { justify-self: start; min-height: 48px; border: 1px solid var(--primary); background: var(--primary); color: white; padding: 14px 32px; cursor: pointer; font-weight: 700; }
.donation-form button:hover,
.donation-form button:focus-visible { background: #34324a; }
@media (max-width: 1050px) {
  .nav-inner { align-items: flex-start; }
  .primary-menu { flex-wrap: wrap; justify-content: flex-start; }
  .search-toggle { display: none; }
  .top-composition { grid-template-columns: 1fr; }
  .hero-panel { min-height: auto; }
  .programme-list, .latest-grid, .video-grid, .video-grid.three-col, .publication-grid, .highlight-grid, .team-grid, .contact-grid { grid-template-columns: repeat(2,1fr); }
  .footer-main { grid-template-columns: 1fr; }
  .footer-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .social { text-align: left; }
  .social div { justify-content: flex-start; }
  .values-layout, .history-grid { grid-template-columns: 1fr; gap: 34px; }
  .editorial-grid, .cbod-page .editorial-grid, .principles-grid, .publication-feature, .safeguarding-hero-panel, .section-heading-row, .careers-showcase-grid, .programme-showcase-grid, .careers-two-column, .careers-data-grid, .grant-two-column, .donation-hero-grid, .donation-layout { grid-template-columns: 1fr; gap: 34px; }
  .editorial-grid aside { position: static; }
  .editorial-grid h1 { max-width: 720px; }
  .values-illustration { position: static; order: -1; }
  .values-illustration img { margin: 0; width: 190px; }
  .publication-feature img { width: 180px; }
  .careers-intro-panel, .career-feature-card, .programme-intro-panel, .programme-feature-card { min-height: 440px; }
}
@media (max-width: 720px) {
  .navbar { padding: 12px 0; }
  .search-bar form, .annual, .footer-main, .footer-bottom { display: grid; }
  .nav-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; }
  .brand img { width: 104px; }
  .menu-toggle { display: inline-flex; align-items: center; gap: 6px; justify-self: end; min-width: max-content; white-space: nowrap; border: 1px solid var(--line); background: white; color: var(--primary); padding: 9px 10px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
  .menu-toggle-line { flex: 0 0 12px; display: block; width: 12px; height: 2px; background: currentColor; }
  .menu-toggle-label { flex: 0 0 auto; line-height: 1; white-space: nowrap; }
  .primary-menu { display: none; grid-column: 1 / -1; width: 100%; max-height: calc(100vh - 88px); overflow-y: auto; padding: 10px 0 16px; border-top: 1px solid var(--line); background: white; }
  .primary-menu.is-open { display: grid; }
  .primary-menu > li > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 4px; font-size: 16px; font-weight: 700; }
  .primary-menu > li > a[href="donaciones.php"] { display: inline-flex; justify-content: center; margin: 8px 0 4px; padding: 10px 18px; }
  .primary-menu .dropdown ul { position: static; display: none; min-width: 0; box-shadow: none; border: 0; padding: 0 0 8px 16px; }
  .primary-menu .dropdown.is-expanded ul { display: block; }
  .primary-menu .dropdown > a::after { content: "+"; font-size: 18px; line-height: 1; }
  .primary-menu .dropdown.is-expanded > a::after { content: "-"; }
  .dropdown li a { padding: 8px 0; color: var(--muted); font-size: 15px; }
  .featured-row { grid-auto-columns: minmax(282px,86vw); }
  .annual, .programme-list, .latest-grid, .latest-grid.two-col, .video-grid, .video-grid.two-col, .video-grid.three-col, .stats-grid, .publication-grid, .highlight-grid, .team-grid, .contact-grid, .support-grid, .policy-grid, .job-card, .footer-links { grid-template-columns: 1fr; }
  .timeline li { grid-template-columns: 1fr; gap: 6px; }
  .annual img { justify-self: start; }
  .social, .footer-bottom p { text-align: left; }
  .social div { justify-content: flex-start; }
  .footer-links a { min-height: auto; }
  .support-grid article { min-height: auto; }
  .policy-grid article { min-height: auto; }
  .careers-intro-panel { min-height: auto; padding: 34px 24px; }
  .careers-intro-panel h1 { font-size: clamp(38px,12vw,54px); }
  .careers-intro-panel p:last-child { font-size: 20px; }
  .career-feature-card { min-height: 520px; }
  .career-feature-copy { top: 18px; right: 18px; left: 18px; width: auto; padding: 20px; }
  .programme-showcase .container { width: min(100% - 32px, 1096px); }
  .programme-showcase-grid { gap: 0; }
  .programme-intro-panel { min-height: auto; padding: 34px 24px; }
  .programme-intro-panel h1 { max-width: 100%; font-size: clamp(34px,10vw,44px); }
  .programme-feature-card { min-height: 520px; }
  .programme-feature-copy { top: 18px; right: 18px; left: 18px; width: auto; padding: 20px; }
  .careers-data-grid img { justify-self: start; width: 160px; }
  .team-intro .container, .team-directory .container { width: min(100% - 32px, 1280px); }
  .team-intro { padding-top: 46px; }
  .team-lead p { font-size: 19px; }
  .donation-hero .container,
  .donation-form-section .container { width: min(100% - 32px, 1120px); }
  .donation-hero { padding-top: 28px; }
  .donation-hero h1 { font-size: clamp(42px,12vw,64px); }
  .donation-hero p:not(.eyebrow) { font-size: 20px; }
  .donation-hero img { aspect-ratio: 16 / 10; }
  .donation-summary { position: static; }
  .donation-form { padding: 24px; }
  .donation-card { padding: 20px; }
  .donation-card-title-row { align-items: flex-start; flex-direction: column; }
  .donation-fields-two { grid-template-columns: 1fr; }
  .latest-grants-hero { padding-top: 48px; }
  .latest-grants-container,
  .latest-grants-report-inner { width: min(100% - 32px, 1120px); }
  .latest-grants-hero h1 { font-size: clamp(42px,13vw,62px); }
  .latest-grants-hero p { font-size: 20px; }
  .latest-grants-actions { justify-content: flex-start; width: 100%; }
  .latest-grants-actions .outline-button { width: 100%; }
  .story-title-container, .story-hero-figure, .story-detail-layout { width: min(100% - 32px, 1096px); }
  .programme-story-detail h1, .programme-story-detail .breadcrumb, .publication-detail .story-title-container h1 { margin-left: 0; }
  .story-detail-layout { grid-template-columns: 1fr; gap: 24px; }
  .publication-filter-bar { justify-content: flex-start; }
  .publication-filter-bar select,
  .publication-reset { width: 100%; min-width: 0; }
  .publication-filter-bar label { width: 100%; }
  .publication-grid.row-layout article { grid-template-columns: 1fr; gap: 16px; }
  .publication-grid.row-layout .publication-meta { padding-right: 0; padding-bottom: 14px; border-right: 0; border-bottom: 4px solid #6f6aaa; }
  .publication-grid.row-layout .outline-button { justify-self: start; }
  .grant-hero .container,
  .grant-section .container,
  .grant-snapshot .container,
  .grant-cta .container { width: min(100% - 32px, 1120px); }
  .grant-hero { padding-top: 50px; }
  .grant-hero-copy { margin-left: 0; }
  .grant-snapshot-grid,
  .grant-pathways { grid-template-columns: 1fr; }
  .grant-snapshot article,
  .grant-snapshot article:last-child { padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .grant-timeline li { grid-template-columns: 1fr; gap: 8px; }
  .grant-container { width: min(100% - 32px, 1140px); padding-top: 20px; }
  .grant-top-panel { grid-template-columns: 1fr; padding: 28px; }
  .grant-intro-column { padding-right: 0; }
  .grant-stats-column { padding: 28px 0; }
  .grant-pathway-grid,
  .grant-card-timeline,
  .grant-additional-grid { grid-template-columns: 1fr; }
  .grant-card-timeline li { min-height: auto; }
  .enquiry-container { width: min(100% - 32px, 1180px); }
  .enquiry-hero-panel,
  .enquiry-info-grid,
  .enquiry-form-section,
  .enquiry-form-grid { grid-template-columns: 1fr; }
  .enquiry-hero-copy,
  .enquiry-notice { padding: 30px 24px; }
  .enquiry-form-heading { position: static; }
}
