/**
 * Parent + Child page templates — Figma 3180:4542 / 3133:808 / 3203:2688.
 */

/* -------------------------------------------------------------------------- */
/* Full-bleed Theme Builder body shell ONLY (rows 2 / 25 / R142 / R144)       */
/* Scope to TB body layout chrome (.et-l--body), NOT page/CPT module content  */
/* inside .wsfd-page__content / .wsfd-pg-single__content (Divi VB must win).  */
/* -------------------------------------------------------------------------- */

body.wsfd-template-parent .et-l--body > .et_builder_inner_content > .et_pb_section_0_tb_body > .et_pb_row > .et_block_row,
body.wsfd-template-child .et-l--body > .et_builder_inner_content > .et_pb_section_0_tb_body > .et_pb_row > .et_block_row,
body.wsfd-template-parent .et-l--body > .et_builder_inner_content > .wsfd-page-body.et_pb_section > .et_pb_row > .et_block_row,
body.wsfd-template-child .et-l--body > .et_builder_inner_content > .wsfd-page-body.et_pb_section > .et_pb_row > .et_block_row {
	padding: 0 !important;
}

body.wsfd-template-parent .et-l--body > .et_builder_inner_content > .et_pb_section_0_tb_body > .et_pb_row,
body.wsfd-template-child .et-l--body > .et_builder_inner_content > .et_pb_section_0_tb_body > .et_pb_row,
body.wsfd-template-parent .et-l--body > .et_builder_inner_content > .wsfd-page-body.et_pb_section > .et_pb_row,
body.wsfd-template-child .et-l--body > .et_builder_inner_content > .wsfd-page-body.et_pb_section > .et_pb_row {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.wsfd-template-parent .et-l--body > .et_builder_inner_content > .et_pb_section_0_tb_body,
body.wsfd-template-child .et-l--body > .et_builder_inner_content > .et_pb_section_0_tb_body,
body.wsfd-template-parent .et-l--body > .et_builder_inner_content > .wsfd-page-body.et_pb_section,
body.wsfd-template-child .et-l--body > .et_builder_inner_content > .wsfd-page-body.et_pb_section {
	padding: 0 !important;
}

/* -------------------------------------------------------------------------- */
/* Heroes                                                                     */
/* -------------------------------------------------------------------------- */

.wsfd-page-hero {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	align-items: flex-start !important;
	gap: 6px;
	box-sizing: border-box;
	padding-top: 32px;
/* Full-bleed bg; title/crumbs share gutters with .wsfd-page__layout. */
	padding-right: var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px));
	padding-bottom: 32px;
	padding-left: 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;
	isolation: auto;
	z-index: 0;
}

.wsfd-page-hero--parent {
	min-height: var(--wsfd-photo-hero-parent-height, 300px);
	height: auto;
}

.wsfd-page-hero--child {
	min-height: var(--wsfd-photo-hero-child-height, 300px);
	height: auto;
	/* R39: clear hanging seal; auto height grows for long H1.
	 * Must beat .wsfd-page-hero padding-top (not a shorthand reset). */
	padding-top: var(--wsfd-hero-crumb-pad-top, 100px);
}

/*
 * Hero veil: only when a featured (photographic) image is present.
 * Topo / non-featured heroes already read dark — no overlay.
 */
.wsfd-page-hero::before {
	content: none;
	display: none;
}

/* Featured-image photographic heroes — solid #371f1b @75% multiply.
 * isolation:isolate so mix-blend-mode multiplies against the photo BG. */
.wsfd-page-hero--has-featured,
.wsfd-page-hero.wsfd-hero--has-featured {
	isolation: isolate;
}

.wsfd-page-hero--has-featured::before,
.wsfd-page-hero.wsfd-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-page-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;
}

.wsfd-page-hero__crumbs a {
	color: #fff;
	text-decoration: none;
}

.wsfd-page-hero__crumbs a:hover,
.wsfd-page-hero__crumbs a:focus-visible {
	text-decoration: underline;
}

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

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

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

.wsfd-page-hero__crumb-current {
	color: #f4ebe0;
	font-weight: 600;
	text-decoration: none;
}

.wsfd-page-hero__title {
	position: relative;
	z-index: 1;
	margin: 0 !important;
	color: #fff !important;
	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;
}

/* Optional after-H1 line (e.g. Champion Tree Latin name). Flush with H1. */
.wsfd-page-hero__subtitle {
	position: relative;
	z-index: 1;
	margin: 0;
	padding: 0;
	text-indent: 0;
	font-family: 'New Science Serif', new-science-serif, var(--wsfd-font-serif);
	font-style: italic;
	font-weight: var(--wsfd-h5-weight, 600);
	font-size: var(--wsfd-h5-size, 22px);
	line-height: var(--wsfd-h5-lh, 26px);
	color: #f4ebe0;
	text-align: left;
}

.wsfd-page-hero__subtitle em,
.wsfd-page-hero__subtitle i {
	font-style: italic;
}

.wsfd-page-hero__subtitle a {
	color: inherit;
	text-decoration: none;
}

.wsfd-page-hero__subtitle a:hover,
.wsfd-page-hero__subtitle a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 2px;
}

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

.wsfd-page-hero__badge {
	position: relative;
	z-index: 1;
	display: inline-block;
	margin: 0;
	padding: 4px 10px;
	background: #063915;
	color: #fff;
	font-family: var(--wsfd-font-body);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
}

/* -------------------------------------------------------------------------- */
/* Layout: sidebar 280 + content                                              */
/* -------------------------------------------------------------------------- */

.wsfd-page__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;
}

/*
 * R72 / R69: Do NOT zero first section/row padding or margins here.
 * Divi VB spacing (About row top padding, etc.) must reach the FE.
 * Layout chrome already supplies .wsfd-page__layout padding.
 */

.wsfd-page__sidebar {
	flex: 0 0 280px;
	width: 280px;
	/* Static: sticky escaped the two-col grid and overlapped Related Links / modules below. */
	position: static;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
}

.wsfd-page__nav {
	box-sizing: border-box;
	width: 100%;
	padding: 12px;
	border: 3px solid var(--wsfd-growth, #f4ebe0);
	border-radius: 8px;
	background: #fff;
}

/*
 * Nav toggle: mobile accordion label (≤980). Hidden on desktop (≥981) —
 * section title duplicates the page hero H1.
 */
.wsfd-page__nav-toggle {
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	margin: 0;
	padding: 4px 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: inherit;
	cursor: default;
	text-align: left;
}

.wsfd-page__nav-toggle:focus {
	outline: none;
}

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

.wsfd-page__nav-heading {
	margin: 0;
	padding: 0;
	flex: 1 1 auto;
	min-width: 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-page__nav-chevron {
	display: none;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	color: var(--wsfd-protection, #371f1b);
	transition: transform 0.2s ease;
}

.wsfd-page__nav-chevron svg {
	display: block;
	width: 12px;
	height: 8px;
}

.wsfd-page__nav-toggle[aria-expanded="true"] .wsfd-page__nav-chevron {
	transform: rotate(180deg);
}

/*
 * Desktop (≥981): hide redundant section title + following rule (hero H1
 * already names the section). Scoped to toggle + adjacent rule so
 * Champion Trees / other plain headings keep their divider. Nav pills
 * always visible even if markup starts collapsed (mobile FOUC guard).
 */
@media (min-width: 981px) {
	.wsfd-page__nav-toggle,
	.wsfd-page__nav-toggle + .wsfd-page__nav-rule {
		display: none !important;
	}

	.wsfd-page__nav-toggle[aria-expanded="false"] ~ .wsfd-page__nav-list {
		display: flex !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wsfd-page__nav-chevron {
		transition: none;
	}
}

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

.wsfd-page__nav-list,
.wsfd-page__nav-list > .wsfd-page__nav-item {
	list-style: none !important;
	list-style-type: none !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

.wsfd-page__nav-list {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.wsfd-page__nav-list > .wsfd-page__nav-item::marker {
	content: none;
	display: none;
}

.wsfd-page__nav-link {
	display: block;
	box-sizing: border-box;
	width: 100%;
	padding: 12px 16px;
	border-radius: 4px;
	background: var(--wsfd-growth, #f4ebe0);
	color: var(--wsfd-conserve, #000d04);
	font-family: var(--wsfd-font-body);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.25;
	text-decoration: none;
}

.wsfd-page__nav-link:hover,
.wsfd-page__nav-link:focus-visible {
	background: var(--wsfd-forest, #0f5624);
	color: #ffffff;
	text-decoration: none;
}

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

.wsfd-page__nav-link.is-active {
	background: #d1422a;
	color: #fff;
}

.wsfd-page__nav-link.is-active:hover,
.wsfd-page__nav-link.is-active:focus-visible {
	background: #d1422a;
	color: #fff;
}

.wsfd-page__nav-empty {
	margin: 0;
	font-family: var(--wsfd-font-body);
	font-size: 14px;
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-page__main {
	flex: 1 1 auto;
	min-width: 0;
}

.wsfd-page__related-mobile {
	display: none;
	flex-direction: column;
	gap: 16px;
	margin-top: 32px;
}

/* -------------------------------------------------------------------------- */
/* Content typography (Child Figma body)                                      */
/* -------------------------------------------------------------------------- */

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

.wsfd-page__content > *:first-child {
	margin-top: 0;
}

/*
 * R29 / R99 global adjacent-row margin-top:48px removed — stacked with Divi
 * row gutters as a large empty vertical band (Forest Management etc.).
 * Page-specific rhythm (Fire Training checklist, About We Value→CTA) kept.
 */

/* R99 — extra air before Red Card checklist row on Fire Training. */
body.page-id-85 .wsfd-page__content .et_pb_row_3_tb_body {
	margin-top: 48px;
}

/* R74: paragraph bottom spacing 0.5em */
.wsfd-page__content p {
	margin: 0;
	padding-bottom: 0.5em;
}

/*
 * Soft type defaults — :where() keeps specificity at (0,0,1)
 * so Divi VB module color/size settings win. Brand families from fonts.css.
 * R73/R75/R76: h2 margin 0 0 12px; size 36/44; padding-bottom 0 (sheet SoT).
 * (0.1.148 briefly used 24px top — reverted; added too much space elsewhere.)
 */
:where(.wsfd-page__content) h2,
:where(body.wsfd-template-child .et-l--body .et_pb_post_content) h2,
:where(body.wsfd-template-parent .et-l--body .et_pb_post_content) h2 {
	margin: 0 0 12px;
	padding-bottom: 0;
	font-family: var(--wsfd-font-display);
	font-weight: var(--wsfd-h2-weight, 700);
	font-size: var(--wsfd-h2-size, 36px);
	line-height: var(--wsfd-h2-lh, 44px);
	color: var(--wsfd-protection, #371f1b);
}

:where(.wsfd-page__content) h3,
:where(body.wsfd-template-child .et-l--body .et_pb_post_content) h3,
:where(body.wsfd-template-parent .et-l--body .et_pb_post_content) h3 {
	margin: 24px 0 12px;
	font-family: var(--wsfd-font-serif);
	font-weight: var(--wsfd-h3-weight, 600);
	font-size: var(--wsfd-h3-size, 36px);
	line-height: var(--wsfd-h3-lh, 40px);
	color: #063915;
}

:where(.wsfd-page__content) h4,
:where(body.wsfd-template-child .et-l--body .et_pb_post_content) h4,
:where(body.wsfd-template-parent .et-l--body .et_pb_post_content) h4 {
	margin: 16px 0 8px;
	font-family: var(--wsfd-font-display);
	font-weight: var(--wsfd-h4-weight, 700);
	font-size: var(--wsfd-h4-size, 24px);
	line-height: var(--wsfd-h4-lh, 30px);
	color: var(--wsfd-conserve, #000d04);
}

:where(.wsfd-page__content) h5,
:where(body.wsfd-template-child .et-l--body .et_pb_post_content) h5,
:where(body.wsfd-template-parent .et-l--body .et_pb_post_content) h5 {
	margin: 16px 0 8px;
	font-family: var(--wsfd-font-serif);
	font-weight: var(--wsfd-h5-weight, 600);
	font-size: var(--wsfd-h5-size, 22px);
	line-height: var(--wsfd-h5-lh, 26px);
}

:where(.wsfd-page__content) h6,
:where(body.wsfd-template-child .et-l--body .et_pb_post_content) h6,
:where(body.wsfd-template-parent .et-l--body .et_pb_post_content) h6 {
	margin: 12px 0 8px;
	font-family: var(--wsfd-font-display);
	font-weight: var(--wsfd-h6-weight, 700);
	font-size: var(--wsfd-h6-size, 20px);
	line-height: var(--wsfd-h6-lh, 24px);
}

/*
 * Nested Divi rows already sit inside the page content rail (page gutters /
 * sidebar column). Divi’s default `.et_pb_row:not([class*="et_flex_column"])`
 * sets `width: var(--content-width)` (typically 80%) which double-insets the
 * row and breaks side margins — DevTools: disabling that width restores layout.
 * Fill the parent rail; keep max-width 100% (not another 1080px nest).
 */
.wsfd-page__content .et_pb_row:not([class*="et_flex_column"]),
.wsfd-pg-single__content .et_pb_row:not([class*="et_flex_column"]),
.wsfd-news-single__body .et_pb_row:not([class*="et_flex_column"]),
.wsfd-news-single__content .et_pb_row:not([class*="et_flex_column"]),
body.wsfd-template-child .et-l--body .et_pb_post_content .et_pb_row:not([class*="et_flex_column"]),
body.wsfd-template-parent .et-l--body .et_pb_post_content .et_pb_row:not([class*="et_flex_column"]),
/* VB canvas lacks .et-l--body — anchor on .wsfd-page-body so 80% rows don't inset the blue edit box. */
.wsfd-page-body .et_pb_post_content .et_pb_row:not([class*="et_flex_column"]),
.wsfd-page-body .et_pb_fullwidth_post_content .et_pb_row:not([class*="et_flex_column"]) {
	width: 100% !important;
	max-width: 100% !important;
}

/*
 * R151 — restore staging (0.1.143) content-row gutters for Fire Business etc.
 * Divi gutters3 sets gap 40px/3.5% + column margin-right (~54px @1440), which
 * widens image→text vs staging’s single 32px gap. Keep R142/R144 TB chrome
 * locks scoped to .et-l--body; only normalize rows inside page content.
 * About We Value still has page-id-83 blurb/CTA overrides below.
 */
.wsfd-page__content .et_pb_row,
.wsfd-page__content .et_flex_row,
body.wsfd-template-child .et-l--body .et_pb_post_content .et_pb_row,
body.wsfd-template-child .et-l--body .et_pb_post_content .et_flex_row,
body.wsfd-template-parent .et-l--body .et_pb_post_content .et_pb_row,
body.wsfd-template-parent .et-l--body .et_pb_post_content .et_flex_row,
.wsfd-page-body .et_pb_post_content .et_pb_row,
.wsfd-page-body .et_pb_post_content .et_flex_row,
.wsfd-page-body .et_pb_fullwidth_post_content .et_pb_row,
.wsfd-page-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);
	row-gap: var(--wsfd-row-gutter, 32px);
}

.wsfd-page__content .et_pb_row > .et_pb_column,
.wsfd-page__content .et_flex_row > .et_pb_column,
body.wsfd-template-child .et-l--body .et_pb_post_content .et_pb_row > .et_pb_column,
body.wsfd-template-child .et-l--body .et_pb_post_content .et_flex_row > .et_pb_column,
body.wsfd-template-parent .et-l--body .et_pb_post_content .et_pb_row > .et_pb_column,
body.wsfd-template-parent .et-l--body .et_pb_post_content .et_flex_row > .et_pb_column,
.wsfd-page-body .et_pb_post_content .et_pb_row > .et_pb_column,
.wsfd-page-body .et_pb_post_content .et_flex_row > .et_pb_column,
.wsfd-page-body .et_pb_fullwidth_post_content .et_pb_row > .et_pb_column,
.wsfd-page-body .et_pb_fullwidth_post_content .et_flex_row > .et_pb_column {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/*
 * About We Value blurbs (page 83): fill card width when Divi locks 600px images.
 * R70: do NOT zero image padding/margin — VB bottom padding must show on FE.
 */
body.page-id-83 .wsfd-page__content .et_pb_blurb .et_pb_blurb_content {
	gap: 20px;
	row-gap: 20px;
	width: 100%;
	max-width: 100%;
}

body.page-id-83 .wsfd-page__content .et_pb_blurb .et_pb_main_blurb_image {
	width: 100%;
	max-width: 100%;
	line-height: 0;
	box-sizing: border-box;
}

body.page-id-83 .wsfd-page__content .et_pb_blurb .et_pb_main_blurb_image .et_pb_image_wrap {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	overflow: hidden;
	border-radius: 10px;
	box-sizing: border-box;
}

body.page-id-83 .wsfd-page__content .et_pb_blurb .et_pb_main_blurb_image img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}

/*
 * Row 10 — space between We Value blurb rows and the careers CTA.
 * Divi often parks the button in the following row with only ~0–30px gap.
 */
body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_blurb) + .et_pb_row:has(.et_pb_button),
body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_blurb) .et_pb_button_module_wrapper {
	margin-top: 48px;
}

body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_blurb) + .et_pb_row:has(.et_pb_button) {
	margin-top: 48px !important;
}

/* Row 19 — horizontal gap between About values blurb columns. */
body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_blurb) {
	column-gap: 32px !important;
	row-gap: 32px !important;
}

body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_blurb) > .et_pb_column {
	margin-bottom: 0;
}

/* Row 20 — careers CTA box padding so text/button/image clear the edges. */
body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_button) .et_pb_column,
body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_button) .et_pb_text,
body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_button) .et_pb_image {
	box-sizing: border-box;
}

body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_button):not(:has(.et_pb_blurb)) {
	padding: 32px !important;
}

body.page-id-83 .wsfd-page__content .et_pb_row:has(.et_pb_button):not(:has(.et_pb_blurb)) > .et_pb_column {
	padding: 16px !important;
}

/* Row 103/108 — keep Divi buttons inside card/column bounds. */
.wsfd-page__content .et_pb_button,
.wsfd-page__content a.et_pb_button {
	max-width: 100% !important;
	box-sizing: border-box !important;
	white-space: normal !important;
}

/* Row 123 / R143 — Tree Symptom Decoder: no nested scrollbars; clip overflow. */
body.page-id-103 .wsfd-page__content,
body.page-id-103 .wsfd-page__content .et_pb_row,
body.page-id-103 .wsfd-page__content .et_pb_column,
body.page-id-103 .wsfd-page__content table,
body.page-id-103 .wsfd-page__content img,
body.page-id-103 .wsfd-page__content iframe {
	max-width: 100%;
}

body.page-id-103 .wsfd-page__content {
	overflow-x: hidden;
	overflow-y: visible;
}

body.page-id-103 .wsfd-page__content .et_pb_code_inner,
body.page-id-103 .wsfd-page__content .et_pb_text_inner,
body.page-id-103 .wsfd-page__content iframe {
	overflow: visible !important;
	max-height: none !important;
}

/* Row 111 — Champion Tree Register intro links match site body-link style. */
body.page-id-105 .wsfd-page__content a,
body.page-slug-wyoming-state-champion-tree-register .wsfd-page__content a {
	color: #063915;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.page-id-105 .wsfd-page__content a:hover,
body.page-id-105 .wsfd-page__content a:focus-visible,
body.page-slug-wyoming-state-champion-tree-register .wsfd-page__content a:hover,
body.page-slug-wyoming-state-champion-tree-register .wsfd-page__content a:focus-visible {
	text-decoration: none;
}

/*
 * Soft body-link brand default. Prefer real specificity over :where() so we beat
 * Divi `a{color:var(--gcid-link-color)}` (Leaf #448843 fails AA at 4.33:1).
 * Heading links inherit module header color (About “We Value” fix).
 * Exclude Divi buttons + Protection dark surfaces (scanner + real contrast).
 */
.wsfd-page__content a:not(.et_pb_button),
.wsfd-page__content .et_pb_text_inner a:not(.et_pb_button) {
	color: var(--wsfd-link, #063915);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wsfd-page__content a:not(.et_pb_button):hover,
.wsfd-page__content a:not(.et_pb_button):focus-visible,
.wsfd-page__content .et_pb_text_inner a:not(.et_pb_button):hover,
.wsfd-page__content .et_pb_text_inner a:not(.et_pb_button):focus-visible {
	text-decoration: none;
}

/*
 * Protection dark callouts (.wsfd-surface--dark from render_block).
 * Explicit color + background-color so AC/WAVE sample the real pair
 * (same pattern as .wsfd-pg-card__excerpt). Do not inherit Conserve-green.
 */
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner p,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner li,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner h1,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner h2,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner h3,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner h4,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner h5,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner h6 {
	color: #fff;
	background-color: var(--wsfd-protection, #371f1b);
}

.wsfd-page__content .wsfd-surface--dark a:not(.et_pb_button),
.wsfd-page__content .wsfd-surface--dark a:not(.et_pb_button):link,
.wsfd-page__content .wsfd-surface--dark a:not(.et_pb_button):visited,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner a:not(.et_pb_button),
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner a:not(.et_pb_button):link,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner a:not(.et_pb_button):visited {
	color: #fff;
	background-color: var(--wsfd-protection, #371f1b);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wsfd-page__content .wsfd-surface--dark a:not(.et_pb_button):hover,
.wsfd-page__content .wsfd-surface--dark a:not(.et_pb_button):focus-visible,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner a:not(.et_pb_button):hover,
.wsfd-page__content .wsfd-surface--dark .et_pb_text_inner a:not(.et_pb_button):focus-visible {
	color: var(--wsfd-growth, #f4ebe0);
	background-color: var(--wsfd-protection, #371f1b);
	text-decoration: underline;
}

/* Divi buttons — white on Forest; never Conserve-green text on dark fills. */
.wsfd-page__content a.et_pb_button,
.wsfd-page__content .et_pb_button {
	color: #fff !important;
	background-color: var(--wsfd-forest, #0f5624) !important;
	text-decoration: none !important;
	font-weight: 700;
}

.wsfd-page__content a.et_pb_button:after,
.wsfd-page__content .et_pb_button:after {
	color: #fff !important;
}

.wsfd-page__content h1 a,
.wsfd-page__content h2 a,
.wsfd-page__content h3 a,
.wsfd-page__content h4 a,
.wsfd-page__content h5 a,
.wsfd-page__content h6 a,
.wsfd-page__content .et_pb_module_header a {
	color: inherit;
	font-weight: inherit;
	text-decoration: none;
}

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

.wsfd-page__content ul,
.wsfd-page__content ol {
	margin: 0 0 12px;
	padding-left: 1.5em;
}

.wsfd-page__content li {
	margin: 0 0 4px;
	line-height: 1.5;
}

.wsfd-page__content em,
.wsfd-page__content i {
	font-style: italic;
	font-size: 13px;
}

/* -------------------------------------------------------------------------- */
/* Related Programs & Grants section                                          */
/* -------------------------------------------------------------------------- */

.wsfd-page-related-pg {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding: 32px var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px));
	background: var(--wsfd-growth, #f4ebe0);
	border-top: 5px solid var(--wsfd-bark, #d2b99a);
	box-sizing: border-box;
	/* Paint above sticky sidebars so Related PG cards are never covered. */
	position: relative;
	z-index: 4;
}

.wsfd-page-related-pg__heading {
	margin: 0;
	width: 100%;
	text-align: center;
	font-family: 'Dunbar Tall', dunbar-tall, var(--wsfd-font-display) !important;
	font-weight: 700 !important;
	font-size: 40px !important;
	line-height: 46px !important;
	color: var(--wsfd-protection, #371f1b) !important;
}

.wsfd-page-related-pg__cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	width: 100%;
}

.wsfd-page-related-pg__cards .wsfd-pg-card__link {
	height: 100%;
}

/*
 * Related PG cards — shared .wsfd-pg-card (programs-grants.css).
 * Theme via data-wsfd-card-theme on this section (default dark; syncs with
 * localStorage wsfd-card-theme). Match archive light/dark/hover pairs.
 * Do not force unscoped white text — that broke light theme (white on Growth).
 */
.wsfd-page-related-pg .wsfd-pg-card__title {
	font-family: var(--wsfd-font-display);
	font-weight: 700;
	font-size: 24px;
	line-height: 30px;
}

/*
 * Dark theme — beat UA :visited (near-black on #371f1b).
 * Default: white title/excerpt; hover/focus: Growth invert (dark text).
 */
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:link,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited {
	color: #fff;
}

.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:link .wsfd-pg-card__title,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited .wsfd-pg-card__title,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:link .wsfd-pg-card__excerpt,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited .wsfd-pg-card__excerpt {
	color: #fff;
	background-color: inherit;
}

.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:hover,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:focus-visible,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited:hover,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited:focus-visible {
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:hover .wsfd-pg-card__title,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:focus-visible .wsfd-pg-card__title,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited:hover .wsfd-pg-card__title,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited:focus-visible .wsfd-pg-card__title {
	color: var(--wsfd-protection, #371f1b);
}

.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:hover .wsfd-pg-card__excerpt,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:focus-visible .wsfd-pg-card__excerpt,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited:hover .wsfd-pg-card__excerpt,
.wsfd-page-related-pg[data-wsfd-card-theme="dark"] .wsfd-pg-card__link:visited:focus-visible .wsfd-pg-card__excerpt {
	color: var(--wsfd-conserve, #000d04);
}

/*
 * Light theme — same pairs as [data-wsfd-card-theme="light"] .wsfd-pg-card
 * in programs-grants.css (pages.css loads after; keep visited readable).
 * Default: dark text on Growth; hover/focus: white on Protection.
 * Inherit link fill (via __body) so WAVE samples card fill and hover stays synced.
 */
.wsfd-page-related-pg[data-wsfd-card-theme="light"] .wsfd-pg-card__link:link,
.wsfd-page-related-pg[data-wsfd-card-theme="light"] .wsfd-pg-card__link:visited {
	color: var(--wsfd-protection, #371f1b);
}

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

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

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

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

.wsfd-page-related-pg__actions {
	display: flex;
	justify-content: center;
	width: 100%;
}

.wsfd-page-related-pg__all {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 6px 12px;
	border-radius: 4px;
	border: 2px solid #448843;
	background: var(--wsfd-forest, #0f5624);
	color: #fff !important;
	font-family: var(--wsfd-font-serif);
	font-weight: 600;
	font-size: 18px;
	line-height: 1.4;
	text-decoration: none !important;
}

.wsfd-page-related-pg__all:hover,
.wsfd-page-related-pg__all:focus-visible {
	background: #d1422a;
	border-color: #942c1b;
	color: #fff !important;
}

/* R114 — match site primary button arrow hover (Figma 4185:3778). */
.wsfd-page-related-pg__all:hover::after,
.wsfd-page-related-pg__all:focus-visible::after {
	content: "" !important;
	display: inline-block !important;
	width: 16px !important;
	height: 16px !important;
	margin: 0 !important;
	flex: 0 0 16px !important;
	align-self: center !important;
	color: #54150a !important;
	background-color: #54150a !important;
	-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") !important;
	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") !important;
	-webkit-mask-size: contain !important;
	mask-size: contain !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
	opacity: 1 !important;
	position: static !important;
	transform: none !important;
	line-height: 0 !important;
	vertical-align: middle !important;
}

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

/* -------------------------------------------------------------------------- */
/* Chart embeds (Google Sheets pubhtml — rows 41 / 42)                        */
/* -------------------------------------------------------------------------- */

.wsfd-chart-embed {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 24px 0 8px;
	box-sizing: border-box;
	border: 1px solid var(--wsfd-bark, #d2b99a);
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.wsfd-chart-embed__frame {
	display: block;
	width: 100%;
	/* Sheets pubhtml scrolls inside the iframe when shorter than content.
	   Match shortcode default (1400) so Local sales/contracts tables fit. */
	min-height: 1400px;
	border: 0;
	background: #fff;
}

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

/* Drive folder embed (Maps & Prospectuses) — shares chart-embed chrome */
/* R110 — tighten iframe ↔ “Open Drive folder” gap (Trail Creek FPS sits at list end). */
.wsfd-chart-embed.wsfd-drive-embed {
	margin-bottom: 0;
}

.wsfd-drive-embed .wsfd-chart-embed__frame {
	min-height: 0;
}

.wsfd-drive-embed__open {
	margin: 0;
	padding: 6px 12px;
	border-top: 1px solid var(--wsfd-bark, #d2b99a);
	font-size: 0.9375rem;
	line-height: 1.35;
	background: #faf8f5;
}

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

.wsfd-drive-embed .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;
}

/* -------------------------------------------------------------------------- */
/* Responsive                                                                 */
/* -------------------------------------------------------------------------- */

@media (max-width: 980px) {
	.wsfd-page-hero--parent {
		min-height: var(--wsfd-photo-hero-parent-height-sm, 200px);
		height: auto;
		padding-top: var(--wsfd-hero-crumb-pad-top-sm, 70px);
	}

	.wsfd-page-hero--child {
		min-height: var(--wsfd-photo-hero-child-height-sm, 200px);
		height: auto;
		padding-top: var(--wsfd-hero-crumb-pad-top-sm, 70px);
	}

	.wsfd-page-hero {
		padding-top: 24px;
		padding-right: 24px;
		padding-bottom: 24px;
		padding-left: 24px;
	}

	.wsfd-page-hero--parent,
	.wsfd-page-hero--child {
		padding-top: var(--wsfd-hero-crumb-pad-top-sm, 70px);
	}

	.wsfd-page-hero__title {
		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;
	}

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

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

	/*
	 * Mobile sidebar nav accordion (≤980): collapsed by default via JS
	 * (aria-expanded=false). Title + chevron only when closed; Related
	 * Documents/Links stay as separate triggers below.
	 */
	.wsfd-page__nav-toggle {
		cursor: pointer;
	}

	.wsfd-page__nav-chevron {
		display: inline-flex;
	}

	.wsfd-page__nav-toggle[aria-expanded="false"] ~ .wsfd-page__nav-rule,
	.wsfd-page__nav-toggle[aria-expanded="false"] ~ .wsfd-page__nav-list {
		display: none;
	}

	.wsfd-page__related-mobile {
		display: none; /* sidebar already visible above on tablet */
	}

	.wsfd-page-related-pg {
		padding: 32px 24px;
	}

	.wsfd-page-related-pg__heading {
		font-size: 30px !important;
		line-height: 36px !important;
	}

	.wsfd-page-related-pg__cards {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	:where(.wsfd-page__content) h2 {
		font-size: 30px;
		line-height: 36px;
	}

	:where(.wsfd-page__content) h3 {
		font-size: 28px;
		line-height: 34px;
	}
}

@media (max-width: 767px) {
	.wsfd-page__sidebar .wsfd-pg-related {
		/* Keep related under nav on mobile (sidebar is stacked first). */
	}
}

/* -------------------------------------------------------------------------- */
/* Builder / admin: kill Divi preview `ul { list-style: disc }` on sidebar nav */
/* -------------------------------------------------------------------------- */

.wsfd-page__nav-list,
.wsfd-page__nav-list > li,
.et-db #et-boc .wsfd-page__nav-list,
.et-db #et-boc .wsfd-page__nav-list > li,
body.et-fb .wsfd-page__nav-list,
body.et-fb .wsfd-page__nav-list > li,
body.et-pb-preview .wsfd-page__nav-list,
body.et-pb-preview .wsfd-page__nav-list > li,
body.et-db .wsfd-page__nav-list,
body.et-db .wsfd-page__nav-list > li,
.et-boc .wsfd-page__nav-list,
.et-boc .wsfd-page__nav-list > li {
	list-style: none !important;
	list-style-type: none !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}

.wsfd-page__nav-list > li::marker,
.et-db #et-boc .wsfd-page__nav-list > li::marker,
body.et-fb .wsfd-page__nav-list > li::marker,
body.et-pb-preview .wsfd-page__nav-list > li::marker,
.et-boc .wsfd-page__nav-list > li::marker {
	content: none !important;
	display: none !important;
}

.wsfd-page__nav-list > li::before,
.et-boc .wsfd-page__nav-list > li::before {
	content: none !important;
	display: none !important;
}

/*
 * TB Code chrome + Post Content siblings → sidebar | editable content (FE + VB).
 *
 * Divi 5 VB app iframe does NOT wrap the body area in `.et-l--body` (it nests
 * under `.et-fb-layout--body` / `.et-l--post`). Anchor on `.wsfd-page-body` so
 * the same grid works on FE and in the VB canvas iframe.
 */
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content),
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) {
	display: grid !important;
	grid-template-columns: 280px minmax(0, 1fr);
	column-gap: 48px;
	/* Figma Frame 2 (3133:822): 32px under hero + under sidebar/content before Related PG. */
	row-gap: 32px;
	align-items: start;
	box-sizing: border-box;
	/* No bottom padding — white bg would show as a strip above the footer. */
	padding: 0 var(--wsfd-page-inline, var(--wsfd-page-gutter, 64px)) 0;
	background: #fff;
}

/*
 * When Related Programs is absent, Related Documents / Links are the last chrome
 * above the footer. Restore the 32px Figma under-nav token so those triggers
 * clear the dark footer without reintroducing a strip when the cream Related
 * Programs section is present (padding stays 0 above).
 */
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content):not(:has(.wsfd-page-related-pg)),
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content):not(:has(.wsfd-page-related-pg)) {
	padding-bottom: 32px;
}

.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) > .et_pb_code,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) > .et_pb_code,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .et_pb_code_inner,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .et_pb_code_inner,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-page,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-page,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-page__layout,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-page__layout {
	display: contents !important;
}

.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-page-hero,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-page-hero {
	grid-column: 1 / -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-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-page__sidebar,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-page__sidebar {
	grid-column: 1;
	grid-row: 2;
	/* Top/bottom air from parent column row-gap (32). Do not re-sticky. */
	margin-top: 0;
}

.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-page__main,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-page__main {
	display: none !important;
}

.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) > .et_pb_post_content,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):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;
}

/*
 * FE: kill default Divi first-section --section-padding (~54px) so the photo/text
 * row aligns with the sidebar under the 32px Figma gap (Frame 2 y:32). Explicit
 * module padding in Divi still wins via higher-specificity preset rules.
 */
.wsfd-page-body .et_pb_column > .et_pb_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section:first-child,
.wsfd-page-body .et_pb_column > .et_pb_fullwidth_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section:first-child,
.wsfd-page-body .et_pb_column > .et_pb_post_content > .et_builder_inner_content > .et_pb_section:first-child,
.wsfd-page-body .et_pb_column > .et_pb_fullwidth_post_content > .et_builder_inner_content > .et_pb_section:first-child {
	--section-padding: 0;
	padding-top: 0;
}

.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-page-related-pg,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-page-related-pg {
	grid-column: 1 / -1;
	grid-row: 3;
	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-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-pg-related-modal,
.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-pg-related-modal {
	grid-column: 1 / -1;
}

@media (max-width: 980px) {
	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content),
	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) {
		grid-template-columns: 1fr;
		padding: 0 24px 0;
		column-gap: 24px;
		row-gap: 24px;
	}

	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content):not(:has(.wsfd-page-related-pg)),
	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content):not(:has(.wsfd-page-related-pg)) {
		padding-bottom: 32px;
	}

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

	/*
	 * display:contents lifts Related PG before the Post Content sibling in DOM.
	 * Desktop fixes that with explicit rows (sidebar+content=2, related=3).
	 * Do not use grid-row:auto here — related stays at row 3 and content
	 * auto-places to row 4, so Related PG appears above main content.
	 */
	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) .wsfd-page__sidebar,
	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) .wsfd-page__sidebar {
		grid-column: 1;
		grid-row: 2;
		width: 100%;
		margin-top: 0;
	}

	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_post_content) > .et_pb_post_content,
	.wsfd-page-body .et_pb_column:has(> .et_pb_code .wsfd-page):has(> .et_pb_fullwidth_post_content) > .et_pb_fullwidth_post_content {
		grid-column: 1;
		grid-row: 3;
		width: 100%;
		margin-top: 0;
	}

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

/* Typography rail for TB Post Content (replaces nested .wsfd-page__content). */
.wsfd-page-body .et_pb_column > .et_pb_post_content,
.wsfd-page-body .et_pb_column > .et_pb_fullwidth_post_content {
	font-family: var(--wsfd-font-body);
	font-size: 16px;
	line-height: 1.5;
	color: var(--wsfd-conserve, #000d04);
}

/*
 * VB edit chrome: flush content to the blue Post Content / Page outline.
 * Divi `.et_flex_section { padding: var(--section-padding) 0 }` (~54–56px) and
 * 80% `--content-width` rows create the white inset inside the outline.
 * Zero the default section var only (explicit Divi module padding still wins).
 * FE keeps --section-padding / layout gutters — do not mirror these on FE.
 */
body.et-fb .wsfd-page-body .et_pb_column > .et_pb_post_content,
body.et-fb .wsfd-page-body .et_pb_column > .et_pb_fullwidth_post_content {
	--section-padding: 0;
	padding: 0 !important;
}

body.et-fb .wsfd-page-body .et_pb_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section,
body.et-fb .wsfd-page-body .et_pb_fullwidth_post_content > .et-l--post > .et_builder_inner_content > .et_pb_section,
body.et-fb .wsfd-page-body .et_pb_post_content > .et_builder_inner_content > .et_pb_section,
body.et-fb .wsfd-page-body .et_pb_fullwidth_post_content > .et_builder_inner_content > .et_pb_section {
	/* Fallback when --section-padding is ignored; still loses to module-specific padding rules. */
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 0;
	padding-right: 0;
}

/* ≥981: normal 64px gutters — no seal left-inset (titles stay on content rail). */
