/*
 * GHHF component styles (Diplomat design system).
 * Always served (not gated by SCRIPT_DEBUG like the inherited TT5 sheet).
 * Colors reference theme.json palette CSS vars — never hardcoded hex.
 */

/* ---------------------------------------------------------------------------
 * Header — slim, sticky, condense-on-scroll (PE: .is-condensed added by nav.js)
 * ------------------------------------------------------------------------- */
.ghhf-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--wp--preset--color--stone);
	transition: box-shadow 180ms ease-out, padding 180ms ease-out;
}

.ghhf-header.is-condensed {
	box-shadow: 0 1px 16px rgba(0, 0, 0, 0.08);
}

/* Tighten vertical padding once condensed. */
.ghhf-header.is-condensed > .wp-block-group {
	padding-top: var(--wp--preset--spacing--10);
	padding-bottom: var(--wp--preset--spacing--10);
	transition: padding 180ms ease-out;
}

.ghhf-header .wp-block-site-title a {
	text-decoration: none;
}

/*
 * Full-bleed templates open on a colored hero band as the first child of <main>.
 * The root block-gap otherwise adds a top margin to <main>, leaving a white strip
 * under the sticky header. Zero it so the hero sits flush. The generic title-page
 * template keeps its own top spacing via an inline style (higher specificity).
 */
.wp-site-blocks > main {
	margin-block-start: 0;
}

/*
 * The seven primary links are long, so the inline bar only fits on one line near
 * the 1340px wide-size. We collapse to the hamburger overlay below 1240px
 * (overriding core's 600px default — safe, because core's `is-menu-open` modal
 * styles are not media-gated, so the overlay opens correctly at any width).
 *
 * - >= 1240px: inline links + standalone Contact pill; the duplicate inline
 *   "Contact Us" link (.ghhf-nav__contact) is hidden.
 * - <  1240px: hamburger overlay holds all links incl. Contact; the pill and the
 *   inline link list are hidden.
 */
@media (min-width: 1240px) {
	.ghhf-header .ghhf-nav__contact {
		display: none !important;
	}
}

@media (max-width: 1239.98px) {
	.ghhf-header .ghhf-header__cta {
		display: none !important;
	}

	/* Force the hamburger on (core hides it at >= 600px). */
	.ghhf-header .wp-block-navigation__responsive-container-open {
		display: flex !important;
	}

	/*
	 * Keep the closed overlay out of flow (core shows it inline at >= 600px) so
	 * its link list cannot inflate the header row. The open button is a sibling
	 * of this container, so it stays visible.
	 */
	.ghhf-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}
}

/* Header CTA pill: compact — smaller than body buttons so it sits neatly in the bar. */
.ghhf-header__cta .wp-block-button__link {
	padding: 0.45em 1.1em;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.2;
	letter-spacing: 0.005em;
}

/* Primary nav links: quiet by default, indigo on hover/focus/current. */
.ghhf-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--contrast);
}

.ghhf-nav .wp-block-navigation-item__content:hover,
.ghhf-nav .wp-block-navigation-item__content:focus,
.ghhf-nav .current-menu-item .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent-1);
}

/* Desktop submenu dropdown — a light panel (the dark overlay colour is for the
 * mobile menu only; on the dropdown it made indigo-on-dark hover fail WCAG).
 * Light bg + near-black text + indigo hover => 16.7:1 / 8.6:1, AAA. Scoped to
 * the desktop nav (>=1240px); below that the dark hamburger overlay is used. */
@media (min-width: 1240px) {
	.ghhf-nav .wp-block-navigation__submenu-container {
		background-color: var(--wp--preset--color--base) !important;
		border: 1px solid var(--wp--preset--color--stone) !important;
		box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
		border-radius: 4px;
	}

	.ghhf-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		color: var(--wp--preset--color--contrast) !important;
	}

	.ghhf-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.ghhf-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
		color: var(--wp--preset--color--accent-1) !important;
		background-color: var(--wp--preset--color--accent-2);
	}
}

/* -----------------------------------------------------------------------------
 * Mobile drawer (<1240px) — the WordPress Navigation overlay restyled as a clean
 * full-width WHITE drawer (Chatham-House style): stacked links, hairline
 * dividers, blue chevrons, big tap targets. Fluid side padding keeps it usable
 * down to 240px. The light colours come from the block's overlay attributes
 * (base bg + contrast text) set in the header pattern.
 * ------------------------------------------------------------------------- */
@media (max-width: 1239.98px) {
	/* Hamburger (open) button — blue, comfortable tap target. */
	.ghhf-header .wp-block-navigation__responsive-container-open {
		padding: 0.3rem;
		color: var(--wp--preset--color--accent-1);
	}
	.ghhf-header .wp-block-navigation__responsive-container-open svg {
		width: 28px;
		height: 28px;
		fill: currentColor;
	}

	/* The open drawer surface. */
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open {
		padding: 0;
		background-color: var(--wp--preset--color--base) !important;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		position: relative;
		width: 100%;
		padding: 0;
	}
	/* Site logo pinned to the top of the open drawer. */
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::before {
		content: "";
		position: absolute;
		top: 1.15rem;
		left: clamp(0.9rem, 5vw, 1.75rem);
		width: 200px;
		max-width: 60%;
		height: 58px;
		background: url("../img/ghhf-logo.png") left center / contain no-repeat;
		z-index: 1;
		pointer-events: none;
	}

	/* Close (X) — blue, top-right. */
	.ghhf-nav .wp-block-navigation__responsive-container-close {
		top: 0.9rem;
		right: clamp(0.75rem, 4vw, 1.5rem);
		color: var(--wp--preset--color--accent-1);
	}
	.ghhf-nav .wp-block-navigation__responsive-container-close svg {
		width: 26px;
		height: 26px;
		fill: currentColor;
	}

	/* Stacked list — dividers do the separation, no gaps. */
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: block;
		width: 100%;
		gap: 0;
		padding: 6.25rem 0 1.5rem;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
		display: block;
		width: 100%;
		border-top: 1px solid var(--wp--preset--color--stone);
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:last-child {
		border-bottom: 1px solid var(--wp--preset--color--stone);
	}

	/* Link rows — big tap target, ink text, fluid side padding (works at 240px). */
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block;
		padding: 0.62rem clamp(0.9rem, 5vw, 1.6rem);
		color: var(--wp--preset--color--contrast) !important;
		font-size: var(--wp--preset--font-size--medium);
		font-weight: 500;
		line-height: 1.3;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus {
		color: var(--wp--preset--color--accent-1) !important;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
		outline: 2px solid var(--wp--preset--color--accent-1) !important;
		outline-offset: -2px;
	}

	/* Submenu parent: full-width left-aligned label with the chevron absolutely
	 * pinned to the right of its row; the panel flows below. Absolute positioning
	 * sidesteps flex-wrap quirks with WP's block-level toggle button. */
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu {
		display: block;
		position: relative;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		text-align: left;
		padding-right: 3.4rem;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
		position: absolute;
		top: 0;
		right: 0;
		height: 2.54rem;
		display: flex;
		align-items: center;
		margin: 0;
		padding: 0 clamp(0.85rem, 5vw, 1.5rem);
		background: none;
		border: 0;
		cursor: pointer;
		color: var(--wp--preset--color--accent-1);
	}
	/* Draw the chevron with CSS (the WP SVG has no stroke and renders blank);
	 * rotates down↔up as the submenu toggles via aria-expanded. */
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg {
		display: none;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon::after {
		content: "";
		width: 9px;
		height: 9px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
		transition: transform 150ms ease;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon[aria-expanded="true"]::after {
		transform: translateY(2px) rotate(-135deg);
	}

	/* Submenu panel: full-width new line, tinted; COLLAPSED until its toggle is
	 * expanded (aria-expanded on the sibling button flips on click). */
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		flex: 1 0 100%;
		width: 100%;
		background: var(--wp--preset--color--accent-5) !important;
		border: 0 !important;
		box-shadow: none !important;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open [aria-expanded="false"] ~ .wp-block-navigation__submenu-container {
		display: none;
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		display: block;
		width: 100%;
		border-top: 1px solid var(--wp--preset--color--stone);
	}
	.ghhf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding-left: clamp(1.75rem, 9vw, 2.75rem);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 400;
		color: var(--wp--preset--color--contrast) !important;
	}
}

/* Mosaic tiles have WHITE titles on a dark cover — keep them white on hover
 * (the generic linked-heading rule would force ink → invisible). The underline
 * still wipes in (currentColor = white). */
.ghhf-mtile:hover .ghhf-mtile__title,
.ghhf-mtile:focus-visible .ghhf-mtile__title {
	color: var(--wp--preset--color--base) !important;
}

/* ---------------------------------------------------------------------------
 * Footer
 * ------------------------------------------------------------------------- */
.ghhf-footer__nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent-5);
	text-decoration: none;
}

.ghhf-footer__nav .wp-block-navigation-item__content:hover,
.ghhf-footer__nav .wp-block-navigation-item__content:focus {
	color: var(--wp--preset--color--haze);
	text-decoration: underline;
}

.ghhf-footer__contact a {
	color: var(--wp--preset--color--accent-5);
	text-decoration: none;
}

.ghhf-footer__contact a:hover,
.ghhf-footer__contact a:focus {
	color: var(--wp--preset--color--haze);
	text-decoration: underline;
}

/* Footer typography — keep it quiet (smaller than body, corporate register). */
.ghhf-footer {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
}

.ghhf-footer .has-medium-font-size {
	font-size: var(--wp--preset--font-size--small);
}

.ghhf-footer__nav .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--small);
}

/* ---------------------------------------------------------------------------
 * Buttons — squared, corporate (NASA / Chatham register, not pills)
 * ------------------------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button {
	border-radius: 3px;
}

.wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	padding: 0.8rem 1.7rem;
	font-size: var(--wp--preset--font-size--medium);
}

/* ---------------------------------------------------------------------------
 * Focus visibility — indigo on light, haze on dark bands (WCAG 2.2)
 * ------------------------------------------------------------------------- */
:where(.wp-site-blocks *:focus-visible) {
	outline: 3px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

.ghhf-footer *:focus-visible {
	outline-color: var(--wp--preset--color--haze);
}

/* ===========================================================================
 * HOMEPAGE SECTIONS
 * ======================================================================== */

/* Eyebrow label — mono, uppercase, with a short leading hairline. */
.ghhf-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.ghhf-eyebrow::before {
	content: "";
	flex: none;
	width: 1.75rem;
	height: 1px;
	background: currentColor;
	opacity: 0.55;
}

.ghhf-eyebrow.has-text-align-center {
	display: flex;
	justify-content: center;
}

/* Italic accent word in headings (the signature flourish). */
.ghhf-region h2 em,
.ghhf-focus h2 em,
.ghhf-cta h2 em,
.ghhf-about-story h2 em,
.ghhf-about-mission h2 em,
.ghhf-about-methodology h2 em,
.ghhf-about-governance h2 em,
.ghhf-about-values h2 em,
.ghhf-about-cta h2 em,
.ghhf-research-approach h2 em,
.ghhf-research-programs h2 em,
.ghhf-research-cta h2 em,
.ghhf-get-membership h2 em,
.ghhf-get-apply h2 em,
.ghhf-get-newsletter h2 em,
.ghhf-contact-info h2 em,
.ghhf-contact-form h2 em,
.ghhf-page-hero__title em {
	color: inherit;
	font-style: normal;
}

/* Owner: drop the italic accent-word treatment on headings site-wide. */
.has-display-font-family em,
h1 em,
h2 em,
h3 em {
	font-style: normal;
}

/* Consistent, generous gap between a section's heading row and its content
   (owner: more breathing room under "Recent convenings", "The scholars…", the
   "Official Documents" intro, etc.). Overrides the patterns' block-gap. */
.ghhf-focus .ghhf-cards,
.ghhf-home-voices .ghhf-voices,
.ghhf-convenings .ghhf-evcards,
.ghhf-analysis .ghhf-mosaic,
.ghhf-docs {
	margin-top: var(--wp--preset--spacing--70);
}

/* ---------------------------------------------------------------------------
 * Beat 1–3 — mission-control hero (thesis + data layer + interactive map)
 * ------------------------------------------------------------------------- */
.ghhf-hero {
	position: relative;
	overflow: hidden;
	/* Near full-bleed: a small top gap keeps the map clear of the sticky header;
	 * the text supplies its own bottom breathing room. Overrides inline spacing. */
	padding-top: clamp(1.75rem, 4.5vh, 3rem) !important;
	padding-bottom: 0 !important;
}

/* Depth: brighten the text side toward near-white, pool a cool indigo glow
 * behind the map (matches the inner-page hero treatment). */
.ghhf-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(100deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0) 52%),
		radial-gradient(120% 95% at 88% 35%, rgba(27, 27, 27, 0.08), transparent 60%);
	pointer-events: none;
}

/* NASA-style FULL-BLEED hero: the map is the edge-to-edge visual, the text
 * sits directly over it at top-left (no card), and the stats are a mono data
 * strip pinned to the bottom with a hairline. Light register — a WHITE scrim
 * (not NASA's dark one) keeps the overlaid text legible over the map. */
.ghhf-hero__grid {
	--ghhf-bar-h: 4.25rem;
	position: relative;
	min-height: clamp(460px, 64vh, 660px);
}

/* The map keeps its full size but is centred in the space ABOVE the data bar
 * (bottom padding reserves the bar) so its bottom — Nairobi — is never clipped,
 * and it's anchored right, clear of the headline. */
.ghhf-hero__map {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	overflow: hidden;
	padding-right: clamp(1rem, 4vw, 4rem);
	padding-bottom: var(--ghhf-bar-h);
}

.ghhf-hero__map .ghhf-map {
	width: min(62%, 780px);
}

/* White scrim over the left third so the overlaid text stays readable. */
.ghhf-hero__grid::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(95deg, var(--wp--preset--color--accent-2) 0%, var(--wp--preset--color--accent-2) 26%, rgba(237, 237, 237, 0) 58%);
	pointer-events: none;
}

/* Text overlaid top-left — no card, NASA-scale headline. Aligned to the wide
 * content edge; the inner text stays in a readable measure. */
.ghhf-hero__intro {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1280px);
	margin-inline: auto;
	box-sizing: border-box;
	padding: clamp(2rem, 5vh, 3.5rem) clamp(1.5rem, 5vw, 3rem) clamp(5.5rem, 13vh, 8rem);
	/* The overlay text block spans the hero, but it must NOT swallow pointer
	 * events meant for the map beneath it — only its links/buttons stay live. */
	pointer-events: none;
}

.ghhf-hero__intro a,
.ghhf-hero__intro button,
.ghhf-hero__intro .ghhf-btn {
	pointer-events: auto;
}

.ghhf-hero__intro > * {
	max-width: 32ch;
}

/* Eyebrow: one line on desktop, wraps gracefully on narrow screens. */
.ghhf-hero__intro .ghhf-eyebrow {
	max-width: none;
	flex-wrap: wrap;
	white-space: normal;
	margin-bottom: 0.6rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.08em;
}

/* Headline wraps tighter so it never bleeds into the map on the right. */
.ghhf-hero__intro .ghhf-hero__title {
	max-width: 21ch;
}

/* Counters sit below the CTAs in the text column, not as a bottom strip. */
.ghhf-hero__stats {
	max-width: none;
}

/* The live readout becomes a frosted data card over the map's lower-right. */
/* Heads-up display in the map's lower-right: the live readout card beside the
 * NASA-style rotor (auto-tour play/pause with a progress ring). */
/* The live readout sits in a slim caption bar pinned across the bottom of the
 * hero (where the stats used to be) so it never obstructs the map. The map's
 * current country reads horizontally; the rotor control sits at the far right. */
.ghhf-map__hud {
	position: absolute;
	z-index: 3;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--ghhf-bar-h);
	display: flex;
	align-items: center;
	gap: clamp(0.9rem, 2vw, 1.6rem);
	padding-block: 0;
	/* Align the data with the page's wide content edge (matches the headline). */
	padding-inline: calc(clamp(1.5rem, 5vw, 3rem) + max(0px, (100% - var(--wp--style--global--wide-size, 1280px)) / 2));
	border-top: 1px solid var(--wp--preset--color--stone);
	background: var(--wp--preset--color--base);
	pointer-events: none;
}

.ghhf-map__hud > * {
	pointer-events: auto;
}

.ghhf-map__hud .ghhf-map__readout {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: baseline;
	flex-wrap: nowrap;
	gap: 0.15rem 1.4rem;
	margin: 0;
	min-height: 0;
	padding: 0;
	overflow: hidden;
	background: none;
	border: 0;
	box-shadow: none;
}

.ghhf-map__hud .ghhf-map__ro-top {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
}

.ghhf-map__hud .ghhf-map__latest {
	display: flex;
	align-items: baseline;
	gap: 0.7rem;
	margin: 0;
}

.ghhf-map__hud .ghhf-map__latest-date,
.ghhf-map__hud .ghhf-map__ro-note,
.ghhf-map__hud .ghhf-map__link {
	margin: 0;
}

.ghhf-map__hud .ghhf-map__latest-title {
	margin: 0;
	font-size: var(--wp--preset--font-size--medium);
}

/* The rotor: circular play/pause with a sweeping progress ring. */
.ghhf-map__rotor {
	position: relative;
	flex: none;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	box-shadow: 0 16px 40px -24px rgba(0, 0, 0, 0.45);
	cursor: pointer;
	display: grid;
	place-items: center;
}

.ghhf-map__rotor-ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}

.ghhf-map__rotor-track {
	fill: none;
	stroke: var(--wp--preset--color--stone);
	stroke-width: 2;
}

.ghhf-map__rotor-bar {
	fill: none;
	stroke: var(--wp--preset--color--accent-1);
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-dasharray: 100;
	stroke-dashoffset: 100;
	animation: ghhf-rotor 5000ms linear infinite;
}

.ghhf-map__rotor:not(.is-playing) .ghhf-map__rotor-bar,
.ghhf-map__rotor.is-hover-paused .ghhf-map__rotor-bar {
	animation-play-state: paused;
}

@keyframes ghhf-rotor {
	from { stroke-dashoffset: 100; }
	to { stroke-dashoffset: 0; }
}

/* Icon: pause (two bars) while touring, play (triangle) while stopped. */
.ghhf-map__rotor.is-playing .ghhf-map__rotor-icon {
	width: 8px;
	height: 11px;
	border-left: 3px solid var(--wp--preset--color--accent-1);
	border-right: 3px solid var(--wp--preset--color--accent-1);
}

.ghhf-map__rotor:not(.is-playing) .ghhf-map__rotor-icon {
	width: 0;
	height: 0;
	margin-left: 3px;
	border-left: 11px solid var(--wp--preset--color--accent-1);
	border-top: 7px solid transparent;
	border-bottom: 7px solid transparent;
}

.ghhf-map__rotor:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-map__rotor-bar {
		animation: none;
		stroke-dashoffset: 100;
	}
}

/* Stats as a mono data strip pinned across the bottom, aligned to the wide
 * content edge, with a hairline rule. */
/* Counters below the CTAs — a compact 2×2 data grid in the text column. */
.ghhf-ticker.ghhf-hero__stats {
	max-width: 27rem;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40) clamp(1.2rem, 3vw, 2.4rem);
	margin: var(--wp--preset--spacing--50) 0 0;
	padding: var(--wp--preset--spacing--40) 0 0;
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-hero__stats .ghhf-ticker__num {
	font-size: var(--wp--preset--font-size--xx-large);
}

.ghhf-hero__stats .ghhf-ticker__label {
	font-size: var(--wp--preset--font-size--xx-small);
}

.ghhf-hero__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-hero__title em {
	color: inherit;
	font-style: normal;
}

.ghhf-hero__dek {
	margin: var(--wp--preset--spacing--30) 0 0;
	max-width: 46ch;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-hero__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--40);
	max-width: none;
}

/* Buttons (mission-control variants) */
.ghhf-btn {
	display: inline-flex;
	align-items: center;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	line-height: 1;
	padding: 0.85em 1.5em;
	border-radius: 4px;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background 150ms ease-out, color 150ms ease-out, border-color 150ms ease-out;
}

/* Corporate discipline: primary action is the brand indigo, not warm clay. */
.ghhf-btn--clay {
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}

.ghhf-btn--clay:hover,
.ghhf-btn--clay:focus-visible {
	background: var(--wp--preset--color--accent-3);
	color: var(--wp--preset--color--base);
}

.ghhf-btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--accent-1);
	border-color: var(--wp--preset--color--accent-1);
}

.ghhf-btn--ghost:hover,
.ghhf-btn--ghost:focus-visible {
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}

/* Data ticker */
.ghhf-ticker {
	display: grid;
	grid-template-columns: repeat(4, auto);
	justify-content: start;
	gap: var(--wp--preset--spacing--50);
	margin: var(--wp--preset--spacing--60) 0 0;
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-ticker__item {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.ghhf-ticker__num {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--accent-1) !important;
}

.ghhf-ticker__label {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.3;
}

/* Map */
.ghhf-map__eyebrow {
	justify-content: flex-end;
	margin-bottom: var(--wp--preset--spacing--20);
}

.ghhf-map__svg {
	display: block;
	width: 100%;
	height: auto;
	max-height: 560px;
	overflow: visible;
}

/* Coordinate graticule removed per design direction (no grid lines). */
.ghhf-map__grid {
	display: none;
}

/* A light lift off the band — kept subtle so the line-art stays crisp. */
.ghhf-map__states {
	filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.07));
}

/* The bold region silhouette outline (brand cover's signature border) — a
 * dedicated layer behind the states, traced via an SVG feMorphology filter. */
.ghhf-map__silhouette {
	fill: #000;
	stroke: none;
}

/* Monochrome indigo map — one colour, corporate restraint. Crisp strokes carry
 * the borders; selection deepens the same indigo (no warm accents). */
.ghhf-map__state {
	fill: rgba(27, 27, 27, 0.09);
	stroke: rgba(27, 27, 27, 0.5);
	stroke-width: 1.3;
	stroke-linejoin: round;
	cursor: pointer;
	transition: fill 150ms ease-out, filter 150ms ease-out;
}

/* Countries with convenings read a touch stronger — a quiet activity heat-map. */
.ghhf-map__state.has-events {
	fill: rgba(27, 27, 27, 0.16);
}

/* Djibouti (HQ country) reads strongest — still indigo. */
.ghhf-map__state.is-default {
	fill: rgba(27, 27, 27, 0.24);
}

.ghhf-map__state:hover,
.ghhf-map__state:focus-visible,
.ghhf-map__state.is-active {
	fill: rgba(27, 27, 27, 0.42);
	filter: drop-shadow(0 0 6px rgba(27, 27, 27, 0.3));
	outline: none;
}

.ghhf-map__state:focus-visible {
	stroke: var(--wp--preset--color--accent-1);
	stroke-width: 2;
}

/* City markers (verified convening locations). */
.ghhf-map__dot {
	fill: var(--wp--preset--color--contrast);
	stroke: var(--wp--preset--color--base);
	stroke-width: 1;
	transform-box: fill-box;
	transform-origin: center;
	transition: transform 150ms ease-out;
}

.ghhf-map__marker.is-active .ghhf-map__dot {
	transform: scale(1.55);
}

.ghhf-map__pulse {
	fill: none;
	stroke: var(--wp--preset--color--contrast);
	stroke-width: 1.5;
	transform-origin: center;
	transform-box: fill-box;
	animation: ghhf-pulse 2.4s ease-out infinite;
}

@keyframes ghhf-pulse {
	0% { transform: scale(1); opacity: 0.7; }
	70% { transform: scale(2.6); opacity: 0; }
	100% { transform: scale(2.6); opacity: 0; }
}

/* Country name labels (one per state). */
.ghhf-map__label {
	fill: var(--wp--preset--color--accent-4);
	font-size: 13px;
	letter-spacing: 0.02em;
	paint-order: stroke;
	stroke: var(--wp--preset--color--base);
	stroke-width: 3px;
	stroke-linejoin: round;
	pointer-events: none;
}

.ghhf-map__city-label {
	fill: var(--wp--preset--color--contrast);
	font-size: 13px;
	letter-spacing: 0.03em;
	paint-order: stroke;
	stroke: var(--wp--preset--color--base);
	stroke-width: 4px;
	stroke-linejoin: round;
}

.ghhf-map__marker.is-hq .ghhf-map__city-label {
	fill: var(--wp--preset--color--contrast);
}

/* Live convenings panel — selecting a country surfaces its real events. */
.ghhf-map__readout {
	margin-top: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--stone);
	min-height: 7.4em;
}

.ghhf-map__ro-top {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.3rem 0.7rem;
}

.ghhf-map__name {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-map__count {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-map__latest {
	display: block;
	margin-top: 0.55rem;
	text-decoration: none;
}

.ghhf-map__latest-date {
	display: block;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-map__latest-title {
	display: block;
	margin-top: 0.15rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.3;
	color: var(--wp--preset--color--accent-1);
	transition: color 140ms ease-out;
}

.ghhf-map__latest:hover .ghhf-map__latest-title,
.ghhf-map__latest:focus-visible .ghhf-map__latest-title {
	color: var(--wp--preset--color--accent-6);
	text-decoration: underline;
}

.ghhf-map__ro-note {
	margin: 0.5rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.45;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-map__link {
	display: inline-block;
	margin-top: 0.7rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
	transition: color 140ms ease-out;
}

.ghhf-map__link:hover,
.ghhf-map__link:focus-visible {
	color: var(--wp--preset--color--accent-6);
	text-decoration: underline;
}

.ghhf-map__link[hidden],
.ghhf-map__latest[hidden] {
	display: none;
}

/*
 * The states are now name-labelled on the map, so the text legend is redundant
 * visually — keep it for screen readers and the no-JS/no-SVG fallback only.
 */
.ghhf-map__legend {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

@media (max-width: 900px) {
	/* Unstack the overlay: text, then map, then strip — all in normal flow. */
	.ghhf-hero__grid {
		min-height: 0;
		padding-bottom: var(--wp--preset--spacing--50);
	}

	.ghhf-hero__grid::before {
		display: none;
	}

	.ghhf-hero__intro {
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30) var(--wp--preset--spacing--30);
	}

	.ghhf-hero__intro > * {
		max-width: none;
	}

	.ghhf-hero__map {
		position: static;
		justify-content: center;
		padding: 0;
	}

	.ghhf-hero__map .ghhf-map {
		width: 100%;
		margin-right: 0;
	}

	.ghhf-map__hud {
		position: static;
		height: auto;
		flex-wrap: wrap;
		margin: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30) 0;
		padding: var(--wp--preset--spacing--30) 0 0;
		background: none;
		backdrop-filter: none;
		border-top: 1px solid var(--wp--preset--color--stone);
		align-items: flex-start;
	}

	/* Let the live readout wrap to multiple lines instead of clipping. */
	.ghhf-map__hud .ghhf-map__readout {
		flex-wrap: wrap;
		overflow: visible;
		gap: 0.35rem 1.1rem;
	}

	.ghhf-map__hud .ghhf-map__latest {
		flex-wrap: wrap;
	}

	.ghhf-map__hud .ghhf-map__latest-title {
		white-space: normal;
	}

	.ghhf-map__svg {
		max-height: 380px;
	}
}

@media (max-width: 600px) {
	.ghhf-ticker {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--50);
	}
}

/* Beat 2 — stat counters */
.ghhf-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--wp--preset--spacing--50);
}

.ghhf-stat {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.ghhf-stat__num {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.ghhf-stat__label {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.3;
}

@media (max-width: 781px) {
	.ghhf-stats {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--60);
	}
}

/* Beat 3 — IGAD states (static map fallback) */
.ghhf-states {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.7rem 1.5rem;
}

.ghhf-states__item {
	position: relative;
	padding-left: 1.15rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.3;
}

.ghhf-states__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5em;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-6);
}

/* Beats 4 & 5 — editorial card grid */
.ghhf-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: var(--wp--preset--spacing--50);
}

.ghhf-cards--3 {
	grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr));
}

/* The five focus areas sit one-up per row on desktop. */
@media (min-width: 1100px) {
	.ghhf-cards--5 {
		grid-template-columns: repeat(5, 1fr);
	}
}

.ghhf-card {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 4px;
	text-decoration: none;
	transition: transform 150ms ease-out, box-shadow 150ms ease-out, border-color 150ms ease-out;
}

.ghhf-card::before {
	content: "";
	display: block;
	width: 2rem;
	height: 3px;
	background: var(--wp--preset--color--accent-6);
	transition: width 160ms ease-out, background 160ms ease-out;
}

.ghhf-card:hover,
.ghhf-card:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(0, 0, 0, 0.16);
	background: var(--wp--preset--color--accent-3);
	border-color: var(--wp--preset--color--accent-3);
}

.ghhf-card:hover::before,
.ghhf-card:focus-visible::before {
	width: 3rem;
	background: var(--wp--preset--color--copper);
}

.ghhf-card__kicker {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--accent-6);
	line-height: 1;
}

.ghhf-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
	transition: color 160ms ease-out;
}

.ghhf-card__dek {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--accent-4);
	transition: color 160ms ease-out;
}

.ghhf-card__more {
	margin-top: auto;
	padding-top: 0.5rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
	transition: color 160ms ease-out;
}

.ghhf-card:hover .ghhf-card__kicker,
.ghhf-card:focus-visible .ghhf-card__kicker,
.ghhf-card:hover .ghhf-card__more,
.ghhf-card:focus-visible .ghhf-card__more {
	color: var(--wp--preset--color--copper);
}

.ghhf-card:hover .ghhf-card__title,
.ghhf-card:focus-visible .ghhf-card__title {
	color: var(--wp--preset--color--base);
}

.ghhf-card:hover .ghhf-card__dek,
.ghhf-card:focus-visible .ghhf-card__dek {
	color: var(--wp--preset--color--accent-5);
}

/* Beat 5 — featured analysis (report cover) + ranked rail */
.ghhf-feature {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: var(--wp--preset--spacing--60);
	align-items: start;
}

.ghhf-feature__main {
	display: grid;
	grid-template-columns: 0.62fr 1fr;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
	overflow: hidden;
	text-decoration: none;
	transition: box-shadow 160ms ease-out, transform 160ms ease-out;
}

.ghhf-feature__main:hover,
.ghhf-feature__main:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.12);
}

.ghhf-feature__cover {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 300px;
	padding: var(--wp--preset--spacing--40);
	background:
		radial-gradient(120% 90% at 85% 10%, rgba(160, 160, 160, 0.22), transparent 60%),
		var(--wp--preset--color--accent-3);
	color: var(--wp--preset--color--accent-5);
}

.ghhf-feature__cover-tag {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--haze);
}

.ghhf-feature__cover-year {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 0.9;
}

.ghhf-feature__body {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: var(--wp--preset--spacing--50);
}

.ghhf-feature__meta {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-feature__title {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 1.15;
	color: var(--wp--preset--color--contrast);
}

.ghhf-feature__dek {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-feature__more {
	margin-top: auto;
	padding-top: 0.6rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-rail__head {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-rail__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-rail__item {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	padding: var(--wp--preset--spacing--40) 0;
	border-bottom: 1px solid var(--wp--preset--color--stone);
	text-decoration: none;
}

.ghhf-rail__meta {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-rail__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--contrast);
	transition: color 140ms ease-out;
}

.ghhf-rail__item:hover .ghhf-rail__title,
.ghhf-rail__item:focus-visible .ghhf-rail__title {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-rail__all {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
}

@media (max-width: 900px) {
	.ghhf-feature {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--50);
	}
}

@media (max-width: 540px) {
	.ghhf-feature__main {
		grid-template-columns: 1fr;
	}

	.ghhf-feature__cover {
		min-height: 160px;
		flex-direction: row;
		align-items: center;
	}
}

/* Beat 6 — convenings (big-date cards with swappable photo slots) */
.ghhf-convenings__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

.ghhf-convening {
	display: grid;
	grid-template-columns: 210px 96px 1fr auto;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
	overflow: hidden;
	text-decoration: none;
	transition: box-shadow 160ms ease-out, transform 160ms ease-out;
}

.ghhf-convening:hover,
.ghhf-convening:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
}

/* Photo slot — drop a real <img> in later; until then a branded duotone plate. */
.ghhf-convening__media {
	position: relative;
	align-self: stretch;
	min-height: 116px;
	display: flex;
	align-items: flex-end;
	padding: var(--wp--preset--spacing--30);
	background:
		linear-gradient(150deg, rgba(27, 27, 27, 0.9), rgba(27, 27, 27, 0.55)),
		var(--wp--preset--color--accent-3);
}

.ghhf-convening__place {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--haze);
}

.ghhf-convening__date {
	display: flex;
	flex-direction: column;
	line-height: 1;
}

.ghhf-convening__month {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-convening__year {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--accent-4);
}

.ghhf-convening__body {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	padding: var(--wp--preset--spacing--30) 0;
}

.ghhf-convening__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
}

.ghhf-convening__with {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--accent-4);
}

.ghhf-convening__arrow {
	padding-right: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--accent-6);
	transition: transform 160ms ease-out;
}

.ghhf-convening:hover .ghhf-convening__arrow {
	transform: translateX(4px);
}

@media (max-width: 781px) {
	.ghhf-convening {
		grid-template-columns: 96px 1fr;
		grid-template-areas:
			"date media"
			"body body";
	}

	.ghhf-convening__media {
		grid-area: media;
		min-height: 84px;
	}

	.ghhf-convening__date {
		grid-area: date;
		padding: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--30) var(--wp--preset--spacing--30);
	}

	.ghhf-convening__body {
		grid-area: body;
		padding: 0 var(--wp--preset--spacing--30) var(--wp--preset--spacing--30);
	}

	.ghhf-convening__arrow {
		display: none;
	}
}

/* ===========================================================================
 * INNER PAGES (About · Research · Get Involved · Contact)
 * ======================================================================== */

/* Reusable page hero — thesis + mission-data strip, on an indigo-deep band. */
.ghhf-page-hero,
.ghhf-evhero-band {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	/* Tighten the inner-page header (overrides the templates' spacing-80 inline). */
	padding-top: 1.85rem !important;
	padding-bottom: 1.85rem !important;
}

/* Mission-control graticule + a cool indigo glow (the NASA data-layer register). */
.ghhf-page-hero::before,
.ghhf-evhero-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(104deg, rgba(255, 255, 255, 0.58) 0%, rgba(255, 255, 255, 0) 54%),
		radial-gradient(135% 130% at 100% 45%, rgba(27, 27, 27, 0.11), transparent 58%);
}

/* Line-art map of the eight IGAD nations — the Greater Horn itself as the header
 * instrument (nation nodes, a glowing Djibouti HQ, a copper circular-arrow/sun
 * echoing the logo). Anchored right, fits the hero height, gently breathing. */
.ghhf-page-hero::after,
.ghhf-evhero-band::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: clamp(1.25rem, 4%, 5rem);
	width: min(30%, 320px);
	z-index: 0;
	pointer-events: none;
	background: url("../img/horn-motif.svg") no-repeat center center;
	/* Fixed map height so it stays the SAME size on every hero, regardless of
	 * how tall the content makes the band (keeps the page hero consistent). */
	background-size: auto min(100%, 185px);
	opacity: 0.7;
	-webkit-mask: linear-gradient(to right, transparent 0, #000 14%);
	        mask: linear-gradient(to right, transparent 0, #000 14%);
	animation: ghhf-hero-float 11s ease-in-out infinite;
}

@keyframes ghhf-hero-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-7px); }
}

/* Keep the hero content above the decorative layers. */
.ghhf-page-hero > *,
.ghhf-evhero-band > * {
	position: relative;
	z-index: 1;
}

.ghhf-page-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 940px;
}

.ghhf-page-hero__title {
	margin: var(--wp--preset--spacing--20) 0 0;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--accent-1);
}

@media (max-width: 781px) {
	.ghhf-page-hero::after,
	.ghhf-evhero-band::after {
		width: 44%;
		opacity: 0.3;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-page-hero::after,
	.ghhf-evhero-band::after {
		animation: none;
	}
}

.ghhf-page-hero__lede {
	margin: 0.75rem 0 0;
	max-width: 64ch;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.55;
	color: var(--wp--preset--color--accent-4);
}

/* Mono fact strip under a page-hero thesis. */
.ghhf-datastrip {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem 2.5rem;
	margin: var(--wp--preset--spacing--60) 0 0;
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--stone);
	list-style: none;
}

.ghhf-datastrip li {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.ghhf-datastrip__k {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-datastrip__v {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	color: var(--wp--preset--color--accent-1);
}

/* Editorial prose column (~64ch measure). */
.ghhf-prose p {
	margin: 0;
	max-width: 64ch;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.7;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-prose p + p {
	margin-top: 1.1em;
}

/* Founding story — narrative + a verified-history timeline aside. */
.ghhf-story {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: var(--wp--preset--spacing--70);
	align-items: start;
}

/* Prose-only variant (the chronology now lives in the dedicated timeline band). */
.ghhf-story--prose {
	display: block;
	max-width: 760px;
}

.ghhf-timeline {
	list-style: none;
	margin: 0;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
}

.ghhf-timeline__item {
	position: relative;
	padding: 0 0 var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
	border-left: 2px solid var(--wp--preset--color--stone);
}

.ghhf-timeline__item:last-child {
	padding-bottom: 0;
}

.ghhf-timeline__item::before {
	content: "";
	position: absolute;
	left: -5px;
	top: 0.15em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-6);
}

.ghhf-timeline__date {
	display: block;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-timeline__text {
	display: block;
	margin-top: 0.25rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.45;
	color: var(--wp--preset--color--accent-4);
}

/* Objectives — a two-column arrow list under the mission. */
.ghhf-objectives {
	list-style: none;
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem 2rem;
}

.ghhf-objectives li {
	position: relative;
	padding-left: 1.6rem;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.5;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-objectives li::before {
	content: "\2192";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--wp--preset--color--accent-6);
	font-family: var(--wp--preset--font-family--mono);
}

/* Distinctive methodology — three pillars on the ink band. */
.ghhf-pillars {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40);
}

.ghhf-pillar {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
}

.ghhf-pillar__num {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-pillar__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-pillar__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

/* Light logo / partner wall (inner pages — replaces the dark home partner band). */
.ghhf-logowall {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--30);
}

/* ~6 per row on wide; ragged last row stays centred. */
.ghhf-logowall > li {
	flex: 1 1 150px;
	max-width: 190px;
}

.ghhf-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 104px;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
	text-decoration: none;
	transition: box-shadow 150ms ease-out, transform 150ms ease-out, border-color 150ms ease-out;
}

.ghhf-logo:hover,
.ghhf-logo:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
	border-color: var(--wp--preset--color--haze);
}

/* Uploaded partner logo — contained, greyscale until hover. */
.ghhf-logo__img {
	max-width: 100%;
	max-height: 64px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.85;
	transition: filter 160ms ease-out, opacity 160ms ease-out;
}

.ghhf-logo:hover .ghhf-logo__img,
.ghhf-logo:focus-visible .ghhf-logo__img {
	filter: grayscale(0);
	opacity: 1;
}

/* Wordmark fallback when no logo image has been uploaded yet. */
.ghhf-logo__name {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
	transition: color 150ms ease-out;
}

.ghhf-logo:hover .ghhf-logo__name,
.ghhf-logo:focus-visible .ghhf-logo__name {
	color: var(--wp--preset--color--accent-6);
}

@media (max-width: 781px) {
	.ghhf-logowall > li {
		flex-basis: 130px;
	}
}

/* Borderless sliding logo marquee (homepage "trusted by"). ~4–5 logos in view;
   the track is two copies of the set, animated -50% for a seamless loop. */
.ghhf-logoscroll {
	overflow: hidden;
	-webkit-mask: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	        mask: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

.ghhf-logoscroll__track {
	display: flex;
	align-items: center;
	gap: clamp(2.5rem, 5vw, 5rem);
	width: max-content;
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
	animation: ghhf-logomarquee 40s linear infinite;
}

.ghhf-logoscroll:hover .ghhf-logoscroll__track,
.ghhf-logoscroll:focus-within .ghhf-logoscroll__track {
	animation-play-state: paused;
}

.ghhf-logoscroll__track > li {
	flex: 0 0 auto;
}

/* In the marquee, logos lose the card chrome — just the mark/wordmark. */
.ghhf-logoscroll .ghhf-logo {
	width: clamp(130px, 15vw, 185px);
	min-height: 0;
	padding: 0;
	background: none;
	border: none;
}

.ghhf-logoscroll .ghhf-logo:hover,
.ghhf-logoscroll .ghhf-logo:focus-visible {
	transform: none;
	box-shadow: none;
}

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

@media (prefers-reduced-motion: reduce) {
	.ghhf-logoscroll {
		-webkit-mask: none;
		        mask: none;
	}
	.ghhf-logoscroll__track {
		animation: none;
		width: auto;
		flex-wrap: wrap;
		justify-content: center;
	}
	/* Hide the decorative duplicate set when not scrolling. */
	.ghhf-logoscroll__track > li[aria-hidden="true"] {
		display: none;
	}
}

/* Single partner — logo + external link */
.ghhf-partner-logo img {
	object-fit: contain;
	object-position: left center;
}

.ghhf-extlink {
	display: inline-flex;
	align-items: center;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	padding: 0.7em 1.4em;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent-1);
	border-radius: 4px;
	text-decoration: none;
	transition: background 150ms ease-out;
}

.ghhf-extlink:hover,
.ghhf-extlink:focus-visible {
	background: var(--wp--preset--color--accent-6);
}


/* Governance — three non-interactive organ cards + a mono note. */
.ghhf-orgs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40);
}

.ghhf-org {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
}

.ghhf-org::before {
	content: "";
	display: block;
	width: 2rem;
	height: 3px;
	background: var(--wp--preset--color--accent-6);
}

.ghhf-org__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-org__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-govnote {
	margin: var(--wp--preset--spacing--40) 0 0;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

/* Code of Conduct — a two-column value grid. */
.ghhf-values {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
}

.ghhf-value {
	padding-left: var(--wp--preset--spacing--40);
	border-left: 3px solid var(--wp--preset--color--accent-6);
}

.ghhf-value__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-value__text {
	margin: 0.4rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

@media (max-width: 900px) {
	.ghhf-story {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--50);
	}

	.ghhf-pillars,
	.ghhf-orgs {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.ghhf-objectives,
	.ghhf-values {
		grid-template-columns: 1fr;
	}
}

/* Research & Programs — five focus areas as detailed editorial rows. */
.ghhf-programs {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-program {
	display: grid;
	grid-template-columns: 5rem 1fr;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--50) 0;
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-program:last-child {
	border-bottom: 1px solid var(--wp--preset--color--stone);
}

.ghhf-program__num {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-program__title {
	margin: 0 0 0.4rem;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-program__thesis {
	margin: 0;
	max-width: 70ch;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-program__note {
	display: inline-block;
	margin-top: 0.7rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-6);
}

@media (max-width: 600px) {
	.ghhf-program {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}
}

/* Contact — official details as cards. */
.ghhf-contact {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40);
}

.ghhf-contact__card {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
}

.ghhf-contact__k {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-contact__v {
	margin: 0;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.5;
	color: var(--wp--preset--color--contrast);
}

.ghhf-contact__v a {
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-contact__v a:hover,
.ghhf-contact__v a:focus-visible {
	color: var(--wp--preset--color--accent-6);
	text-decoration: underline;
}

@media (max-width: 781px) {
	.ghhf-contact {
		grid-template-columns: 1fr;
	}
}

/* Forms — membership application + contact message + newsletter. */
.ghhf-form {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--wp--preset--spacing--40);
	max-width: 820px;
}

.ghhf-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.ghhf-field--full {
	grid-column: 1 / -1;
}

.ghhf-field label {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.03em;
	font-weight: 600;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-field input,
.ghhf-field select,
.ghhf-field textarea {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-4);
	border-radius: 4px;
	padding: 0.7em 0.85em;
}

.ghhf-field textarea {
	min-height: 150px;
	resize: vertical;
}

.ghhf-field input:focus,
.ghhf-field select:focus,
.ghhf-field textarea:focus {
	border-color: var(--wp--preset--color--accent-1);
}

.ghhf-form__actions {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.ghhf-form__note {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--accent-4);
}

/* Submit button — matches the indigo primary button. */
.ghhf-submit {
	display: inline-flex;
	align-items: center;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	line-height: 1;
	padding: 0.85em 1.6em;
	border: 1px solid transparent;
	border-radius: 4px;
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	cursor: pointer;
	transition: background 150ms ease-out;
}

.ghhf-submit:hover,
.ghhf-submit:focus-visible {
	background: var(--wp--preset--color--accent-6);
}

/* Visually-hidden (accessible labels) — not guaranteed in the block theme. */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Newsletter — single inline field + subscribe. */
.ghhf-newsletter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	max-width: 540px;
}

.ghhf-newsletter input {
	flex: 1 1 240px;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-4);
	border-radius: 4px;
	padding: 0.75em 0.9em;
}

.ghhf-newsletter input:focus {
	border-color: var(--wp--preset--color--accent-1);
}

@media (max-width: 600px) {
	.ghhf-form {
		grid-template-columns: 1fr;
	}
}

/* ===========================================================================
 * PUBLICATIONS (CPT archive cards + journal article)
 * ======================================================================== */

/* Archive intro band reuses .ghhf-page-hero. The result grid: */
.ghhf-publist {
	margin: 0;
	padding: 0;
}

.ghhf-publist.is-layout-grid {
	gap: var(--wp--preset--spacing--40);
}

.ghhf-pubcard {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	height: 100%;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
	transition: transform 150ms ease-out, box-shadow 150ms ease-out, border-color 150ms ease-out;
}

.ghhf-pubcard:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(0, 0, 0, 0.1);
	border-color: var(--wp--preset--color--haze);
}

.ghhf-pubcard__kicker {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ghhf-pubcard__kicker a {
	color: var(--wp--preset--color--accent-6);
	text-decoration: none;
}

.ghhf-pubcard__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.25;
}

.ghhf-pubcard__title a {
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
	transition: color 140ms ease-out;
}

.ghhf-pubcard__title a:hover,
.ghhf-pubcard__title a:focus-visible {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-pubcard__dek {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-pubcard__meta {
	margin: 0.4rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-pubcard__meta p {
	margin: 0;
}

/* Empty-state + pagination */
.ghhf-pubnav {
	margin-top: var(--wp--preset--spacing--60);
}

.ghhf-pubnav .wp-block-query-pagination-numbers .page-numbers {
	padding: 0 0.4em;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-pubnav .wp-block-query-pagination-numbers .current {
	color: var(--wp--preset--color--accent-6);
	font-weight: 600;
}

/* Events archive — region filter notice (from the homepage map ?country=). */
.ghhf-filter-notice {
	margin: var(--wp--preset--spacing--30) 0 0;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-filter-notice strong {
	color: var(--wp--preset--color--accent-1);
	font-weight: 600;
}

.ghhf-filter-notice a {
	color: var(--wp--preset--color--accent-6);
	text-decoration: none;
}

.ghhf-filter-notice a:hover,
.ghhf-filter-notice a:focus-visible {
	text-decoration: underline;
}

/* Journal article (single publication + single event) */
.ghhf-article__eyebrow {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.9rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ghhf-article__eyebrow,
.ghhf-article__eyebrow a {
	color: var(--wp--preset--color--accent-6);
	text-decoration: none;
}

.ghhf-article__eyebrow p {
	margin: 0;
}

.ghhf-article__title {
	margin: var(--wp--preset--spacing--20) 0 0;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.012em;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-article__byline {
	margin: var(--wp--preset--spacing--30) 0 0;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-article__body {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.75;
	color: var(--wp--preset--color--contrast);
}

.ghhf-article__back {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-article__back:hover,
.ghhf-article__back:focus-visible {
	color: var(--wp--preset--color--accent-6);
	text-decoration: underline;
}

/* ===========================================================================
 * GOVERNANCE & LEADERSHIP (Executive Committee directory)
 * ======================================================================== */

/* Shared card media — headshot (cover) or a large initials tile. */
.ghhf-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 450ms ease;
}

.ghhf-card-initials {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: linear-gradient(150deg, var(--wp--preset--color--accent-3), var(--wp--preset--color--ink));
	color: var(--wp--preset--color--haze);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	letter-spacing: 0.04em;
}

/* Featured leaders — Chairperson + Secretary General */
.ghhf-leaders {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--70);
}

.ghhf-leader__link {
	position: relative;
	display: grid;
	grid-template-columns: 188px 1fr;
	gap: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 12px;
	text-decoration: none;
	overflow: hidden;
	transition: border-color 150ms ease-out;
}

.ghhf-leader__link::before {
	content: none;
}

.ghhf-leader__link:hover,
.ghhf-leader__link:focus-visible {
	border-color: var(--wp--preset--color--accent-1);
}

.ghhf-leader__media {
	width: 188px;
	height: 188px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--wp--preset--color--accent-2);
}

.ghhf-leader__link:hover .ghhf-card-img,
.ghhf-leader__link:focus-visible .ghhf-card-img {
	transform: none;
}

.ghhf-leader__body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	align-self: center;
}

.ghhf-leader__badge {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-leader__name {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 1.12;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-leader__title {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.45;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-leader__bio {
	margin-top: 0.3rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-leader__more {
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
}

/* Country filter bar */
.ghhf-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 var(--wp--preset--spacing--50);
}

.ghhf-filter__chip {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	padding: 0.55em 1.1em;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent-4);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 999px;
	cursor: pointer;
	transition: background 140ms ease-out, color 140ms ease-out, border-color 140ms ease-out;
}

.ghhf-filter__chip:hover {
	border-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--accent-1);
}

.ghhf-filter__chip.is-active {
	background: var(--wp--preset--color--accent-1);
	border-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}

/* Member portrait-card grid — four per row on desktop. */
.ghhf-people {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
}

@media (max-width: 1024px) {
	.ghhf-people {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.ghhf-people {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 440px) {
	.ghhf-people {
		grid-template-columns: 1fr;
	}
}

.ghhf-person[hidden] {
	display: none;
}

.ghhf-person__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none;
	transition: transform 200ms ease-out, box-shadow 200ms ease-out, border-color 200ms ease-out;
}

.ghhf-person__link:hover,
.ghhf-person__link:focus-visible {
	transform: translateY(-5px);
	box-shadow: 0 20px 44px rgba(0, 0, 0, 0.14);
	border-color: var(--wp--preset--color--haze);
}

.ghhf-person__media {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--wp--preset--color--accent-2);
}

.ghhf-person__link:hover .ghhf-card-img,
.ghhf-person__link:focus-visible .ghhf-card-img {
	transform: scale(1.06);
}

.ghhf-person__body {
	display: flex;
	flex-direction: column;
	gap: 0.18rem;
	padding: var(--wp--preset--spacing--40);
	flex: 1;
}

.ghhf-person__country {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-person__name {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-person__role {
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.35;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-person__affil {
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.35;
	color: var(--wp--preset--color--accent-4);
	opacity: 0.85;
}

.ghhf-person__more {
	margin-top: auto;
	padding-top: 0.6rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--accent-1);
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 160ms ease-out, transform 160ms ease-out;
}

.ghhf-person__link:hover .ghhf-person__more,
.ghhf-person__link:focus-visible .ghhf-person__more {
	opacity: 1;
	transform: none;
}

.ghhf-directory__empty {
	margin: var(--wp--preset--spacing--40) 0 0;
	color: var(--wp--preset--color--accent-4);
}

@media (max-width: 781px) {
	.ghhf-leaders {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	/* Stack: avatar on top, text full-width below (side-by-side squeezes the
	 * bio to one word per line on small phones). */
	.ghhf-leader__link {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--30);
		padding: var(--wp--preset--spacing--40);
	}

	.ghhf-leader__media {
		width: 120px;
		height: 120px;
	}

	.ghhf-leader__body {
		align-self: start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-leader__link,
	.ghhf-person__link,
	.ghhf-card-img,
	.ghhf-leader__link::before,
	.ghhf-person__more {
		transition: none;
	}

	.ghhf-leader__link:hover .ghhf-card-img,
	.ghhf-person__link:hover .ghhf-card-img {
		transform: none;
	}
}

/* ===========================================================================
 * OFFICIAL DOCUMENTS (PDF download cards)
 * ======================================================================== */
.ghhf-docs {
	list-style: none;
	margin: var(--wp--preset--spacing--70) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
	gap: var(--wp--preset--spacing--50);
}

.ghhf-doc {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	height: 100%;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
	text-decoration: none;
	transition: border-color 150ms ease-out;
}

.ghhf-doc:hover,
.ghhf-doc:focus-visible {
	border-color: var(--wp--preset--color--accent-1);
}

.ghhf-doc__icon {
	display: flex;
	width: 2.4rem;
	height: 2.4rem;
	align-items: center;
	justify-content: center;
	margin-bottom: 0.3rem;
	border-radius: 5px;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.ghhf-doc__icon svg {
	width: 1.35rem;
	height: 1.35rem;
}

.ghhf-doc__tag {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-doc__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--contrast);
}

.ghhf-doc__more {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-top: auto;
	padding-top: 0.85rem;
	border-top: 1px solid var(--wp--preset--color--stone);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.05em;
}

.ghhf-doc__read {
	color: var(--wp--preset--color--accent-1);
	font-weight: 500;
}

.ghhf-doc__pdf {
	margin-left: auto;
	padding: 0.14rem 0.5rem;
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 3px;
	color: var(--wp--preset--color--accent-4);
	letter-spacing: 0.08em;
}

/* Single document page — "Download PDF" button + readable body. */
.ghhf-doc-download {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.4rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent-1);
	border-radius: 3px;
	text-decoration: none;
	transition: background-color 150ms ease;
}

.ghhf-doc-download:hover,
.ghhf-doc-download:focus-visible {
	background: var(--wp--preset--color--accent-3);
}

.ghhf-doc-download__icon {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1;
}

.ghhf-doc__content {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.7;
}

.ghhf-doc__content h2 {
	margin-top: 1.8em;
}

.ghhf-doc__content h3 {
	margin-top: 1.4em;
}

/* Webinar flyers grid (Programs & Activities) */
.ghhf-flyers {
	list-style: none;
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: var(--wp--preset--spacing--40);
}

.ghhf-flyer a {
	display: block;
	border-radius: 6px;
	overflow: hidden;
	transition: transform 150ms ease-out, box-shadow 150ms ease-out;
}

.ghhf-flyer a:hover,
.ghhf-flyer a:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12);
}

.ghhf-flyer img {
	width: 100%;
	height: auto;
	display: block;
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
}

/* A single program feature card (Programs & Activities hub) */
.ghhf-program-card {
	display: block;
	max-width: 720px;
	padding: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 8px;
	text-decoration: none;
	transition: transform 150ms ease-out, box-shadow 150ms ease-out, border-color 150ms ease-out;
}

.ghhf-program-card:hover,
.ghhf-program-card:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 16px 36px rgba(0, 0, 0, 0.12);
	border-color: var(--wp--preset--color--haze);
}

.ghhf-program-card__kicker {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-program-card__title {
	margin: 0.4rem 0 0;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-program-card__dek {
	margin: 0.5rem 0 0;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-program-card__more {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
}

/* ===========================================================================
 * PUBLICATIONS LIBRARY (faceted archive + journal sidebar)
 * ======================================================================== */

/* Facet filter bar — labelled dropdowns in a row. */
.ghhf-facets {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--wp--preset--color--stone);
}

.ghhf-facet {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.ghhf-facet__label {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-select {
	appearance: none;
	-webkit-appearance: none;
	min-width: 230px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--base);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5l4 4 4-4' fill='none' stroke='%231e3a5f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9em center;
	background-size: 0.72em;
	padding: 0.7em 2.5em 0.7em 0.95em;
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
	cursor: pointer;
	transition: border-color 140ms ease-out, box-shadow 140ms ease-out;
}

.ghhf-select:hover {
	border-color: var(--wp--preset--color--accent-1);
}

.ghhf-select:focus-visible {
	border-color: var(--wp--preset--color--accent-1);
	outline: 3px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

/* Report-cover cards */
.ghhf-pubs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
	gap: var(--wp--preset--spacing--50);
}

.ghhf-pub[hidden] {
	display: none;
}

.ghhf-pub__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none;
	transition: transform 200ms ease-out, box-shadow 200ms ease-out, border-color 200ms ease-out;
}

.ghhf-pub__link:hover,
.ghhf-pub__link:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 20px 44px rgba(0, 0, 0, 0.13);
	border-color: var(--wp--preset--color--haze);
}

.ghhf-pub__cover {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	aspect-ratio: 5 / 3;
	padding: var(--wp--preset--spacing--40);
	background:
		radial-gradient(120% 90% at 85% 12%, rgba(160, 160, 160, 0.22), transparent 60%),
		var(--wp--preset--color--accent-3);
}

.ghhf-pub__cover-type {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--haze);
}

.ghhf-pub__cover-year {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 0.9;
	color: var(--wp--preset--color--copper);
}

.ghhf-pub__body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: var(--wp--preset--spacing--40);
	flex: 1;
}

.ghhf-pub__kicker {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-pub__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
	transition: color 140ms ease-out;
}

.ghhf-pub__link:hover .ghhf-pub__title,
.ghhf-pub__link:focus-visible .ghhf-pub__title {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-pub__dek {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-pub__meta {
	margin-top: auto;
	padding-top: 0.3rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

/* Related variant — shorter covers */
.ghhf-pubs--related {
	grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
	gap: var(--wp--preset--spacing--40);
}

.ghhf-pubs--related .ghhf-pub__cover {
	aspect-ratio: 2 / 1;
}

/* Single publication — masthead text aligns to the content's left edge.
 * Raise specificity (.alignwide) to beat the theme's wide-size max-width, and
 * zero the auto margins so it stays left rather than centring. */
.ghhf-article-head.alignwide {
	max-width: 760px;
	/* Beat core's constrained auto-margins (set with !important) to stay left. */
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* Single publication — body + sticky aside */
.ghhf-article-layout {
	display: grid;
	/* Article stays left-aligned (site edge) and readable; the meta rail sits at
	 * the right edge so the row fills the width instead of dumping space at right. */
	grid-template-columns: minmax(0, 760px) 300px;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--70);
	align-items: start;
}

/* The shortcode block can emit a stray <br> between the content and the aside;
 * drop it so it doesn't claim a grid cell and push the aside to a new row. */
.ghhf-article-layout > br {
	display: none;
}

.ghhf-aside {
	position: sticky;
	top: 92px;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 8px;
}

.ghhf-aside__meta {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.ghhf-aside__row {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.ghhf-aside__row dt {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-aside__row dd {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
	color: var(--wp--preset--color--contrast);
}

.ghhf-aside__row dd a {
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-aside__row dd a:hover,
.ghhf-aside__row dd a:focus-visible {
	color: var(--wp--preset--color--accent-6);
	text-decoration: underline;
}

.ghhf-aside__download {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75em 1.2em;
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	border-radius: 4px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
	transition: background 150ms ease-out;
}

.ghhf-aside__download:hover,
.ghhf-aside__download:focus-visible {
	background: var(--wp--preset--color--accent-6);
}

.ghhf-aside__cite {
	border-top: 1px solid var(--wp--preset--color--stone);
	padding-top: var(--wp--preset--spacing--30);
}

.ghhf-aside__cite-label {
	display: block;
	margin-bottom: 0.3rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-aside__cite-text {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.5;
	color: var(--wp--preset--color--accent-4);
}

@media (max-width: 900px) {
	.ghhf-article-layout {
		grid-template-columns: 1fr;
	}

	.ghhf-aside {
		position: static;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-pub__link,
	.ghhf-pub__title {
		transition: none;
	}
}

/* ===========================================================================
 * NEWS & EVENTS (NASA-news style: image-forward feature + card grid)
 * ======================================================================== */

/* Media — featured photo, or a branded duotone plate carrying the location. */
.ghhf-evmedia {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 8px;
	background: var(--wp--preset--color--accent-2);
}

.ghhf-evmedia__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

.ghhf-evmedia__plate {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: var(--wp--preset--spacing--40);
	background:
		radial-gradient(120% 120% at 85% 10%, rgba(160, 160, 160, 0.18), transparent 55%),
		linear-gradient(150deg, var(--wp--preset--color--accent-3), var(--wp--preset--color--ink));
}

.ghhf-evmedia__place {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--haze);
}

/* Card grid — borderless, image-forward (NASA news cards). Used by related
   events (single) and the topic/region hub listings. */
.ghhf-evgrid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: var(--wp--preset--spacing--50);
}

.ghhf-evcard {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
}

.ghhf-evcard__media {
	aspect-ratio: 16 / 10;
}

.ghhf-evcard:hover .ghhf-evmedia__img,
.ghhf-evcard:focus-visible .ghhf-evmedia__img {
	transform: scale(1.05);
}

.ghhf-evcard__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding-top: var(--wp--preset--spacing--30);
}

.ghhf-evcard__kicker {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-evcard__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
	transition: color 140ms ease-out;
}

.ghhf-evcard:hover .ghhf-evcard__title,
.ghhf-evcard:focus-visible .ghhf-evcard__title {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-evcard__meta {
	margin-top: auto;
	padding-top: 0.2rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

/* Single event — hero banner + meta row */
.ghhf-evhero {
	aspect-ratio: 16 / 6;
	margin-bottom: var(--wp--preset--spacing--60);
}

.ghhf-evhero .ghhf-evmedia__place {
	font-size: var(--wp--preset--font-size--small);
}

.ghhf-evmeta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-evmeta__sep {
	color: var(--wp--preset--color--accent-6);
}

@media (max-width: 700px) {
	.ghhf-evhero {
		aspect-ratio: 16 / 9;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-evmedia__img {
		transition: none;
	}

	.ghhf-evcard:hover .ghhf-evmedia__img {
		transform: none;
	}
}

/* Prev / next post navigation (singles) */
.ghhf-postnav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--40);
}

.ghhf-postnav__link {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	text-decoration: none;
}

.ghhf-postnav__link--next {
	text-align: right;
	align-items: flex-end;
}

.ghhf-postnav__link:hover .ghhf-postnav__title,
.ghhf-postnav__link:focus-visible .ghhf-postnav__title {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ghhf-postnav__dir {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-postnav__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
}

@media (max-width: 640px) {
	.ghhf-postnav {
		grid-template-columns: 1fr;
	}

	.ghhf-postnav__link--next {
		text-align: left;
		align-items: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-postnav__link {
		transition: none;
	}
}

/* Uniform gap between a section heading and the grid/wall that follows it —
 * matches the site-wide section block-gap (spacing-50). Placed last so it
 * overrides each grid's own `margin: 0` base rule regardless of source order. */
.ghhf-logowall,
.ghhf-values,
.ghhf-pillars,
.ghhf-orgs,
.ghhf-programs {
	margin-top: var(--wp--preset--spacing--50);
}

/* ========================================================================
 * TOPIC & REGION HUBS (cross-type landing: publications + events + experts)
 * ======================================================================== */

.ghhf-hub-hero__count {
	margin-top: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-hub__section + .ghhf-hub__section {
	margin-top: var(--wp--preset--spacing--80);
	padding-top: var(--wp--preset--spacing--70);
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-hub__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--60);
}

.ghhf-hub__title {
	margin: 0.2rem 0 0;
	line-height: 1.1;
	font-weight: 600;
}

.ghhf-hub__all {
	flex: none;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	white-space: nowrap;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-hub__all:hover,
.ghhf-hub__all:focus {
	color: var(--wp--preset--color--accent-6);
}

@media (max-width: 600px) {
	.ghhf-hub__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}
}

/* ========================================================================
 * SITE SEARCH (header reveal + branded results page)
 * ======================================================================== */

/* Header search: icon button + focus-within reveal panel (works without JS). */
.ghhf-search {
	position: relative;
	display: flex;
	align-items: center;
}

.ghhf-search__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--wp--preset--color--accent-1);
	cursor: pointer;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.ghhf-search__toggle:hover,
.ghhf-search__toggle:focus-visible {
	color: var(--wp--preset--color--accent-6);
	background: var(--wp--preset--color--accent-2);
}

.ghhf-search__panel {
	position: absolute;
	top: calc(100% + 12px);
	right: 0;
	display: flex;
	align-items: center;
	width: min(380px, 78vw);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 8px;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
	z-index: 60;
}

.ghhf-search:focus-within .ghhf-search__panel,
.ghhf-search__panel.is-open {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.ghhf-search__input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 0.7rem 0.2rem 0.7rem 0.95rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast);
}

.ghhf-search__input:focus {
	outline: none;
}

.ghhf-search__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: none;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--accent-1);
	cursor: pointer;
}

.ghhf-search__submit:hover {
	color: var(--wp--preset--color--accent-6);
}

/* Results page: head form + typed result rows + pagination. */
.ghhf-searchhead__count {
	margin-top: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-searchform {
	display: flex;
	align-items: center;
	max-width: 560px;
	margin-top: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 8px;
}

.ghhf-searchform__input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 0.85rem 0.4rem 0.85rem 1rem;
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--contrast);
}

.ghhf-searchform__input:focus {
	outline: none;
}

.ghhf-searchform__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex: none;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--accent-1);
	cursor: pointer;
}

.ghhf-searchform__submit:hover {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-results {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-result {
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-result:first-child {
	border-top: 0;
}

.ghhf-result__link {
	display: grid;
	gap: 0.35rem;
	padding: var(--wp--preset--spacing--50) 0;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}

.ghhf-result__badge {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-result__title {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-result__link:hover .ghhf-result__title,
.ghhf-result__link:focus .ghhf-result__title {
	color: var(--wp--preset--color--accent-6);
	text-decoration: underline;
}

.ghhf-result__meta {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-result__excerpt {
	max-width: 72ch;
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: var(--wp--preset--spacing--60);
}

.ghhf-pagination .page-numbers {
	display: inline-flex;
	min-width: 2.4em;
	padding: 0.4em 0.65em;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 6px;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-pagination .page-numbers.current {
	background: var(--wp--preset--color--accent-1);
	border-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}

.ghhf-pagination a.page-numbers:hover {
	border-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--accent-6);
}

/* ========================================================================
 * BRANDED AUTO-COVERS (deterministic plates for imageless pub/event cards)
 * ======================================================================== */

.ghhf-pub__cover {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* Concentric-arc motif echoing the Forum's circular-arrow mark. */
.ghhf-cover__motif {
	position: absolute;
	z-index: 0;
	inset: -45% -35% auto auto;
	width: 150%;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: repeating-radial-gradient( circle at center, transparent 0 14px, rgba( 255, 255, 255, 0.10 ) 14px 15px );
	pointer-events: none;
}

/* Keep the data layer above the motif. */
.ghhf-pub__cover-type,
.ghhf-pub__cover-year,
.ghhf-cover__topic,
.ghhf-evmedia__place {
	position: relative;
	z-index: 1;
}

/* Event plate: topic top, place bottom, motif behind. */
.ghhf-evmedia__plate {
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
}

.ghhf-cover__topic {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-5);
}

/* Six deterministic variants — all dark (copper/haze text stays legible). */
.ghhf-cover--v1 { background: linear-gradient( 150deg, var(--wp--preset--color--accent-3), var(--wp--preset--color--ink) ); }
.ghhf-cover--v2 { background: linear-gradient( 125deg, var(--wp--preset--color--ink), var(--wp--preset--color--accent-3) ); }
.ghhf-cover--v3 { background: linear-gradient( 160deg, var(--wp--preset--color--accent-4), var(--wp--preset--color--accent-3) ); }
.ghhf-cover--v4 { background: linear-gradient( 145deg, var(--wp--preset--color--accent-4), var(--wp--preset--color--ink) ); }
.ghhf-cover--v5 { background: linear-gradient( 120deg, var(--wp--preset--color--accent-3), var(--wp--preset--color--accent-4) ); }
.ghhf-cover--v6 { background: linear-gradient( 165deg, var(--wp--preset--color--ink), var(--wp--preset--color--accent-4) ); }

.ghhf-cover--v2 .ghhf-cover__motif { inset: auto auto -45% -35%; }
.ghhf-cover--v3 .ghhf-cover__motif { inset: -50% auto auto -30%; }
.ghhf-cover--v4 .ghhf-cover__motif { inset: auto -30% -40% auto; }
.ghhf-cover--v5 .ghhf-cover__motif { inset: -40% -40% auto auto; width: 165%; }
.ghhf-cover--v6 .ghhf-cover__motif { inset: auto auto -45% -35%; }

/* ========================================================================
 * EXPERT PROFILE — their work (focus-area chips + authored publications)
 * ======================================================================== */

.ghhf-expwork {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--60);
}

.ghhf-expwork__block > .ghhf-eyebrow {
	margin: 0 0 var(--wp--preset--spacing--30);
}

.ghhf-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-chip {
	display: inline-block;
	padding: 0.32em 0.85em;
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.06em;
	text-decoration: none;
	color: var(--wp--preset--color--accent-1);
	background: var(--wp--preset--color--base);
	transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.ghhf-chip:hover,
.ghhf-chip:focus {
	border-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent-1);
}

.ghhf-worklist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-workitem {
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-workitem:first-child {
	border-top: 0;
}

.ghhf-workitem__link {
	display: grid;
	gap: 0.2rem;
	padding: var(--wp--preset--spacing--40) 0;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}

.ghhf-workitem__tag {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-workitem__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-workitem__link:hover .ghhf-workitem__title,
.ghhf-workitem__link:focus .ghhf-workitem__title {
	color: var(--wp--preset--color--accent-6);
	text-decoration: underline;
}

/* Peer rail — other committee members. */
.ghhf-peers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.6rem 1.2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-peer {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	padding: 0.55rem 0;
	text-decoration: none;
}

.ghhf-peer__media {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-1);
}

.ghhf-peer__media .ghhf-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ghhf-peer__media .ghhf-card-initials {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
}

.ghhf-peer__text {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.ghhf-peer__name {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-peer:hover .ghhf-peer__name,
.ghhf-peer:focus .ghhf-peer__name {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-peer__role {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

@media (max-width: 600px) {
	.ghhf-peers {
		grid-template-columns: 1fr;
	}
}

/* ========================================================================
 * HISTORY TIMELINE — serpentine, scroll-drawn (About Us)
 * ======================================================================== */

.ghhf-serp {
	position: relative;
}

/* SVG connector overlay — sits behind the cards, line shows through the gaps. */
.ghhf-serp__svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
	z-index: 0;
}

.ghhf-serp__track {
	stroke: var(--wp--preset--color--stone);
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
	opacity: 0.55;
}

.ghhf-serp__path {
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ghhf-serp__grad-a { stop-color: var(--wp--preset--color--accent-1); }
.ghhf-serp__grad-b { stop-color: var(--wp--preset--color--accent-3); }

.ghhf-serp__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 1000px) {
	.ghhf-serp__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ghhf-serp__item {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* Staged reveal: cards fade/rise in as the drawing line reaches them.
 * Only active when JS animates (.is-animated); never under reduced motion. */
.ghhf-serp.is-animated .ghhf-serp__item {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.55s ease, transform 0.55s ease;
}

.ghhf-serp.is-animated .ghhf-serp__item.is-on {
	opacity: 1;
	transform: none;
}

/* The glowing "pen tip" that rides the end of the drawn line. */
.ghhf-serp__head {
	fill: var(--wp--preset--color--accent-1);
	opacity: 0;
	transition: opacity 0.3s ease;
	filter: drop-shadow(0 0 5px rgba(180, 180, 180, 0.9));
	animation: ghhf-serp-pulse 1.6s ease-in-out infinite;
}

@keyframes ghhf-serp-pulse {
	0%, 100% { r: 5px; }
	50% { r: 7px; }
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-serp__head {
		display: none;
	}
	.ghhf-serp__item {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* Numbered node — the line threads through the centre of this circle. */
.ghhf-serp__node {
	align-self: center;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-bottom: var(--wp--preset--spacing--30);
	border-radius: 50%;
	background: var(--wp--preset--color--accent-5);
	border: 2px solid var(--wp--preset--color--stone);
	transition: border-color 0.3s ease, background-color 0.3s ease, transform 0.3s ease;
}

.ghhf-serp__num {
	font-size: var(--wp--preset--font-size--xx-small);
	font-weight: 600;
	color: var(--wp--preset--color--accent-4);
	transition: color 0.3s ease;
}

.ghhf-serp__item.is-on .ghhf-serp__node {
	border-color: var(--wp--preset--color--accent-1);
	background: var(--wp--preset--color--accent-1);
}

.ghhf-serp__item.is-on .ghhf-serp__num {
	color: var(--wp--preset--color--base);
}

.ghhf-serp__item.is-mark .ghhf-serp__node {
	transform: scale(1.18);
	border-color: var(--wp--preset--color--accent-6);
}

.ghhf-serp__item.is-mark.is-on .ghhf-serp__node {
	background: var(--wp--preset--color--accent-6);
}

/* Card */
.ghhf-serp__card {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.3rem;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 10px;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.ghhf-serp__item.is-on .ghhf-serp__card {
	border-color: var(--wp--preset--color--haze);
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.07);
}

.ghhf-serp__item.is-mark .ghhf-serp__card {
	border-color: var(--wp--preset--color--accent-6);
}

.ghhf-serp__era {
	display: inline-block;
	align-self: flex-start;
	margin-bottom: 0.15rem;
	padding: 0.2em 0.6em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent-2);
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-serp__date {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-serp__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.22;
	color: var(--wp--preset--color--contrast);
}

.ghhf-serp__item.is-mark .ghhf-serp__title {
	color: var(--wp--preset--color--accent-1);
}

.ghhf-serp__place {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-serp__dek {
	margin: 0.2rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--accent-4);
}

/* Linked milestones (a matching event exists) — clickable card + affordance. */
a.ghhf-serp__card {
	text-decoration: none;
	color: inherit;
}

.ghhf-serp__card--link {
	cursor: pointer;
}

.ghhf-serp__card--link:hover,
.ghhf-serp__card--link:focus-visible {
	border-color: var(--wp--preset--color--accent-1);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.10);
	transform: translateY(-2px);
}

.ghhf-serp__card--link:hover .ghhf-serp__title,
.ghhf-serp__card--link:focus-visible .ghhf-serp__title {
	color: var(--wp--preset--color--accent-1);
}

.ghhf-serp__viewev {
	margin-top: auto;
	padding-top: 0.55rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--accent-1);
	opacity: 0.7;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.ghhf-serp__card--link:hover .ghhf-serp__viewev,
.ghhf-serp__card--link:focus-visible .ghhf-serp__viewev {
	opacity: 1;
	transform: translateX(3px);
}

.ghhf-serp__all {
	margin: var(--wp--preset--spacing--60) 0 0;
	text-align: center;
}

.ghhf-serp__all a {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-serp__all a:hover,
.ghhf-serp__all a:focus {
	color: var(--wp--preset--color--accent-6);
}

/* Vertical fallback (one column / mobile): a simple left rail, no SVG. */
.ghhf-serp.is-vertical .ghhf-serp__svg {
	display: none;
}

.ghhf-serp.is-vertical .ghhf-serp__grid {
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--50);
	padding-left: 6px;
	border-left: 2px solid var(--wp--preset--color--stone);
}

.ghhf-serp.is-vertical .ghhf-serp__item {
	flex-direction: row;
	align-items: flex-start;
	gap: 0.9rem;
	margin-left: -23px;
}

.ghhf-serp.is-vertical .ghhf-serp__node {
	margin-bottom: 0;
	flex: none;
	background: var(--wp--preset--color--accent-1);
	border-color: var(--wp--preset--color--accent-1);
}

.ghhf-serp.is-vertical .ghhf-serp__num {
	color: var(--wp--preset--color--base);
}

.ghhf-serp.is-vertical .ghhf-serp__item.is-mark .ghhf-serp__node {
	background: var(--wp--preset--color--accent-6);
	border-color: var(--wp--preset--color--accent-6);
}

/* No-JS / one-column small screens: stack chronologically. */
@media (max-width: 619px) {
	.ghhf-serp__grid {
		grid-template-columns: 1fr;
	}
}

/* ========================================================================
 * ABOUT US — governance diagram · pull-quote · objectives grid · reveal
 * ======================================================================== */

/* Founding-story pull-quote. */
.ghhf-pullquote {
	margin: var(--wp--preset--spacing--60) 0 0;
	padding: 0.2rem 0 0.2rem var(--wp--preset--spacing--50);
	border-left: 3px solid var(--wp--preset--color--accent-6);
}

.ghhf-pullquote__q {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	font-style: italic;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-pullquote__by {
	display: block;
	margin-top: 0.85rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

/* Mission objectives — scannable numbered grid. */
.ghhf-objgrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 var(--wp--preset--spacing--60);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-objgrid__item {
	display: flex;
	gap: 0.9rem;
	align-items: baseline;
	padding: var(--wp--preset--spacing--40) 0;
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-objgrid__n {
	flex: none;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-objgrid__t {
	line-height: 1.55;
	color: var(--wp--preset--color--contrast);
}

.ghhf-objgrid__cta {
	margin: var(--wp--preset--spacing--50) 0 0;
}

.ghhf-objgrid__cta a {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-objgrid__cta a:hover,
.ghhf-objgrid__cta a:focus {
	color: var(--wp--preset--color--accent-6);
}

@media (max-width: 600px) {
	.ghhf-objgrid {
		grid-template-columns: 1fr;
	}
}

/* Generic scroll-reveal (armed only by reveal.js when motion is allowed). */
.ghhf-js-reveal .ghhf-reveal {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.ghhf-js-reveal .ghhf-reveal.is-in {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ========================================================================
 * HOMEPAGE EDITORIAL FRONT (live "latest thinking": lead + ranked rail)
 * ======================================================================== */

.ghhf-edit {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: var(--wp--preset--spacing--70);
	align-items: start;
}

/* Lead analysis */
.ghhf-edit__leadlink {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}

.ghhf-edit__leadcover {
	display: block;
	overflow: hidden;
	border-radius: 10px;
	aspect-ratio: 16 / 9;
	max-height: 260px;
	margin-bottom: var(--wp--preset--spacing--40);
}

.ghhf-edit__leadcover .ghhf-pub__cover {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
}

.ghhf-edit__leadcover .ghhf-edit__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

.ghhf-edit__leadlink:hover .ghhf-edit__img {
	transform: scale(1.03);
}

.ghhf-edit__kicker {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

/* Chatham-style category chip on the lead card. */
.ghhf-edit__tag {
	display: inline-block;
	align-self: flex-start;
	margin-bottom: 0.7rem;
	padding: 0.32em 0.8em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-1);
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ghhf-edit__leadtitle {
	display: block;
	margin-top: 0.35rem;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 1.15;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-edit__leadlink:hover .ghhf-edit__leadtitle,
.ghhf-edit__leadlink:focus .ghhf-edit__leadtitle {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-edit__dek {
	display: block;
	margin-top: 0.55rem;
	max-width: 56ch;
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-edit__meta {
	display: block;
	margin-top: 0.55rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-edit__more {
	display: block;
	margin-top: 0.7rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-1);
}

/* Ranked rail */
.ghhf-edit__rail {
	display: flex;
	flex-direction: column;
}

.ghhf-edit__railhead {
	margin: 0 0 var(--wp--preset--spacing--30);
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--wp--preset--color--stone);
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-edit__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-edit__item {
	display: grid;
	grid-template-columns: 92px 1fr;
	gap: 1rem;
	align-items: center;
	padding: var(--wp--preset--spacing--40) 0;
	border-top: 1px solid var(--wp--preset--color--stone);
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}

.ghhf-edit__list li:first-child .ghhf-edit__item {
	border-top: 0;
	padding-top: 0;
}

.ghhf-edit__thumb {
	display: block;
	width: 92px;
	aspect-ratio: 5 / 4;
	overflow: hidden;
	border-radius: 6px;
}

.ghhf-edit__thumb .ghhf-pub__cover {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	padding: 7px;
}

.ghhf-edit__thumb .ghhf-pub__cover-year {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1;
}

.ghhf-edit__thumb .ghhf-pub__cover-type {
	font-size: 0.42rem;
	letter-spacing: 0.06em;
}

.ghhf-edit__thumb .ghhf-edit__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ghhf-edit__itemkicker {
	display: block;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-edit__itemtitle {
	display: block;
	margin-top: 0.2rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-edit__item:hover .ghhf-edit__itemtitle,
.ghhf-edit__item:focus .ghhf-edit__itemtitle {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-edit__all {
	margin-top: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-edit__all:hover,
.ghhf-edit__all:focus {
	color: var(--wp--preset--color--accent-6);
}

@media (max-width: 781px) {
	.ghhf-edit {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--60);
	}
}

/* ========================================================================
 * HOMEPAGE VOICES (the scholars — portraits rail)
 * ======================================================================== */

.ghhf-voices__all a {
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
	white-space: nowrap;
}

.ghhf-voices__all a:hover,
.ghhf-voices__all a:focus {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-voices {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--60);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-voice {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	text-decoration: none;
}

.ghhf-voice__photo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 8px;
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-1);
}

.ghhf-voice__photo .ghhf-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 450ms ease;
}

.ghhf-voice:hover .ghhf-card-img {
	transform: scale(1.05);
}

.ghhf-voice__photo .ghhf-card-initials {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
}

.ghhf-voice__name {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-voice:hover .ghhf-voice__name,
.ghhf-voice:focus .ghhf-voice__name {
	color: var(--wp--preset--color--accent-6);
}

/* Narrow screens: 2-up portraits and let the section link wrap (was nowrap,
 * which forced a 252px line that overflowed at 240px). */
@media (max-width: 600px) {
	.ghhf-voices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ghhf-voices__all a {
		white-space: normal;
	}
}

.ghhf-voice__role {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.03em;
	line-height: 1.35;
	color: var(--wp--preset--color--accent-4);
}

@media (max-width: 980px) {
	.ghhf-voices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 540px) {
	.ghhf-voices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ========================================================================
 * CORPORATE COLOUR DISCIPLINE — indigo leads; clay rationed to signature use
 * (the italic accent word, the Djibouti HQ). Quiet the scattered warm labels
 * to the brand indigo so the palette reads restrained/corporate.
 * ======================================================================== */
.ghhf-eyebrow.has-accent-6-color {
	color: var(--wp--preset--color--accent-1) !important;
}

/* ========================================================================
 * CORPORATE BAND RHYTHM — white content sections separated by thin hairlines
 * (Chatham/McKinsey register). Hero + vision quote are the only subtle tints.
 * ======================================================================== */
.ghhf-analysis,
.ghhf-focus,
.ghhf-home-voices,
.ghhf-convenings,
.ghhf-partnerband,
.ghhf-cta {
	border-top: 1px solid var(--wp--preset--color--stone);
}

/* Inner pages: force the tinted content bands white (overrides the patterns'
 * preset background classes, which carry !important). Page heroes
 * (.ghhf-page-hero) stay the mist masthead; the About timeline keeps its paper
 * ground so the serpentine cards still pop. */
.ghhf-about-mission.has-background,
.ghhf-about-governance.has-background,
.ghhf-about-partners.has-background,
.ghhf-about-cta.has-background,
.ghhf-research-programs.has-background,
.ghhf-research-cta.has-background,
.ghhf-get-apply.has-background,
.ghhf-contact-form.has-background {
	background-color: var(--wp--preset--color--base) !important;
}

/* Hairline separators between the inner white content sections. */
.ghhf-about-story,
.ghhf-about-mission,
.ghhf-about-methodology,
.ghhf-about-governance,
.ghhf-about-values,
.ghhf-about-partners,
.ghhf-about-cta,
.ghhf-research-approach,
.ghhf-research-programs,
.ghhf-research-cta,
.ghhf-get-apply,
.ghhf-get-membership,
.ghhf-get-newsletter,
.ghhf-contact-info,
.ghhf-contact-form {
	border-top: 1px solid var(--wp--preset--color--stone);
}

/* ========================================================================
 * HOMEPAGE EDITORIAL MOSAIC (NASA Featured-News style — overlay tiles + row)
 * ======================================================================== */
.ghhf-mosaic__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1.05fr;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 16px 30px;
	/* NASA-matched proportions: drive height from width so card shapes (lead
	 * ~1.56:1, centre portrait ~0.78:1, right ~1.7:1) hold at any screen size. */
	aspect-ratio: 3.3 / 1;
}

.ghhf-mtile--lead { grid-column: 1; grid-row: 1 / 3; }
.ghhf-mtile--mid  { grid-column: 2; grid-row: 1 / 3; }
.ghhf-mtile--r1   { grid-column: 3; grid-row: 1; }
.ghhf-mtile--r2   { grid-column: 3; grid-row: 2; }

.ghhf-mtile {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 8px;
	isolation: isolate;
	min-height: 0;
	text-decoration: none;
	background: var(--wp--preset--color--accent-3);
}

.ghhf-mtile__media,
.ghhf-mtile__img,
.ghhf-mtile__plate {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.ghhf-mtile__img {
	object-fit: cover;
	transition: transform 600ms ease;
}

.ghhf-mtile:hover .ghhf-mtile__img {
	transform: scale(1.05);
}

.ghhf-mtile__plate {
	display: block;
}

/* Dark scrim so the white headline stays legible over any image/plate. */
.ghhf-mtile__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.45) 38%, rgba(0, 0, 0, 0.05) 72%);
}

.ghhf-mtile__tag {
	position: absolute;
	top: 1rem;
	left: 1.15rem;
	z-index: 2;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--wp--preset--color--base);
}

.ghhf-mtile__foot {
	position: absolute;
	left: 1.15rem;
	right: 1.15rem;
	bottom: 1.1rem;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.ghhf-mtile__meta {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.82);
}

.ghhf-mtile__title {
	font-weight: 600;
	line-height: 1.16;
	color: var(--wp--preset--color--base);
}

.ghhf-mtile--lead .ghhf-mtile__title {
	font-size: var(--wp--preset--font-size--xx-large);
}

.ghhf-mtile--mid .ghhf-mtile__title {
	font-size: var(--wp--preset--font-size--x-large);
}

.ghhf-mtile--r1 .ghhf-mtile__title,
.ghhf-mtile--r2 .ghhf-mtile__title {
	font-size: var(--wp--preset--font-size--medium);
}

.ghhf-mtile:hover .ghhf-mtile__title {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Selected/keyboard-focused card border (NASA-style indigo outline). */
.ghhf-mtile:focus-visible,
.ghhf-mtile:focus {
	outline: 3px solid var(--wp--preset--color--accent-1);
	outline-offset: 3px;
}

.ghhf-mthumb:focus-visible,
.ghhf-mthumb:focus {
	outline: 3px solid var(--wp--preset--color--accent-1);
	outline-offset: 4px;
	border-radius: 4px;
}

/* Thumbnail row (further analysis & convenings) — on the white section. */
.ghhf-mrow {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	list-style: none;
	margin: var(--wp--preset--spacing--60) 0 0;
	padding: 0;
}

.ghhf-mthumb {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	text-decoration: none;
}

.ghhf-mthumb__img {
	position: relative;
	flex: none;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--wp--preset--color--accent-3);
}

.ghhf-mthumb__body {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}

.ghhf-mthumb__meta {
	font-size: 0.6rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-6);
}

.ghhf-mthumb__title {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.28;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-mthumb:hover .ghhf-mthumb__title,
.ghhf-mthumb:focus .ghhf-mthumb__title {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-mthumb__tag {
	margin-top: 0.1rem;
	font-size: 0.58rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

/* "All publications →" — top-right of the heading row (NASA "Recently Published"). */
.ghhf-analysis__more a {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--wp--preset--color--accent-1);
	text-decoration: none;
}

.ghhf-analysis__more a:hover,
.ghhf-analysis__more a:focus {
	color: var(--wp--preset--color--accent-6);
}

@media (max-width: 900px) {
	.ghhf-mosaic__grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: none;
		aspect-ratio: auto;
	}
	.ghhf-mtile {
		aspect-ratio: 16 / 10;
	}
	.ghhf-mtile--lead {
		grid-column: 1 / 3;
		grid-row: auto;
		aspect-ratio: 16 / 9;
	}
	.ghhf-mtile--mid,
	.ghhf-mtile--r1,
	.ghhf-mtile--r2 {
		grid-column: auto;
		grid-row: auto;
	}
	.ghhf-mrow {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.ghhf-mosaic__grid {
		grid-template-columns: 1fr;
	}
	.ghhf-mtile--lead {
		grid-column: 1;
	}
	.ghhf-mrow {
		grid-template-columns: 1fr;
	}
}

/* Overlay tiles on small screens: the kicker (absolute top) and title (absolute
 * bottom) collide when a title runs long in a short tile. Let the tile grow with
 * its content and flow the kicker + title together at the foot — never overlap. */
@media (max-width: 700px) {
	.ghhf-mtile {
		aspect-ratio: auto !important;
		min-height: 210px;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
	}

	.ghhf-mtile--lead {
		min-height: 250px;
	}

	.ghhf-mtile__tag {
		position: static;
		margin: 0 0 0.45rem;
		padding: 0 1.15rem;
	}

	.ghhf-mtile__foot {
		position: static;
		left: auto;
		right: auto;
		bottom: auto;
		padding: 0 1.15rem 1.15rem;
	}
}

/* ============================================================
   News & Events archive — Upcoming / Past split: a cinematic feature
   banner (reusing the .ghhf-mtile overlay tile) over Chatham-style rich
   cards (image-top, metadata beneath). ============================================================ */

/* Theme filter chips */
.ghhf-efilters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--wp--preset--color--stone);
}

.ghhf-efilters__label {
	margin-right: 0.35rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-chip {
	display: inline-block;
	padding: 0.34rem 0.8rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
	background: var(--wp--preset--color--accent-2);
	border-radius: 999px;
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease;
}

.ghhf-chip:hover,
.ghhf-chip:focus-visible,
.ghhf-chip.is-active {
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}

/* Section groups (Upcoming / Past) */
.ghhf-events__group + .ghhf-events__group {
	margin-top: var(--wp--preset--spacing--80);
}

.ghhf-events__h {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	margin: 0 0 var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-events__count {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 400;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-events__note {
	max-width: 62ch;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-events__note a {
	color: var(--wp--preset--color--accent-1);
	white-space: nowrap;
}

/* Feature banner (one per section) */
.ghhf-events .ghhf-mtile--feature {
	aspect-ratio: 21 / 8;
	margin-bottom: var(--wp--preset--spacing--60);
}

.ghhf-mtile--feature .ghhf-mtile__title {
	max-width: 20ch;
	font-size: var(--wp--preset--font-size--xx-large);
}

/* Rich card grid */
.ghhf-ecards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-ecard {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
}

.ghhf-ecard__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: 8px;
	background: var(--wp--preset--color--accent-3);
}

.ghhf-ecard__img,
.ghhf-ecard__plate {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.ghhf-ecard__img {
	object-fit: cover;
	transition: transform 500ms ease;
}

.ghhf-ecard:hover .ghhf-ecard__img,
.ghhf-ecard:focus-visible .ghhf-ecard__img {
	transform: scale(1.05);
}

.ghhf-ecard__plate {
	display: block;
}

.ghhf-ecard__body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding-top: 0.85rem;
}

/* "Type — Format" kicker (cards + single-event eyebrow) */
.ghhf-kicker__type {
	color: var(--wp--preset--color--accent-1);
}

.ghhf-kicker__sep,
.ghhf-kicker__fmt {
	color: var(--wp--preset--color--accent-4);
}

.ghhf-ecard__kicker {
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ghhf-ecard__flag {
	margin-right: 0.4rem;
	padding: 0.12rem 0.45rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent-6);
	border-radius: 3px;
}

.ghhf-ecard__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
	transition: color 150ms ease;
}

.ghhf-ecard:hover .ghhf-ecard__title,
.ghhf-ecard:focus-visible .ghhf-ecard__title {
	color: var(--wp--preset--color--accent-6);
}

.ghhf-ecard__meta {
	margin-top: auto;
	padding-top: 0.2rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-ecard:focus-visible {
	outline: 3px solid var(--wp--preset--color--accent-1);
	outline-offset: 4px;
	border-radius: 4px;
}

/* Delivery-format badge (shared by cards + the single-event panel) */
.ghhf-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.32rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-badge__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

.ghhf-badge--in-person { color: var(--wp--preset--color--accent-1); }
.ghhf-badge--online    { color: var(--wp--preset--color--accent-6); }
.ghhf-badge--hybrid    { color: var(--wp--preset--color--accent-4); }

@media (max-width: 900px) {
	.ghhf-events .ghhf-mtile--feature { aspect-ratio: 16 / 9; }
	.ghhf-ecards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.ghhf-events .ghhf-mtile--feature { aspect-ratio: 4 / 3; }
	.ghhf-ecards { grid-template-columns: 1fr; }
}

/* ===== Single event — Chatham-style text-first hero ===== */
.ghhf-evhero__title {
	margin: 0;
	max-width: 34ch;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 1.08;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-evhero__dek {
	max-width: 60ch;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: var(--wp--preset--color--accent-4);
}

/* Hero eyebrow: Type — Format kicker + status pill */
.ghhf-evlead__eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.7rem;
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ghhf-evlead__status {
	padding: 0.18rem 0.6rem;
	letter-spacing: 0.12em;
	border-radius: 999px;
}

.ghhf-evlead__status.is-upcoming {
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent-6);
}

.ghhf-evlead__status.is-past {
	color: var(--wp--preset--color--accent-4);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
}

/* Hero meta row + register button */
.ghhf-evlead {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
	margin-top: var(--wp--preset--spacing--20);
}

.ghhf-evlead__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 1rem;
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-evlead__date {
	color: var(--wp--preset--color--contrast);
	font-weight: 500;
}

.ghhf-evlead__cta {
	display: inline-block;
	padding: 0.7rem 1.25rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent-1);
	border-radius: 4px;
	text-decoration: none;
}

.ghhf-evlead__cta:hover,
.ghhf-evlead__cta:focus-visible {
	background: var(--wp--preset--color--accent-6);
}

/* ===== Single event — sidebar (Topics / Regions / Partners tags) ===== */
.ghhf-event-cols {
	align-items: start;
}

.ghhf-efacts {
	position: sticky;
	top: 6rem;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 10px;
}

.ghhf-efacts__group + .ghhf-efacts__group {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-efacts__h {
	margin: 0 0 0.7rem;
	font-size: var(--wp--preset--font-size--xx-small);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-efacts__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ghhf-tag {
	display: inline-block;
	padding: 0.32rem 0.7rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 999px;
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease;
}

.ghhf-tag:hover,
.ghhf-tag:focus-visible {
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}

.ghhf-efacts__partners {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--wp--preset--color--contrast);
}

@media (max-width: 781px) {
	.ghhf-event-cols {
		flex-direction: column;
	}
	.ghhf-event-cols .wp-block-column {
		flex-basis: 100% !important;
	}
	.ghhf-efacts {
		position: static;
	}
}

/* ===== Events landing — "at a glance" stats ===== */
.ghhf-estats {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
	margin: var(--wp--preset--spacing--40) 0 0;
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-estats__item {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	margin: 0;
}

.ghhf-estats__num {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-estats__label {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}

/* ===== Events landing — Themes / Formats / Where guide ===== */
.ghhf-eguide {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--60);
}

.ghhf-eguide__h {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--xx-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-eguide__intro {
	margin: 0 0 0.9rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--wp--preset--color--accent-4);
}

.ghhf-eguide__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ghhf-tag--static,
.ghhf-tag--static:hover,
.ghhf-tag--static:focus-visible {
	color: var(--wp--preset--color--accent-4);
	background: var(--wp--preset--color--base);
	cursor: default;
}

@media (max-width: 781px) {
	.ghhf-eguide {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--50);
	}
}

/* ===== Self-contained event bands (Speakers, Related analysis) rendered by
   shortcodes — break full-bleed out of the constrained <main>. ===== */
section.ghhf-eband {
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding-block: var(--wp--preset--spacing--80);
	padding-inline: clamp(1.25rem, 5vw, 3rem);
}

.ghhf-eband--tint {
	background: var(--wp--preset--color--accent-5);
}

.ghhf-eband--hair {
	border-top: 1px solid var(--wp--preset--color--stone);
}

.ghhf-eband__inner {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}

.ghhf-eband .ghhf-eyebrow {
	margin: 0 0 var(--wp--preset--spacing--50);
}

/* Speakers */
.ghhf-speakers {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
	gap: var(--wp--preset--spacing--50);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ghhf-speaker {
	display: flex;
	gap: 0.9rem;
	align-items: center;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 10px;
}

.ghhf-speaker__avatar {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent-1);
}

.ghhf-speaker__name {
	display: block;
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-speaker__role {
	display: block;
	margin-top: 0.15rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
	color: var(--wp--preset--color--accent-4);
}

/* "Who takes part" note (single-event body column) */
.ghhf-attend {
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--stone);
	border-radius: 10px;
}

.ghhf-attend__h {
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--accent-1);
}

.ghhf-attend p {
	margin: 0;
	color: var(--wp--preset--color--contrast);
}

/* Form submission notice + honeypot */
.ghhf-notice {
	max-width: 820px;
	margin: 0 0 var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	border-radius: 10px;
	border: 1px solid transparent;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}

.ghhf-notice--ok {
	background: rgba(27, 27, 27, 0.06);
	border-color: rgba(27, 27, 27, 0.18);
	color: var(--wp--preset--color--accent-1);
}

.ghhf-notice--err {
	background: rgba(74, 74, 74, 0.07);
	border-color: rgba(74, 74, 74, 0.2);
	color: var(--wp--preset--color--accent-6);
}

.ghhf-notice a {
	color: inherit;
}

.ghhf-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---------------------------------------------------------------------------
 * Motion — honour user preference
 * ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.ghhf-header,
	.ghhf-header.is-condensed > .wp-block-group {
		transition: none;
	}

	.ghhf-card,
	.ghhf-event__link,
	.ghhf-logo {
		transition: none;
	}

	.ghhf-mtile__img,
	.ghhf-ecard__img {
		transition: none;
	}

	.ghhf-mtile:hover .ghhf-mtile__img,
	.ghhf-ecard:hover .ghhf-ecard__img {
		transform: none;
	}

	.ghhf-map__pulse {
		animation: none;
		opacity: 0;
	}
}

/* ---------------------------------------------------------------------------
 * HEADINGS ARE BLACK. Indigo (accent-1) is reserved for links, eyebrows and
 * buttons — NOT for headings/titles. Overlay-tile titles sit over dark images
 * and keep their white colour, so they are intentionally excluded here.
 * ------------------------------------------------------------------------- */
.ghhf-hero__title,
.ghhf-page-hero__title,
.ghhf-evhero__title,
.ghhf-article__title,
.ghhf-events__h,
.ghhf-card__title,
.ghhf-ecard__title,
.ghhf-evcard__title,
.ghhf-pub__title,
.ghhf-pubcard__title,
.ghhf-convening__title,
.ghhf-feature__title,
.ghhf-rail__title,
.ghhf-pillar__title,
.ghhf-org__title,
.ghhf-value__title,
.ghhf-program__title,
.ghhf-program-card__title,
.ghhf-doc__title,
.ghhf-hub__title,
.ghhf-result__title,
.ghhf-workitem__title,
.ghhf-postnav__title,
.ghhf-serp__title,
.ghhf-mthumb__title,
.ghhf-voice__name,
.ghhf-speaker__name,
.ghhf-leader__name,
.ghhf-person__name,
.ghhf-peer__name,
.ghhf-map__name,
.ghhf-attend__h {
	color: var(--wp--preset--color--contrast);
}

/* ===========================================================================
 * RESPONSIVE LAYER — every section, every screen (verified 240px → desktop),
 * cross-browser. Fluid media + no horizontal overflow, then collapse every
 * multi-column content grid to one column on phones so nothing crams. Compact
 * numeric stat grids keep their two columns. (2026-06-23)
 * ======================================================================== */

/* Fluid media + safe wrapping so nothing ever forces a horizontal scrollbar. */
img, svg, video, canvas, iframe {
	max-width: 100%;
}

img {
	height: auto;
}

body {
	overflow-x: clip; /* clip (not hidden) so position:sticky keeps working */
}

h1, h2, h3, h4, p, li, dd, a, figcaption {
	overflow-wrap: break-word;
}

/* <= 600px: pull 3–4 column grids down to two. */
@media (max-width: 600px) {
	.ghhf-pillars,
	.ghhf-orgs,
	.ghhf-contact,
	.ghhf-eguide {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* <= 480px: single column for every content grid; stack the layout rows. */
@media (max-width: 480px) {
	.ghhf-cards,
	.ghhf-voices,
	.ghhf-people,
	.ghhf-leaders,
	.ghhf-mosaic__grid,
	.ghhf-mrow,
	.ghhf-ecards,
	.ghhf-objectives,
	.ghhf-pillars,
	.ghhf-orgs,
	.ghhf-values,
	.ghhf-contact,
	.ghhf-form,
	.ghhf-peers,
	.ghhf-objgrid,
	.ghhf-serp__grid,
	.ghhf-eguide,
	.ghhf-postnav,
	.ghhf-feature,
	.ghhf-feature__main,
	.ghhf-story,
	.ghhf-edit,
	.ghhf-article-layout {
		grid-template-columns: 1fr !important;
		justify-content: stretch !important;
	}

	/* Let long content shrink inside grid cells (prevents blow-out overflow).
	 * Covers card grids AND the photo|text / thumb|text layout rows. */
	.ghhf-cards > *, .ghhf-voices > *, .ghhf-people > *, .ghhf-ecards > *,
	.ghhf-mosaic__grid > *, .ghhf-mrow > *, .ghhf-peers > *, .ghhf-objgrid > *,
	.ghhf-leaders > *, .ghhf-leader__link > *, .ghhf-edit__item > *,
	.ghhf-convening > *, .ghhf-leader__body, .ghhf-leader__name {
		min-width: 0;
		overflow-wrap: break-word;
	}

	/* Stack the leader card on phones — avatar on top, text full-width below —
	 * so the bio never squeezes to one word per line at 240–400px. */
	.ghhf-leader__link {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--30);
	}
	.ghhf-leader__media {
		width: 104px;
		height: 104px;
	}
	.ghhf-leader__body {
		align-self: start;
	}

	/* Publication meta rail: below the article, full width, not sticky. */
	.ghhf-aside {
		position: static;
		top: auto;
	}
}

/* ============================================================================
 * CHATHAM HOUSE REFRESH (2026-06-23) — pure-blue depth on the homepage.
 * Adds a tinted band rhythm, blue data accents, stronger cards and a navy
 * close, without warm accent. Appended so it cascades over earlier rules.
 * ========================================================================== */

/* --- Band rhythm: alternate white / cool-tint, navy close ---------------- */
.ghhf-focus.has-background,
.ghhf-convenings.has-background {
	background-color: var(--wp--preset--color--accent-5) !important; /* cloud */
}
.ghhf-partnerband.has-background {
	background-color: var(--wp--preset--color--accent-2) !important; /* mist */
}
/* Soften the hairlines now that tints carry the separation. */
.ghhf-focus,
.ghhf-home-voices,
.ghhf-convenings,
.ghhf-partnerband {
	border-top: 0;
}

/* --- Focus area cards: blue numbers + rule, lighter resting surface ------- */
.ghhf-card {
	border-color: var(--wp--preset--color--stone);
	box-shadow: 0 1px 2px rgba(27, 27, 27, 0.04);
}
.ghhf-card__kicker,
.ghhf-card__more {
	color: var(--wp--preset--color--accent-1);
}
.ghhf-card::before {
	background: var(--wp--preset--color--accent-1);
}

/* --- Convenings: blue date + arrow, blue duotone media plate (no clay) ---- */
.ghhf-convening__month,
.ghhf-convening__arrow {
	color: var(--wp--preset--color--accent-1);
}
.ghhf-convening__media {
	background:
		linear-gradient(150deg, rgba(27, 27, 27, 0.9), rgba(27, 27, 27, 0.55)),
		var(--wp--preset--color--accent-3);
}

/* --- Navy CTA close ------------------------------------------------------- */
.ghhf-cta.has-background {
	background-color: var(--wp--preset--color--accent-3) !important; /* navy */
}
.ghhf-cta,
.ghhf-cta h2,
.ghhf-cta .wp-block-heading {
	color: var(--wp--preset--color--base);
}
.ghhf-cta .ghhf-eyebrow {
	color: var(--wp--preset--color--copper) !important; /* light blue */
}
.ghhf-cta .ghhf-eyebrow::before {
	background: var(--wp--preset--color--copper);
}
.ghhf-cta h2 em {
	color: var(--wp--preset--color--copper);
}
.ghhf-cta p:not(.ghhf-eyebrow) {
	color: var(--wp--preset--color--accent-2) !important;
}
/* Buttons on navy: solid white primary, outlined secondary. */
.ghhf-cta .wp-block-button:first-child .wp-block-button__link {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent-1);
}
.ghhf-cta .wp-block-button:last-child .wp-block-button__link {
	background-color: transparent !important;
	color: var(--wp--preset--color--base) !important;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--haze);
}

/* --- Events: clean photo-ready card grid (replaces the row layout;
 * NO hover effects, NO left/bold border) ----------------------------------- */
.ghhf-evcards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: var(--wp--preset--spacing--50);
}
.ghhf-evcards > li { display: flex; }
.ghhf-evcard {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	width: 100%;
	text-decoration: none;
	color: inherit;
}
.ghhf-evcard__media {
	position: relative;
	display: flex;
	align-items: flex-end;
	aspect-ratio: 16 / 10;
	margin-bottom: 0.5rem;
	overflow: hidden;
	background: var(--wp--preset--color--accent-3); /* dark plate until a photo is set */
}
.ghhf-evcard__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ghhf-evcard__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(30, 30, 30, 0.5), transparent 55%);
}
.ghhf-evcard__date {
	position: relative;
	z-index: 1;
	padding: 0.7rem 0.85rem;
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 0.95;
	letter-spacing: 0.02em;
}
.ghhf-evcard__date small {
	display: block;
	margin-top: 0.15rem;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 400;
	opacity: 0.85;
}
.ghhf-evcard__place {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}
.ghhf-evcard__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--contrast);
}
.ghhf-evcard__with {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--accent-4);
}

/* ---- Bridging Horizons — dynamic webinar episode cards ------------------- */
.ghhf-webinars{list-style:none;margin:var(--wp--preset--spacing--40) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--wp--preset--spacing--50);}
@media (max-width:781px){.ghhf-webinars{grid-template-columns:1fr;}}
.ghhf-wcard{display:flex;flex-direction:column;background:var(--wp--preset--color--base);border:1px solid var(--wp--preset--color--stone);border-radius:5px;overflow:hidden;box-shadow:0 10px 26px rgba(0,0,0,0.07);transition:transform .18s ease,box-shadow .18s ease;}
.ghhf-wcard:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,0.16);}
.ghhf-wcard__media{display:block;aspect-ratio:16/9;background:var(--wp--preset--color--accent-3);overflow:hidden;}
.ghhf-wcard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
.ghhf-wcard:hover .ghhf-wcard__media img{transform:scale(1.035);}
.ghhf-wcard__plate{display:block;width:100%;height:100%;background:linear-gradient(150deg,var(--wp--preset--color--accent-1),var(--wp--preset--color--accent-3));}
.ghhf-wcard__body{display:flex;flex-direction:column;gap:.5rem;padding:1.4rem 1.5rem 1.45rem;}
.ghhf-wcard__over{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:0;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.08em;text-transform:uppercase;color:var(--wp--preset--color--accent-4);}
.ghhf-wcard__ep{color:var(--wp--preset--color--accent-6);font-weight:600;}
.ghhf-wcard__status{margin-left:auto;padding:.1rem .55rem;border:1px solid var(--wp--preset--color--stone);border-radius:50px;font-size: var(--wp--preset--font-size--xx-small);color:var(--wp--preset--color--accent-4);}
.ghhf-wcard__status.is-upcoming{color:var(--wp--preset--color--accent-1);border-color:var(--wp--preset--color--accent-1);}
.ghhf-wcard__title{margin:.15rem 0 0;font-size: var(--wp--preset--font-size--large);line-height:1.25;font-weight:600;}
.ghhf-wcard__title a{color:var(--wp--preset--color--contrast);text-decoration:none;}
.ghhf-wcard__title a:hover{color:var(--wp--preset--color--accent-6);text-decoration:underline;}
.ghhf-wcard__speakers{margin:.1rem 0 0;font-size: var(--wp--preset--font-size--small);line-height:1.5;color:var(--wp--preset--color--contrast);}
.ghhf-wcard__facil{margin:0;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.03em;color:var(--wp--preset--color--accent-4);}
.ghhf-wcard__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.45rem;padding-top:.85rem;border-top:1px solid var(--wp--preset--color--stone);}
.ghhf-wcard__org{font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.06em;text-transform:uppercase;color:var(--wp--preset--color--accent-4);}
.ghhf-wcard__cta{font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.04em;text-transform:uppercase;color:var(--wp--preset--color--accent-1);text-decoration:none;white-space:nowrap;}
.ghhf-wcard__cta:hover{color:var(--wp--preset--color--accent-6);}

/* ---- Publications: AIMultiple-style research layout ---------------------- */
.ghhf-research{display:flex;flex-direction:column;gap:var(--wp--preset--spacing--70);}
/* Trending row */
.ghhf-trending{border-top:1px solid var(--wp--preset--color--stone);border-bottom:1px solid var(--wp--preset--color--stone);padding:1.4rem 0;}
.ghhf-trending__label{display:flex;align-items:center;gap:.45rem;margin:0 0 1rem;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.06em;text-transform:uppercase;color:var(--wp--preset--color--accent-4);font-weight:600;}
.ghhf-trending__spark{color:var(--wp--preset--color--accent-6);font-size: var(--wp--preset--font-size--xx-small);}
.ghhf-trending__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.ghhf-trending__item{padding:.15rem 1.5rem;border-left:1px solid var(--wp--preset--color--stone);}
.ghhf-trending__item:first-child{padding-left:0;border-left:0;}
.ghhf-trending__title{display:block;font-size: var(--wp--preset--font-size--medium);line-height:1.28;font-weight:600;color:var(--wp--preset--color--contrast);text-decoration:none;}
.ghhf-trending__title:hover{color:var(--wp--preset--color--accent-6);text-decoration:underline;}
.ghhf-trending__meta{display:block;margin-top:.5rem;font-size: var(--wp--preset--font-size--xx-small);color:var(--wp--preset--color--accent-4);}
@media (max-width:781px){.ghhf-trending__list{grid-template-columns:1fr;gap:1rem;}.ghhf-trending__item{border-left:0;padding:0;}}
/* Two-column: research list + sidebar */
.ghhf-research__grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--wp--preset--spacing--70);align-items:start;}
@media (max-width:1023px){.ghhf-research__grid{grid-template-columns:1fr;}}
.ghhf-research__h{margin:0 0 1.1rem;font-size: var(--wp--preset--font-size--x-large);font-weight:600;color:var(--wp--preset--color--contrast);}
/* Filter chips */
.ghhf-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem;}
.ghhf-chip{cursor:pointer;border:1px solid var(--wp--preset--color--stone);background:var(--wp--preset--color--base);color:var(--wp--preset--color--accent-4);border-radius:50px;padding:.4rem .95rem;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.03em;transition:all .15s ease;}
.ghhf-chip:hover{border-color:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--accent-1);}
.ghhf-chip.is-active{background:var(--wp--preset--color--accent-1);border-color:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--base);}
/* Research list — image + excerpt rows */
.ghhf-rlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.ghhf-ritem{display:grid;grid-template-columns:170px minmax(0,1fr);gap:1.4rem;padding:1.6rem 0;border-bottom:1px solid var(--wp--preset--color--stone);}
/* filters.js sets [hidden] to filter — ensure it wins over the grid display
 * (this is why the theme tabs "did nothing"). Robust for every facet filter. */
.ghhf-filter-item[hidden]{display:none !important;}
.ghhf-ritem:first-child{padding-top:0;}
.ghhf-ritem__media{display:block;border-radius:4px;overflow:hidden;aspect-ratio:4/3;background:var(--wp--preset--color--accent-3);}
.ghhf-ritem__media img,.ghhf-ritem__media .ghhf-cover,.ghhf-ritem__media .ghhf-pubcover{width:100%;height:100%;object-fit:cover;display:block;}
.ghhf-ritem__body{display:flex;flex-direction:column;gap:.5rem;min-width:0;}
.ghhf-ritem__title{margin:0;font-size: var(--wp--preset--font-size--large);line-height:1.25;font-weight:600;}
.ghhf-ritem__title a{color:var(--wp--preset--color--contrast);text-decoration:none;}
.ghhf-ritem__title a:hover{color:var(--wp--preset--color--accent-6);text-decoration:underline;}
.ghhf-ritem__dek{margin:0;font-size: var(--wp--preset--font-size--small);line-height:1.55;color:var(--wp--preset--color--accent-4);}
.ghhf-ritem__meta{margin:0;font-size: var(--wp--preset--font-size--xx-small);color:var(--wp--preset--color--accent-4);}
.ghhf-ritem__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.15rem;}
.ghhf-rtag{font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.05em;text-transform:uppercase;padding:.22rem .55rem;border-radius:3px;background:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--accent-1);}
.ghhf-rtag--ghost{background:transparent;border:1px solid var(--wp--preset--color--stone);color:var(--wp--preset--color--accent-4);}
@media (max-width:520px){.ghhf-ritem{grid-template-columns:1fr;}.ghhf-ritem__media{aspect-ratio:16/9;}}
/* Newsletter box */
.ghhf-nlbox{background:var(--wp--preset--color--accent-2);border-radius:6px;padding:1.6rem 1.5rem;position:sticky;top:6rem;}
.ghhf-nlbox__h{margin:0 0 .55rem;font-size: var(--wp--preset--font-size--large);line-height:1.2;font-weight:600;color:var(--wp--preset--color--contrast);}
.ghhf-nlbox__blurb{margin:0 0 1.1rem;font-size: var(--wp--preset--font-size--small);line-height:1.5;color:var(--wp--preset--color--contrast);}
.ghhf-nlbox__free{color:var(--wp--preset--color--accent-6);font-weight:600;text-transform:uppercase;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.04em;}
/* Block layout (NOT flex+gap): wpautop wraps the hidden fields in empty <p>s,
 * and flex `gap` was spacing every phantom child — pushing the input to the
 * bottom with a big gap. Neutralise the <p> margins + hide the hidden fields. */
.ghhf-nlbox__form{display:block;}
.ghhf-nlbox__form p{margin:0;}
.ghhf-nlbox__form input[type="hidden"],
.ghhf-nlbox__form .ghhf-hp{display:none;}
.ghhf-nlbox__input{box-sizing:border-box;display:block;width:100%;max-width:100%;margin-bottom:1rem;border:1px solid var(--wp--preset--color--stone);background:var(--wp--preset--color--base);border-radius:5px;padding:.7rem .9rem;font-size: var(--wp--preset--font-size--small);color:var(--wp--preset--color--contrast);}
.ghhf-nlbox__input:focus{outline:2px solid var(--wp--preset--color--accent-1);outline-offset:1px;border-color:transparent;}
.ghhf-nlbox__btn{cursor:pointer;border:0;background:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--base);border-radius:5px;padding:.72rem 1rem;font-size: var(--wp--preset--font-size--small);font-weight:500;transition:background .15s ease;}
.ghhf-nlbox__btn:hover{background:var(--wp--preset--color--accent-3);}
.ghhf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.ghhf-ritem__media .ghhf-pub__cover{width:100%;height:100%;display:flex;border-radius:0;}

/* ---- Publications single: AIMultiple-style article ---------------------- */
.ghhf-pubhead__meta{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.8rem;margin-bottom:1.1rem;}
.ghhf-pubhead__chip{padding:.28rem .7rem;border-radius:50px;background:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--accent-1);font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;}
.ghhf-pubhead__chip:hover{background:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--base);}
.ghhf-pubhead__date{color:var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--xx-small);}
.ghhf-pubhead__title{margin:0 auto;max-width:16ch;font-weight:700;line-height:1.14;}
.ghhf-authorline{display:flex;justify-content:center;flex-wrap:wrap;gap:1.6rem;margin-top:1.2rem;}
.ghhf-authorline__item{display:flex;align-items:center;gap:.55rem;}
.ghhf-authorline__avatar{flex:none;width:34px;height:34px;border-radius:50%;background:var(--wp--preset--color--accent-3);color:var(--wp--preset--color--base);display:flex;align-items:center;justify-content:center;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.02em;}
.ghhf-authorline__role{color:var(--wp--preset--color--accent-4);font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.03em;}
.ghhf-authorline__name{color:var(--wp--preset--color--contrast);font-weight:500;font-size: var(--wp--preset--font-size--small);}
.ghhf-pubhead__img{margin-left:auto;margin-right:auto;}
.ghhf-pubhead__img img{width:100%;max-height:460px;object-fit:cover;border-radius:8px;display:block;}
/* Three-column article grid: TOC | body | sidebar */
.ghhf-artgrid{display:grid;grid-template-columns:200px minmax(0,1fr) 304px;gap:var(--wp--preset--spacing--60);align-items:start;}
@media (max-width:1099px){.ghhf-artgrid{grid-template-columns:minmax(0,1fr) 300px;}.ghhf-artgrid__toc{display:none;}}
@media (max-width:781px){.ghhf-artgrid{grid-template-columns:1fr;}}
.ghhf-artgrid__toc{position:sticky;top:5.5rem;}
.ghhf-toc__label{margin:0 0 .5rem;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.08em;text-transform:uppercase;color:var(--wp--preset--color--accent-4);}
.ghhf-toc__list{list-style:none;margin:0;padding:0;border-left:2px solid var(--wp--preset--color--stone);}
.ghhf-toc__item a{display:block;margin-left:-2px;padding:.32rem 0 .32rem .9rem;border-left:2px solid transparent;font-size: var(--wp--preset--font-size--x-small);line-height:1.35;color:var(--wp--preset--color--accent-4);text-decoration:none;}
.ghhf-toc__item a:hover{color:var(--wp--preset--color--accent-1);border-left-color:var(--wp--preset--color--accent-1);}
.ghhf-toc__item--l3 a{padding-left:1.7rem;font-size: var(--wp--preset--font-size--x-small);}
/* Sidebar */
.ghhf-artgrid__side{display:flex;flex-direction:column;gap:1.6rem;}
.ghhf-sidecard{border:1px solid var(--wp--preset--color--stone);border-radius:6px;padding:1.3rem 1.35rem;}
.ghhf-sidecard__h{margin:0 0 .9rem;color:var(--wp--preset--color--contrast);}
.ghhf-sidecard .ghhf-pubs--related{margin:0;}
.ghhf-sidecard .ghhf-pub{border:0;padding:.7rem 0;border-top:1px solid var(--wp--preset--color--stone);}
.ghhf-sidecard .ghhf-pub:first-child{border-top:0;padding-top:0;}
.ghhf-sidecard .ghhf-pub__link{display:grid;grid-template-columns:52px minmax(0,1fr);gap:.7rem;align-items:center;text-decoration:none;}
.ghhf-sidecard .ghhf-pub__cover{width:52px;height:52px;border-radius:4px;overflow:hidden;}
.ghhf-sidecard .ghhf-pub__cover-type,.ghhf-sidecard .ghhf-pub__cover-year{display:none;}
.ghhf-sidecard .ghhf-pub__title{font-size: var(--wp--preset--font-size--small);line-height:1.3;color:var(--wp--preset--color--contrast);}
.ghhf-sidecard .ghhf-pub__kicker{display:none;}
.ghhf-artgrid:not(:has(.ghhf-toc)){grid-template-columns:minmax(0,1fr) 304px;}
.ghhf-artgrid:not(:has(.ghhf-toc)) .ghhf-artgrid__toc{display:none;}
@media (max-width:781px){.ghhf-artgrid:not(:has(.ghhf-toc)){grid-template-columns:1fr;}}
.ghhf-pubhead__title{max-width:24ch;}
.ghhf-sidecard .ghhf-pub__body{position:static;display:block;inset:auto;padding:0;background:none;}
.ghhf-sidecard .ghhf-pub__cover{position:relative;flex:none;}
/* Related card in the article sidebar: clean text list (no overlap) */
.ghhf-sidecard .ghhf-pub__link{display:block;}
.ghhf-sidecard .ghhf-pub__cover{display:none;}
.ghhf-sidecard .ghhf-pub__body{position:static;display:block;padding:0;background:none;}
.ghhf-sidecard .ghhf-pub__kicker{display:block;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.05em;text-transform:uppercase;color:var(--wp--preset--color--accent-6);margin-bottom:.2rem;}
.ghhf-sidecard .ghhf-pub__title{display:block;font-size: var(--wp--preset--font-size--small);line-height:1.3;color:var(--wp--preset--color--contrast);}
.ghhf-sidecard .ghhf-pub__link:hover .ghhf-pub__title{color:var(--wp--preset--color--accent-6);}
.ghhf-sidecard .ghhf-pub{padding:.8rem 0;}

/* ---- Home Recent convenings — date-forward list (redesign) --------------- */
.ghhf-convenings__list{list-style:none;margin:var(--wp--preset--spacing--50) 0 0;padding:0;display:flex;flex-direction:column;gap:.9rem;}
.ghhf-convening{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:1.5rem;background:var(--wp--preset--color--base);border:1px solid var(--wp--preset--color--stone);border-left:3px solid var(--wp--preset--color--accent-6);border-radius:5px;padding:1.15rem 1.6rem;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,0.05);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.ghhf-convening:hover{transform:translateX(3px);border-left-color:var(--wp--preset--color--accent-1);}
.ghhf-convening__media{display:none;}
.ghhf-convening__date{text-align:center;line-height:1;}
.ghhf-convening__month{display:block;font-size: var(--wp--preset--font-size--x-large);font-weight:600;letter-spacing:.02em;color:var(--wp--preset--color--accent-6);}
.ghhf-convening__year{display:block;margin-top:.25rem;font-size: var(--wp--preset--font-size--x-small);color:var(--wp--preset--color--accent-4);}
.ghhf-convening__body{min-width:0;display:flex;flex-direction:column;gap:.32rem;}
.ghhf-convening__place{font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.08em;text-transform:uppercase;color:var(--wp--preset--color--accent-4);}
.ghhf-convening__title{font-size: var(--wp--preset--font-size--large);line-height:1.25;font-weight:600;color:var(--wp--preset--color--contrast);}
.ghhf-convening:hover .ghhf-convening__title{color:var(--wp--preset--color--accent-6);}
.ghhf-convening__with{font-size: var(--wp--preset--font-size--small);color:var(--wp--preset--color--accent-4);}
.ghhf-convening__arrow{color:var(--wp--preset--color--accent-1);font-size: var(--wp--preset--font-size--large);}
@media (max-width:600px){.ghhf-convening{grid-template-columns:60px minmax(0,1fr);gap:1rem;padding:1rem 1.15rem;}.ghhf-convening__arrow{display:none;}.ghhf-convening__month{font-size: var(--wp--preset--font-size--large);}}

/* ---- Home "Our network" scholar cards (redesign) ------------------------- */
.ghhf-voices{list-style:none;margin:var(--wp--preset--spacing--50) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--wp--preset--spacing--40);}
@media (max-width:900px){.ghhf-voices{grid-template-columns:repeat(2,1fr);gap:var(--wp--preset--spacing--50);}}
@media (max-width:460px){.ghhf-voices{grid-template-columns:1fr;}}
.ghhf-voice{display:block;text-decoration:none;}
.ghhf-voice__media{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border-radius:8px;background:var(--wp--preset--color--accent-3);box-shadow:0 8px 22px rgba(0,0,0,0.08);transition:box-shadow .2s ease,transform .2s ease;}
.ghhf-voice:hover .ghhf-voice__media{box-shadow:0 16px 34px rgba(0,0,0,0.18);transform:translateY(-3px);}
.ghhf-voice__media .ghhf-card-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.ghhf-voice:hover .ghhf-voice__media .ghhf-card-img{transform:scale(1.05);}
.ghhf-voice__media .ghhf-card-initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size: var(--wp--preset--font-size--xx-large);font-weight:600;color:var(--wp--preset--color--haze);background:linear-gradient(150deg,var(--wp--preset--color--accent-1),var(--wp--preset--color--accent-3));}
.ghhf-voice__veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.72) 0%,rgba(0,0,0,0.10) 42%,rgba(0,0,0,0) 62%);opacity:0;transition:opacity .28s ease;}
.ghhf-voice:hover .ghhf-voice__veil{opacity:1;}
.ghhf-voice__cue{position:absolute;left:1rem;bottom:.95rem;color:#fff;font-size: var(--wp--preset--font-size--xx-small);letter-spacing:.05em;opacity:0;transform:translateY(6px);transition:opacity .28s ease,transform .28s ease;}
.ghhf-voice:hover .ghhf-voice__cue{opacity:1;transform:translateY(0);}
.ghhf-voice__body{display:block;margin-top:.9rem;}
.ghhf-voice__name{display:block;font-size: var(--wp--preset--font-size--medium);line-height:1.25;font-weight:600;color:var(--wp--preset--color--contrast);transition:color .15s ease;}
.ghhf-voice:hover .ghhf-voice__name{color:var(--wp--preset--color--accent-6);}
.ghhf-voice__role{display:block;margin-top:.32rem;font-size: var(--wp--preset--font-size--xx-small);line-height:1.45;color:var(--wp--preset--color--accent-4);}

.ghhf-voice__media{aspect-ratio:1/1;}

/* ---- Fix: flush full-width bands (no white gaps) + full-colour logos ------ */
main.wp-block-group > .wp-block-group.alignfull{margin-block-start:0 !important;margin-block-end:0 !important;}
.wp-site-blocks > *{margin-block-start:0 !important;margin-block-end:0 !important;}
.ghhf-logo__img{filter:none !important;opacity:1 !important;}

/* ---- All-white backgrounds: keep sections & panels defined with hairlines - */
.ghhf-page-hero,
.ghhf-evhero-band{border-bottom:1px solid var(--wp--preset--color--stone);}
.ghhf-home-voices,
.ghhf-convenings,
.ghhf-partnerband{border-top:1px solid var(--wp--preset--color--stone) !important;}
.ghhf-nlbox{border:1px solid var(--wp--preset--color--stone);}
.ghhf-rtag{border:1px solid var(--wp--preset--color--stone);}
.ghhf-pubhead__chip{border:1px solid var(--wp--preset--color--stone);}
/* Purely white heroes — drop the decorative glows/scrims */
.ghhf-hero::before,
.ghhf-page-hero::before,
.ghhf-evhero-band::before{background:none !important;}

/* Byline: space after the "Written by" label (inter-tag space is collapsed) */
.ghhf-authorline__role{margin-right:.35em;}
/* Wider article header + roomier title (owner) */
.ghhf-pubhead__title{max-width:34ch;}

/* ---- Research page: focus-area hub cards (redesign) ---------------------- */
.ghhf-focus-head{max-width:720px;margin-bottom:var(--wp--preset--spacing--60);}
.ghhf-focus-head__h{margin:.4rem 0 0;font-size:var(--wp--preset--font-size--x-large);font-weight:600;line-height:1.12;color:var(--wp--preset--color--contrast);}
.ghhf-focus-head__lede{margin:.7rem 0 0;font-size:var(--wp--preset--font-size--medium);line-height:1.55;color:var(--wp--preset--color--accent-4);}
.ghhf-focusgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;}
@media (max-width:781px){.ghhf-focusgrid{grid-template-columns:1fr;}}
.ghhf-fcard{display:flex;}
.ghhf-fcard__link{display:flex;flex-direction:column;gap:.5rem;width:100%;padding:1.7rem 1.85rem;background:var(--wp--preset--color--base);border:1px solid var(--wp--preset--color--stone);border-radius:6px;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,0.04);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
a.ghhf-fcard__link:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(0,0,0,0.12);border-color:var(--wp--preset--color--contrast);}
.ghhf-fcard__num{font-size:var(--wp--preset--font-size--x-large);font-weight:600;line-height:1;letter-spacing:.01em;color:var(--wp--preset--color--accent-4);}
.ghhf-fcard__title{margin:.1rem 0 0;font-size:var(--wp--preset--font-size--large);font-weight:600;line-height:1.2;color:var(--wp--preset--color--contrast);}
a.ghhf-fcard__link:hover .ghhf-fcard__title{text-decoration:underline;}
.ghhf-fcard__thesis{margin:0;font-size:var(--wp--preset--font-size--small);line-height:1.55;color:var(--wp--preset--color--contrast);}
.ghhf-fcard__note{font-size:var(--wp--preset--font-size--xx-small);line-height:1.45;color:var(--wp--preset--color--accent-4);}
.ghhf-fcard__foot{margin-top:auto;padding-top:.95rem;border-top:1px solid var(--wp--preset--color--stone);display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
.ghhf-fcard__count{font-size:var(--wp--preset--font-size--xx-small);color:var(--wp--preset--color--accent-4);}
.ghhf-fcard__cta{font-size:var(--wp--preset--font-size--xx-small);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;color:var(--wp--preset--color--accent-1);}
a.ghhf-fcard__link:hover .ghhf-fcard__cta{color:var(--wp--preset--color--accent-6);}

/* Expert focus-area chips: solid dark pill + white text (always visible) */
.ghhf-expwork .ghhf-chip,
.ghhf-expwork .ghhf-chip:hover,
.ghhf-expwork .ghhf-chip:focus-visible{background:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--base);border-color:var(--wp--preset--color--accent-1);}
.ghhf-expwork .ghhf-chip:hover,
.ghhf-expwork .ghhf-chip:focus-visible{background:var(--wp--preset--color--accent-6);border-color:var(--wp--preset--color--accent-6);}

/* Filter chips — consistent, always-legible states (fix black-on-black hover) */
.ghhf-chip:hover,
.ghhf-chip:focus-visible{background:var(--wp--preset--color--base);color:var(--wp--preset--color--accent-1);border-color:var(--wp--preset--color--accent-1);}
.ghhf-chip.is-active,
.ghhf-chip[aria-pressed="true"]{background:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--base);border-color:var(--wp--preset--color--accent-1);}
.ghhf-chip.is-active:hover,
.ghhf-chip.is-active:focus-visible,
.ghhf-chip[aria-pressed="true"]:hover{background:var(--wp--preset--color--accent-6);color:var(--wp--preset--color--base);border-color:var(--wp--preset--color--accent-6);}

/* News & Events — client-side theme filter: collapse sections with no matches */
.ghhf-eventsdir .ghhf-filter-item{margin:0;}
.ghhf-events__group:not(.ghhf-events__group--empty):not(:has(.ghhf-filter-item:not([hidden]))){display:none;}

/* Owner (2026-07-03): breathing room below the Official Documents cards
 * (before the footer). The events heading→cards gap deliberately uses the
 * shared section rule (var 70) so it matches "Our network"/the scholars. */
#official-documents {
	padding-bottom: clamp(3.75rem, 6vw, 5.75rem) !important;
}

/* Brand logo in the header (official GreaterHorn Horizon mark). Uses .ghhf-brand
 * — NOT .ghhf-logo, which is the bordered partner-logo card component. */
.ghhf-header .ghhf-brand {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	flex: none;
	border: 0;
	background: none;
	padding: 0;
}
.ghhf-header .ghhf-brand__img {
	display: block;
	height: clamp(64px, 7vw, 86px);
	width: auto;
}
/* Very small screens (down to 240px): shrink the logo so the header bar
 * (logo + search + hamburger) never overflows. */
@media (max-width: 400px) {
	.ghhf-header .ghhf-brand__img {
		height: 50px;
	}
}
@media (max-width: 300px) {
	.ghhf-header .ghhf-brand__img {
		height: 42px;
	}
}
/* Footer brand (light logo on the dark footer). */
.ghhf-brand--footer {
	display: inline-flex;
	line-height: 0;
	border: 0;
	background: none;
	padding: 0;
}
.ghhf-brand--footer .ghhf-brand__img {
	display: block;
	height: clamp(76px, 8vw, 96px);
	width: auto;
}

/* ============================================================================
 * UNIFORM, MOTION-FREE CARD HOVER (expert UX decision, 2026-07-03)
 * The owner dislikes lift/zoom/shadow hovers (removed from events + leaders).
 * For consistency, EVERY clickable card now drops motion and keeps only quiet
 * colour/border feedback. Focus rings are untouched (keyboard a11y).
 * ========================================================================== */
.ghhf-card:hover, .ghhf-card:focus-visible,
.ghhf-person__link:hover, .ghhf-person__link:focus-visible,
.ghhf-voice:hover, .ghhf-voice:focus-visible,
.ghhf-mtile:hover, .ghhf-mtile:focus-visible {
	transform: none !important;
	box-shadow: none !important;
}
.ghhf-card:hover .ghhf-card-img,
.ghhf-person__link:hover .ghhf-card-img,
.ghhf-voice:hover .ghhf-card-img,
.ghhf-mtile:hover .ghhf-mtile__img,
.ghhf-person__link:focus-visible .ghhf-card-img,
.ghhf-voice:focus-visible .ghhf-card-img,
.ghhf-mtile:focus-visible .ghhf-mtile__img {
	transform: none !important;
}

/* Focus-area cards: restrained border hover (match the doc/leader cards)
 * instead of the full navy fill + text inversion. */
.ghhf-card:hover, .ghhf-card:focus-visible {
	background: var(--wp--preset--color--base) !important;
	border-color: var(--wp--preset--color--accent-1) !important;
}
.ghhf-card:hover .ghhf-card__title, .ghhf-card:focus-visible .ghhf-card__title {
	color: var(--wp--preset--color--contrast) !important;
}
.ghhf-card:hover .ghhf-card__dek, .ghhf-card:focus-visible .ghhf-card__dek {
	color: var(--wp--preset--color--accent-4) !important;
}
.ghhf-card:hover .ghhf-card__kicker, .ghhf-card:focus-visible .ghhf-card__kicker,
.ghhf-card:hover .ghhf-card__more, .ghhf-card:focus-visible .ghhf-card__more {
	color: var(--wp--preset--color--accent-1) !important;
}
.ghhf-card:hover::before, .ghhf-card:focus-visible::before {
	background: var(--wp--preset--color--accent-1) !important;
}

/* Event cards had NO hover feedback — add a quiet title underline for
 * discoverability (still no motion). */
.ghhf-evcard:hover .ghhf-evcard__title,
.ghhf-evcard:focus-visible .ghhf-evcard__title {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Single-webinar featured image — a STANDARD fixed frame (16:9 banner at a set
 * width) so every webinar image fits the same size; `contain` keeps the whole
 * picture visible (no crop), with a light plate behind any letterbox. */
.ghhf-webinar-cover {
	max-width: 900px;
	margin-left: 0 !important;
	margin-right: auto !important;
}
.ghhf-webinar-cover img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: contain;
	background: var(--wp--preset--color--accent-5);
	border-radius: 10px;
}

/* Contact card: quiet parenthetical note next to each email address. */
.ghhf-contact__note {
	color: var(--wp--preset--color--accent-4);
	font-size: var(--wp--preset--font-size--x-small);
}

/* Single-expert hero: details sit BESIDE the photo (flex-grow to fill the row)
 * instead of wrapping below it. Wraps under the photo only on narrow screens. */
.ghhf-expert-details {
	flex: 1 1 340px;
	min-width: 0;
}

/* Single document — body text flows in two newspaper-style columns with a
 * hairline divider (owner request). Single column on phones/tablets. */
@media (min-width: 900px) {
	.ghhf-doc__content {
		column-count: 2;
		column-gap: 2.75rem;
		column-rule: 1px solid var(--wp--preset--color--stone);
	}
	.ghhf-doc__content :where(h2, h3) {
		break-inside: avoid;
		break-after: avoid-column;
	}
	.ghhf-doc__content > :first-child {
		margin-top: 0;
	}
}

/* ==========================================================================
 * BLUE DISCIPLINE (2026-07-06): blue = interactive accent only — CTA buttons,
 * links, navigation arrows/chevrons. Headings stay ink; light-band eyebrows go
 * grey; linked headings underline (never colour) on hover.
 * ========================================================================== */

/* Eyebrows on light bands: grey, not blue. */
.ghhf-eyebrow.has-accent-1-color,
.ghhf-eyebrow.has-accent-6-color {
	color: var(--wp--preset--color--accent-4) !important;
}

/* Linked headings: stay ink; on hover an underline WIPES in left→right.
 * text-decoration can't animate, so this uses an animatable background-gradient
 * line (0% → 100% width). */
.ghhf-card__title, .ghhf-rail__title, .ghhf-pub__title, .ghhf-evcard__title,
.ghhf-convening__title, .ghhf-postnav__title, .ghhf-result__title,
.ghhf-workitem__title, .ghhf-serp__title, .ghhf-mtile__title, .ghhf-mthumb__title,
.ghhf-ecard__title, .ghhf-peer__name, .ghhf-voice__name, .ghhf-trending__title,
.ghhf-fcard__title, .ghhf-ritem__title a, .ghhf-wcard__title a,
.wp-block-post-title a {
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 2px;
	text-decoration: none;
	transition: background-size 0.32s ease;
}

.ghhf-card:hover .ghhf-card__title, .ghhf-card:focus-visible .ghhf-card__title,
.ghhf-rail__item:hover .ghhf-rail__title, .ghhf-rail__item:focus-visible .ghhf-rail__title,
.ghhf-pub__link:hover .ghhf-pub__title, .ghhf-pub__link:focus-visible .ghhf-pub__title,
.ghhf-sidecard .ghhf-pub__link:hover .ghhf-pub__title,
.ghhf-evcard:hover .ghhf-evcard__title, .ghhf-evcard:focus-visible .ghhf-evcard__title,
.ghhf-convening:hover .ghhf-convening__title,
.ghhf-postnav__link:hover .ghhf-postnav__title, .ghhf-postnav__link:focus-visible .ghhf-postnav__title,
.ghhf-result__link:hover .ghhf-result__title, .ghhf-result__link:focus .ghhf-result__title,
.ghhf-workitem__link:hover .ghhf-workitem__title, .ghhf-workitem__link:focus .ghhf-workitem__title,
.ghhf-serp__card--link:hover .ghhf-serp__title, .ghhf-serp__card--link:focus-visible .ghhf-serp__title,
.ghhf-mtile:hover .ghhf-mtile__title,
.ghhf-mthumb:hover .ghhf-mthumb__title, .ghhf-mthumb:focus .ghhf-mthumb__title,
.ghhf-ecard:hover .ghhf-ecard__title, .ghhf-ecard:focus-visible .ghhf-ecard__title,
.ghhf-peer:hover .ghhf-peer__name,
.ghhf-voice:hover .ghhf-voice__name, .ghhf-voice:focus .ghhf-voice__name,
.ghhf-ritem__title a:hover, .ghhf-ritem__title a:focus-visible,
.ghhf-wcard__title a:hover, .ghhf-wcard__title a:focus-visible,
.ghhf-trending__title:hover, .ghhf-trending__title:focus-visible,
.ghhf-fcard__link:hover .ghhf-fcard__title,
.wp-block-post-title a:hover, .wp-block-post-title a:focus-visible {
	color: var(--wp--preset--color--contrast) !important;
	background-size: 100% 2px;
}

@media (prefers-reduced-motion: reduce) {
	.ghhf-card__title, .ghhf-rail__title, .ghhf-pub__title, .ghhf-evcard__title,
	.ghhf-convening__title, .ghhf-postnav__title, .ghhf-result__title,
	.ghhf-workitem__title, .ghhf-serp__title, .ghhf-mtile__title, .ghhf-mthumb__title,
	.ghhf-ecard__title, .ghhf-peer__name, .ghhf-voice__name, .ghhf-trending__title,
	.ghhf-fcard__title, .ghhf-ritem__title a, .ghhf-wcard__title a,
	.wp-block-post-title a {
		transition: none;
	}
}

/* Dark CTA band: no blue in the heading; keep the eyebrow light, not blue. */
.ghhf-cta h2 em {
	color: var(--wp--preset--color--base) !important;
}
.ghhf-cta .ghhf-eyebrow {
	color: var(--wp--preset--color--accent-5) !important;
}
.ghhf-cta .ghhf-eyebrow::before {
	background: var(--wp--preset--color--accent-5) !important;
}

/* FINAL: mosaic tiles have white titles on dark covers — keep them white on
 * hover (must come after the generic linked-heading contrast rule to win). */
.ghhf-mtile:hover .ghhf-mtile__title,
.ghhf-mtile:focus-visible .ghhf-mtile__title,
.ghhf-mtile:hover .ghhf-mtile__kicker,
.ghhf-mtile:hover .ghhf-mtile__meta {
	color: var(--wp--preset--color--base) !important;
}

/* ==========================================================================
 * Focus outline for KEYBOARD only — tapping/clicking a link or menu item must
 * never leave a blue box. Overrides the base theme's :focus rule (which shows
 * on any focus incl. touch). Keyboard users (:focus-visible) still get a ring.
 * ========================================================================== */
.wp-site-blocks *:focus:not(:focus-visible),
.ghhf-nav .wp-block-navigation-item__content:focus:not(:focus-visible),
.wp-block-navigation__responsive-container.is-menu-open *:focus:not(:focus-visible) {
	outline: none !important;
	box-shadow: none !important;
}
