/**
 * Supplemental theme styles — block style variants and layout helpers.
 * Core tokens (colors, typography, buttons) live in theme.json.
 */

/* ---------------------------------------------------------------
   Layout resets
   --------------------------------------------------------------- */

/* Pages open on a full-bleed hero, so the block gap WP puts above <main>
   would show as a white strip under the header. */
.wp-site-blocks > main {
	margin-block-start: 0;
}

/* Full-bleed sections keep edge-to-edge backgrounds; inner copy aligns to this rail. */
:root {
	--h2hc-fullbleed-max: 1900px;
}

/* Prefer even rag on multi-line headings (from Customizer scratchpad). */
h1,
h2,
h3,
h4,
h5,
h6 {
	text-wrap: balance;
}

/* Fluid H2 — Customizer formula (min/max match theme.json h2 preset). */
h2 {
	font-size: clamp(2.125rem, 2.125rem + ((1vw - 0.2rem) * 1.837), 3.25rem);
}

/* Two-column list utility for long link/bullet blocks in the editor. */
.two-column-list {
	column-count: 2;
	column-gap: 30px;
}

/* ---------------------------------------------------------------
   Site header
   Works with theme parts OR an FSE-customized header that keeps
   class "site-header" (custom classNames like site-header__nav may
   be missing after a Site Editor rebuild).
   --------------------------------------------------------------- */

.site-header {
	padding-top: 1.125rem;
	padding-bottom: 1.125rem;
}

.site-header__inner {
	gap: var(--wp--preset--spacing--40);
}

.site-header__actions {
	gap: var(--wp--preset--spacing--40);
}

/* Do NOT set min-width:0 / flex-shrink on the logo — that collapsed the
   white SVG to 0×0 inside a squeezed flex row. */
.site-header .wp-block-site-logo {
	flex: 0 0 auto;
	line-height: 0;
}

.site-header .wp-block-site-logo a {
	display: inline-block;
	line-height: 0;
}

.site-header .wp-block-site-logo img,
.site-header .wp-block-site-logo .custom-logo {
	display: block;
	width: 205px;
	max-width: 100%;
	height: auto;
}

/* Navigation — className optional after FSE edits. */
.site-header .wp-block-navigation,
.site-header__nav {
	gap: clamp(1.25rem, 2.5vw, 2.25rem);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	font-weight: 600;
}

.site-header .wp-block-navigation-item__content,
.site-header__nav .wp-block-navigation-item__content {
	text-decoration: none;
}

/* Soft dropdown cards (desktop only — overridden in the mobile overlay). */
.site-header .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation__submenu-container,
nav .main-nav .wp-block-navigation__submenu-container {
	border-radius: 5px;
	border-top: 3px solid var(--wp--preset--color--navy);
	border-right: 0;
	border-bottom: 0;
	border-left: 0;
	box-shadow: 0 0 5px rgb(0 0 0 / 25%);
}

/* Donate pill. */
.site-header .wp-block-button__link,
.site-header__donate .wp-block-button__link {
	border-radius: 999px;
	padding: 0.6em 1.6em;
	font-weight: 700;
	font-size: 0.9375rem;
}

/* Search icon button. */
.site-header .wp-block-search,
.site-header__search {
	margin: 0;
}

.site-header .wp-block-search__button,
.site-header__search .wp-block-search__button {
	background: transparent;
	border: 0;
	padding: 0.25rem;
	cursor: pointer;
}

.site-header .wp-block-search__button svg,
.site-header__search .wp-block-search__button svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

@media (max-width: 781px) {
	/* Outer header row: logo left, controls right. */
	.site-header > .wp-block-group,
	.site-header__inner {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 0.65rem;
		width: 100%;
	}

	/* Logo cluster — pin left; do NOT give it margin-left:auto. */
	.site-header__inner > .wp-block-site-logo,
	.site-header > .wp-block-group > .wp-block-group:first-child {
		flex: 0 0 auto !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		justify-content: flex-start !important;
		width: auto !important;
	}

	/* Actions cluster (hamburger + search) — pin right, tight gap. */
	.site-header__actions,
	.site-header > .wp-block-group > .wp-block-group:last-child {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: flex-end !important;
		flex: 0 0 auto;
		gap: 0.35rem !important;
		margin-left: auto !important;
		width: auto !important;
	}

	.site-header .wp-block-site-logo {
		flex: 0 0 auto !important;
		max-width: 125px;
	}

	.site-header .wp-block-site-logo img,
	.site-header .wp-block-site-logo .custom-logo {
		width: 125px !important;
		max-width: 125px !important;
		height: auto !important;
	}

	/* Hide Donate whether or not it still has site-header__donate. */
	.site-header__donate,
	.site-header .wp-block-buttons {
		display: none !important;
	}

	/* Search sits a hair high vs the hamburger — nudge it down to match. */
	.site-header .wp-block-search,
	.site-header__search {
		display: flex;
		align-items: center;
		align-self: center;
	}

	.site-header .wp-block-search__button,
	.site-header__search .wp-block-search__button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		transform: translateY(3px);
	}

	/*
	 * Mobile navigation fly-out
	 * Scoped to ANY nav inside .site-header (FSE may drop site-header__nav).
	 */
	.site-header .wp-block-navigation__responsive-container.is-menu-open,
	.site-header .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__container,
	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__submenu-container {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: 0 !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		text-align: left !important;
	}

	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
		text-align: left !important;
	}

	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item__content {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box;
		padding: 0.9rem 0 !important;
		text-align: left !important;
		justify-content: flex-start !important;
		color: var(--wp--preset--color--navy) !important;
		border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 18%, transparent);
	}

	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-submenu
		> .wp-block-navigation-item__content {
		font-weight: 700;
	}

	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__submenu-container
		.wp-block-navigation-item__content {
		padding-left: 0.85rem !important;
		font-weight: 500;
		font-size: 0.95em;
	}

	/* Kill desktop submenu “card” chrome inside the overlay. */
	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__submenu-container {
		position: static !important;
		inset: auto !important;
		width: 100% !important;
		min-width: 0 !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		background: transparent !important;
		overflow: visible !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	.site-header
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-submenu__toggle {
		margin-left: 0;
	}
}

/* ---------------------------------------------------------------
   Hero
   Translucent white panel flush to the left edge, full height, over a
   photo or brand colour. Set a background image on the inner image block.
   --------------------------------------------------------------- */

/* Photo and card share one grid cell so the card floats over the image.
   The image is a real <img>, not a CSS background, so it can stack above the
   copy on mobile. Media is absolutely positioned so it always covers the
   hero box — percentage height against min-height alone left a brand-colour
   band when the card grew taller than the image. */
.h2hc-hero {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	align-items: stretch;
	/* Single / sub-page hero: ~10% under the prior 527px / 68vh (~25% under original 620/80). */
	min-height: min(474px, 61vh);
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

/* Flow layout adds vertical margins between children; the grid handles spacing. */
.h2hc-hero > * {
	margin-block: 0 !important;
}

.h2hc-hero__media {
	grid-area: 1 / 1;
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
	width: 100%;
	height: 100%;
	max-height: none;
	overflow: hidden;
}

/* Absolute img so a media-library caption cannot steal height and open a
   brand-colour strip under the photo. Captions are also stripped in PHP. */
.h2hc-hero__media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Default center; editor focal point writes an inline object-position that wins. */
	object-position: center center;
}

.h2hc-hero__media figcaption,
.h2hc-hero__media .wp-element-caption {
	display: none !important;
}

/* Placeholder image slot before an editor picks a photo. */
.h2hc-hero__media img:not([src]) {
	display: none;
}

/* Flush to the left viewport edge and full height. On ultrawide screens the
   panel still spans from the left edge; left padding pushes the copy onto the
   1900px content rail so it lines up with sections below. */
.h2hc-hero__card {
	grid-area: 1 / 1;
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: min(
		50%,
		calc(680px + max(0px, (100vw - var(--h2hc-fullbleed-max)) / 2))
	);
	margin: 0;
	margin-inline-end: auto;
	padding-top: clamp(2rem, 5vw, 3.5rem);
	padding-right: clamp(2rem, 5vw, 3.5rem);
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
	padding-left: max(
		clamp(2rem, 5vw, 3.5rem),
		calc((100vw - var(--h2hc-fullbleed-max)) / 2)
	);
	background-color: rgb(255 255 255 / 70%);
}

.h2hc-hero__card > * {
	margin-block-start: 0;
}

.h2hc-hero__card h1,
.h2hc-hero__card h2 {
	margin: 0 0 1rem;
	font-size: clamp(2.25rem, 4.5vw, 3.5rem);
	line-height: 1.08;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-hero__card p {
	margin: 0 0 1.75rem;
	font-size: clamp(1rem, 1rem + ((1vw - 0.2rem) * 0.3), 1.5rem);
	color: var(--wp--preset--color--navy);
	line-height: 1.7;
}

.h2hc-hero__card .wp-block-button__link {
	border-radius: 999px;
	padding: 0.7em 1.9em;
	font-weight: 700;
}

/* Home slider: ~10% under the prior 589px / 76vh slide height. */
.h2hc-slide.h2hc-hero {
	min-height: min(530px, 68vh);
}

/* Clear the prev arrow so copy isn’t covered on slider heroes.
   Still respect the 1900px rail when that inset is larger. */
.h2hc-slide .h2hc-hero__card {
	padding-left: max(
		clamp(4rem, 8vw, 6rem),
		calc((100vw - var(--h2hc-fullbleed-max)) / 2)
	);
}

/* Mobile: drop the overlay so the image stacks above the copy, in DOM order. */
@media (max-width: 781px) {
	.h2hc-hero,
	.h2hc-slide.h2hc-hero {
		display: flex;
		flex-direction: column;
		min-height: 0;
		/* Slider equalizes slide heights to the tallest; shorter slides were
		   showing desktop brand colours (green / purple) under the white card. */
		background-color: var(--wp--preset--color--white) !important;
		background-image: none !important;
	}

	.h2hc-hero__media,
	.h2hc-slide .h2hc-hero__media {
		position: relative;
		inset: auto;
		flex: 0 0 auto;
		width: auto;
		height: auto;
		max-height: none;
	}

	.h2hc-hero__media img {
		position: relative;
		inset: auto;
		height: auto;
		max-height: 320px;
	}

	/* Nothing behind the card once stacked, so it goes fully opaque.
	   Grow to fill any leftover slide height so no colour band shows. */
	.h2hc-hero__card,
	.h2hc-slide .h2hc-hero__card {
		flex: 1 1 auto;
		width: auto;
		margin: 0;
		padding-left: clamp(2rem, 5vw, 3.5rem);
		background-color: var(--wp--preset--color--white);
	}
}

/* ---------------------------------------------------------------
   Hero slider
   Scroll-snap carousel. Each slide is a normal group, so editors add
   one by duplicating a slide — no plugin, no special block.
   --------------------------------------------------------------- */

/* The carousel only engages once hero-slider.js wraps the slider. In the
   editor no wrapper exists, so slides stay stacked and fully editable. */
.h2hc-slider__wrap {
	position: relative;
}

.h2hc-slider__wrap > .h2hc-slider {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.h2hc-slider__wrap > .h2hc-slider::-webkit-scrollbar {
	display: none;
}

.h2hc-slider__wrap > .h2hc-slider > .h2hc-slide {
	flex: 0 0 100%;
	min-width: 100%;
	margin-block: 0 !important;
	scroll-snap-align: start;
}

/* Arrows and dots are injected by assets/js/hero-slider.js. */
.h2hc-slider__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 999px;
	background: rgb(255 255 255 / 75%);
	color: var(--wp--preset--color--slate-purple);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}

.h2hc-slider__nav:hover,
.h2hc-slider__nav:focus-visible {
	background: var(--wp--preset--color--white);
}

.h2hc-slider__nav--prev {
	left: clamp(0.5rem, 2vw, 1.5rem);
}

.h2hc-slider__nav--next {
	right: clamp(0.5rem, 2vw, 1.5rem);
}

.h2hc-slider__dots {
	position: absolute;
	bottom: 1rem;
	left: 0;
	right: 0;
	z-index: 3;
	display: flex;
	justify-content: center;
	gap: 0.5rem;
}

.h2hc-slider__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgb(255 255 255 / 60%);
	cursor: pointer;
}

.h2hc-slider__dot[aria-current="true"] {
	background: var(--wp--preset--color--slate-purple);
}

/* Quote / testimonial slider: softer chrome on beige. */
.h2hc-slider--quotes .h2hc-slider__nav {
	background: color-mix(in srgb, var(--wp--preset--color--navy) 8%, white);
	color: var(--wp--preset--color--navy);
}

.h2hc-slider--quotes .h2hc-slider__nav:hover,
.h2hc-slider--quotes .h2hc-slider__nav:focus-visible {
	background: var(--wp--preset--color--white);
	box-shadow: 0 1px 4px rgb(51 62 94 / 15%);
}

.h2hc-slider--quotes .h2hc-slider__dot {
	background: color-mix(in srgb, var(--wp--preset--color--slate-purple) 30%, white);
}

.h2hc-slider--quotes .h2hc-slider__dot[aria-current="true"] {
	background: var(--wp--preset--color--slate-purple);
}

/* Equal-height slides + vertically centred quote content (short vs long). */
.h2hc-slider__wrap > .h2hc-slider.h2hc-slider--quotes {
	align-items: stretch;
}

.h2hc-slider__wrap > .h2hc-slider.h2hc-slider--quotes > .h2hc-slide.h2hc-pullquote {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-self: stretch;
}

@media (prefers-reduced-motion: reduce) {
	.h2hc-slider__wrap > .h2hc-slider {
		scroll-behavior: auto;
	}
}

/* ---------------------------------------------------------------
   Three column callouts
   Edge-to-edge colour blocks, no gap between them. Each card is a group
   nested in a column, because core/column has no background-image support
   and core/group does — that group is what an editor picks a photo on.
   --------------------------------------------------------------- */

.h2hc-callouts {
	gap: 0 !important;
	margin-block: 0;
}

/* The column is only a shell; the group inside fills its full height. */
.h2hc-callouts > .wp-block-column {
	display: flex;
}

.h2hc-callout {
	/* Tint follows the editor background colour (see has-* rules below).
	   Fallback navy only if no palette class is set. */
	--h2hc-callout-tint: var(--wp--preset--color--navy);
	/* Left-aligned copy; a bit roomier so each full-bleed column feels filled. */
	--h2hc-callout-measure: min(30rem, 92%);

	position: relative;
	isolation: isolate;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1.25rem;
	min-height: clamp(20rem, 32vw, 26rem);
	padding: clamp(2.5rem, 4.5vw, 3.75rem) clamp(1.75rem, 3.5vw, 3rem);
	/* Keep the pattern on the right half; the ::before wash covers the left. */
	background-size: cover !important;
	background-position: right center !important;
	background-repeat: no-repeat !important;
}

/* Wash sits ABOVE the background image (z-index 0, not -1) so the editor
   colour actually tints the pattern. Pattern visibility is reduced ~30% vs
   the prior 50% end-stop (now ~65% tint on the right). */
.h2hc-callout::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: linear-gradient(
		90deg,
		var(--h2hc-callout-tint) 0%,
		var(--h2hc-callout-tint) 42%,
		color-mix(in srgb, var(--h2hc-callout-tint) 85%, transparent) 58%,
		color-mix(in srgb, var(--h2hc-callout-tint) 65%, transparent) 100%
	);
}

.h2hc-callout > * {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--h2hc-callout-measure);
}

/* Without color-mix the wash would be invisible and the text unreadable over
   a photo, so fall back to a solid tint. */
@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.h2hc-callout::before {
		background-color: var(--h2hc-callout-tint);
		background-image: none;
	}
}

/* Editor background colour drives the wash (same pattern as event-hero). */
.h2hc-callout.has-red-orange-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--red-orange);
}

.h2hc-callout.has-green-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--green);
}

.h2hc-callout.has-mint-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--mint);
}

.h2hc-callout.has-gold-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--gold);
}

.h2hc-callout.has-sand-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--sand);
}

.h2hc-callout.has-slate-purple-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--slate-purple);
}

.h2hc-callout.has-periwinkle-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--periwinkle);
}

.h2hc-callout.has-navy-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--navy);
}

.h2hc-callout.has-beige-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--beige);
}

.h2hc-callout.has-white-background-color {
	--h2hc-callout-tint: var(--wp--preset--color--white);
}

.h2hc-callout .wp-block-heading,
.h2hc-callout h2,
.h2hc-callout h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: clamp(1.75rem, 2.4vw, 2.35rem);
	font-weight: 700;
	line-height: 1.15;
}

.h2hc-callout p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.55;
}

.h2hc-callout .wp-block-buttons {
	margin-top: 1.5rem;
}

.h2hc-callout .wp-block-button__link {
	border-radius: 999px;
	padding: 0.65em 1.5em;
	font-weight: 700;
	font-size: 0.9375rem;
}

/* Modifier classes still set readable text colour against the wash.
   Tint itself now comes from has-*-background-color above. */
.h2hc-callout--coral .wp-block-heading,
.h2hc-callout--coral h2,
.h2hc-callout--coral h3,
.h2hc-callout--coral p {
	color: var(--wp--preset--color--white);
}

.h2hc-callout--green .wp-block-heading,
.h2hc-callout--green h2,
.h2hc-callout--green h3,
.h2hc-callout--green p,
.h2hc-callout--gold .wp-block-heading,
.h2hc-callout--gold h2,
.h2hc-callout--gold h3,
.h2hc-callout--gold p {
	color: var(--wp--preset--color--navy);
}

/* Dark washes need light type even without a --coral modifier. */
.h2hc-callout.has-slate-purple-background-color .wp-block-heading,
.h2hc-callout.has-slate-purple-background-color h2,
.h2hc-callout.has-slate-purple-background-color h3,
.h2hc-callout.has-slate-purple-background-color p,
.h2hc-callout.has-navy-background-color .wp-block-heading,
.h2hc-callout.has-navy-background-color h2,
.h2hc-callout.has-navy-background-color h3,
.h2hc-callout.has-navy-background-color p,
.h2hc-callout.has-periwinkle-background-color .wp-block-heading,
.h2hc-callout.has-periwinkle-background-color h2,
.h2hc-callout.has-periwinkle-background-color h3,
.h2hc-callout.has-periwinkle-background-color p,
.h2hc-callout.has-red-orange-background-color .wp-block-heading,
.h2hc-callout.has-red-orange-background-color h2,
.h2hc-callout.has-red-orange-background-color h3,
.h2hc-callout.has-red-orange-background-color p {
	color: var(--wp--preset--color--white);
}

.h2hc-callout.has-mint-background-color .wp-block-heading,
.h2hc-callout.has-mint-background-color h2,
.h2hc-callout.has-mint-background-color h3,
.h2hc-callout.has-mint-background-color p,
.h2hc-callout.has-sand-background-color .wp-block-heading,
.h2hc-callout.has-sand-background-color h2,
.h2hc-callout.has-sand-background-color h3,
.h2hc-callout.has-sand-background-color p,
.h2hc-callout.has-beige-background-color .wp-block-heading,
.h2hc-callout.has-beige-background-color h2,
.h2hc-callout.has-beige-background-color h3,
.h2hc-callout.has-beige-background-color p {
	color: var(--wp--preset--color--navy);
}

@media (max-width: 781px) {
	.h2hc-callout {
		min-height: 18rem;
		background-position: right bottom !important;
	}

	.h2hc-callout::before {
		background-image: linear-gradient(
			180deg,
			var(--h2hc-callout-tint) 0%,
			var(--h2hc-callout-tint) 48%,
			color-mix(in srgb, var(--h2hc-callout-tint) 80%, transparent) 72%,
			color-mix(in srgb, var(--h2hc-callout-tint) 65%, transparent) 100%
		);
	}

	.h2hc-callout > * {
		max-width: none;
	}
}

/* ---------------------------------------------------------------
   Generic section rhythm + scroll fade-up
   Applied to .h2hc-section (and a few peers). Sliders / heroes are
   excluded in reveal.js. Only engages after html.h2hc-motion so a
   failed script never leaves content invisible.
   --------------------------------------------------------------- */

.h2hc-section {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}

@keyframes h2hc-fade-up {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.h2hc-motion .h2hc-reveal:not(.is-inview) {
		opacity: 0;
		transform: translateY(10px);
	}

	.h2hc-motion .h2hc-reveal.is-inview {
		opacity: 1;
		transform: translateY(0);
		transition: opacity 0.55s ease, transform 0.55s ease;
	}

	/* History panel: soft fade-up each time a year is selected */
	.h2hc-history--ready .h2hc-history__slide.is-active .h2hc-history__panel.h2hc-history__panel--anim {
		animation: h2hc-fade-up 0.45s ease both;
	}
}

@media (prefers-reduced-motion: reduce) {
	.h2hc-motion .h2hc-reveal,
	.h2hc-motion .h2hc-reveal.is-inview {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/*
 * Tall listing blocks + third-party AOS: AOS sets inline opacity:0 and never
 * clears it when the section is taller than the viewport (same failure mode
 * as our scroll-reveal). Force these listings visible.
 */
.h2hc-events-list,
.h2hc-events-list[data-aos],
.h2hc-events-list.aos-init,
.h2hc-events-list.aos-animate,
.h2hc-whats-new[data-aos],
.h2hc-resources-feed[data-aos] {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

/* ---------------------------------------------------------------
   Pull quote
   --------------------------------------------------------------- */

.h2hc-pullquote {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
	text-align: center;
}

/* Ambient quotation marks — media-library SVGs as masks.
   Horizontally: centered on the ~1100px quote text edges (not mid-copy).
   Vertically: left a bit above center, right a bit below. */
.h2hc-pullquote::before,
.h2hc-pullquote::after {
	content: "";
	position: absolute;
	z-index: 0;
	width: clamp(5.5rem, 16vw, 13rem);
	height: clamp(4.25rem, 12vw, 10rem);
	background-color: var(--wp--preset--color--periwinkle);
	opacity: 0.1;
	pointer-events: none;
	user-select: none;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	/* Half of the quote content rail (matches max-width: 1100px). */
	--h2hc-quote-rail-half: min(34.375rem, calc(50% - 1.25rem));
}

.h2hc-pullquote::before {
	top: 35%;
	left: calc(50% - var(--h2hc-quote-rail-half));
	transform: translate(-50%, -50%);
	-webkit-mask-image: url("/wp-content/uploads/2026/09/quote-open.svg");
	mask-image: url("/wp-content/uploads/2026/09/quote-open.svg");
}

.h2hc-pullquote::after {
	top: 62%;
	right: calc(50% - var(--h2hc-quote-rail-half));
	left: auto;
	bottom: auto;
	transform: translate(50%, -50%);
	-webkit-mask-image: url("/wp-content/uploads/2026/09/quote-close.svg");
	mask-image: url("/wp-content/uploads/2026/09/quote-close.svg");
}

/* Slider slides pad for arrows — keep rail math tied to the text column. */
.h2hc-slide.h2hc-pullquote {
	--h2hc-quote-rail-half: min(
		34.375rem,
		calc(50% - clamp(3.5rem, 8vw, 5.5rem))
	);
}

@media (max-width: 781px) {
	.h2hc-pullquote::before,
	.h2hc-pullquote::after {
		width: clamp(4.25rem, 28vw, 7rem);
		height: clamp(3.25rem, 21vw, 5.25rem);
		opacity: 0.12;
	}

	.h2hc-pullquote::before {
		top: 38%;
		left: 0.5rem;
		transform: translateY(-50%);
	}

	.h2hc-pullquote::after {
		top: 64%;
		right: 0.5rem;
		transform: translateY(-50%);
	}
}

.h2hc-pullquote > * {
	position: relative;
	z-index: 1;
}

/* Wider than legacy 900px pattern attr — covers already-inserted blocks. */
.h2hc-pullquote.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.h2hc-slide.h2hc-pullquote.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: min(1100px, 100%);
}

.h2hc-pullquote__quote,
.h2hc-pullquote__body {
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.65rem, 2.9vw, 2.35rem);
	line-height: 1.4;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-pullquote__quote {
	margin: 0 0 1rem;
	font-weight: 500;
	font-style: italic;
}

.h2hc-pullquote__body {
	margin: 0 0 2.5rem;
	font-weight: 400;
}

.h2hc-pullquote__attr {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: center !important;
	justify-content: center !important;
	gap: 1.25rem 1.5rem;
	width: 100%;
	text-align: left;
}

/* Figure must hug the image — WP is-resized / flex stretch left empty
   space around short landscape logos (MGH) vs tall squares (StreetCred). */
.h2hc-pullquote__logo,
figure.h2hc-pullquote__logo.wp-block-image {
	display: block;
	box-sizing: border-box;
	width: fit-content !important;
	max-width: 100%;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: 0 0 auto;
	align-self: center !important;
	line-height: 0;
	overflow: visible;
}

/* Class on a wrapper around the image block. */
.h2hc-pullquote__logo .wp-block-image,
.h2hc-pullquote__logo figure {
	margin: 0 !important;
	padding: 0 !important;
	width: fit-content !important;
	height: auto !important;
	line-height: 0;
}

/* Cap with max-* only so aspect ratio stays intact. */
.h2hc-pullquote__logo img,
figure.h2hc-pullquote__logo img {
	display: block;
	width: auto !important;
	height: auto !important;
	max-width: min(180px, 100%);
	max-height: 72px;
	margin: 0 !important;
	object-fit: contain !important;
	vertical-align: top;
}

/* Centre a lone logo (outside the attr row). */
.h2hc-pullquote > .h2hc-pullquote__logo,
.h2hc-slide > .h2hc-pullquote__logo {
	margin-inline: auto !important;
}

.h2hc-pullquote__attr:has(.h2hc-pullquote__logo) .h2hc-pullquote__cite {
	flex: 0 1 auto;
	min-width: 0;
	max-width: min(28rem, 100%);
	padding-left: 1.5rem;
	border-left: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 25%, transparent);
}

.h2hc-pullquote__cite {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
}

/* Logo / cite placed directly on the slide (outside the attr group). */
.h2hc-pullquote > .h2hc-pullquote__cite,
.h2hc-slide > .h2hc-pullquote__cite {
	text-align: center;
	max-width: min(36rem, 100%);
	margin-inline: auto;
}

.h2hc-pullquote__cite strong {
	color: var(--wp--preset--color--slate-purple);
	font-weight: 700;
}

/* Narrow viewports: stack logo above cite, drop the side divider. */
@media (max-width: 600px) {
	.h2hc-pullquote__attr {
		flex-direction: column;
		flex-wrap: wrap;
		text-align: center;
	}

	.h2hc-pullquote__attr:has(.h2hc-pullquote__logo) .h2hc-pullquote__cite {
		padding-left: 0;
		border-left: 0;
		max-width: min(36rem, 100%);
		text-align: center;
	}
}

/* Slider slides reuse .h2hc-pullquote; keep side padding clear of arrows. */
.h2hc-slide.h2hc-pullquote {
	box-sizing: border-box;
	padding-left: clamp(3.5rem, 8vw, 5.5rem);
	padding-right: clamp(3.5rem, 8vw, 5.5rem);
}

/* ---------------------------------------------------------------
   Logo banner (grantees / partners) — 4 across; extras slide
   --------------------------------------------------------------- */

.h2hc-logo-banner {
	width: 100%;
}

.h2hc-logo-banner__headline {
	margin: 0 0 1.75rem;
	text-align: center;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-logo-banner__headline:empty {
	display: none;
}

.h2hc-logo-banner__empty,
.h2hc-logo-banner__placeholder {
	margin: 0;
	padding: 1.5rem;
	text-align: center;
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.95rem;
	opacity: 0.7;
}

.h2hc-logo-banner__viewport {
	width: 100%;
	overflow: hidden;
}

.h2hc-logo-banner__track {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: center;
}

.h2hc-logo-banner__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 5.5rem;
	padding: 0.75rem 1rem;
	box-sizing: border-box;
}

.h2hc-logo-banner__link,
.h2hc-logo-banner__link--static {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	text-decoration: none;
	border: 0;
}

.h2hc-logo-banner__link:hover img,
.h2hc-logo-banner__link:focus-visible img {
	opacity: 0.85;
}

.h2hc-logo-banner__item img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 4.5rem;
	object-fit: contain;
	object-position: center;
}

/* Slider mode: horizontal pages of four logos. */
.h2hc-logo-banner--slider .h2hc-logo-banner__track {
	display: flex;
	gap: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.h2hc-logo-banner--slider .h2hc-logo-banner__track::-webkit-scrollbar {
	display: none;
}

.h2hc-logo-banner--slider .h2hc-logo-banner__item {
	flex: 0 0 25%;
	max-width: 25%;
	scroll-snap-align: start;
}

.h2hc-logo-banner__wrap {
	position: relative;
}

.h2hc-logo-banner__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--navy) 8%, white);
	color: var(--wp--preset--color--navy);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}

.h2hc-logo-banner__nav:hover,
.h2hc-logo-banner__nav:focus-visible {
	background: var(--wp--preset--color--white);
	box-shadow: 0 1px 4px rgb(51 62 94 / 15%);
}

.h2hc-logo-banner__nav:disabled {
	opacity: 0.35;
	cursor: default;
}

.h2hc-logo-banner__nav--prev {
	left: -0.25rem;
}

.h2hc-logo-banner__nav--next {
	right: -0.25rem;
}

.h2hc-logo-banner__dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.25rem;
}

.h2hc-logo-banner__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--slate-purple) 28%, white);
	cursor: pointer;
}

.h2hc-logo-banner__dot[aria-current="true"] {
	background: var(--wp--preset--color--slate-purple);
}

@media (max-width: 781px) {
	.h2hc-logo-banner__track {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.h2hc-logo-banner--slider .h2hc-logo-banner__item {
		flex-basis: 50%;
		max-width: 50%;
	}

	.h2hc-logo-banner__nav--prev {
		left: 0;
	}

	.h2hc-logo-banner__nav--next {
		right: 0;
	}
}

@media (max-width: 480px) {
	.h2hc-logo-banner__track {
		grid-template-columns: 1fr;
	}

	.h2hc-logo-banner--slider .h2hc-logo-banner__item {
		flex-basis: 100%;
		max-width: 100%;
	}
}

/* ---------------------------------------------------------------
   Stats row (pattern helper — the h2hc/stats block has its own CSS)
   --------------------------------------------------------------- */

.h2hc-statsrow__cols {
	margin-top: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--60);
}

.h2hc-stat-value {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(2.5rem, 4vw, 3.25rem);
	font-weight: 500;
	line-height: 1.05;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-stat-label {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--navy);
}

/* ---------------------------------------------------------------
   Section background variants
   --------------------------------------------------------------- */

.is-style-section-beige {
	background-color: var(--wp--preset--color--beige);
}

.is-style-section-navy {
	background-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

.is-style-section-navy h1,
.is-style-section-navy h2,
.is-style-section-navy h3,
.is-style-section-navy h4,
.is-style-section-navy h5,
.is-style-section-navy h6 {
	color: var(--wp--preset--color--white);
}

.is-style-section-navy a {
	color: var(--wp--preset--color--sand);
}

/* ---------------------------------------------------------------
   Button outline variants
   --------------------------------------------------------------- */

.is-style-outline-navy .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--navy);
	border: 2px solid var(--wp--preset--color--navy);
}

.is-style-outline-navy .wp-block-button__link:hover {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

.is-style-outline-white .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--white);
	border: 2px solid var(--wp--preset--color--white);
}

.is-style-outline-white .wp-block-button__link:hover {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--red-orange);
}

/* ---------------------------------------------------------------
   Footer
   --------------------------------------------------------------- */

.site-footer {
	margin-top: 0;
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--40);
}

.site-footer a {
	color: var(--wp--preset--color--white);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--wp--preset--color--sand);
}

.site-footer__cols {
	gap: var(--wp--preset--spacing--50);
}

/* Plain stacked link lists, as in the mockup footer. */
.site-footer__links {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.site-footer__links li {
	margin-bottom: 0.6rem;
	font-size: 0.9375rem;
	line-height: 1.4;
}

.site-footer__social {
	margin-top: var(--wp--preset--spacing--40);
}

.site-footer__rule {
	margin-top: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--40);
	opacity: 0.4;
}

.site-footer__legal {
	gap: var(--wp--preset--spacing--30);
}

.site-footer__legal p {
	margin: 0;
}

/* Optional footer Navigation block (class `footer-nav`) as a 2-col wrap. */
.site-footer .footer-nav .wp-block-navigation__container,
footer .footer-nav ul.wp-block-navigation__container {
	flex-wrap: wrap;
	height: 220px;
	width: 100%;
}

.site-footer .footer-nav .wp-block-navigation-item,
footer .footer-nav ul.wp-block-navigation__container li.wp-block-navigation-item {
	width: 50%;
	box-sizing: border-box;
}

/* ---------------------------------------------------------------
   Impact overlay (full-bleed photo + colour wash)
   Cover block: change image / overlay colour / dim in the sidebar.
   Inner content max 900px (~⅔) and left-aligned to the 1300px wide column.
   --------------------------------------------------------------- */

.h2hc-impact-overlay.wp-block-cover {
	padding-left: 0;
	padding-right: 0;
}

.h2hc-impact-overlay .wp-block-cover__inner-container {
	width: 100%;
}

.h2hc-impact-overlay__content {
	width: min(66.666%, 900px);
	max-width: 900px;
	margin-left: max(
		var(--wp--preset--spacing--40),
		calc((100vw - var(--wp--style--global--wide-size, 1300px)) / 2)
	);
	margin-right: auto;
}

.h2hc-impact-overlay__content > .wp-block-heading {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--white);
}

.h2hc-impact-overlay__content > p {
	margin: 0 0 2.25rem;
	max-width: 40rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: clamp(1rem, 1.5vw, 1.125rem);
	line-height: 1.65;
	color: var(--wp--preset--color--white);
}

.h2hc-impact-overlay__stats {
	margin: 0 !important;
	gap: 1.5rem 2rem !important;
}

.h2hc-impact-overlay__stat-value {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	font-weight: 700;
	line-height: 1.05;
	color: var(--wp--preset--color--white);
}

.h2hc-impact-overlay__stat-label {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--wp--preset--color--white);
}

@media (max-width: 781px) {
	.h2hc-impact-overlay__content {
		width: 100%;
		max-width: none;
		padding-right: var(--wp--preset--spacing--40);
	}

	.h2hc-impact-overlay__stats {
		flex-direction: column;
	}
}

/* ---------------------------------------------------------------
   Event hero (interior / event pages)
   Full-bleed photo on the right, fading into solid brand colour on
   the left. Gold meta line + large white H2. Set the photo via the
   group’s background image control (Styles → Background).
   --------------------------------------------------------------- */

.h2hc-event-hero {
	--h2hc-event-hero-tint: var(--wp--preset--color--slate-purple);
	position: relative;
	overflow: hidden;
	min-height: min(420px, 70vh);
	display: flex;
	align-items: center;
	padding-block: clamp(3rem, 8vw, 5.5rem);
	/* Full-bleed photo/wash; copy lines up with the 1300px wide column. */
	padding-inline: 0;
	background-color: var(--h2hc-event-hero-tint);
	background-size: cover;
	/* Fallback only — editor focal point sets inline background-position. */
	background-position: right center;
	background-repeat: no-repeat;
	color: var(--wp--preset--color--white);
}

/* Wash: solid brand on the left → clear on the right so the photo reads. */
.h2hc-event-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		to right,
		var(--h2hc-event-hero-tint) 0%,
		var(--h2hc-event-hero-tint) 38%,
		color-mix(in srgb, var(--h2hc-event-hero-tint) 72%, transparent) 58%,
		color-mix(in srgb, var(--h2hc-event-hero-tint) 28%, transparent) 78%,
		transparent 100%
	);
}

@supports not (background: color-mix(in srgb, red 50%, transparent)) {
	.h2hc-event-hero::before {
		background: linear-gradient(
			to right,
			var(--h2hc-event-hero-tint) 0%,
			var(--h2hc-event-hero-tint) 45%,
			transparent 100%
		);
	}
}

.h2hc-event-hero.has-periwinkle-background-color {
	--h2hc-event-hero-tint: var(--wp--preset--color--periwinkle);
}

.h2hc-event-hero.has-navy-background-color {
	--h2hc-event-hero-tint: var(--wp--preset--color--navy);
}

.h2hc-event-hero__inner {
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	width: min(100%, 36rem);
	max-width: 52%;
	margin-left: max(
		var(--wp--preset--spacing--40),
		calc((100vw - var(--wp--style--global--wide-size, 1300px)) / 2)
	);
	margin-right: auto;
}

.h2hc-event-hero__meta {
	margin: 0 0 0.85rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: clamp(0.95rem, 1.6vw, 1.125rem);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--gold);
}

.h2hc-event-hero h1,
.h2hc-event-hero h2,
.h2hc-event-hero .h2hc-event-hero__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(2rem, 4.2vw, 3.25rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--white);
}

@media (max-width: 781px) {
	.h2hc-event-hero {
		min-height: 0;
		align-items: flex-end;
		padding-top: clamp(10rem, 48vw, 16rem);
		/* Fallback; an editor-set inline background-position still wins. */
		background-position: center top;
	}

	.h2hc-event-hero::before {
		background: linear-gradient(
			to top,
			var(--h2hc-event-hero-tint) 0%,
			var(--h2hc-event-hero-tint) 42%,
			color-mix(in srgb, var(--h2hc-event-hero-tint) 55%, transparent) 72%,
			transparent 100%
		);
	}

	.h2hc-event-hero__inner {
		max-width: 100%;
		width: calc(100% - (2 * var(--wp--preset--spacing--40)));
		margin-left: var(--wp--preset--spacing--40);
		margin-right: var(--wp--preset--spacing--40);
	}
}

/* ---------------------------------------------------------------
   Page hero (interior pages)
   Brand-colour banner with optional decorative corner image.
   Distinct from .h2hc-hero (homepage overlay panel).
   --------------------------------------------------------------- */

.h2hc-page-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(2.5rem, 6vw, 5.5rem);
	color: var(--wp--preset--color--white);
}

.h2hc-page-hero.has-slate-purple-background-color,
.h2hc-page-hero.has-periwinkle-background-color {
	color: var(--wp--preset--color--white);
}

.h2hc-page-hero__inner {
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	width: min(100%, var(--h2hc-fullbleed-max));
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--40);
}

/* Constrained children inside the page hero use the 1800px rail. */
.h2hc-page-hero__inner.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: var(--h2hc-fullbleed-max);
}

.h2hc-page-hero .h2hc-eyebrow {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--sand);
}

.h2hc-page-hero h1 {
	margin: 0;
	max-width: 32rem;
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	line-height: 1.1;
	color: inherit;
}

.h2hc-page-hero--headline-two-thirds h1 {
	max-width: min(66%, 48rem);
}

.h2hc-page-hero--headline-full h1 {
	max-width: none;
}

.h2hc-page-hero__subcopy {
	margin: 1.25rem 0 0;
	max-width: 42rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	line-height: 1.35;
	color: inherit;
}

.h2hc-page-hero--subcopy-wider .h2hc-page-hero__subcopy {
	max-width: 46rem;
}

/* Decorative illustration — bottom-right of the banner, not a full-bleed photo. */
.h2hc-page-hero__media {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 1;
	margin: 0;
	width: min(42vw, 350px);
	pointer-events: none;
}

.h2hc-page-hero--large-image .h2hc-page-hero__media {
	width: min(48vw, 500px);
}

.h2hc-page-hero__media img {
	display: block;
	width: 100%;
	height: auto;
}

.h2hc-page-hero--has-image {
	padding-bottom: clamp(12rem, 28vw, 18rem);
}

.h2hc-page-hero--has-featured {
	padding-bottom: clamp(4rem, 8vw, 6.5rem);
}

.h2hc-page-hero--has-image.h2hc-page-hero--has-featured {
	padding-bottom: clamp(12rem, 28vw, 18rem);
}

@media (min-width: 782px) {
	.h2hc-page-hero--has-image {
		padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
	}

	.h2hc-page-hero--has-image .h2hc-page-hero__inner {
		max-width: calc(100% - min(42vw, 380px));
	}

	.h2hc-page-hero--large-image .h2hc-page-hero__inner {
		max-width: calc(100% - min(48vw, 520px));
	}
}

@media (max-width: 781px) {
	.h2hc-page-hero__media {
		width: min(70vw, 280px);
	}
}

/* Featured panel that hangs under a page hero (negative pull). */
.h2hc-featured {
	position: relative;
	z-index: 2;
	margin-block-start: calc(-1 * clamp(2.5rem, 5vw, 4.5rem));
	margin-block-end: var(--wp--preset--spacing--60);
	padding: clamp(1.5rem, 3vw, 2.5rem);
}

.h2hc-featured .h2hc-eyebrow {
	margin: 0 0 0.5rem;
}

/* ---------------------------------------------------------------
   Headline / copy side by side
   --------------------------------------------------------------- */

.h2hc-headline-copy {
	gap: clamp(1.5rem, 4vw, 3rem) !important;
}

.h2hc-headline-copy h2 {
	margin: 0;
	color: var(--wp--preset--color--slate-purple);
}

/* ---------------------------------------------------------------
   Beige background columns
   --------------------------------------------------------------- */

.h2hc-bg-columns {
	gap: 1.25rem !important;
}

.h2hc-bg-columns__card {
	padding: clamp(1.5rem, 3vw, 2.25rem);
}

.h2hc-bg-columns__card h2,
.h2hc-bg-columns__card h3 {
	margin-top: 0;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-bg-columns__card .wp-block-buttons {
	margin-top: 1.25rem;
}

/* Bottom-align column CTAs while columns are side-by-side.
   Equal-height flex columns + margin-top:auto on the last Buttons
   block (What We Do, Beige Columns, etc.). Stacked mobile is unchanged. */
@media (min-width: 782px) {
	.wp-block-columns > .wp-block-column:has(> .wp-block-buttons:last-child) {
		display: flex;
		flex-direction: column;
	}

	.wp-block-columns > .wp-block-column > .wp-block-buttons:last-child {
		margin-top: auto;
		padding-top: 1.25rem;
	}
}

/* ---------------------------------------------------------------
   Directory of Innovation (FacetWP)
   Ported from live Customizer CSS, adapted for FSE columns
   (.h2hc-bg-columns) + listing builder classes (fwpl-*).
   --------------------------------------------------------------- */

/* Filters + map row: hug content heights so the filter pane
   doesn't stretch taller than the map (FacetWP map is fixed-height). */
.h2hc-bg-columns:has(.facetwp-type-map),
body.page-id-2056 .h2hc-bg-columns:has(.facetwp-facet) {
	align-items: flex-start !important;
	gap: 0 !important;
	margin-block: 0;
}

.h2hc-bg-columns:has(.facetwp-type-map) > .wp-block-column:not(:has(.facetwp-type-map)) {
	max-width: 375px;
	padding: 1rem 1.25rem !important;
	align-self: flex-start;
}

.h2hc-bg-columns:has(.facetwp-type-map) > .wp-block-column:has(.facetwp-type-map) {
	background-color: transparent !important;
	padding: 0 !important;
	flex-grow: 2;
	align-self: flex-start;
}

.h2hc-bg-columns:has(.facetwp-type-map) .wp-block-heading {
	margin: 0 0 0.65rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--wp--preset--color--slate-purple);
}

/* FacetWP auto-wraps facets with labels; hide extras on this layout. */
body.page-id-2056 .facet-label,
.h2hc-bg-columns:has(.facetwp-facet) .facet-label {
	display: none;
}

.facetwp-map-filtering {
	display: none !important;
}

div[data-name="innovative_works_search"],
div[data-name="innovative_works_proximity"],
div[data-name="innovative_works"] {
	margin-bottom: 0.5rem;
}

div[data-name="innovative_works"] {
	max-width: 1800px;
}

.facetwp-input-wrap {
	width: 100%;
}

.facetwp-facet input.facetwp-search,
.facetwp-facet input.facetwp-location {
	box-sizing: border-box;
	width: 100%;
	padding: 0.55rem 1.15rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 18%, white);
	border-radius: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--white);
}

.facetwp-facet .facetwp-dropdown {
	box-sizing: border-box;
	width: 100%;
	height: 2.5rem;
	padding: 0 0.65rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 18%, white);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--white);
}

/* Proximity distance slider (match live orange thumb). */
.facetwp-type-proximity input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 5px;
	margin-top: 0.75rem;
	background: #ccc;
	outline: none;
	cursor: pointer;
}

.facetwp-type-proximity input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 22px;
	height: 22px;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--red-orange);
}

.facetwp-type-proximity input[type="range"]::-moz-range-thumb {
	width: 22px;
	height: 22px;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--red-orange);
}

.facetwp-type-map,
.facetwp-type-map .facetwp-map {
	width: 100%;
	min-height: 420px;
}

@media (min-width: 782px) {
	.facetwp-type-map,
	.facetwp-type-map .facetwp-map {
		min-height: 480px;
	}
}

@media (max-width: 781px) {
	.h2hc-bg-columns:has(.facetwp-type-map) > .wp-block-column:not(:has(.facetwp-type-map)),
	.h2hc-bg-columns:has(.facetwp-type-map) > .wp-block-column:has(.facetwp-type-map) {
		max-width: none;
		flex-basis: 100% !important;
	}

	.h2hc-bg-columns:has(.facetwp-type-map) > .wp-block-column:has(.facetwp-type-map) {
		background-color: var(--wp--preset--color--beige) !important;
		padding: 0 !important;
	}

	.facetwp-type-map,
	.facetwp-type-map .facetwp-map {
		min-height: 320px;
	}
}

/* Listing grid — three equal cards. */
.fwpl-layout.facet-layout {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
	margin-top: 2rem;
}

div[data-name="innovative_works"] .fwpl-result,
.facetwp-template .fwpl-result {
	min-width: 0;
}

div[data-name="innovative_works"] .fwpl-row.facet-row,
.fwpl-row.facet-row {
	display: block;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
}

.fwpl-col.facet-card {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	min-height: 200px;
	padding: 1.25rem;
	overflow-wrap: break-word;
	background: var(--wp--preset--color--white);
	box-shadow: 0 1px 6px rgb(0 0 0 / 8%);
}

.fwpl-item.facet-row-title {
	margin: 0.25rem 0 0.5rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.35rem, 1.8vw, 1.7rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--wp--preset--color--slate-purple);
}

.fwpl-item.facet-row-cat {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--periwinkle);
}

.fwpl-item.facet-row-desc {
	margin: 0.5rem 0;
}

.facet-row-address a {
	display: block;
	margin: 0.5rem 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-weight: 700;
	color: var(--wp--preset--color--navy) !important;
	text-decoration: none !important;
	border: 0 !important;
}

.facet-link a {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--wp--preset--color--periwinkle);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

.facet-link a:hover,
.facet-link a:focus-visible {
	color: var(--wp--preset--color--slate-purple);
	border-bottom-color: var(--wp--preset--color--red-orange);
}

/* Logos: contain (not crop) inside a consistent frame. */
.iw-logo {
	display: block !important;
	text-align: center;
	text-decoration: none !important;
	border: 0 !important;
	cursor: pointer;
}

.iw-logo img,
.facet-card .wp-post-image,
.fwpl-item img.wp-post-image,
.fwpl-item img.attachment-medium_large {
	display: block;
	width: 80%;
	max-width: 250px;
	max-height: 150px;
	aspect-ratio: 3 / 1;
	object-fit: contain;
	margin: 0.75rem auto 1.25rem;
}

/* Truncated bio + Read More (listing builder reuses team-member classes). */
div[data-name="innovative_works"] .team-members__member--bio,
.facet-card .team-members__member--bio {
	margin: 0.35rem 0 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9rem;
	line-height: 1.35;
	color: var(--wp--preset--color--navy);
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}

div[data-name="innovative_works"] .team-members__member--bio.show,
.facet-card .team-members__member--bio.show {
	-webkit-line-clamp: 20;
}

.facet-card .team-members__member--readmore a,
div[data-name="innovative_works"] .team-members__member--readmore a {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.8em;
	font-weight: 700;
	color: var(--wp--preset--color--red-orange);
	text-decoration: none;
	border: 0;
}

.facet-card .team-members__member--readmore a::after,
div[data-name="innovative_works"] .team-members__member--readmore a::after {
	content: "Read More ↓";
	display: inline-block;
}

.facet-card .team-members__member--readmore a.show::after,
div[data-name="innovative_works"] .team-members__member--readmore a.show::after {
	content: "Hide ↑";
}

/* Prize winner bar — bleed once to match .facet-card padding (not both wrapper + .prize-bar). */
.fwpl-item.prize-year:not(.is-empty) {
	box-sizing: border-box;
	margin: -1.25rem -1.25rem 0.85rem;
	padding: 0;
	background: #233471;
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
	overflow: visible;
}

.fwpl-item.prize-year:not(.is-empty) .prize-bar,
.prize-bar {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin: 0 !important;
	padding: 0.55rem 0.75rem 0.45rem;
	background: transparent;
	color: inherit;
}

.prize-bar img {
	display: block;
	width: 35px;
	height: auto;
	margin: 0.2rem 0 0; /* nudge down so the circle isn’t clipped */
	flex-shrink: 0;
}

a.map-jump-link {
	font-weight: 700;
	line-height: 1.5rem;
	color: var(--wp--preset--color--red-orange);
	text-decoration: none;
}

a.map-jump-link::after {
	content: " ↓";
	display: inline-block;
	padding-left: 5px;
	font-weight: 700;
}

@media (max-width: 1100px) {
	.fwpl-layout.facet-layout {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.fwpl-layout.facet-layout {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------------
   Publications / News / Resources FacetWP listings
   Listing builder rows (.facet-post-title) + filter bar.
   --------------------------------------------------------------- */

.h2hc-facet-filter-bar,
.facet-filter-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 1rem 1.5rem;
	box-sizing: border-box;
	width: 100%;
	max-width: 1300px;
	margin: 0 auto 2rem;
	padding: 1.25rem 1.5rem;
	background: var(--wp--preset--color--beige);
}

.h2hc-facet-filter-bar .facet-wrap,
.facet-filter-bar .facet-wrap,
.h2hc-facet-filter-bar > .wp-block-shortcode,
.facet-filter-bar > .wp-block-shortcode {
	flex: 1 1 14rem;
	min-width: 0;
	margin: 0;
}

.h2hc-facet-filter-bar .facet-label,
.facet-filter-bar .facet-label {
	display: block;
	margin: 0 0 0.4rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--wp--preset--color--slate-purple);
}

/* When MU plugin hid labels sitewide, restore them inside the filter bar. */
body.page-id-2056 .h2hc-facet-filter-bar .facet-label,
body.page-id-2056 .facet-filter-bar .facet-label {
	display: block;
}

.h2hc-facet-filter-bar .facetwp-facet,
.facet-filter-bar .facetwp-facet {
	margin: 0;
}

.h2hc-facet-filter-bar .facetwp-input-wrap,
.facet-filter-bar .facetwp-input-wrap,
.h2hc-facet-filter-bar .facetwp-dropdown,
.facet-filter-bar .facetwp-dropdown {
	width: 100%;
}

.h2hc-facet-filter-bar input.facetwp-search,
.facet-filter-bar input.facetwp-search,
.h2hc-facet-filter-bar .facetwp-dropdown,
.facet-filter-bar .facetwp-dropdown {
	box-sizing: border-box;
	width: 100%;
	min-height: 2.75rem;
	padding: 0.55rem 1rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 18%, white);
	border-radius: 0;
	background: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
}

/* Publications / News / Resources listings → What’s New–style card grid. */
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) {
	max-width: 1300px;
	margin: 0 auto;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-layout,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-layout.el-hkhimk,
.facetwp-template:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-layout {
	display: grid !important;
	grid-template-columns: 1fr !important;
	grid-gap: 1.5rem !important;
	gap: 1.5rem !important;
	align-items: stretch;
}

@media (min-width: 782px) {
	:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-layout,
	:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-layout.el-hkhimk,
	.facetwp-template:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-layout {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		grid-gap: 1.75rem !important;
		gap: 1.75rem !important;
	}
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-result {
	min-width: 0;
	min-height: 0;
	height: auto;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-row.el-8cjrpw {
	display: flex;
	flex-direction: column;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	gap: 0;
	border: 0;
	background: var(--wp--preset--color--beige);
	overflow: hidden;
}

/* Image on top (DOM has text first, media second). */
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-row.el-8cjrpw > .facet-col-right {
	order: -1;
	flex: 0 0 auto;
	max-width: none;
	width: 100%;
	margin: 0;
	text-align: left;
	overflow: hidden;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-col-right a {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	text-decoration: none;
	border: 0;
}

/* Same 16:10 logo frame as What’s New — contain + padding, not edge-to-edge crop. */
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-col-right .fwpl-item,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-col-right .img-default {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	aspect-ratio: 16 / 10;
	height: auto;
	max-height: none;
	padding: 1.25rem 1.5rem;
	overflow: hidden;
	background: var(--wp--preset--color--beige);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-col-right img {
	position: static;
	display: block;
	box-sizing: border-box;
	width: auto;
	height: auto;
	max-width: 75%;
	max-height: 75%;
	padding: 0;
	margin: 0;
	object-fit: contain;
	object-position: center;
}

/*
 * Publications: one shared media frame for every card so the grid stays even.
 * Landscape banners and portrait covers both fit inside with object-fit:contain.
 */
[data-name="publications_posts"] .facet-col-right > .fwpl-item,
[data-name="publications_posts"] .facet-col-right > .img-default {
	aspect-ratio: 1 / 1;
	padding: 0;
}

/* Flatten nested FacetWP wrappers so they don’t create a second box. */
[data-name="publications_posts"] .facet-col-right a,
[data-name="publications_posts"] .facet-col-right a .img-default,
[data-name="publications_posts"] .facet-col-right a .fwpl-item {
	position: absolute !important;
	inset: 0.65rem !important;
	display: block !important;
	box-sizing: border-box;
	aspect-ratio: auto !important;
	width: auto !important;
	height: auto !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	background: transparent !important;
	border: 0 !important;
}

[data-name="publications_posts"] .facet-col-right img {
	position: absolute !important;
	inset: 0 !important;
	box-sizing: border-box;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	object-position: center !important;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-row.el-8cjrpw > .facet-row {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-width: 0;
	padding: 1.25rem 1.25rem 1.5rem;
}

/* Title → badge/meta → excerpt → CTA */
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-post-title {
	order: 1;
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--wp--preset--color--navy);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-post-title a {
	color: inherit;
	text-decoration: none;
	border: 0;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-post-title a:hover,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-post-title a:focus-visible {
	color: var(--wp--preset--color--slate-purple);
	border: 0;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-row.el-ib5h6t {
	order: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem 0.75rem;
	margin: 0 0 0.75rem;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-post-meta {
	margin: 0;
}

/* Hide dates on listing cards. */
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-post-meta:has(.facet-date),
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-date {
	display: none !important;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-cat a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term.fwpl-tax-category a {
	display: inline-block;
	padding: 0.2rem 0.65rem;
	border: 0 !important;
	border-radius: 0.25rem;
	background: var(--wp--preset--color--slate-purple);
	color: var(--wp--preset--color--white) !important;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.4;
	text-decoration: none;
	text-transform: none;
}

/* Category colors (aligned with What’s New badge palette). */
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-h2hc-news a {
	background: var(--wp--preset--color--red-orange);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-h2hc-report a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-uncategorized a {
	background: var(--wp--preset--color--slate-purple);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-newsletter a {
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--navy) !important;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-resource a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-resources-categories a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-health-equity-resources-categories a {
	background: var(--wp--preset--color--periwinkle);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-partner-news-2 a {
	background: var(--wp--preset--color--green);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-member-spotlight a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-prize-winner-spotlight a {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy) !important;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-policy a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-federal a {
	background: var(--wp--preset--color--navy);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-food-is-as-medicine a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-food-systems a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-nutrition a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-food-insecurity a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-food-security a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-food-and-nutrition-security a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-social-drivers-of-health a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-health a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-environment a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term-youth a {
	background: var(--wp--preset--color--green);
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-cat a:hover,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .fwpl-term.fwpl-tax-category a:hover {
	filter: brightness(1.08);
	border: 0 !important;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-row > .fwpl-item.el-zsvds {
	order: 3;
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--wp--preset--color--navy);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
	max-height: 6.2em; /* 4 lines × 1.5 — stops runaway HTML/images in excerpts */
}

/* Never let media leak into the excerpt slot. */
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-row > .fwpl-item.el-zsvds img,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-row > .fwpl-item.el-zsvds iframe,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-row > .fwpl-item.el-zsvds video,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-row > .fwpl-item.el-zsvds svg {
	display: none !important;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button {
	order: 4;
	margin: auto 0 0;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button a,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button .fwpl-btn,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button a.fwpl-btn {
	display: inline-block;
	padding: 0.55rem 1.15rem !important;
	border: 2px solid var(--wp--preset--color--navy) !important;
	border-radius: 999px !important;
	background: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--navy) !important;
	font-family: var(--wp--preset--font-family--source-sans-3) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
}

:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button a:hover,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button a:focus-visible,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button .fwpl-btn:hover,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button .fwpl-btn:focus-visible,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button a.fwpl-btn:hover,
:is([data-name="publications_posts"], [data-name="blog_posts"], [data-name="resources_posts"]) .facet-button a.fwpl-btn:focus-visible {
	background: var(--wp--preset--color--beige) !important;
	border-color: var(--wp--preset--color--slate-purple) !important;
	color: var(--wp--preset--color--slate-purple) !important;
}

/* Pagination under the listing — pill chrome like card CTAs. */
.facetwp-type-pager,
[data-name="pagination"] {
	max-width: 1300px;
	margin: 1.75rem auto 0;
	text-align: center;
}

.facetwp-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
}

.facetwp-pager .facetwp-page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 2.5rem;
	height: 2.5rem;
	margin: 0;
	padding: 0 0.85rem;
	border: 2px solid var(--wp--preset--color--navy);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.facetwp-pager .facetwp-page:hover,
.facetwp-pager .facetwp-page:focus-visible {
	background: var(--wp--preset--color--beige);
	border-color: var(--wp--preset--color--slate-purple);
	color: var(--wp--preset--color--slate-purple);
}

.facetwp-pager .facetwp-page.active {
	background: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	cursor: default;
}

.facetwp-pager .facetwp-page.active:hover,
.facetwp-pager .facetwp-page.active:focus-visible {
	background: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

/* ---------------------------------------------------------------
   Two-up CTAs
   --------------------------------------------------------------- */

.h2hc-two-up-ctas {
	gap: 1rem 2rem;
}

.h2hc-two-up-ctas .wp-block-button__link {
	border-radius: 999px;
	padding: 0.65em 1.75em;
	font-weight: 700;
}

/* ---------------------------------------------------------------
   Forms / contact / subscribe
   --------------------------------------------------------------- */

.h2hc-form--medium {
	max-width: 75%;
}

.h2hc-form--center {
	margin-inline: auto;
	text-align: center;
}

.h2hc-form--center .wp-block-heading {
	text-align: center;
}

.h2hc-contact__title {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--h4);
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-contact__info > * + .h2hc-contact__title {
	margin-top: 1.75rem;
}

/* Contact Form 7 — field chrome matches mockup; submit uses theme gold buttons */
.wpcf7 {
	--h2hc-cf7-field-bg: color-mix(in srgb, var(--wp--preset--color--navy) 6%, white);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	font-family: var(--wp--preset--font-family--source-sans-3);
	color: var(--wp--preset--color--navy);
}

.wpcf7 *,
.wpcf7 *::before,
.wpcf7 *::after {
	box-sizing: border-box;
}

@supports not (background: color-mix(in srgb, red 50%, white)) {
	.wpcf7 {
		--h2hc-cf7-field-bg: #f3f4f7;
	}
}

.wpcf7 form {
	width: 100%;
	max-width: 100%;
}

.wpcf7 form p {
	margin: 0 0 0.85rem;
}

.wpcf7 label {
	display: block;
	margin: 0;
	font-weight: inherit;
}

.wpcf7 .cf7-50,
.wpcf7 .cf7-100 {
	margin: 0 0 0.85rem;
	width: 100%;
	max-width: 100%;
}

.wpcf7 .cf7-50 p,
.wpcf7 .cf7-100 p {
	margin: 0;
}

.wpcf7 .cf7-50 {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
}

.wpcf7 .cf7-50 > div {
	flex: 1 1 calc(50% - 0.45rem);
	min-width: min(100%, 10rem);
	max-width: 100%;
}

.wpcf7 .cf7-100 {
	width: 100%;
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	max-width: 100%;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="search"],
.wpcf7 select,
.wpcf7 textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0.95rem 1.15rem;
	border: 0;
	border-radius: 0;
	background: var(--h2hc-cf7-field-bg);
	box-shadow: none;
	appearance: none;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--wp--preset--color--navy);
}

.wpcf7 textarea {
	min-height: 11rem;
	resize: vertical;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: color-mix(in srgb, var(--wp--preset--color--navy) 55%, white);
	opacity: 1;
}

@supports not (color: color-mix(in srgb, red 50%, white)) {
	.wpcf7 input::placeholder,
	.wpcf7 textarea::placeholder {
		color: #6b7280;
	}
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	outline: 2px solid var(--wp--preset--color--periwinkle);
	outline-offset: 2px;
}

.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
	display: inline-block;
	width: auto;
	margin: 0.35rem 0 0;
	padding: 0.75rem 1.75rem;
	border: 0;
	border-radius: 9999px;
	background: var(--wp--preset--color--gold);
	box-shadow: none;
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: var(--wp--preset--font-size--body, 1rem);
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 .wpcf7-submit:hover,
.wpcf7 .wpcf7-submit:focus-visible {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--navy);
	outline: none;
}

.wpcf7 .wpcf7-not-valid-tip {
	margin-top: 0.35rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--red-orange);
}

.wpcf7 .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: 0.85rem 1rem;
	border: 0;
	background: var(--h2hc-cf7-field-bg);
	font-size: 0.95rem;
	color: var(--wp--preset--color--navy);
}

.wpcf7 form.sent .wpcf7-response-output {
	background: color-mix(in srgb, var(--wp--preset--color--green) 16%, white);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	background: color-mix(in srgb, var(--wp--preset--color--red-orange) 14%, white);
}

@media (max-width: 600px) {
	.wpcf7 .cf7-50 {
		flex-direction: column;
	}

	.wpcf7 .cf7-50 > div {
		flex: 1 1 100%;
		flex-basis: 100%;
		min-width: 0;
		width: 100%;
		max-width: 100%;
	}
}

/* Contact page form column — never force a desktop-only width on phone. */
@media (max-width: 781px) {
	.h2hc-form--medium {
		max-width: 100%;
	}
}

/* ---------------------------------------------------------------
   Gravity Forms — same field chrome as Contact (CF7) styles above.
   Applies to every .gform_wrapper site-wide.
   --------------------------------------------------------------- */

.gform_wrapper,
.gform_wrapper.gravity-theme,
.gform_wrapper.gform-theme--no-framework {
	--h2hc-gf-field-bg: color-mix(in srgb, var(--wp--preset--color--navy) 6%, white);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	font-family: var(--wp--preset--font-family--source-sans-3);
	color: var(--wp--preset--color--navy);
}

@supports not (background: color-mix(in srgb, red 50%, white)) {
	.gform_wrapper,
	.gform_wrapper.gravity-theme,
	.gform_wrapper.gform-theme--no-framework {
		--h2hc-gf-field-bg: #f3f4f7;
	}
}

.gform_wrapper *,
.gform_wrapper *::before,
.gform_wrapper *::after {
	box-sizing: border-box;
}

.gform_wrapper .gform_heading,
.gform_wrapper .gform_required_legend {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	color: var(--wp--preset--color--navy);
}

.gform_wrapper .gform_required_legend {
	font-size: 0.875rem;
	opacity: 0.85;
}

.gform_wrapper .gfield {
	margin: 0 0 1rem;
	padding: 0;
	background: transparent;
	border: 0;
}

.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label,
.gform_wrapper legend.gfield_label {
	display: block;
	margin: 0 0 0.4rem;
	padding: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--wp--preset--color--navy);
}

.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_asterisk {
	color: var(--wp--preset--color--red-orange);
	font-weight: 700;
}

.gform_wrapper .gfield_description,
.gform_wrapper .instruction {
	margin: 0.35rem 0 0;
	font-size: 0.875rem;
	line-height: 1.4;
	color: color-mix(in srgb, var(--wp--preset--color--navy) 70%, white);
}

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="date"],
.gform_wrapper input[type="password"],
.gform_wrapper input[type="search"],
.gform_wrapper select,
.gform_wrapper textarea,
.gform_wrapper .ginput_container input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]),
.gform_wrapper .ginput_container select,
.gform_wrapper .ginput_container textarea {
	display: block;
	width: 100% !important;
	max-width: 100%;
	margin: 0;
	padding: 0.95rem 1.15rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--h2hc-gf-field-bg) !important;
	box-shadow: none !important;
	appearance: none;
	font-family: var(--wp--preset--font-family--source-sans-3) !important;
	font-size: 1rem !important;
	font-weight: 400;
	line-height: 1.45 !important;
	color: var(--wp--preset--color--navy) !important;
}

.gform_wrapper textarea,
.gform_wrapper .ginput_container textarea {
	min-height: 8rem;
	resize: vertical;
}

.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder {
	color: color-mix(in srgb, var(--wp--preset--color--navy) 55%, white);
	opacity: 1;
}

.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus,
.gform_wrapper .ginput_container input:focus,
.gform_wrapper .ginput_container select:focus,
.gform_wrapper .ginput_container textarea:focus {
	outline: 2px solid var(--wp--preset--color--periwinkle) !important;
	outline-offset: 2px;
	border: 0 !important;
	box-shadow: none !important;
}

/* Address / complex fields */
.gform_wrapper .ginput_complex {
	display: grid;
	gap: 0.75rem;
}

.gform_wrapper .ginput_complex label {
	display: block;
	margin: 0.35rem 0 0.25rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: color-mix(in srgb, var(--wp--preset--color--navy) 75%, white);
}

.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label,
.gform_wrapper .gchoice label {
	display: inline;
	font-weight: 400;
	font-size: 0.95rem;
	color: var(--wp--preset--color--navy);
	cursor: pointer;
}

/* Restore native radios/checkboxes — broad field chrome was hiding them. */
.gform_wrapper .gfield_checkbox input[type="checkbox"],
.gform_wrapper .gfield_radio input[type="radio"],
.gform_wrapper .gchoice input[type="checkbox"],
.gform_wrapper .gchoice input[type="radio"],
.gform_wrapper input[type="checkbox"],
.gform_wrapper input[type="radio"] {
	display: inline-block !important;
	width: 1.125rem !important;
	height: 1.125rem !important;
	min-width: 1.125rem !important;
	max-width: 1.125rem !important;
	margin: 0.15rem 0.55rem 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	appearance: auto !important;
	-webkit-appearance: auto !important;
	accent-color: var(--wp--preset--color--slate-purple);
	vertical-align: middle;
	cursor: pointer;
}

.gform_wrapper .gfield_radio .gchoice,
.gform_wrapper .gfield_checkbox .gchoice,
.gform_wrapper .ginput_container_radio .gchoice,
.gform_wrapper .ginput_container_checkbox .gchoice {
	display: flex;
	align-items: flex-start;
	gap: 0.15rem;
	margin: 0 0 0.65rem;
}

/* Donation / product total — read-only look (beige, not an editable field).
   High specificity to beat Gravity Forms Orbital/theme rules that load later. */
html body .gform_wrapper .gfield_total input,
html body .gform_wrapper .gfield--type-total input,
html body .gform_wrapper .gfield.gfield_price.gfield_total input,
html body .gform_wrapper .ginput_container_total input,
html body .gform_wrapper input.ginput_total,
html body .gform_wrapper.gravity-theme .gfield_total input[type="text"],
html body .gform_wrapper.gravity-theme .gfield--type-total input[type="text"],
html body .gform_wrapper.gravity-theme input.ginput_total {
	background: #fdf7ec !important;
	background-color: #fdf7ec !important;
	background-image: none !important;
	font-weight: 700 !important;
	cursor: default !important;
	pointer-events: none;
	color: var(--wp--preset--color--navy) !important;
}

html body .gform_wrapper .gfield_total .gfield_label,
html body .gform_wrapper .gfield--type-total .gfield_label {
	font-weight: 700;
}

/* Submit — gold pill like Contact CF7 */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
	margin: 1.25rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"],
.gform_wrapper input[type="button"].gform_button,
.gform_wrapper .gform-theme-button {
	display: inline-block !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0.35rem 0 0 !important;
	padding: 0.75rem 1.75rem !important;
	border: 0 !important;
	border-radius: 9999px !important;
	background: var(--wp--preset--color--gold) !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--navy) !important;
	font-family: var(--wp--preset--font-family--source-sans-3) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_button:focus-visible,
.gform_wrapper input[type="submit"]:hover,
.gform_wrapper input[type="submit"]:focus-visible,
.gform_wrapper .gform-theme-button:hover,
.gform_wrapper .gform-theme-button:focus-visible {
	background: var(--wp--preset--color--sand) !important;
	color: var(--wp--preset--color--navy) !important;
	outline: none;
}

.gform_wrapper .gform_ajax_spinner {
	max-width: 2.5rem;
	max-height: 2.5rem;
	margin-left: 0.75rem;
	vertical-align: middle;
}

/* Validation */
.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message,
.gform_wrapper .gform_validation_errors {
	margin: 0.4rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 0.875rem;
	color: var(--wp--preset--color--red-orange);
}

.gform_wrapper .gform_submission_error,
.gform_wrapper .gform_validation_errors > * {
	color: var(--wp--preset--color--red-orange);
}

.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea,
.gform_wrapper label + input[aria-invalid="true"] {
	outline: 2px solid var(--wp--preset--color--red-orange) !important;
	outline-offset: 2px;
}

.gform_wrapper .gform_confirmation_message {
	padding: 1rem 1.15rem;
	background: color-mix(in srgb, var(--wp--preset--color--green) 16%, white);
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--wp--preset--color--navy);
}

/* Google Places / address autocomplete helpers */
.gform_wrapper .pac-container {
	z-index: 100000;
}

.h2hc-thumb-cta {
	border-radius: 0;
}

.h2hc-thumb-cta .wp-block-media-text__content {
	padding: clamp(1.25rem, 3vw, 2rem);
}

.h2hc-subscribe {
	padding: clamp(2rem, 4vw, 3rem);
}

/* ---------------------------------------------------------------
   Details / accordion (core/details)
   Thin dividers + circular +/- on the right (donation FAQ, etc.).
   --------------------------------------------------------------- */

html body .wp-block-details,
html body .h2hc-contact__info .wp-block-details,
html body details.wp-block-details {
	margin: 0 !important;
	padding: 0 !important;
	border-top: 1px solid #d5d8e0 !important;
	border-right: 0 !important;
	border-bottom: 1px solid #d5d8e0 !important;
	border-left: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

html body .wp-block-details + .wp-block-details,
html body .h2hc-contact__info .wp-block-details + .wp-block-details {
	border-top: 0 !important;
	margin-top: 0 !important;
}

html body .wp-block-details > summary,
html body .h2hc-contact__info .wp-block-details > summary,
html body details.wp-block-details > summary {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 1rem;
	margin: 0 !important;
	padding: 1.15rem 0 !important;
	cursor: pointer;
	list-style: none !important;
	list-style-type: none !important;
	font-family: var(--wp--preset--font-family--source-sans-3), "Source Sans 3", system-ui, sans-serif;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--wp--preset--color--navy, #333e5e);
}

html body .wp-block-details > summary::-webkit-details-marker,
html body .h2hc-contact__info .wp-block-details > summary::-webkit-details-marker,
html body details.wp-block-details > summary::-webkit-details-marker {
	display: none !important;
}

html body .wp-block-details > summary::marker,
html body .h2hc-contact__info .wp-block-details > summary::marker,
html body details.wp-block-details > summary::marker {
	content: "" !important;
	display: none !important;
	font-size: 0 !important;
}

html body .wp-block-details > summary::after,
html body .h2hc-contact__info .wp-block-details > summary::after,
html body details.wp-block-details > summary::after {
	content: "+" !important;
	flex: 0 0 auto;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 1.65rem;
	height: 1.65rem;
	border: 1.5px solid var(--wp--preset--color--navy, #333e5e);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--source-sans-3), "Source Sans 3", system-ui, sans-serif;
	font-size: 1.15rem;
	font-weight: 500;
	line-height: 1;
	color: var(--wp--preset--color--navy, #333e5e);
}

html body .wp-block-details[open] > summary::after,
html body .h2hc-contact__info .wp-block-details[open] > summary::after,
html body details.wp-block-details[open] > summary::after {
	content: "\2212" !important; /* minus sign */
	font-size: 1.35rem;
	line-height: 0.85;
}

html body .wp-block-details > summary + *,
html body .h2hc-contact__info .wp-block-details > summary + *,
html body details.wp-block-details > summary + * {
	margin-top: 0 !important;
	padding: 0 2.5rem 1.25rem 0 !important;
	font-family: var(--wp--preset--font-family--source-sans-3), "Source Sans 3", system-ui, sans-serif;
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1.6;
	color: #4a5166;
}

html body .wp-block-details > summary + * > *:first-child,
html body details.wp-block-details > summary + * > *:first-child {
	margin-top: 0 !important;
}

html body .wp-block-details > summary + * > *:last-child,
html body details.wp-block-details > summary + * > *:last-child {
	margin-bottom: 0 !important;
}

/* ---------------------------------------------------------------
   Team members grid
   --------------------------------------------------------------- */

.h2hc-team__headline {
	margin: 0 0 1.75rem;
	color: var(--wp--preset--color--slate-purple);
}

/* Background colour set in the editor → full-bleed band (usually beige). */
.h2hc-team--banded,
.h2hc-founders--banded {
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
}

.h2hc-team--banded .h2hc-team__headline,
.h2hc-team--banded .h2hc-team__grid,
.h2hc-founders--banded .h2hc-founders__headline,
.h2hc-founders--banded .h2hc-founders__grid {
	max-width: 1300px;
	margin-left: auto;
	margin-right: auto;
}

.h2hc-team__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem 1.25rem;
}

@media (min-width: 782px) {
	.h2hc-team__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2.25rem 1.35rem;
	}
}

@media (min-width: 1100px) {
	.h2hc-team__grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 2.25rem 1.25rem;
	}
}

.h2hc-team__photo {
	margin: 0 0 0.65rem;
}

.h2hc-team__photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
}

.h2hc-team__name {
	margin: 0 0 0.3rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.05rem, 1.1vw, 1.2rem);
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-team__role {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: 0.95rem;
	line-height: 1.35;
	color: var(--wp--preset--color--navy);
}

.h2hc-team__role--h2hc {
	font-weight: 600;
}

.h2hc-team__logo {
	max-width: 6.5rem;
	margin: 0.65rem 0;
}

.h2hc-team__logo img {
	display: block;
	width: 100%;
	height: auto;
}

.h2hc-team__bio[hidden] {
	display: none !important;
}

.h2hc-team__toggle-wrap {
	margin: 0.65rem 0 0;
}

.h2hc-team__toggle {
	padding: 0;
	border: 0;
	border-bottom: 2px solid var(--wp--preset--color--gold);
	background: none;
	color: var(--wp--preset--color--gold);
	font: inherit;
	font-size: 0.9rem;
	font-weight: 700;
	cursor: pointer;
}

.h2hc-team__toggle:hover,
.h2hc-team__toggle:focus-visible {
	color: var(--wp--preset--color--sand);
	border-bottom-color: var(--wp--preset--color--sand);
}

/* Bio modal */
.h2hc-team__dialog {
	width: min(52rem, calc(100vw - 2rem));
	max-width: 52rem;
	max-height: calc(100vh - 2rem);
	margin: auto;
	padding: 0;
	border: 0;
	background: transparent;
}

.h2hc-team__dialog::backdrop {
	background: rgb(51 62 94 / 55%);
}

.h2hc-team__dialog-panel {
	position: relative;
	box-sizing: border-box;
	max-height: calc(100vh - 2rem);
	overflow: auto;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--white);
	box-shadow: 0 18px 48px rgb(0 0 0 / 22%);
}

.h2hc-team__dialog-close {
	position: absolute;
	top: 0.65rem;
	right: 0.75rem;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--beige) 80%, white);
	color: var(--wp--preset--color--navy);
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
}

.h2hc-team__dialog-close:hover,
.h2hc-team__dialog-close:focus-visible {
	background: var(--wp--preset--color--beige);
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-team__dialog-layout {
	display: grid;
	gap: 1.25rem;
}

@media (min-width: 700px) {
	.h2hc-team__dialog-layout {
		grid-template-columns: minmax(9rem, 11rem) minmax(0, 1fr);
		gap: 1.75rem;
		align-items: start;
	}
}

.h2hc-team__dialog-photo {
	margin: 0;
}

.h2hc-team__dialog-photo[hidden] {
	display: none !important;
}

.h2hc-team__dialog-photo img {
	display: block;
	width: 100%;
	max-width: 11rem;
	aspect-ratio: 1;
	object-fit: cover;
}

.h2hc-team__dialog-name {
	margin: 0 0 0.5rem;
	padding-right: 2rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.45rem, 2.4vw, 1.85rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-team__dialog-meta {
	margin-bottom: 1rem;
}

.h2hc-team__dialog-meta .h2hc-team__role {
	font-size: 1.05rem;
}

.h2hc-team__dialog-bio {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1rem;
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
}

.h2hc-team__dialog-bio p {
	margin: 0 0 0.85rem;
}

.h2hc-team__dialog-bio p:last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------------
   Founding members logo grid
   --------------------------------------------------------------- */

.h2hc-founders__headline {
	margin: 0 0 1.75rem;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-founders__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	align-items: stretch;
}

@media (min-width: 600px) {
	.h2hc-founders__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.h2hc-founders__item {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 6.75rem;
	padding: 0.35rem;
}

.h2hc-founders__link {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding: var(--h2hc-logo-pad, 0px);
	text-decoration: none;
}

.h2hc-founders__item img {
	display: block;
	width: auto;
	height: auto;
	max-width: calc(11.5rem * var(--h2hc-logo-scale, 1));
	max-height: calc(5.25rem * var(--h2hc-logo-scale, 1));
	object-fit: contain;
	object-position: center;
}

/* ---------------------------------------------------------------
   Misc helpers
   --------------------------------------------------------------- */

.h2hc-eyebrow {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-event-nav .wp-block-navigation-item__content {
	font-weight: 600;
}

.skip-link.screen-reader-text:focus {
	clip: auto;
	height: auto;
	width: auto;
	display: block;
	font-size: 1rem;
	font-weight: 600;
	line-height: normal;
	padding: 15px 23px 14px;
	color: var(--wp--preset--color--navy);
	background-color: var(--wp--preset--color--sand);
	text-decoration: none;
	z-index: 100000;
}

/* ---------------------------------------------------------------
   H2HC Stats block
   --------------------------------------------------------------- */

.h2hc-stats {
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
}

.h2hc-stats__inner {
	max-width: 1300px;
	margin: 0 auto;
}

.h2hc-stats__headline {
	text-align: center;
	margin: 0 0 var(--wp--preset--spacing--60);
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
}

.h2hc-stats__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
}

@media (max-width: 782px) {
	.h2hc-stats__grid {
		grid-template-columns: 1fr;
	}
}

.h2hc-stats__icon img {
	max-height: 48px;
	width: auto;
	margin-bottom: var(--wp--preset--spacing--30);
}

.h2hc-stats__value {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(2.5rem, 4vw, 3.25rem);
	font-weight: 500;
	line-height: 1.05;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-stats__label {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--navy);
}

.h2hc-stats__cta {
	margin-top: var(--wp--preset--spacing--60);
	text-align: center;
}

.h2hc-stats--navy {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

.h2hc-stats--navy .h2hc-stats__headline,
.h2hc-stats--navy .h2hc-stats__value {
	color: var(--wp--preset--color--white);
}

.h2hc-stats--navy .h2hc-stats__label {
	color: var(--wp--preset--color--sand);
}

/* ---------------------------------------------------------------
   Featured callout (News / Resources / Events)
   --------------------------------------------------------------- */

.h2hc-featured-callout {
	padding: var(--wp--preset--spacing--60) 0;
}

.h2hc-featured-callout__columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	max-width: 1300px;
	margin: 0 auto;
}

@media (min-width: 782px) {
	.h2hc-featured-callout__columns {
		grid-template-columns: 1.4fr 1fr 1fr;
		gap: 1.25rem;
		align-items: stretch;
	}
}

.h2hc-featured-callout__img {
	overflow: hidden;
	margin-bottom: 1rem;
}

.h2hc-featured-callout__img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.h2hc-featured-callout__img--border img {
	outline: 1px solid var(--wp--preset--color--navy);
	outline-offset: -1px;
}

.h2hc-featured-callout__img--small img {
	aspect-ratio: 1;
	max-width: 220px;
}

.h2hc-featured-callout__img--medium img {
	aspect-ratio: 3 / 2;
}

.h2hc-featured-callout__img--large img {
	aspect-ratio: 16 / 9;
}

.h2hc-featured-callout__eyebrow {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-featured-callout__title {
	margin: 0.5rem 0 0;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.35rem, 2vw, 1.7rem);
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-featured-callout__title a {
	color: inherit;
	text-decoration: none;
}

.h2hc-featured-callout__title a:hover,
.h2hc-featured-callout__title a:focus-visible {
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-featured-callout__title .h2hc-event-title__primary,
.h2hc-featured-callout__title .h2hc-event-title__secondary {
	display: block;
}

.h2hc-featured-callout__title .h2hc-event-title__secondary {
	margin-top: 0.15em;
	font-size: 0.85em;
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--periwinkle);
}

/* ---------------------------------------------------------------
   Resources feed — What’s New card grid + Load More
   --------------------------------------------------------------- */

.h2hc-resources-feed {
	padding: var(--wp--preset--spacing--60) 0;
}

.h2hc-resources-feed__header {
	max-width: 1300px;
	margin: 0 auto 1.5rem;
}

.h2hc-resources-feed__headline {
	margin: 0;
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
}

.h2hc-resources-feed__stage {
	max-width: 1300px;
	margin: 0 auto;
}

.h2hc-resources-feed__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
}

@media (min-width: 782px) {
	.h2hc-resources-feed__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem 1.5rem;
	}
}

.h2hc-resources-feed__empty {
	margin: 2rem 0;
	grid-column: 1 / -1;
	color: var(--wp--preset--color--navy);
}

/* Reuse What’s New card chrome inside this feed. */
.h2hc-resources-feed__grid > .h2hc-whats-new__card {
	height: 100%;
}

.h2hc-resources-feed__loadmore {
	margin-top: 2rem;
	text-align: center;
}

.h2hc-resources-feed__loadmore-btn {
	background-color: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--navy) !important;
}

.h2hc-resources-feed__loadmore-btn:hover,
.h2hc-resources-feed__loadmore-btn:focus-visible {
	background-color: var(--wp--preset--color--sand) !important;
}

.h2hc-resources-feed__loadmore-btn.is-loading {
	opacity: 0.7;
	pointer-events: none;
}

.h2hc-resources-feed-editor .h2hc-resources-feed {
	pointer-events: none;
}

/* ---------------------------------------------------------------
   Timeline
   --------------------------------------------------------------- */

.h2hc-timeline {
	padding: var(--wp--preset--spacing--70) 0;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

.h2hc-timeline__container {
	position: relative;
	max-width: 820px;
	margin: 0 auto;
	padding-left: 2rem;
}

.h2hc-timeline__container::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0.55rem;
	width: 2px;
	background: color-mix(in srgb, var(--wp--preset--color--sand) 55%, transparent);
}

.h2hc-timeline__entry {
	position: relative;
	padding-bottom: 2.5rem;
}

.h2hc-timeline__entry:last-child {
	padding-bottom: 0;
}

.h2hc-timeline__marker {
	position: absolute;
	left: calc(-2rem + 0.3rem);
	top: 0.35rem;
	width: 0.75rem;
	height: 0.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--gold);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--navy) 80%, transparent);
}

.h2hc-timeline__media {
	margin-bottom: 1.25rem;
}

.h2hc-timeline__media--has-year {
	padding-top: 3.5rem;
}

.h2hc-timeline__media img {
	display: block;
	width: 100%;
	height: auto;
}

.h2hc-timeline__media--small img {
	max-width: 240px;
}

.h2hc-timeline__embed {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #000;
}

.h2hc-timeline__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.h2hc-timeline__title {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 700;
	line-height: 1.25;
	color: var(--wp--preset--color--white);
}

.h2hc-timeline__copy {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.0625rem;
	line-height: 1.55;
	color: color-mix(in srgb, var(--wp--preset--color--white) 88%, transparent);
}

.h2hc-timeline__cta {
	margin: 1rem 0 0;
}

.h2hc-timeline__cta-link {
	color: var(--wp--preset--color--sand);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.h2hc-timeline__year {
	margin: 1rem 0 0;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: 1.75rem;
	font-weight: 500;
	color: var(--wp--preset--color--sand);
}

/* ---------------------------------------------------------------
   Key Dates — numbered circles on a connecting rail
   --------------------------------------------------------------- */

.h2hc-key-dates {
	margin-block: var(--wp--preset--spacing--60);
}

.h2hc-key-dates__list {
	--h2hc-key-dates-marker: 2.75rem;
	--h2hc-key-dates-gap: 1.5rem;
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	max-width: 52rem;
	counter-reset: none;
}

/* Continuous rail through the marker centers. */
.h2hc-key-dates__list::before {
	content: "";
	position: absolute;
	top: calc(var(--h2hc-key-dates-marker) / 2);
	bottom: calc(var(--h2hc-key-dates-marker) / 2);
	left: calc(var(--h2hc-key-dates-marker) / 2);
	width: 2px;
	transform: translateX(-50%);
	background: color-mix(in srgb, var(--wp--preset--color--periwinkle) 45%, white);
}

.h2hc-key-dates__item {
	position: relative;
	display: grid;
	grid-template-columns: var(--h2hc-key-dates-marker) minmax(0, 1fr);
	column-gap: var(--h2hc-key-dates-gap);
	align-items: start;
	margin: 0;
	padding: 0 0 2.5rem;
}

.h2hc-key-dates__item:last-child {
	padding-bottom: 0;
}

.h2hc-key-dates__marker {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: var(--h2hc-key-dates-marker);
	height: var(--h2hc-key-dates-marker);
	border-radius: 999px;
	background: var(--wp--preset--color--periwinkle);
	color: var(--wp--preset--color--white);
	box-shadow: 0 0 0 4px var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--source-sans-3);
	line-height: 1;
}

.h2hc-key-dates__num {
	font-size: clamp(1.15rem, 2.2vw, 1.5rem);
	font-weight: 700;
	letter-spacing: -0.02em;
}

.h2hc-key-dates__body {
	min-width: 0;
	padding-top: 0.35rem;
}

.h2hc-key-dates__title {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.15rem, 2vw, 1.45rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--wp--preset--color--slate-purple);
	text-transform: none;
}

.h2hc-key-dates__desc {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
}

.h2hc-key-dates__desc p {
	margin: 0 0 0.65rem;
}

.h2hc-key-dates__desc p:last-child {
	margin-bottom: 0;
}

.h2hc-key-dates__empty {
	margin: 0;
	font-size: 0.9375rem;
	color: color-mix(in srgb, var(--wp--preset--color--navy) 65%, transparent);
}

/* Past items: mute copy with color, keep marker fully opaque so the rail
   never shows through the circle. */
.h2hc-key-dates__item.is-past .h2hc-key-dates__marker {
	background: #b8becc;
	color: var(--wp--preset--color--white);
	box-shadow: 0 0 0 4px var(--wp--preset--color--white);
}

.h2hc-key-dates__item.is-past .h2hc-key-dates__title {
	color: color-mix(in srgb, var(--wp--preset--color--navy) 45%, white);
}

.h2hc-key-dates__item.is-past .h2hc-key-dates__desc {
	color: color-mix(in srgb, var(--wp--preset--color--navy) 40%, white);
}

@media (max-width: 600px) {
	.h2hc-key-dates__list {
		--h2hc-key-dates-marker: 2.35rem;
		--h2hc-key-dates-gap: 1.1rem;
	}

	.h2hc-key-dates__item {
		padding-bottom: 2rem;
	}

	.h2hc-key-dates__num {
		font-size: 1.1rem;
	}

	.h2hc-key-dates__body {
		padding-top: 0.2rem;
	}
}

/* ---------------------------------------------------------------
   History timeline (interactive years + content panel)
   Inspired by Invest in Others; years sit ABOVE the copy.
   JS (history-timeline.js) injects .h2hc-history__nav and toggles
   .is-active. Until then, all slides stack so the editor stays usable.
   --------------------------------------------------------------- */

.h2hc-history__nav {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 2.5rem;
}

.h2hc-history__arrow {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--periwinkle);
	color: var(--wp--preset--color--white);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, opacity 0.2s ease;
}

.h2hc-history__arrow:hover,
.h2hc-history__arrow:focus-visible {
	background: var(--wp--preset--color--slate-purple);
	outline: none;
}

.h2hc-history__arrow:disabled {
	opacity: 0.35;
	cursor: default;
}

.h2hc-history__track-wrap {
	flex: 1 1 auto;
	min-width: 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.h2hc-history__track-wrap::-webkit-scrollbar {
	display: none;
}

.h2hc-history__track {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.5rem;
	min-width: min(100%, 40rem);
	padding: 0 0.5rem 1.1rem;
}

.h2hc-history__track::before {
	content: "";
	position: absolute;
	left: 0.5rem;
	right: 0.5rem;
	bottom: 0.95rem;
	height: 2px;
	background: color-mix(in srgb, var(--wp--preset--color--navy) 22%, transparent);
	pointer-events: none;
}

@supports not (background: color-mix(in srgb, red 50%, white)) {
	.h2hc-history__track::before {
		background: #c5c9d4;
	}
}

.h2hc-history__tick {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.55rem;
	flex: 1 1 0;
	min-width: 4.5rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--navy);
	cursor: pointer;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	transition: color 0.2s ease;
}

.h2hc-history__tick-year {
	white-space: nowrap;
}

.h2hc-history__tick-dot {
	display: block;
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 50%;
	background: var(--wp--preset--color--navy);
	box-shadow: 0 0 0 4px var(--wp--preset--color--white);
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.h2hc-history__tick.is-active,
.h2hc-history__tick:hover,
.h2hc-history__tick:focus-visible {
	color: var(--wp--preset--color--gold);
	outline: none;
}

.h2hc-history__tick.is-active .h2hc-history__tick-dot,
.h2hc-history__tick:hover .h2hc-history__tick-dot,
.h2hc-history__tick:focus-visible .h2hc-history__tick-dot {
	background: var(--wp--preset--color--gold);
	transform: scale(1.15);
}

/* Front end: one panel at a time. Editor (no --ready): all slides visible. */
.h2hc-history--ready .h2hc-history__slide {
	display: none;
}

.h2hc-history--ready .h2hc-history__slide.is-active {
	display: block;
}

.h2hc-history__slide:not(:last-child) {
	margin-bottom: 2rem;
}

.h2hc-history--ready .h2hc-history__slide {
	margin-bottom: 0;
}

.h2hc-history__panel {
	gap: 0 !important;
	margin: 0 !important;
}

.h2hc-history__meta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2rem 1.75rem !important;
	min-height: 12rem;
}

.h2hc-history__year {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	font-weight: 500;
	line-height: 1.1;
	color: inherit;
}

.h2hc-history__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 500;
	line-height: 1.3;
}

.h2hc-history__body {
	padding: 1.75rem 2rem !important;
	background: var(--wp--preset--color--white);
}

.h2hc-history__body > :first-child {
	margin-top: 0;
}

.h2hc-history__body > :last-child {
	margin-bottom: 0;
}

.h2hc-history__image {
	margin: 1.5rem 0 0;
}

.h2hc-history__image img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 781px) {
	.h2hc-history__nav {
		gap: 0.35rem;
		margin-bottom: 1.75rem;
	}

	.h2hc-history__arrow {
		width: 2.35rem;
		height: 2.35rem;
		font-size: 1.5rem;
	}

	.h2hc-history__tick {
		min-width: 3.75rem;
		font-size: 0.8125rem;
	}

	.h2hc-history__meta {
		min-height: 0;
	}
}

/* ---------------------------------------------------------------
   Events list (H2HC events + Events of Interest)
   --------------------------------------------------------------- */

.h2hc-events-list {
	padding: var(--wp--preset--spacing--60) 0;
}

.h2hc-events-list__upcoming,
.h2hc-events-list__past {
	max-width: 1300px;
	margin: 0 auto 3rem;
}

.h2hc-events-list__upcoming:has(+ .h2hc-events-list__rule) {
	margin-bottom: 0;
}

.h2hc-events-list__past:last-child,
.h2hc-events-list__upcoming:last-child {
	margin-bottom: 0;
}

.h2hc-events-list__header {
	margin: 0 0 2rem;
}

.h2hc-events-list__headline {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
}

.h2hc-events-list__intro {
	max-width: none;
	margin: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
}

.h2hc-events-list__intro p {
	margin: 0 0 0.75rem;
}

.h2hc-events-list__intro p:last-child {
	margin-bottom: 0;
}

.h2hc-events-list__rule {
	display: block;
	width: 100%;
	max-width: 1300px;
	height: 0;
	margin: 2.5rem auto;
	border: 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 25%, transparent);
}

.h2hc-events-list__empty {
	margin: 0;
	padding: 1rem;
	text-align: left;
	color: var(--wp--preset--color--navy);
}

/* Upcoming: full-width rows, content 50% | image 50% */
.h2hc-events-list__rows {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.h2hc-events-list__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: center;
}

.h2hc-events-list__row + .h2hc-events-list__row {
	margin-top: 2.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 22%, transparent);
}

@media (min-width: 782px) {
	.h2hc-events-list__row {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 2.5rem;
	}
}

.h2hc-events-list__row-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.h2hc-events-list__date {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-events-list__title {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-events-list__title a {
	color: inherit;
	text-decoration: none;
}

.h2hc-events-list__title a:hover,
.h2hc-events-list__title a:focus-visible {
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-events-list__title .h2hc-event-title__primary,
.h2hc-events-list__title .h2hc-event-title__secondary {
	display: block;
}

.h2hc-events-list__title .h2hc-event-title__secondary {
	margin-top: 0.15em;
	font-size: 0.94em;
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-events-list__title a:hover .h2hc-event-title__secondary,
.h2hc-events-list__title a:focus-visible .h2hc-event-title__secondary {
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-events-list__excerpt {
	margin: 0 0 1.25rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
}

.h2hc-events-list__cta {
	margin: 0;
}

.h2hc-events-list__cta-link {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border: 1.5px solid var(--wp--preset--color--navy);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
}

.h2hc-events-list__cta-link:hover,
.h2hc-events-list__cta-link:focus-visible {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

.h2hc-events-list__row-media {
	margin: 0;
	overflow: hidden;
	background: var(--wp--preset--color--beige);
}

.h2hc-events-list__row-media a {
	display: block;
}

.h2hc-events-list__row-media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Events of Interest: logos stay fully visible with padding. */
.h2hc-events-list__row-media--logo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	box-sizing: border-box;
	padding: 1.5rem 1.75rem;
}

.h2hc-events-list__row-media--logo a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.h2hc-events-list__row-media--logo img {
	width: auto;
	height: auto;
	max-width: 85%;
	max-height: 85%;
	aspect-ratio: auto;
	object-fit: contain;
}

/* Events of Interest upcoming rows: shorter logo frames. */
.h2hc-events-list--external-event .h2hc-events-list__row-media--logo {
	aspect-ratio: 2 / 1;
	padding: 20px 1.25rem;
}

.h2hc-events-list--external-event .h2hc-events-list__row-media--logo img {
	max-width: 90%;
	max-height: 100%;
}

@media (min-width: 782px) {
	.h2hc-events-list--external-event .h2hc-events-list__row {
		align-items: start;
		gap: 2rem;
	}

	.h2hc-events-list--external-event .h2hc-events-list__row-media--logo {
		aspect-ratio: auto;
		width: 100%;
		min-height: 9.5rem;
		max-height: 13rem;
		padding: 20px 1.5rem;
	}
}

.h2hc-events-list--external-event .h2hc-events-list__row + .h2hc-events-list__row {
	margin-top: 1.75rem;
	padding-top: 1.75rem;
}

/* Past: What’s New card grid — always 3 columns on desktop */
.h2hc-events-list__past .h2hc-events-list__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 782px) {
	.h2hc-events-list__past .h2hc-events-list__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.75rem;
	}
}

.h2hc-events-list__loadmore {
	margin-top: 2rem;
	text-align: center;
}

.h2hc-events-list__loadmore-btn {
	background-color: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--navy) !important;
}

.h2hc-events-list__loadmore-btn:hover,
.h2hc-events-list__loadmore-btn:focus-visible {
	background-color: var(--wp--preset--color--sand) !important;
}

.h2hc-events-list__loadmore-btn.is-loading {
	opacity: 0.7;
	pointer-events: none;
}

/* ---------------------------------------------------------------
   Single event (ACF-driven meta / nav / details)
   --------------------------------------------------------------- */

.h2hc-event-single-hero {
	background-color: var(--wp--preset--color--slate-purple);
}

.h2hc-event-single-hero__meta {
	margin: 0 0 0.75rem;
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 1.0625rem;
	font-weight: 500;
	color: var(--wp--preset--color--gold);
}

.h2hc-event-single-hero__title {
	margin: 0 0 1.25rem;
}

.h2hc-event-single-hero__title .h2hc-event-title__primary,
.h2hc-event-single-hero__title .h2hc-event-title__secondary {
	display: block;
}

.h2hc-event-single-hero__title .h2hc-event-title__secondary {
	margin-top: 0.25em;
	font-size: 0.62em;
	font-weight: 500;
	line-height: 1.25;
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-event-single-hero__cta {
	margin: 0;
}

.h2hc-event-meta__date {
	margin: 0.75rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--sand);
}

.h2hc-event-meta__register {
	margin: 1.25rem 0 0;
}

.h2hc-event-meta__register .wp-element-button {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
}

/* Shared jump-nav bar: event singles (auto) + reusable h2hc/section-nav
   Beige strip flush left, only as wide as its links; slight overlap up
   into the section/hero above. */
.h2hc-event-nav,
.h2hc-section-nav {
	/* Defeat alignfull’s 100% / 100vw stretch — bar should hug link width. */
	width: fit-content !important;
	max-width: 100%;
	margin-top: -1.75rem;
	margin-right: auto;
	margin-bottom: 0;
	margin-left: 0;
	padding: 0;
	position: relative;
	z-index: 5;
	background: transparent;
	box-sizing: border-box;
}

.h2hc-event-nav.alignfull,
.h2hc-section-nav.alignfull {
	/* Keep left edge on the viewport when breaking out of content width. */
	width: fit-content !important;
	max-width: 100%;
}

.h2hc-event-nav__list,
.h2hc-section-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: fit-content;
	max-width: 100%;
	gap: 0;
	list-style: none;
	margin: 0;
	/* Beige still starts at the viewport left; first link lines up with alignwide (1300px). */
	padding-top: 0.9rem;
	padding-bottom: 0.9rem;
	padding-right: 1.75rem;
	padding-left: max(
		var(--wp--preset--spacing--40),
		calc((100vw - var(--wp--style--global--wide-size, 1300px)) / 2)
	);
	background: var(--wp--preset--color--beige);
	box-sizing: border-box;
}

.h2hc-event-nav__item,
.h2hc-section-nav__item {
	display: flex;
	align-items: center;
}

.h2hc-event-nav__item:not(:last-child)::after,
.h2hc-section-nav__item:not(:last-child)::after {
	content: "";
	display: block;
	width: 1px;
	height: 1.05em;
	margin: 0 1rem;
	background: color-mix(in srgb, var(--wp--preset--color--slate-purple) 32%, transparent);
}

@supports not (background: color-mix(in srgb, red 50%, white)) {
	.h2hc-event-nav__item:not(:last-child)::after,
	.h2hc-section-nav__item:not(:last-child)::after {
		background: #a8b0c8;
	}
}

.h2hc-event-nav__link,
.h2hc-section-nav__link {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-weight: 700;
	font-size: 0.9375rem;
	line-height: 1.3;
	color: var(--wp--preset--color--slate-purple);
	text-decoration: none;
	white-space: nowrap;
}

.h2hc-event-nav__link:hover,
.h2hc-event-nav__link:focus-visible,
.h2hc-section-nav__link:hover,
.h2hc-section-nav__link:focus-visible {
	color: var(--wp--preset--color--periwinkle);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

@media (max-width: 600px) {
	.h2hc-event-nav,
	.h2hc-section-nav {
		margin-top: -1.25rem;
		max-width: calc(100% - 1rem);
	}

	.h2hc-event-nav__list,
	.h2hc-section-nav__list {
		padding-top: 0.85rem;
		padding-bottom: 0.85rem;
		padding-right: 1.25rem;
		/* Space between wrapped rows (Collaborators nav, long labels). */
		row-gap: 0.7rem;
	}

	.h2hc-event-nav__item:not(:last-child)::after,
	.h2hc-section-nav__item:not(:last-child)::after {
		margin: 0 0.7rem;
	}

	/* Keep each label intact; wrap whole items, not mid-phrase. */
	.h2hc-event-nav__link,
	.h2hc-section-nav__link {
		white-space: nowrap;
		font-size: 0.875rem;
	}
}

.h2hc-event-overview .wp-block-heading {
	color: var(--wp--preset--color--slate-purple);
}

/* Alternating full-bleed section bands (Overview white → Agenda beige → …). */
.h2hc-event-section {
	box-sizing: border-box;
}

.h2hc-event-section--white {
	background-color: var(--wp--preset--color--white);
}

.h2hc-event-section--beige {
	background-color: var(--wp--preset--color--beige);
}

.h2hc-event-section__inner {
	/* contentSize is the 1300px rail (wideSize is 1800px full-bleed). */
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
}

/*
 * Event body: patterns are alignfull sections with a 1300px inner.
 * Loose / non-section blocks share the same rail so the page stays aligned.
 */
.h2hc-event-single__content {
	box-sizing: border-box;
}

.h2hc-event-single__content > :where(
	:not(.alignfull):not(.alignwide):not(.h2hc-event-section)
) {
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
	box-sizing: border-box;
}

/* Alignwide siblings (e.g. Image with Text) share the 1300px rail. */
.h2hc-event-single__content > .alignwide {
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
	box-sizing: border-box;
}

.h2hc-event-single__content > .h2hc-event-section {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--40);
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
}

.h2hc-event-single__content > .h2hc-event-section > .h2hc-event-section__inner,
.h2hc-event-single__content > .h2hc-event-section > .wp-block-group.h2hc-event-section__inner {
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.h2hc-event-details > .h2hc-event-section {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--40);
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
}

.h2hc-event-details .h2hc-event-section__inner {
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.h2hc-event-details__headline {
	margin: 0 0 1.5rem;
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
}

.h2hc-event-details__richtext,
.h2hc-event-location__copy {
	font-family: var(--wp--preset--font-family--source-sans-3);
	color: var(--wp--preset--color--navy);
	line-height: 1.6;
}

@media (min-width: 782px) {
	.h2hc-event-details__agenda .h2hc-event-details__richtext {
		columns: 2;
		column-gap: 2.5rem;
	}

	.h2hc-event-details__agenda .h2hc-event-details__richtext > * {
		break-inside: avoid;
	}
}

.h2hc-event-details__cta {
	margin-top: 1.5rem;
}

.h2hc-event-details__cta .wp-element-button {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
}

.h2hc-event-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1rem;
}

.h2hc-event-gallery__item {
	margin: 0;
	overflow: hidden;
}

.h2hc-event-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.h2hc-event-people {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem 1.75rem;
}

.h2hc-event-people-pattern {
	gap: 2rem !important;
}

.h2hc-event-people-pattern > .h2hc-event-person {
	margin: 0;
}

/* Front: hide empty speaker/moderator placeholders; reflow remaining cards. */
.h2hc-event-person__toggle-wrap.is-empty-bio,
.h2hc-event-person__toggle-wrap[hidden] {
	display: none !important;
}

.h2hc-event-people-pattern.has-pruned-placeholders {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
	gap: 2rem !important;
}

.h2hc-event-people-pattern > .h2hc-event-person.is-placeholder,
.h2hc-event-people-pattern > .h2hc-event-person[hidden] {
	display: none !important;
}

@media (min-width: 600px) {
	.h2hc-event-people {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 960px) {
	.h2hc-event-people {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.h2hc-event-person__photo {
	margin: 0 0 1rem;
}

.h2hc-event-person__photo img,
.wp-block-image.h2hc-event-person__photo img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

.h2hc-event-person__name {
	margin: 0 0 0.35rem;
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
}

.h2hc-event-person__role {
	margin: 0 0 0.25rem;
	color: var(--wp--preset--color--navy);
	font-size: 0.95rem;
}

.h2hc-event-quote {
	margin: 0;
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.35rem, 2.4vw, 1.85rem);
	font-style: italic;
	font-weight: 500;
	line-height: 1.45;
	border-left: 0;
	padding-left: 0;
}

.h2hc-event-quote cite {
	display: block;
	margin-top: 1rem;
	font-size: 1rem;
	font-style: italic;
	font-weight: 400;
	color: var(--wp--preset--color--navy);
}

.h2hc-event-person__name {
	font-size: 1.35rem;
}

.h2hc-event-person__logo {
	margin-top: 0.75rem;
}

.h2hc-event-person__logo img {
	max-height: 40px;
	width: auto;
}

/* Hidden on front; edited in the block editor via List View / Advanced class. */
.h2hc-event-person__bio {
	display: none;
	margin-top: 0.75rem;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--navy);
}

.h2hc-event-person__bio[hidden] {
	display: none !important;
}

.editor-styles-wrapper .h2hc-event-person__bio,
.block-editor-iframe__body .h2hc-event-person__bio {
	display: block !important;
	margin-top: 0.75rem;
	padding: 0.75rem;
	border: 1px dashed color-mix(in srgb, var(--wp--preset--color--periwinkle) 55%, white);
	background: color-mix(in srgb, var(--wp--preset--color--beige) 70%, white);
}

.editor-styles-wrapper .h2hc-event-person__bio::before,
.block-editor-iframe__body .h2hc-event-person__bio::before {
	content: "Bio (hidden on front — opens in Read Bio modal)";
	display: block;
	margin-bottom: 0.5rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-event-person__toggle-wrap {
	margin: 0.75rem 0 0;
}

.h2hc-event-person__toggle {
	appearance: none;
	border: 0;
	background: transparent;
	padding: 0;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--wp--preset--color--periwinkle);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

a.h2hc-event-person__toggle {
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-team__dialog-meta .h2hc-event-person__role {
	margin: 0 0 0.25rem;
	font-size: 1.05rem;
	color: var(--wp--preset--color--navy);
}

.h2hc-event-location {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

@media (min-width: 782px) {
	.h2hc-event-location {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

.h2hc-event-location__address {
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
	white-space: pre-line;
}

.h2hc-event-location__map iframe {
	display: block;
	width: 100%;
	min-height: 280px;
	border: 0;
}

.h2hc-event-location__map-link {
	margin: 0.75rem 0 0;
}

.h2hc-event-parking {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 20%, transparent);
}

.h2hc-event-parking__headline {
	margin: 0 0 1rem;
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-event-parking__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.25rem;
}

@media (min-width: 782px) {
	.h2hc-event-parking__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.h2hc-event-details__resources {
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	max-width: 1300px;
	margin: 0 auto;
}

.h2hc-event-video__embed {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #000;
	overflow: hidden;
}

.h2hc-event-video__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.h2hc-event-video__link,
.h2hc-event-slides {
	margin: 1rem 0 0;
}

.h2hc-event-slides {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
}

.h2hc-event-slides a {
	font-weight: 700;
	color: var(--wp--preset--color--periwinkle);
}

/* ---------------------------------------------------------------
   What’s New feed
   --------------------------------------------------------------- */

.h2hc-whats-new-section .wp-block-heading {
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
	margin-bottom: 0.75rem;
}

.h2hc-whats-new-section > .wp-block-paragraph {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 2rem;
}

.h2hc-whats-new__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem 1rem;
	margin-bottom: 2rem;
}

.h2hc-whats-new--no-filter .h2hc-whats-new__toolbar {
	justify-content: flex-end;
}

.h2hc-whats-new__select,
.h2hc-whats-new__see-all {
	appearance: none;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	border: 2px solid var(--wp--preset--color--slate-purple);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--slate-purple);
	padding: 0.65rem 1.25rem;
	text-decoration: none;
	cursor: pointer;
}

.h2hc-whats-new__select {
	padding-right: 2.25rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%232F4596' d='M1.4.3 6 4.9 10.6.3 12 1.7 6 7.7 0 1.7z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 12px 8px;
}

.h2hc-whats-new__see-all:hover,
.h2hc-whats-new__see-all:focus-visible,
.h2hc-whats-new__select:hover,
.h2hc-whats-new__select:focus-visible {
	background-color: var(--wp--preset--color--beige);
}

.h2hc-whats-new__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 782px) {
	.h2hc-whats-new__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.75rem;
	}
}

.h2hc-whats-new__card {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--beige);
	overflow: hidden;
}

.h2hc-whats-new__card[hidden] {
	display: none !important;
}

.h2hc-whats-new__media {
	margin: 0;
}

.h2hc-whats-new__media a {
	display: block;
}

.h2hc-whats-new__media--photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

/* Logos: same frame height as photos, but contain + padding so marks aren’t cropped. */
.h2hc-whats-new__media--logo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 10;
	padding: 1.25rem 1.5rem;
	box-sizing: border-box;
	background: var(--wp--preset--color--beige);
}

.h2hc-whats-new__media--logo a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.h2hc-whats-new__media--logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 75%;
	max-height: 75%;
	object-fit: contain;
}

.h2hc-whats-new__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.25rem 1.25rem 1.5rem;
}

.h2hc-whats-new__title {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--source-sans-3);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--wp--preset--color--navy);
}

.h2hc-whats-new__title a {
	color: inherit;
	text-decoration: none;
}

.h2hc-whats-new__title a:hover,
.h2hc-whats-new__title a:focus-visible {
	color: var(--wp--preset--color--slate-purple);
}

.h2hc-whats-new__title .h2hc-event-title__primary,
.h2hc-whats-new__title .h2hc-event-title__secondary {
	display: block;
}

.h2hc-whats-new__title .h2hc-event-title__secondary {
	margin-top: 0.15em;
	font-size: 0.9em;
	font-weight: 600;
	line-height: 1.3;
	color: var(--wp--preset--color--periwinkle);
}

.h2hc-whats-new__badge {
	display: inline-block;
	align-self: flex-start;
	margin-bottom: 0.75rem;
	padding: 0.2rem 0.65rem;
	border-radius: 0.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.4;
	color: var(--wp--preset--color--white);
}

.h2hc-whats-new__badge--news {
	background: var(--wp--preset--color--red-orange);
}

.h2hc-whats-new__badge--events {
	background: var(--wp--preset--color--green);
}

.h2hc-whats-new__badge--resource {
	background: var(--wp--preset--color--periwinkle);
}

.h2hc-whats-new__badge--innovative-work {
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--navy);
}

.h2hc-whats-new__badge--external-event {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
}

.h2hc-whats-new__badge--publication {
	background: var(--wp--preset--color--slate-purple);
}

.h2hc-whats-new__badge--nomination,
.h2hc-whats-new__badge--team,
.h2hc-whats-new__badge--founding-members {
	background: var(--wp--preset--color--navy);
}

.h2hc-whats-new__excerpt {
	margin: 0 0 1.25rem;
	flex: 1;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--navy);
}

.h2hc-whats-new__cta {
	margin: 0;
}

.h2hc-whats-new__cta-link {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border: 1.5px solid var(--wp--preset--color--navy);
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
}

.h2hc-whats-new__cta-link:hover,
.h2hc-whats-new__cta-link:focus-visible {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}

.h2hc-whats-new__stage {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.75rem;
}

.h2hc-whats-new__stage .h2hc-whats-new__grid {
	grid-column: 2;
}

.h2hc-whats-new__stage.is-single-page .h2hc-whats-new__nav {
	visibility: hidden;
	pointer-events: none;
}

/* Match hero slider chrome (quote/beige variant). */
.h2hc-whats-new__nav {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--navy) 8%, white);
	color: var(--wp--preset--color--navy);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.h2hc-whats-new__nav:hover,
.h2hc-whats-new__nav:focus-visible {
	background: var(--wp--preset--color--white);
	box-shadow: 0 1px 4px rgb(51 62 94 / 15%);
	outline: none;
}

.h2hc-whats-new__nav:disabled {
	opacity: 0.35;
	cursor: default;
	box-shadow: none;
}

.h2hc-whats-new__pager {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 1.5rem;
}

.h2hc-whats-new__dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
}

.h2hc-whats-new__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--slate-purple) 30%, white);
	cursor: pointer;
}

.h2hc-whats-new__dot[aria-current="true"] {
	background: var(--wp--preset--color--slate-purple);
}

@supports not (background: color-mix(in srgb, red 50%, white)) {
	.h2hc-whats-new__nav {
		background: #e8eaef;
	}

	.h2hc-whats-new__dot {
		background: #c5c9d8;
	}
}

@media (max-width: 781px) {
	.h2hc-whats-new__stage {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.h2hc-whats-new__stage .h2hc-whats-new__grid {
		grid-column: 1;
	}

	.h2hc-whats-new__nav--prev {
		order: 2;
		justify-self: start;
	}

	.h2hc-whats-new__nav--next {
		order: 3;
		justify-self: end;
		margin-top: -3.25rem;
	}

	.h2hc-whats-new__stage .h2hc-whats-new__nav {
		position: absolute;
		bottom: -0.25rem;
	}

	.h2hc-whats-new__stage .h2hc-whats-new__nav--prev {
		left: 0;
	}

	.h2hc-whats-new__stage .h2hc-whats-new__nav--next {
		right: 0;
		margin-top: 0;
	}

	.h2hc-whats-new__pager {
		margin-top: 3.25rem;
	}
}

/* Legacy class kept so old cached CSS doesn’t leave a broken rule. */
.h2hc-whats-new__arrow {
	display: none;
}

/* ------------------------------------------------------------------
   News / blog single — blue title bar + 2/3 content + overlapping
   beige sidebar (featured image + ACF optional_link).
   ------------------------------------------------------------------ */

.h2hc-post-single {
	--h2hc-post-aside-pull: clamp(4.5rem, 10vw, 7.5rem);
}

.h2hc-post-hero {
	position: relative;
	z-index: 0;
}

/* Same centred 1300px rail as .h2hc-post-body (contentSize, not wideSize). */
.h2hc-post-hero > .wp-block-post-title,
.h2hc-post-hero > .wp-block-post-date,
.h2hc-post-hero > .h2hc-post-hero__date {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: left;
	box-sizing: border-box;
}

.h2hc-post-hero .wp-block-post-title {
	margin-top: 0;
	margin-bottom: 0.5rem;
	/* Leave room for the overlapping sidebar without shifting the left edge. */
	padding-right: clamp(0px, 34%, 26rem);
	font-family: "Source Serif 4", Georgia, serif;
	font-size: clamp(2.5rem, 8vw, 4rem);
	font-weight: 500;
	line-height: 1.1;
	color: var(--wp--preset--color--white);
}

.h2hc-post-hero .wp-block-post-date,
.h2hc-post-hero .h2hc-post-hero__date {
	margin-top: 0;
	margin-bottom: 0;
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--gold);
}

.h2hc-post-body {
	position: relative;
	z-index: 1;
}

.h2hc-post-layout {
	align-items: flex-start;
	gap: clamp(1.5rem, 3vw, 2.5rem) !important;
}

.h2hc-post-main {
	padding-top: var(--wp--preset--spacing--50);
	min-width: 0;
}

.h2hc-post-main .wp-block-post-content > *:first-child {
	margin-top: 0;
}

.h2hc-post-aside {
	min-width: 0;
}

/* Pull the cream card up into the blue bar when sidebar has content. */
.h2hc-post-aside:has(.h2hc-post-sidebar) {
	margin-top: calc(-1 * var(--h2hc-post-aside-pull));
}

/* Full-width content when no featured image / optional link. */
.h2hc-post-layout:not(:has(.h2hc-post-sidebar)) .h2hc-post-aside {
	display: none;
}

.h2hc-post-layout:not(:has(.h2hc-post-sidebar)) .h2hc-post-main {
	flex-basis: 100% !important;
	width: 100%;
}

.h2hc-post-sidebar {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding: 1.25rem;
	background: var(--wp--preset--color--beige);
	border-radius: 12px;
}

.h2hc-post-sidebar__media {
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
	aspect-ratio: 1 / 1;
	background: color-mix(in srgb, var(--wp--preset--color--navy) 8%, white);
}

.h2hc-post-sidebar__media img {
	display: block;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding: 0.85rem 1rem;
	object-fit: contain;
	object-position: center;
}

.h2hc-post-sidebar__cta {
	margin: 0;
	text-align: left;
}

.h2hc-post-sidebar__cta-link {
	display: inline-block;
	padding: 0.7rem 1.75rem;
	border-radius: 999px;
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--white) !important;
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none !important;
	transition: background-color 0.15s ease;
}

.h2hc-post-sidebar__cta-link:hover,
.h2hc-post-sidebar__cta-link:focus-visible {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--white) !important;
}

.h2hc-post-sidebar__empty {
	margin: 0;
	padding: 1rem;
	color: var(--wp--preset--color--navy);
	font-size: 0.9rem;
}

/* External event (Events of Interest) — same shell as news; date above title. */
.h2hc-external-event-hero > .h2hc-post-hero__date,
.h2hc-external-event-hero > .wp-block-post-date {
	margin-bottom: 0.65rem;
}

.h2hc-external-event-hero > .wp-block-post-title {
	margin-bottom: 0;
}

.h2hc-external-event-single .h2hc-post-main > .wp-block-heading:first-child {
	margin-top: 0;
	margin-bottom: 1.25rem;
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-weight: 500;
}

.h2hc-external-event-sidebar__details {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.h2hc-external-event-sidebar__headline {
	margin: 0;
	color: var(--wp--preset--color--slate-purple);
	font-family: var(--wp--preset--font-family--source-serif-4);
	font-size: clamp(1.5rem, 2.5vw, 1.85rem);
	font-weight: 500;
	line-height: 1.2;
}

.h2hc-external-event-sidebar__when {
	margin: 0;
	color: var(--wp--preset--color--navy);
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.4;
}

.h2hc-external-event-sidebar__when strong {
	font-weight: 700;
}

.h2hc-external-event-sidebar__location {
	margin: 0;
	color: var(--wp--preset--color--navy);
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

.h2hc-external-event-sidebar .h2hc-post-sidebar__cta {
	margin-top: 0.35rem;
}

/* ACF photo gallery under post content. */
.h2hc-post-gallery {
	width: 100%;
	max-width: none;
	margin-top: var(--wp--preset--spacing--50);
	box-sizing: border-box;
}

.h2hc-post-gallery__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.h2hc-post-gallery--small .h2hc-post-gallery__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.h2hc-post-gallery--large .h2hc-post-gallery__grid {
	grid-template-columns: minmax(0, 1fr);
}

.h2hc-post-gallery__item {
	min-width: 0;
}

.h2hc-post-gallery__figure {
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
	background: color-mix(in srgb, var(--wp--preset--color--navy) 6%, white);
}

.h2hc-post-gallery__figure img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	vertical-align: middle;
}

@media (max-width: 781px) {
	.h2hc-post-hero .wp-block-post-title {
		padding-right: 0;
		font-size: clamp(2rem, 9vw, 2.75rem);
	}

	.h2hc-post-aside:has(.h2hc-post-sidebar) {
		margin-top: 0;
		order: -1;
	}

	.h2hc-post-main {
		padding-top: var(--wp--preset--spacing--40);
	}

	.h2hc-post-layout {
		flex-direction: column;
	}

	.h2hc-post-gallery__grid,
	.h2hc-post-gallery--small .h2hc-post-gallery__grid {
		grid-template-columns: 1fr;
	}
}

@supports not (selector(:has(*))) {
	.h2hc-post-aside {
		margin-top: calc(-1 * var(--h2hc-post-aside-pull));
	}

	@media (max-width: 781px) {
		.h2hc-post-aside {
			margin-top: 0;
		}
	}
}

/* —— Publication singles (newsletter iframe vs standard) —— */
.h2hc-publication-layout {
	width: 100%;
	max-width: none;
}

.h2hc-publication-layout.alignfull {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* Newsletter: full-viewport-bleed sections (escape any padded parents). */
.h2hc-publication-layout--newsletter .h2hc-publication-layout__hero,
.h2hc-publication-layout--newsletter .h2hc-publication-layout__embed {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
}

body.single-h2hc-publication {
	overflow-x: clip;
}

.h2hc-publication-layout__hero {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40)
		var(--wp--preset--spacing--70);
	text-align: center;
}

.h2hc-publication-layout__hero-bar {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 1300px);
	margin: 0 auto var(--wp--preset--spacing--50);
	box-sizing: border-box;
	text-align: left;
}

.h2hc-publication-layout__back {
	margin: 0;
}

.h2hc-publication-layout__back a {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--gold);
}

.h2hc-publication-layout__back a:hover,
.h2hc-publication-layout__back a:focus-visible {
	color: var(--wp--preset--color--sand);
}

.h2hc-publication-layout__hero-inner {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.h2hc-publication-layout__eyebrow {
	margin: 0 0 0.75rem;
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sand);
}

.h2hc-publication-layout__title {
	margin: 0;
	font-family: "Source Serif 4", Georgia, serif;
	font-size: clamp(2.25rem, 6vw, 3.5rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--white);
}

.h2hc-publication-layout__embed {
	background: #fff;
	padding: 0;
}

.newsletter-layout {
	width: 100%;
	max-width: none;
	margin: 0;
	box-sizing: border-box;
}

.newsletter-layout iframe,
.h2hc-newsletter-iframe {
	display: block;
	width: 100%;
	max-width: none;
	border: 0;
	background: #fff;
	vertical-align: top;
}

/* Standard publication layout (PHP-rendered columns). */
.h2hc-publication-layout--standard .h2hc-post-hero {
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
}

.h2hc-publication-layout--standard .h2hc-post-hero__inner {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.h2hc-publication-layout--standard .h2hc-post-hero__title {
	margin-top: 0;
	margin-bottom: 0.5rem;
	padding-right: clamp(0px, 34%, 26rem);
	font-family: "Source Serif 4", Georgia, serif;
	font-size: clamp(2.5rem, 8vw, 4rem);
	font-weight: 500;
	line-height: 1.1;
}

.h2hc-publication-layout--standard .h2hc-post-body {
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
	max-width: var(--wp--style--global--content-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.h2hc-publication-layout--standard .h2hc-post-layout {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.h2hc-publication-layout--standard .h2hc-post-main {
	flex: 1 1 66.66%;
	min-width: 0;
}

.h2hc-publication-layout--standard .h2hc-post-aside {
	flex: 0 0 33.33%;
	min-width: 0;
}

@media (max-width: 781px) {
	.h2hc-publication-layout--standard .h2hc-post-hero__title {
		padding-right: 0;
		font-size: clamp(2rem, 9vw, 2.75rem);
	}

	.h2hc-publication-layout--standard .h2hc-post-layout {
		flex-direction: column;
	}

	.h2hc-publication-layout--standard .h2hc-post-aside {
		flex-basis: auto;
		order: -1;
		margin-top: 0;
	}
}
