/*
Theme Name: FCA
Theme URI:    https://forgottenchildrenafrica.com
Description:  Divi 5 child theme for The Forgotten Children of Africa.
Author:       Wildcat SEO
Author URI:   https://wildcatseo.com
Template:     Divi
Version:      1.1.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Tags:         child-theme
Text Domain:  fca
*/

/* ------------------------------------------------------------------
   Custom styles for FCA go below this line.
   The Divi 5 parent stylesheet is loaded first via functions.php.
------------------------------------------------------------------ */


/* ==================================================================
   TYPOGRAPHY SYSTEM
   Georgia display / Arial text. Fluid heading scale.

   Specificity note: heading rules are scoped to #et-boc (Divi's
   builder wrapper) so they outrank Divi's per-module generated CSS
   (.et_pb_heading_0 .et_pb_module_heading{...}) without !important.
   Body rules deliberately stay at class specificity so that
   intentional inline styles in page content still win.
================================================================== */

:root {
	/* Families */
	--fca-serif: Georgia, "Times New Roman", serif;
	--fca-sans: Arial, Helvetica, sans-serif;

	/* Display scale — fluid, floors at tablet, caps at wide desktop.
	   XL: 48px @768  ·  56.4 @1200  ·  67.7 @1440  ·  80 @1702+
	   L:  36px @768  ·  48   @1200  ·  57.6 @1440  ·  69.6 @1740+
	   M:  36.8px@768 ·  45.6 @1200  ·  54.7 @1440  ·  64 @1684+       */
	--fca-display-xl: clamp(48px, 4.7vw, 80px);
	--fca-display-l: clamp(36px, 4vw, 69.6px);
	--fca-display-m: clamp(36.8px, 3.8vw, 64px);

	/* Fixed headings */
	--fca-heading-s: 27.2px;
	--fca-heading-xs: 26.4px;

	/* Text scale */
	--fca-lead: 19.2px;
	--fca-lead-mobile: 16px;
	--fca-supporting: 17.3px;
	--fca-body: 16px;
	--fca-nav: 13.1px;
	--fca-cta: 12.2px;
	--fca-eyebrow: 11.7px;
	--fca-eyebrow-lg: 17.3px;
	--fca-card-number: 12px;
	--fca-caption: 12.5px;
	--fca-legal: 12.8px;
	--fca-footer-label: 11.5px;
	--fca-footer-detail: 12.5px;

	/* Line heights */
	--fca-lh-display: 1.08;
	--fca-lh-lead: 1.75;
	--fca-lh-body: 1.65;

	/* Tracking */
	--fca-ls-xl: -0.045em;
	--fca-ls-l: -0.035em;
	--fca-ls-cta: 0.08em;
	--fca-ls-eyebrow: 0.18em;
	--fca-ls-footer-label: 0.12em;
}


/* --- Base families ------------------------------------------------ */

html body,
html body .et_pb_module,
html body input,
html body select,
html body textarea,
html body button {
	font-family: var(--fca-sans);
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body .et_pb_module_heading {
	font-family: var(--fca-serif);
	font-weight: 400;
}


/* --- Display headings --------------------------------------------- */

#et-boc h1,
#et-boc h1.et_pb_module_heading,
#et-boc .fca-display-xl {
	font-family: var(--fca-serif);
	font-size: var(--fca-display-xl);
	font-weight: 400;
	line-height: var(--fca-lh-display);
	letter-spacing: var(--fca-ls-xl);
}

/* Display L is deliberately scoped to heading MODULES, not every h2. A
   long-form page (Privacy Policy, Financial Information) puts its h2s inside
   text modules as prose, and a 69.6px prose subhead would be absurd. Those get
   the prose scale further down instead. */
#et-boc h2.et_pb_module_heading,
#et-boc .fca-display-l {
	font-family: var(--fca-serif);
	font-size: var(--fca-display-l);
	font-weight: 400;
	line-height: var(--fca-lh-display);
	letter-spacing: var(--fca-ls-l);
}

/* Prose subheads inside text modules. */
#et-boc .et_pb_text_inner h2 {
	font-family: var(--fca-serif);
	font-size: 32px;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

/* Alternate / feature section heading — opt in per module. */
#et-boc .fca-display-m,
#et-boc .fca-display-m h2,
#et-boc .fca-display-m .et_pb_module_heading {
	font-size: var(--fca-display-m);
	letter-spacing: var(--fca-ls-l);
}

/* Card and blurb headings. */
#et-boc h3,
#et-boc h3.et_pb_module_heading,
#et-boc .et_pb_blurb_container h3,
#et-boc .et_pb_team_member h3 {
	font-family: var(--fca-serif);
	font-size: var(--fca-heading-s);
	font-weight: 400;
	line-height: var(--fca-lh-display);
	letter-spacing: normal;
}

#et-boc .fca-card-heading,
#et-boc .fca-card-heading h3 {
	font-size: var(--fca-heading-xs);
}

#et-boc h4,
#et-boc h4.et_pb_module_heading {
	font-family: var(--fca-serif);
	font-size: var(--fca-heading-xs);
	font-weight: 400;
	line-height: var(--fca-lh-display);
	letter-spacing: normal;
}


/* --- Text ---------------------------------------------------------- */

#et-boc .et_pb_text_inner,
#et-boc .et_pb_text_inner p,
#et-boc .et_pb_blurb_description,
#et-boc .et_pb_blurb_description p {
	font-family: var(--fca-sans);
	font-size: var(--fca-body);
	font-weight: 400;
	line-height: var(--fca-lh-body);
}

#et-boc .fca-lead,
#et-boc .fca-lead p {
	font-size: var(--fca-lead);
	line-height: var(--fca-lh-lead);
}

#et-boc .fca-supporting,
#et-boc .fca-supporting p {
	font-size: var(--fca-supporting);
	line-height: var(--fca-lh-body);
}

/* The one body-copy breakpoint change: the hero lead drops on mobile. */
@media (max-width: 767px) {
	#et-boc .fca-lead,
	#et-boc .fca-lead p {
		font-size: var(--fca-lead-mobile);
		line-height: 1.7;
	}
}


/* --- Eyebrow / section labels -------------------------------------- */

#et-boc .fca-eyebrow,
#et-boc .fca-eyebrow p {
	font-family: var(--fca-sans);
	font-size: var(--fca-eyebrow);
	font-weight: 800;
	line-height: var(--fca-lh-body);
	letter-spacing: var(--fca-ls-eyebrow);
	text-transform: uppercase;
}

/* "Your Impact" and peers — same tracking ratio, larger. */
#et-boc .fca-eyebrow-lg,
#et-boc .fca-eyebrow-lg p {
	font-family: var(--fca-sans);
	font-size: var(--fca-eyebrow-lg);
	font-weight: 800;
	line-height: var(--fca-lh-body);
	letter-spacing: var(--fca-ls-eyebrow);
	text-transform: uppercase;
}


/* --- Navigation ---------------------------------------------------- */

#et-boc .et_pb_menu .et-menu > li > a,
#et-boc .et_pb_menu nav > ul > li > a,
#et-boc .et-menu li a {
	font-family: var(--fca-sans);
	font-size: var(--fca-nav);
	font-weight: 800;
	line-height: var(--fca-lh-body);
	letter-spacing: normal;
}


/* --- Buttons and CTAs ---------------------------------------------- */

#et-boc .et_pb_button,
#et-boc a.et_pb_button,
#et-boc .et_pb_contact_submit,
#et-boc .fca-cta {
	font-family: var(--fca-sans);
	font-size: var(--fca-cta);
	font-weight: 900;
	line-height: var(--fca-lh-body);
	letter-spacing: var(--fca-ls-cta);
	text-transform: uppercase;
}

/* Header Donate button runs marginally tighter. */
#et-boc .et_pb_section--with-menu .et_pb_button,
#et-boc .et-l--header .et_pb_button {
	letter-spacing: 0.075em;
}


/* --- Forms --------------------------------------------------------- */

#et-boc .et_pb_contact_form_label,
#et-boc .et_pb_contact p label,
#et-boc label {
	font-family: var(--fca-sans);
	font-size: var(--fca-cta);
	font-weight: 800;
	line-height: var(--fca-lh-body);
	letter-spacing: var(--fca-ls-cta);
	text-transform: uppercase;
}


/* --- Small roles --------------------------------------------------- */

#et-boc .fca-card-number,
#et-boc .fca-card-number p {
	font-family: var(--fca-sans);
	font-size: var(--fca-card-number);
	font-weight: 900;
	line-height: var(--fca-lh-body);
	letter-spacing: var(--fca-ls-cta);
}

#et-boc .wp-caption-text,
#et-boc .fca-caption,
#et-boc .fca-caption p {
	font-family: var(--fca-sans);
	font-size: var(--fca-caption);
	font-weight: 900;
	line-height: var(--fca-lh-body);
}

#et-boc .fca-legal,
#et-boc .fca-legal p {
	font-family: var(--fca-sans);
	font-size: var(--fca-legal);
	font-weight: 400;
	line-height: var(--fca-lh-body);
}


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

#et-boc .et-l--footer .fca-footer-label,
#et-boc .et-l--footer .fca-footer-label p {
	font-family: var(--fca-sans);
	font-size: var(--fca-footer-label);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: var(--fca-ls-footer-label);
	text-transform: uppercase;
}

/* Divi 5 tags Theme Builder modules with a _tb_footer suffix rather than
   wrapping them in .et-l--footer, so match on that. */
#et-boc .et-l--footer .et_pb_text_inner a,
#et-boc [class*="_tb_footer"] .et_pb_text_inner a {
	font-size: var(--fca-body);
	font-weight: 700;
	color: #ffffff;
	text-decoration: none;
	border-bottom: 0;
}

#et-boc .et-l--footer .et_pb_text_inner a:hover,
#et-boc [class*="_tb_footer"] .et_pb_text_inner a:hover {
	color: #ffffff;
	text-decoration: none;
	opacity: 0.75;
}

#et-boc .et-l--footer .fca-footer-detail,
#et-boc .et-l--footer .fca-footer-detail p {
	font-size: var(--fca-footer-detail);
	font-weight: 400;
	line-height: var(--fca-lh-body);
}


/* --- Alignment ----------------------------------------------------- */
/* Alignment is intentionally left to Divi's per-module settings so the
   builder stays the source of truth. Centred sections keep using
   et_pb_text_align_center; nothing here overrides that. */


/* ==================================================================
   SOURCE-PARITY LAYER
   Palette + section components ported from the reference build at
   forgotten-children-africa.wildcatseo.chatgpt.site. Applied through
   module_class hooks on Divi modules so the builder stays editable.
================================================================== */

:root {
	--fca-green: #167a3e;
	--fca-forest: #0b4f2c;
	--fca-orange: #f7931e;
	--fca-gold: #ffd51f;
	--fca-leaf: #65b641;
	--fca-ink: #211a17;
	--fca-ivory: #fff8e8;
	--fca-sand: #e9ddc8;
	--fca-mint: #b7e6c4;
	--fca-pale: #dcebe0;
}


/* --- Buttons ------------------------------------------------------- */

#et-boc .et_pb_button,
#et-boc a.et_pb_button {
	transition: transform 0.2s ease, background-color 0.2s ease;
}

#et-boc .et_pb_button:hover,
#et-boc a.et_pb_button:hover {
	transform: translateY(-2px);
}

/* Divi stacks buttons block-level; the reference sets them inline with a gap. */
#et-boc .et_pb_button_module_wrapper:has(.fca-inline-btn) {
	display: inline-block;
	margin-right: 12px;
}


/* --- Hero ---------------------------------------------------------- */

#et-boc .fca-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 760px;
	overflow: hidden;
}

#et-boc .fca-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #07170ff5 0%, #07170fdc 45%, #07170f70 70%, #07170f30 100%);
	pointer-events: none;
}

#et-boc .fca-hero > .et_pb_row {
	position: relative;
	z-index: 2;
}

@media (max-width: 980px) {
	#et-boc .fca-hero {
		min-height: 620px;
	}

	#et-boc .fca-hero::before {
		background: linear-gradient(90deg, #07170ff5 0%, #07170fe0 65%, #07170fa8 100%);
	}
}


/* --- Story: arched image with offset sand block --------------------- */

#et-boc .fca-arch-image,
#et-boc .fca-arch-image .et_pb_image_wrap,
#et-boc .fca-arch-image img {
	display: block;
	width: 100%;
	max-width: 100%;
	border-radius: 220px 220px 24px 24px;
}

#et-boc .fca-arch-image img {
	height: 520px;
	object-fit: cover;
	box-shadow: 22px 22px 0 var(--fca-sand);
}

@media (max-width: 980px) {
	#et-boc .fca-arch-image img {
		height: 430px;
		box-shadow: 14px 14px 0 var(--fca-sand);
	}
}


/* --- Dark photo bands (What We Provide / Your Impact) --------------- */

#et-boc .fca-photo-band {
	position: relative;
	background-attachment: fixed;
}

#et-boc .fca-photo-band::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #07391fed 0%, #0b4f2cdb 100%);
	pointer-events: none;
}

#et-boc .fca-photo-band > .et_pb_row {
	position: relative;
	z-index: 2;
}

#et-boc .fca-photo-band--warm::before {
	background: linear-gradient(90deg, #0b4f2cf7 0%, #0b4f2ce0 100%);
}

/* Final CTA sits over a bright classroom shot — needs a deeper wash. */
#et-boc .fca-final-cta::before {
	background: linear-gradient(90deg, #0b281df2 0%, #0b281dd6 100%);
}


/* --- Newsletter form ------------------------------------------------ */

/* Divi 5 renders contact fields as full-width blocks; lay them out as a
   wrapping flex row so paired fields sit side by side. */
#et-boc .et_pb_contact_form {
	display: flex;
	flex-wrap: wrap;
	column-gap: 20px;
	align-items: flex-start;
}

#et-boc .et_pb_contact_form > * {
	width: 100%;
}

#et-boc .et_pb_contact_form .et_pb_contact_field {
	width: 100%;
	box-sizing: border-box;
}

#et-boc .et_pb_contact_form .et_pb_contact_field_half {
	width: calc(50% - 10px);
}

/* Paver form: city · state · zip · country share one row. */
#et-boc #paver-form .et_pb_contact_field[data-id="city"],
#et-boc #paver-form .et_pb_contact_field[data-id="state"],
#et-boc #paver-form .et_pb_contact_field[data-id="zip"],
#et-boc #paver-form .et_pb_contact_field[data-id="country"] {
	width: calc(25% - 15px);
}

@media (max-width: 767px) {
	#et-boc .et_pb_contact_form .et_pb_contact_field,
	#et-boc .et_pb_contact_form .et_pb_contact_field_half,
	#et-boc #paver-form .et_pb_contact_field[data-id="city"],
	#et-boc #paver-form .et_pb_contact_field[data-id="state"],
	#et-boc #paver-form .et_pb_contact_field[data-id="zip"],
	#et-boc #paver-form .et_pb_contact_field[data-id="country"] {
		width: 100%;
	}
}

#et-boc .et_pb_contact_form .et_pb_contact_field .et_pb_contact_field_options_title,
#et-boc .et_pb_contact_form .et_pb_contact_field > label {
	display: block;
	margin-bottom: 7px;
}

#et-boc .et_pb_contact_form input[type=text],
#et-boc .et_pb_contact_form input[type=email],
#et-boc .et_pb_contact_form textarea {
	background: #fff;
	border: 1px solid #b9aa98;
	border-radius: 8px;
	padding: 13px;
}

@media (max-width: 980px) {
	#et-boc .fca-photo-band {
		background-attachment: scroll;
	}
}


/* --- Cards --------------------------------------------------------- */

#et-boc .fca-provide-card {
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.19);
	border-radius: 18px;
	padding: 32px;
	height: 100%;
}

#et-boc .fca-provide-card .fca-num {
	color: var(--fca-gold);
	letter-spacing: 0.12em;
	font-size: 0.75rem;
	font-weight: 900;
	margin: 0 0 24px;
}

#et-boc .fca-way-card {
	background: #fff;
	border-radius: 16px;
	border-bottom: 5px solid var(--fca-orange);
	padding: 30px;
	height: 100%;
}

#et-boc .fca-way-card a {
	color: var(--fca-green);
	border-bottom: 2px solid var(--fca-sand);
	padding-bottom: 5px;
	font-weight: 800;
	display: inline-block;
}


/* --- Support checklist pills --------------------------------------- */

#et-boc .fca-support-pill {
	background: var(--fca-ivory);
	border-left: 4px solid var(--fca-leaf);
	padding: 16px;
}

#et-boc .fca-support-pill .et_pb_text_inner {
	font-weight: 800;
}


/* --- Gallery: caption pill over the image --------------------------- */

#et-boc .fca-shot {
	position: relative;
}

#et-boc .fca-shot .et_pb_image {
	margin-bottom: 0;
	display: block;
	width: 100%;
	max-width: 100%;
}

#et-boc .fca-shot .et_pb_image_wrap {
	display: block;
	width: 100%;
}

#et-boc .fca-shot img {
	width: 100%;
	height: 255px;
	object-fit: cover;
	border-radius: 14px;
	transition: transform 0.35s ease;
}

#et-boc .fca-shot--tall img {
	height: 524px;
}

#et-boc .fca-shot:hover img {
	transform: scale(1.04);
}

#et-boc .fca-shot .fca-shot-cap {
	position: absolute;
	bottom: 14px;
	left: 14px;
	z-index: 3;
	background: #fff;
	border-radius: 999px;
	padding: 8px 12px;
	margin: 0;
}

#et-boc .fca-shot .fca-shot-cap .et_pb_text_inner p {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 900;
	color: var(--fca-ink);
}

@media (max-width: 980px) {
	#et-boc .fca-shot img,
	#et-boc .fca-shot--tall img {
		height: 240px;
	}
}


/* --- Transparency link rows ---------------------------------------- */

#et-boc .fca-link-row .et_pb_text_inner p {
	margin: 0;
	font-weight: 800;
}

#et-boc .fca-link-row .et_pb_text_inner a {
	color: var(--fca-forest);
	font-weight: 800;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
}

#et-boc .fca-link-row .et_pb_text_inner a::after {
	content: "\2192";
	font-size: 1.15rem;
	line-height: 1;
}


/* --- Text-link with arrow (Ways to Help, etc.) ---------------------- */

#et-boc .fca-textlink a {
	color: var(--fca-green);
	border-bottom: 2px solid var(--fca-sand);
	padding-bottom: 5px;
	font-weight: 800;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}


/* --- Eyebrow on dark ------------------------------------------------ */

#et-boc .fca-eyebrow-light,
#et-boc .fca-eyebrow-light p {
	color: var(--fca-mint);
}


/* --- Interior page hero --------------------------------------------- */

#et-boc .fca-page-hero-image,
#et-boc .fca-page-hero-image .et_pb_image_wrap,
#et-boc .fca-page-hero-image img {
	display: block;
	width: 100%;
	max-width: 100%;
	border-radius: 180px 180px 24px 24px;
}

#et-boc .fca-page-hero-image img {
	height: 360px;
	object-fit: cover;
	box-shadow: 18px 18px 0 rgba(101, 182, 65, 0.3);
}

@media (max-width: 980px) {
	#et-boc .fca-page-hero-image img {
		height: 300px;
	}
}


/* --- Program cards (image on top, ivory body) ----------------------- */

#et-boc .fca-program-card {
	background: var(--fca-ivory);
	border-radius: 18px;
	border-bottom: 5px solid var(--fca-green);
	overflow: hidden;
	padding: 0;
}

#et-boc .fca-program-card .et_pb_image,
#et-boc .fca-program-card .et_pb_image .et_pb_image_wrap,
#et-boc .fca-program-card .et_pb_image img {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	border-radius: 0;
}

#et-boc .fca-program-card .et_pb_image img {
	height: 230px;
	object-fit: cover;
}

#et-boc .fca-program-card .et_pb_text {
	padding: 30px 34px 36px;
	margin-bottom: 0;
}

#et-boc .fca-program-card .fca-num {
	color: var(--fca-orange);
	letter-spacing: 0.12em;
	font-size: 0.78rem;
	font-weight: 900;
	margin: 0 0 18px;
}

#et-boc .fca-program-card p + p {
	border-top: 1px solid var(--fca-sand);
	margin-top: 14px;
	padding-top: 14px;
}


/* --- Location cards (campus + map) ---------------------------------- */

#et-boc .fca-loc-card {
	background: #fff;
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 18px 45px rgba(73, 50, 31, 0.09);
}

#et-boc .fca-loc-card .et_pb_image,
#et-boc .fca-loc-card .et_pb_image .et_pb_image_wrap,
#et-boc .fca-loc-card .et_pb_image img {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

#et-boc .fca-loc-card .et_pb_image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

#et-boc .fca-loc-card .et_pb_text {
	border-top: 1px solid var(--fca-sand);
	padding: 22px 24px;
	margin-bottom: 0;
}

#et-boc .fca-loc-card .et_pb_text_inner strong {
	font-family: var(--fca-serif);
	font-size: 1.18rem;
	color: var(--fca-forest);
	display: block;
}

#et-boc .fca-loc-card .et_pb_text_inner small {
	color: #756b63;
	display: block;
	margin-top: 2px;
}


/* --- Split band (warm gradient with round image) -------------------- */

#et-boc .fca-split-band {
	background: linear-gradient(135deg, #fff8e8 0%, #efe4cf 100%);
}

#et-boc .fca-round-image,
#et-boc .fca-round-image .et_pb_image_wrap,
#et-boc .fca-round-image img {
	display: block;
	width: 100%;
	max-width: 100%;
	border-radius: 50% 50% 12px 12px;
}

#et-boc .fca-round-image img {
	height: 460px;
	object-fit: cover;
	box-shadow: 18px 18px 0 #d9c7aa;
}

@media (max-width: 980px) {
	#et-boc .fca-round-image img {
		height: 380px;
		box-shadow: 12px 12px 0 #d9c7aa;
	}
}


/* --- Board list ------------------------------------------------------ */

#et-boc .fca-board-row {
	border-top: 1px solid var(--fca-sand);
	padding-top: 42px !important;
	padding-bottom: 42px !important;
}

#et-boc .fca-board-photo,
#et-boc .fca-board-photo .et_pb_image_wrap,
#et-boc .fca-board-photo img {
	display: block;
	width: 100%;
	max-width: 170px;
}

#et-boc .fca-board-photo img {
	height: 190px;
	object-fit: cover;
	border-radius: 16px 16px 50% 50%;
	box-shadow: 10px 10px 0 var(--fca-ivory);
}

#et-boc .fca-board-copy .fca-num {
	color: var(--fca-orange);
	font-weight: 900;
	margin: 0 0 10px;
}

#et-boc .fca-board-copy .fca-role {
	color: var(--fca-green);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.72rem;
	font-weight: 800;
	margin: 0 0 4px;
}

#et-boc .fca-board-copy h3 {
	margin: 0 0 12px;
}

#et-boc .fca-board-copy p:last-child {
	color: #514943;
	max-width: 950px;
}

#et-boc .fca-past-board {
	background: var(--fca-ivory);
	border-top: 5px solid var(--fca-green);
	border-radius: 18px;
	padding: 46px !important;
}

#et-boc .fca-past-board-list .et_pb_text_inner p {
	border-bottom: 1px solid var(--fca-sand);
	padding: 13px 0;
	margin: 0;
	font-family: var(--fca-serif);
	font-size: 1.08rem;
	color: #514943;
}

#et-boc .fca-memoriam-heading {
	background: var(--fca-forest);
	border-radius: 18px;
	padding: 45px !important;
}

#et-boc .fca-memoriam-heading .fca-eyebrow p {
	color: var(--fca-gold);
}

#et-boc .fca-memoriam-card {
	background: var(--fca-ivory);
	border-radius: 18px;
	border-top: 0 !important;
	padding: 38px !important;
}

#et-boc .fca-memoriam-card .fca-board-photo img {
	box-shadow: 10px 10px 0 var(--fca-sand);
}

/* The legacy block is three Divi rows stacked to read as one card. */
#et-boc .fca-legacy,
#et-boc .fca-legacy-items,
#et-boc .fca-legacy-life {
	background: linear-gradient(145deg, #fff8e8, #f4e7d1);
	border-left: 5px solid var(--fca-orange);
}

#et-boc .fca-legacy {
	border-radius: 18px 18px 0 0;
	padding: 46px 48px 24px !important;
}

#et-boc .fca-legacy-items {
	padding: 0 48px 6px !important;
}

#et-boc .fca-legacy-life {
	border-radius: 0 0 18px 18px;
	padding: 12px 48px 46px !important;
}

#et-boc .fca-legacy-item {
	background: #fff;
	border-radius: 12px;
	padding: 18px 20px;
	box-shadow: 0 6px 18px rgba(107, 66, 24, 0.06);
}

@media (max-width: 980px) {
	#et-boc .fca-legacy {
		padding: 32px 24px 18px !important;
	}

	#et-boc .fca-legacy-items {
		padding: 0 24px 6px !important;
	}

	#et-boc .fca-legacy-life {
		padding: 12px 24px 32px !important;
	}
}

#et-boc .fca-legacy-item .et_pb_text_inner strong {
	color: var(--fca-forest);
	font-family: var(--fca-serif);
	display: block;
}

#et-boc .fca-legacy-item .et_pb_text_inner span {
	color: #70665e;
	font-size: 0.92rem;
}


/* --- Privacy policy --------------------------------------------------- */

#et-boc .fca-policy-intro {
	background: var(--fca-ivory);
	border-bottom: 1px solid var(--fca-sand);
}

#et-boc .fca-policy-nav {
	background: var(--fca-ivory);
	border-radius: 18px;
	padding: 28px !important;
	position: sticky;
	top: 125px;
}

#et-boc .fca-policy-nav .et_pb_text_inner p {
	margin: 0;
}

#et-boc .fca-policy-nav .et_pb_text_inner a {
	border-top: 1px solid var(--fca-sand);
	color: var(--fca-forest);
	padding: 9px 0;
	font-size: 0.88rem;
	font-weight: 800;
	display: block;
}

#et-boc .fca-policy-section {
	border-bottom: 1px solid var(--fca-sand);
	padding-bottom: 42px !important;
	margin-bottom: 42px !important;
	scroll-margin-top: 130px;
}

#et-boc .fca-policy-section:last-of-type {
	border-bottom: 0;
}

#et-boc .fca-policy-section .fca-step-num {
	background: var(--fca-gold);
	width: 42px;
	height: 42px;
	color: var(--fca-forest);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 20px;
	font-size: 0.78rem;
	font-weight: 900;
}

#et-boc .fca-policy-section h2 {
	margin-bottom: 24px;
	font-size: clamp(2.1rem, 3.4vw, 3.35rem);
}

#et-boc .fca-policy-section h3 {
	color: var(--fca-forest);
	margin: 32px 0 10px;
	font-size: 1.45rem;
}

#et-boc .fca-policy-section p,
#et-boc .fca-policy-section li {
	color: #5e5650;
}

#et-boc .fca-policy-section ul {
	padding-left: 22px;
	list-style: disc;
}

#et-boc .fca-policy-section li {
	margin: 9px 0;
}

#et-boc .fca-policy-section a:not(.et_pb_button) {
	color: var(--fca-green);
	text-underline-offset: 4px;
	font-weight: 800;
	text-decoration: underline;
}

#et-boc .fca-policy-identity .et_pb_text_inner {
	border-top: 1px solid var(--fca-sand);
	padding-top: 22px;
	margin-top: 28px;
}

#et-boc .fca-policy-identity strong {
	display: block;
	font-family: var(--fca-serif);
	font-size: 1.25rem;
}

#et-boc .fca-policy-identity span {
	color: #756b64;
	font-size: 0.88rem;
	margin-right: 18px;
}


/* --- Engraved paver --------------------------------------------------- */

#et-boc .fca-paver-layout {
	background: linear-gradient(145deg, #fff8e8 0%, #fff1df 52%, #f7ddc7 100%);
	border-radius: 30px;
	padding: 64px !important;
	position: relative;
	overflow: hidden;
	box-shadow: 0 24px 70px rgba(110, 61, 28, 0.09);
}

#et-boc .fca-paver-visual {
	background: radial-gradient(circle at 50% 35%, #fff7e6, #e9c9a8);
	box-shadow: inset 0 0 0 1px rgba(159, 111, 65, 0.19);
	border-radius: 22px;
	min-height: 420px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px !important;
}

#et-boc .fca-brick .et_pb_text_inner {
	aspect-ratio: 1.75;
	color: #fff3df;
	letter-spacing: 0.08em;
	text-shadow: 0 2px #63351f;
	background: linear-gradient(145deg, #c97a50, #a85032);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	font-family: var(--fca-serif);
	font-size: clamp(1.4rem, 3vw, 2.5rem);
	font-weight: 700;
	box-shadow: inset 0 0 0 10px rgba(83, 36, 21, 0.22), 0 24px 42px rgba(107, 45, 23, 0.24);
	text-align: center;
	line-height: 1.15;
}

#et-boc .fca-brick .et_pb_text_inner p {
	margin: 0;
	font-family: var(--fca-serif);
	font-size: inherit;
	font-weight: 700;
	color: inherit;
}

#et-boc .fca-brick .et_pb_text_inner small {
	margin-top: 12px;
	font-family: var(--fca-sans);
	font-size: 0.75rem;
	display: block;
}

#et-boc .fca-steps {
	background: #fffaf1;
	border: 1px solid #e7c9a9;
	border-radius: 18px;
	padding: 14px 20px !important;
}

#et-boc .fca-step {
	border-right: 1px solid var(--fca-sand);
}

#et-boc .fca-step:last-child {
	border-right: 0;
}

#et-boc .fca-step .et_pb_text_inner {
	padding: 22px 26px;
}

@media (max-width: 980px) {
	#et-boc .fca-step {
		border-right: 0;
		border-bottom: 1px solid var(--fca-sand);
	}

	#et-boc .fca-step:last-child {
		border-bottom: 0;
	}
}

/* Soft gold bloom in the corner of the paver card, as on the reference. */
#et-boc .fca-paver-layout::before {
	content: "";
	position: absolute;
	top: -140px;
	right: -120px;
	width: 380px;
	height: 380px;
	border-radius: 50%;
	background: radial-gradient(circle at 40% 60%, rgba(255, 213, 31, 0.3) 0%, rgba(255, 213, 31, 0.12) 45%, rgba(255, 213, 31, 0) 72%);
	pointer-events: none;
}

#et-boc .fca-paver-layout > .et_pb_column {
	position: relative;
	z-index: 1;
}

#et-boc .fca-paver-form-card .et_pb_contact_submit {
	margin-top: 10px;
}


/* --- Photo band with an overlaid line of copy ------------------------ */

#et-boc .fca-photo-quote {
	position: relative;
	border-radius: 18px;
	overflow: hidden;
}

#et-boc .fca-photo-quote .et_pb_image,
#et-boc .fca-photo-quote .et_pb_image .et_pb_image_wrap {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

#et-boc .fca-photo-quote img {
	width: 100%;
	height: 360px;
	object-fit: cover;
	display: block;
}

#et-boc .fca-photo-quote .fca-photo-quote-cap {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 60px 24px 20px;
	background: linear-gradient(rgba(7, 23, 15, 0) 0%, rgba(7, 23, 15, 0.78) 100%);
}

#et-boc .fca-photo-quote .fca-photo-quote-cap .et_pb_text_inner p {
	margin: 0;
	color: #ffffff;
	font-weight: 800;
}


/* --- Shared form card (contact + newsletter) ------------------------- */

#et-boc .fca-form-card {
	background: #fffaf2;
	border: 1px solid #e3c39f;
	border-radius: 24px;
	padding: 42px !important;
	box-shadow: 0 18px 45px rgba(122, 66, 20, 0.08);
}

@media (max-width: 980px) {
	#et-boc .fca-form-card {
		padding: 28px 22px !important;
	}
}

#et-boc .fca-step .et_pb_text_inner b {
	color: var(--fca-forest);
	font-family: var(--fca-serif);
	font-size: 1.25rem;
	display: block;
	margin-bottom: 4px;
	font-weight: 700;
}

#et-boc .fca-step .et_pb_text_inner span {
	color: #665d56;
	line-height: 1.55;
}

#et-boc .fca-paver-form-card {
	background: #fffaf2;
	border: 1px solid #e3c39f;
	border-radius: 24px;
	padding: 54px !important;
	box-shadow: 0 18px 45px rgba(122, 66, 20, 0.09);
}

#et-boc .fca-paver-notes {
	background: #fff3dc;
	border-radius: 16px;
	padding: 26px !important;
}

#et-boc .fca-paver-notes ul {
	margin: 8px 0 0;
	padding-left: 22px;
	list-style: disc;
}

@media (max-width: 980px) {
	#et-boc .fca-paver-layout {
		padding: 40px !important;
	}

	#et-boc .fca-paver-form-card {
		padding: 34px 24px !important;
	}
}


/* --- Financial information ------------------------------------------- */

#et-boc .fca-identity-card {
	background: #fff;
	border-radius: 22px;
	padding: 38px !important;
	box-shadow: 18px 18px 0 rgba(101, 182, 65, 0.33);
}

#et-boc .fca-identity-card .fca-mark {
	background: var(--fca-gold);
	color: var(--fca-forest);
	border-radius: 999px;
	display: inline-block;
	padding: 10px 16px;
	font: 800 0.85rem var(--fca-sans);
	margin: 0 0 18px;
}

#et-boc .fca-identity-card dl {
	margin: 0;
}

#et-boc .fca-identity-card dl div {
	border-top: 1px solid var(--fca-sand);
	display: flex;
	justify-content: space-between;
	gap: 18px;
	padding: 11px 0;
}

#et-boc .fca-identity-card dt {
	color: #736960;
}

#et-boc .fca-identity-card dd {
	text-align: right;
	margin: 0;
	font-weight: 800;
}

#et-boc .fca-fin-table table {
	width: 100%;
	border-collapse: collapse;
	min-width: 720px;
}

#et-boc .fca-fin-table {
	border: 1px solid var(--fca-sand);
	border-radius: 18px;
	overflow-x: auto;
}

#et-boc .fca-fin-table th,
#et-boc .fca-fin-table td {
	text-align: right;
	border-bottom: 1px solid var(--fca-sand);
	padding: 19px 22px;
}

#et-boc .fca-fin-table thead {
	background: var(--fca-forest);
	color: #fff;
}

#et-boc .fca-fin-table thead th {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font: 800 0.72rem var(--fca-sans);
	color: #fff;
}

#et-boc .fca-fin-table th:first-child,
#et-boc .fca-fin-table td:first-child {
	text-align: left;
}

#et-boc .fca-fin-table tbody th {
	color: var(--fca-forest);
	font: 700 1.2rem var(--fca-serif);
}

#et-boc .fca-fin-table tbody tr:nth-child(2n) {
	background: var(--fca-ivory);
}

#et-boc .fca-fin-table .positive {
	color: var(--fca-green);
	font-weight: 800;
}

#et-boc .fca-fin-table .negative {
	color: #a33f2a;
	font-weight: 800;
}

#et-boc .fca-metric {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 18px;
	padding: 34px !important;
	height: 100%;
}

#et-boc .fca-metric .fca-pct {
	color: var(--fca-gold);
	letter-spacing: 0.08em;
	font-size: 0.85rem;
	font-weight: 900;
	margin: 0;
}

#et-boc .fca-metric .fca-bar {
	background: rgba(255, 255, 255, 0.15);
	border-radius: 999px;
	height: 7px;
	margin-top: 28px;
	overflow: hidden;
	display: block;
}

#et-boc .fca-metric .fca-bar i {
	background: var(--fca-gold);
	border-radius: 999px;
	height: 7px;
	display: block;
}

#et-boc .fca-grant-note {
	background: #fff;
	border-radius: 14px;
	padding: 24px 28px !important;
}

#et-boc .fca-filing-row .et_pb_text_inner p {
	margin: 0;
}

#et-boc .fca-filing-row {
	border-top: 1px solid #ccbda8;
	padding-top: 24px !important;
	padding-bottom: 24px !important;
}

#et-boc .fca-filing-year .et_pb_text_inner p {
	color: var(--fca-orange);
	font: 700 2rem var(--fca-serif);
	margin: 0;
	line-height: 1;
}

#et-boc .fca-context-number .et_pb_text_inner p {
	color: var(--fca-forest);
	font: 700 clamp(2.6rem, 5vw, 5rem) var(--fca-serif);
	margin: 0;
	line-height: 1.05;
}

#et-boc .fca-context-body {
	border-left: 5px solid var(--fca-orange);
	padding-left: 38px !important;
}

#et-boc .fca-source-link .et_pb_text_inner p {
	margin: 0;
}

#et-boc .fca-source-link a {
	border: 1px solid var(--fca-sand);
	color: var(--fca-green);
	background: #fff;
	border-radius: 999px;
	padding: 12px 16px;
	font-size: 0.82rem;
	font-weight: 800;
	display: inline-block;
}


/* --- Photo gallery grid ---------------------------------------------- */

#et-boc .fca-photo .et_pb_image,
#et-boc .fca-photo .et_pb_image .et_pb_image_wrap,
#et-boc .fca-photo .et_pb_image a,
#et-boc .fca-photo-feature .et_pb_image,
#et-boc .fca-photo-feature .et_pb_image .et_pb_image_wrap,
#et-boc .fca-photo-feature .et_pb_image a {
	display: block;
	width: 100%;
	max-width: 100%;
}

#et-boc .fca-photo img {
	width: 100%;
	height: 300px;
	object-fit: cover;
	border-radius: 14px;
	transition: transform 0.4s ease;
}

#et-boc .fca-photo-feature img {
	width: 100%;
	height: 615px;
	object-fit: cover;
	border-radius: 14px;
	transition: transform 0.4s ease;
}

#et-boc .fca-photo:hover img,
#et-boc .fca-photo-feature:hover img {
	transform: scale(1.025);
}

#et-boc .fca-photo-num .et_pb_text_inner p {
	color: var(--fca-orange);
	font-family: var(--fca-serif);
	font-size: 2rem;
	font-weight: 700;
	margin: 0;
	line-height: 1;
}

#et-boc .fca-gallery-final {
	background: var(--fca-forest);
	border-radius: 20px;
	padding: 46px !important;
}

#et-boc .fca-gallery-final .et_pb_text_inner p {
	font-family: var(--fca-serif);
	font-weight: 700;
	font-size: clamp(1.4rem, 2.5vw, 2.2rem);
	line-height: 1.2;
	margin: 0;
}

@media (max-width: 980px) {
	#et-boc .fca-photo-feature img {
		height: 380px;
	}

	#et-boc .fca-photo img {
		height: 260px;
	}
}


/* --- Donation cards -------------------------------------------------- */

#et-boc .fca-way-card .fca-amount {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 900;
	color: var(--fca-green);
	margin: 0 0 14px;
	font-size: 0.75rem;
}

#et-boc .fca-way-card h3 {
	margin-bottom: 12px;
}


/* --- Partner profiles ------------------------------------------------ */

#et-boc .fca-partner-row {
	border-bottom: 1px solid #d9c9b3;
	padding-top: 44px !important;
	padding-bottom: 44px !important;
}

#et-boc .fca-partner-logo {
	background: var(--fca-ivory);
	border-radius: 14px;
	height: 170px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

#et-boc .fca-partner-logo .et_pb_image,
#et-boc .fca-partner-logo .et_pb_image_wrap {
	display: block;
	width: 100%;
	margin: 0;
}

/* Partner logos are PNGs on white; multiply drops that white into the
   ivory tile so the logo reads as printed on the card. */
#et-boc .fca-partner-logo img {
	width: 100%;
	height: 170px;
	object-fit: contain;
	transform: scale(1.4);
	mix-blend-mode: multiply;
}

#et-boc .fca-partner-copy .fca-num {
	color: var(--fca-orange);
	font-size: 1rem;
	font-weight: 900;
	margin: 0 0 10px;
}

#et-boc .fca-partner-copy h2 {
	margin-bottom: 16px !important;
}

#et-boc .fca-partner-site .et_pb_text_inner p {
	margin: 18px 0 0;
	color: var(--fca-green);
}

#et-boc .fca-partner-site b {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.78rem;
	margin-right: 8px;
}

#et-boc .fca-partner-site a {
	color: var(--fca-green);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 4px;
}

#et-boc .fca-partner-site em {
	color: #8a672b;
	font-size: 0.9rem;
}

#et-boc .fca-partner-callout {
	background: linear-gradient(120deg, var(--fca-forest), #146b3d);
	border-radius: 22px;
	padding: 48px !important;
}


/* --- Header --------------------------------------------------------- */

#et-boc .et-l--header .et_pb_section {
	background: rgba(255, 248, 232, 0.96);
	border-bottom: 1px solid rgba(33, 26, 23, 0.1);
}

#et-boc .et-l--header .et_pb_menu__menu > nav > ul > li > a:hover {
	color: var(--fca-green);
}

/* Logo · nav · donate on one baseline, nav pushed right. */
#et-boc .fca-header-row {
	display: flex;
	align-items: center;
}

#et-boc .fca-header-row > .et_pb_column {
	display: flex;
	align-items: center;
	margin-bottom: 0;
}

#et-boc .fca-header-row > .et_pb_column .et_pb_module {
	margin-bottom: 0;
	width: 100%;
}

#et-boc .fca-nav .et_pb_menu__menu > nav > ul {
	justify-content: flex-end;
	gap: 26px;
}

#et-boc .fca-nav .et_pb_menu__menu > nav > ul > li {
	padding-right: 0;
}

#et-boc .fca-nav .et_pb_menu__wrap {
	justify-content: flex-end;
}

#et-boc .fca-logo img {
	width: 100%;
}

/* Mobile: logo, then the hamburger beside it, with Donate pushed right. */
@media (max-width: 980px) {
	#et-boc .fca-header-row {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		position: relative;
	}

	/* Divi forces columns to 100% below 980px — override it so the three
	   header columns can share one line. */
	#et-boc .fca-header-row > .et_pb_column {
		width: auto !important;
		margin-bottom: 0 !important;
	}

	/* Logo — needs a definite width once the column is auto-sized, or the
	   percentage-width image collapses to zero. */
	#et-boc .fca-header-row > .et_pb_column:nth-child(1) {
		flex: 0 0 auto;
		order: 1;
		width: 175px !important;
		max-width: 175px !important;
	}

	#et-boc .fca-logo,
	#et-boc .fca-logo .et_pb_image_wrap,
	#et-boc .fca-logo img {
		width: 175px !important;
		max-width: 175px !important;
		height: auto;
	}

	/* Hamburger sits at the far right, after the Donate pill. */
	#et-boc .fca-header-row > .et_pb_column:nth-child(2) {
		flex: 0 0 auto;
		order: 3;
		margin-left: 14px !important;
	}

	/* Donate pill sits between the logo and the hamburger. */
	#et-boc .fca-header-row > .et_pb_column:nth-child(3) {
		flex: 0 0 auto;
		order: 2;
		margin-left: auto !important;
	}

	#et-boc .fca-nav .et_pb_menu__wrap,
	#et-boc .fca-nav .et_pb_menu__menu {
		justify-content: flex-start;
	}

	#et-boc .fca-nav .et_mobile_nav_menu {
		margin: 0;
		float: none;
	}

	/* The dropdown spans the whole header, not just the narrow menu column.
	   Neutralise Divi's positioned wrappers so it anchors to the row. */
	#et-boc .fca-header-row > .et_pb_column:nth-child(2),
	#et-boc .fca-nav,
	#et-boc .fca-nav .et_pb_module_inner,
	#et-boc .fca-nav .et_pb_menu_inner_container,
	#et-boc .fca-nav .et_pb_menu__wrap,
	#et-boc .fca-nav .et_pb_menu__menu,
	#et-boc .fca-nav .et_mobile_nav_menu {
		position: static !important;
	}

	#et-boc .fca-nav .et_mobile_menu {
		position: absolute !important;
		left: 0 !important;
		right: 0 !important;
		width: auto !important;
		top: 100% !important;
		margin-top: 12px;
	}
}

@media (max-width: 620px) {
	#et-boc .fca-header-row > .et_pb_column:nth-child(1),
	#et-boc .fca-logo,
	#et-boc .fca-logo .et_pb_image_wrap,
	#et-boc .fca-logo img {
		width: 145px !important;
		max-width: 145px !important;
	}

	#et-boc .fca-header-donate .et_pb_button {
		padding: 10px 16px !important;
		font-size: 11px;
	}
}


/* --- Footer bottom bar on mobile ------------------------------------ */
/* Tagline drops to its own line; both lines and the credit line centre. */

@media (max-width: 980px) {
	#et-boc .fca-footer-copy .et_pb_text_inner,
	#et-boc .fca-footer-copy .et_pb_text_inner p,
	#et-boc .fca-footer-credit .et_pb_text_inner,
	#et-boc .fca-footer-credit .et_pb_text_inner p {
		text-align: center !important;
	}

	#et-boc .fca-footer-copy .fca-sep {
		display: none;
	}

	#et-boc .fca-footer-copy .fca-tagline {
		display: block;
		margin-top: 4px;
	}

	#et-boc .fca-footer-credit {
		margin-top: 10px;
	}

	/* Mobile footer keeps the brand block and The Organization only —
	   Explore and Take Action duplicate the mobile menu. */
	#et-boc .fca-footer-cols > .et_pb_column:nth-child(2),
	#et-boc .fca-footer-cols > .et_pb_column:nth-child(3) {
		display: none !important;
	}
}


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

#et-boc .et-l--footer .et_pb_section {
	background: var(--fca-ink);
}
