/*! IEG 2026 theme styles. Generated by tools/build-css.mjs from assets/css/src. Do not edit. */

/*
 * Design tokens. Colours alias the theme.json palette so there is one source of truth.
 * Names follow the IEG design system (design/_ds tokens).
 */
:root {
	--green-900: var(--wp--preset--color--green-900, #2c340f);
	--green-800: var(--wp--preset--color--green-800, #3f4a18);
	--green-700: var(--wp--preset--color--green-700, #525f22);
	--green-600: var(--wp--preset--color--green-600, #687a34);
	--green-500: var(--wp--preset--color--green-500, #7d9046);
	--green-300: var(--wp--preset--color--green-300, #bcc79c);
	--green-100: var(--wp--preset--color--green-100, #ecf0e1);
	--green-050: var(--wp--preset--color--green-050, #f6f8ef);

	--accent-lime: #8bc540;
	--accent-green: #38b34b;
	--accent-sky: #56b8e7;
	--accent-plum: #b44e86;
	--accent-red: #ec1d23;
	--accent-orange: #f5873c;
	--accent-yellow: #f6d00d;

	--neutral-100: #e9e9e1;
	--neutral-200: #d6d6cb;
	--neutral-500: #6b6b61;
	--neutral-700: #37372f;

	--text-body: var(--neutral-700);
	--text-muted: var(--neutral-500);

	/* The design uses green-500 (3.5:1 on white). Raised to green-700 to meet WCAG AA for 12px text. */
	--text-eyebrow: var(--green-700);
	--text-link: var(--green-600);
	--text-link-hover: var(--green-800);

	--surface-subtle: var(--green-050);
	--surface-brand: var(--green-600);

	--border-subtle: var(--neutral-100);
	--border-default: var(--neutral-200);
	--border-strong: var(--green-300);
	--divider: var(--neutral-100);

	--status-success: var(--accent-green);
	--status-success-bg: #e7f6ea;
	--status-warning: var(--accent-orange);
	--status-warning-bg: #fdeee2;
	--status-danger: var(--accent-red);
	--status-danger-bg: #fde7e7;

	--action-bg: var(--green-600);
	--action-bg-hover: var(--green-700);
	--action-bg-active: var(--green-800);

	--font-sans: var(--wp--preset--font-family--rubik, "Rubik", "Helvetica Neue", Arial, sans-serif);

	--container: 1200px;
	--container-narrow: 820px;
	--gutter: clamp(20px, 4vw, 64px);
	--section-y: clamp(56px, 7vw, 112px);

	--radius-card: 16px;
	--shadow-md: 0 6px 20px rgba(35, 35, 30, 0.09);
	--shadow-focus: 0 0 0 3px rgba(125, 144, 70, 0.38);
	--ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
	--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--transition-color: color 160ms var(--ease-standard), background-color 160ms var(--ease-standard), border-color 160ms var(--ease-standard);
}

/* Base: reset, accessibility helpers, links, focus. */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

[id] {
	scroll-margin-top: 96px;
}

img,
svg {
	max-width: 100%;
	height: auto;
}

img {
	display: block;
}

a {
	color: var(--text-link);
	transition: var(--transition-color);
}

a:hover {
	color: var(--text-link-hover);
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--green-500);
	outline-offset: 2px;
}

/* Reset spacing on the elements the theme lays out itself. Gaps come from flex/grid. */
.ieg-main :where(h1, h2, h3, h4, p, ul, ol, figure, dl, dd) {
	margin: 0;
}

.ieg-main :where(ul, ol) {
	padding: 0;
	list-style: none;
}

.screen-reader-text,
.skip-link:not(:focus) {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.skip-link:focus {
	position: absolute;
	left: 12px;
	top: 12px;
	z-index: 100;
	padding: 10px 16px;
	border-radius: 999px;
	background: #fff;
	color: var(--green-700);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* Components shared across sections: buttons, eyebrow, tag, pill, icons, headings. */

/* ---- Buttons. Core "Button" blocks and the theme's own .ieg-btn share one look. ---- */
.ieg-btn,
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 12px 26px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--action-bg);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: var(--transition-color), transform 80ms var(--ease-standard);
}

.ieg-btn:hover,
.wp-block-button .wp-block-button__link:hover {
	background: var(--action-bg-hover);
	color: #fff;
	text-decoration: none;
}

.ieg-btn:active,
.wp-block-button .wp-block-button__link:active {
	background: var(--action-bg-active);
	transform: translateY(1px);
}

.ieg-btn--sm {
	padding: 8px 18px;
	font-size: 13px;
}

.ieg-btn-lg .wp-block-button__link {
	min-height: 56px;
	padding: 16px 36px;
	font-size: 18px;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: var(--green-600);

	/* green-700 text: it can sit on the pale band, where green-600 is 4.4:1. */
	color: var(--green-700);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--surface-subtle);
	color: var(--green-700);
}

.wp-block-button.is-style-ghost .wp-block-button__link {
	padding-inline: 0;
	background: transparent;

	/* green-700, not the design's green-600: 4.4:1 on the pale band fails AA. */
	color: var(--green-700);
}

.wp-block-button.is-style-ghost .wp-block-button__link:hover {
	background: transparent;
	color: var(--green-800);
}

.ieg-btn--on-dark,
.wp-block-button.is-style-on-dark .wp-block-button__link {
	background: #fff;
	color: var(--green-700);
}

.ieg-btn--on-dark:hover,
.wp-block-button.is-style-on-dark .wp-block-button__link:hover {
	background: var(--green-100);
	color: var(--green-800);
}

.wp-block-buttons,
.ieg-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
}

.wp-block-button {
	display: flex;
}

/* ---- Type helpers ---- */
.ieg-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--text-eyebrow);
}

.ieg-eyebrow--light {
	color: #fff;
}

.ieg-h1 {
	font-size: clamp(36px, 5vw, 60px);
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: var(--green-600);
	text-wrap: balance;
}

.ieg-h2 {
	font-size: clamp(30px, 3.6vw, 44px);
	line-height: 1.12;
	letter-spacing: -0.02em;
	color: var(--green-600);
	text-wrap: balance;
}

.ieg-h2-sm {
	font-size: clamp(22px, 2.4vw, 28px);
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--green-600);
	text-wrap: balance;
}

.ieg-lead {
	max-width: 52ch;
	font-size: 18px;
	line-height: 1.65;
	text-wrap: pretty;
}

.ieg-lead--xl {
	max-width: none;
	font-size: 20px;
	line-height: 1.55;
}

.ieg-body-lg {
	max-width: 52ch;
	font-size: 17px;
	line-height: 1.65;
}

/* The 64x4 section rule under a heading. */
.has-rule::after {
	content: "";
	display: block;
	width: 64px;
	height: 4px;
	margin-top: 24px;
	border-radius: 99px;
	background: var(--green-600);
}

/* ---- Tag and pill ---- */
.ieg-tag {
	align-self: flex-start;
	display: inline-block;
	padding: 4px 12px;
	border: 1px solid var(--border-subtle);
	border-radius: 99px;
	background: var(--surface-subtle);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--green-700);
}

.ieg-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 99px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--green-800);
}

.ieg-pill--warning {
	background: var(--status-warning-bg);
}

.ieg-pill__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--status-warning);
}

/* ---- Status tag (governance): text always states the status; colour only reinforces it ---- */
.ieg-status {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	padding: 5px 12px 5px 10px;
	border-radius: 999px;
	background: var(--status-bg, var(--surface-subtle));
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
	color: var(--text-body);
}

.ieg-status::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--status-dot, var(--green-600));
}

.ieg-status--success {
	--status-bg: var(--status-success-bg);
	--status-dot: var(--status-success);
}

.ieg-status--warning {
	--status-bg: var(--status-warning-bg);
	--status-dot: var(--status-warning);
}

.ieg-status--danger {
	--status-bg: var(--status-danger-bg);
	--status-dot: var(--status-danger);
}

/* ---- Cards ---- */
.ieg-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
	background: #fff;
}

.ieg-card__media {
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--green-100);
}

.ieg-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ieg-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 12px;
	padding: 24px 24px 28px;
}

.ieg-card__title {
	font-size: 20px;
	line-height: 1.3;
	color: var(--green-600);
}

.ieg-card__title a {
	color: inherit;
	text-decoration: none;
}

.ieg-card__title a:hover {
	text-decoration: underline;
}

.ieg-card__meta {
	margin-top: auto !important;
	font-size: 13px;
	color: var(--text-muted);
}

/* ---- Icons: inline masks so they take currentColor and need no requests ---- */
.ieg-i {
	display: inline-block;
	flex: none;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--ieg-icon) center / contain no-repeat;
	mask: var(--ieg-icon) center / contain no-repeat;
}

.ieg-i--globe {
	width: 16px;
	height: 16px;
}

.ieg-i--circle-check {
	width: 20px;
	height: 20px;
}

/* Icons on buttons sit to the right, as in the design. */
.wp-block-button[class*="has-icon-"] .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--ieg-icon) center / contain no-repeat;
	mask: var(--ieg-icon) center / contain no-repeat;
}

/* Site chrome: announcement bar, sticky header, navigation, footer. */

/* ---- Announcement bar ---- */
.ieg-announce {
	background: var(--green-800);
	color: #fff;
}

.ieg-announce__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	max-width: var(--container);
	margin: 0 auto;
	padding: 8px var(--gutter);
	font-size: 14px;
	line-height: 1.4;
}

.ieg-announce__text {
	min-width: 0;
	margin: 0;
}

.ieg-announce a {
	color: #fff;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ieg-lang {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ieg-lang__list {
	display: flex;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-lang a {
	text-decoration: none;
}

/* ---- Header ---- */
.ieg-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--border-subtle);
	background: #fff;
}

.ieg-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 72px;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.ieg-logo {
	display: flex;
	flex: none;
	line-height: 0;
}

.ieg-logo img {
	width: auto;
	height: 45px;
}

.ieg-nav {
	display: none;
	align-items: center;
	gap: 28px;
}

.ieg-nav__list {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-nav__list a {
	display: block;
	padding: 26px 0 24px;
	border-bottom: 2px solid transparent;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--green-700);
	opacity: 0.85;
}

.ieg-nav__list a:hover {
	color: var(--green-600);
	opacity: 1;
}

.ieg-nav__list a[aria-current="page"] {
	border-bottom-color: var(--green-600);
	opacity: 1;
}

/* Narrow: <details> disclosure. Works without JavaScript. */
.ieg-menu {
	position: static;
}

.ieg-menu__toggle {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--border-strong);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--green-700);
	list-style: none;
	cursor: pointer;
}

.ieg-menu__toggle::-webkit-details-marker {
	display: none;
}

.ieg-menu__panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	padding: 8px var(--gutter) 24px;
	border-bottom: 1px solid var(--green-800);
	background: var(--green-700);
}

.ieg-menu__panel .ieg-nav__list {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

.ieg-menu__panel .ieg-nav__list a {
	min-height: 44px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
	font-size: 13px;
	color: #fff;
	opacity: 1;
}

.ieg-menu__panel .ieg-nav__list a[aria-current="page"] {
	border-bottom-color: var(--accent-lime);
}

.ieg-menu__panel .ieg-btn {
	align-self: flex-start;
	margin-top: 20px;
}

@media (min-width: 1000px) {
	.ieg-nav {
		display: flex;
	}

	.ieg-menu {
		display: none;
	}
}

/* ---- Footer ---- */
.ieg-partners {
	border-top: 1px solid var(--divider);
	background: #fff;
}

.ieg-partners__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 88px) var(--gutter);
}

.ieg-partners__inner .ieg-eyebrow {
	margin: 0;
	text-align: center;
}

.ieg-partners__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 24px 48px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-partners__logos img {
	width: auto;
	height: 60px;
	opacity: 0.78;
	filter: grayscale(1);
}

.ieg-newsletter {
	background: var(--surface-brand);
	color: #fff;
}

.ieg-newsletter__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px 48px;
	max-width: var(--container);
	margin: 0 auto;
	padding: 48px var(--gutter) 40px;
}

.ieg-newsletter__copy {
	display: flex;
	flex: 1 1 360px;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.ieg-newsletter__copy h2 {
	margin: 0;
	font-size: 22px;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: #fff;
}

.ieg-newsletter__copy p {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
}

.ieg-newsletter__form-wrap {
	display: flex;
	flex: 1 1 420px;
	flex-direction: column;
	gap: 12px;
	max-width: 520px;
}

.ieg-newsletter__form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 6px 6px 6px 20px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 28px;

	/* Darker than the design's 12% white so white text keeps 4.5:1 contrast. */
	background: rgba(44, 52, 15, 0.28);
}

.ieg-newsletter__form input[type="email"] {
	flex: 1 1 180px;
	min-width: 0;
	min-height: 44px;
	border: 0;
	outline: 0;
	background: transparent;
	font: inherit;
	font-size: 16px;
	color: #fff;
}

.ieg-newsletter__form input[type="email"]::placeholder {
	color: rgba(255, 255, 255, 0.9);
}

.ieg-newsletter__form:focus-within {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.45);
}

.ieg-newsletter__note,
.ieg-newsletter__error {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
}

.ieg-newsletter a {
	color: #fff;
	font-weight: 700;
}

.ieg-newsletter__done {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 16px;
	font-weight: 700;
}

.ieg-footer__main {
	background: var(--green-800);
	color: #fff;
}

.ieg-footer__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 40px 64px;
	max-width: var(--container);
	margin: 0 auto;
	padding: 48px var(--gutter) 40px;
}

.ieg-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.ieg-footer__brand img {
	width: auto;
	height: 52px;
}

.ieg-footer__tagline {
	max-width: 30ch;
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
}

.ieg-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-social {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
}

.ieg-social:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

.ieg-footer__links {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ieg-footer__links h2 {
	margin: 0;
}

.ieg-footer__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 4px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-footer__list a {
	display: flex;
	align-items: center;
	min-height: 44px;
	font-size: 15px;
	color: #fff;
	text-decoration: none;
}

.ieg-footer__list a:hover {
	color: #fff;
	text-decoration: underline;
}

.ieg-footer__base {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.ieg-footer__base-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	max-width: var(--container);
	margin: 0 auto;
	padding: 18px var(--gutter);
	font-size: 13px;
	line-height: 1.5;
}

/* Homepage sections, in page order. */

/* Shared inner container for full-bleed sections. */
.ieg-hero__inner,
.ieg-stats__inner,
.ieg-cop17,
.ieg-pledge__inner,
.ieg-story__inner,
.ieg-gov__inner,
.ieg-regions-section__inner,
.ieg-news-section__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* ---- Hero ---- */
.ieg-hero__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr));
	gap: 56px 64px;
	align-items: center;
	padding-block: clamp(56px, 7vw, 112px);
}

.ieg-hero__copy {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.ieg-accreditation {
	font-size: 14px;
	line-height: 1.45;
}

.ieg-accreditation::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-right: 10px;
	vertical-align: -5px;
	background: var(--green-600);
	-webkit-mask: var(--ieg-icon-badge-check) center / contain no-repeat;
	mask: var(--ieg-icon-badge-check) center / contain no-repeat;
}

.ieg-accreditation strong {
	color: var(--green-700);
}

.ieg-hero-people {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-hero-people__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin: 0;
	text-align: center;
}

.ieg-hero-people__photo {
	width: 100%;
	max-width: 148px;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 50%;
	background: var(--green-100);
}

.ieg-hero-people__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ieg-hero-people__name {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--green-600);
}

.ieg-hero-people__role {
	margin-top: 4px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--text-muted);
}

/* ---- Unified for Mother Earth ---- */
.ieg-stats {
	border-block: 1px solid var(--divider);
}

.ieg-stats__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 48px;
	padding-block: 28px;
}

.ieg-stats__title {
	display: flex;
	align-items: center;
	gap: 16px;
	flex: 0 0 auto;
	font-size: 24px;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--green-700);
}

.ieg-stats__title::before {
	content: "";
	width: 4px;
	height: 44px;
	border-radius: 99px;
	background: var(--accent-lime);
}

.ieg-stats__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	flex: 1 1 560px;
	gap: 20px 32px;
}

.ieg-stat {
	display: flex;
	align-items: baseline;
	gap: 14px;
}

.ieg-stat__n {
	font-size: 36px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--green-600);
}

.ieg-stat__t {
	font-size: 15px;
}

/* ---- COP17 notice ---- */
.ieg-cop17 {
	padding-block: clamp(48px, 5vw, 72px);
}

.ieg-cop17__card {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 48px;
	padding: clamp(24px, 3vw, 36px) clamp(20px, 4vw, 48px);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
	background: #fff;
}

.ieg-cop17__main {
	display: flex;
	flex: 1 1 560px;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 40px;
	min-width: 0;
}

.ieg-cop17__logo {
	flex: 0 0 auto;
	width: min(300px, 100%);
	aspect-ratio: 600 / 77;
}

.ieg-cop17__logo img {
	width: 100%;
	height: auto;
}

.ieg-cop17__text {
	display: flex;
	flex: 1 1 280px;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.ieg-cop17__when {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.ieg-cop17__intro {
	max-width: 52ch;
	font-size: 16px;
	line-height: 1.6;
	text-wrap: pretty;
}

.ieg-cop17__contacts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	flex: 1 1 100%;
	gap: 16px 40px;
	padding-top: 20px;
	border-top: 1px solid var(--divider);
}

.ieg-cop17__contact {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 15px;
	line-height: 1.5;
}

/* ---- 8 billion hours ---- */
.ieg-pledge {
	position: relative;
	overflow: hidden;
	background: var(--surface-brand);
	color: #fff;
}

.ieg-pledge__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 40px 72px;
	align-items: center;
	padding-block: clamp(56px, 7vw, 112px);
}

.ieg-pledge__title {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ieg-pledge__h {
	font-size: clamp(56px, 9vw, 120px);
	line-height: 0.95;
	letter-spacing: -0.04em;
	color: #fff;
}

.ieg-pledge__h.has-rule::after {
	margin-top: 20px;
	background: var(--accent-lime);
}

.ieg-pledge__body {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

/* The 8BH mark sits behind the heading from 768px up; below that it is never requested. */
@media (min-width: 768px) {
	.ieg-pledge::before {
		content: "";
		position: absolute;
		top: 50%;
		left: clamp(-40px, 2vw, 40px);
		height: 150%;
		aspect-ratio: 1;
		transform: translateY(-50%);
		background: url("../img/brand/8bh-mark.webp") center / contain no-repeat;
		mix-blend-mode: multiply;
		opacity: 0.55;
		pointer-events: none;
	}
}

/* ---- Founding story ---- */
.ieg-story {
	position: relative;
	overflow: hidden;
	background: var(--surface-subtle);
}

.ieg-story__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 48px 80px;
	padding-block: clamp(56px, 7vw, 112px);
}

.ieg-story__copy {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ieg-timeline {
	display: flex;
	flex-direction: column;
}

.ieg-milestone {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 20px;
	padding: 20px 0;
	border-top: 1px solid var(--border-default);
}

.ieg-milestone__when {
	padding-top: 3px;
}

.ieg-milestone__what {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--green-700);
}

/* Photo credit and background photo: desktop only, so low-end phones never download the image. */
.ieg-story__credit {
	display: none;
}

@media (min-width: 768px) {
	.ieg-story::before,
	.ieg-story::after {
		content: "";
		position: absolute;
		inset: 0;
		pointer-events: none;
	}

	.ieg-story::before {
		background: url("../img/cop16-cali-2024-1000.webp") center 62% / cover no-repeat;
	}

	.ieg-story::after {
		background: linear-gradient(90deg, rgba(246, 248, 239, 0.92) 0%, rgba(246, 248, 239, 0.82) 48%, rgba(246, 248, 239, 0.55) 100%);
	}

	.ieg-story__credit {
		position: relative;
		z-index: 1;
		display: block;
		max-width: var(--container);
		margin: 0 auto;
		padding: 0 var(--gutter) 16px;
		text-align: right;
		font-size: 12px;
		color: var(--text-muted);
	}
}

@media (min-width: 1100px) {
	.ieg-story::before {
		background-image: url("../img/cop16-cali-2024.webp");
	}
}

/* ---- Governance ---- */
.ieg-gov__inner {
	display: flex;
	flex-direction: column;
	gap: 48px;
	padding-block: var(--section-y);
}

.ieg-section-head {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 700px;
}

.ieg-section-head--row {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 40px;
	max-width: none;
}

.ieg-section-head__copy {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 700px;
}

.ieg-gov__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 0 32px;
}

.ieg-gov-item {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 22px 0 26px;
	border-top: 1px solid var(--divider);
}

.ieg-gov-item__n {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--text-eyebrow);
}

.ieg-gov-item__title {
	font-size: 18px;
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--green-600);
}

.ieg-gov-item__desc {
	font-size: 14px;
	line-height: 1.5;
}

.ieg-note {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	padding: 20px 24px;
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
}

.ieg-note__text {
	position: relative;
	flex: 1 1 320px;
	min-width: 0;
	padding-left: 38px;
	font-size: 16px;
	line-height: 1.5;
}

.ieg-note__text::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 24px;
	height: 24px;
	background: var(--green-600);
	-webkit-mask: var(--ieg-icon-scroll-text) center / contain no-repeat;
	mask: var(--ieg-icon-scroll-text) center / contain no-repeat;
}

.ieg-note__text strong {
	color: var(--green-700);
}

/* ---- Regions ---- */
.ieg-regions-section {
	background: var(--surface-subtle);
}

.ieg-regions-section__inner,
.ieg-news-section__inner {
	display: flex;
	flex-direction: column;
	gap: 48px;
	padding-block: var(--section-y);
}

.ieg-news-section__inner {
	gap: 40px;
}

.ieg-regions {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-regions__item {
	display: flex;
	margin: 0;
}

.ieg-region-card {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 14px;
	min-height: 180px;
	padding: 24px;
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
	background: #fff;
	transition: border-color 160ms var(--ease-standard), box-shadow 240ms var(--ease-out);
}

.ieg-region-card:hover {
	border-color: var(--border-strong);
	box-shadow: var(--shadow-md);
}

.ieg-region-card:focus-within {
	box-shadow: var(--shadow-focus);
}

.ieg-region-card__pip {
	width: 24px;
	height: 4px;
	border-radius: 99px;
}

.ieg-region-card__name {
	margin: 0;
	font-size: 19px;
	line-height: 1.3;
	letter-spacing: 0;
}

.ieg-region-card__link {
	color: var(--green-600);
	text-decoration: none;
}

/* Whole card is the click target; the heading link carries the accessible name. */
.ieg-region-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--radius-card);
}

.ieg-region-card__link:focus-visible {
	outline: none;
}

.ieg-region-card__chair {
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
}

.ieg-region-card__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--divider);
	font-size: 14px;
	font-weight: 700;
	color: var(--green-700);
}

/* ---- News ---- */
.ieg-news {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-news__item {
	display: flex;
	margin: 0;
}

.ieg-news__item .ieg-card {
	flex: 1;
}

/* Generic templates: pages, posts, archives, 404. */

.ieg-wrap {
	max-width: var(--container);
	margin: 0 auto;
	padding: var(--section-y) var(--gutter);
}

.ieg-wrap--narrow {
	max-width: calc(var(--container-narrow) + 2 * var(--gutter));
}

.ieg-page-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 40px;
}

.ieg-page-header h1 {
	font-size: clamp(34px, 4.6vw, 56px);
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: var(--green-600);
	text-wrap: balance;
}

.ieg-prose {
	max-width: 68ch;
	font-size: 17px;
	line-height: 1.7;
}

.ieg-prose > * + * {
	margin-top: 1.1em;
}

.ieg-prose :where(h2, h3, h4) {
	margin-top: 1.8em;
	line-height: 1.2;
}

.ieg-prose :where(ul, ol) {
	padding-left: 1.25em;
}

.ieg-prose img {
	border-radius: var(--radius-card);
}

/* Core classes editors rely on inside post and page content. */
.alignleft {
	float: left;
	margin: 0 1.5em 1em 0;
}

.alignright {
	float: right;
	margin: 0 0 1em 1.5em;
}

.aligncenter {
	display: block;
	margin-inline: auto;
}

.wp-caption {
	max-width: 100%;
}

.wp-caption-text,
.gallery-caption {
	margin-top: 8px;
	font-size: 13px;
	color: var(--text-muted);
}

.sticky,
.bypostauthor {
	display: block;
}

.ieg-pages {
	margin-top: 2em;
}

.ieg-entry__image {
	margin-bottom: 40px;
	overflow: hidden;
	border-radius: var(--radius-card);
}

.ieg-entries {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 24px;
}

.navigation.pagination {
	margin-top: 48px;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--border-default);
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
}

.navigation.pagination .page-numbers.current {
	border-color: var(--green-600);
	background: var(--green-600);
	color: #fff;
}

.search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 24px 0;
}

.search-form label {
	flex: 1 1 240px;
}

.search-form .search-field {
	width: 100%;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid var(--border-default);
	border-radius: 6px;
	font: inherit;
}

.search-form .search-submit {
	min-height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: 999px;
	background: var(--action-bg);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

/* Legal documents: Statutes, Privacy Policy, Terms of Use. */

.ieg-btn--outline {
	border-color: var(--green-600);
	background: transparent;
	color: var(--green-700);
}

.ieg-btn--outline:hover {
	background: var(--surface-subtle);
	color: var(--green-800);
}

/* ---- Header band ---- */
.ieg-legal-band {
	background: var(--surface-subtle);
}

.ieg-legal-band__inner {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 88px) var(--gutter) clamp(40px, 5vw, 64px);
}

.ieg-legal-band h1 {
	font-size: clamp(34px, 4.6vw, 56px);
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: var(--green-600);
	text-wrap: balance;
}

/* Statutes: copy on the left, status panel on the right. */
.ieg-statutes-intro {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	align-items: start;
	gap: 40px 72px;
}

.ieg-statutes-intro__copy {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ieg-statutes-intro__copy h1 {
	font-size: clamp(36px, 5vw, 60px);
}

.ieg-statutes-intro__copy p:not(.ieg-eyebrow, .ieg-lead) {
	max-width: 60ch;
	font-size: 16px;
	line-height: 1.65;
}

.ieg-status-panel {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: clamp(24px, 3vw, 32px);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
	background: #fff;
}

.ieg-status-panel p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.ieg-status-panel .ieg-status-panel__version {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--green-600);
}

.ieg-status-panel .ieg-status-panel__lang {
	padding-top: 14px;
	border-top: 1px solid var(--divider);
	font-size: 14px;
	line-height: 1.55;
}

.ieg-status-panel__download {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.ieg-status-panel .ieg-status-panel__size {
	font-size: 13px;
	color: var(--text-muted);
}

/* ---- Body: contents list beside the article ---- */
.ieg-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px 72px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(40px, 5vw, 64px) var(--gutter) clamp(64px, 7vw, 112px);
}

.ieg-legal__toc {
	display: flex;
	flex: 0 1 260px;
	flex-direction: column;
	gap: 12px;
	min-width: 220px;
}

.ieg-legal__toc h2 {
	margin: 0;
}

.ieg-legal__toc ol {
	margin: 0;
	padding: 0;
	border-left: 1px solid var(--divider);
	list-style: none;
}

.ieg-legal__toc li {
	margin: 0;
}

.ieg-legal__toc a {
	display: block;
	padding: 7px 0 7px 16px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--text-body);
	text-decoration: none;
}

.ieg-legal__toc a:hover {
	color: var(--green-600);
}

.ieg-legal__toc strong {
	color: var(--green-700);
}

/* Sticky only when it sits beside the article; stacked above it, it scrolls away normally. */
@media (min-width: 1000px) {
	.ieg-legal__toc {
		position: sticky;
		top: 96px;
		max-height: calc(100vh - 120px);
		overflow: auto;
	}
}

.ieg-legal__article {
	display: flex;
	flex: 1 1 560px;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
	max-width: 68ch;
}

/* The article is the page's own content: flat blocks, so headings and lists are styled by class and position. */
.ieg-legal__article > * {
	margin: 0;
}

.ieg-legal__article h2 {
	margin-top: 28px;
	font-size: clamp(22px, 2.4vw, 26px);
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--green-600);
	scroll-margin-top: 96px;
}

.ieg-legal__article > :first-child {
	margin-top: 0;
}

.ieg-legal__article p,
.ieg-legal__list li {
	font-size: 17px;
	line-height: 1.7;
}

.ieg-legal__updated {
	color: var(--text-muted);
}

/* A lettered clause: the key hangs in the margin of the text. */
.ieg-legal__item {
	padding-left: 32px;
	text-indent: -32px;
}

.ieg-legal__item strong {
	display: inline-block;
	min-width: 27px;
	text-indent: 0;
}

.ieg-legal__article strong {
	color: var(--green-700);
}

.ieg-legal__article p a,
.ieg-legal__list a {
	font-weight: 700;
}

.ieg-legal__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-legal__list li {
	position: relative;
	margin: 0;
	padding-left: 24px;
}

.ieg-legal__list li::before {
	content: "\2022";
	position: absolute;
	left: 0;
	color: var(--green-600);
}

/* ---- Statutes specifics ---- */
.ieg-legal--statutes .ieg-legal__toc--wide {
	flex-basis: 280px;
	min-width: 0;
}

.ieg-legal--statutes .ieg-legal__toc--narrow {
	display: block;
	flex: 1 1 100%;
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
}

.ieg-legal__toc--narrow summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 52px;
	padding: 0 20px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--green-700);
	cursor: pointer;
	list-style: none;
}

.ieg-legal__toc--narrow summary::-webkit-details-marker {
	display: none;
}

.ieg-legal__toc--narrow summary::after {
	content: "";
	width: 10px;
	height: 10px;
	border-right: 2px solid currentcolor;
	border-bottom: 2px solid currentcolor;
	transform: rotate(45deg);
}

.ieg-legal__toc--narrow[open] summary::after {
	transform: rotate(-135deg);
}

.ieg-legal__toc--narrow nav {
	padding: 0 20px 16px;
}

.ieg-legal__toc--narrow ol {
	border-left: 0;
}

.ieg-legal__toc--narrow a {
	min-height: 44px;
	padding: 10px 0;
	border-top: 1px solid var(--divider);
	font-size: 15px;
}

.ieg-legal--statutes .ieg-legal__toc--wide {
	display: none;
}

@media (min-width: 1000px) {
	.ieg-legal--statutes .ieg-legal__toc--wide {
		display: flex;
	}

	.ieg-legal--statutes .ieg-legal__toc--narrow {
		display: none;
	}
}

.ieg-legal__article--statutes {
	gap: 16px;
	max-width: 72ch;
}

.ieg-legal__head {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ieg-legal__head-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
}

.ieg-legal__head-title {
	margin: 0;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--green-600);
}

.ieg-lang-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border: 1px solid var(--border-strong);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--green-700);
}

.ieg-legal__article--statutes h2 {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid var(--divider);
}

.ieg-legal__article--statutes .ieg-legal__head + h2 {
	margin-top: 8px;
}

.ieg-legal__section-name {
	font-size: clamp(24px, 2.6vw, 30px);
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--green-600);
}

.ieg-legal__h3,
.ieg-legal__h4 {
	margin: 16px 0 0;
	font-size: 18px;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--green-700);
}

.ieg-legal__h4 {
	margin-top: 12px;
	font-size: 17px;
}

.ieg-history table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.5;
}

.ieg-history th,
.ieg-history td {
	padding: 12px;
	border-bottom: 1px solid var(--divider);
	text-align: left;
}

.ieg-history thead th {
	border-bottom-color: var(--border-default);
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.ieg-history th:first-child,
.ieg-history td:first-child {
	padding-left: 0;
}

.ieg-history tbody th {
	font-weight: 700;
	color: var(--green-700);
}

/* Contact, Regional Hubs and the regional enquiry pages: page hero, split layout, forms. */

/* ---- Page hero (tinted band with eyebrow, H1, lead) ---- */
.ieg-page-hero {
	background: var(--surface-subtle);
}

.ieg-page-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 88px) var(--gutter) clamp(40px, 5vw, 72px);
}

.ieg-h1--page {
	max-width: 20ch;
	font-size: clamp(34px, 4.6vw, 56px);
	line-height: 1.08;
}

.ieg-h1--hub {
	max-width: 22ch;
	font-size: clamp(32px, 4.4vw, 52px);
	line-height: 1.1;
}

.ieg-page-hero .ieg-lead {
	max-width: 60ch;
}

.ieg-breadcrumb {
	font-size: 14px;
	color: var(--text-muted);
}

/* Links on the pale hero band use olive 700 (olive 600 is 4.4:1 there). */
.ieg-page-hero a,
.ieg-legal-band a {
	color: var(--green-700);
}

.ieg-hub-bar {
	width: 40px;
	height: 4px;
	border-radius: 99px;
}

.ieg-hub-chair {
	font-size: 15px;
}

.ieg-hub-chair strong {
	color: var(--green-700);
}

/* ---- Split layout: main column and a side panel ---- */
.ieg-split {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 56px 72px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(40px, 5vw, 72px) var(--gutter) clamp(64px, 7vw, 112px);
}

.ieg-split__main {
	display: flex;
	flex: 3 1 520px;
	flex-direction: column;
	gap: 32px;
	min-width: 0;
	max-width: 680px;
}

.ieg-split__main--form {
	flex-grow: 2;
	display: block;
}

.ieg-split__aside-note {
	font-size: 15px;
	line-height: 1.6;
}

.ieg-callout {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	padding: 20px 24px;
	border: 1px solid var(--border-strong);
	border-top: 4px solid var(--accent-lime);
	border-radius: var(--radius-card);
}

.ieg-callout__text {
	flex: 1 1 280px;
	font-size: 16px;
	line-height: 1.55;
}

.ieg-callout__text strong {
	color: var(--green-700);
}

/* ---- Forms ---- */
.ieg-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ieg-form h2 {
	font-size: 24px;
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--green-600);
}

.ieg-form__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 20px 24px;
}

.ieg-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ieg-field label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.ieg-field__req {
	color: var(--accent-red);
}

.ieg-field input,
.ieg-field textarea {
	width: 100%;
	min-height: 48px;
	padding: 13px 16px;
	border: 1px solid var(--border-default);
	border-radius: 6px;
	background: #fff;
	color: var(--text-body);
	font: inherit;
	font-size: 16px;
}

.ieg-field textarea {
	line-height: 1.55;
	resize: vertical;
}

.ieg-field input:focus,
.ieg-field textarea:focus {
	border-color: var(--green-500);
	box-shadow: var(--shadow-focus);
	outline: 0;
}

.ieg-field--error input,
.ieg-field--error textarea {
	border-color: #b3141a;
}

.ieg-field__error {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: #b3141a;
}

.ieg-form__alert {
	margin: 0;
	padding: 14px 16px;
	border-left: 4px solid #b3141a;
	border-radius: 6px;
	background: var(--status-danger-bg);
	font-size: 15px;
	line-height: 1.5;
}

/* The honeypot: off-screen, not in the tab order, ignored by assistive technology. */
.ieg-form__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ieg-form__foot {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	padding-top: 20px;
	border-top: 1px solid var(--divider);
}

.ieg-form__note {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
}

.ieg-btn--lg {
	min-height: 56px;
	padding: 16px 36px;
	font-size: 18px;
}

.ieg-form-done {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	padding: clamp(28px, 4vw, 40px);
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-card);
}

/* The box takes focus so screen readers announce it; it is not interactive, so no ring. */
.ieg-form-done:focus {
	outline: 0;
}

.ieg-form-done h2 {
	margin: 0;
	font-size: 26px;
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--green-600);
}

.ieg-form-done .ieg-i {
	color: var(--green-600);
}

.ieg-i--md {
	width: 22px;
	height: 22px;
}

.ieg-i--lg {
	width: 36px;
	height: 36px;
}

/* ---- Programme Office panel ---- */
.ieg-office {
	display: flex;
	flex: 1 1 300px;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
	padding: clamp(24px, 3vw, 32px);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
}

.ieg-office h2,
.ieg-office h3 {
	margin: 0;
}

.ieg-office__place {
	display: flex;
	align-items: center;
	gap: 20px;
}

.ieg-office__place img {
	flex: none;
	width: 110px;
	height: auto;
}

.ieg-office__where {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}

.ieg-office__country {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--green-600);
}

.ieg-office__clock {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ieg-office__clock p {
	display: flex;
	flex-direction: column;
	margin: 0;
}

.ieg-office__icon {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.ieg-office__icon--day {
	background: var(--status-warning-bg);
	color: var(--green-800);
}

.ieg-office__icon--night {
	background: var(--green-800);
	color: #fff;
}

.ieg-office__time {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--green-700);
}

.ieg-office__day {
	font-size: 13px;
	color: var(--text-muted);
}

.ieg-office__hours {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 16px;
	border-top: 1px solid var(--divider);
}

.ieg-office__hours p {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
}

.ieg-eyebrow--muted {
	color: var(--text-muted);
}

.ieg-office__hours .ieg-office__status {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 700;
}

.ieg-office__dot {
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

.ieg-office__dot--on {
	background: var(--status-success);
}

.ieg-office__dot--off {
	background: #8e8e82;
}

/* ---- Regional Hubs landing and enquiry pages ---- */
.ieg-hubs-section__inner {
	display: flex;
	flex-direction: column;
	gap: 40px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(40px, 5vw, 72px) var(--gutter) clamp(64px, 7vw, 112px);
}

.ieg-regions--page {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr));
}

.ieg-regions--page .ieg-region-card {
	min-height: 200px;
}

.ieg-regions--page .ieg-region-card__name {
	font-size: 21px;
}

.ieg-regions--page .ieg-region-card__chair {
	font-size: 15px;
	line-height: 1.5;
}

.ieg-regions--page .ieg-region-card__cta {
	font-size: 15px;
}

.ieg-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	padding: 24px;
	border-radius: var(--radius-card);
	background: var(--surface-subtle);
}

.ieg-band__text {
	flex: 1 1 360px;
	max-width: 68ch;
	font-size: 15px;
	line-height: 1.6;
}

.ieg-others {
	display: flex;
	flex: 1 1 280px;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

.ieg-others h2 {
	margin: 0;
}

.ieg-others ul {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--divider);
	list-style: none;
}

.ieg-others li {
	margin: 0;
}

.ieg-others a {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	padding: 8px 0;
	border-bottom: 1px solid var(--divider);
	font-size: 15px;
	color: var(--text-body);
	text-decoration: none;
}

.ieg-others a:hover {
	color: var(--green-600);
}

.ieg-others__pip {
	flex: none;
	width: 16px;
	height: 4px;
	border-radius: 99px;
}

/* Arctic expression of interest, Pre-registration, and the extra form controls they need. */

/* ---- Select, checkbox, number, hints ---- */
.ieg-field select {
	width: 100%;
	min-height: 48px;
	padding: 13px 16px;
	border: 1px solid var(--border-default);
	border-radius: 6px;
	background: #fff;
	color: var(--text-body);
	font: inherit;
	font-size: 16px;
}

.ieg-field select:focus {
	border-color: var(--green-500);
	box-shadow: var(--shadow-focus);
	outline: 0;
}

.ieg-field--error select {
	border-color: #b3141a;
}

.ieg-field__hint {
	margin: 0;
	font-size: 13px;
	color: var(--text-muted);
}

.ieg-check {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.55;
	text-transform: none;
	color: var(--text-body);
	cursor: pointer;
}

/* Checkbox label overrides the uppercase field-label style. */
.ieg-field .ieg-check {
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--text-body);
}

.ieg-check input {
	flex: none;
	width: 22px;
	height: 22px;
	min-height: 0;
	margin: 1px 0 0;
	padding: 0;
	accent-color: var(--green-600);
}

/* ---- Arctic page ---- */
.ieg-h1--arctic {
	max-width: 24ch;
	font-size: clamp(30px, 4.2vw, 50px);
	line-height: 1.1;
}

.ieg-arctic-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.ieg-arctic-status::before {
	content: "";
	width: 40px;
	height: 4px;
	border-radius: 99px;
	background: var(--accent-green);
}

.ieg-arctic-status .ieg-status {
	margin-top: 0;
}

.ieg-split__main--article {
	max-width: 68ch;
	gap: 44px;
}

.ieg-article-section {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.ieg-h2-md {
	font-size: 24px;
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--green-600);
}

.ieg-article-p {
	font-size: 17px;
	line-height: 1.7;
}

.ieg-bullets {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding-left: 22px;
	font-size: 17px;
	line-height: 1.6;
	list-style: disc;
}

.ieg-bullets li {
	margin: 0;
}

.ieg-main .ieg-bullets {
	list-style: disc;
	padding-left: 22px;
}

.ieg-box {
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-card);
}

.ieg-box .ieg-form-done {
	padding: 0;
	border: 0;
}

/* ---- Side panels ---- */
.ieg-aside {
	display: flex;
	flex: 1 1 280px;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	min-width: 0;
}

@media (min-width: 1000px) {
	.ieg-aside:not(.ieg-aside--roomy) {
		position: sticky;
		top: 96px;
	}
}

.ieg-aside--roomy {
	flex-basis: 300px;
	gap: 40px;
}

.ieg-aside__block {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-self: stretch;
}

.ieg-panel {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-self: stretch;
	padding: 24px;
	border-radius: var(--radius-card);
}

.ieg-panel--tint {
	background: var(--surface-subtle);
}

.ieg-panel__title {
	font-size: 17px;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--green-700);
}

.ieg-panel__text {
	font-size: 15px;
	line-height: 1.6;
}

/* ---- Numbered steps ("What happens next") ---- */
.ieg-steps {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--divider);
	counter-reset: ieg-step;
	list-style: none;
}

.ieg-steps li {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 12px;
	margin: 0;
	padding: 16px 0;
	border-top: 1px solid var(--divider);
	font-size: 15px;
	line-height: 1.55;
	counter-increment: ieg-step;
}

.ieg-steps li::before {
	content: counter(ieg-step);
	font-weight: 700;
	color: var(--green-600);
}

/* ---- Pre-registration ---- */
.ieg-split__main--wide {
	max-width: 720px;
}

.ieg-form--prereg {
	gap: 48px;
}

.ieg-step {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.ieg-step legend {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 16px;
	padding: 0;
}

.ieg-step__title {
	font-size: 24px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--green-600);
}

.ieg-step__note {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
}

.ieg-choice {
	position: relative;
	display: block;
	cursor: pointer;
}

.ieg-choice input {
	position: absolute;
	top: 22px;
	left: 20px;
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: var(--green-600);
}

.ieg-choice__box {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 20px 20px 20px 58px;
	border: 1px solid var(--border-default);
	border-radius: var(--radius-card);
	background: #fff;
}

.ieg-choice input:checked + .ieg-choice__box {
	padding: 19px 19px 19px 57px;
	border: 2px solid var(--green-600);
	background: var(--surface-subtle);
}

.ieg-choice input:focus-visible + .ieg-choice__box {
	box-shadow: var(--shadow-focus);
}

.ieg-choice__title {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--green-700);
}

.ieg-choice__desc {
	font-size: 15px;
	line-height: 1.55;
	white-space: pre-line;
}

.ieg-step .ieg-field label[for="ieg-preregister-open_question"] {
	font-size: 17px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
	color: var(--text-body);
}

.ieg-form-done--wide {
	gap: 20px;
	padding: clamp(28px, 4vw, 48px);
}

.ieg-form-done--wide h2 {
	font-size: clamp(26px, 3vw, 34px);
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.ieg-form-done--wide p {
	max-width: 56ch;
	margin: 0;
	font-size: 17px;
	line-height: 1.65;
}

.ieg-i--xl {
	width: 40px;
	height: 40px;
}

/*
 * Show only the sections for the chosen route. CSS only, so it works without JavaScript. A browser
 * without :has() drops these rules and shows every section, which still works: fields for the other
 * route are simply ignored on the server.
 */
.ieg-form--prereg:has(input[name="ieg_path"][value="individual"]:checked) .ieg-pr-org {
	display: none;
}

.ieg-form--prereg:not(:has(input[name="ieg_path"][value="individual"]:checked)) .ieg-pr-indiv {
	display: none;
}

/* Organisation step: the long "who will lead" label wraps, so reserve two label lines to keep the inputs level. */
@media (min-width: 700px) {
	.ieg-pr-org .ieg-field > label {
		min-height: 2.8em;
	}
}

/* Links on the pale tint use olive 700; olive 600 is 4.4:1 there. */
.ieg-panel--tint a,
.ieg-band a {
	color: var(--green-700);
}

/* COP17 page: hero, event cards, contact band. */

.ieg-cop17-hero__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 40px 72px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 88px) var(--gutter) clamp(40px, 5vw, 64px);
}

.ieg-cop17-hero__copy {
	display: flex;
	flex: 3 1 520px;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

.ieg-cop17-hero__copy .ieg-lead--xl {
	max-width: 60ch;
	text-wrap: pretty;
}

.ieg-article-p--wide {
	max-width: 64ch;
	text-wrap: pretty;
}

.ieg-cop17-hero__copy .ieg-actions {
	padding-top: 8px;
	gap: 12px 20px;
}

.ieg-cop17-hero__logo {
	display: flex;
	flex: 1 1 220px;
	justify-content: center;
}

.ieg-cop17-hero__logo img {
	display: block;
	width: min(240px, 60vw);
	height: auto;
	aspect-ratio: 2556 / 4408;
}

/* ---- Event cards ---- */
.ieg-events--tint {
	background: var(--surface-subtle);
}

.ieg-events__inner {
	display: flex;
	flex-direction: column;
	gap: 32px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(56px, 6vw, 96px) var(--gutter);
}

.ieg-events__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 32px;
}

.ieg-events__head h2 {
	margin: 0 0 14px;
	font-size: clamp(28px, 3.2vw, 40px);
	line-height: 1.12;
	letter-spacing: -0.02em;
	color: var(--green-600);
}

.ieg-events__rule {
	display: block;
	width: 64px;
	height: 4px;
	border-radius: 99px;
	background: var(--green-600);
}

.ieg-events__note {
	margin: 0;
	font-size: 14px;
	color: var(--text-muted);
}

.ieg-events__list {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-event {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 40px;
	margin: 0;
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-card);
	background: #fff;
}

.ieg-event__when {
	display: flex;
	flex: 0 0 112px;
	flex-direction: column;
	gap: 2px;
}

.ieg-event__day {
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--green-600);
}

.ieg-event__month {
	font-size: 14px;
	color: var(--text-muted);
}

.ieg-event__time {
	margin-top: 10px;
	font-size: 15px;
	font-weight: 700;
	color: var(--green-800);
}

.ieg-event__body {
	display: flex;
	flex: 1 1 420px;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
}

.ieg-event__body h3 {
	margin: 0;
	font-size: clamp(20px, 2vw, 24px);
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--green-600);
	text-wrap: balance;
}

.ieg-event__meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	font-size: 15px;
	line-height: 1.5;
	list-style: none;
}

.ieg-event__meta li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
}

.ieg-event__icon {
	margin-top: 2px;
	color: var(--green-600);
}

.ieg-event__desc {
	max-width: 68ch;
	font-size: 16px;
	line-height: 1.65;
	text-wrap: pretty;
}

.ieg-event__desc p {
	margin: 0;
}

.ieg-event__link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 6px;
	font-size: 15px;
	font-weight: 700;
	color: var(--green-700);
}

.ieg-event__link .ieg-i {
	width: 16px;
	height: 16px;
}

/* ---- Contact band ---- */
.ieg-cop17-contact {
	background: var(--green-800);
	color: #fff;
}

.ieg-cop17-contact__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 32px 72px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(56px, 6vw, 88px) var(--gutter);
}

.ieg-cop17-contact__main {
	display: flex;
	flex: 2 1 460px;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

.ieg-h2--on-dark {
	font-size: clamp(28px, 3.2vw, 40px);
	line-height: 1.12;
	letter-spacing: -0.02em;
	color: #fff;
}

.ieg-h2--on-dark.has-rule::after {
	margin-top: 16px;
	background: var(--accent-lime);
}

.ieg-cop17-contact__lead {
	max-width: 56ch;
	font-size: 18px;
	line-height: 1.6;
	text-wrap: pretty;
}

.ieg-cop17-contact__follow {
	font-size: 16px;
	line-height: 1.6;
}

.ieg-cop17-contact a {
	color: #fff;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ieg-cop17-contact a:hover {
	color: var(--accent-lime);
}

.ieg-cop17-contact .wp-block-button__link {
	text-decoration: none;
}

.ieg-cop17-contact__panel {
	display: flex;
	flex: 1 1 300px;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	min-width: 0;
	padding: clamp(24px, 3vw, 32px);
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--radius-card);
}

.ieg-cop17-contact__who {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ieg-cop17-contact__name {
	font-size: 18px;
	font-weight: 700;
}

.ieg-cop17-contact__text {
	font-size: 15px;
	line-height: 1.55;
}

/* News: archive grid, post cards, partner badge, single post. */

/* ---- Partner badge: "In partnership with [logo] [name]" on the bottom-left of a post image ---- */
.ieg-card__media,
.ieg-newscard__media,
.ieg-post__media-wrap {
	position: relative;
}

.ieg-partner-badge {
	position: absolute;
	bottom: -28px;
	left: 16px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: calc(100% - 32px);
	padding: 8px 14px 8px 8px;
	border-radius: 12px;
	background: #fff;
	box-shadow: var(--shadow-md);
	pointer-events: none;
}

.ieg-partner-badge__logo {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 8px;
	background: #fff;
}

.ieg-partner-badge__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.ieg-partner-badge__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.ieg-partner-badge__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.ieg-partner-badge__name {
	font-size: 14px;
	font-weight: 700;
	color: var(--green-700);
}

/* The badge overhangs the image by 28px, so the text below needs extra room. */
.ieg-card--badge .ieg-card__body {
	padding-top: 48px;
}

/* ---- News archive ---- */
.ieg-news-index {
	display: flex;
	flex-direction: column;
	gap: 40px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(40px, 5vw, 72px) var(--gutter) clamp(64px, 7vw, 112px);
}

.ieg-news-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 32px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ieg-news-grid > li {
	display: flex;
	margin: 0;
}

.ieg-newscard {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

.ieg-newscard__img {
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: var(--radius-card);
	background: var(--green-100);
}

.ieg-newscard__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ieg-newscard__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
}

.ieg-newscard__body--badge {
	padding-top: 24px;
}

.ieg-newscard__title {
	margin: 0;
	font-size: 21px;
	line-height: 1.3;
	letter-spacing: 0;
}

.ieg-newscard__title a {
	color: var(--green-600);
	text-decoration: none;
}

.ieg-newscard__title a:hover {
	text-decoration: underline;
}

.ieg-newscard__excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.ieg-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 24px;
	border-top: 1px solid var(--divider);
}

.ieg-pager__count {
	font-size: 14px;
	color: var(--text-muted);
}

.ieg-pager__links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.ieg-btn.is-disabled {
	border-color: var(--border-default);
	background: var(--neutral-100);
	color: #6b6b61;
	cursor: not-allowed;
}

.ieg-news-empty {
	font-size: 17px;
	color: var(--text-body);
}

/* ---- Single post ---- */
.ieg-post__head {
	display: flex;
	flex-direction: column;
	gap: 20px;
	box-sizing: content-box;
	max-width: 820px;
	margin: 0 auto;
	padding: clamp(40px, 5vw, 72px) var(--gutter) 32px;
}

.ieg-post__head h1 {
	font-size: clamp(32px, 4.4vw, 52px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--green-600);
	text-wrap: balance;
}

.ieg-post__standfirst {
	font-size: 20px;
	line-height: 1.55;
}

.ieg-post__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	font-size: 14px;
	color: var(--text-muted);
}

.ieg-post__figure {
	box-sizing: content-box;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.ieg-post__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--radius-card);
	background: var(--green-100);
}

.ieg-post__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ieg-post__caption {
	padding-top: 10px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--text-muted);
}

.ieg-post__caption--badge {
	padding-top: 38px;
}

.ieg-post__body {
	display: flex;
	flex-direction: column;
	gap: 22px;
	box-sizing: content-box;
	max-width: 68ch;
	margin: 0 auto;
	padding: 48px var(--gutter) clamp(64px, 7vw, 112px);
	font-size: 18px;
	line-height: 1.7;
}

.ieg-post__body > * {
	margin-block: 0;
}

.ieg-post__body h2 {
	margin-top: 16px;
	font-size: 26px;
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--green-600);
}

.ieg-post__body h3 {
	font-size: 21px;
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--green-700);
}

.ieg-post__body ul,
.ieg-post__body ol {
	padding-left: 1.3em;
}

.ieg-post__body ul {
	list-style: disc;
}

.ieg-post__body ol {
	list-style: decimal;
}

.ieg-post__body li + li {
	margin-top: 6px;
}

.ieg-post__body figure {
	margin: 8px 0;
}

.ieg-post__body figure img {
	border-radius: var(--radius-card);
}

.ieg-post__body figcaption {
	padding-top: 8px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--text-muted);
}

.ieg-post__body blockquote {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 8px 0;
	padding: 4px 0 4px 24px;
	border-left: 4px solid var(--green-600);
}

.ieg-post__body blockquote p {
	margin: 0;
	font-size: 22px;
	line-height: 1.5;
	color: var(--green-800);
}

.ieg-post__body blockquote cite {
	font-size: 14px;
	font-style: normal;
	color: var(--text-muted);
}

.ieg-post__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	padding-top: 28px;
	border-top: 1px solid var(--divider);
}

/* Search, 404 and the offline page. */

/* ---- Search box: a pill with the field and a button ---- */
.ieg-search {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-width: 620px;
	padding: 6px 6px 6px 20px;
	border: 1px solid var(--border-strong);
	border-radius: 28px;
	background: #fff;
}

.ieg-search:focus-within {
	box-shadow: var(--shadow-focus);
}

.ieg-search__field {
	flex: 1 1 200px;
	min-width: 0;
	min-height: 44px;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--text-body);
	font: inherit;
	font-size: 16px;
}

.ieg-search__field::-webkit-search-cancel-button {
	cursor: pointer;
}

/* A button with its icon after the label. */
.ieg-btn--icon {
	gap: 8px;
}

/* ---- Search results ---- */
.ieg-h1--search {
	font-size: clamp(30px, 4vw, 48px);
	line-height: 1.1;
}

.ieg-page-hero--search .ieg-page-hero__inner {
	padding-bottom: clamp(40px, 5vw, 56px);
}

.ieg-search-count {
	font-size: 15px;
}

.ieg-search-results {
	padding-top: clamp(32px, 4vw, 56px);
}

.ieg-results {
	max-width: 72ch;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--divider);
	list-style: none;
}

.ieg-result {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 24px 0;
	border-bottom: 1px solid var(--divider);
}

.ieg-result h2 {
	margin: 0;
	font-size: 20px;
	line-height: 1.3;
	letter-spacing: 0;
}

.ieg-result h2 a {
	color: var(--green-600);
}

.ieg-result__excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.ieg-result__path {
	font-size: 13px;
	color: var(--text-muted);
	overflow-wrap: anywhere;
}

.ieg-search-empty {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: 60ch;
}

.ieg-search-empty__lead {
	margin: 0;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--green-700);
}

/* ---- 404 ---- */
.ieg-notfound {
	display: flex;
	flex-direction: column;
	gap: 24px;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 144px) var(--gutter);
}

.ieg-h1--error {
	font-size: clamp(40px, 6vw, 72px);
	line-height: 1.05;
	letter-spacing: -0.03em;
}

.ieg-notfound .ieg-lead--xl {
	max-width: 48ch;
}

.ieg-notfound .ieg-search {
	max-width: 520px;
}

.ieg-notfound .wp-block-buttons {
	gap: 12px 16px;
	padding-top: 8px;
}

.ieg-notfound .wp-block-button__link {
	min-height: 56px;
	padding: 16px 36px;
	font-size: 18px;
}

/* ---- Offline page ---- */
.ieg-offline {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	margin: 0;
}

.ieg-offline__header {
	background: var(--surface-brand);
}

.ieg-offline__header-inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 14px var(--gutter);
	line-height: 0;
}

.ieg-offline__header-inner img {
	width: auto;
	height: 44px;
}

.ieg-offline__main {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 144px) var(--gutter);
}

.ieg-offline__main > .ieg-i {
	color: var(--green-600);
}

.ieg-offline__main h1 {
	margin: 0;
	font-size: clamp(36px, 5.4vw, 64px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--green-600);
}

.ieg-offline__main p {
	max-width: 44ch;
	margin: 0;
	font-size: 20px;
	line-height: 1.55;
}

.ieg-offline__footer {
	background: var(--green-800);
	color: #fff;
}

.ieg-offline__footer-inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 18px var(--gutter);
	font-size: 13px;
}

/* Generated by tools/build-css.mjs from assets/img/icons/*.svg (Lucide, ISC licence). */
:root {
	--ieg-icon-arrow-down: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 5v14' /%3E%3Cpath d='m19 12-7 7-7-7' /%3E%3C/svg%3E");
	--ieg-icon-arrow-left: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m12 19-7-7 7-7' /%3E%3Cpath d='M19 12H5' /%3E%3C/svg%3E");
	--ieg-icon-arrow-right: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 12h14' /%3E%3Cpath d='m12 5 7 7-7 7' /%3E%3C/svg%3E");
	--ieg-icon-arrow-up-right: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M7 7h10v10' /%3E%3Cpath d='M7 17 17 7' /%3E%3C/svg%3E");
	--ieg-icon-badge-check: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z' /%3E%3Cpath d='m9 12 2 2 4-4' /%3E%3C/svg%3E");
	--ieg-icon-calendar-plus: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M16 19h6' /%3E%3Cpath d='M16 2v4' /%3E%3Cpath d='M19 16v6' /%3E%3Cpath d='M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5' /%3E%3Cpath d='M3 10h18' /%3E%3Cpath d='M8 2v4' /%3E%3C/svg%3E");
	--ieg-icon-calendar: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M8 2v4' /%3E%3Cpath d='M16 2v4' /%3E%3Crect width='18' height='18' x='3' y='4' rx='2' /%3E%3Cpath d='M3 10h18' /%3E%3C/svg%3E");
	--ieg-icon-circle-check: 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' 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");
	--ieg-icon-clock: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 6v6l4 2' /%3E%3Ccircle cx='12' cy='12' r='10' /%3E%3C/svg%3E");
	--ieg-icon-external-link: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M15 3h6v6' /%3E%3Cpath d='M10 14 21 3' /%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6' /%3E%3C/svg%3E");
	--ieg-icon-globe: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='10' /%3E%3Cpath d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20' /%3E%3Cpath d='M2 12h20' /%3E%3C/svg%3E");
	--ieg-icon-linkedin: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z' /%3E%3Crect width='4' height='12' x='2' y='9' /%3E%3Ccircle cx='4' cy='4' r='2' /%3E%3C/svg%3E");
	--ieg-icon-mail: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7' /%3E%3Crect x='2' y='4' width='20' height='16' rx='2' /%3E%3C/svg%3E");
	--ieg-icon-map-pin: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0' /%3E%3Ccircle cx='12' cy='10' r='3' /%3E%3C/svg%3E");
	--ieg-icon-menu: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M4 5h16' /%3E%3Cpath d='M4 12h16' /%3E%3Cpath d='M4 19h16' /%3E%3C/svg%3E");
	--ieg-icon-message-circle: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719' /%3E%3C/svg%3E");
	--ieg-icon-moon: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401' /%3E%3C/svg%3E");
	--ieg-icon-rotate-cw: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8' /%3E%3Cpath d='M21 3v5h-5' /%3E%3C/svg%3E");
	--ieg-icon-scroll-text: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M15 12h-5' /%3E%3Cpath d='M15 8h-5' /%3E%3Cpath d='M19 17V5a2 2 0 0 0-2-2H4' /%3E%3Cpath d='M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3' /%3E%3C/svg%3E");
	--ieg-icon-search: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='m21 21-4.34-4.34' /%3E%3Ccircle cx='11' cy='11' r='8' /%3E%3C/svg%3E");
	--ieg-icon-sun: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Ccircle cx='12' cy='12' r='4' /%3E%3Cpath d='M12 2v2' /%3E%3Cpath d='M12 20v2' /%3E%3Cpath d='m4.93 4.93 1.41 1.41' /%3E%3Cpath d='m17.66 17.66 1.41 1.41' /%3E%3Cpath d='M2 12h2' /%3E%3Cpath d='M20 12h2' /%3E%3Cpath d='m6.34 17.66-1.41 1.41' /%3E%3Cpath d='m19.07 4.93-1.41 1.41' /%3E%3C/svg%3E");
	--ieg-icon-users: 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' 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%3Cpath d='M16 3.128a4 4 0 0 1 0 7.744' /%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87' /%3E%3Ccircle cx='9' cy='7' r='4' /%3E%3C/svg%3E");
	--ieg-icon-wifi-off: 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' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 20h.01' /%3E%3Cpath d='M8.5 16.429a5 5 0 0 1 7 0' /%3E%3Cpath d='M5 12.859a10 10 0 0 1 5.17-2.69' /%3E%3Cpath d='M19 12.859a10 10 0 0 0-2.007-1.523' /%3E%3Cpath d='M2 8.82a15 15 0 0 1 4.177-2.643' /%3E%3Cpath d='M22 8.82a15 15 0 0 0-11.288-3.764' /%3E%3Cpath d='m2 2 20 20' /%3E%3C/svg%3E");
}

.ieg-i--arrow-down,
.has-icon-arrow-down {
	--ieg-icon: var(--ieg-icon-arrow-down);
}

.ieg-i--arrow-left,
.has-icon-arrow-left {
	--ieg-icon: var(--ieg-icon-arrow-left);
}

.ieg-i--arrow-right,
.has-icon-arrow-right {
	--ieg-icon: var(--ieg-icon-arrow-right);
}

.ieg-i--arrow-up-right,
.has-icon-arrow-up-right {
	--ieg-icon: var(--ieg-icon-arrow-up-right);
}

.ieg-i--badge-check,
.has-icon-badge-check {
	--ieg-icon: var(--ieg-icon-badge-check);
}

.ieg-i--calendar-plus,
.has-icon-calendar-plus {
	--ieg-icon: var(--ieg-icon-calendar-plus);
}

.ieg-i--calendar,
.has-icon-calendar {
	--ieg-icon: var(--ieg-icon-calendar);
}

.ieg-i--circle-check,
.has-icon-circle-check {
	--ieg-icon: var(--ieg-icon-circle-check);
}

.ieg-i--clock,
.has-icon-clock {
	--ieg-icon: var(--ieg-icon-clock);
}

.ieg-i--external-link,
.has-icon-external-link {
	--ieg-icon: var(--ieg-icon-external-link);
}

.ieg-i--globe,
.has-icon-globe {
	--ieg-icon: var(--ieg-icon-globe);
}

.ieg-i--linkedin,
.has-icon-linkedin {
	--ieg-icon: var(--ieg-icon-linkedin);
}

.ieg-i--mail,
.has-icon-mail {
	--ieg-icon: var(--ieg-icon-mail);
}

.ieg-i--map-pin,
.has-icon-map-pin {
	--ieg-icon: var(--ieg-icon-map-pin);
}

.ieg-i--menu,
.has-icon-menu {
	--ieg-icon: var(--ieg-icon-menu);
}

.ieg-i--message-circle,
.has-icon-message-circle {
	--ieg-icon: var(--ieg-icon-message-circle);
}

.ieg-i--moon,
.has-icon-moon {
	--ieg-icon: var(--ieg-icon-moon);
}

.ieg-i--rotate-cw,
.has-icon-rotate-cw {
	--ieg-icon: var(--ieg-icon-rotate-cw);
}

.ieg-i--scroll-text,
.has-icon-scroll-text {
	--ieg-icon: var(--ieg-icon-scroll-text);
}

.ieg-i--search,
.has-icon-search {
	--ieg-icon: var(--ieg-icon-search);
}

.ieg-i--sun,
.has-icon-sun {
	--ieg-icon: var(--ieg-icon-sun);
}

.ieg-i--users,
.has-icon-users {
	--ieg-icon: var(--ieg-icon-users);
}

.ieg-i--wifi-off,
.has-icon-wifi-off {
	--ieg-icon: var(--ieg-icon-wifi-off);
}
