/**
 * Programs & Grants list + single — Figma 3204:3373 / list variant 3211:3628 /
 * list card 3211:3000 / mobile 3211:5145 / single 3222:3309 / 3222:3479.
 */

/* -------------------------------------------------------------------------- */
/* Hero (list Divi section + single shortcode)                                */
/* -------------------------------------------------------------------------- */

.wsfd-pg-hero {
	position: relative;
	min-height: var(--wsfd-photo-hero-parent-height, 300px);
	height: auto;
	display: flex !important;
	flex-direction: column !important;
	/* Column axis: justify = vertical. flex-end = H1 at bottom (Figma 3204:3375). */
	justify-content: flex-end !important;
	align-items: stretch !important;
	padding: 32px var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px));
	background-color: var(--wsfd-protection, #371f1b);
	background-size: cover !important;
	background-position: center 30% !important;
	background-repeat: no-repeat !important;
	/* Do not isolate — creates a stacking context that can paint over header dropdowns. */
	isolation: auto;
	z-index: 0;
	box-sizing: border-box;
}

/* Beat Divi TB dynamic CSS (center!important / top!important on section_0_tb_body).
 * Also beat TB longhand padding-left/right:64px so H1/crumbs match content rail
 * Beat TB padding-left/right:64px — title inset = --wsfd-page-inline (64px gutters). */
body .et_pb_section.wsfd-pg-hero,
body .et_pb_section.et_pb_section_0_tb_body.wsfd-pg-hero,
body .et_pb_section_0_tb_body.wsfd-pg-hero.et_flex_section {
	background-position: center 30% !important;
	background-size: cover !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	align-items: stretch !important;
	padding-left: var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)) !important;
	padding-right: var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)) !important;
}

/* Hero veil: only with featured image. Topo / non-featured → no overlay. */
.wsfd-pg-hero::before {
	content: none;
	display: none;
}

/* Featured-image heroes — solid #371f1b @75% multiply.
 * isolation:isolate so mix-blend-mode multiplies against the photo BG
 * (not the page behind). Header z-index (100100) stays above hero. */
body.page-has-featured .wsfd-pg-hero,
body.page-has-featured .et_pb_section.wsfd-pg-hero,
.wsfd-pg-hero.wsfd-hero--has-featured,
.et_pb_section.wsfd-pg-hero.wsfd-hero--has-featured,
.wsfd-pg-hero--has-featured {
	isolation: isolate;
}

body.page-has-featured .wsfd-pg-hero::before,
body.page-has-featured .et_pb_section.wsfd-pg-hero::before,
.wsfd-pg-hero.wsfd-hero--has-featured::before,
.et_pb_section.wsfd-pg-hero.wsfd-hero--has-featured::before,
.wsfd-pg-hero--has-featured::before {
	content: '';
	display: block;
	position: absolute;
	inset: 0;
	background: #371f1b;
	opacity: 0.75;
	mix-blend-mode: multiply;
	pointer-events: none;
	z-index: 0;
}

.wsfd-pg-hero--single {
	gap: 6px;
	padding-top: var(--wsfd-hero-crumb-pad-top, 100px);
}

.wsfd-pg-hero__crumbs {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.4;
	color: #fff;
}

/* Row 78 — beat Divi global link green (#448843) on photo heroes. */
.wsfd-pg-hero__crumbs a {
	color: #fff !important;
	text-decoration: none;
}

.wsfd-pg-hero__crumbs a:hover,
.wsfd-pg-hero__crumbs a:focus-visible {
	color: #fff !important;
	text-decoration: underline;
}

.wsfd-pg-hero__crumbs a:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-hero__crumb-sep {
	display: inline-block;
	padding: 0 2px;
	opacity: 0.9;
}

/* Decorative > via CSS — no text node / no aria-hidden (EDAC). */
.wsfd-pg-hero__crumb-sep::before {
	content: '>';
}

.wsfd-pg-hero__crumb-current {
	color: #f4ebe0;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wsfd-pg-hero h1.et_pb_module_header,
.wsfd-pg-hero .et_pb_heading_container h1,
.wsfd-pg-hero .et_pb_heading_container .et_pb_module_header,
.wsfd-pg-hero .wsfd-pg-hero__title h1,
.wsfd-pg-hero .wsfd-pg-hero__title .et_pb_module_header,
.wsfd-pg-hero__title,
h1.wsfd-pg-hero__title {
	position: relative;
	z-index: 1;
	margin: 0 !important;
	color: #fff !important;
	/* Figma Heading 1: Dunbar Tall Extra Bold 64/70 (weight ~750). */
	font-family: 'Dunbar Tall', dunbar-tall, var(--wsfd-font-display) !important;
	font-weight: var(--wsfd-h1-weight, 700) !important;
	font-size: var(--wsfd-h1-size, 64px) !important;
	line-height: var(--wsfd-h1-lh, 70px) !important;
	letter-spacing: 0 !important;
	text-align: left !important;
}

/* Divi list hero — pin title to bottom; do not use justify flex-start on column. */
.et_pb_section.wsfd-pg-hero,
.divi-section.wsfd-pg-hero,
section.wsfd-pg-hero {
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	align-items: stretch !important;
	min-height: var(--wsfd-photo-hero-parent-height, 300px) !important;
	height: auto !important;
}

/* Hero shell lock (intentional) — direct-child only */
.et_pb_section.wsfd-pg-hero > .et_pb_row,
.wsfd-pg-hero > .et_pb_row,
.wsfd-pg-hero > .et-l--row {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	margin-top: auto !important;
	/* Kill Divi .et_block_row vertical pad so H1 bottom space = section py only (Figma 32). */
	padding: 0 !important;
	align-self: stretch !important;
}

.et_pb_section.wsfd-pg-hero > .et_pb_row > .et_pb_column,
.wsfd-pg-hero > .et_pb_row > .et_pb_column {
	width: 100% !important;
	max-width: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	align-items: flex-start !important;
}

.et_pb_section.wsfd-pg-hero > .et_pb_row > .et_pb_column > .et_pb_heading,
.wsfd-pg-hero > .et_pb_row > .et_pb_column > .et_pb_heading,
.wsfd-pg-hero .wsfd-pg-hero__title.et_pb_module {
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
	align-self: flex-start !important;
}

.et_pb_section.wsfd-pg-hero .et_pb_heading_container {
	text-align: left !important;
}

/* -------------------------------------------------------------------------- */
/* List                                                                       */
/* -------------------------------------------------------------------------- */

.wsfd-pg-list {
	display: grid !important;
	grid-template-columns: 280px minmax(0, 1fr) !important;
	grid-template-rows: auto;
	column-gap: 48px;
	row-gap: 48px;
	align-items: start;
	padding: 48px var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px));
	background: #fff;
	box-sizing: border-box;
	width: 100%;
}

/* Left filter column (not full-width above cards). */
.wsfd-pg-list__filters-col {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
	min-width: 0;
}

.wsfd-pg-list__intro {
	margin: 0 0 12px;
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.5;
	color: var(--wsfd-conserve, #000d04);
}

.wsfd-pg-list__sidebar {
	width: 100%;
	position: sticky;
	top: 24px;
	box-sizing: border-box;
	padding: 12px;
	border: 3px solid var(--wsfd-growth, #f4ebe0);
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	gap: 32px;
	background: #fff;
}

.wsfd-pg-list__sidebar-heading {
	margin: 0;
	font-family: var(--wsfd-font-serif) !important;
	font-weight: 600 !important;
	font-size: 22px !important;
	line-height: 26px !important;
	color: var(--wsfd-protection, #371f1b) !important;
}

.wsfd-pg-list__rule {
	height: 1px;
	width: 100%;
	margin: 8px 0;
	background: var(--wsfd-growth, #f4ebe0);
}

.wsfd-pg-list__view-toggle {
	display: flex;
	gap: 8px;
	align-items: center;
}

.wsfd-pg-list__view-btn {
	appearance: none;
	box-sizing: border-box;
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: 20px;
	border: 2px solid rgba(255, 255, 255, 0.5);
	background: var(--wsfd-protection, #371f1b);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.wsfd-pg-list__view-btn.is-active {
	background: #d1422a;
}

/* Figma 3209:1882 — inactive hover = Growth fill + dark icon (R53) */
.wsfd-pg-list__view-btn:hover:not(.is-active) {
	background: var(--wsfd-growth, #f4ebe0);
}

.wsfd-pg-list__view-btn:hover:not(.is-active) img {
	filter: brightness(0);
}

.wsfd-pg-list__view-btn:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-list__view-btn img {
	display: block;
	width: 16px;
	height: auto;
	pointer-events: none;
}

.wsfd-pg-list__view-btn img[hidden] {
	display: none;
}

.wsfd-pg-list__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: flex-start;
}

.wsfd-pg-list__filter {
	appearance: none;
	box-sizing: border-box;
	min-height: 36px;
	padding: 8px 12px;
	border-radius: 20px;
	border: 2px solid rgba(255, 255, 255, 0.5);
	background: var(--wsfd-protection, #371f1b);
	background-color: var(--wsfd-protection, #371f1b);
	color: #fff;
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wsfd-pg-list__filter.is-active {
	background: #d1422a;
	background-color: #d1422a;
	color: #fff;
}

/* Figma 3208:1173 — hover = Growth fill + Protection text (R53) */
.wsfd-pg-list__filter:hover:not(.is-active) {
	background: var(--wsfd-growth, #f4ebe0);
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-list__filter:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

/*
 * Light card theme — sidebar category pills reverse default/hover
 * (same token swap as cards; Selected stays Advocacy #d1422a).
 */
[data-wsfd-card-theme="light"] .wsfd-pg-list__filter {
	background: var(--wsfd-growth, #f4ebe0);
	background-color: var(--wsfd-growth, #f4ebe0);
	color: var(--wsfd-protection, #371f1b);
	border-color: var(--wsfd-bark, #d2b99a);
}

[data-wsfd-card-theme="light"] .wsfd-pg-list__filter.is-active {
	background: #d1422a;
	background-color: #d1422a;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.5);
}

[data-wsfd-card-theme="light"] .wsfd-pg-list__filter:hover:not(.is-active) {
	background: var(--wsfd-protection, #371f1b);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.5);
}

.wsfd-pg-list__results {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 40px;
	align-self: start;
}

.wsfd-pg-list__group {
	margin: 0;
	min-width: 0;
}

.wsfd-pg-list__group.is-hidden {
	display: none;
}

.wsfd-pg-list__group-heading {
	margin: 0;
	font-family: var(--wsfd-font-serif) !important;
	font-weight: 600 !important;
	font-size: 22px !important;
	line-height: 26px !important;
	color: var(--wsfd-protection, #371f1b) !important;
}

.wsfd-pg-list__group .wsfd-pg-list__rule {
	margin: 8px 0 16px;
}

.wsfd-pg-list__cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 24px;
}

.wsfd-pg-list__cards.is-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wsfd-pg-list__cards.is-list {
	grid-template-columns: 1fr;
	/* Figma List 3211:3628 / Cards 3211:2999: gap-y 16 */
	gap: 16px;
}

.wsfd-pg-card {
	margin: 0;
	min-width: 0;
}

.wsfd-pg-card.is-hidden {
	display: none;
}

.wsfd-pg-card__link {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	height: 100%;
	box-sizing: border-box;
	padding: 16px 24px 24px;
	border-radius: 8px;
	border: 4px solid var(--wsfd-ember, #633c35);
	background: var(--wsfd-protection, #371f1b);
	color: #fff;
	text-decoration: none;
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease;
}

/*
 * Beat UA / global a:visited (near-black). Dark cards stay white for
 * :link and :visited; hover/focus-visible still invert to Growth.
 */
.wsfd-pg-card__link:link,
.wsfd-pg-card__link:visited {
	color: #fff;
}

.wsfd-pg-card__link:link .wsfd-pg-card__title,
.wsfd-pg-card__link:visited .wsfd-pg-card__title,
.wsfd-pg-card__link:link .wsfd-pg-card__excerpt,
.wsfd-pg-card__link:visited .wsfd-pg-card__excerpt {
	/*
	 * Inherit link fill (via __body) so AC sees a solid computed bg and
	 * hover fades as one surface — do not set a second transitioning bg.
	 */
	color: #fff;
	background-color: inherit;
}

.wsfd-pg-card__link:hover,
.wsfd-pg-card__link:focus-visible,
.wsfd-pg-card__link:visited:hover,
.wsfd-pg-card__link:visited:focus-visible {
	background: var(--wsfd-growth, #f4ebe0);
	border-color: var(--wsfd-bark, #d2b99a);
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-card__link:hover .wsfd-pg-card__title,
.wsfd-pg-card__link:focus-visible .wsfd-pg-card__title,
.wsfd-pg-card__link:visited:hover .wsfd-pg-card__title,
.wsfd-pg-card__link:visited:focus-visible .wsfd-pg-card__title {
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-card__link:hover .wsfd-pg-card__excerpt,
.wsfd-pg-card__link:focus-visible .wsfd-pg-card__excerpt,
.wsfd-pg-card__link:visited:hover .wsfd-pg-card__excerpt,
.wsfd-pg-card__link:visited:focus-visible .wsfd-pg-card__excerpt {
	color: var(--wsfd-conserve, #000d04);
}

.wsfd-pg-card__link:hover .wsfd-pg-card__media,
.wsfd-pg-card__link:focus-visible .wsfd-pg-card__media {
	border-color: var(--wsfd-bark, #d2b99a);
}

/* Figma card hover — dark veil + centered Arrow right-circle (50px). */
.wsfd-pg-card__media::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 0;
	background: rgba(0, 0, 0, 0.5);
	opacity: 0;
	pointer-events: none;
	z-index: 1;
	transition: opacity 0.25s ease;
}

.wsfd-pg-card__media::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: 50px;
	height: 50px;
	border-radius: 0;
	transform: translate(-50%, -50%) scale(0.92);
	opacity: 0;
	pointer-events: none;
	z-index: 2;
	background-color: #fff;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='8' cy='8' r='7' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M5.5 8h5M8 5.5L10.5 8 8 10.5' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='8' cy='8' r='7' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M5.5 8h5M8 5.5L10.5 8 8 10.5' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.wsfd-pg-card__link:hover .wsfd-pg-card__media::before,
.wsfd-pg-card__link:focus-visible .wsfd-pg-card__media::before,
.wsfd-pg-card__link:hover .wsfd-pg-card__media::after,
.wsfd-pg-card__link:focus-visible .wsfd-pg-card__media::after {
	opacity: 1;
}

.wsfd-pg-card__link:hover .wsfd-pg-card__media::after,
.wsfd-pg-card__link:focus-visible .wsfd-pg-card__media::after {
	transform: translate(-50%, -50%) scale(1);
}

.wsfd-pg-card__link:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

/*
 * List card — Figma Program/Grant Card 3211:3000 (horizontal):
 * padding 16; image 160×90; image→body 32; pills→text 6; title→excerpt 2.
 * Grid places media left, pills + body in the text column (not pills full-bleed above).
 */
.wsfd-pg-list__cards.is-list .wsfd-pg-card__link {
	display: grid;
	grid-template-columns: 160px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 32px;
	row-gap: 6px;
	align-items: start;
	padding: 16px;
	height: auto;
}

.wsfd-pg-list__cards.is-list .wsfd-pg-card__media {
	grid-column: 1;
	grid-row: 1 / span 2;
	width: 160px;
	height: 90px;
	flex: none;
	align-self: start;
}

.wsfd-pg-list__cards.is-list .wsfd-pg-card__pills {
	grid-column: 2;
	grid-row: 1;
	width: auto;
	max-width: 100%;
}

.wsfd-pg-list__cards.is-list .wsfd-pg-card__body {
	grid-column: 2;
	grid-row: 2;
	flex: none;
	width: auto;
	max-width: 100%;
	margin-top: 0;
	gap: 2px;
}

.wsfd-pg-card__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

.wsfd-pg-card__pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	max-width: 100%;
	padding: 8px 16px;
	border-radius: 20px;
	border: 2px solid rgba(255, 255, 255, 0.5);
	font-family: var(--wsfd-font-body);
	font-size: 13px;
	line-height: 1.25;
	text-align: center;
	white-space: normal;
	overflow-wrap: anywhere;
	color: #fff;
}

.wsfd-pg-card__pill--primary {
	background: #063915;
	color: #fff;
}

.wsfd-pg-card__pill--type {
	background: var(--wsfd-ember, #633c35);
	color: #fff;
}

/* Card hover sets link color dark — keep pill “buttons” white on dark fills (mobile sticky :hover too) */
.wsfd-pg-card__link:hover .wsfd-pg-card__pill,
.wsfd-pg-card__link:focus-visible .wsfd-pg-card__pill,
.wsfd-pg-card__link:active .wsfd-pg-card__pill {
	color: #fff;
}

.wsfd-pg-card__media {
	display: block;
	position: relative;
	width: 100%;
	height: 140px;
	border-radius: 10px;
	border: 2px solid var(--wsfd-ember, #633c35);
	overflow: hidden;
	background: #2a1714;
	isolation: isolate;
}

.wsfd-pg-card__media.is-empty {
	background: #4a4a4a;
}

.wsfd-pg-card__img,
.wsfd-pg-card__media-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Fill padding box; media overflow:hidden clips to frame radius (avoid inherit under border). */
	border-radius: 0;
}

/* Media → title closer (~8px); pills → media stays 16 via parent gap */
.wsfd-pg-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
	margin-top: -8px; /* net media-to-title ~8 when parent gap is 16 */
	/* Pass link fill to title/excerpt for AC sampling + synced hover. */
	background-color: inherit;
}

.wsfd-pg-card__title {
	font-family: var(--wsfd-font-display);
	font-weight: 700;
	font-size: 24px;
	line-height: 30px;
	color: #fff;
	background-color: inherit;
	transition: color 0.25s ease;
}

.wsfd-pg-card__excerpt {
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.4;
	color: #fff;
	/* Inherit card fill so contrast tools sample the real surface, not page/#fff. */
	background-color: inherit;
	transition: color 0.25s ease;
}

/* Light card theme — reverse default/hover pairs (tokens only). */
[data-wsfd-card-theme="light"] .wsfd-pg-card__link,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:link,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited {
	background: var(--wsfd-growth, #f4ebe0);
	border-color: var(--wsfd-bark, #d2b99a);
	color: var(--wsfd-protection, #371f1b);
}

[data-wsfd-card-theme="light"] .wsfd-pg-card__title,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:link .wsfd-pg-card__title,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited .wsfd-pg-card__title {
	color: var(--wsfd-protection, #371f1b);
	background-color: inherit;
}

[data-wsfd-card-theme="light"] .wsfd-pg-card__excerpt,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:link .wsfd-pg-card__excerpt,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited .wsfd-pg-card__excerpt {
	color: var(--wsfd-conserve, #000d04);
	background-color: inherit;
}

[data-wsfd-card-theme="light"] .wsfd-pg-card__media {
	border-color: var(--wsfd-bark, #d2b99a);
}

[data-wsfd-card-theme="light"] .wsfd-pg-card__link:hover,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:focus-visible,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited:hover,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited:focus-visible {
	background: var(--wsfd-protection, #371f1b);
	border-color: var(--wsfd-ember, #633c35);
	color: #fff;
}

[data-wsfd-card-theme="light"] .wsfd-pg-card__link:hover .wsfd-pg-card__title,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:focus-visible .wsfd-pg-card__title,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited:hover .wsfd-pg-card__title,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited:focus-visible .wsfd-pg-card__title {
	color: #fff;
}

[data-wsfd-card-theme="light"] .wsfd-pg-card__link:hover .wsfd-pg-card__excerpt,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:focus-visible .wsfd-pg-card__excerpt,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited:hover .wsfd-pg-card__excerpt,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited:focus-visible .wsfd-pg-card__excerpt {
	color: #fff;
}

[data-wsfd-card-theme="light"] .wsfd-pg-card__link:hover .wsfd-pg-card__media,
[data-wsfd-card-theme="light"] .wsfd-pg-card__link:focus-visible .wsfd-pg-card__media {
	border-color: var(--wsfd-ember, #633c35);
}

.wsfd-pg-list__empty {
	grid-column: 1 / -1;
	padding: 24px;
	color: var(--wsfd-protection, #371f1b);
}

/* -------------------------------------------------------------------------- */
/* Single                                                                     */
/* -------------------------------------------------------------------------- */

/*
 * Theme Builder Code module may sit in a Divi content-width row.
 * List heroes are full-bleed sections; singles must match Figma 3222:3309
 * (full viewport width + 64px gutters on hero/content).
 * Direct-child shell only (rows 2/25) — do not zero nested Divi body rows.
 */
body.single-program-grant .wsfd-pg-single-body.et_pb_section > .et_pb_row,
body.single-program-grant .wsfd-pg-single-body.et_pb_section > .et_pb_row > .et_pb_column,
body.single-program-grant .wsfd-pg-single-body.et_pb_section > .et_pb_row > .et_pb_column > .et_pb_code,
body.single-program-grant .wsfd-pg-single-body.et_pb_section > .et_pb_row > .et_pb_column > .et_pb_code .et_pb_code_inner {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/*
 * Divi dynamic TB CSS (et-cache critical):
 *   @media (min-width:981px) { .et_block_row { padding: 2% 0; } }
 *   @media (min-width:1350px) { .et_block_row { padding: 27px 0; } }
 * That vertical padding sits between the black header and the hero (white gap).
 */
body.single-program-grant .wsfd-pg-single-body.et_pb_section > .et_pb_row,
body.single-program-grant .wsfd-pg-single-body.et_pb_section > .et_pb_row > .et_block_row {
	padding: 0 !important;
}

body.single-program-grant .wsfd-pg-single-body.et_pb_section {
	padding: 0 !important;
}

/*
 * TB Code chrome + Post Content siblings → sidebar | editable content (FE + VB).
 * Mirrors .wsfd-page-body / .wsfd-news-single-body grids so PG singles keep the
 * hero/sidebar/apply chrome while modules live in the Post Content module.
 *
 * Critical: items placed at grid-column:2 MUST only run when the template has
 * two EXPLICIT columns. On R136 fullwidth (1 track), column:2 creates an
 * implicit track → half-width hero + empty left rail (Living Snow Fence).
 */
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content),
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) {
	display: grid !important;
	grid-template-columns: 280px minmax(0, 1fr);
	column-gap: 48px;
	row-gap: 32px;
	align-items: start;
	box-sizing: border-box;
	padding: 0 var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)) 0;
	background: #fff;
}

/* R136 — no sidebar chrome: single content column (no implicit tracks). */
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_post_content),
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_fullwidth_post_content) {
	grid-template-columns: minmax(0, 1fr);
	column-gap: 0;
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) > .et_pb_code,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) > .et_pb_code,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .et_pb_code_inner,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .et_pb_code_inner,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__layout,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__layout,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__main,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__main {
	display: contents !important;
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-hero,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-hero {
	grid-column: 1 / -1;
	grid-row: 1;
	margin-left: calc(-1 * var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)));
	margin-right: calc(-1 * var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)));
	width: auto;
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__sidebar,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__sidebar {
	grid-column: 1;
	grid-row: 2 / span 2;
	width: 280px;
	max-width: 100%;
	position: sticky;
	top: 24px;
	margin-top: 0;
	z-index: 1;
	align-self: start;
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__sidebar.is-unstuck,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__sidebar.is-unstuck,
.wsfd-pg-single__sidebar.is-unstuck {
	position: static !important;
}

/* Nested content slot is empty when Post Content sibling owns the modules. */
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__content,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__content {
	display: none !important;
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) > .et_pb_post_content,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) > .et_pb_fullwidth_post_content {
	grid-column: 2;
	grid-row: 2;
	min-width: 0;
	margin-top: 0;
	width: 100% !important;
	max-width: 100% !important;
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--wsfd-conserve, #000d04);
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__apply,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__apply {
	grid-column: 2;
	grid-row: 3;
	min-width: 0;
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__related-mobile,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__related-mobile {
	grid-column: 2;
	grid-row: 4;
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-page-related-pg,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-page-related-pg {
	grid-column: 1 / -1;
	grid-row: 5;
	margin-left: calc(-1 * var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)));
	margin-right: calc(-1 * var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)));
}

.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-related-modal,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-related-modal {
	grid-column: 1 / -1;
}

/*
 * R136 fullwidth: keep every rail on explicit column 1 (Post Content / apply /
 * related must NOT use grid-column:2 — that invents a second track).
 */
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_post_content) > .et_pb_post_content,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_fullwidth_post_content) > .et_pb_fullwidth_post_content,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_post_content) .wsfd-pg-single__apply,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__apply,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_post_content) .wsfd-pg-single__related-mobile,
.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single--fullwidth):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__related-mobile {
	grid-column: 1;
}

/*
 * FE: kill Divi `.et_flex_section { padding: var(--section-padding) 0 }` (~56px)
 * so the 32px grid row-gap under the hero matches pre-0.1.184 / Figma. #et-boc
 * beats an un-!important padding-top; zero the var + force padding.
 */
.wsfd-pg-single-body .et_pb_column > .et_pb_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section:first-child,
.wsfd-pg-single-body .et_pb_column > .et_pb_fullwidth_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section:first-child,
.wsfd-pg-single-body .et_pb_column > .et_pb_post_content > .et_builder_inner_content > .et_pb_section:first-child,
.wsfd-pg-single-body .et_pb_column > .et_pb_fullwidth_post_content > .et_builder_inner_content > .et_pb_section:first-child {
	--section-padding: 0;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Full-width rows inside PG Post Content (same as news/pages content rail). */
.wsfd-pg-single-body .et_pb_post_content .et_pb_row:not([class*="et_flex_column"]),
.wsfd-pg-single-body .et_pb_fullwidth_post_content .et_pb_row:not([class*="et_flex_column"]) {
	width: 100% !important;
	max-width: 100% !important;
}

.wsfd-pg-single-body .et_pb_post_content .et_pb_row,
.wsfd-pg-single-body .et_pb_post_content .et_flex_row,
.wsfd-pg-single-body .et_pb_fullwidth_post_content .et_pb_row,
.wsfd-pg-single-body .et_pb_fullwidth_post_content .et_flex_row {
	--row-gutter-horizontal: var(--wsfd-row-gutter, 32px);
	--horizontal-gap: var(--wsfd-row-gutter, 32px);
	column-gap: var(--wsfd-row-gutter, 32px);
	width: 100% !important;
	max-width: 100% !important;
}

.wsfd-pg-single-body .et_pb_post_content .et_pb_row > .et_pb_column,
.wsfd-pg-single-body .et_pb_post_content .et_flex_row > .et_pb_column,
.wsfd-pg-single-body .et_pb_fullwidth_post_content .et_pb_row > .et_pb_column,
.wsfd-pg-single-body .et_pb_fullwidth_post_content .et_flex_row > .et_pb_column {
	margin-right: 0 !important;
}

/* VB: flush Post Content outline (VB only — do not weaken FE). */
body.et-fb .wsfd-pg-single-body .et_pb_column > .et_pb_post_content,
body.et-fb .wsfd-pg-single-body .et_pb_column > .et_pb_fullwidth_post_content {
	--section-padding: 0;
	padding: 0 !important;
}

body.et-fb .wsfd-pg-single-body .et_pb_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section,
body.et-fb .wsfd-pg-single-body .et_pb_fullwidth_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section,
body.et-fb .wsfd-pg-single-body .et_pb_post_content > .et_builder_inner_content > .et_pb_section,
body.et-fb .wsfd-pg-single-body .et_pb_fullwidth_post_content > .et_builder_inner_content > .et_pb_section {
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 0;
	padding-right: 0;
}

@media (max-width: 980px) {
	/*
	 * Auto-place visible grid children only. Explicit grid-row: 4/5/6 while
	 * sidebar/related are display:none still creates empty tracks, and
	 * row-gap stacks (3×24px ≈ 72px) as a huge top gap before Post Content.
	 */
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content),
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) {
		grid-template-columns: 1fr;
		padding: 0 24px 24px;
		column-gap: 24px;
		row-gap: 24px;
		grid-auto-flow: row;
	}

	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-hero,
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-hero {
		grid-column: 1;
		grid-row: auto;
		margin-left: -24px;
		margin-right: -24px;
	}

	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__sidebar,
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__sidebar {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
		position: static;
	}

	/* Related docs/links above Post Content (match regular pages). */
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__related-mobile,
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__related-mobile {
		grid-column: 1;
		grid-row: auto;
	}

	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) > .et_pb_post_content,
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) > .et_pb_fullwidth_post_content {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
	}

	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-pg-single__apply,
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-pg-single__apply {
		grid-column: 1;
		grid-row: auto;
	}

	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_post_content) .wsfd-page-related-pg,
	.wsfd-pg-single-body .et_pb_column:has(> .et_pb_code .wsfd-pg-single):has(> .et_pb_fullwidth_post_content) .wsfd-page-related-pg {
		grid-column: 1 / -1;
		grid-row: auto;
		margin-left: -24px;
		margin-right: -24px;
	}
}

/* Soften Divi gutters inside PG body — do not force column margins (R142/R144). */
body.single-program-grant .wsfd-pg-single__content .et_pb_row,
body.single-program-grant .wsfd-pg-single__content .et_flex_row {
	--row-gutter-horizontal: var(--wsfd-row-gutter, 32px);
}

/* Row 127 / R142 — full width of main column; do not zero Divi row padding. */
.wsfd-pg-single__content > .et_pb_section,
.wsfd-pg-single__content > .et_pb_row,
.wsfd-pg-single__content .et_pb_section,
.wsfd-pg-single__content .et_pb_row,
.wsfd-pg-single__content .et_flex_row {
	width: 100% !important;
	max-width: 100% !important;
}

.wsfd-pg-single {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: #fff;
}

.wsfd-pg-hero--single {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	/* Grow past parent height when title wraps so Figma 32px bottom pad stays clear. */
	height: auto;
	min-height: var(--wsfd-photo-hero-parent-height, 300px);
}

.wsfd-pg-single__layout {
	display: flex;
	gap: 48px;
	align-items: flex-start;
	padding: 32px var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px));
	background: #fff;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
}

.wsfd-pg-single__sidebar {
	flex: 0 0 280px;
	width: 280px;
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
}

/* R136 — no related docs/links/application: content full width. */
.wsfd-pg-single--fullwidth .wsfd-pg-single__sidebar,
.wsfd-pg-single--fullwidth .wsfd-pg-single__related-mobile {
	display: none;
}

.wsfd-pg-single--fullwidth .wsfd-pg-single__layout {
	display: block;
}

.wsfd-pg-single--fullwidth .wsfd-pg-single__main {
	width: 100%;
	max-width: none;
}

.wsfd-pg-single__jump {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 40px;
	padding: 6px 12px;
	border-radius: 4px;
	border: 2px solid #448843;
	background: #0f5624;
	color: #fff !important;
	font-family: var(--wsfd-font-serif);
	font-weight: 600;
	font-size: 18px;
	line-height: 1.4;
	text-decoration: none;
	text-align: center;
}

.wsfd-pg-single__jump:hover,
.wsfd-pg-single__jump:focus-visible {
	color: #fff !important;
}

.wsfd-pg-single__jump:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-related {
	width: 100%;
}

.wsfd-pg-related__toggle {
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	box-sizing: border-box;
	padding: 10px 16px;
	border: 0;
	border-radius: 8px;
	background: var(--wsfd-protection, #371f1b);
	color: #fff;
	cursor: pointer;
	text-align: left;
}

.wsfd-pg-related__toggle:hover,
.wsfd-pg-related__toggle:focus-visible {
	background: var(--wsfd-growth, #f4ebe0);
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-related__toggle:hover .wsfd-pg-related__label,
.wsfd-pg-related__toggle:focus-visible .wsfd-pg-related__label {
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-related__toggle:hover .wsfd-pg-related__badge,
.wsfd-pg-related__toggle:focus-visible .wsfd-pg-related__badge {
	background: #d1422a;
	border-color: #942c1b;
	color: #fff;
}

.wsfd-pg-related__toggle:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-related__label {
	font-family: var(--wsfd-font-display);
	font-weight: 500;
	font-size: 17px;
	line-height: 21px;
	color: #fff;
}

.wsfd-pg-related__badge {
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
	border-radius: 20px;
	border: 2px solid #448843;
	background: #063915;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wsfd-font-body);
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	color: #fff;
}

.wsfd-pg-related__badge::before {
	content: attr(data-count);
}

/* Related Documents / Links modal (Figma screenshot pattern) */
.wsfd-pg-related-modal {
	padding: 0;
	border: 0;
	border-radius: 16px;
	background: transparent;
	max-width: min(520px, calc(100vw - 32px));
	width: 100%;
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-related-modal::backdrop {
	background: rgba(55, 31, 27, 0.55);
}

.wsfd-pg-related-modal__panel {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding: 40px 32px 32px;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.22);
}

.wsfd-pg-related-modal__close {
	appearance: none;
	position: absolute;
	top: 16px;
	right: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--wsfd-growth, #f4ebe0);
	cursor: pointer;
}

.wsfd-pg-related-modal__close img {
	display: block;
	width: 14px;
	height: 14px;
}

.wsfd-pg-related-modal__close:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-related-modal__title {
	margin: 0 0 24px;
	padding: 0 24px;
	font-family: var(--wsfd-font-serif);
	font-weight: 600;
	font-size: 28px;
	line-height: 1.2;
	text-align: center;
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-related-modal__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.wsfd-pg-related-modal__row {
	display: flex;
	align-items: stretch;
	min-height: 48px;
	border-radius: 4px;
	overflow: hidden;
	background: var(--wsfd-growth, #f4ebe0);
}

.wsfd-pg-related-modal__name {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	min-width: 0;
	padding: 12px 16px;
	font-family: var(--wsfd-font-body);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.3;
	color: var(--wsfd-protection, #371f1b);
	overflow-wrap: anywhere;
}

.wsfd-pg-related-modal__action {
	flex: 0 0 48px;
	width: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #d1422a;
	text-decoration: none;
}

.wsfd-pg-related-modal__action:hover,
.wsfd-pg-related-modal__action:focus-visible {
	background: #942c1b;
}

.wsfd-pg-related-modal__action:focus-visible {
	outline: 2px solid #371f1b;
	outline-offset: -2px;
}

.wsfd-pg-related-modal__action-icon {
	display: block;
	width: 24px;
	height: 24px;
}

.wsfd-pg-related-modal__empty {
	margin: 0;
	padding: 8px 0 0;
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.4;
	text-align: center;
	color: #2c2c2c;
}

body.wsfd-pg-modal-open {
	overflow: hidden;
}

.wsfd-pg-single__main {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.wsfd-pg-single__content {
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.5;
	color: #000;
}

/* Row 106/111/112 — consistent in-text link style (bold + underline; none on hover). */
.wsfd-pg-single__content a {
	color: var(--wsfd-link, #063915);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wsfd-pg-single__content a:hover,
.wsfd-pg-single__content a:focus-visible {
	text-decoration: none;
}

.wsfd-pg-single__content a:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-single__content ul {
	margin: 0 0 15px;
	padding-left: 24px;
}

.wsfd-pg-single__content li {
	margin-bottom: 0;
}

/* FEPP / PG body image gallery (Gutenberg) */
.wsfd-pg-single__content .wp-block-gallery,
.wsfd-pg-single__content .wsfd-fepp-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 8px 0 24px;
	padding: 0;
	list-style: none;
}

.wsfd-pg-single__content .wp-block-gallery .wp-block-image,
.wsfd-pg-single__content .wsfd-fepp-gallery .wp-block-image {
	margin: 0;
	flex: 1 1 calc(50% - 8px);
	max-width: calc(50% - 8px);
}

.wsfd-pg-single__content .wp-block-gallery .wp-block-image a,
.wsfd-pg-single__content .wsfd-fepp-gallery .wp-block-image a {
	display: block;
	line-height: 0;
}

.wsfd-pg-single__content .wp-block-gallery .wp-block-image a:focus-visible,
.wsfd-pg-single__content .wsfd-fepp-gallery .wp-block-image a:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 3px;
}

.wsfd-pg-single__content .wp-block-gallery img,
.wsfd-pg-single__content .wsfd-fepp-gallery img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

@media (max-width: 767px) {
	.wsfd-pg-single__content .wp-block-gallery .wp-block-image,
	.wsfd-pg-single__content .wsfd-fepp-gallery .wp-block-image {
		flex: 1 1 100%;
		max-width: 100%;
	}
}

/*
 * R140 / GNA — story maps + Drive video embeds.
 * Child pages render modules via TB Post Content (.et_pb_post_content), not the
 * empty .wsfd-page__content slot — target both.
 */
.wsfd-pg-single__content .wp-block-embed,
.wsfd-pg-single__content .wsfd-pg-embed,
.wsfd-pg-single__content figure.wp-block-embed,
.wsfd-page__content .wsfd-pg-embed,
.wsfd-page-body .et_pb_post_content .wsfd-pg-embed,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-pg-embed {
	margin: 16px 0 28px;
	max-width: 100%;
}

.wsfd-pg-single__content .wsfd-pg-embed,
.wsfd-page__content .wsfd-pg-embed,
.wsfd-page-body .et_pb_post_content .wsfd-pg-embed,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-pg-embed {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000d04;
	border-radius: 8px;
	overflow: hidden;
}

/* Story maps — taller fixed viewport (user ask: larger embeds). */
.wsfd-pg-single__content .wsfd-pg-embed--storymap,
.wsfd-page__content .wsfd-pg-embed--storymap,
.wsfd-page-body .et_pb_post_content .wsfd-pg-embed--storymap,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-pg-embed--storymap {
	aspect-ratio: auto;
	height: 720px;
	min-height: 720px;
	background: transparent;
}

.wsfd-pg-single__content .wsfd-pg-embed iframe,
.wsfd-pg-single__content .wp-block-embed iframe,
.wsfd-pg-single__content .wp-block-video video,
.wsfd-page__content .wsfd-pg-embed iframe,
.wsfd-page-body .et_pb_post_content .wsfd-pg-embed iframe,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-pg-embed iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	max-width: 100%;
}

/* Raw Code-module Drive video (and any leftover bare storymap iframes). */
.wsfd-pg-single__content .et_pb_code_inner > iframe,
.wsfd-page__content .et_pb_code_inner > iframe[src*="drive.google.com"],
.wsfd-page-body .et_pb_post_content .et_pb_code_inner > iframe[src*="drive.google.com"],
.wsfd-page-body .et_pb_fullwidth_post_content .et_pb_code_inner > iframe[src*="drive.google.com"] {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: auto !important;
	aspect-ratio: 16 / 9;
	min-height: 480px;
	border: 0;
}

.wsfd-page-body .et_pb_post_content .et_pb_code_inner > iframe[src*="storymaps.arcgis.com"],
.wsfd-page-body .et_pb_fullwidth_post_content .et_pb_code_inner > iframe[src*="storymaps.arcgis.com"],
.wsfd-page__content .et_pb_code_inner > iframe[src*="storymaps.arcgis.com"],
.wsfd-pg-single__content .et_pb_code_inner > iframe[src*="storymaps.arcgis.com"] {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: 720px !important;
	min-height: 720px;
	border: 0;
	border-radius: 8px;
	background: transparent;
}

/*
 * Optional cover-card fallback (kept if content still uses cards).
 * Prefer iframes on GNA; cards alone looked “gone” under TB Post Content
 * because earlier selectors only matched .wsfd-page__content.
 */
.wsfd-page__content .wsfd-storymap-card,
.wsfd-pg-single__content .wsfd-storymap-card,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card {
	margin: 8px 0 28px;
	max-width: 100%;
}

.wsfd-page__content .wsfd-storymap-card__link,
.wsfd-pg-single__content .wsfd-storymap-card__link,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card__link,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card__link {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	text-decoration: none;
	color: #fff;
	background: #063915;
	box-shadow: 0 2px 8px rgba(0, 13, 4, 0.12);
}

.wsfd-page__content .wsfd-storymap-card__link:hover,
.wsfd-page__content .wsfd-storymap-card__link:focus-visible,
.wsfd-pg-single__content .wsfd-storymap-card__link:hover,
.wsfd-pg-single__content .wsfd-storymap-card__link:focus-visible,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card__link:hover,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card__link:focus-visible,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card__link:hover,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card__link:focus-visible {
	outline: 3px solid #c45c26;
	outline-offset: 3px;
}

.wsfd-page__content .wsfd-storymap-card__img,
.wsfd-pg-single__content .wsfd-storymap-card__img,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card__img,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	vertical-align: middle;
}

.wsfd-page__content .wsfd-storymap-card__cta,
.wsfd-pg-single__content .wsfd-storymap-card__cta,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card__cta,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 20px;
	font-family: var(--wsfd-font-body, inherit);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.01em;
	background: #063915;
	color: #fff;
}

.wsfd-page__content .wsfd-storymap-card__link:hover .wsfd-storymap-card__cta,
.wsfd-page__content .wsfd-storymap-card__link:focus-visible .wsfd-storymap-card__cta,
.wsfd-pg-single__content .wsfd-storymap-card__link:hover .wsfd-storymap-card__cta,
.wsfd-pg-single__content .wsfd-storymap-card__link:focus-visible .wsfd-storymap-card__cta,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card__link:hover .wsfd-storymap-card__cta,
.wsfd-page-body .et_pb_post_content .wsfd-storymap-card__link:focus-visible .wsfd-storymap-card__cta,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card__link:hover .wsfd-storymap-card__cta,
.wsfd-page-body .et_pb_fullwidth_post_content .wsfd-storymap-card__link:focus-visible .wsfd-storymap-card__cta {
	background: #0a4f1e;
}

.wsfd-pg-single__content .wp-block-video {
	margin: 16px 0 28px;
	max-width: 100%;
}

.wsfd-pg-single__content .wp-block-video video {
	aspect-ratio: 16 / 9;
	height: auto;
	background: #000;
	border-radius: 8px;
}

/*
 * FAQ accordions — Divi keeps .et_pb_toggle_close for the whole slideToggle(700)
 * and only swaps to .et_pb_toggle_open in the complete callback. CSS alone cannot
 * paint open (white) during that window; .wsfd-faq-opening is added on activate
 * (programs-grants.js) so open colors apply immediately. Duration override also
 * lives in JS (Divi hardcodes 700ms on jQuery.slideToggle).
 *
 * Selectors intentionally beat Divi module CSS (.et-db #et-boc .et-l .et_pb_accordion_*).
 */
body.single-program-grant .wsfd-pg-single__content .et_pb_accordion .et_pb_toggle,
body.single-program-grant .wsfd-pg-single__content .et_pb_toggle,
.et-db #et-boc .wsfd-pg-single__content .et_pb_accordion .et_pb_toggle,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle {
	transition: background-color 0s, color 0s, border-color 0s !important;
}

body.single-program-grant .wsfd-pg-single__content .et_pb_accordion .et_pb_toggle_content,
body.single-program-grant .wsfd-pg-single__content .et_pb_toggle .et_pb_toggle_content,
.et-db #et-boc .wsfd-pg-single__content .et_pb_accordion .et_pb_toggle_content,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle .et_pb_toggle_content {
	/* Height still animated by jQuery; keep CSS transitions off so they do not fight it. */
	transition: none !important;
}

body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_open,
body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening,
body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_close:active,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_open,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_close:active {
	background-color: #fff !important;
	background-image: none !important;
}

body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_title,
body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening .et_pb_toggle_title,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_title,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening .et_pb_toggle_title {
	color: var(--wsfd-protection, #371f1b) !important;
	background-color: transparent !important;
}

/* Closed-state icon is white; force readable on white during open preview. */
body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening .et_pb_toggle_title:before,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening .et_pb_toggle_title:before {
	color: var(--wsfd-protection, #371f1b) !important;
}

body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_content,
body.single-program-grant .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening .et_pb_toggle_content,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_content,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle.wsfd-faq-opening .et_pb_toggle_content {
	opacity: 1;
	background-color: #fff !important;
	color: var(--wsfd-conserve, #000d04) !important;
}

body.single-program-grant .wsfd-pg-single__content .et_pb_toggle_title,
.et-db #et-boc .wsfd-pg-single__content .et_pb_toggle_title {
	transition: color 0s, background-color 0s !important;
}

.wsfd-pg-single__apply {
	display: flex;
	flex-direction: column;
	gap: 16px;
	scroll-margin-top: 96px;
}

.wsfd-pg-single__apply-title {
	margin: 0;
	font-family: var(--wsfd-font-display);
	font-weight: 700;
	font-size: 40px;
	line-height: 46px;
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-pg-single__form {
	box-sizing: border-box;
	width: 100%;
	padding: 24px;
	border: 2px solid #f4ebe0;
	border-radius: 8px;
	background: #fff;
}

/* Gravity Forms — match Figma application form */

.wsfd-pg-single__form .gform_wrapper,
.wsfd-pg-single__form .gform_wrapper.gravity-theme,
.wsfd-pg-single__form .gform_wrapper.gform-theme {
	margin: 0;
}

.wsfd-pg-single__form .gform_wrapper .gform_body {
	display: block;
}

/* Two-column layout via GF half-width fields (layoutGridColumnSpan=6) */
.wsfd-pg-single__form .gform_wrapper .gform_fields {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 16px;
	align-items: flex-start;
}

.wsfd-pg-single__form .gform_wrapper .gfield {
	width: 100%;
	max-width: 100%;
	margin: 0 !important;
	box-sizing: border-box;
	min-width: 0;
}

.wsfd-pg-single__form .gform_wrapper .gfield.gfield--width-half,
.wsfd-pg-single__form .gform_wrapper .gfield--width-half {
	width: calc(50% - 8px) !important;
	flex: 0 0 calc(50% - 8px);
	max-width: calc(50% - 8px);
}

/* Program Application (#2): phone + email pair when spans unset historically */
.wsfd-pg-single__form .gform_wrapper .gfield--type-phone:not(.gfield--width-full):not(.gfield--width-half),
.wsfd-pg-single__form .gform_wrapper .gfield--type-email:not(.gfield--width-full):not(.gfield--width-half) {
	width: calc(50% - 8px) !important;
	flex: 0 0 calc(50% - 8px);
	max-width: calc(50% - 8px);
}

.wsfd-pg-single__form .gfield_label,
.wsfd-pg-single__form legend.gfield_label {
	font-family: var(--wsfd-font-body) !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	color: #000d04 !important;
	margin-bottom: 8px !important;
}

.wsfd-pg-single__form .gfield input[type='text'],
.wsfd-pg-single__form .gfield input[type='email'],
.wsfd-pg-single__form .gfield input[type='tel'],
.wsfd-pg-single__form .gfield input[type='phone'],
.wsfd-pg-single__form .gfield input[type='number'],
.wsfd-pg-single__form .gfield input[type='url'],
.wsfd-pg-single__form .gfield input[type='date'],
.wsfd-pg-single__form .gfield select,
.wsfd-pg-single__form .gfield textarea,
.wsfd-pg-single__form .ginput_container input,
.wsfd-pg-single__form .ginput_container select,
.wsfd-pg-single__form .ginput_container textarea {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: 40px;
	padding: 12px 16px;
	border: 1px solid #371f1b !important;
	border-radius: 4px !important;
	background-color: #fff !important;
	background-image: none !important;
	background-repeat: no-repeat !important;
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	color: #000d04;
}

/*
 * GF Orbital sets --gf-ctrl-select-icon on selects. If background-image is
 * restored without no-repeat + a fixed size, the 10px chevron tiles across
 * the field (“crazy texture”). Keep one arrow on the right only.
 */
.wsfd-pg-single__form .gfield select,
.wsfd-pg-single__form .ginput_container select {
	appearance: none !important;
	-webkit-appearance: none !important;
	padding-right: 40px !important;
	background-color: #fff !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23371f1b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	background-size: 12px 8px !important;
}

.wsfd-pg-single__form .gfield input:focus-visible,
.wsfd-pg-single__form .gfield select:focus-visible,
.wsfd-pg-single__form .gfield textarea:focus-visible,
.wsfd-pg-single__form .ginput_container input:focus-visible,
.wsfd-pg-single__form .ginput_container select:focus-visible,
.wsfd-pg-single__form .ginput_container textarea:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-single__form .gfield textarea,
.wsfd-pg-single__form .ginput_container textarea {
	min-height: 80px;
	resize: vertical;
}

/* Datepicker: input + calendar toggle (do NOT style toggle like submit) */
.wsfd-pg-single__form .ginput_container_date {
	display: flex;
	align-items: stretch;
	gap: 8px;
	width: 100%;
	max-width: 100%;
	position: relative;
	overflow: visible;
}

.wsfd-pg-single__form .ginput_container_date input.datepicker,
.wsfd-pg-single__form .ginput_container_date input.gform-datepicker {
	flex: 1 1 auto;
	min-width: 0;
	width: 100% !important;
	max-width: none !important;
}

.wsfd-pg-single__form .ginput_container_date .gform-datepicker-toggle,
.wsfd-pg-single__form .ginput_container_date .gform-theme-button--simple-in-ctrl,
.wsfd-pg-single__form .gfield--input-type-datepicker .ginput_container_date button.gform-datepicker-toggle.gform-theme-button {
	appearance: none;
	flex: 0 0 40px !important;
	box-sizing: border-box;
	width: 40px !important;
	min-width: 40px !important;
	max-width: 40px !important;
	min-height: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	margin: 0 !important;
	margin-inline-start: 0 !important;
	transform: none !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border: 1px solid #371f1b !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: #0f5624 !important;
	cursor: pointer;
	line-height: 1;
	position: static !important;
}

.wsfd-pg-single__form .ginput_container_date .gform-datepicker-toggle:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-single__form .ginput_container_date .gform-calendar-icon,
.wsfd-pg-single__form .ginput_container_date .dashicons {
	width: 20px;
	height: 20px;
	font-size: 20px;
	line-height: 1;
	color: #0f5624;
}

/* Equal control widths inside half/full columns */
.wsfd-pg-single__form .gfield .ginput_container,
.wsfd-pg-single__form .gfield .ginput_container input,
.wsfd-pg-single__form .gfield .ginput_container select,
.wsfd-pg-single__form .gfield .ginput_container textarea {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

.wsfd-pg-single__form .ginput_container_date input.datepicker,
.wsfd-pg-single__form .ginput_container_date input.gform-datepicker {
	width: auto !important; /* flex child; keep beside 40px toggle */
	max-width: none !important;
	flex: 1 1 auto;
}

.wsfd-pg-single__form .ginput_complex {
	display: flex;
	gap: 16px;
}

.wsfd-pg-single__form .ginput_complex span {
	flex: 1 1 0;
	min-width: 0;
}

.wsfd-pg-single__form .gform_footer,
.wsfd-pg-single__form .gform_page_footer {
	margin: 24px 0 0 !important;
	padding: 0 !important;
	width: 100% !important;
	flex: 0 0 100%;
}

/* Submit only — never match datepicker/other .gform-theme-button controls */
.wsfd-pg-single__form .gform_footer .gform_button,
.wsfd-pg-single__form .gform_page_footer .gform_button,
.wsfd-pg-single__form .gform_footer input[type='submit'],
.wsfd-pg-single__form .gform_page_footer input[type='submit'] {
	appearance: none;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 40px;
	padding: 6px 12px;
	border-radius: 4px;
	border: 2px solid #448843 !important;
	background: #0f5624 !important;
	color: #fff !important;
	font-family: var(--wsfd-font-serif) !important;
	font-weight: 600 !important;
	font-size: 18px !important;
	line-height: 1.4 !important;
	cursor: pointer;
	display: block !important;
}

.wsfd-pg-single__form .gform_footer .gform_button:focus-visible,
.wsfd-pg-single__form .gform_page_footer .gform_button:focus-visible,
.wsfd-pg-single__form .gform_footer input[type='submit']:focus-visible,
.wsfd-pg-single__form .gform_page_footer input[type='submit']:focus-visible {
	outline: 2px solid #d1422a;
	outline-offset: 2px;
}

.wsfd-pg-single__form-fallback {
	margin: 0;
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	color: #371f1b;
}

/* Desktop: related triggers live in sticky sidebar only */
.wsfd-pg-single__related-mobile {
	display: none;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

@media (max-width: 1100px) {
	.wsfd-pg-list__cards.is-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 834px) {
	.wsfd-pg-hero,
	body .et_pb_section.wsfd-pg-hero,
	body .et_pb_section.et_pb_section_0_tb_body.wsfd-pg-hero,
	body .et_pb_section_0_tb_body.wsfd-pg-hero.et_flex_section {
		min-height: var(--wsfd-photo-hero-parent-height-sm, 200px) !important;
		height: auto !important;
		padding: var(--wsfd-hero-crumb-pad-top-sm, 70px) var(--wsfd-page-inline, var(--wsfd-page-gutter, 24px)) 24px !important;
		justify-content: flex-end !important;
		align-items: flex-start !important;
	}

	.et_pb_section.wsfd-pg-hero,
	.divi-section.wsfd-pg-hero,
	section.wsfd-pg-hero {
		min-height: var(--wsfd-photo-hero-parent-height-sm, 200px) !important;
		height: auto !important;
		flex-direction: column !important;
		justify-content: flex-end !important;
		align-items: stretch !important;
	}

	.wsfd-pg-hero h1.et_pb_module_header,
	.wsfd-pg-hero .et_pb_heading_container h1,
	.wsfd-pg-hero .et_pb_heading_container h1.et_pb_module_header,
	.wsfd-pg-hero .et_pb_heading_container .et_pb_module_header,
	.wsfd-pg-hero .wsfd-pg-hero__title h1,
	.wsfd-pg-hero .wsfd-pg-hero__title h1.et_pb_module_header,
	.wsfd-pg-hero .wsfd-pg-hero__title .et_pb_module_header,
	.wsfd-pg-hero__title,
	h1.wsfd-pg-hero__title,
	body .wsfd-pg-hero .et_pb_heading_container .et_pb_module_header,
	body .wsfd-pg-hero .wsfd-pg-hero__title .et_pb_module_header {
		font-size: var(--wsfd-photo-hero-h1-size-sm, 38px) !important;
		line-height: var(--wsfd-photo-hero-h1-lh-sm, 40px) !important;
		letter-spacing: 0 !important;
		font-weight: 700 !important;
	}

	.wsfd-pg-card__pill {
		font-size: 13px;
	}

	.wsfd-pg-list__filter {
		font-size: 13px;
	}

	.wsfd-pg-list {
		grid-template-columns: 1fr !important;
		column-gap: 24px;
		row-gap: 24px;
		padding: 24px;
	}

	.wsfd-pg-list__filters-col,
	.wsfd-pg-list__results {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
	}

	.wsfd-pg-list__sidebar {
		position: static;
		width: 100%;
		flex: none;
	}

	.wsfd-pg-list__cards.is-grid,
	.wsfd-pg-list__cards.is-list {
		grid-template-columns: 1fr;
	}

	.wsfd-pg-list__cards.is-list .wsfd-pg-card__link {
		display: flex;
		flex-direction: column;
		gap: 16px;
		padding: 16px;
	}

	.wsfd-pg-list__cards.is-list .wsfd-pg-card__media {
		grid-column: auto;
		grid-row: auto;
		width: 100%;
		height: 140px;
		flex: none;
	}

	.wsfd-pg-list__cards.is-list .wsfd-pg-card__pills,
	.wsfd-pg-list__cards.is-list .wsfd-pg-card__body {
		grid-column: auto;
		grid-row: auto;
		width: 100%;
	}

	.wsfd-pg-list__cards.is-list .wsfd-pg-card__body {
		margin-top: -8px;
		gap: 8px;
	}

	.wsfd-pg-single__layout {
		flex-direction: column;
		gap: 24px;
		padding: 24px;
	}

	.wsfd-pg-single__sidebar {
		position: static;
		width: 100%;
		flex: none;
	}

	/* Mobile: related modal triggers above content (match regular pages) */
	.wsfd-pg-single__sidebar .wsfd-pg-related {
		display: none;
	}

	.wsfd-pg-single__related-mobile {
		display: flex;
		flex-direction: column;
		gap: 16px;
		width: 100%;
		margin-bottom: 24px;
	}

	.wsfd-pg-related-modal__panel {
		padding: 36px 20px 24px;
	}

	.wsfd-pg-related-modal__title {
		font-size: 24px;
		margin-bottom: 20px;
	}

	.wsfd-pg-single__apply-title {
		font-size: 32px;
		line-height: 38px;
	}

	.wsfd-pg-single__form .ginput_complex {
		flex-direction: column;
	}

	.wsfd-pg-single__form .gform_wrapper .gfield.gfield--width-half,
	.wsfd-pg-single__form .gform_wrapper .gfield--width-half,
	.wsfd-pg-single__form .gform_wrapper .gfield--type-phone:not(.gfield--width-full),
	.wsfd-pg-single__form .gform_wrapper .gfield--type-email:not(.gfield--width-full) {
		width: 100% !important;
		flex: 0 0 100%;
		max-width: 100%;
	}
}
