/*
Theme Name:   Divi Child — Heritage
Description:  Child theme for Divi 5. Heritage Association design system.
Author:       Heritage Build
Template:     Divi
Version:      2.0.0
Text Domain:  divi-child
*/

/* ============================================================
   Design tokens
   Single source of truth for color, type, spacing, radius.
   The `--fdn-` prefix is an internal namespace (kept for
   continuity with reusable plumbing — CPT, forms, body classes).
   ============================================================ */
:root {
	/* Heritage palette */
	--fdn-bg:          #fbf8f1;   /* lighter cream — main page background */
	--fdn-bg-alt:      #f7f2e9;   /* slightly darker cream — alternating sections */
	--fdn-ink:         #0f2c4a;   /* deep navy — primary text + hero + footer bg */
	--fdn-ink-cta:     #173d63;   /* slightly lighter navy — for CTA sections so they stand apart from the footer */
	--fdn-ink-soft:    #3a4a5c;   /* slate navy — body text */
	--fdn-muted:       #6b7280;   /* secondary text + meta */
	--fdn-line:        #e6dfd0;   /* tan border on cards */
	--fdn-line-soft:   #efe9da;   /* lighter divider */
	--fdn-accent:      #c9a449;   /* gold — eyebrows, dividers, primary CTA */
	--fdn-accent-soft: #d8be72;
	--fdn-white:       #ffffff;

	/* Aliases */
	--fdn-cta-bg:      var(--fdn-accent);
	--fdn-cta-ink:     #0f2c4a;

	/* Typography */
	--fdn-serif:       'Playfair Display', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
	--fdn-sans:        'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

	/* Geometry */
	--fdn-radius:      6px;
	--fdn-radius-sm:   3px;
	--fdn-container:   1180px;
	--fdn-narrow:      820px;

	/* Shadows */
	--fdn-shadow-sm:   0 1px 2px rgba(10, 37, 64, 0.04), 0 1px 3px rgba(10, 37, 64, 0.06);
	--fdn-shadow-md:   0 4px 14px rgba(10, 37, 64, 0.07);
}

/* ============================================================
   Global page chrome
   ============================================================ */
html, body { background: var(--fdn-bg); }
body.et_pb_pagebuilder_layout,
body {
	color: var(--fdn-ink);
	font-family: var(--fdn-sans);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

#main-content,
#main-content .container { background: transparent; }

/* Hide Divi's default page title — our designs use custom hero blocks */
.et_pb_page_title_bar { display: none !important; }

/* Sidebar off, full-width content as a project-wide default */
#main-content .container::before { display: none; }
#left-area { width: 100%; padding: 0; float: none; }
#sidebar { display: none; }

/* ============================================================
   Global Divi module overrides
   These set the default heading/text/button look for ANY Divi
   module on the site — editors don't have to set typography
   on each module they add.
   ============================================================ */

/* Headings — serif, navy, tight */
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3, .et_pb_module h4,
.et_pb_heading h1, .et_pb_heading h2, .et_pb_heading h3, .et_pb_heading h4,
h1.entry-title, h2.entry-title {
	font-family: var(--fdn-serif);
	color: var(--fdn-ink);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.15;
}
.et_pb_module h1 { font-size: clamp(36px, 5vw, 60px); line-height: 1.1; }
.et_pb_module h2 { font-size: clamp(28px, 3.4vw, 42px); }
.et_pb_module h3 { font-size: clamp(20px, 2vw, 26px); }
.et_pb_module h4 { font-size: 18px; }

/* Text */
.et_pb_text, .et_pb_module p { color: var(--fdn-ink-soft); }
.et_pb_text a, .et_pb_module p a { color: var(--fdn-accent); text-decoration: none; border-bottom: 1px solid rgba(201,164,73,0.35); }
.et_pb_text a:hover, .et_pb_module p a:hover { color: var(--fdn-ink); border-color: var(--fdn-ink); }

/* Buttons — global. Filled gold = primary, outline navy = secondary */
.et_pb_button,
a.et_pb_button {
	font-family: var(--fdn-sans) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	padding: 14px 28px !important;
	border-radius: var(--fdn-radius) !important;
	border: 1px solid transparent !important;
	background: var(--fdn-accent) !important;
	color: var(--fdn-ink) !important;
	transition: opacity .15s, transform .15s !important;
}
.et_pb_button:after, .et_pb_button:before { display: none !important; }
.et_pb_button:hover { opacity: 0.9; transform: translateY(-1px); padding: 14px 28px !important; }

/* Variants via Divi CSS Class */
.et_pb_button.fdn-btn-secondary { background: var(--fdn-ink) !important; color: #fff !important; }
.et_pb_button.fdn-btn-secondary:hover { background: var(--fdn-ink) !important; }
.et_pb_button.fdn-btn-outline { background: transparent !important; color: var(--fdn-ink) !important; border-color: var(--fdn-ink) !important; }
.et_pb_button.fdn-btn-outline-light { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,0.6) !important; }
.et_pb_button.fdn-btn-ghost { background: transparent !important; color: var(--fdn-ink) !important; border-color: transparent !important; padding: 6px 0 !important; }

/* ============================================================
   Eyebrow + divider patterns (use as Divi CSS Class on a text/heading module)
   ============================================================ */
.fdn-eyebrow,
.et_pb_text.fdn-eyebrow p,
.et_pb_heading.fdn-eyebrow h1,
.et_pb_heading.fdn-eyebrow h2,
.et_pb_heading.fdn-eyebrow h3 {
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fdn-accent);
	margin: 0 0 14px;
	line-height: 1.3;
}

/* Centered gold underline (small bar under hero/section titles) */
/* Native Divi divider renders as: .et_pb_divider > .et_pb_divider_internal.
   Divi also adds a full-width 1px cyan ::before line — kill it. */
.et_pb_divider { border: 0 !important; padding: 8px 0 !important; }
.et_pb_divider::before,
.et_pb_divider::after { content: none !important; border: 0 !important; display: none !important; }
.et_pb_divider .et_pb_divider_internal {
	border-top: 2px solid var(--fdn-accent) !important;
	width: 56px !important;
	margin: 0 auto !important;
}
.fdn-rule { /* alt: a span/hr with the fdn-rule class */
	display: block;
	border: 0;
	border-top: 2px solid var(--fdn-accent);
	width: 56px;
	margin: 24px auto 0;
}

/* Decorative diamond divider — gold lines with a tiny rotated square */
.fdn-diamond { text-align: center; margin: 0 auto; line-height: 0; }

/* Generic centering helper — beats Divi default text-align:start */
.fdn-center,
.fdn-center h1, .fdn-center h2, .fdn-center h3, .fdn-center h4,
.et_pb_heading.fdn-center h1,
.et_pb_heading.fdn-center h2,
.et_pb_heading.fdn-center h3,
.et_pb_heading.fdn-center h4,
.et_pb_text.fdn-center,
.et_pb_text.fdn-center p { text-align: center !important; }
.fdn-diamond::before,
.fdn-diamond::after {
	content: '';
	display: inline-block;
	width: 36px;
	height: 1px;
	background: var(--fdn-accent);
	vertical-align: middle;
	margin: 0 14px;
}
.fdn-diamond::after { margin: 0 14px; }
.fdn-diamond i {
	display: inline-block;
	width: 8px;
	height: 8px;
	background: var(--fdn-accent);
	transform: rotate(45deg);
	vertical-align: middle;
}

/* ============================================================
   Layout containers + section helpers
   ============================================================ */
.et_pb_section { padding: 80px 0; }
.et_pb_row { max-width: var(--fdn-container) !important; padding: 0 24px !important; width: 100% !important; }

/* Section background variants (apply via Divi CSS Class on the Section) */
.et_pb_section.fdn-sec-cream  { background: var(--fdn-bg); }
.et_pb_section.fdn-sec-alt    { background: var(--fdn-bg-alt); }
.et_pb_section.fdn-sec-navy   { background: var(--fdn-ink-cta); color: #fff; text-align: center; }
/* CTA buttons live in navy sections — center them */
.et_pb_section.fdn-sec-navy .et_pb_button_module_wrapper { text-align: center !important; }
/* Buttons inside a full-width column are CTAs by convention — center them.
   Buttons inside 1_2 / 1_3 / 1_4 columns stay left-aligned as before.
   Descendant combinator (no `>`) so it matches even when Divi nests the
   button inside a sibling Code module due to unbalanced HTML in my wraps. */
.et_pb_column.et_pb_column_4_4 .et_pb_button_module_wrapper { text-align: center !important; }
/* Also normalize that wrapper to render as a block so the centering takes effect */
.et_pb_column.et_pb_column_4_4 .et_pb_button_module_wrapper { display: block; }
/* Exception: hero CTAs use inline-block to sit side-by-side */
body.fdn-page-home .fdn-hero-home .et_pb_button_module_wrapper { display: inline-block !important; }
/* Reusable: any button module with this class is force-centered */
.et_pb_button_module_wrapper.fdn-btn-center { text-align: center !important; }
.et_pb_section.fdn-sec-navy h1,
.et_pb_section.fdn-sec-navy h2,
.et_pb_section.fdn-sec-navy h3,
.et_pb_section.fdn-sec-navy h4 { color: #fff; }
.et_pb_section.fdn-sec-navy .et_pb_text,
.et_pb_section.fdn-sec-navy .et_pb_text p { color: rgba(255,255,255,0.85); }

/* Tight section padding helper */
.et_pb_section.fdn-sec-tight { padding: 48px 0; }
.et_pb_section.fdn-sec-loose { padding: 110px 0; }

/* ============================================================
   Hero (interior pages) — navy block with crumbs + title + subtitle + rule
   Built from native Divi modules with these CSS Classes on the Section
   ============================================================ */
.et_pb_section.fdn-hero {
	padding: 86px 24px 60px;
	background: var(--fdn-ink);
	text-align: center;
}
.et_pb_section.fdn-hero h1 {
	color: #fff !important;
	font-size: clamp(40px, 5vw, 60px) !important;
	margin: 14px 0 18px !important;
}
.et_pb_section.fdn-hero .et_pb_text,
.et_pb_section.fdn-hero .et_pb_text p {
	color: rgba(255,255,255,0.78);
	max-width: 620px;
	margin: 0 auto;
	text-align: center !important;
}
.et_pb_section.fdn-hero .fdn-crumbs {
	color: var(--fdn-accent);
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 600;
}
.et_pb_section.fdn-hero .fdn-crumbs a { color: inherit; text-decoration: none; opacity: 0.85; }
.et_pb_section.fdn-hero .fdn-crumbs span { margin: 0 10px; opacity: 0.6; }
/* Hide the in-content Divi divider inside the hero — we draw the gold underline
   ourselves as a pseudo-element on the section so we can position it exactly on the
   navy/cream boundary regardless of column padding. */
.et_pb_section.fdn-hero { position: relative; }
.et_pb_section.fdn-hero .et_pb_divider { display: none !important; }
.et_pb_section.fdn-hero::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -1px;                /* centered on the boundary line */
	transform: translate(-50%, 50%);
	width: 60px;
	height: 2px;
	background: var(--fdn-accent);
	z-index: 2;
}

/* Home hero variant — larger, two CTAs */
.et_pb_section.fdn-hero-home {
	padding: 130px 24px 120px;
	background: var(--fdn-ink);
	text-align: center;
}
.et_pb_section.fdn-hero-home h1 {
	color: #fff !important;
	font-size: clamp(44px, 6vw, 72px) !important;
	line-height: 1.05 !important;
	margin-bottom: 22px !important;
}
.et_pb_section.fdn-hero-home h1 em {
	color: var(--fdn-accent);
	font-style: italic;
}
.et_pb_section.fdn-hero-home .et_pb_text,
.et_pb_section.fdn-hero-home .et_pb_text p {
	color: rgba(255,255,255,0.82);
	max-width: 640px;
	margin: 0 auto 28px;
	font-size: 17px;
}

/* ============================================================
   Cards — universal pattern. Apply .fdn-card to a Divi Column.
   Top accent strip in gold, white bg, soft border + shadow.
   ============================================================ */
.et_pb_column.fdn-card,
.fdn-card {
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 28px !important;
	position: relative;
	box-shadow: var(--fdn-shadow-sm);
	transition: transform .2s, box-shadow .2s;
}
.et_pb_column.fdn-card:hover,
.fdn-card:hover { transform: translateY(-2px); box-shadow: var(--fdn-shadow-md); }

/* Card with gold top accent (used for stat / pricing / leadership cards) */
.et_pb_column.fdn-card-accent,
.fdn-card-accent {
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-top: 3px solid var(--fdn-accent) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 28px !important;
	box-shadow: var(--fdn-shadow-sm);
	transition: transform .2s, box-shadow .2s;
}
.et_pb_column.fdn-card-accent:hover,
.fdn-card-accent:hover { transform: translateY(-2px); box-shadow: var(--fdn-shadow-md); }

/* Compact card (no shadow, no transform) — for FAQ / contact info */
.et_pb_column.fdn-card-flat,
.fdn-card-flat {
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 22px !important;
}

/* ============================================================
   Stat strip — navy band with big gold numbers
   ============================================================ */
.fdn-stat { text-align: center; padding: 18px; }
.fdn-stat .num {
	font-family: var(--fdn-serif);
	font-size: clamp(36px, 4.5vw, 52px);
	font-weight: 700;
	color: var(--fdn-accent);
	line-height: 1;
	margin-bottom: 10px;
}
.fdn-stat .lbl {
	font-family: var(--fdn-sans);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.7);
}
.et_pb_section.fdn-sec-navy.fdn-stats-strip { padding: 56px 0; }

/* ============================================================
   Date chip — used on event cards
   ============================================================ */
.fdn-date {
	display: inline-block;
	background: var(--fdn-bg-alt);
	border: 1px solid var(--fdn-line);
	border-radius: var(--fdn-radius-sm);
	padding: 12px 16px;
	text-align: center;
	min-width: 70px;
	font-family: var(--fdn-serif);
	line-height: 1;
}
.fdn-date .d { display: block; font-size: 26px; font-weight: 700; color: var(--fdn-ink); }
.fdn-date .m { display: block; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--fdn-accent); margin-top: 4px; font-weight: 600; font-family: var(--fdn-sans); }
.fdn-date .y { display: block; font-size: 10px; color: var(--fdn-muted); margin-top: 4px; font-family: var(--fdn-sans); }

/* ============================================================
   Filter tabs (Events + Gallery) — rendered via Divi Text module
   ============================================================ */
.fdn-tabs {
	display: flex;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
	background: #fff;
	border: 1px solid var(--fdn-line);
	border-radius: 999px;
	padding: 6px;
	max-width: max-content;
	margin: 0 auto 36px;
}
.fdn-tabs a, .fdn-tabs button, .fdn-tabs span {
	display: inline-block;
	padding: 8px 18px;
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--fdn-ink);
	background: transparent;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	text-decoration: none;
	transition: background .15s, color .15s;
}
.fdn-tabs a.is-active,
.fdn-tabs span.is-active,
.fdn-tabs button.is-active {
	background: var(--fdn-ink);
	color: #fff;
}
.fdn-tabs a:hover { background: var(--fdn-bg-alt); }
.fdn-tabs a.is-active:hover { background: var(--fdn-ink); color: #fff; }

/* ============================================================
   Eyebrow + heading + lede stack — center pattern in mockups
   ============================================================ */
.fdn-section-head { text-align: center; margin: 0 auto 48px; max-width: var(--fdn-narrow); }
.fdn-section-head .fdn-eyebrow { margin-bottom: 12px; }
.fdn-section-head h2 { margin-bottom: 14px; }
.fdn-section-head .fdn-lede,
.fdn-section-head p { color: var(--fdn-ink-soft); font-size: 16px; max-width: 620px; margin: 0 auto; }

/* ============================================================
   About — Mission / Vision / Values cards
   3-card equal-height grid, left-aligned content, soft gold tinted icon
   ============================================================ */
body.fdn-page-about .fdn-mvv-row {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	align-items: stretch !important;
}
@media (max-width: 980px) { body.fdn-page-about .fdn-mvv-row { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 540px) { body.fdn-page-about .fdn-mvv-row { grid-template-columns: 1fr !important; } }
body.fdn-page-about .fdn-mvv-row .et_pb_column.fdn-mvv {
	width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important;
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 32px 28px !important;
	box-shadow: var(--fdn-shadow-sm);
	display: flex !important;
	flex-direction: column !important;
}
body.fdn-page-about .fdn-mvv .ic {
	width: 44px; height: 44px;
	border-radius: 50%;
	background: rgba(201, 164, 73, 0.16);
	color: var(--fdn-accent);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--fdn-serif); font-weight: 700; font-size: 22px;
	margin-bottom: 18px;
	flex-shrink: 0;
}
body.fdn-page-about .fdn-mvv .ttl { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 19px; margin: 0 0 10px; }
body.fdn-page-about .fdn-mvv .desc { color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.65; margin: 0; }

/* About — tighten MVV section row spacing (Divi default too loose) */
body.fdn-page-about .et_pb_section:has(.fdn-mvv-row) .et_pb_row { padding-top: 0 !important; padding-bottom: 0 !important; }
body.fdn-page-about .et_pb_section:has(.fdn-mvv-row) .et_pb_row + .et_pb_row { margin-top: 36px !important; }
body.fdn-page-about .et_pb_section:has(.fdn-mvv-row) { padding: 70px 0 !important; }

/* ============================================================
   Membership pricing card extras
   ============================================================ */
.fdn-plan-badge {
	display: inline-block;
	background: var(--fdn-accent);
	color: var(--fdn-ink);
	font-family: var(--fdn-sans);
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-weight: 700;
	padding: 5px 14px;
	border-radius: 999px;
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
}
.et_pb_column.fdn-card-accent.fdn-card-featured { border-top-width: 3px !important; box-shadow: 0 8px 28px rgba(10,37,64,0.10); }

.fdn-price { font-family: var(--fdn-serif); font-size: 48px; font-weight: 700; color: var(--fdn-ink); line-height: 1; }
.fdn-price .per { font-family: var(--fdn-sans); font-size: 14px; color: var(--fdn-muted); font-weight: 400; }
.fdn-plan-feats { list-style: none; margin: 22px 0 0; padding: 0; }
.fdn-plan-feats li {
	font-size: 14px;
	color: var(--fdn-ink-soft);
	padding: 7px 0 7px 22px;
	position: relative;
}
.fdn-plan-feats li::before {
	content: '✓';
	color: var(--fdn-accent);
	font-weight: 700;
	position: absolute;
	left: 0;
}

/* ============================================================
   Theme Builder — Header
   Divi 5 names TB sections .et_pb_section_N_tb_header where N
   is the 0-based index. We have 2 sections: utility strip + main bar.
   ============================================================ */
/* Top of header layout block — kill default Divi spacing */
.et_pb_section_0_tb_header, .et_pb_section_1_tb_header { padding: 0 !important; }
.et_pb_section_0_tb_header .et_pb_row, .et_pb_section_1_tb_header .et_pb_row { padding-top: 0 !important; padding-bottom: 0 !important; max-width: var(--fdn-container) !important; width: 100% !important; }
.et_pb_section_0_tb_header .et_pb_column, .et_pb_section_1_tb_header .et_pb_column { margin-bottom: 0 !important; }

/* Utility strip — small navy bar at the very top */
.et_pb_section_0_tb_header { background: var(--fdn-ink) !important; color: #fff; padding: 8px 0 !important; font-size: 12px; }
.et_pb_section_0_tb_header .et_pb_row { display: flex !important; justify-content: space-between !important; align-items: center; flex-wrap: wrap; }
.et_pb_section_0_tb_header,
.et_pb_section_0_tb_header a,
.et_pb_section_0_tb_header .et_pb_text a,
.et_pb_section_0_tb_header .et_pb_text p a {
	color: #ffffff !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	border: 0 !important;
}
.et_pb_section_0_tb_header a:hover,
.et_pb_section_0_tb_header .et_pb_text a:hover { color: var(--fdn-accent) !important; }
.et_pb_section_0_tb_header .et_pb_text,
.et_pb_section_0_tb_header .et_pb_text p { color: #ffffff !important; margin: 0 !important; font-size: 12px; }
.et_pb_section_0_tb_header .et_pb_text a { margin-right: 18px; display: inline-block; }
.et_pb_section_0_tb_header .et_pb_text p a:last-child { margin-right: 0; }
.et_pb_section_0_tb_header .et_pb_column { padding: 0 !important; }

/* Main header bar — logo left, nav + button right-aligned, all vertically centered */
.et_pb_section_1_tb_header { background: #fff !important; border-bottom: 1px solid var(--fdn-line); padding: 14px 0 !important; }
.et_pb_section_1_tb_header .et_pb_row { display: flex !important; align-items: center !important; justify-content: space-between !important; flex-wrap: wrap; }
.et_pb_section_1_tb_header .et_pb_column {
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	margin-bottom: 0 !important;
}
.et_pb_section_1_tb_header .et_pb_column:first-child {
	justify-content: flex-start;
	flex: 0 0 auto;
	width: auto !important;
	max-width: none !important;
}
/* Right column: nav menu + Join Us button, pushed to far right with gap between, vertically centered */
.et_pb_section_1_tb_header .et_pb_column:last-child {
	justify-content: flex-end !important;
	gap: 22px;
	flex: 1 1 auto;
}
/* Children of the right column must also be center-aligned individually */
.et_pb_section_1_tb_header .et_pb_column:last-child > .et_pb_module { align-self: center !important; margin: 0 !important; }
.et_pb_section_1_tb_header .et_pb_button_module_wrapper { margin: 0 !important; align-self: center !important; }
.et_pb_section_1_tb_header .et_pb_menu_inner_container { padding: 0 !important; }
.et_pb_section_1_tb_header .et_pb_menu { padding: 0 !important; margin: 0 !important; }

/* Logo block (Text module) */
.fdn-logo { display: flex; align-items: center; gap: 12px; }
.fdn-logo .badge {
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--fdn-ink);
	color: var(--fdn-accent);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--fdn-serif); font-weight: 700; font-size: 22px;
	border: 2px solid var(--fdn-accent);
}
.fdn-logo .name { font-family: var(--fdn-serif); font-weight: 700; font-size: 19px; color: var(--fdn-ink); line-height: 1; margin: 0; }
.fdn-logo .name a { color: inherit; text-decoration: none; }
.fdn-logo .tag {
	font-family: var(--fdn-sans);
	font-size: 9px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--fdn-accent);
	margin-top: 5px;
	white-space: nowrap;
}

/* Divi Menu module overrides */
.fdn-menu .et_pb_menu__menu > nav > ul > li > a,
.fdn-menu nav.et-menu > ul > li > a {
	font-family: var(--fdn-sans) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: var(--fdn-ink) !important;
	text-transform: none !important;
	letter-spacing: 0.02em !important;
	padding: 10px 14px !important;
	position: relative;
}
.fdn-menu nav.et-menu > ul > li.current-menu-item > a,
.fdn-menu nav.et-menu > ul > li > a:hover {
	color: var(--fdn-accent) !important;
	opacity: 1 !important;
}
.fdn-menu nav.et-menu > ul > li.current-menu-item > a::after {
	content: '';
	position: absolute; left: 14px; right: 14px; bottom: 4px;
	height: 2px; background: var(--fdn-accent);
}
.fdn-menu .et_pb_menu__logo-wrap { display: none !important; }
.fdn-menu .et_pb_menu { background: transparent !important; }

/* Hide Divi's stock search/cart icons that come from Menu module */
.fdn-menu .et_pb_menu__icon-wrap,
.fdn-menu .et_pb_menu__wrap > .et_pb_menu__cart-wrap,
.fdn-menu .et_pb_menu__search { display: none !important; }

/* ============================================================
   Theme Builder — Footer
   Single section .et_pb_section_0_tb_footer with 2 rows
   (4-col link grid + 2-col bottom bar).
   ============================================================ */
.et_pb_section_0_tb_footer { background: var(--fdn-ink) !important; color: #fff; padding: 64px 0 24px !important; }
.et_pb_section_0_tb_footer .et_pb_row { padding-top: 0 !important; padding-bottom: 0 !important; max-width: var(--fdn-container) !important; width: 100% !important; }
.et_pb_section_0_tb_footer .et_pb_row + .et_pb_row { border-top: 1px solid rgba(255,255,255,0.12); padding-top: 22px !important; margin-top: 40px !important; }

.et_pb_section_0_tb_footer h1,
.et_pb_section_0_tb_footer h2,
.et_pb_section_0_tb_footer h3,
.et_pb_section_0_tb_footer h4 {
	font-family: var(--fdn-sans) !important;
	font-size: 12px !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--fdn-accent) !important;
	font-weight: 700 !important;
	margin-bottom: 18px !important;
}
.et_pb_section_0_tb_footer .et_pb_text,
.et_pb_section_0_tb_footer .et_pb_text p,
.et_pb_section_0_tb_footer li,
.et_pb_section_0_tb_footer { color: rgba(255,255,255,0.78); font-size: 14px; }
.et_pb_section_0_tb_footer .et_pb_text a,
.et_pb_section_0_tb_footer li a,
.et_pb_section_0_tb_footer a { color: rgba(255,255,255,0.78); text-decoration: none; border: 0; }
.et_pb_section_0_tb_footer .et_pb_text a:hover,
.et_pb_section_0_tb_footer li a:hover,
.et_pb_section_0_tb_footer a:hover { color: var(--fdn-accent); }

/* Footer link lists rendered as <ul> inside a Text module.
   Use a higher-specificity selector so it beats Divi's
   ".et-l--footer ul { list-style: disc; padding: 0 0 23px 1em }"
   default that activates once the footer section gets the .et-l--footer
   class (added on CPT pages by fdn_album_etl_class_filter). */
.et_pb_section_0_tb_footer ul.fdn-foot-links,
ul.fdn-foot-links { list-style: none; padding: 0; margin: 0; }
.et_pb_section_0_tb_footer ul.fdn-foot-links li,
ul.fdn-foot-links li { padding: 4px 0; }

/* Bottom bar row */
.et_pb_section_0_tb_footer .et_pb_row + .et_pb_row { font-size: 12px; color: rgba(255,255,255,0.55); }
.et_pb_section_0_tb_footer .et_pb_row + .et_pb_row .et_pb_text p { color: rgba(255,255,255,0.55); font-size: 12px; margin: 0; }
.et_pb_section_0_tb_footer .et_pb_row + .et_pb_row a { color: rgba(255,255,255,0.55); }
.et_pb_section_0_tb_footer .et_pb_row + .et_pb_row a:hover { color: var(--fdn-accent); }

/* Footer logo block (re-uses .fdn-logo but inverts colors) */
.et_pb_section_0_tb_footer .fdn-logo .name,
.et_pb_section_0_tb_footer .fdn-logo .name a { color: #fff; }
.et_pb_section_0_tb_footer .fdn-logo .tag { color: var(--fdn-accent); }
.et_pb_section_0_tb_footer .fdn-logo .badge { background: transparent; border-color: var(--fdn-accent); color: var(--fdn-accent); }

/* Fix Theme Builder row collapse with floated columns */
.et-l .et_pb_row { display: flow-root; }

/* ============================================================
   Forminator — inherit heritage design tokens
   ============================================================ */
.forminator-ui.forminator-design--default {
	font-family: var(--fdn-sans) !important;
}
.forminator-ui .forminator-label {
	font-family: var(--fdn-sans) !important;
	font-size: 11px !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-weight: 700 !important;
	color: var(--fdn-ink) !important;
	margin-bottom: 8px !important;
}
.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea,
.forminator-ui .forminator-select,
.forminator-ui select.forminator-select2 + .select2-container .select2-selection,
.forminator-ui input[type="text"],
.forminator-ui input[type="email"],
.forminator-ui input[type="tel"],
.forminator-ui textarea {
	font-family: var(--fdn-sans) !important;
	font-size: 14px !important;
	color: var(--fdn-ink) !important;
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 12px 14px !important;
	box-shadow: none !important;
	min-height: 46px !important;
}
.forminator-ui .forminator-input:focus,
.forminator-ui .forminator-textarea:focus,
.forminator-ui .forminator-select:focus,
.forminator-ui textarea:focus { border-color: var(--fdn-accent) !important; outline: none !important; }

/* Select2 dropdowns: Forminator wraps native <select> in a Select2 container that also
   inherits the border rule above, producing a double-bordered look. Strip the outer
   wrapper's border so only the inner .select2-selection shows the input border. */
.forminator-ui .select2-container.forminator-select,
.forminator-ui .select2-container {
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	min-height: 0 !important;
	height: auto !important;
}
.forminator-ui .select2-container .select2-selection--single {
	min-height: 46px !important;
	height: 46px !important;
	display: flex !important;
	align-items: center !important;
	padding: 0 14px !important;
}
.forminator-ui .select2-container .select2-selection__rendered { padding: 0 !important; line-height: 1.4 !important; }
.forminator-ui .select2-container .select2-selection__arrow { height: 46px !important; }
.forminator-ui textarea { min-height: 110px !important; resize: vertical !important; }
.forminator-ui .forminator-button-submit,
.forminator-ui button.forminator-button {
	background: var(--fdn-accent) !important;
	color: var(--fdn-ink) !important;
	border: 0 !important;
	border-radius: var(--fdn-radius) !important;
	font-family: var(--fdn-sans) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	padding: 14px 28px !important;
	cursor: pointer;
	transition: opacity .15s;
}
.forminator-ui .forminator-button-submit:hover { opacity: 0.9 !important; }
.forminator-ui .forminator-required { color: var(--fdn-accent) !important; }
.forminator-ui .forminator-response-message.forminator-success { color: var(--fdn-ink) !important; background: var(--fdn-bg-alt) !important; border: 1px solid var(--fdn-accent) !important; border-radius: var(--fdn-radius) !important; padding: 14px !important; }

/* Forminator Name field: hide prefix + middle-name sub-columns; show First + Last side-by-side */
.forminator-field-name .forminator-col:has(select[name$="-prefix"]),
.forminator-field-name .forminator-col:has(input[name$="-middle-name"]) { display: none !important; }
.forminator-field-name .forminator-row { gap: 14px !important; display: grid !important; grid-template-columns: 1fr 1fr !important; }
.forminator-field-name .forminator-row .forminator-col { width: 100% !important; max-width: 100% !important; flex: none !important; }

/* Newsletter form (footer) — compact, dark surface.
   Forminator's default stylesheet paints the .forminator-custom-form wrapper
   white when its full CSS bundle loads (which happens on any page that already
   embeds another Forminator form — e.g. /join/, /contact/, /gallery/submit/).
   Force the form wrapper transparent in the dark footer regardless. */
.et_pb_section_0_tb_footer .forminator-ui,
.et_pb_section_0_tb_footer .forminator-ui.forminator-custom-form,
.et_pb_section_0_tb_footer .forminator-custom-form {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}
.et_pb_section_0_tb_footer .forminator-ui .forminator-label { display: none !important; }
.et_pb_section_0_tb_footer .forminator-ui .forminator-input {
	background: rgba(255,255,255,0.06) !important;
	border-color: rgba(255,255,255,0.15) !important;
	color: #fff !important;
}
.et_pb_section_0_tb_footer .forminator-ui .forminator-input::placeholder { color: rgba(255,255,255,0.5) !important; }
.et_pb_section_0_tb_footer .forminator-ui .forminator-input:focus { border-color: var(--fdn-accent) !important; }

/* Forminator's full CSS bundle (loaded when another form exists on the page)
   adds margin-top: 18px to the submit button, pushing it visibly down. Match
   the tight spacing the slim CSS gives on pages with only the footer form. */
.et_pb_section_0_tb_footer .forminator-ui .forminator-button,
.et_pb_section_0_tb_footer .forminator-ui .forminator-button-submit { margin-top: 0 !important; }

/* Hide the admin-only "Edit form" link Forminator adds for logged-in editors */
.forminator-admin-link,
.forminator-edit-module-link,
.forminator-go-to-form,
a.forminator-admin-link,
.forminator-edit-link,
.forminator-edit-module,
.forminator-module-edit-link,
a.forminator-module-edit-link,
.forminator-edit-module small { display: none !important; }

/* ============================================================
   Custom: Single Album CPT page
   ============================================================ */
/* Shared eyebrow used across pages (album hero, "More to see", submit page, etc.) */
.fdn-eyebrow-stand {
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fdn-accent);
	margin-bottom: 14px;
}
body.fdn-single-album #main-content { background: var(--fdn-bg); }
.fdn-album-article {
	max-width: var(--fdn-container);
	margin: 0 auto;
	padding: 56px 24px 32px;
}
.fdn-album-hero { text-align: center; margin: 0 auto 0; }
.fdn-album-crumbs {
	font-family: var(--fdn-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fdn-muted);
	margin-bottom: 10px;
}
.fdn-album-crumbs a {
	color: var(--fdn-ink-soft);
	text-decoration: none;
	transition: color .2s;
}
.fdn-album-crumbs a:hover { color: var(--fdn-accent); }
.fdn-album-crumbs .sep {
	color: var(--fdn-line);
	margin: 0 8px;
}
.fdn-album-h1 {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: clamp(28px, 3.6vw, 42px);
	line-height: 1.15;
	margin: 10px 0 14px;
}
.fdn-album-meta {
	font-family: var(--fdn-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--fdn-muted);
}
.fdn-album-meta .fdn-album-dot { color: var(--fdn-accent); margin: 0 6px; }
.fdn-album-desc {
	font-family: var(--fdn-serif);
	font-style: italic;
	color: var(--fdn-ink-soft);
	max-width: 640px;
	margin: 14px auto 0;
	line-height: 1.55;
}
.fdn-album-cover {
	margin: 40px auto 24px;
	border-radius: var(--fdn-radius);
	overflow: hidden;
	box-shadow: var(--fdn-shadow-md);
	max-width: var(--fdn-container);
}
.fdn-album-cover img {
	width: 100%;
	height: 100%;
	display: block;
	aspect-ratio: 21 / 9;
	object-fit: cover;
}
.fdn-album-body { margin: 24px auto 0; }

/* Override Divi Gallery layout inside the album body — tight 4-up square grid */
body.fdn-single-album .fdn-album-body .et_pb_gallery_items {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 10px !important;
}
body.fdn-single-album .fdn-album-body .et_pb_gallery_item {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}
body.fdn-single-album .fdn-album-body .et_pb_gallery_image {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--fdn-radius-sm);
}
body.fdn-single-album .fdn-album-body .et_pb_gallery_image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .3s ease;
}
body.fdn-single-album .fdn-album-body .et_pb_gallery_image:hover img {
	transform: scale(1.05);
}
body.fdn-single-album .fdn-album-body .et_pb_gallery_image .et_overlay {
	border-radius: var(--fdn-radius-sm);
}
body.fdn-single-album .fdn-album-body .et_pb_gallery_title,
body.fdn-single-album .fdn-album-body .et_pb_gallery_caption {
	display: none !important;
}
@media (max-width: 980px) {
	body.fdn-single-album .fdn-album-body .et_pb_gallery_items { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 680px) {
	body.fdn-single-album .fdn-album-body .et_pb_gallery_items { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ============================================================
   Custom: Single Event CPT page (mirrors album hero/cover styling)
   ============================================================ */
body.fdn-single-event #main-content { background: var(--fdn-bg); }
.fdn-event-article {
	max-width: var(--fdn-container);
	margin: 0 auto;
	padding: 56px 24px 32px;
}
.fdn-event-hero { text-align: center; margin: 0 auto 0; }
.fdn-event-crumbs {
	font-family: var(--fdn-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fdn-muted);
	margin-bottom: 10px;
}
.fdn-event-crumbs a { color: var(--fdn-ink-soft); text-decoration: none; transition: color .2s; }
.fdn-event-crumbs a:hover { color: var(--fdn-accent); }
.fdn-event-crumbs .sep { color: var(--fdn-line); margin: 0 8px; }
.fdn-event-h1 {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: clamp(28px, 3.6vw, 42px);
	line-height: 1.15;
	margin: 10px 0 14px;
}
.fdn-event-meta {
	font-family: var(--fdn-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--fdn-muted);
}
.fdn-event-meta .fdn-event-dot { color: var(--fdn-accent); margin: 0 6px; }
.fdn-event-desc {
	font-family: var(--fdn-serif);
	font-style: italic;
	color: var(--fdn-ink-soft);
	max-width: 640px;
	margin: 14px auto 0;
	line-height: 1.55;
}
.fdn-event-cta { margin-top: 22px; }
.fdn-event-register {
	display: inline-block;
	background: var(--fdn-accent);
	color: var(--fdn-ink);
	padding: 12px 26px;
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--fdn-radius);
	transition: opacity .2s;
}
.fdn-event-register:hover { opacity: 0.9; color: var(--fdn-ink); }
.fdn-event-cover {
	margin: 40px auto 24px;
	border-radius: var(--fdn-radius);
	overflow: hidden;
	box-shadow: var(--fdn-shadow-md);
	max-width: var(--fdn-container);
}
.fdn-event-cover img {
	width: 100%;
	height: 100%;
	display: block;
	aspect-ratio: 21 / 9;
	object-fit: cover;
}
/* v2 — Single event detail page enhancements
   Two-column body grid below the cover: main (about + program timeline) + sticky aside (meta card). */

/* Hero CTAs row — gold Register + navy ghost Add-to-Calendar side by side */
body.fdn-single-event .fdn-event-hero-ctas {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 22px;
}
body.fdn-single-event .fdn-event-ics {
	display: inline-block;
	background: transparent;
	color: var(--fdn-ink);
	padding: 12px 26px;
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	border: 1.5px solid var(--fdn-ink);
	border-radius: var(--fdn-radius);
	transition: background .2s, color .2s;
}
body.fdn-single-event .fdn-event-ics:hover { background: var(--fdn-ink); color: #fff; }

/* Two-column grid */
body.fdn-single-event .fdn-event-grid {
	max-width: var(--fdn-container);
	margin: 32px auto 0;
	padding: 0 24px;
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 48px;
	align-items: start;
}
@media (max-width: 880px) {
	body.fdn-single-event .fdn-event-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* Main column — About + Program */
body.fdn-single-event .fdn-event-main { min-width: 0; }
body.fdn-single-event .fdn-event-about h2,
body.fdn-single-event .fdn-event-program h2 {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: 26px;
	margin: 0 0 14px;
	padding-bottom: 12px;
	position: relative;
}
body.fdn-single-event .fdn-event-about h2::after,
body.fdn-single-event .fdn-event-program h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 36px;
	height: 3px;
	background: var(--fdn-accent);
	border-radius: 2px;
}
body.fdn-single-event .fdn-event-about { margin-bottom: 48px; }
body.fdn-single-event .fdn-event-about p {
	color: var(--fdn-ink-soft);
	font-size: 16px;
	line-height: 1.7;
	margin: 0 0 14px;
}
body.fdn-single-event .fdn-event-about p:last-child { margin-bottom: 0; }

/* Program timeline — gold-dot rail mirrors the .fdn-milestone pattern */
body.fdn-single-event .fdn-timeline {
	list-style: none;
	padding: 0;
	margin: 24px 0 0;
	position: relative;
}
body.fdn-single-event .fdn-timeline::before {
	content: "";
	position: absolute;
	left: 9px;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: var(--fdn-line);
}
body.fdn-single-event .fdn-timeline-item {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 22px;
	padding: 0 0 26px 0;
	position: relative;
	padding-left: 32px;
}
body.fdn-single-event .fdn-timeline-item::before {
	content: "";
	position: absolute;
	left: 3px;
	top: 8px;
	width: 14px;
	height: 14px;
	background: var(--fdn-accent);
	border: 3px solid var(--fdn-bg);
	border-radius: 50%;
	box-shadow: 0 0 0 1px var(--fdn-line);
}
body.fdn-single-event .fdn-timeline-item:last-child { padding-bottom: 0; }
body.fdn-single-event .fdn-timeline-item .t {
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--fdn-accent);
	padding-top: 4px;
}
body.fdn-single-event .fdn-timeline-item .b h3 {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: 18px;
	margin: 0 0 6px;
	line-height: 1.3;
}
body.fdn-single-event .fdn-timeline-item .b p {
	margin: 0;
	color: var(--fdn-ink-soft);
	font-size: 14px;
	line-height: 1.6;
}
@media (max-width: 560px) {
	body.fdn-single-event .fdn-timeline-item { grid-template-columns: 1fr; gap: 4px; }
	body.fdn-single-event .fdn-timeline-item .t { padding-top: 0; }
}

/* Aside meta card */
body.fdn-single-event .fdn-event-aside { position: sticky; top: 24px; align-self: start; }
@media (max-width: 880px) {
	body.fdn-single-event .fdn-event-aside { position: static; }
}
body.fdn-single-event .fdn-event-card {
	background: #fff;
	border: 1px solid var(--fdn-line);
	border-radius: var(--fdn-radius);
	box-shadow: var(--fdn-shadow-sm);
	padding: 28px;
}
body.fdn-single-event .fdn-event-card dl { margin: 0; }
body.fdn-single-event .fdn-event-card dt {
	font-family: var(--fdn-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--fdn-accent);
	margin-bottom: 4px;
}
body.fdn-single-event .fdn-event-card dd {
	margin: 0 0 18px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--fdn-line);
	color: var(--fdn-ink);
	font-family: var(--fdn-serif);
	font-size: 15px;
	line-height: 1.5;
}
body.fdn-single-event .fdn-event-card dd:last-of-type { border-bottom: 0; }
body.fdn-single-event .fdn-event-card .addr { color: var(--fdn-ink-soft); font-size: 14px; }
body.fdn-single-event .fdn-event-card .dirlink {
	display: inline-block;
	margin-top: 6px;
	color: var(--fdn-accent);
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}
body.fdn-single-event .fdn-event-card .dirlink::after { content: " →"; }
body.fdn-single-event .fdn-event-card a { color: var(--fdn-ink); text-decoration: none; border-bottom: 1px solid var(--fdn-line); transition: border-color .2s; }
body.fdn-single-event .fdn-event-card a:hover { border-bottom-color: var(--fdn-accent); }
body.fdn-single-event .fdn-event-card .dirlink { border-bottom: 0; }
body.fdn-single-event .fdn-event-card .fdn-share { display: flex; gap: 8px; }
body.fdn-single-event .fdn-event-card .fdn-share a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1.5px solid var(--fdn-line);
	border-radius: 50%;
	color: var(--fdn-ink);
	font-family: var(--fdn-sans);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	transition: background .2s, color .2s, border-color .2s;
}
body.fdn-single-event .fdn-event-card .fdn-share a:hover {
	background: var(--fdn-accent);
	color: var(--fdn-ink);
	border-color: var(--fdn-accent);
}
body.fdn-single-event .fdn-event-card-cta {
	display: block;
	margin-top: 20px;
	padding: 14px 18px;
	background: var(--fdn-accent);
	color: var(--fdn-ink);
	font-family: var(--fdn-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	border-radius: var(--fdn-radius);
	border: 0 !important;
	transition: opacity .2s;
}
body.fdn-single-event .fdn-event-card-cta:hover { opacity: 0.9; color: var(--fdn-ink); border: 0 !important; }

/* Register section — cream band with embedded Forminator form */
body.fdn-single-event .fdn-event-register-section {
	background: var(--fdn-bg-alt);
	padding: 72px 24px;
	margin-top: 64px;
}
body.fdn-single-event .fdn-event-register-wrap {
	max-width: 760px;
	margin: 0 auto;
	background: #fff;
	padding: 40px;
	border-radius: var(--fdn-radius);
	box-shadow: var(--fdn-shadow-md);
	text-align: center;
}
body.fdn-single-event .fdn-event-register-title {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: clamp(26px, 3vw, 34px);
	margin: 8px 0 28px;
}
body.fdn-single-event .fdn-event-register-section .forminator-ui { text-align: left; }

/* "You may also like" */
.fdn-also-like { background: var(--fdn-bg-alt); padding: 72px 24px; }
.fdn-also-wrap { max-width: var(--fdn-container); margin: 0 auto; text-align: center; }
.fdn-also-title { font-family: var(--fdn-serif); font-style: italic; font-weight: 700; color: var(--fdn-ink); font-size: clamp(28px, 3vw, 38px); margin: 14px 0 36px; }
.fdn-also-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.fdn-also-card {
	background: #fff;
	border: 1px solid var(--fdn-line);
	border-radius: var(--fdn-radius);
	overflow: hidden;
	text-decoration: none;
	color: var(--fdn-ink);
	display: block;
	transition: transform .2s, box-shadow .2s;
}
.fdn-also-card:hover { transform: translateY(-2px); box-shadow: var(--fdn-shadow-md); }
.fdn-also-thumb { aspect-ratio: 4 / 3; background: var(--fdn-bg-alt); overflow: hidden; }
.fdn-also-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fdn-also-name { font-family: var(--fdn-serif); font-weight: 700; font-size: 16px; margin: 14px 18px 4px; }
.fdn-also-meta { font-size: 12px; color: var(--fdn-muted); margin: 0 18px 18px; }
.fdn-also-dot { color: var(--fdn-accent); }
@media (max-width: 900px) { .fdn-also-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .fdn-also-grid { grid-template-columns: 1fr; } }

/* ============================================================
   Gallery page — album mosaic cards
   ============================================================ */
.fdn-album-card {
	position: relative;
	border-radius: var(--fdn-radius);
	overflow: hidden;
	background: var(--fdn-bg-alt);
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: flex-end;
	color: #fff;
	text-decoration: none;
	transition: transform .2s, box-shadow .2s;
	box-shadow: var(--fdn-shadow-sm);
}
.fdn-album-card.is-wide { aspect-ratio: 16 / 9; grid-column: span 2; }
.fdn-album-card:hover { transform: translateY(-2px); box-shadow: var(--fdn-shadow-md); }
.fdn-album-card .thumb { position: absolute; inset: 0; }
.fdn-album-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.fdn-album-card .scrim {
	position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(10,37,64,0.85) 0%, rgba(10,37,64,0.45) 45%, rgba(10,37,64,0.12) 70%, transparent 100%);
}
.fdn-album-card .meta { position: relative; padding: 22px; z-index: 1; }
.fdn-album-card .cat { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--fdn-accent); }
.fdn-album-card .name { font-family: var(--fdn-serif); font-weight: 700; font-size: 18px; margin: 6px 0 4px; color: #fff; line-height: 1.2; }
.fdn-album-card .count { font-size: 12px; color: rgba(255,255,255,0.75); }

/* ============================================================
   Page-scoped tweaks (body-class scoped to prevent bleed)
   ============================================================ */

/* Home — featured event grid */
body.fdn-page-home .fdn-event-card { padding: 28px !important; }
body.fdn-page-home .fdn-event-card .fdn-date { margin-bottom: 14px; }

/* Home — hero with 2 stacked CTAs (inline-block so they sit side-by-side) */
body.fdn-page-home .fdn-hero-home .et_pb_button_module_wrapper { display: inline-block !important; margin: 6px 6px 0 !important; vertical-align: middle; }
body.fdn-page-home .fdn-hero-home .et_pb_button_module_wrapper:first-of-type { margin-left: 0; }
body.fdn-page-home .fdn-hero-home .et_pb_button_module_wrapper:last-of-type { margin-right: 0; }

/* Home — programs grid (4-card row)
   Cards are flat (no top accent), equal height, with a circular outline icon. */
body.fdn-page-home .fdn-prog {
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-top: 1px solid var(--fdn-line) !important; /* override fdn-card-accent's gold top stripe */
	border-radius: var(--fdn-radius) !important;
	padding: 28px 24px !important;
	box-shadow: var(--fdn-shadow-sm);
	height: 100% !important;            /* equal height when row uses align-items: stretch */
	display: flex !important;
	flex-direction: column;
}
body.fdn-page-home .fdn-prog .ic {
	width: 44px; height: 44px;
	border-radius: 50%;
	background: transparent;
	border: 1px solid var(--fdn-accent);
	color: var(--fdn-accent);
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 18px;
	flex-shrink: 0;
}
body.fdn-page-home .fdn-prog .ic svg { width: 18px; height: 18px; }
body.fdn-page-home .fdn-prog .ttl { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 18px; margin: 0 0 8px; line-height: 1.3; }
body.fdn-page-home .fdn-prog .desc { color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.6; margin: 0; }
/* Equal-height program columns via CSS Grid (flex was fighting Divi's column CSS) */
body.fdn-page-home .fdn-prog-row {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 22px !important;
	align-items: stretch !important;
	margin-top: 56px !important;     /* breathing room between the lede and the cards */
}
body.fdn-page-home .fdn-prog-row .et_pb_column.fdn-prog {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	float: none !important;
}
@media (max-width: 980px) {
	body.fdn-page-home .fdn-prog-row { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 540px) {
	body.fdn-page-home .fdn-prog-row { grid-template-columns: 1fr !important; }
}

/* Home — testimonial */
body.fdn-page-home .fdn-quote { max-width: 760px; margin: 0 auto; text-align: center; }
body.fdn-page-home .fdn-quote .mark { color: var(--fdn-accent); font-size: 38px; font-family: var(--fdn-serif); line-height: 1; }
body.fdn-page-home .fdn-quote .q { font-family: var(--fdn-serif); font-style: italic; font-size: clamp(20px, 2.4vw, 28px); color: var(--fdn-ink); line-height: 1.45; margin: 14px 0 20px; }
body.fdn-page-home .fdn-quote .who { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--fdn-accent); }

/* Home — Upcoming Events section: tighten the rows so the heading group,
   the cards row, and the button row sit close together (Divi defaults too loose) */
body.fdn-page-home .et_pb_section:has(.fdn-up-row) {
	padding: 70px 0 !important;
}
body.fdn-page-home .et_pb_section:has(.fdn-up-row) .et_pb_row {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
body.fdn-page-home .et_pb_section:has(.fdn-up-row) .et_pb_row + .et_pb_row {
	margin-top: 36px !important;
}
/* Subtext spacing under the heading: pull it closer to the title */
body.fdn-page-home .et_pb_section:has(.fdn-up-row) .et_pb_heading + .et_pb_text { margin-top: -4px !important; }

/* Home — upcoming events card: image top, date chip + meta, title, body, link */
body.fdn-page-home .fdn-up-row {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	align-items: stretch !important;
}
@media (max-width: 980px) { body.fdn-page-home .fdn-up-row { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 600px) { body.fdn-page-home .fdn-up-row { grid-template-columns: 1fr !important; } }
body.fdn-page-home .fdn-up-row .et_pb_column.fdn-upcoming {
	width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important;
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-top: 3px solid var(--fdn-accent) !important;
	border-radius: var(--fdn-radius) !important;
	overflow: hidden !important;
	padding: 0 !important;
	box-shadow: var(--fdn-shadow-sm);
	display: flex !important;
	flex-direction: column !important;
	/* Make the whole card a single clickable link */
	color: inherit;
	text-decoration: none !important;
	transition: transform .2s ease, box-shadow .2s ease;
}
body.fdn-page-home .fdn-up-row a.fdn-upcoming:hover {
	transform: translateY(-3px);
	box-shadow: var(--fdn-shadow-md);
}
body.fdn-page-home .fdn-up-row a.fdn-upcoming:hover .fdn-up-img img {
	transform: scale(1.03);
}
body.fdn-page-home .fdn-up-row .fdn-up-img img {
	transition: transform .4s ease;
}
body.fdn-page-home .fdn-up-row a.fdn-upcoming:hover .fdn-up-more {
	color: var(--fdn-ink);
}
body.fdn-page-home .fdn-upcoming .fdn-up-img {
	aspect-ratio: 16 / 9;
	background: var(--fdn-bg-alt);
	overflow: hidden;
}
body.fdn-page-home .fdn-upcoming .fdn-up-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.fdn-page-home .fdn-upcoming .fdn-up-body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
body.fdn-page-home .fdn-upcoming .fdn-up-head { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; }
body.fdn-page-home .fdn-upcoming .fdn-up-chip {
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
	background: var(--fdn-ink); color: #fff;
	border-radius: var(--fdn-radius-sm);
	width: 48px; height: 48px; flex-shrink: 0;
	font-family: var(--fdn-serif);
	line-height: 1;
}
body.fdn-page-home .fdn-upcoming .fdn-up-chip .d { font-size: 18px; font-weight: 700; }
body.fdn-page-home .fdn-upcoming .fdn-up-chip .m { font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; margin-top: 3px; color: var(--fdn-accent); font-family: var(--fdn-sans); font-weight: 600; }
body.fdn-page-home .fdn-upcoming .fdn-up-meta { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fdn-muted); line-height: 1.4; }
body.fdn-page-home .fdn-upcoming .fdn-up-ttl { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 18px; margin: 0 0 8px; line-height: 1.25; }
body.fdn-page-home .fdn-upcoming .fdn-up-desc { color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.6; margin: 0 0 14px; flex: 1; }
body.fdn-page-home .fdn-upcoming .fdn-up-more { color: var(--fdn-accent); font-size: 13px; font-weight: 600; text-decoration: none; letter-spacing: 0.04em; margin-top: auto; }
body.fdn-page-home .fdn-upcoming .fdn-up-more::after { content: ' →'; }

/* Section head rendered by the [fdn_upcoming_events] shortcode itself (eyebrow + title + subtext) */
body.fdn-page-home .fdn-up-section-head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 36px;
}
body.fdn-page-home .fdn-up-section-head .fdn-eyebrow {
	font-family: var(--fdn-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fdn-accent);
	margin: 0 0 14px;
}
body.fdn-page-home .fdn-up-section-title {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.1;
	margin: 0 0 14px;
}
body.fdn-page-home .fdn-up-section-subtext {
	color: var(--fdn-ink-soft);
	font-size: 15px;
	margin: 0;
}

/* Temporal status pill (Happening Today / Tomorrow / Past) overlaid on card image */
body.fdn-page-home .fdn-upcoming .fdn-up-img { position: relative; }
body.fdn-page-home .fdn-up-pill {
	position: absolute;
	top: 12px;
	left: 12px;
	display: inline-block;
	padding: 5px 10px;
	font-family: var(--fdn-sans);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-radius: 4px;
	z-index: 1;
}
body.fdn-page-home .fdn-up-pill--today    { background: var(--fdn-accent); color: var(--fdn-ink); }
body.fdn-page-home .fdn-up-pill--tomorrow { background: var(--fdn-ink); color: #fff; }
body.fdn-page-home .fdn-up-pill--past     { background: rgba(15, 44, 74, 0.7); color: #fff; }

/* Past mode dims the gold accent stripe so the strip reads as "archive" */
body.fdn-page-home .fdn-up-row:has(.fdn-upcoming--past) .fdn-upcoming {
	/* no visual change to card stripe — kept distinct only via pill */
}

/* Empty state when no events exist yet */
body.fdn-page-home .fdn-up-empty {
	background: #fff;
	border: 1px dashed var(--fdn-line);
	border-radius: var(--fdn-radius);
	padding: 40px 24px;
	text-align: center;
	color: var(--fdn-ink-soft);
	font-size: 15px;
}
body.fdn-page-home .fdn-up-empty p { margin: 0; }
body.fdn-page-home .fdn-up-empty a {
	color: var(--fdn-accent);
	font-weight: 700;
	text-decoration: none;
	margin-left: 8px;
}
body.fdn-page-home .fdn-up-empty a:hover { text-decoration: underline; }

/* Stats strip (used on Home) */
body.fdn-page-home .fdn-stats-strip .et_pb_row { padding-top: 18px !important; padding-bottom: 18px !important; }

/* About — milestones (vertical list with gold left border) */
body.fdn-page-about .fdn-milestone {
	padding: 14px 0 14px 22px;
	border-left: 2px solid var(--fdn-line);
	margin-left: 6px;
	position: relative;
}
body.fdn-page-about .fdn-milestone::before {
	content: '';
	position: absolute;
	left: -7px; top: 22px;
	width: 12px; height: 12px;
	background: var(--fdn-accent);
	border-radius: 50%;
}
body.fdn-page-about .fdn-milestone .yr { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 16px; }
body.fdn-page-about .fdn-milestone .ttl { color: var(--fdn-accent); font-weight: 600; font-size: 13px; letter-spacing: 0.06em; }
body.fdn-page-about .fdn-milestone .desc { color: var(--fdn-ink-soft); font-size: 14px; margin-top: 4px; }

/* Leadership — Standing Committees grid: compact equal-height cards per mockup */
body.fdn-page-leadership .fdn-committees-row {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 18px !important;
	align-items: stretch !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
@media (max-width: 980px) { body.fdn-page-leadership .fdn-committees-row { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 540px) { body.fdn-page-leadership .fdn-committees-row { grid-template-columns: 1fr !important; } }
body.fdn-page-leadership .fdn-committees-row .et_pb_column.fdn-card-flat {
	width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important;
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 22px 22px !important;
	box-shadow: none !important;
	display: flex !important;
	flex-direction: column !important;
}
/* Mockup cards have tighter typography */
body.fdn-page-leadership .fdn-committees-row .et_pb_column.fdn-card-flat h3 { font-size: 16px !important; margin-bottom: 7px !important; }
body.fdn-page-leadership .fdn-committees-row .et_pb_column.fdn-card-flat p { font-size: 13px !important; line-height: 1.55 !important; }
/* Breathing room: section padding + space between the header text and the first row of cards */
body.fdn-page-leadership .et_pb_section:has(.fdn-committees-row) .et_pb_row:first-of-type { padding-top: 0 !important; padding-bottom: 0 !important; }
/* All committees rows get a big top margin by default... */
body.fdn-page-leadership .fdn-committees-row { margin-top: 72px !important; }
/* ...but when one committees row immediately follows another, use a smaller gap */
body.fdn-page-leadership .fdn-committees-row + .fdn-committees-row { margin-top: 18px !important; }

/* Leadership — exec board portrait cards */
body.fdn-page-leadership .fdn-portrait {
	background: #fff;
	border: 1px solid var(--fdn-line);
	border-radius: var(--fdn-radius);
	overflow: hidden;
	text-align: center;
	box-shadow: var(--fdn-shadow-sm);
}
body.fdn-page-leadership .fdn-portrait .ph {
	aspect-ratio: 1 / 1;
	background:
		repeating-linear-gradient(135deg, var(--fdn-accent-soft) 0 8px, transparent 8px 16px),
		var(--fdn-bg-alt);
	display: flex; align-items: center; justify-content: center;
	color: var(--fdn-ink); font-family: var(--fdn-serif); font-style: italic; font-size: 14px; opacity: 0.7;
	border-bottom: 2px solid var(--fdn-accent);
}
body.fdn-page-leadership .fdn-portrait .ph img { width: 100%; height: 100%; object-fit: cover; }
body.fdn-page-leadership .fdn-portrait .body { padding: 22px 18px; }
body.fdn-page-leadership .fdn-portrait .name { font-family: var(--fdn-serif); font-weight: 700; font-size: 18px; color: var(--fdn-ink); margin: 0 0 6px; }
body.fdn-page-leadership .fdn-portrait .role { font-family: var(--fdn-sans); font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fdn-accent); margin-bottom: 12px; }
body.fdn-page-leadership .fdn-portrait .bio { font-size: 13px; color: var(--fdn-ink-soft); line-height: 1.5; }

/* Events — list row */
body.fdn-page-events .fdn-event-list {
	background: #fff;
	border: 1px solid var(--fdn-line);
	border-radius: var(--fdn-radius);
	padding: 8px 22px;
	box-shadow: var(--fdn-shadow-sm);
}
body.fdn-page-events .fdn-event-row {
	display: flex;
	gap: 22px;
	align-items: center;
	padding: 22px 0;
	border-bottom: 1px solid var(--fdn-line-soft);
}
body.fdn-page-events .fdn-event-row:last-child { border-bottom: 0; }
body.fdn-page-events .fdn-event-row .info { flex: 1; min-width: 0; }
body.fdn-page-events .fdn-event-row .meta { font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--fdn-accent); margin-bottom: 6px; }
body.fdn-page-events .fdn-event-row .meta .loc { color: var(--fdn-muted); margin-left: 12px; }
body.fdn-page-events .fdn-event-row .ttl { font-family: var(--fdn-serif); font-weight: 700; font-size: 19px; color: var(--fdn-ink); margin: 0 0 6px; }
body.fdn-page-events .fdn-event-row .desc { color: var(--fdn-ink-soft); font-size: 14px; margin: 0; }
body.fdn-page-events .fdn-event-row .cta a {
	background: var(--fdn-ink); color: #fff; padding: 10px 18px; border-radius: var(--fdn-radius); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; display: inline-block; white-space: nowrap;
}
body.fdn-page-events .fdn-event-row .cta a:hover { opacity: 0.9; }

/* Featured event hero (Events page) */
body.fdn-page-events .fdn-featured {
	background: #fff;
	border: 1px solid var(--fdn-line);
	border-radius: var(--fdn-radius);
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr 1fr;
	box-shadow: var(--fdn-shadow-md);
}
body.fdn-page-events .fdn-featured .img {
	background:
		repeating-linear-gradient(135deg, var(--fdn-accent-soft) 0 10px, transparent 10px 20px),
		var(--fdn-bg-alt);
	min-height: 320px;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--fdn-serif); font-style: italic; color: var(--fdn-ink); opacity: 0.6;
}
body.fdn-page-events .fdn-featured .img img { width: 100%; height: 100%; object-fit: cover; }
body.fdn-page-events .fdn-featured .body { padding: 36px; display: flex; flex-direction: column; gap: 18px; }
body.fdn-page-events .fdn-featured .topline { display: flex; gap: 18px; align-items: flex-start; }
body.fdn-page-events .fdn-featured .where-when { font-size: 13px; color: var(--fdn-ink-soft); }
body.fdn-page-events .fdn-featured .where-when .loc { color: var(--fdn-accent); font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; font-size: 11px; }
body.fdn-page-events .fdn-featured h3 { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 26px; margin: 0; }
body.fdn-page-events .fdn-featured p { color: var(--fdn-ink-soft); margin: 0; }
body.fdn-page-events .fdn-featured .ctas { display: flex; gap: 12px; margin-top: 6px; }
body.fdn-page-events .fdn-featured .ctas .btn-gold,
body.fdn-page-events .fdn-featured .ctas .btn-navy {
	display: inline-block; padding: 12px 22px; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; border-radius: var(--fdn-radius);
}
body.fdn-page-events .fdn-featured .ctas .btn-gold { background: var(--fdn-accent); color: var(--fdn-ink); }
body.fdn-page-events .fdn-featured .ctas .btn-navy { background: var(--fdn-ink); color: #fff; }
@media (max-width: 800px) { body.fdn-page-events .fdn-featured { grid-template-columns: 1fr; } }

/* Past highlights gallery cards (Events page) */
body.fdn-page-events .fdn-highlight {
	background: #fff; border: 1px solid var(--fdn-line); border-radius: var(--fdn-radius); overflow: hidden; box-shadow: var(--fdn-shadow-sm);
}
body.fdn-page-events .fdn-highlight .ph {
	aspect-ratio: 16/10;
	background:
		repeating-linear-gradient(135deg, var(--fdn-accent-soft) 0 10px, transparent 10px 20px),
		var(--fdn-bg-alt);
}
body.fdn-page-events .fdn-highlight .body { padding: 18px 22px 22px; }
body.fdn-page-events .fdn-highlight .meta { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--fdn-muted); margin-bottom: 6px; }
body.fdn-page-events .fdn-highlight .ttl { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 18px; margin: 0 0 8px; }
body.fdn-page-events .fdn-highlight .lnk { color: var(--fdn-accent); font-size: 13px; font-weight: 600; text-decoration: none; }

/* Gallery — album mosaic grid (uses .fdn-album-card from above) */
body.fdn-page-gallery .fdn-album-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
/* Filter toggle: client-side JS adds [hidden] to cards that don't match the active filter */
body.fdn-page-gallery .fdn-album-card[hidden] { display: none !important; }
@media (max-width: 900px) { body.fdn-page-gallery .fdn-album-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { body.fdn-page-gallery .fdn-album-grid { grid-template-columns: 1fr; } body.fdn-page-gallery .fdn-album-card.is-wide { grid-column: span 1; } }

/* Contact — info list */
body.fdn-page-contact .fdn-contact-item {
	display: flex; gap: 16px; align-items: flex-start;
	padding: 18px 0;
	border-bottom: 1px solid var(--fdn-line-soft);
}
body.fdn-page-contact .fdn-contact-item:last-child { border-bottom: 0; }
body.fdn-page-contact .fdn-contact-item .ic {
	width: 38px; height: 38px; border-radius: 50%;
	background: rgba(201,164,73,0.12);
	color: var(--fdn-accent);
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0; font-size: 16px;
}
body.fdn-page-contact .fdn-contact-item .lbl { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--fdn-accent); margin: 0 0 4px; }
body.fdn-page-contact .fdn-contact-item .val { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 17px; margin: 0; }
body.fdn-page-contact .fdn-contact-item .sub { color: var(--fdn-muted); font-size: 13px; margin: 4px 0 0; }
body.fdn-page-contact .fdn-contact-item .val a { color: inherit; text-decoration: none; border: 0; }

/* Hide the gold divider above the chapter cards + the "View All 18 Chapters" CTA */
body.fdn-page-contact .et_pb_divider_1,
body.fdn-page-contact .et_pb_button_0_wrapper { display: none !important; }

/* ============================================================
   Donate + Volunteer pages — shared card styles
   ============================================================ */

/* Impact cards (used on both pages — icon + heading + description) */
body.fdn-page-donate .fdn-impact-row,
body.fdn-page-volunteer .et_pb_row:has(.fdn-impact) {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 22px !important;
	margin-top: 36px !important;
	align-items: stretch !important;
}
body.fdn-page-volunteer .et_pb_row:has(.fdn-impact) { grid-template-columns: repeat(3, 1fr) !important; }
@media (max-width: 980px) {
	body.fdn-page-donate .fdn-impact-row,
	body.fdn-page-volunteer .et_pb_row:has(.fdn-impact) { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
	body.fdn-page-donate .fdn-impact-row,
	body.fdn-page-volunteer .et_pb_row:has(.fdn-impact) { grid-template-columns: 1fr !important; }
}
body.fdn-page-donate .et_pb_column.fdn-impact,
body.fdn-page-volunteer .et_pb_column.fdn-impact {
	width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important;
}
body.fdn-page-donate .fdn-impact .ic,
body.fdn-page-volunteer .fdn-impact .ic {
	width: 48px; height: 48px;
	border-radius: 50%;
	background: transparent;
	border: 1px solid var(--fdn-accent);
	color: var(--fdn-accent);
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 18px;
}
body.fdn-page-donate .fdn-impact h3,
body.fdn-page-volunteer .fdn-impact h3 {
	font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink);
	font-size: 18px; margin: 0 0 8px; line-height: 1.3;
}
body.fdn-page-donate .fdn-impact p,
body.fdn-page-volunteer .fdn-impact p {
	color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.6; margin: 0;
}

/* Donate page — giving tier cards */
body.fdn-page-donate .fdn-tier-row {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 22px !important;
	align-items: stretch !important;
	margin-top: 36px !important;
}
@media (max-width: 980px) { body.fdn-page-donate .fdn-tier-row { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 540px) { body.fdn-page-donate .fdn-tier-row { grid-template-columns: 1fr !important; } }
body.fdn-page-donate .et_pb_column.fdn-tier {
	width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important;
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 28px 22px !important;
	text-align: center !important;
	box-shadow: var(--fdn-shadow-sm);
	position: relative;
}
body.fdn-page-donate .fdn-tier .amt {
	font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink);
	font-size: 36px; line-height: 1; margin-bottom: 4px;
}
body.fdn-page-donate .fdn-tier .sub {
	font-family: var(--fdn-sans); font-size: 11px; font-weight: 700;
	letter-spacing: 0.22em; text-transform: uppercase; color: var(--fdn-accent);
	margin-bottom: 14px;
}
body.fdn-page-donate .fdn-tier p { color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.55; margin: 0; }
body.fdn-page-donate .et_pb_column.fdn-tier.fdn-tier-featured {
	border-top: 3px solid var(--fdn-accent) !important;
	box-shadow: 0 8px 28px rgba(10,37,64,0.10);
}
body.fdn-page-donate .fdn-tier .badge {
	position: absolute;
	top: 0; left: 50%; transform: translateX(-50%);
	margin-top: -42px !important;
	background: var(--fdn-accent); color: var(--fdn-ink);
	font-family: var(--fdn-sans); font-size: 10px; font-weight: 700;
	letter-spacing: 0.18em; text-transform: uppercase;
	padding: 5px 12px; border-radius: 4px;
	white-space: nowrap;
}

/* Donate page — "Other ways to give" tiles in the navy band */
body.fdn-page-donate .fdn-sec-navy .fdn-way h3 {
	font-family: var(--fdn-serif); font-weight: 700;
	color: var(--fdn-accent); font-size: 18px;
	margin: 0 0 10px;
}
body.fdn-page-donate .fdn-sec-navy .fdn-way p {
	color: rgba(255,255,255,0.85); font-size: 14px; line-height: 1.6; margin: 0;
}
body.fdn-page-donate .fdn-sec-navy .fdn-way a { color: var(--fdn-accent); text-decoration: none; }
body.fdn-page-donate .fdn-sec-navy .fdn-way a:hover { text-decoration: underline; }

/* Volunteer page — opportunity cards (2-col layout) */
body.fdn-page-volunteer .fdn-vol-opp-row {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 22px !important;
	align-items: stretch !important;
	margin-top: 36px !important;
}
@media (max-width: 780px) { body.fdn-page-volunteer .fdn-vol-opp-row { grid-template-columns: 1fr !important; } }
body.fdn-page-volunteer .et_pb_column.fdn-vol-opp-col {
	width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important;
}
body.fdn-page-volunteer .fdn-vol-opp {
	background: #fff;
	border: 1px solid var(--fdn-line);
	border-left: 4px solid var(--fdn-accent);
	border-radius: var(--fdn-radius);
	padding: 24px 26px;
	box-shadow: var(--fdn-shadow-sm);
	height: 100%;
}
body.fdn-page-volunteer .fdn-vol-opp h3 {
	font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink);
	font-size: 19px; margin: 0 0 8px; line-height: 1.3;
}
body.fdn-page-volunteer .fdn-vol-opp p { color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.6; margin: 0; }

/* Both pages — wrap the IN-CONTENT form in a centered white card, like the
   event-detail register section. The :not([class*=tb_footer]) guard is critical:
   the footer also embeds a Forminator form (the newsletter signup) and without
   the guard this rule would override the transparent-footer-form treatment
   set earlier at .et_pb_section_0_tb_footer .forminator-custom-form. */
body.fdn-page-donate .et_pb_section:not([class*="tb_footer"]) .forminator-ui.forminator-custom-form,
body.fdn-page-volunteer .et_pb_section:not([class*="tb_footer"]) .forminator-ui.forminator-custom-form {
	max-width: 760px;
	margin-left: auto !important;
	margin-right: auto !important;
	background: #fff !important;
	padding: 40px !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	box-shadow: var(--fdn-shadow-md);
}
@media (max-width: 560px) {
	body.fdn-page-donate .et_pb_section:not([class*="tb_footer"]) .forminator-ui.forminator-custom-form,
	body.fdn-page-volunteer .et_pb_section:not([class*="tb_footer"]) .forminator-ui.forminator-custom-form { padding: 28px 22px !important; }
}

/* ============================================================
   Legal pages — /bylaws/, /privacy/, /terms/
   Single long-form content section. Generous typography, clear
   heading hierarchy, narrow measure for readability.
   ============================================================ */
body.fdn-page-bylaws .fdn-hero .fdn-legal-date,
body.fdn-page-privacy .fdn-hero .fdn-legal-date,
body.fdn-page-terms .fdn-hero .fdn-legal-date {
	font-family: var(--fdn-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--fdn-accent);
	margin-top: 14px;
	opacity: 0.95;
}
body.fdn-page-bylaws .fdn-legal-row,
body.fdn-page-privacy .fdn-legal-row,
body.fdn-page-terms .fdn-legal-row {
	padding-top: 0 !important;
}
body.fdn-page-bylaws .et_pb_column.fdn-legal-col,
body.fdn-page-privacy .et_pb_column.fdn-legal-col,
body.fdn-page-terms .et_pb_column.fdn-legal-col {
	max-width: 820px;
	margin: 0 auto !important;
	float: none !important;
}
body.fdn-page-bylaws .fdn-legal,
body.fdn-page-privacy .fdn-legal,
body.fdn-page-terms .fdn-legal {
	font-family: var(--fdn-sans);
	color: var(--fdn-ink-soft);
	font-size: 15.5px;
	line-height: 1.75;
}
body.fdn-page-bylaws .fdn-legal h2,
body.fdn-page-privacy .fdn-legal h2,
body.fdn-page-terms .fdn-legal h2 {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: 26px;
	line-height: 1.25;
	margin: 48px 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--fdn-line);
}
body.fdn-page-bylaws .fdn-legal h2:first-child,
body.fdn-page-privacy .fdn-legal h2:first-child,
body.fdn-page-terms .fdn-legal h2:first-child {
	margin-top: 0;
}
body.fdn-page-bylaws .fdn-legal h3,
body.fdn-page-privacy .fdn-legal h3,
body.fdn-page-terms .fdn-legal h3 {
	font-family: var(--fdn-serif);
	font-weight: 700;
	color: var(--fdn-ink);
	font-size: 18px;
	line-height: 1.35;
	margin: 28px 0 10px;
}
body.fdn-page-bylaws .fdn-legal p,
body.fdn-page-privacy .fdn-legal p,
body.fdn-page-terms .fdn-legal p {
	margin: 0 0 16px;
}
body.fdn-page-bylaws .fdn-legal ul,
body.fdn-page-privacy .fdn-legal ul,
body.fdn-page-terms .fdn-legal ul {
	margin: 0 0 18px;
	padding-left: 22px;
}
body.fdn-page-bylaws .fdn-legal li,
body.fdn-page-privacy .fdn-legal li,
body.fdn-page-terms .fdn-legal li {
	margin: 0 0 8px;
}
body.fdn-page-bylaws .fdn-legal strong,
body.fdn-page-privacy .fdn-legal strong,
body.fdn-page-terms .fdn-legal strong { color: var(--fdn-ink); font-weight: 700; }
body.fdn-page-bylaws .fdn-legal a,
body.fdn-page-privacy .fdn-legal a,
body.fdn-page-terms .fdn-legal a {
	color: var(--fdn-accent);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .2s;
}
body.fdn-page-bylaws .fdn-legal a:hover,
body.fdn-page-privacy .fdn-legal a:hover,
body.fdn-page-terms .fdn-legal a:hover { border-bottom-color: var(--fdn-accent); }
body.fdn-page-bylaws .fdn-legal .fdn-legal-footer,
body.fdn-page-privacy .fdn-legal .fdn-legal-footer,
body.fdn-page-terms .fdn-legal .fdn-legal-footer {
	margin-top: 48px;
	padding-top: 28px;
	border-top: 2px solid var(--fdn-line);
	font-size: 13px;
	color: var(--fdn-muted);
	font-style: italic;
}
body.fdn-page-bylaws .fdn-legal .fdn-legal-address,
body.fdn-page-privacy .fdn-legal .fdn-legal-address,
body.fdn-page-terms .fdn-legal .fdn-legal-address {
	padding: 14px 18px;
	border-left: 3px solid var(--fdn-accent);
	background: var(--fdn-bg-alt);
	font-family: var(--fdn-sans);
	font-size: 14px;
}

/* Map placeholder */
body.fdn-page-contact .fdn-map {
	background:
		repeating-linear-gradient(135deg, var(--fdn-accent-soft) 0 10px, transparent 10px 20px),
		var(--fdn-bg-alt);
	height: 320px;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--fdn-serif); font-style: italic; color: var(--fdn-ink); opacity: 0.6;
}

/* Chapter cards (contact) */
body.fdn-page-contact .fdn-chapter {
	background: #fff; border: 1px solid var(--fdn-line); border-radius: var(--fdn-radius); padding: 18px 20px;
}
body.fdn-page-contact .fdn-chapter .city { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); margin: 0 0 8px; font-size: 16px; }
body.fdn-page-contact .fdn-chapter .em,
body.fdn-page-contact .fdn-chapter .ph { font-size: 13px; color: var(--fdn-muted); margin: 0; line-height: 1.6; }

/* Membership — why join numbered grid */
body.fdn-page-join .fdn-why { padding: 8px 12px 0; }
body.fdn-page-join .fdn-why .num { font-family: var(--fdn-serif); color: var(--fdn-accent); font-size: 28px; font-weight: 700; line-height: 1; display: block; }
body.fdn-page-join .fdn-why .ttl { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 18px; margin: 12px 0 6px; }
body.fdn-page-join .fdn-why .desc { color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.55; }

/* Membership — pricing tier cards: equal height via CSS Grid, button sticks to bottom
   margin-top: pull the row away from the lede above + room for the dangling badge */
body.fdn-page-join .et_pb_row:has(.fdn-tier) {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	align-items: stretch !important;
	margin-top: 56px !important;
	overflow: visible !important;
}
@media (max-width: 980px) { body.fdn-page-join .et_pb_row:has(.fdn-tier) { grid-template-columns: 1fr !important; max-width: 480px; margin-left: auto !important; margin-right: auto !important; } }
body.fdn-page-join .et_pb_row:has(.fdn-tier) > .et_pb_column {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	float: none !important;
	display: flex !important;
	flex-direction: column !important;
}
/* The column has fdn-card / fdn-card-accent styles (white bg, border, padding) — fill the grid cell */
body.fdn-page-join .et_pb_row:has(.fdn-tier) > .et_pb_column.fdn-card,
body.fdn-page-join .et_pb_row:has(.fdn-tier) > .et_pb_column.fdn-card-accent { height: auto !important; }
/* The inner Code module + .fdn-tier must fill the column so the button stays at the bottom */
body.fdn-page-join .et_pb_row:has(.fdn-tier) > .et_pb_column > .et_pb_module { flex: 1 !important; display: flex !important; flex-direction: column !important; }
body.fdn-page-join .et_pb_row:has(.fdn-tier) .et_pb_code_inner { flex: 1 !important; display: flex !important; flex-direction: column !important; }
body.fdn-page-join .fdn-tier {
	position: relative;
	padding: 36px 30px;
	text-align: center;
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
}
/* Feature list grows, pushing the button to the bottom edge */
body.fdn-page-join .fdn-tier ul { flex: 1 !important; }
body.fdn-page-join .fdn-tier .tname { font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 22px; margin: 0 0 6px; }
body.fdn-page-join .fdn-tier .tsub  { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fdn-accent); margin-bottom: 18px; }
body.fdn-page-join .fdn-tier .price { font-family: var(--fdn-serif); font-size: 48px; font-weight: 700; color: var(--fdn-ink); line-height: 1; }
body.fdn-page-join .fdn-tier .per   { font-family: var(--fdn-sans); font-size: 14px; color: var(--fdn-muted); font-weight: 400; }
body.fdn-page-join .fdn-tier ul     { list-style: none; padding: 0; margin: 22px 0; text-align: left; }
body.fdn-page-join .fdn-tier ul li  { font-size: 14px; color: var(--fdn-ink-soft); padding: 7px 0 7px 22px; position: relative; }
body.fdn-page-join .fdn-tier ul li::before { content: '\2713'; color: var(--fdn-accent); font-weight: 700; position: absolute; left: 0; top: 7px; }
/* MOST POPULAR pill: position relative to the column so it dangles across the card's top edge */
body.fdn-page-join .et_pb_column.fdn-card-featured { position: relative !important; overflow: visible !important; }
body.fdn-page-join .fdn-card-featured .fdn-tier { position: static !important; }
body.fdn-page-join .fdn-tier .featured-badge {
	display: inline-block; background: var(--fdn-accent); color: var(--fdn-ink);
	font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700;
	padding: 6px 16px; border-radius: 999px;
	position: absolute;
	top: -26px;
	left: 50%;
	margin-top: -15px;                    /* fine-tune: pull the pill up 15px so it floats clearly above the card */
	transform: translateX(-50%);
	z-index: 2;
	white-space: nowrap;
}
body.fdn-page-join .fdn-tier .pick-btn {
	display: block; background: var(--fdn-ink); color: #fff; padding: 14px 18px; text-decoration: none;
	font-weight: 700; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
	border-radius: var(--fdn-radius); margin-top: 10px;
	white-space: nowrap;
}
body.fdn-page-join .fdn-tier.is-popular .pick-btn { background: var(--fdn-accent); color: var(--fdn-ink); }

/* Membership — application form panel.
   Wraps the Forminator form in a white card. The section headings are rendered
   by Forminator's `section` field type and styled via .forminator-section-header */
body.fdn-page-join .fdn-app-panel {
	background: #fff; border: 1px solid var(--fdn-line); border-radius: var(--fdn-radius); padding: 36px; box-shadow: var(--fdn-shadow-sm); max-width: 820px; margin: 0 auto;
}
/* Forminator's section headers (rendered as <h2 class="forminator-title"> inside .forminator-field-section)
   Style as gold uppercase eyebrows. Global — applies to every Forminator form on the site. */
.forminator-field-section .forminator-title,
.forminator-field-section h2 {
	font-family: var(--fdn-sans) !important;
	font-size: 12px !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--fdn-accent) !important;
	font-weight: 700 !important;
	margin: 26px 0 14px !important;
	padding-top: 18px !important;
	border-top: 1px solid var(--fdn-line) !important;
	line-height: 1.3 !important;
}
/* First section heading: no top border/padding */
.forminator-row:first-of-type .forminator-field-section .forminator-title,
.forminator-row:first-of-type .forminator-field-section h2 {
	margin-top: 0 !important;
	padding-top: 0 !important;
	border-top: 0 !important;
}
/* Wrap any Forminator form as a white card (Membership, Submit Photos, etc.) */
body.fdn-page-join form.forminator-ui,
body.fdn-page-submit form.forminator-ui {
	background: #fff !important;
	border: 1px solid var(--fdn-line) !important;
	border-radius: var(--fdn-radius) !important;
	padding: 36px !important;
	box-shadow: var(--fdn-shadow-sm) !important;
	max-width: 820px !important;
	margin: 0 auto !important;
}
/* Bylaws checkbox link styling */
body.fdn-page-join .forminator-checkbox-label a { color: var(--fdn-accent); text-decoration: underline; }
/* Submit button = gold, full-width on the Application Form */
body.fdn-page-join .forminator-button-submit {
	width: 100% !important;
	margin-top: 18px !important;
}

/* Membership — FAQ using <details> */
body.fdn-page-join .fdn-faq details { border-bottom: 1px solid var(--fdn-line); padding: 18px 0; }
body.fdn-page-join .fdn-faq details:last-of-type { border-bottom: 0; }
body.fdn-page-join .fdn-faq summary {
	list-style: none; cursor: pointer;
	font-family: var(--fdn-serif); font-weight: 700; color: var(--fdn-ink); font-size: 16px;
	display: flex; justify-content: space-between; align-items: center; gap: 18px;
}
body.fdn-page-join .fdn-faq summary::-webkit-details-marker { display: none; }
body.fdn-page-join .fdn-faq summary::after {
	content: '+'; color: var(--fdn-accent); font-weight: 400; font-size: 22px; line-height: 1; flex-shrink: 0;
}
body.fdn-page-join .fdn-faq details[open] summary::after { content: '\2013'; }
body.fdn-page-join .fdn-faq details p { color: var(--fdn-ink-soft); font-size: 14px; line-height: 1.65; margin: 12px 0 0; }

/* FAQ accordion (Divi Toggle module) */
body.fdn-page-membership .et_pb_toggle,
body.fdn-page-membership .et_pb_accordion_item {
	border: 0 !important;
	border-bottom: 1px solid var(--fdn-line) !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding: 4px 0 !important;
}
body.fdn-page-membership .et_pb_toggle_title {
	font-family: var(--fdn-serif) !important;
	font-weight: 700 !important;
	color: var(--fdn-ink) !important;
	font-size: 16px !important;
	padding: 18px 30px 18px 0 !important;
}
body.fdn-page-membership .et_pb_toggle .et_pb_toggle_content,
body.fdn-page-membership .et_pb_accordion_item .et_pb_toggle_content { color: var(--fdn-ink-soft); padding: 0 30px 18px 0 !important; }
body.fdn-page-membership .et_pb_toggle_open .et_pb_toggle_title::after,
body.fdn-page-membership .et_pb_toggle_close .et_pb_toggle_title::after { color: var(--fdn-accent) !important; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 980px) {
	.et_pb_section { padding: 56px 0; }
	.fdn-util-strip .et_pb_row { justify-content: center !important; text-align: center; gap: 4px; }
}
@media (max-width: 720px) {
	.fdn-tabs { overflow-x: auto; max-width: 100%; justify-content: flex-start; }
	.fdn-foot-bottom .et_pb_row { justify-content: center !important; text-align: center; }
}
@media (max-width: 560px) {
	.et_pb_section.fdn-hero { padding: 60px 16px 80px; }
	.et_pb_section.fdn-hero-home { padding: 80px 16px 90px; }
	body.fdn-page-events .fdn-event-row { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   Responsive header
   - Desktop (>980px): full menu + Join Us button (default)
   - Tablet (561-980px): hamburger + Join Us, aligned with logo
   - Mobile (<=560px): hamburger only, Join Us hidden
   ============================================================ */
@media (max-width: 980px) {
	/* Keep logo and right group on the same row, vertically centered */
	.et_pb_section_1_tb_header .et_pb_row { flex-wrap: nowrap !important; align-items: center !important; }
	.et_pb_section_1_tb_header .et_pb_column { width: auto !important; max-width: none !important; margin: 0 !important; }
	.et_pb_section_1_tb_header .et_pb_column:first-child { flex: 0 1 auto; min-width: 0; }
	.et_pb_section_1_tb_header .et_pb_column:last-child {
		flex: 1 1 auto;
		justify-content: flex-end !important;
		align-items: center !important;
		gap: 14px;
	}
	/* Menu module: show only the hamburger icon, hide the desktop nav */
	.et_pb_section_1_tb_header .et_pb_menu .et_pb_menu__menu,
	.et_pb_section_1_tb_header .et_pb_menu .et-menu-nav { display: none !important; }
	.et_pb_section_1_tb_header .et_pb_menu .et_mobile_nav_menu,
	.et_pb_section_1_tb_header .et_pb_menu .mobile_nav { display: block !important; }
	.et_pb_section_1_tb_header .et_pb_menu .mobile_menu_bar::before { color: var(--fdn-ink) !important; font-size: 28px !important; }
	/* Vertically align both children with the logo */
	.et_pb_section_1_tb_header .et_pb_column:last-child > * { align-self: center !important; }
	.et_pb_section_1_tb_header .et_pb_menu_inner_container { display: flex !important; align-items: center !important; }

	/* Mobile dropdown panel — Divi anchors .et_mobile_menu (position:absolute)
	   to .et_pb_menu_inner_container, which is only ~410px wide (sized to the
	   hamburger). That makes the dropdown a cramped, text-clipped box pinned
	   to the right. Fix: neutralize the whole positioning-context chain
	   (inner container -> menu module -> column -> row) so the panel anchors
	   to the full-width header section and spans the viewport directly below
	   the header. The section is already position:relative + overflow:visible. */
	.et_pb_section_1_tb_header .et_pb_row,
	.et_pb_section_1_tb_header .et_pb_column,
	.et_pb_section_1_tb_header .et_pb_menu,
	.et_pb_section_1_tb_header .et_pb_menu_inner_container { position: static !important; }
	.et_pb_section_1_tb_header .et_mobile_nav_menu,
	.et_pb_section_1_tb_header .mobile_nav { overflow: visible !important; }
	.et_pb_section_1_tb_header .et_mobile_menu {
		position: absolute !important;
		top: 100% !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		box-sizing: border-box !important;
		margin: 0 !important;
		background: #fff !important;
		border-top: 3px solid var(--fdn-accent) !important;
		box-shadow: 0 10px 24px rgba(10,37,64,0.14) !important;
		padding: 6px 0 !important;
		z-index: 999 !important;
	}
	/* Full-width, comfortably tappable rows; no clipped labels */
	.et_pb_section_1_tb_header .et_mobile_menu li,
	.et_pb_section_1_tb_header .et_mobile_menu li a {
		width: 100% !important;
		float: none !important;
		white-space: normal !important;
	}
	.et_pb_section_1_tb_header .et_mobile_menu li a {
		display: block !important;
		padding: 14px 24px !important;
		font-family: var(--fdn-sans) !important;
		font-size: 15px !important;
		color: var(--fdn-ink) !important;
		border: 0 !important;
		border-bottom: 1px solid var(--fdn-line) !important;
	}
	.et_pb_section_1_tb_header .et_mobile_menu li:last-child a { border-bottom: 0 !important; }
	.et_pb_section_1_tb_header .et_mobile_menu li a:hover { color: var(--fdn-accent) !important; }
	/* Sub-menu items: indent slightly so hierarchy stays legible */
	.et_pb_section_1_tb_header .et_mobile_menu li li a { padding-left: 40px !important; }
}

@media (max-width: 560px) {
	/* Mobile: hide JOIN US button — only hamburger remains */
	.et_pb_section_1_tb_header .et_pb_button_module_wrapper { display: none !important; }
	.et_pb_section_1_tb_header .et_pb_column:first-child .fdn-logo .tag { display: none; } /* tighten logo on very narrow screens */
}
