/* IFES Foundation theme — professional facelift (November 2026).
   Loaded after main.css and modern.css. One visual system: Rubik headings with a gold
   eyebrow accent, pill buttons, generous section rhythm (white / warm / deep green),
   full-bleed photo bands for impact and calls to action, icon cards and an accessible
   stories slider.

   Icons (here, in modern.css and in ifes-core) are from Lucide, https://lucide.dev —
   ISC License. Copyright (c) Lucide Contributors 2022; portions Copyright (c) Cole Bemis
   2013-2022 (Feather, MIT). Permission to use, copy, modify and distribute is granted
   provided this notice is retained. */

/* ---------------------------------------------------------------------------
   1. Typography and section headings
   --------------------------------------------------------------------------- */
h1, h2, h3 { text-wrap: balance; }
.entry-content p, .lead { text-wrap: pretty; }
/* Section-level headings only (cards, call-outs and asides keep their own sizes). */
.entry-content .section > h2.wp-block-heading,
.entry-content .split h2.wp-block-heading { font-size: clamp(1.9rem, 1.45rem + 1.6vw, 2.6rem); letter-spacing: -0.015em; }
/* A block-level flex row, so it stays in the content column of constrained layouts. */
.eyebrow { display: flex; align-items: center; gap: 12px; }
.eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: currentColor; flex: 0 0 auto; }
.section > .eyebrow + .wp-block-heading,
.section > .eyebrow + h2 { margin-top: 0; }

/* Centred section introductions (impact, stories, calls to action). */
.section--center > .eyebrow,
.section--center > .wp-block-heading,
.section--center > p:not(.eyebrow) { text-align: center; margin-inline: auto; }
.section--center > .eyebrow { display: flex; justify-content: center; }
.section--center > p:not(.eyebrow) { max-width: 640px; color: var(--ink-600); }

/* Page heroes: larger titles and a quiet dotted texture. */
.page-hero {
	background:
		radial-gradient(circle at 1px 1px, rgba(19, 112, 63, .09) 1px, transparent 0) 0 0 / 22px 22px,
		radial-gradient(1200px 400px at 85% -10%, rgba(226, 194, 122, .28), transparent 60%),
		linear-gradient(180deg, var(--ifes-green-50), #f6faf7);
}
.page-hero .page-title { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.4rem); letter-spacing: -0.02em; line-height: 1.1; }
.page-hero .lead { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); color: var(--ink-600); max-width: 34em; }

/* Full-width sections keep a side gutter on phones (content never touches the screen edge). */
.entry-content .wp-block-group.alignfull.section { padding-inline: var(--gutter); }

/* ---------------------------------------------------------------------------
   2. Buttons and header
   --------------------------------------------------------------------------- */
.btn { border-radius: 999px; padding-inline: 26px; transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.btn--primary:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(11, 74, 43, .18); }
.site-header { transition: box-shadow .25s ease; }
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(11, 74, 43, .1); border-bottom-color: transparent; }

/* ---------------------------------------------------------------------------
   3. Home: welcome (text + photo collage), heritage (text + video)
   --------------------------------------------------------------------------- */
.split { gap: clamp(32px, 5vw, 72px) !important; align-items: center !important; }
.split .wp-block-column > :first-child { margin-top: 0; }
.collage { position: relative; margin: 0; padding: 0 0 48px 48px; }
.collage .wp-block-image { margin: 0; }
.collage .wp-block-image img { border-radius: 20px; box-shadow: 0 24px 48px rgba(11, 74, 43, .18); width: 100%; height: auto; display: block; }
.collage .collage__back img { aspect-ratio: 4 / 3; object-fit: cover; }
.collage .collage__front { position: absolute; left: 0; bottom: 0; width: 46%; }
.collage .collage__front img { aspect-ratio: 1; object-fit: cover; border: 6px solid #fff; }
.collage .collage__badge {
	position: absolute;
	right: -8px;
	bottom: 18px;
	margin: 0;
	padding: 14px 18px;
	border-radius: 16px;
	background: var(--ifes-green-900);
	color: #fff;
	font-size: .9rem;
	line-height: 1.35;
	box-shadow: 0 16px 32px rgba(11, 74, 43, .25);
}
.collage .collage__badge strong { display: block; font-family: var(--font-head); font-size: 1.6rem; color: var(--ifes-gold-300); }
@media (max-width: 781px) {
	.collage { padding: 0 0 40px 28px; margin-top: 12px; }
	.collage .collage__badge { right: 0; }
}
.mission-callout { margin-top: 24px; padding: 20px 24px; border-left: 4px solid var(--ifes-gold-600); background: var(--paper-warm); border-radius: 0 14px 14px 0; }
.mission-callout h3 { margin: 0 0 6px; font-size: 1.15rem; }
.mission-callout p { margin: 0; }

/* ---------------------------------------------------------------------------
   4. Impact figures: light cards anywhere; glass cards on dark photo bands
   --------------------------------------------------------------------------- */
.entry-content .impact-stats .impact-stat,
.impact-stats .impact-stat { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 28px 16px 26px; border-radius: 20px; }
.impact-stat__icon {
	width: 52px;
	height: 52px;
	padding: 12px;
	margin-bottom: 8px;
	border-radius: 50%;
	background: var(--ifes-green-50);
	color: var(--ifes-green-700);
}
.impact-stat__value { font-size: clamp(2.2rem, 1.7rem + 1.8vw, 3.1rem); font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.impact-stat__label { font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; }

/* Photo band (cover block with class impact-band or cta-band). */
.wp-block-cover.impact-band,
.wp-block-cover.cta-band { padding-block: clamp(72px, 9vw, 120px) !important; }
.impact-band .wp-block-cover__inner-container,
.cta-band .wp-block-cover__inner-container { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.impact-band .wp-block-cover__inner-container > :is(.eyebrow, h2, p),
.cta-band .wp-block-cover__inner-container > :is(.eyebrow, h2, p) { text-align: center; margin-inline: auto; max-width: 720px; }
.impact-band .wp-block-cover__inner-container > .eyebrow,
.cta-band .wp-block-cover__inner-container > .eyebrow { display: flex; justify-content: center; }
.impact-band h2, .cta-band h2 { font-size: clamp(1.9rem, 1.45rem + 1.6vw, 2.6rem); }
.impact-band .eyebrow, .cta-band .eyebrow { color: var(--ifes-gold-300); }
.impact-band h2, .cta-band h2 { color: #fff; }
.impact-band p:not(.eyebrow), .cta-band p:not(.eyebrow) { color: rgba(255, 255, 255, .86); }
.impact-band .impact-stats { margin-top: 40px; }
.impact-band .impact-stats .impact-stat {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .16);
	box-shadow: none;
	backdrop-filter: blur(6px);
}
.impact-band .impact-stat__icon { background: rgba(226, 194, 122, .16); color: var(--ifes-gold-300); }
.impact-band .impact-stat__value { color: #fff; }
.impact-band .impact-stat__label { color: rgba(255, 255, 255, .82); }
.cta-band .wp-block-buttons { justify-content: center; margin-top: 28px; }
/* Lighter tint so the people show; white text stays above 5.5:1 even over white areas. */
.cta-band .wp-block-cover__background { opacity: .82 !important; }
.cta-band .wp-block-cover__image-background { object-position: 50% 35%; }

/* ---------------------------------------------------------------------------
   5. Stories of change: accessible scroll-snap slider
   --------------------------------------------------------------------------- */
.story-slider { position: relative; max-width: 920px; margin: 36px auto 0; }
.story-slider__track {
	position: relative;
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 4px 4px 12px;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	scroll-padding-inline: 4px;
}
.story-slider.is-enhanced .story-slider__track { scrollbar-width: none; }
.story-slider.is-enhanced .story-slider__track::-webkit-scrollbar { display: none; }
.story-slider__track:focus-visible { outline-offset: 6px; border-radius: 24px; }
.entry-content .story-slider__track > li::before { content: none; }
.story-card--slide {
	position: relative;
	flex: 0 0 100%;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
	padding: clamp(32px, 5vw, 56px) !important;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 24px;
	box-shadow: 0 18px 40px rgba(11, 74, 43, .08);
}
.story-card__quote { color: var(--ifes-gold-600); opacity: .9; }
.story-card--slide .story-card__title { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.story-card--slide .story-card__text p { font-size: clamp(1.05rem, .98rem + .3vw, 1.2rem); line-height: 1.7; color: var(--ink-900); }
.story-card--slide .story-card__who { padding-top: 16px; border-top: 1px solid var(--line); }
.story-card--slide .story-card__initials { width: 54px; height: 54px; font-size: 1.1rem; background: var(--ifes-green-900); color: #fff; }
.story-slider__controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 24px; }
.story-slider__controls[hidden] { display: none; }
.story-slider__arrow {
	display: inline-grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1.5px solid var(--ifes-green-700);
	border-radius: 50%;
	background: #fff;
	color: var(--ifes-green-900);
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.story-slider__arrow::before { content: ""; width: 10px; height: 10px; border: solid currentColor; border-width: 0 2px 2px 0; }
.story-slider__prev::before { transform: translateX(2px) rotate(135deg); }
.story-slider__next::before { transform: translateX(-2px) rotate(-45deg); }
.story-slider__arrow:hover:not(:disabled) { background: var(--ifes-green-900); color: #fff; }
.story-slider__arrow:disabled { opacity: .35; cursor: default; }
.story-slider__dots { display: flex; gap: 4px; }
/* Each dot is a 24 px button (WCAG 2.5.8 target size); the visible pill is drawn inside it. */
.story-slider__dot { display: inline-grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; transition: width .25s ease; }
.story-slider__dot::before { content: ""; width: 12px; height: 12px; border-radius: 999px; background: #c9d8ce; transition: width .25s ease, background-color .25s ease; }
.story-slider__dot[aria-current="true"] { width: 40px; }
.story-slider__dot[aria-current="true"]::before { width: 32px; background: var(--ifes-green-700); }
.story-slider__dot:hover::before { background: var(--ifes-green-700); }

/* ---------------------------------------------------------------------------
   6. Icon cards for lists: core values, areas of support, what we will report
   --------------------------------------------------------------------------- */
.entry-content .wp-block-list.value-cards,
.page-template-programme-area .section--warm .entry-content .wp-block-list,
.page-template-programme-area .entry-content .section--warm .wp-block-list,
.page-id-7329 .entry-content .wp-block-list {
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr;
	max-width: var(--container) !important;
	margin-top: 28px;
}
@media (min-width: 700px) {
	.entry-content .wp-block-list.value-cards,
	.page-template-programme-area .entry-content .section--warm .wp-block-list,
	.page-id-7329 .entry-content .wp-block-list { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1000px) {
	.entry-content .wp-block-list.value-cards { grid-template-columns: repeat(3, 1fr); }
}
.entry-content .wp-block-list.value-cards li,
.page-template-programme-area .entry-content .section--warm .wp-block-list li,
.page-id-7329 .entry-content .wp-block-list li {
	margin: 0;
	padding: 22px 22px 22px 74px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 16px;
	box-shadow: var(--shadow-1);
	line-height: 1.55;
}
.entry-content .wp-block-list.value-cards li::before,
.page-template-programme-area .entry-content .section--warm .wp-block-list li::before,
.page-id-7329 .entry-content .wp-block-list li::before {
	left: 20px;
	top: 20px;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	box-shadow: none;
	background: var(--ifes-green-50) center / 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}
.entry-content .wp-block-list.value-cards li { padding: 26px; padding-top: 86px; }
.entry-content .wp-block-list.value-cards li::before { left: 26px; top: 26px; width: 46px; height: 46px; background-size: 24px; }
.entry-content .wp-block-list.value-cards li strong { display: block; margin-bottom: 4px; font-family: var(--font-head); font-size: 1.2rem; font-weight: 600; color: var(--ifes-green-900); }
/* Value icons, in the order the values are listed. */
.value-cards li:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E") !important; }
.value-cards li:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") !important; }
.value-cards li:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") !important; }
.value-cards li:nth-child(4)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 20h10'/%3E%3Cpath d='M10 20c5.5-2.5.8-6.4 3-10'/%3E%3Cpath d='M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z'/%3E%3Cpath d='M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z'/%3E%3C/svg%3E") !important; }
.value-cards li:nth-child(5)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E") !important; }
.value-cards li:nth-child(6)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 17l2 2a1 1 0 0 0 3-3'/%3E%3Cpath d='M14 14l2.5 2.5a1 1 0 0 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4'/%3E%3Cpath d='M21 3l1 11h-2'/%3E%3Cpath d='M3 3L2 14l6.5 6.5a1 1 0 1 0 3-3'/%3E%3Cpath d='M3 4h8'/%3E%3C/svg%3E") !important; }

/* Sections holding a card grid: headings and intro text share the grid's wider left edge. */
.entry-content .section:has(> .value-cards) > :is(h2, .eyebrow, p),
.page-template-programme-area .entry-content .section--warm:has(> .wp-block-list) > :is(h2, .eyebrow, p),
.page-id-7329 .entry-content .section:has(> .wp-block-list) > :is(h2, h3, .eyebrow, p) { max-width: var(--container) !important; }

/* Vision and mission side by side. */
.vm-cards { gap: 24px !important; }
.vm-cards > .wp-block-column {
	padding: clamp(28px, 4vw, 40px);
	background: #fff;
	border: 1px solid var(--line);
	border-top: 4px solid var(--ifes-gold-600);
	border-radius: 20px;
	box-shadow: var(--shadow-1);
}
.vm-cards > .wp-block-column:last-child { background: var(--ifes-green-900); border-color: var(--ifes-green-900); border-top-color: var(--ifes-gold-300); }
.vm-cards > .wp-block-column:last-child :is(h2, h3),
.vm-cards > .wp-block-column:last-child p { color: #fff; }
.vm-cards .wp-block-heading { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem) !important; margin-top: 0; }

/* ---------------------------------------------------------------------------
   7. Footer accent and reduced motion
   --------------------------------------------------------------------------- */
.site-footer { position: relative; }
.site-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--ifes-gold-600), var(--ifes-gold-300), var(--ifes-green-700)); }

@media (prefers-reduced-motion: reduce) {
	.btn--primary:hover { transform: none; }
	.story-slider__dot { transition: none; }
}

/* ---------------------------------------------------------------------------
   8. Contact page: contact cards, form card and aside
   --------------------------------------------------------------------------- */
.contact-ways { position: relative; overflow: hidden; }
.contact-ways::before {
	content: ""; position: absolute; top: -40px; right: -40px; width: 260px; height: 260px; pointer-events: none;
	background: radial-gradient(var(--ifes-gold-300) 1.5px, transparent 1.6px) 0 0 / 18px 18px;
	opacity: .45; -webkit-mask-image: radial-gradient(closest-side, #000, transparent); mask-image: radial-gradient(closest-side, #000, transparent);
}
.contact-ways > * { position: relative; }
.entry-content .contact-ways > :is(h2, .eyebrow, p) { max-width: var(--container) !important; }
.contact-ways__intro { color: var(--ink-600); font-size: 1.1rem; }
.entry-content .wp-block-list.contact-cards {
	display: grid; grid-template-columns: 1fr; gap: 20px; padding: 0; margin-top: 36px; list-style: none;
	max-width: var(--container) !important;
}
@media (min-width: 600px) { .entry-content .wp-block-list.contact-cards { grid-template-columns: repeat(2, 1fr); } }
/* Two by two on every screen wide enough for two columns (owner preference). */
.entry-content .wp-block-list.contact-cards .contact-card {
	position: relative; margin: 0; padding: 92px 24px 26px; background: #fff; border: 1px solid var(--line); border-radius: 18px;
	box-shadow: var(--shadow-1); color: var(--ink-600); line-height: 1.6; overflow-wrap: anywhere;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.contact-cards .contact-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); border-color: var(--ifes-gold-300); }
.entry-content .wp-block-list.contact-cards .contact-card::before {
	content: ""; position: absolute; left: 24px; top: 24px; width: 50px; height: 50px; border-radius: 14px;
	background: var(--ifes-green-700) center / 24px no-repeat; box-shadow: 0 6px 14px rgba(19, 112, 63, .25);
}
.contact-cards .contact-card strong { display: block; margin-bottom: 6px; font-family: var(--font-head); font-size: 1.15rem; font-weight: 600; color: var(--ifes-green-900); }
.contact-cards .contact-card a { color: var(--ifes-green-700); font-weight: 600; text-decoration: none; }
.contact-cards .contact-card a:hover { text-decoration: underline; }
.contact-cards .contact-card__link { display: inline-flex; margin-top: 10px; }
.contact-cards .contact-card__link::after { content: " \2192"; white-space: pre; }
/* Phones: icon beside the text keeps the four cards compact. */
@media (max-width: 599px) {
	.entry-content .wp-block-list.contact-cards .contact-card { padding: 20px 20px 22px 88px; }
	.entry-content .wp-block-list.contact-cards .contact-card::before { left: 20px; top: 20px; }
}
.entry-content .wp-block-list.contact-cards .contact-card--phone::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.contact-cards .contact-card--email::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.contact-cards .contact-card--address::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.contact-cards .contact-card--org::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z'/%3E%3Cpath d='M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2'/%3E%3Cpath d='M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M10 10h4'/%3E%3Cpath d='M10 14h4'/%3E%3Cpath d='M10 18h4'/%3E%3C/svg%3E"); }

/* Form card. */
.contact-main .contact-layout { align-items: flex-start; }
.contact-form-card {
	padding: clamp(24px, 4vw, 44px); background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--ifes-gold-600);
	border-radius: 24px; box-shadow: var(--shadow-2); container: contact-form / inline-size;
}
.contact-form-card > .wp-block-heading,
.contact-aside > .wp-block-heading { margin-top: 0; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); }
.contact-form-card .notice { margin-bottom: 28px; font-size: .95rem; }
.contact-form-card .ifes-form { max-width: none; grid-template-columns: 1fr; column-gap: 20px; row-gap: 2px; }
@container contact-form (min-width: 560px) {
	.contact-form-card .ifes-form { grid-template-columns: 1fr 1fr; }
	.contact-form-card .ifes-form > * { grid-column: 1 / -1; }
	.contact-form-card .ifes-form > p:nth-child(-n+4) { grid-column: auto; display: flex; flex-direction: column; justify-content: flex-end; }
}
.contact-form-card .ifes-form > p { margin: 0 0 14px; }
.contact-form-card .ifes-form > p:has(.ifes-hp) { margin: 0; }
.contact-form-card .ifes-form label + br { display: none; }
.contact-form-card .ifes-form label { font-size: .95rem; color: var(--ink-900); }
.contact-form-card .ifes-form .req, .contact-form-card .ifes-form .opt { font-size: .85em; }
.contact-form-card :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
	width: 100%; min-height: 50px; padding: 12px 16px; border: 1.5px solid #c3d1c8; border-radius: 12px; background-color: #fbfcfb;
	font: inherit; color: var(--ink-900); transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.contact-form-card :is(input, select, textarea):hover { border-color: var(--ifes-green-700); }
.contact-form-card :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea):focus-visible {
	outline: 2px solid var(--ifes-green-700); outline-offset: 2px; border-color: var(--ifes-green-700); background-color: #fff;
	box-shadow: 0 0 0 4px rgba(19, 112, 63, .12);
}
.contact-form-card select {
	-webkit-appearance: none; appearance: none; padding-right: 44px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-position: right 16px center; background-size: 18px; background-repeat: no-repeat;
}
.contact-form-card textarea { height: 190px; min-height: 140px; resize: vertical; }
.contact-form-card .wpcf7-not-valid { border-color: #b3261e !important; background-color: #fffafa; }
.contact-form-card .wpcf7-not-valid-tip { margin-top: 6px; font-weight: 500; }
.contact-form-card .ifes-consent { padding: 16px 18px; margin: 6px 0 20px; background: var(--ifes-green-50); border-radius: 12px; font-size: .95rem; }
.contact-form-card .ifes-consent p { margin: 0; }
.contact-form-card .wpcf7-submit {
	min-height: 52px; padding: 14px 34px; border-radius: 999px; background: var(--ifes-green-900); font-size: 1.05rem;
	box-shadow: 0 8px 20px rgba(11, 74, 43, .22); transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.contact-form-card .wpcf7-submit:hover { background: var(--ifes-green-700); transform: translateY(-2px); box-shadow: 0 12px 24px rgba(11, 74, 43, .28); }
.contact-form-card .wpcf7-submit:focus-visible { outline: 3px solid var(--ifes-gold-600); outline-offset: 3px; }
@media (max-width: 639px) { .contact-form-card .wpcf7-submit { width: 100%; } }

/* Aside: photo, welcome text and direct email. */
.contact-aside__photo { margin: 0 0 28px; }
.contact-aside__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; box-shadow: var(--shadow-2); }
.contact-aside__direct {
	padding: 16px 20px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--ifes-gold-600); border-radius: 12px;
	overflow-wrap: anywhere;
}
.contact-aside__direct a { font-weight: 600; color: var(--ifes-green-700); }
@media (max-width: 781px) { .contact-aside { margin-top: 12px; } }
@media (prefers-reduced-motion: reduce) {
	.contact-cards .contact-card, .contact-form-card .wpcf7-submit { transition: none; }
	.contact-cards .contact-card:hover, .contact-form-card .wpcf7-submit:hover { transform: none; }
}

/* ---------------------------------------------------------------------------
   9. Page hero with a background photograph (one design on every page)
   Same deep-green treatment as the Home hero: strong on the text side, lighter
   towards the photograph; a uniform tint on narrow screens where text spans the width.
   --------------------------------------------------------------------------- */
.page-hero--photo {
	display: flex; flex-direction: column; justify-content: flex-end;
	min-height: clamp(340px, 30vw + 180px, 500px);
	padding-block: clamp(96px, 9vw, 128px) clamp(48px, 6vw, 72px);
	background: var(--ifes-green-900);
	border-bottom: 0;
	color: #fff;
	isolation: isolate;
}
.page-hero--photo::after { content: none; }
.page-hero__bg { position: absolute; inset: 0; z-index: -2; }
.page-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; }
.page-hero--photo::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		linear-gradient(180deg, rgba(6, 36, 21, .45) 0%, rgba(6, 36, 21, 0) 30%, rgba(6, 36, 21, 0) 70%, rgba(6, 36, 21, .5) 100%),
		linear-gradient(90deg, rgba(11, 74, 43, .94) 0%, rgba(11, 74, 43, .9) 45%, rgba(11, 74, 43, .78) 62%, rgba(11, 74, 43, .45) 82%, rgba(11, 74, 43, .3) 100%);
}
@media (max-width: 781px) {
	.page-hero--photo::before { background: linear-gradient(180deg, rgba(11, 74, 43, .78), rgba(11, 74, 43, .9)); }
}
.page-hero--photo .page-hero__text { max-width: 760px; }
.page-hero--photo .page-title { color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, .25); }
.page-hero--photo .lead { color: rgba(255, 255, 255, .92); }
.page-hero--photo .eyebrow { color: var(--ifes-gold-300); }
.page-hero--photo .breadcrumbs,
.page-hero--photo .breadcrumbs a,
.page-hero--photo .breadcrumbs li + li::before { color: rgba(255, 255, 255, .88); }
.page-hero--photo .breadcrumbs a { text-decoration-color: rgba(255, 255, 255, .5); }
.page-hero--photo .breadcrumbs a:hover { color: #fff; text-decoration-color: currentColor; }
.page-hero--photo .breadcrumbs [aria-current] { color: #fff; font-weight: 600; }
.page-hero--photo .ifes-badge { background: #fff; border-color: #fff; }
.page-hero--photo a:focus-visible { outline-color: var(--ifes-gold-300); }
/* Founder-style portrait framed beside the title. */
.page-hero--photo .page-hero__media { border: 4px solid rgba(255, 255, 255, .9); box-shadow: 0 24px 48px rgba(0, 0, 0, .3); }
.page-hero--photo.page-hero--portrait .page-hero__media img { max-height: 340px; }
@media (max-width: 599px) {
	.page-hero--photo { min-height: 300px; }
}
/* Home hero: dark green only behind the text column; beyond it the photograph shows in
   its own colours. --hero-text-end is where the 760 px text column ends at any width. */
.ifes-hero {
	--hero-text-end: calc(max(var(--gutter), (100% - var(--container)) / 2) + 780px);
}
.ifes-hero .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(180deg, rgba(6, 36, 21, .4) 0%, rgba(6, 36, 21, 0) 22%, rgba(6, 36, 21, 0) 72%, rgba(6, 36, 21, .45) 100%),
		linear-gradient(90deg, rgba(8, 52, 30, .93) 0, rgba(8, 52, 30, .88) calc(var(--hero-text-end) - 260px), rgba(8, 52, 30, .7) var(--hero-text-end), rgba(8, 52, 30, .16) calc(var(--hero-text-end) + 300px), rgba(8, 52, 30, 0) calc(var(--hero-text-end) + 520px)) !important;
}
.ifes-hero .wp-block-cover__image-background { object-position: center 35%; }
.ifes-hero :is(h1, p) { text-shadow: 0 1px 14px rgba(0, 0, 0, .28); }
/* Phones and small tablets: the photograph is a band at the top and the text sits on
   solid green below it, so neither the photo nor the text has to compromise. */
@media (max-width: 781px) {
	.ifes-hero { --hero-band: clamp(200px, 56vw, 380px); padding-top: calc(var(--hero-band) - 20px) !important; padding-bottom: 48px !important; }
	.ifes-hero .wp-block-cover__image-background { height: var(--hero-band) !important; bottom: auto !important; }
	.ifes-hero .wp-block-cover__background {
		background: linear-gradient(180deg, rgba(6, 36, 21, .35) 0, rgba(6, 36, 21, 0) 72px, rgba(11, 74, 43, 0) calc(var(--hero-band) - 110px), var(--ifes-green-900) calc(var(--hero-band) + 4px)) !important;
	}
	.ifes-hero h1 { font-size: clamp(1.85rem, 1.2rem + 3.2vw, 2.3rem); }
	.ifes-hero .has-large-font-size { font-size: 1.07rem !important; }
}
@media (max-width: 599px) {
	/* The tagline repeats the logo's strapline; the headline carries the message here. */
	.ifes-hero .eyebrow { display: none; }
}

/* ---------------------------------------------------------------------------
   10. Home hero background slider (Home only; inc/home-hero.php, hero-slider.js)
   The text stays still; photographs cross-fade beneath the shared overlay with a
   slow zoom. Controls sit bottom right (centred over the photo band on phones),
   clear of the text.
   --------------------------------------------------------------------------- */
.ifes-hero--slider { padding-top: 72px; padding-bottom: 104px; }
.ifes-hero .ifes-hero__slide { opacity: 0; transition: opacity 1.4s ease; }
.ifes-hero .ifes-hero__slide.is-active { opacity: 1; animation: ifes-hero-zoom 8s ease-out both; }
@keyframes ifes-hero-zoom { from { transform: scale(1.06); } to { transform: none; } }
.ifes-hero__controls {
	position: absolute; z-index: 3; bottom: 34px;
	right: max(var(--gutter), calc((100% - var(--container)) / 2));
	display: flex; align-items: center; gap: 10px;
}
.ifes-hero__controls[hidden] { display: none; }
.ifes-hero__btn {
	display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .5); background: rgba(6, 36, 21, .35); color: #fff; cursor: pointer;
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: background-color .2s ease, border-color .2s ease;
}
.ifes-hero__btn:hover { background: rgba(255, 255, 255, .2); border-color: #fff; }
.ifes-hero__btn:focus-visible, .ifes-hero__dot:focus-visible { outline: 3px solid var(--ifes-gold-300); outline-offset: 2px; }
.ifes-hero__next svg { transform: scaleX(-1); }
.ifes-hero__icon-play, .ifes-hero__controls.is-paused .ifes-hero__icon-pause { display: none; }
.ifes-hero__controls.is-paused .ifes-hero__icon-play { display: block; }
.ifes-hero__dots { display: flex; align-items: center; gap: 2px; }
.ifes-hero__dot { display: inline-grid; place-items: center; width: 24px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; }
.ifes-hero__dot::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: rgba(255, 255, 255, .6); transition: width .3s ease, background-color .3s ease; }
.ifes-hero__dot[aria-current="true"] { width: 36px; }
.ifes-hero__dot[aria-current="true"]::before { width: 28px; background: var(--ifes-gold-300); }
/* The headline and lead are visible at once (they are the first thing read and the
   largest text); only the label and buttons keep the short entrance. */
.ifes-hero .wp-block-cover__inner-container > .wp-block-group > :is(h1, p:not(.eyebrow)) { animation: none; }
@media (max-width: 781px) {
	.ifes-hero__controls { right: 0; left: 0; justify-content: center; top: 10px; bottom: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.ifes-hero .ifes-hero__slide { transition: none; }
	.ifes-hero .ifes-hero__slide.is-active { animation: none; }
	.ifes-hero__dot::before { transition: none; }
}

/* ---------------------------------------------------------------------------
   11. Impact platform: section links, programme cards, report previews, current
   updates, programme and report pages, and the report print layout.
   --------------------------------------------------------------------------- */
.section--tight { padding-block: 0 clamp(40px, 6vw, 64px); }
.ifes-icon { flex: 0 0 auto; }
/* These lists sit inside page content, whose lists are indented by default. */
.entry-content :is(.impact-nav ul, .impact-meta, .impact-points, .impact-docs, .impact-galleries, .gallery-grid) { padding-left: 0; }

/* Section links under the reporting principles. */
.impact-nav { position: sticky; top: calc(var(--header-h) + 12px); z-index: 20; display: flex; justify-content: center; margin: 0 auto; }
.impact-nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 6px; list-style: none; background: rgba(255, 255, 255, .94); border: 1px solid var(--line); border-radius: 999px; box-shadow: var(--shadow-2); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.impact-nav li { margin: 0; padding: 0; }
.impact-nav a { display: inline-flex; align-items: center; gap: .3em; min-height: 40px; padding: 8px 18px; border-radius: 999px; color: var(--ifes-green-900); font-weight: 600; font-size: .95rem; text-decoration: none; transition: background-color .2s ease; }
.impact-nav a:hover { background: var(--ifes-green-50); }
.impact-nav a:focus-visible { outline: 3px solid var(--ifes-gold-600); outline-offset: 2px; }
@media (max-width: 599px) {
	/* One compact row that scrolls sideways if needed, instead of a two-line pill. */
	.impact-nav { padding-inline: 8px; }
	.impact-nav ul { flex-wrap: nowrap; justify-content: flex-start; gap: 2px; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
	.impact-nav ul::-webkit-scrollbar { display: none; }
	.impact-nav a { padding: 8px 14px; font-size: .9rem; white-space: nowrap; }
	.impact-nav__extra { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.entry-content .impact-section { scroll-margin-top: calc(var(--header-h) + 72px); }
.entry-content .impact-section > :is(h2, .eyebrow, p) { max-width: var(--container) !important; }
.entry-content .impact-section > p:not(.eyebrow) { color: var(--ink-600); }

/* Shared pieces. */
.impact-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: var(--ifes-green-50); color: var(--ifes-green-900); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.impact-chip--ongoing::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ifes-green-700); box-shadow: 0 0 0 3px rgba(19, 112, 63, .18); }
.impact-chip--completed { background: #eef0f2; color: var(--steel-700); }
.impact-chip--paused { background: #fbf3e4; color: var(--ifes-gold-700); }
.impact-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; list-style: none; color: var(--ink-600); font-size: .92rem; }
.impact-meta li { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 0; }
.impact-meta .ifes-icon { color: var(--ifes-gold-700); }
.impact-empty { display: flex; align-items: center; justify-content: center; gap: 12px; max-width: var(--container); margin: 28px auto 0; padding: 28px 24px; border: 1px dashed #c3d1c8; border-radius: 18px; background: rgba(255, 255, 255, .6); color: var(--ink-600); text-align: center; }
.impact-empty p { margin: 0; }
.impact-empty .ifes-icon { width: 28px; height: 28px; color: var(--ifes-gold-700); }
.impact-empty strong { color: var(--ifes-green-900); }

/* Programme cards: a stretched title link makes the whole card clickable. */
.programme-cards { display: grid; gap: 24px; max-width: var(--container); margin: 32px auto 0; }
@media (min-width: 760px) { .programme-cards:not(.programme-cards--single) { grid-template-columns: repeat(2, 1fr); } }
.programme-card { position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-1); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.programme-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); border-color: var(--ifes-gold-300); }
.programme-card:focus-within { outline: 3px solid var(--ifes-gold-600); outline-offset: 3px; }
.programme-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ifes-green-50); }
.programme-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.programme-card:hover .programme-card__media img { transform: scale(1.04); }
.programme-card__body { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 3vw, 36px); }
.programme-card__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; color: var(--ink-600); font-size: .85rem; font-weight: 600; }
.programme-card__title { margin: 0; font-size: clamp(1.4rem, 1.15rem + .9vw, 1.9rem); line-height: 1.2; }
.programme-card__title a { color: var(--ifes-green-900); text-decoration: none; }
.programme-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.programme-card__title a:focus-visible { outline: none; }
.programme-card__summary { margin: 0; color: var(--ink-600); }
.programme-card__facts { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; color: var(--ink-600); font-size: .9rem; }
.programme-card__facts span { display: inline-flex; align-items: center; gap: 6px; }
.programme-card__more { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 0; color: var(--ifes-green-700); font-weight: 700; }
.programme-card__more .ifes-icon { transition: transform .2s ease; }
.programme-card:hover .programme-card__more .ifes-icon { transform: translateX(4px); }
@media (min-width: 900px) {
	.programme-cards--single .programme-card { flex-direction: row; }
	.programme-cards--single .programme-card__media { flex: 0 0 48%; aspect-ratio: auto; min-height: 380px; }
	.programme-cards--single .programme-card__body { justify-content: center; }
}

/* Report previews: a document graphic beside the summary and actions. */
.report-cards { display: grid; gap: 20px; max-width: var(--container); margin: 32px auto 0; }
.report-card { display: grid; grid-template-columns: 1fr; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-1); }
@media (min-width: 700px) { .report-card { grid-template-columns: 200px 1fr; } }
.report-card__doc { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; min-height: 160px; padding: 24px; background: linear-gradient(160deg, var(--ifes-green-900), var(--ifes-green-700)); color: #fff; }
.report-card__doc::after { content: ""; position: absolute; top: 0; right: 0; border-style: solid; border-width: 0 28px 28px 0; border-color: transparent var(--paper-warm) rgba(255, 255, 255, .25) transparent; }
.report-card__label { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ifes-gold-300); }
.report-card__doc .ifes-icon { width: 40px; height: 40px; opacity: .9; }
.report-card__lines { display: block; height: 34px; background: repeating-linear-gradient(180deg, rgba(255, 255, 255, .35) 0 2px, transparent 2px 10px); border-radius: 2px; }
.report-card__body { display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 3vw, 32px); }
.report-card__programme { margin: 0; color: var(--ifes-gold-700); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.report-card__title { margin: 0; font-size: clamp(1.25rem, 1.05rem + .7vw, 1.6rem); line-height: 1.25; color: var(--ifes-green-900); }
.report-card__summary { margin: 0; color: var(--ink-600); }
.report-card__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.report-card__actions .btn, .report-panel__actions .btn { gap: 8px; }
.report-card__size { font-weight: 400; opacity: .85; }

/* Current updates. */
.update-cards { display: grid; gap: 22px; max-width: var(--container); margin: 32px auto 0; }
@media (min-width: 700px) { .update-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .update-cards { grid-template-columns: repeat(3, 1fr); } }
.update-card { position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 18px; transition: transform .25s ease, box-shadow .25s ease; }
.update-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); }
.update-card:focus-within { outline: 3px solid var(--ifes-gold-600); outline-offset: 3px; }
.update-card__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--ifes-green-50); }
.update-card__media img { width: 100%; height: 100%; object-fit: cover; }
.update-card__body { display: flex; flex-direction: column; gap: 10px; padding: 22px; }
.update-card__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; color: var(--ink-600); font-size: .85rem; }
.update-card__title { margin: 0; font-size: 1.2rem; line-height: 1.3; }
.update-card__title a { color: var(--ifes-green-900); text-decoration: none; }
.update-card__title a::after { content: ""; position: absolute; inset: 0; }
.update-card__title a:focus-visible { outline: none; }
.update-card__summary { margin: 0; color: var(--ink-600); }
.update-card__programme, .update-related { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--ifes-green-700); font-size: .88rem; font-weight: 600; }
.update-cards__all { max-width: var(--container); margin: 22px auto 0; text-align: right; }
.update-cards__all a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }

/* Programme and report pages: facts panel beside the main column. */
.impact-layout { display: grid; gap: clamp(28px, 4vw, 56px); align-items: start; }
@media (min-width: 960px) {
	.impact-layout { grid-template-columns: minmax(0, 1fr) 320px; }
	.impact-layout > .impact-facts { order: 2; position: sticky; top: calc(var(--header-h) + 24px); }
}
.impact-facts { display: flex; flex-direction: column; gap: 16px; padding: 26px; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--ifes-gold-600); border-radius: 18px; box-shadow: var(--shadow-1); }
.impact-facts__title { margin: 0; font-family: var(--font-body); font-size: .85rem !important; letter-spacing: .1em; text-transform: uppercase; color: var(--ifes-gold-700); }
.impact-facts dl { display: grid; margin: 0; }
.impact-facts dl > div { padding: 10px 0; border-bottom: 1px solid var(--line); }
.impact-facts dl > div:last-child { border-bottom: 0; }
.impact-facts dt { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-600); }
.impact-facts dd { margin: 4px 0 0; font-weight: 600; line-height: 1.45; color: var(--ifes-green-900); }
.impact-facts .btn { width: 100%; }
.impact-block + .impact-block { margin-top: clamp(32px, 4vw, 48px); }
.impact-block > h2, .report-body h2, .report-summary h2 { margin-top: 0; font-size: clamp(1.45rem, 1.2rem + .8vw, 1.9rem); }
.impact-points { display: grid; gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.impact-points li { position: relative; margin: 0; padding: 14px 18px 14px 50px; background: var(--paper-warm); border: 1px solid var(--line); border-radius: 12px; line-height: 1.55; }
.impact-points li::before { content: ""; position: absolute; left: 16px; top: 16px; width: 22px; height: 22px; border-radius: 50%; background: var(--ifes-green-700) center / 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
@media (min-width: 1240px) { .impact-points--activities, .impact-points--outcomes { grid-template-columns: repeat(2, 1fr); } }
.impact-subtitle { margin: 40px 0 0; font-size: 1.25rem; }
.impact-galleries { display: grid; gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .impact-galleries { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .impact-galleries { grid-template-columns: repeat(3, 1fr); } }
.impact-galleries li { margin: 0; }
.impact-galleries a { display: flex; align-items: center; gap: 14px; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 14px; color: var(--ifes-green-900); font-weight: 600; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
.impact-galleries a:hover { border-color: var(--ifes-gold-300); box-shadow: var(--shadow-1); }
.impact-galleries img { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 10px; object-fit: cover; }
.impact-galleries small { display: block; color: var(--ink-600); font-weight: 400; }
.impact-docs { display: grid; gap: 10px; max-width: 760px; margin: 24px 0 0; padding: 0; list-style: none; }
.impact-docs li { margin: 0; }
.impact-docs a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 12px; font-weight: 600; text-decoration: none; }
.impact-docs .ifes-icon { color: #b3261e; }
.impact-docs small { color: var(--ink-600); font-weight: 400; }
.impact-back { display: inline-flex; font-weight: 700; }
.section--warm .gallery-grid { margin-top: 24px; }
@media (min-width: 768px) { .impact-main .gallery-grid, .section .container > .gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .section .container > .gallery-grid { grid-template-columns: repeat(4, 1fr); } }

/* Report page. */
.report-panel__actions { display: grid; gap: 10px; }
.report-toc ol { margin: 10px 0 0; padding-left: 1.2em; }
.report-toc li { margin: 6px 0; font-size: .95rem; }
.report-toc a { color: var(--ifes-green-900); }
.report-summary { margin: 0 0 36px; padding: clamp(22px, 3vw, 32px); background: var(--ifes-green-50); border-left: 5px solid var(--ifes-gold-600); border-radius: 0 16px 16px 0; }
.report-summary p:last-child { margin-bottom: 0; }
.report-body h2 { scroll-margin-top: calc(var(--header-h) + 24px); margin-top: 2.2em; padding-top: 1.2em; border-top: 1px solid var(--line); }
.report-body > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.report-body h3 { font-size: 1.15rem; }
.report-body table { width: 100%; margin: 1.2em 0; border-collapse: collapse; font-size: .95rem; }
.report-body th, .report-body td { padding: 10px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.report-body th { background: var(--paper-warm); color: var(--ifes-green-900); }
.report-print-header { display: none; }
.report-photos { margin-top: 48px; }

@media (prefers-reduced-motion: reduce) {
	.programme-card, .programme-card__media img, .update-card, .programme-card__more .ifes-icon { transition: none; }
	.programme-card:hover, .update-card:hover, .programme-card:hover .programme-card__media img { transform: none; }
}

/* Print / save as PDF: the report alone, as a clean A4 document. */
@media print {
	@page { size: A4; margin: 16mm 16mm 18mm; }
	/* Scroll-revealed elements never scroll into view on paper. */
	.motion-ready .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	.single-ifes_report .site-header, .single-ifes_report .site-footer, .single-ifes_report .page-hero,
	.single-ifes_report .report-panel, .single-ifes_report .report-back, .single-ifes_report .skip-link { display: none !important; }
	.single-ifes_report .section { padding: 0 !important; }
	.single-ifes_report .impact-layout { display: block; }
	.single-ifes_report .container { width: auto; max-width: none; padding: 0; }
	.single-ifes_report { background: #fff; color: #111; font-size: 10.5pt; }
	.report-print-header { display: block; margin: 0 0 18pt; padding-bottom: 10pt; border-bottom: 2pt solid #0b4a2b; }
	.report-print-header p { margin: 0; color: #4a5550; font-size: 9pt; }
	.report-print-header h1 { margin: 6pt 0; color: #0b4a2b; font-size: 20pt; }
	.report-summary { break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.report-body h2, .report-summary h2, .impact-block > h2 { color: #0b4a2b; font-size: 14pt; break-after: avoid; }
	.report-body h3 { font-size: 11.5pt; break-after: avoid; }
	.report-body p, .report-body li { orphans: 3; widows: 3; }
	.report-body tr { break-inside: avoid; }
	.report-body a { color: inherit; text-decoration: none; }
	.report-photos { break-before: page; }
	.report-photos .gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 6pt; }
	.report-photos .gallery-grid li { break-inside: avoid; }
	.impact-docs a { padding: 2pt 0; border: 0; }
}

/* ---------------------------------------------------------------------------
   12. About page: key facts, story with journey and photos, heritage links, values,
   priorities and leadership. Reuses .split, .collage, .vm-cards, .timeline, .cta-band.
   --------------------------------------------------------------------------- */
.entry-content .wp-block-list:is(.about-facts, .about-links, .about-values, .about-priorities) { padding-left: 0; list-style: none; }
.entry-content .wp-block-list:is(.about-facts, .about-links, .about-values, .about-priorities) li { padding-left: 0; }
.entry-content .wp-block-list:is(.about-facts, .about-links, .about-values, .about-priorities) li::before { content: none; }
.entry-content .about-who > .split, .entry-content .about-story-section > *, .entry-content .about-vmv > *, .entry-content .about-where > *, .entry-content .about-leadership > * { max-width: var(--container) !important; }

/* Key facts under the introduction. */
.entry-content .wp-block-list.about-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 28px 0 0; border-top: 1px solid var(--line); }
.entry-content .wp-block-list.about-facts li { margin: 0; padding: 16px 16px 0 0; color: var(--ink-600); font-size: .9rem; line-height: 1.4; }
.entry-content .wp-block-list.about-facts li + li { padding-left: 16px; border-left: 1px solid var(--line); }
.about-facts strong { display: block; margin-bottom: 4px; font-family: var(--font-head); font-size: clamp(1.25rem, 1.05rem + .8vw, 1.7rem); line-height: 1.15; color: var(--ifes-green-900); }

/* Our Story: lead paragraph and journey beside a stacked photo set. */
.about-story { gap: clamp(32px, 5vw, 64px) !important; margin-top: 28px; }
.about-story__lead { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); line-height: 1.6; color: var(--ifes-green-900); padding-left: 20px; border-left: 4px solid var(--ifes-gold-600); }
.about-story h3 { margin-top: 36px; font-size: 1.25rem; }
.entry-content .about-journey li { padding-bottom: 26px !important; }
.entry-content .about-journey li strong { margin-bottom: 2px; color: var(--ifes-gold-700); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; font-family: var(--font-body); }
.about-story__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.about-story__photos .wp-block-image { margin: 0; overflow: hidden; border-radius: 16px; box-shadow: var(--shadow-1); }
.about-story__photos .wp-block-image:first-child { grid-column: 1 / -1; aspect-ratio: 3 / 2; }
.about-story__photos .wp-block-image:not(:first-child) { aspect-ratio: 1; }
.about-story__photos img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (min-width: 782px) { .about-story > .wp-block-column:last-child { position: sticky; top: calc(var(--header-h) + 24px); } }

/* Training heritage links. */
.entry-content .about-story-section > h3 { margin-top: clamp(40px, 5vw, 56px); font-size: 1.25rem; }
.entry-content .wp-block-list.about-links { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 16px; }
@media (min-width: 600px) { .entry-content .wp-block-list.about-links { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .entry-content .wp-block-list.about-links { grid-template-columns: repeat(4, 1fr); } }
.about-links li { margin: 0; }
.about-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 100%; padding: 18px 20px; background: #fff; border: 1px solid var(--line); border-radius: 14px; color: var(--ifes-green-900); font-weight: 600; line-height: 1.35; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.about-links a::after { content: "\2192"; flex: 0 0 auto; color: var(--ifes-gold-700); font-weight: 700; transition: transform .2s ease; }
.about-links a:hover { border-color: var(--ifes-gold-300); box-shadow: var(--shadow-1); transform: translateY(-2px); }
.about-links a:hover::after { transform: translateX(3px); }

/* Values as chips, and "read more" links. */
.entry-content .wp-block-list.about-values { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; }
.about-values li { margin: 0; padding: 9px 16px 9px 38px !important; position: relative; background: var(--ifes-green-50); border-radius: 999px; color: var(--ifes-green-900); font-weight: 600; font-size: .95rem; }
.entry-content .wp-block-list.about-values li::before { content: ""; position: absolute; left: 14px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; background: var(--ifes-green-700) center / 10px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); box-shadow: none; }
.about-more { margin-top: 20px; }
.about-more a { display: inline-flex; gap: 6px; font-weight: 700; color: var(--ifes-green-700); }
.about-more a::after { content: "\2192"; }

/* Priority cards with icons. */
.entry-content .wp-block-list.about-priorities { display: grid; grid-template-columns: 1fr; gap: 18px; margin: 28px 0 32px; }
@media (min-width: 900px) { .entry-content .wp-block-list.about-priorities { grid-template-columns: repeat(3, 1fr); } }
.about-priorities li { position: relative; margin: 0; padding: 86px 24px 24px !important; background: #fff; border: 1px solid var(--line); border-radius: 18px; color: var(--ink-600); line-height: 1.55; transition: box-shadow .2s ease, transform .2s ease; }
.about-priorities li:hover { box-shadow: var(--shadow-2); transform: translateY(-3px); }
.about-priorities a { display: block; margin-bottom: 8px; color: var(--ifes-green-900); font-family: var(--font-head); font-size: 1.2rem; line-height: 1.3; text-decoration: none; }
.about-priorities a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.about-priorities a:focus-visible { outline: none; }
.about-priorities li:focus-within { outline: 3px solid var(--ifes-gold-600); outline-offset: 3px; }
.entry-content .wp-block-list.about-priorities li::before { content: ""; position: absolute; left: 24px; top: 24px; width: 46px; height: 46px; border-radius: 14px; background: var(--ifes-green-50) center / 24px no-repeat; box-shadow: none; }
.entry-content .wp-block-list.about-priorities li:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.about-priorities li:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3Crect width='20' height='14' x='2' y='6' rx='2'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.about-priorities li:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E"); }

/* Leadership cards. */
.about-people { gap: 24px !important; margin-top: 28px; }
.about-person { display: flex; flex-direction: column; height: 100%; padding: clamp(24px, 3vw, 36px); background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-1); }
.about-person h3 { margin: 0 0 10px; font-size: 1.35rem; }
.about-person p { margin: 0; color: var(--ink-600); }
.about-person .about-more { margin-top: 18px; }
.about-person .about-more + .about-more { margin-top: 8px; }
.about-person__photo { margin: 0 0 20px; }
.entry-content .about-person__photo img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: center 20%; border: 4px solid var(--ifes-green-50); }
.about-faces { display: flex; margin: 0 0 20px; }
.about-faces .wp-block-image { margin: 0; }
.about-faces .wp-block-image + .wp-block-image { margin-left: -14px; }
.entry-content .about-faces img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; object-position: center 20%; border: 3px solid var(--ifes-green-900); box-shadow: 0 0 0 2px var(--ifes-gold-300); }
.about-person--board { background: var(--ifes-green-900); border-color: var(--ifes-green-900); border-top: 4px solid var(--ifes-gold-300); }
.about-person--board h3 { color: #fff; }
.about-person--board p { color: rgba(255, 255, 255, .88); }
.about-person--board .about-more a { color: var(--ifes-gold-300); }

@media (max-width: 599px) {
	.entry-content .wp-block-list.about-facts li { padding-right: 8px; font-size: .82rem; }
	.entry-content .wp-block-list.about-facts li + li { padding-left: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.about-links a, .about-links a::after, .about-priorities li { transition: none; }
	.about-links a:hover, .about-priorities li:hover { transform: none; }
}

/* ---------------------------------------------------------------------------
   13. Get Involved: Make a Donation ([ifes_donate]): online giving beside the bank
   transfer accounts, one card per currency with a copy button for the number.
   --------------------------------------------------------------------------- */
.entry-content .donate-section > :is(h2, .eyebrow, p) { max-width: var(--container) !important; }
.entry-content .donate-section > p:not(.eyebrow) { color: var(--ink-600); }
.donate-options { display: grid; gap: 24px; max-width: var(--container); margin: 32px auto 0; align-items: start; }
@media (min-width: 1000px) { .donate-options:not(.donate-options--single) { grid-template-columns: 340px minmax(0, 1fr); } }

/* Online giving. */
.donate-online { display: flex; flex-direction: column; gap: 14px; padding: clamp(26px, 3vw, 36px); background: var(--ifes-green-900); border-top: 4px solid var(--ifes-gold-300); border-radius: 22px; color: rgba(255, 255, 255, .9); box-shadow: var(--shadow-2); }
@media (min-width: 1000px) { .donate-online { position: sticky; top: calc(var(--header-h) + 24px); } }
.donate-online p { margin: 0; }
.donate-online__label { color: var(--ifes-gold-300); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.donate-online__title { margin: 0; color: #fff; font-size: clamp(1.4rem, 1.2rem + .7vw, 1.75rem); line-height: 1.2; }
.donate-online .donate-online__button { gap: 10px; align-self: flex-start; min-height: 52px; margin-top: 6px; padding: 14px 28px; background: var(--ifes-gold-300); color: var(--ifes-green-900); font-size: 1.05rem; font-weight: 700; text-decoration: none; }
.donate-online .donate-online__button:hover { background: #fff; color: var(--ifes-green-900); }
.donate-online .donate-online__button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.donate-online__note { display: flex; gap: 8px; align-items: flex-start; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .78); font-size: .85rem; line-height: 1.5; }
.donate-online__note .ifes-icon { margin-top: 3px; color: var(--ifes-gold-300); }

/* Bank transfer accounts. */
.donate-bank__title { margin: 0; font-size: clamp(1.4rem, 1.2rem + .7vw, 1.75rem); }
.donate-bank__intro { margin: 8px 0 0; color: var(--ink-600); }
.donate-accounts { display: grid; gap: 16px; margin-top: 22px; }
@media (min-width: 640px) { .donate-accounts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.donate-account { display: flex; flex-direction: column; gap: 16px; padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-1); }
.donate-account__head { display: flex; align-items: center; gap: 12px; }
.donate-account__symbol { display: inline-grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; background: var(--ifes-green-50); color: var(--ifes-green-900); font-family: var(--font-head); font-size: 1.35rem; font-weight: 700; }
.donate-account__head h4 { margin: 0; font-size: 1.02rem; line-height: 1.3; color: var(--ifes-green-900); }
.donate-account__code { display: block; color: var(--ifes-gold-700); font-family: var(--font-body); font-size: .75rem; font-weight: 700; letter-spacing: .1em; }
.donate-account__number { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; padding: 14px 16px; background: var(--paper-warm); border: 1px dashed #d6cfbd; border-radius: 12px; }
.donate-account__label, .donate-account__details dt { color: var(--ink-600); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.donate-account__label { grid-column: 1 / -1; }
.donate-account__value { color: var(--ifes-green-900); font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); font-weight: 600; letter-spacing: .04em; overflow-wrap: anywhere; user-select: all; }
.donate-copy { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 14px; border: 1px solid var(--ifes-green-700); border-radius: 999px; background: #fff; color: var(--ifes-green-900); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.donate-copy:hover { background: var(--ifes-green-50); }
.donate-copy:focus-visible { outline: 3px solid var(--ifes-gold-600); outline-offset: 2px; }
.donate-copy.is-copied { background: var(--ifes-green-700); border-color: var(--ifes-green-700); color: #fff; }
.donate-account__details { display: grid; gap: 0; margin: 0; }
.donate-account__details > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); }
.donate-account__details dd { margin: 0; color: var(--ink-900); font-weight: 600; overflow-wrap: anywhere; }
.donate-account__swift { font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace; letter-spacing: .04em; }
.donate-bank__help { margin: 18px 0 0; color: var(--ink-600); font-size: .95rem; }
.donate-bank__help a { font-weight: 700; }
.donate-empty { justify-content: flex-start; text-align: left; }
@media (max-width: 399px) {
	.donate-account__number { grid-template-columns: 1fr; }
	.donate-copy { justify-self: start; }
	.donate-account__details > div { grid-template-columns: 1fr; gap: 2px; }
}
@media (prefers-reduced-motion: reduce) { .donate-copy { transition: none; } }

/* ---------------------------------------------------------------------------
   14. Programme-area pages (Education, Empowerment, Humanitarian): introduction with a
   photo collage, "How we will work" cards, principles and a photo call to action.
   The six-card section ("Planned Areas of Support" / "Proposed Programme Activities")
   keeps its own rules in §6 and is not touched here.
   --------------------------------------------------------------------------- */
.programme-intro__split { margin-top: 0; }
.programme-intro__split .wp-block-column:first-child > .wp-block-heading { margin-top: 0; }
.programme-intro__split .wp-block-column:first-child > p:not(.eyebrow) { color: var(--ink-600); font-size: 1.05rem; line-height: 1.7; }
.entry-content .programme-approach > :is(h2, .eyebrow) { max-width: var(--container) !important; }

/* Two cards: how we will work, and the goal or outcome (dark). */
.programme-cards { gap: 24px !important; margin-top: 20px; }
.programme-card { position: relative; height: 100%; padding: clamp(26px, 3vw, 40px); padding-top: calc(clamp(26px, 3vw, 40px) + 64px); background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-1); }
.programme-card::before { content: ""; position: absolute; left: clamp(26px, 3vw, 40px); top: clamp(26px, 3vw, 40px); width: 48px; height: 48px; border-radius: 14px; background: var(--ifes-green-50) center / 24px no-repeat; }
.programme-card > .wp-block-heading { margin-top: 0; font-size: clamp(1.35rem, 1.15rem + .7vw, 1.7rem); }
.programme-card > p { margin-bottom: 0; color: var(--ink-600); line-height: 1.7; }
.programme-card > p + p { margin-top: 14px; }
.programme-card a { font-weight: 700; }
.programme-card--approach::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m16.24 7.76-2.12 6.36-6.36 2.12 2.12-6.36 6.36-2.12z'/%3E%3C/svg%3E"); }
.programme-card--goal { background: var(--ifes-green-900); border-color: var(--ifes-green-900); border-top: 4px solid var(--ifes-gold-300); box-shadow: var(--shadow-2); }
.programme-card--goal::before { background-color: rgba(255, 255, 255, .1); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e2c27a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E"); }
.programme-card--goal > .wp-block-heading { color: #fff; }
.programme-card--goal > p { color: rgba(255, 255, 255, .88); }
.programme-card--goal a { color: var(--ifes-gold-300); }
/* On the humanitarian page the goal card follows the principles at full width. */
.entry-content .programme-approach > .programme-card--goal { max-width: var(--container) !important; height: auto; margin-top: 28px; }

/* Principles as icon cards (humanitarian page). */
.entry-content .wp-block-list.programme-principles { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: var(--container) !important; margin: 24px auto 0; padding-left: 0; list-style: none; }
@media (min-width: 640px) { .entry-content .wp-block-list.programme-principles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .entry-content .wp-block-list.programme-principles { grid-template-columns: repeat(3, 1fr); } }
.entry-content .wp-block-list.programme-principles li { position: relative; margin: 0; padding: 80px 24px 24px; background: #fff; border: 1px solid var(--line); border-radius: 18px; color: var(--ink-600); line-height: 1.6; }
.entry-content .wp-block-list.programme-principles li strong { display: block; margin-bottom: 4px; color: var(--ifes-green-900); font-family: var(--font-head); font-size: 1.15rem; font-weight: 600; }
.entry-content .wp-block-list.programme-principles li::before { content: ""; position: absolute; left: 24px; top: 24px; width: 44px; height: 44px; border-radius: 12px; background: var(--ifes-green-50) center / 22px no-repeat; box-shadow: none; }
.entry-content .wp-block-list.programme-principles li:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.programme-principles li:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z'/%3E%3Cpath d='m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z'/%3E%3Cpath d='M7 21h10M12 3v18M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.programme-principles li:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.programme-principles li:nth-child(4)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E"); }
.entry-content .wp-block-list.programme-principles li:nth-child(5)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }

/* ---------------------------------------------------------------------------
   15. Our Partners: partner cards ([ifes_partners], ifes-core partners.php),
   empty state, and the "why it matters" icons.
   Logos sit whole on a white panel of fixed height (contain, never cropped or
   stretched); cards keep one rhythm whatever the description length.
   --------------------------------------------------------------------------- */
/* Wrapping row: cards between 300 and 370 px, centred, so two partners sit side by
   side from tablet width and a short last row stays centred. */
.partner-grid {
	display: flex; flex-wrap: wrap; gap: 24px; justify-content: center;
	max-width: var(--container) !important; margin: 40px auto 0; padding: 0; list-style: none;
}
.partner-card {
	flex: 1 1 300px; max-width: 370px;
	display: flex; flex-direction: column; margin: 0; overflow: hidden; text-align: left;
	background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-1);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.partner-card:hover, .partner-card:focus-within { transform: translateY(-3px); border-color: rgba(19, 112, 63, .28); box-shadow: var(--shadow-2); }
.partner-card__logo {
	display: grid; place-items: center; height: 176px; padding: 22px 36px; box-sizing: border-box;
	background: #fff; border-bottom: 1px solid var(--line);
}
.partner-card__logo img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 0 !important; }
.partner-card__body { display: flex; flex: 1; flex-direction: column; padding: 24px 26px 26px; }
.entry-content .partner-card__category {
	margin: 0 0 8px; color: var(--ifes-gold-700); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.entry-content .partner-card__name { margin: 0 0 10px; color: var(--ifes-green-900); font-size: 1.22rem; line-height: 1.3; }
.entry-content .partner-card__text { margin: 0; color: var(--ink-600); line-height: 1.65; }
.entry-content .partner-card__link { margin: auto 0 0; padding-top: 18px; }
.partner-card__link a {
	display: inline-flex; align-items: center; gap: 6px; color: var(--ifes-green-700); font-weight: 700; text-decoration: none;
}
.partner-card__link a::after {
	content: ""; width: 15px; height: 15px; flex: 0 0 auto;
	background: currentColor; -webkit-mask: var(--partner-ext) center / contain no-repeat; mask: var(--partner-ext) center / contain no-repeat;
	--partner-ext: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
}
.partner-card__link a:hover, .partner-card__link a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

/* No active partners yet. */
.partner-empty {
	max-width: 560px; margin: 40px auto 0; padding: 40px 32px; text-align: center;
	background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-1);
}
.partner-empty__icon {
	display: block; width: 60px; height: 60px; margin: 0 auto 18px; border-radius: 18px;
	background: var(--ifes-green-50) center / 28px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17 2 2a1 1 0 1 0 3-3'/%3E%3Cpath d='m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4'/%3E%3Cpath d='m21 3 1 11h-2M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3M3 4h8'/%3E%3C/svg%3E");
}
.entry-content .partner-empty__title { margin: 0 0 8px; color: var(--ifes-green-900); font-size: 1.3rem; }
.entry-content .partner-empty p { margin: 0 auto; max-width: 440px; color: var(--ink-600); }

/* "What collaboration makes possible": award, people, clipboard. */
.value-cards.partner-values li:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.48 12.89 17 22l-5-3-5 3 1.52-9.11'/%3E%3C/svg%3E") !important; }
.value-cards.partner-values li:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") !important; }
.value-cards.partner-values li:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313703f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E") !important; }
@media (prefers-reduced-motion: reduce) {
	.partner-card { transition: none; }
	.partner-card:hover, .partner-card:focus-within { transform: none; }
}
