/**
 * DDA site custom CSS — canonical copy (enqueued by dda-site-custom-css.php).
 * Keep in sync with wp-content/themes/dda-divi-child/assets/css/custom.css.
 * Sidebar BlueShadow bg uses CSS var --dda-blue-shadow-bg (set in PHP from uploads URL).
 *
 * @package DDA_Westedge
 */

/* ----- Footer menu layout — start ----- */
.et-db #et-boc .et-l--footer .et-menu-nav,
.et-l--footer .et-menu-nav {
	display: block !important;
	width: 100% !important;
}

.et-db #et-boc .et-l--footer #menu-footer-menu.et-menu,
.et-l--footer #menu-footer-menu.et-menu,
#menu-footer-menu.et-menu {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	column-count: 1 !important;
	columns: auto !important;
}

.et-db #et-boc .et-l--footer #menu-footer-menu.et-menu > li,
.et-l--footer #menu-footer-menu.et-menu > li,
#menu-footer-menu.et-menu > li {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	clear: both !important;
	flex: 0 0 auto !important;
	margin: 0 0 0.5rem !important;
	padding: 0 !important;
	break-inside: avoid !important;
	column-break-inside: avoid !important;
}
/* ----- Footer menu layout — end ----- */

/* ----- Footer menu links — start ----- */
.et-db #et-boc .et-l--footer #menu-footer-menu.et-menu a,
.et-l--footer #menu-footer-menu.et-menu a,
#menu-footer-menu.et-menu a {
	color: #ffffff !important;
	text-decoration: none !important;
	font-size: 17px;
}

.et-db #et-boc .et-l--footer #menu-footer-menu.et-menu a:hover,
.et-db #et-boc .et-l--footer #menu-footer-menu.et-menu a:focus-visible,
.et-l--footer #menu-footer-menu.et-menu a:hover,
.et-l--footer #menu-footer-menu.et-menu a:focus-visible,
#menu-footer-menu.et-menu a:hover,
#menu-footer-menu.et-menu a:focus-visible {
	color: #ffffff !important;
	text-decoration: underline !important;
}
/* ----- Footer menu links — end ----- */

/* ----- Divi global section spacing (Customizer @ 1350px+) — start ----- */
/*
 * Overrides et-divi-customizer-global-cached-inline-styles (.et_pb_section { padding: 54px 0 }).
 * Target: 35px top / 54px bottom on default content sections only.
 *
 * REGRESSION (May 2026): Never use bare `.et_pb_section { padding-* !important }` — it collapsed
 * TB page-title heroes (section_0_tb_body ~155px → 35px). Always exclude TB header/body hero/footer
 * and wire heroes; keep HERO REGRESSION GUARD below in sync with Divi TB module CSS.
 *
 * Admin: Customizer → General → Layout Settings → Section Height (not labeled “padding”).
 */
@media only screen and (min-width: 1350px) {
	.et_pb_section:not(.et_pb_section_0):not(.et_pb_section_0_tb_body):not(.et_pb_section_1_tb_body):not(.et_pb_section_0_tb_header):not(.et_pb_section_0_tb_footer):not(.et_pb_section_1_tb_footer):not(.dda-custom-hero):not(.et_pb_fullwidth_section):not(.et_pb_section--absolute) {
		padding-top: 35px !important;
		padding-bottom: 54px !important;
	}
}

/* ----- TB / wire page-title heroes — regression guard (do not remove) — start ----- */
/*
 * Belt-and-suspenders: wins over any future broad .et_pb_section padding rules in this file.
 * Values must match Divi TB dynamic CSS on the shared body template (section_0_tb_body).
 */
@media only screen and (min-width: 1350px) {
	#page-container .et-l--body .et_pb_section.et_pb_section_0_tb_body,
	#page-container .dda-custom-hero.et_pb_section.et_pb_section_0_tb_body.et_section_regular {
		padding-top: 155px !important;
		padding-bottom: 20px !important;
	}
}

@media only screen and (max-width: 980px) {
	#page-container .et-l--body .et_pb_section.et_pb_section_0_tb_body,
	#page-container .dda-news-detail-hero.et_pb_section {
		padding-top: 150px !important;
		padding-bottom: 0 !important;
	}

	#page-container .dda-custom-hero.et_pb_section.et_pb_section_0_tb_body.et_section_regular,
	#page-container main#primary .dda-custom-hero.et_pb_section.et_section_regular {
		padding-top: 136px !important;
		padding-bottom: 0 !important;
	}
}

@media only screen and (max-width: 767px) {
	#page-container .et-l--body .et_pb_section.et_pb_section_0_tb_body,
	#page-container .dda-news-detail-hero.et_pb_section {
		padding-top: 100px !important;
		padding-bottom: 10px !important;
	}

	#page-container .dda-custom-hero.et_pb_section.et_pb_section_0_tb_body.et_section_regular,
	#page-container main#primary .dda-custom-hero.et_pb_section.et_section_regular {
		padding-top: 136px !important;
		padding-bottom: 10px !important;
	}
}
/* Wire custom hero: vertical padding only; keep TB horizontal inset on columns (garabato clearance). */
@media only screen and (max-width: 980px) {
	#page-container .dda-custom-hero .et_pb_row,
	#page-container .dda-custom-hero .et_pb_row_dda_wire {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	#page-container .dda-custom-hero .et_pb_column,
	#page-container .dda-custom-hero .et_pb_column_dda_wire {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		padding-left: clamp(1rem, 4vw, 1.5rem) !important;
		padding-right: clamp(1rem, 4vw, 1.5rem) !important;
	}
}

/* Wire section sidebar on mobile: same 80% band + compact menu shell as TB row_1. */
@media only screen and (max-width: 980px) {
	body.dda-has-wire-section-sidebar main#primary .dda-wire-section-sidebar__stack.dda-tb-sidebar-menu-shell {
		padding: 20px !important;
		gap: 8px !important;
	}

	body.dda-has-wire-section-sidebar main#primary .dda-wire-section-sidebar__menu {
		gap: 3px !important;
	}

	body.dda-has-wire-section-sidebar main#primary .dda-wire-section-sidebar__menu > li {
		gap: 2px !important;
	}

	body.dda-has-wire-section-sidebar main#primary .dda-wire-section-sidebar__menu > li > a {
		padding: 6px 10px !important;
		line-height: 21px !important;
		font-size: 17px !important;
	}
}

/* ----- TB / wire page-title heroes — regression guard — end ----- */
/* ----- Divi global section spacing — end ----- */

/* ----- TB sidebar layout: post content width containment — start ----- */
/*
 * Section pages (Gallery, Map, Arts, CIG, etc.): TB sets Post Content to width:110% in module CSS,
 * which spills past the 3/4 column and misaligns vs header/footer (~1080px band). CTAs in the same
 * column stay at 100% and look “off-center”. Fix: clamp post content + nested builder to column width.
 */
/*
 * Do NOT use overflow-x:hidden here — with negative row margins in post content, CSS treats
 * overflow-y as auto and clips the first h2. width:100% rules below are enough for horizontal contain.
 */
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) {
	overflow-x: clip;
	overflow-y: visible;
}

#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) > .et_pb_module.et_pb_post_content {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et-l--post,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_builder_inner_content {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_row {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box;
}

#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_code,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_code_inner,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_gallery,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_gallery_items,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content iframe,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content img,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content table {
	max-width: 100% !important;
	box-sizing: border-box;
}

#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content iframe {
	width: 100% !important;
}

/* Divi often sets margin-top:-40px on the first post-content row; reset so first h2 is not clipped. */
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:first-child {
	margin-top: 0 !important;
}

/* ----- TB sidebar layout: vertical align (content top = sidebar box top) — start ----- */
/*
 * Target: first main heading aligns with the TOP edge of the sidebar box (not the title inside it).
 * Do not add padding-top on .et-l--post — that recreates the white band above the h2.
 * Nested page sections (.et_pb_section_0, etc.) must not get global Customizer 35px top padding.
 */
@media only screen and (min-width: 1350px) {
	#page-container .et-l--body .et_pb_section.et_pb_section_1_tb_body {
		padding-top: 25px !important;
		padding-bottom: 54px !important;
	}

	/*
	 * stretch (not flex-start): sidebar column must match row height for position:sticky.
	 * Sticky stack + sidebar-sticky.css also set stretch; 3/4 column keeps align-self:flex-start below.
	 */
	#page-container .et-l--body .et_pb_row.et_pb_row_1_tb_body:has(> .et_pb_column_1_4 .dsm-menu.dsm-menu-layout-vertical) {
		align-items: stretch !important;
		margin-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_row.et_pb_row_1_tb_body:not(:has(> .et_pb_column_1_4 .dsm-menu.dsm-menu-layout-vertical)) {
		align-items: flex-start !important;
		margin-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) {
		padding-top: 0 !important;
		align-self: flex-start !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) > .et_pb_module.et_pb_post_content {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et-l--post,
	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_builder_inner_content {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section,
	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section.et_section_regular {
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_row {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		margin-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_module.et_pb_text:first-child {
		padding-top: 0 !important;
		margin-top: 0 !important;
	}
}

/*
 * First heading in post content (not always :first-child — Catalyst has WP block lead-in
 * <p><!-- divi:heading --></p> before the h2, which would keep typography margin-top: 32px).
 */
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section:first-child .et_pb_module.et_pb_text:first-child .et_pb_text_inner > :is(h1, h2, h3, h4, h5, h6):first-of-type,
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section:first-child .et_pb_module.et_pb_text:first-child .et_pb_text_inner > p:first-child + :is(h1, h2, h3, h4, h5, h6) {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* WP/Divi block migration placeholder only (<p><!-- divi:heading --></p> before h2) — not normal paragraphs. */
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section:first-child .et_pb_module.et_pb_text:first-child .et_pb_text_inner > p:first-child:has(+ :is(h1, h2, h3, h4, h5, h6)) {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
	min-height: 0 !important;
	overflow: hidden;
}

/*
 * Builder row rhythm inside post content (Incentives grant cards, multi-row layouts).
 * Vertical-align rules above zero Divi row padding; restore separation between rows
 * regardless of what follows (heading, text module, button, another row).
 */
#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section .et_pb_row:not(:last-child) {
	margin-bottom: 32px !important;
}

#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section:not(:last-child) {
	margin-bottom: 32px !important;
}
/* ----- TB sidebar layout: vertical align — end ----- */
/* ----- TB sidebar layout: post content width containment — end ----- */

/* ==================================================
   DDA SIDEBAR MENU REDESIGN FOUNDATION
   ==================================================
   Context: section sidebars are hand-built in Divi TB (left column + heading + DSM Menu).
   There is no single global menu template; each section picks a WP menu (unique ul id).

   DOM (typical):
     .et-l--body .et_pb_column_*_tb_body
       .et_pb_heading (static section title)
       .et_pb_module.dsm_menu.dsm_menu_{N}_tb_body
         .dsm-menu-container > nav > ul#{menu-slug}.dsm-menu.dsm-menu-layout-vertical

   Selector layers:
   - SHARED (reuse across sections): .dsm-menu-container, ul.dsm-menu.dsm-menu-layout-vertical,
     .dsm-menu-style-type-none, link/hover rules scoped to .et-l--body (not header).
   - DIVI INSTANCE (may match header + sidebar): .dsm_menu_{N}_tb_body — often dsm_menu_0_tb_body
     on body layouts; do not use alone (header uses same class pattern).
   - MENU-SPECIFIC: #menu-downtown-district, #menu-projects-plans, etc. — use for exceptions only.
   - LAYOUT SHELL: .et_pb_column_1_4.et_pb_column_1_tb_body — left sidebar column in the
     standard 1/4 + 3/4 TB row (heading + DSM menu live here).
   - TB INLINE CSS: per-layout colors (e.g. a:hover #908075) load after theme; use !important when overriding.

   Header primary nav is excluded via .et-l--body (not #et-header).
   ================================================== */

/* --- TB row: drop erroneous -30px bottom margin (Divi dynamic CSS on body template) --- */
#page-container .et-l--body .et_pb_row.et_pb_row_1_tb_body.et_pb_row {
	margin-bottom: 0 !important;
}

/* --- Sidebar shell (Figma: Sidebar Menu container) --- */
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body,
#page-container .et-l--body .et_pb_row .et_pb_column_1_4:first-child:has(.dsm-menu.dsm-menu-layout-vertical) {
	margin-right: 3% !important;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: stretch;
	padding: 20px;
	gap: 8px;
	box-sizing: border-box;
	width: 250px;
	max-width: 100%;
	background-color: transparent;
	background-image: var(--dda-blue-shadow-bg);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

/* TOC below menu: column is neutral; BlueShadow only on menu shell. */
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body.dda-tb-sidebar-has-toc {
	background-image: none;
	background-color: transparent;
	padding: 0;
	gap: 12px;
	align-items: stretch;
}

#page-container .et-l--body .dda-tb-sidebar-menu-shell {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: stretch;
	box-sizing: border-box;
	width: 100%;
	max-width: 250px;
	padding: 20px;
	gap: 8px;
	background-color: transparent;
	background-image: var(--dda-blue-shadow-bg);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body.dda-tb-sidebar-has-toc > .dda-sidebar-toc {
	align-self: stretch;
	width: 100%;
	max-width: 250px;
	margin: 0;
}

/* Mobile: sidebar menu + TOC span full column width (no 250px band on the right). */
@media only screen and (max-width: 980px) {
	#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body,
	#page-container .et-l--body .et_pb_row .et_pb_column_1_4:first-child:has(.dsm-menu.dsm-menu-layout-vertical) {
		width: 100% !important;
		max-width: 100% !important;
		align-items: stretch !important;
		margin-right: 0 !important;
		box-sizing: border-box;
	}

	#page-container .et-l--body .dda-tb-sidebar-menu-shell {
		width: 100% !important;
		max-width: none !important;
		align-items: stretch !important;
	}

	#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .et_pb_module_heading,
	#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body h2.et_pb_module_heading,
	#page-container .et-l--body .dda-tb-sidebar-menu-shell .et_pb_module_heading,
	#page-container .et-l--body .dda-tb-sidebar-menu-shell h2.et_pb_module_heading,
	#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container,
	#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical {
		width: 100% !important;
		max-width: none !important;
	}

	#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body.dda-tb-sidebar-has-toc > .dda-sidebar-toc {
		width: 100% !important;
		max-width: none !important;
		margin-bottom: 0 !important;
	}

	/* Moderate gap between sidebar (menu + TOC) and main content when stacked. */
	body.dda-has-tb-sidebar-nav #page-container .et-l--body .et_pb_row.et_pb_row_1_tb_body:has(.dda-tb-sidebar-has-toc) {
		row-gap: 20px !important;
	}

	#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body.dda-tb-sidebar-has-toc {
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}

	#page-container .et-l--body .et_pb_row.et_pb_row_1_tb_body > .et_pb_column_3_4:has(.et_pb_post_content),
	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) > .et_pb_module.et_pb_post_content {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et-l--post,
	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_builder_inner_content {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section:first-child,
	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section.et_section_regular:first-child {
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_section:first-child > .et_pb_row:first-child,
	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et-l--post .et_builder_inner_content > .et_pb_section:first-child > .et_pb_row:first-child {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	#page-container .et-l--body .et_pb_column_3_4:has(.et_pb_post_content) .et_pb_post_content .et_pb_module.et_pb_text:first-child {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}
}

/* --- Sidebar section title (Figma: Parent Page / Sidebar Title) --- */
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body > .et_pb_module.et_pb_heading,
#page-container .et-l--body .dda-tb-sidebar-menu-shell > .et_pb_module.et_pb_heading {
	align-self: stretch;
	flex: none;
	width: 100%;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .et_pb_module_heading,
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body h2.et_pb_module_heading,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .et_pb_module_heading,
#page-container .et-l--body .dda-tb-sidebar-menu-shell h2.et_pb_module_heading {
	width: 100%;
	max-width: 100%;
	margin: 0;
	font-family: new-atten, sans-serif;
	font-style: normal;
	font-weight: 700;
	font-size: 19px;
	line-height: 20px;
	text-transform: uppercase;
	color: #ffffff;
}

/* --- Sidebar DSM menu list (Figma: Frame 1 + Sidebar Menu Item with Bar) --- */
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body > .et_pb_module.dsm_menu,
#page-container .et-l--body .dda-tb-sidebar-menu-shell > .et_pb_module.dsm_menu {
	align-self: stretch;
	flex: none;
	width: 100%;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container nav,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container nav {
	width: 100%;
	max-width: 100%;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	padding: 0;
	margin: 0;
	gap: 3px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	list-style: none;
	box-sizing: border-box;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 2px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	box-sizing: border-box;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li::after,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li::after {
	content: "";
	display: block;
	flex: none;
	align-self: stretch;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	border-bottom: 1px solid #ffffff;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a,
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a span[itemprop="name"],
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a span[itemprop="name"] {
	font-family: new-atten, sans-serif !important;
	font-style: normal !important;
	/* Adobe kit txh7nko ships new-atten 400 + 700 only; Figma 500 maps to faux-400 (too light). */
	font-weight: 700 !important;
	font-size: 17px !important;
	line-height: 21px !important;
	letter-spacing: 0 !important;
	font-synthesis: none;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	padding: 6px 10px;
	color: #ffffff !important;
	text-decoration: none !important;
	background: transparent;
	transition: color 0.2s ease;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a span[itemprop="name"],
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a span[itemprop="name"] {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: inherit;
}

#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a:hover,
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a:focus-visible,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a:hover,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li > a:focus-visible {
	color: #b6c2d9 !important;
	text-decoration: none !important;
}

/* Sidebar TOC list items — same weight as DSM sidebar menu (700). */
.dda-sidebar-toc .dda-sidebar-toc__list .dda-sidebar-toc__item,
.dda-sidebar-toc .dda-sidebar-toc__list .dda-sidebar-toc__item .dda-sidebar-toc__link,
.dda-sidebar-toc .dda-sidebar-toc__list .dda-sidebar-toc__item .dda-sidebar-toc__link[role="button"] {
	font-family: new-atten, sans-serif !important;
	font-weight: 700 !important;
	font-size: 17px !important;
	line-height: 21px !important;
	letter-spacing: 0 !important;
	font-synthesis: none;
}

/* Active sidebar item (design token) */
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li.current-menu-item > a,
#page-container .et-l--body .et_pb_column.et_pb_column_1_4.et_pb_column_1_tb_body .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li.current_page_item > a,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li.current-menu-item > a,
#page-container .et-l--body .dda-tb-sidebar-menu-shell .dsm-menu-container ul.dsm-menu.dsm-menu-layout-vertical > li.current_page_item > a {
	color: #e7dbc4 !important;
}

/* ==================================================
   END DDA SIDEBAR MENU REDESIGN FOUNDATION
   ================================================== */

/* ----- Footer heading utility class — start ----- */
.footer-heading,
.et-db #et-boc .et-l--footer .footer-heading,
.et-l--footer .footer-heading {
	color: #b6c2d9 !important;
	font-family: new-atten, sans-serif !important;
	font-size: 20px !important;
	font-style: normal;
	font-weight: 600 !important;
	line-height: 1.4em !important;
	text-align: left !important;
	text-transform: uppercase !important;
}
/* ----- Footer heading utility class — end ----- */

/* ----- Wire archives: inherit Theme Builder / Divi body styles — start ----- */
/*
 * News, Resources, Meetings, Events wires: match #main-content typography and buttons.
 * Wire-specific layout stays in MU wire-templates/*.css; this file only bridges theme parity.
 */
.dda-news-wire,
.dda-resources-wire,
.dda-meetings-wire,
.dda-events-rss {
	color: #392425;
	font-family: inherit;
	font-weight: inherit;
}

.dda-news-wire__standard-head .entry-title,
.dda-resources-wire__standard-head .entry-title,
.dda-meetings-wire__standard-head .entry-title,
.dda-events-rss__standard-head .entry-title {
	color: #143840 !important;
	font-family: new-atten, sans-serif !important;
	font-size: 65px !important;
	font-weight: 400 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.03em !important;
	line-height: 1.05 !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	hyphens: none !important;
}

@media (max-width: 980px) {
	.dda-news-wire__standard-head .entry-title,
	.dda-resources-wire__standard-head .entry-title,
	.dda-meetings-wire__standard-head .entry-title,
	.dda-events-rss__standard-head .entry-title {
		font-size: 45px !important;
		line-height: 1.1 !important;
	}
}

.dda-news-wire__results-status,
.dda-meetings-wire__results-status,
.dda-resources-wire__results-status,
.dda-events-rss .dda-news-wire__results-status {
	color: #143840 !important;
	font-family: new-atten, sans-serif !important;
}

.dda-events-rss__title-text,
.dda-events-rss span.dda-events-rss__title {
	color: #143840 !important;
	font-family: new-atten, sans-serif !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

.dda-resources-wire__tab,
.dda-resources-wire__tab .dda-resources-wire__tab-text {
	font-family: new-atten, sans-serif !important;
}

.dda-resources-wire__tab[aria-selected='true'] {
	color: #ffffff !important;
}

.dda-resources-wire__results-status {
	font-size: 1.125rem !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
	letter-spacing: 0.01em !important;
}

@media (min-width: 768px) {
	.dda-resources-wire__results-status {
		font-size: 1.1875rem !important;
	}
}

/* Resources cards: match News / Meetings / Arts (#392425 panels, white type) */
.dda-resources-wire__card {
	background-color: #392425 !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: #ffffff !important;
}

.dda-resources-wire__card .dda-resources-wire__title,
.dda-resources-wire__card .dda-resources-wire__title-text {
	color: #ffffff !important;
	font-family: new-atten, sans-serif !important;
	font-size: 1.125rem !important;
	line-height: 1.3 !important;
	font-weight: 700 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

.dda-resources-wire__card .dda-resources-wire__summary,
.dda-resources-wire__card .dda-resources-wire__summary.dda-resources-wire__rich-plain,
.dda-resources-wire__card .dda-resources-wire__fact-value,
.dda-resources-wire__card .dda-resources-wire__contact-text,
.dda-resources-wire__card .dda-resources-wire__contact-text a {
	color: #ffffff !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	line-height: 1.65 !important;
	font-weight: 600 !important;
	letter-spacing: normal !important;
}

.dda-resources-wire__card .dda-resources-wire__contact-muted {
	color: rgba(255, 255, 255, 0.72) !important;
	font-weight: 600 !important;
}

.dda-resources-wire__card .dda-resources-wire__fact-label,
.dda-resources-wire__card .dda-resources-wire__fact-label--relation {
	color: rgba(255, 255, 255, 0.78) !important;
}

.dda-resources-wire__empty {
	color: inherit !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	line-height: 1.55 !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
}

.dda-events-rss__intro-title {
	margin: 0 0 0.35rem;
	color: #143840 !important;
	font-family: new-atten, sans-serif !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

.dda-events-rss__intro-title a,
.dda-events-rss__intro-external-link {
	color: inherit !important;
	font: inherit !important;
	text-decoration: none;
}

.dda-events-rss__intro-external-link__label {
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.dda-events-rss__title-link {
	color: inherit;
	text-decoration: none;
}

.dda-events-rss__title-link:hover .dda-events-rss__title-text,
.dda-events-rss__title-link:focus-visible .dda-events-rss__title-text {
	text-decoration: underline;
	text-underline-offset: 0.12em;
	text-decoration-thickness: 1px;
}

.dda-events-rss__meta,
.dda-events-rss__summary,
.dda-events-rss__empty,
.dda-events-rss__notice,
.dda-events-rss__feed-note,
.dda-events-rss p {
	color: inherit !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	line-height: 1.65 !important;
	font-weight: 600 !important;
	letter-spacing: normal !important;
}

.dda-events-rss__notice-detail {
	font-size: 0.9375rem !important;
	line-height: 1.5 !important;
	font-weight: 600 !important;
}

/* News cards: match /arts/ Divi columns (dark #392425 panel, white type) */
.dda-news-wire__card {
	background-color: #392425 !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: #ffffff !important;
}

.dda-news-wire__card-inner {
	background: transparent !important;
	color: #ffffff !important;
}

.dda-news-wire__meta {
	color: rgba(255, 255, 255, 0.78) !important;
}

.dda-news-wire__title {
	margin: 0 !important;
	font-family: new-atten, sans-serif !important;
	font-size: 18px !important;
	line-height: 1.3 !important;
	font-weight: 700 !important;
	color: #ffffff !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

.dda-news-wire__title a {
	color: #ffffff !important;
}

.dda-news-wire__title a:hover,
.dda-news-wire__title a:focus-visible {
	color: #ffffff !important;
}

.dda-news-wire__excerpt {
	color: #ffffff !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.65 !important;
}

/* ----- Wire archives: inherit Theme Builder / Divi body styles — end ----- */

/* ----- Divi / Theme Builder CTAs: hover underline on label — start ----- */
/*
 * Parity with wire archive buttons (Apply, Read more, Visit website).
 * Underline the visible label only — not icon-only or empty controls.
 */
#page-container .et_pb_button:hover .et_pb_button_text,
#page-container .et_pb_button:focus-visible .et_pb_button_text,
#page-container .et_pb_button:hover .et_pb_button_content_wrapper,
#page-container .et_pb_button:focus-visible .et_pb_button_content_wrapper {
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	text-decoration-thickness: 1px !important;
}

#page-container .et_pb_button:not(:has(.et_pb_button_text)):not(:has(.et_pb_button_content_wrapper)):hover,
#page-container .et_pb_button:not(:has(.et_pb_button_text)):not(:has(.et_pb_button_content_wrapper)):focus-visible {
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	text-decoration-thickness: 1px !important;
}

#page-container a.button:hover,
#page-container a.button:focus-visible,
#page-container button.button:hover,
#page-container button.button:focus-visible {
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	text-decoration-thickness: 1px !important;
}
/* ----- Divi / Theme Builder CTAs: hover underline on label — end ----- */

/* ==========================================================================
   GLOBAL CONTENT SPACING + TYPOGRAPHY RHYTHM — start
   ADA / Editorial readability improvements
   ========================================================================== */

/*
|--------------------------------------------------------------------------
| Headings
|--------------------------------------------------------------------------
| Consistent spacing between headings and following content
| Improves readability and visual hierarchy
*/

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6,
.et_pb_post_content h1,
.et_pb_post_content h2,
.et_pb_post_content h3,
.et_pb_post_content h4,
.et_pb_post_content h5,
.et_pb_post_content h6,
.et_pb_text_inner h1,
.et_pb_text_inner h2,
.et_pb_text_inner h3,
.et_pb_text_inner h4,
.et_pb_text_inner h5,
.et_pb_text_inner h6 {
	line-height: 1.25 !important;
	margin-top: 0 !important;
	margin-bottom: 12px !important;
}

/*
|--------------------------------------------------------------------------
| Section headings — default top spacing (major breaks)
|--------------------------------------------------------------------------
*/

.entry-content h2,
.et_pb_post_content h2,
.et_pb_text_inner h2 {
	margin-top: 32px !important;
}

.entry-content h3,
.et_pb_post_content h3,
.et_pb_text_inner h3 {
	margin-top: 22px !important;
}

.entry-content h4,
.entry-content h5,
.entry-content h6,
.et_pb_post_content h4,
.et_pb_post_content h5,
.et_pb_post_content h6,
.et_pb_text_inner h4,
.et_pb_text_inner h5,
.et_pb_text_inner h6 {
	margin-top: 18px !important;
}

/*
|--------------------------------------------------------------------------
| Tighter rhythm — lists, adjacent blocks (reduces stacked margins)
|--------------------------------------------------------------------------
*/

.entry-content p,
.entry-content blockquote,
.et_pb_post_content p,
.et_pb_post_content blockquote,
.et_pb_text_inner p,
.et_pb_text_inner blockquote {
	line-height: 1.65 !important;
	margin-top: 0 !important;
	margin-bottom: 12px !important;
}

/*
|--------------------------------------------------------------------------
| Main content inline links — underline (WCAG 1.4.1, not color alone)
|--------------------------------------------------------------------------
| Scoped to #main-content prose only (p, lists, blockquote, table cells, headings).
| Excludes buttons, promos, nav, sidebar DSM menus, header/footer.
*/

#main-content .et_pb_post_content :is(p, li, blockquote, td, th, figcaption, h1, h2, h3, h4, h5, h6) a:not(.et_pb_button):not(.et_pb_promo_button),
#main-content .entry-content :is(p, li, blockquote, td, th, figcaption, h1, h2, h3, h4, h5, h6) a:not(.et_pb_button):not(.et_pb_promo_button) {
	text-decoration: underline !important;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}

#main-content .et_pb_post_content :is(p, li, blockquote, td, th, figcaption, h1, h2, h3, h4, h5, h6) a:not(.et_pb_button):not(.et_pb_promo_button):hover,
#main-content .et_pb_post_content :is(p, li, blockquote, td, th, figcaption, h1, h2, h3, h4, h5, h6) a:not(.et_pb_button):not(.et_pb_promo_button):focus-visible,
#main-content .entry-content :is(p, li, blockquote, td, th, figcaption, h1, h2, h3, h4, h5, h6) a:not(.et_pb_button):not(.et_pb_promo_button):hover,
#main-content .entry-content :is(p, li, blockquote, td, th, figcaption, h1, h2, h3, h4, h5, h6) a:not(.et_pb_button):not(.et_pb_promo_button):focus-visible {
	text-decoration: underline !important;
}

.entry-content ul:not(.dda-sidebar-toc__list),
.entry-content ol,
.et_pb_post_content ul:not(.dda-sidebar-toc__list),
.et_pb_post_content ol,
.et_pb_text_inner ul:not(.dda-sidebar-toc__list),
.et_pb_text_inner ol {
	line-height: 1.6 !important;
	margin-top: 0 !important;
	margin-bottom: 8px !important;
	padding-left: 1.35em !important;
}

.entry-content ul.dda-sidebar-toc__list,
.et_pb_post_content ul.dda-sidebar-toc__list,
.et_pb_text_inner ul.dda-sidebar-toc__list,
.dda-sidebar-toc ul.dda-sidebar-toc__list {
	padding-left: 0 !important;
	margin-left: 0 !important;
	list-style: none !important;
}

.entry-content li,
.et_pb_post_content li,
.et_pb_text_inner li {
	margin-bottom: 6px !important;
	line-height: 1.6 !important;
}

.entry-content li:last-child,
.et_pb_post_content li:last-child,
.et_pb_text_inner li:last-child {
	margin-bottom: 0 !important;
}

/* Heading immediately followed by a list */
.entry-content h2 + ul,
.entry-content h2 + ol,
.entry-content h3 + ul,
.entry-content h3 + ol,
.entry-content h4 + ul,
.entry-content h4 + ol,
.entry-content h5 + ul,
.entry-content h5 + ol,
.entry-content h6 + ul,
.entry-content h6 + ol,
.entry-content p + ul,
.entry-content p + ol,
.et_pb_post_content h2 + ul,
.et_pb_post_content h2 + ol,
.et_pb_post_content h3 + ul,
.et_pb_post_content h3 + ol,
.et_pb_post_content h4 + ul,
.et_pb_post_content h4 + ol,
.et_pb_post_content h5 + ul,
.et_pb_post_content h5 + ol,
.et_pb_post_content h6 + ul,
.et_pb_post_content h6 + ol,
.et_pb_post_content p + ul,
.et_pb_post_content p + ol,
.et_pb_text_inner h2 + ul,
.et_pb_text_inner h2 + ol,
.et_pb_text_inner h3 + ul,
.et_pb_text_inner h3 + ol,
.et_pb_text_inner h4 + ul,
.et_pb_text_inner h4 + ol,
.et_pb_text_inner h5 + ul,
.et_pb_text_inner h5 + ol,
.et_pb_text_inner h6 + ul,
.et_pb_text_inner h6 + ol,
.et_pb_text_inner p + ul,
.et_pb_text_inner p + ol {
	margin-top: 0 !important;
}

.entry-content h2:has(+ ul),
.entry-content h2:has(+ ol),
.entry-content h3:has(+ ul),
.entry-content h3:has(+ ol),
.entry-content h4:has(+ ul),
.entry-content h4:has(+ ol),
.entry-content h5:has(+ ul),
.entry-content h5:has(+ ol),
.entry-content h6:has(+ ul),
.entry-content h6:has(+ ol),
.et_pb_post_content h2:has(+ ul),
.et_pb_post_content h2:has(+ ol),
.et_pb_post_content h3:has(+ ul),
.et_pb_post_content h3:has(+ ol),
.et_pb_post_content h4:has(+ ul),
.et_pb_post_content h4:has(+ ol),
.et_pb_post_content h5:has(+ ul),
.et_pb_post_content h5:has(+ ol),
.et_pb_post_content h6:has(+ ul),
.et_pb_post_content h6:has(+ ol),
.et_pb_text_inner h2:has(+ ul),
.et_pb_text_inner h2:has(+ ol),
.et_pb_text_inner h3:has(+ ul),
.et_pb_text_inner h3:has(+ ol),
.et_pb_text_inner h4:has(+ ul),
.et_pb_text_inner h4:has(+ ol),
.et_pb_text_inner h5:has(+ ul),
.et_pb_text_inner h5:has(+ ol),
.et_pb_text_inner h6:has(+ ul),
.et_pb_text_inner h6:has(+ ol) {
	margin-bottom: 8px !important;
}

/* List end — shrink tail before the next block */
.entry-content ul:has(+ h1),
.entry-content ul:has(+ h2),
.entry-content ul:has(+ h3),
.entry-content ul:has(+ h4),
.entry-content ul:has(+ h5),
.entry-content ul:has(+ h6),
.entry-content ul:has(+ p),
.entry-content ul:has(+ span),
.entry-content ol:has(+ h1),
.entry-content ol:has(+ h2),
.entry-content ol:has(+ h3),
.entry-content ol:has(+ h4),
.entry-content ol:has(+ h5),
.entry-content ol:has(+ h6),
.entry-content ol:has(+ p),
.entry-content ol:has(+ span),
.et_pb_post_content ul:has(+ h1),
.et_pb_post_content ul:has(+ h2),
.et_pb_post_content ul:has(+ h3),
.et_pb_post_content ul:has(+ h4),
.et_pb_post_content ul:has(+ h5),
.et_pb_post_content ul:has(+ h6),
.et_pb_post_content ul:has(+ p),
.et_pb_post_content ul:has(+ span),
.et_pb_post_content ol:has(+ h1),
.et_pb_post_content ol:has(+ h2),
.et_pb_post_content ol:has(+ h3),
.et_pb_post_content ol:has(+ h4),
.et_pb_post_content ol:has(+ h5),
.et_pb_post_content ol:has(+ h6),
.et_pb_post_content ol:has(+ p),
.et_pb_post_content ol:has(+ span),
.et_pb_text_inner ul:has(+ h1),
.et_pb_text_inner ul:has(+ h2),
.et_pb_text_inner ul:has(+ h3),
.et_pb_text_inner ul:has(+ h4),
.et_pb_text_inner ul:has(+ h5),
.et_pb_text_inner ul:has(+ h6),
.et_pb_text_inner ul:has(+ p),
.et_pb_text_inner ul:has(+ span),
.et_pb_text_inner ol:has(+ h1),
.et_pb_text_inner ol:has(+ h2),
.et_pb_text_inner ol:has(+ h3),
.et_pb_text_inner ol:has(+ h4),
.et_pb_text_inner ol:has(+ h5),
.et_pb_text_inner ol:has(+ h6),
.et_pb_text_inner ol:has(+ p),
.et_pb_text_inner ol:has(+ span) {
	margin-bottom: 4px !important;
}

/* List (or paragraph) followed by a heading — tight gap after ul/ol */
.entry-content ul + h1,
.entry-content ul + h2,
.entry-content ul + h3,
.entry-content ul + h4,
.entry-content ul + h5,
.entry-content ul + h6,
.entry-content ol + h1,
.entry-content ol + h2,
.entry-content ol + h3,
.entry-content ol + h4,
.entry-content ol + h5,
.entry-content ol + h6,
.entry-content ul + p,
.entry-content ul + span,
.entry-content ol + p,
.entry-content ol + span,
.entry-content p + h2,
.entry-content p + h3,
.entry-content p + h4,
.et_pb_post_content ul + h1,
.et_pb_post_content ul + h2,
.et_pb_post_content ul + h3,
.et_pb_post_content ul + h4,
.et_pb_post_content ul + h5,
.et_pb_post_content ul + h6,
.et_pb_post_content ol + h1,
.et_pb_post_content ol + h2,
.et_pb_post_content ol + h3,
.et_pb_post_content ol + h4,
.et_pb_post_content ol + h5,
.et_pb_post_content ol + h6,
.et_pb_post_content ul + p,
.et_pb_post_content ul + span,
.et_pb_post_content ol + p,
.et_pb_post_content ol + span,
.et_pb_post_content p + h2,
.et_pb_post_content p + h3,
.et_pb_post_content p + h4,
.et_pb_text_inner ul + h1,
.et_pb_text_inner ul + h2,
.et_pb_text_inner ul + h3,
.et_pb_text_inner ul + h4,
.et_pb_text_inner ul + h5,
.et_pb_text_inner ul + h6,
.et_pb_text_inner ol + h1,
.et_pb_text_inner ol + h2,
.et_pb_text_inner ol + h3,
.et_pb_text_inner ol + h4,
.et_pb_text_inner ol + h5,
.et_pb_text_inner ol + h6,
.et_pb_text_inner ul + p,
.et_pb_text_inner ul + span,
.et_pb_text_inner ol + p,
.et_pb_text_inner ol + span,
.et_pb_text_inner p + h2,
.et_pb_text_inner p + h3,
.et_pb_text_inner p + h4 {
	margin-top: 8px !important;
}

/* Blank lines Divi inserts after lists */
.entry-content ul + p:empty,
.entry-content ol + p:empty,
.et_pb_post_content ul + p:empty,
.et_pb_post_content ol + p:empty,
.et_pb_text_inner ul + p:empty,
.et_pb_text_inner ol + p:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
}

.entry-content ul + p:has(> br:only-child),
.entry-content ol + p:has(> br:only-child),
.et_pb_post_content ul + p:has(> br:only-child),
.et_pb_post_content ol + p:has(> br:only-child),
.et_pb_text_inner ul + p:has(> br:only-child),
.et_pb_text_inner ol + p:has(> br:only-child) {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
}

/* Subheading directly under a section heading */
.entry-content h2 + h3,
.entry-content h2 + h4,
.entry-content h3 + h4,
.entry-content h3 + h5,
.et_pb_post_content h2 + h3,
.et_pb_post_content h2 + h4,
.et_pb_post_content h3 + h4,
.et_pb_post_content h3 + h5,
.et_pb_text_inner h2 + h3,
.et_pb_text_inner h2 + h4,
.et_pb_text_inner h3 + h4,
.et_pb_text_inner h3 + h5 {
	margin-top: 12px !important;
}

/*
|--------------------------------------------------------------------------
| Heading + body text (span, p) — tight coupling (e.g. h4 + span in Divi)
|--------------------------------------------------------------------------
*/

.entry-content h1 + span,
.entry-content h2 + span,
.entry-content h3 + span,
.entry-content h4 + span,
.entry-content h5 + span,
.entry-content h6 + span,
.entry-content h1 + p,
.entry-content h2 + p,
.entry-content h3 + p,
.entry-content h4 + p,
.entry-content h5 + p,
.entry-content h6 + p,
.et_pb_post_content h1 + span,
.et_pb_post_content h2 + span,
.et_pb_post_content h3 + span,
.et_pb_post_content h4 + span,
.et_pb_post_content h5 + span,
.et_pb_post_content h6 + span,
.et_pb_post_content h1 + p,
.et_pb_post_content h2 + p,
.et_pb_post_content h3 + p,
.et_pb_post_content h4 + p,
.et_pb_post_content h5 + p,
.et_pb_post_content h6 + p,
.et_pb_text_inner h1 + span,
.et_pb_text_inner h2 + span,
.et_pb_text_inner h3 + span,
.et_pb_text_inner h4 + span,
.et_pb_text_inner h5 + span,
.et_pb_text_inner h6 + span,
.et_pb_text_inner h1 + p,
.et_pb_text_inner h2 + p,
.et_pb_text_inner h3 + p,
.et_pb_text_inner h4 + p,
.et_pb_text_inner h5 + p,
.et_pb_text_inner h6 + p {
	display: block !important;
	margin-top: 0 !important;
}

.entry-content h1:has(+ span),
.entry-content h2:has(+ span),
.entry-content h3:has(+ span),
.entry-content h4:has(+ span),
.entry-content h5:has(+ span),
.entry-content h6:has(+ span),
.entry-content h1:has(+ p),
.entry-content h2:has(+ p),
.entry-content h3:has(+ p),
.entry-content h4:has(+ p),
.entry-content h5:has(+ p),
.entry-content h6:has(+ p),
.et_pb_post_content h1:has(+ span),
.et_pb_post_content h2:has(+ span),
.et_pb_post_content h3:has(+ span),
.et_pb_post_content h4:has(+ span),
.et_pb_post_content h5:has(+ span),
.et_pb_post_content h6:has(+ span),
.et_pb_post_content h1:has(+ p),
.et_pb_post_content h2:has(+ p),
.et_pb_post_content h3:has(+ p),
.et_pb_post_content h4:has(+ p),
.et_pb_post_content h5:has(+ p),
.et_pb_post_content h6:has(+ p),
.et_pb_text_inner h1:has(+ span),
.et_pb_text_inner h2:has(+ span),
.et_pb_text_inner h3:has(+ span),
.et_pb_text_inner h4:has(+ span),
.et_pb_text_inner h5:has(+ span),
.et_pb_text_inner h6:has(+ span),
.et_pb_text_inner h1:has(+ p),
.et_pb_text_inner h2:has(+ p),
.et_pb_text_inner h3:has(+ p),
.et_pb_text_inner h4:has(+ p),
.et_pb_text_inner h5:has(+ p),
.et_pb_text_inner h6:has(+ p) {
	margin-bottom: 6px !important;
}

/* Divi often inserts blank paragraphs between blocks — collapse them */
.entry-content h1 + p:empty,
.entry-content h2 + p:empty,
.entry-content h3 + p:empty,
.entry-content h4 + p:empty,
.entry-content h5 + p:empty,
.entry-content h6 + p:empty,
.et_pb_post_content h1 + p:empty,
.et_pb_post_content h2 + p:empty,
.et_pb_post_content h3 + p:empty,
.et_pb_post_content h4 + p:empty,
.et_pb_post_content h5 + p:empty,
.et_pb_post_content h6 + p:empty,
.et_pb_text_inner h1 + p:empty,
.et_pb_text_inner h2 + p:empty,
.et_pb_text_inner h3 + p:empty,
.et_pb_text_inner h4 + p:empty,
.et_pb_text_inner h5 + p:empty,
.et_pb_text_inner h6 + p:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	height: 0 !important;
}

.entry-content h1 + p:has(> br:only-child),
.entry-content h2 + p:has(> br:only-child),
.entry-content h3 + p:has(> br:only-child),
.entry-content h4 + p:has(> br:only-child),
.entry-content h5 + p:has(> br:only-child),
.entry-content h6 + p:has(> br:only-child),
.et_pb_post_content h1 + p:has(> br:only-child),
.et_pb_post_content h2 + p:has(> br:only-child),
.et_pb_post_content h3 + p:has(> br:only-child),
.et_pb_post_content h4 + p:has(> br:only-child),
.et_pb_post_content h5 + p:has(> br:only-child),
.et_pb_post_content h6 + p:has(> br:only-child),
.et_pb_text_inner h1 + p:has(> br:only-child),
.et_pb_text_inner h2 + p:has(> br:only-child),
.et_pb_text_inner h3 + p:has(> br:only-child),
.et_pb_text_inner h4 + p:has(> br:only-child),
.et_pb_text_inner h5 + p:has(> br:only-child),
.et_pb_text_inner h6 + p:has(> br:only-child) {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	height: 0 !important;
}

/*
|--------------------------------------------------------------------------
| Tables — default editorial grid (no HTML changes required)
|--------------------------------------------------------------------------
| Full collapsed borders, left-aligned cells, bold header row
*/

.entry-content table,
.entry-content figure:has(table),
.entry-content .wp-block-table,
.et_pb_post_content table,
.et_pb_post_content figure:has(table),
.et_pb_post_content .wp-block-table,
.et_pb_text_inner table,
.et_pb_text_inner figure:has(table),
.et_pb_text_inner .wp-block-table {
	width: 100% !important;
	border-collapse: collapse !important;
	border-spacing: 0 !important;
	margin-top: 15px !important;
	margin-bottom: 15px !important;
	border: 1px solid #392425 !important;
	background: #ffffff !important;
}

.entry-content figure:has(table),
.entry-content .wp-block-table,
.et_pb_post_content figure:has(table),
.et_pb_post_content .wp-block-table,
.et_pb_text_inner figure:has(table),
.et_pb_text_inner .wp-block-table {
	display: block !important;
	width: 100% !important;
	border: none !important;
	background: transparent !important;
}

.entry-content figure:has(table) table,
.entry-content .wp-block-table table,
.et_pb_post_content figure:has(table) table,
.et_pb_post_content .wp-block-table table,
.et_pb_text_inner figure:has(table) table,
.et_pb_text_inner .wp-block-table table {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.entry-content table th,
.entry-content table td,
.et_pb_post_content table th,
.et_pb_post_content table td,
.et_pb_text_inner table th,
.et_pb_text_inner table td {
	border: 1px solid #392425 !important;
	padding: 10px 14px !important;
	text-align: left !important;
	vertical-align: top !important;
	line-height: 1.5 !important;
	color: #392425 !important;
	background: #ffffff !important;
}

.entry-content table thead th,
.entry-content table thead td,
.entry-content table th,
.et_pb_post_content table thead th,
.et_pb_post_content table thead td,
.et_pb_post_content table th,
.et_pb_text_inner table thead th,
.et_pb_text_inner table thead td,
.et_pb_text_inner table th {
	font-weight: 700 !important;
}

/* Tables without <thead>: treat first row as header (common in pasted HTML). */
.entry-content table:not(:has(thead)) > tbody > tr:first-child > td,
.entry-content table:not(:has(thead)) > tr:first-child > td,
.et_pb_post_content table:not(:has(thead)) > tbody > tr:first-child > td,
.et_pb_post_content table:not(:has(thead)) > tr:first-child > td,
.et_pb_text_inner table:not(:has(thead)) > tbody > tr:first-child > td,
.et_pb_text_inner table:not(:has(thead)) > tr:first-child > td {
	font-weight: 700 !important;
}

.entry-content caption,
.et_pb_post_content caption,
.et_pb_text_inner caption {
	margin-bottom: 12px !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
	text-align: left !important;
	color: #392425 !important;
}

/*
|--------------------------------------------------------------------------
| Prevent first element top gaps
|--------------------------------------------------------------------------
*/

.entry-content > :first-child:not(table):not(.wp-block-table),
.et_pb_post_content > :first-child:not(table):not(.wp-block-table),
.et_pb_text_inner > :first-child:not(table):not(.wp-block-table) {
	margin-top: 0 !important;
}

.entry-content > table:first-child,
.entry-content > figure:first-child:has(table),
.entry-content > .wp-block-table:first-child,
.et_pb_post_content > table:first-child,
.et_pb_post_content > figure:first-child:has(table),
.et_pb_post_content > .wp-block-table:first-child,
.et_pb_text_inner > table:first-child,
.et_pb_text_inner > figure:first-child:has(table),
.et_pb_text_inner > .wp-block-table:first-child {
	margin-top: 15px !important;
}

/*
|--------------------------------------------------------------------------
| Prevent last element extra spacing
|--------------------------------------------------------------------------
*/

.entry-content > :last-child:not(table):not(.wp-block-table),
.et_pb_post_content > :last-child:not(table):not(.wp-block-table),
.et_pb_text_inner > :last-child:not(table):not(.wp-block-table) {
	margin-bottom: 0 !important;
}

.entry-content > table:last-child,
.entry-content > figure:last-child:has(table),
.entry-content > .wp-block-table:last-child,
.et_pb_post_content > table:last-child,
.et_pb_post_content > figure:last-child:has(table),
.et_pb_post_content > .wp-block-table:last-child,
.et_pb_text_inner > table:last-child,
.et_pb_text_inner > figure:last-child:has(table),
.et_pb_text_inner > .wp-block-table:last-child {
	margin-bottom: 15px !important;
}

/* ----- GLOBAL CONTENT SPACING + TYPOGRAPHY RHYTHM — end ----- */

/* ----- Divi equal card bottom-aligned CTAs (.dda-equal-card-buttons) — start ----- */
/*
 * Apply the class to a Divi Row (CSS Class field) that contains card columns with CTAs.
 * Requires Equalize Column Heights on the row. Pushes button modules to the column foot
 * when copy length differs — scoped to the row only; does not affect other layouts.
 */
.et_pb_row.dda-equal-card-buttons.et_pb_equal_columns,
.et_pb_row_inner.dda-equal-card-buttons.et_pb_equal_columns {
	align-items: stretch !important;
}

.et_pb_row.dda-equal-card-buttons > .et_pb_column,
.et_pb_row_inner.dda-equal-card-buttons > .et_pb_column {
	display: flex !important;
	flex-direction: column !important;
	align-self: stretch !important;
	float: none !important;
	min-height: 100%;
}

.et_pb_row.dda-equal-card-buttons > .et_pb_column > .et_pb_button_module_wrapper,
.et_pb_row_inner.dda-equal-card-buttons > .et_pb_column > .et_pb_button_module_wrapper {
	margin-top: auto !important;
	flex-shrink: 0 !important;
}

/* Tablet/mobile: columns stack; keep per-card button alignment without fixed heights. */
@media (max-width: 980px) {
	.et_pb_row.dda-equal-card-buttons > .et_pb_column,
	.et_pb_row_inner.dda-equal-card-buttons > .et_pb_column {
		display: flex !important;
		flex-direction: column !important;
		width: 100% !important;
	}
}
/* ----- Divi equal card bottom-aligned CTAs (.dda-equal-card-buttons) — end ----- */

/* ----- Site page H1 standard (65px desktop; 45px interior / 40px hero on tablet-mobile) — start ----- */
body:not(.et-fb) :is(
	#page-container h1,
	#page-container .et_pb_text_inner h1,
	#main-content h1,
	.dda-custom-hero h1.entry-title,
	.dda-news-detail-hero__title.entry-title,
	.dda-news-wire__standard-head h1.entry-title,
	.dda-resources-wire__standard-head h1.entry-title,
	.dda-meetings-wire__standard-head h1.entry-title,
	.dda-events-rss__standard-head h1.entry-title,
	.dda-meetings-wire__single-title-line,
	.et_pb_post_title h1.entry-title,
	.et_pb_title_container h1.entry-title,
	h1.entry-title
) {
	font-size: 65px !important;
	line-height: 1.05 !important;
	font-weight: 400 !important;
	font-style: normal !important;
	font-synthesis: none;
	word-break: normal !important;
	overflow-wrap: normal !important;
	hyphens: none !important;
	-webkit-hyphens: none !important;
}

@media (max-width: 980px) {
	body:not(.et-fb) :is(
		#page-container h1,
		#page-container .et_pb_text_inner h1,
		#main-content h1,
		.dda-news-wire__standard-head h1.entry-title,
		.dda-resources-wire__standard-head h1.entry-title,
		.dda-meetings-wire__standard-head h1.entry-title,
		.dda-events-rss__standard-head h1.entry-title,
		.dda-meetings-wire__single-title-line,
		.et_pb_post_title h1.entry-title,
		.et_pb_title_container h1.entry-title,
		h1.entry-title
	) {
		font-size: 45px !important;
		line-height: 1.1 !important;
	}

	/* Image heroes only — slightly smaller on narrow viewports. */
	body:not(.et-fb) :is(
		.dda-custom-hero h1.entry-title,
		.dda-news-detail-hero__title.entry-title,
		body.home #page-container .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner h1
	) {
		font-size: 40px !important;
		line-height: 1.1 !important;
	}
}

body:not(.et-fb) :is(
	.dda-custom-hero .et_pb_title_container,
	.dda-custom-hero .dda-hero-title-shared .et_pb_title_container,
	.dda-news-detail-hero__inner
) {
	word-wrap: normal !important;
	overflow-wrap: normal !important;
}
/* ----- Site page H1 standard (65px desktop; 45px interior / 40px hero on tablet-mobile) — end ----- */

/* ----- Catalyst Projects: blog grid card image + panel alignment — start ----- */
/*
 * /projects/catalyst-projects/ (page-id-29) — Divi Blog grid project cards.
 * Fixes: featured image wider than #143840 title block, ~1px column misalignment,
 * white gap between image and text (incl. on hover) from default post padding,
 * entry-featured-image-url margin-bottom, and min-width:100% on grid thumbnails.
 */
.page-id-29 #page-container .et_pb_blog_0 .et_pb_blog_grid .et_pb_post {
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	background-color: #143840 !important;
}

.page-id-29 #page-container .et_pb_blog_0 .et_pb_blog_grid .et_pb_image_container {
	flex: 0 0 auto !important;
	margin: 0 0 -6px !important;
	padding: 0 !important;
	overflow: hidden !important;
	line-height: 0 !important;
	background-color: #143840 !important;
}

.page-id-29 #page-container .et_pb_blog_0 .et_pb_post .entry-featured-image-url {
	display: block !important;
	position: relative !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	line-height: 0 !important;
	background-color: #143840 !important;
}

.page-id-29 #page-container .et_pb_blog_0 .et_pb_blog_grid .et_pb_image_container img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	aspect-ratio: 8 / 5 !important;
	object-fit: cover !important;
	object-position: center center !important;
	margin: 0 !important;
	padding: 0 !important;
	vertical-align: top !important;
	transform: none !important;
}

.page-id-29 #page-container .et_pb_blog_0 .et_pb_post .entry-title {
	position: relative !important;
	z-index: 2 !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: 19px !important;
	background-color: #143840 !important;
}

/* Card title links: no underline by default; underline on hover/focus only (this page). */
.page-id-29 #page-container .et_pb_blog_0 .et_pb_post .entry-title a {
	text-decoration: none !important;
}

.page-id-29 #page-container .et_pb_blog_0 .et_pb_post .entry-title a:hover,
.page-id-29 #page-container .et_pb_blog_0 .et_pb_post .entry-title a:focus-visible {
	text-decoration: underline !important;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}

.page-id-29 #page-container .et_pb_blog_0 .et_pb_post .post-content {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/*
 * Divi default .et_overlay: white bg + 1px #e5e5e5 border — shows as a white line
 * between the photo and the #143840 title bar when the hover overlay fades in.
 */
.page-id-29 #page-container .et_pb_blog_0 .et_pb_image_container .et_overlay {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	left: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	/* Never use Divi’s white overlay — it flashes as a line above the title on hover. */
	background-color: rgba(20, 56, 64, 0) !important;
	opacity: 0 !important;
	transition: opacity 0.3s ease, background-color 0.3s ease !important;
	pointer-events: none !important;
}

.page-id-29 #page-container .et_pb_blog_0 .et_pb_has_overlay:hover .et_overlay,
.page-id-29 #page-container .et_pb_blog_0 .et_pb_image_container a:hover .et_overlay,
.page-id-29 #page-container .et_pb_blog_0 .et_pb_post .entry-featured-image-url:hover .et_overlay {
	border: none !important;
	background-color: rgba(57, 36, 37, 0.5) !important;
	opacity: 1 !important;
}

/* Desktop grid: equal fractional columns (avoids Salvattore float % rounding). */
@media (min-width: 981px) {
	.page-id-29 #page-container .et_pb_blog_0 .et_pb_salvattore_content[data-columns] {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 5.5% !important;
		row-gap: 30px !important;
	}

	.page-id-29 #page-container .et_pb_blog_0 .et_pb_salvattore_content[data-columns] .column {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		float: none !important;
		clear: none !important;
	}
}
/* ----- Catalyst Projects: blog grid card image + panel alignment — end ----- */

/* Gravity Forms <select>: see dda-gravity-form-select-fix.css (late load + footer inline). */
