/*
 * Children's House: Universal Footer.
 *
 * Tokens below reuse the exact colour values already established for
 * the homepage redesign (see homepage-redesign.css) — no new colours
 * are introduced. Declared locally (not relying on that file's
 * variables) because this footer loads on every front-end page,
 * including ones that never enqueue homepage-redesign.css.
 */
#chc-universal-footer {
	--uf-paper: #FAF6F0;
	--uf-paper-deep: #EAE1D5;
	--uf-rule-light: #D5CBBC;
	--uf-rule-light-2: #C8BDAC;
	--uf-ink: #2B2724;
	--uf-ink-deep: #231F1C;
	--uf-rule-dark: #453F39;
	--uf-rule-dark-2: #3D3833;
	--uf-on-ink: #E7E2DA;
	--uf-on-ink-muted: #A29B90;
	--uf-on-ink-muted-2: #8C857B;
	--uf-green: #3F8A3C;
	--uf-green-light: #8FBE8C;
	--uf-red: #C3261F;
	--uf-red-text: #A81F19;

	font-family: 'Poppins', sans-serif;
	-webkit-font-smoothing: antialiased;
}

#chc-universal-footer a {
	text-decoration: none;
}

#chc-universal-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---------- Band 1 — organisation + newsletter ---------- */

#chc-universal-footer .chc-uf-band1 {
	background: var(--uf-paper-deep);
	padding: 44px 56px;
	display: grid;
	grid-template-columns: 1fr 1px 1.1fr;
	gap: 52px;
	align-items: start;
}

#chc-universal-footer .chc-uf-org {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

#chc-universal-footer .chc-uf-logo {
	width: 150px;
	height: auto;
	display: block;
}

#chc-universal-footer .chc-uf-statement {
	font-size: 16.5px;
	line-height: 1.55;
	color: #4A443A;
	max-width: 390px;
}

#chc-universal-footer .chc-uf-org-link {
	font-size: 15px;
	font-weight: 500;
	color: #2B6329;
	border-bottom: 1px solid #B9CDB7;
	padding-bottom: 2px;
	align-self: flex-start;
}

#chc-universal-footer .chc-uf-rule-vertical {
	background: var(--uf-rule-light);
	align-self: stretch;
}

#chc-universal-footer .chc-uf-org-divider {
	display: none;
}

#chc-universal-footer .chc-uf-newsletter {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

#chc-universal-footer .chc-uf-newsletter__intro {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

#chc-universal-footer .chc-uf-newsletter__heading {
	font-size: 22px;
	font-weight: 600;
	color: var(--uf-ink);
	letter-spacing: -0.01em;
}

#chc-universal-footer .chc-uf-newsletter__desc {
	font-size: 15px;
	line-height: 1.55;
	color: #5C5648;
	max-width: 520px;
}

#chc-universal-footer .chc-uf-newsletter__fineprint {
	font-size: 13px;
	color: #7A7365;
}

/*
 * The subscribe form itself is rendered by Elementor Pro Forms
 * (template 94166) via shortcode, not custom markup — restyled to
 * the token values using its own stable class names rather than
 * rebuilt, so submissions keep working across Elementor releases.
 *
 * Template 94166 also bundles a "Subscribe.png" image widget, a
 * stray "to our newsletter" / "Subscribe" heading pair, AND a second,
 * unrelated "New Form" (Name/Email/Message) — exactly the doubled-form
 * problem the design brief documents. All of it lives inside the same
 * template, mixing Elementor's legacy section/column layout (image +
 * heading + the real form) with its newer flexbox "e-con" layout (the
 * unrelated New Form) — hidden here by widget type and by the form's
 * own `name` attribute, rather than by editing the shared template,
 * so this stays reversible from the footer's own CSS without
 * touching production Elementor content.
 */
#chc-universal-footer .chc-uf-newsletter__form .elementor-widget-image,
#chc-universal-footer .chc-uf-newsletter__form .elementor-widget-heading,
#chc-universal-footer .chc-uf-newsletter__form .elementor-widget-animated-headline {
	display: none;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-section > .elementor-container {
	display: block;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-top-column:not(:has(form)) {
	display: none;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-top-column {
	width: 100% !important;
}

#chc-universal-footer .chc-uf-newsletter__form .e-con:has(form[name="New Form"]) {
	display: none;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-form-fields-wrapper {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: 10px;
	align-items: flex-start;
	margin: 0;
	width: auto;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-field-group {
	flex: 1 1 200px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-field-type-submit,
#chc-universal-footer .chc-uf-newsletter__form .e-form__buttons {
	flex: 0 0 auto;
	margin: 0;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-field-label {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6B6558;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-field,
#chc-universal-footer .chc-uf-newsletter__form input[type="text"],
#chc-universal-footer .chc-uf-newsletter__form input[type="email"] {
	font-family: 'Poppins', sans-serif;
	font-size: 15px;
	color: var(--uf-ink);
	height: 48px;
	width: 100%;
	padding: 0 14px;
	background: var(--uf-paper);
	border: 1px solid var(--uf-rule-light-2);
	border-radius: 9px;
	outline: none;
	box-sizing: border-box;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-field:focus {
	border-color: var(--uf-green);
	box-shadow: 0 0 0 3px rgba(63, 138, 60, 0.22);
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-field-group.elementor-error .elementor-field {
	background: #FDF4F3;
	border-color: var(--uf-red);
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-message-invalid,
#chc-universal-footer .chc-uf-newsletter__form .elementor-message-danger {
	font-size: 13px;
	color: var(--uf-red-text);
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-message-success {
	font-size: 15px;
	font-weight: 600;
	color: #2B5E28;
	background: #E4F0E3;
	border: 1px solid #B9CDB7;
	border-radius: 12px;
	padding: 16px 20px;
}

/*
 * !important throughout this rule: Elementor Pro's own global Kit CSS
 * styles .elementor-button with equal-or-higher specificity, so a
 * plain override can silently lose the cascade depending on
 * enqueue/print order. Explicitly forcing every visual property here
 * is deliberate, not a habit — see the newsletter form note above.
 */
#chc-universal-footer .chc-uf-newsletter__form .elementor-button,
#chc-universal-footer .chc-uf-newsletter__form button[type="submit"] {
	font-family: 'Poppins', sans-serif !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	color: #fff !important;
	background: var(--uf-green) !important;
	border: none !important;
	height: 48px !important;
	padding: 0 26px !important;
	border-radius: 9px !important;
	margin-top: 24px;
	cursor: pointer;
	white-space: nowrap;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-button .elementor-button-text,
#chc-universal-footer .chc-uf-newsletter__form .elementor-button .elementor-button-content-wrapper {
	color: inherit !important;
}

#chc-universal-footer .chc-uf-newsletter__form .elementor-button:hover,
#chc-universal-footer .chc-uf-newsletter__form button[type="submit"]:hover {
	background: #357433;
}

/* ---------- Band 2 — navigation ---------- */

#chc-universal-footer .chc-uf-band2 {
	background: var(--uf-ink);
	padding: 52px 56px 40px;
	display: grid;
	grid-template-columns: 1fr 1.15fr 1fr 1.05fr;
	gap: 44px;
}

#chc-universal-footer .chc-uf-eyebrow {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--uf-green-light);
}

#chc-universal-footer .chc-uf-col {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/*
 * border/background: none !important — Hello Elementor's own
 * reset.css targets [type="button"] (default and :focus states) with
 * a visible debug-coloured border/fill. That selector has the same
 * specificity as the plain class selector below (and :focus adds
 * more), and loads after this stylesheet, so it wins the tie without
 * !important. A real focus-visible outline is set explicitly below
 * rather than just suppressed, so keyboard users keep a visible
 * indicator.
 */
#chc-universal-footer .chc-uf-col__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: none !important;
	border: none !important;
	padding: 0;
	margin: 0;
	font: inherit;
	text-align: left;
	cursor: default;
	width: 100%;
	outline: none;
}

#chc-universal-footer .chc-uf-col__toggle:focus-visible {
	outline: 2px solid var(--uf-green-light) !important;
	outline-offset: 2px;
}

#chc-universal-footer .chc-uf-col__icon {
	display: none;
}

#chc-universal-footer .chc-uf-col__panel nav ul {
	display: flex;
	flex-direction: column;
	gap: 11px;
	font-size: 15px;
	line-height: 1.4;
}

#chc-universal-footer .chc-uf-col__panel a {
	color: var(--uf-on-ink);
}

#chc-universal-footer .chc-uf-col--divisions .chc-uf-col__panel ul {
	gap: 13px;
}

#chc-universal-footer .chc-uf-division-link {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

#chc-universal-footer .chc-uf-division-link__name {
	font-size: 15px;
	color: var(--uf-on-ink);
}

#chc-universal-footer .chc-uf-division-link__desc {
	font-size: 13px;
	color: var(--uf-on-ink-muted);
}

#chc-universal-footer .chc-uf-contact ul {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

#chc-universal-footer .chc-uf-contact-link {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

#chc-universal-footer .chc-uf-contact-link__value {
	font-size: 15px;
	color: var(--uf-on-ink);
}

#chc-universal-footer .chc-uf-contact-link__label {
	font-size: 13px;
	color: var(--uf-on-ink-muted);
}

#chc-universal-footer .chc-uf-contact-email {
	font-size: 15px;
	color: var(--uf-on-ink);
}

#chc-universal-footer .chc-uf-contact-us {
	font-size: 15px;
	color: var(--uf-green-light);
	border-bottom: 1px solid #4C5A4B;
	padding-bottom: 2px;
	align-self: flex-start;
}

#chc-universal-footer .chc-uf-social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	padding-top: 4px;
	font-size: 13.5px;
}

#chc-universal-footer .chc-uf-social a {
	color: var(--uf-on-ink-muted);
}

/* ---------- Band 3 — memberships ---------- */

#chc-universal-footer .chc-uf-band3 {
	background: var(--uf-ink);
	padding: 0 56px;
}

#chc-universal-footer .chc-uf-band3__inner {
	border-top: 1px solid var(--uf-rule-dark);
	padding: 26px 0;
	display: flex;
	align-items: center;
	gap: 32px;
}

#chc-universal-footer .chc-uf-band3__label {
	white-space: nowrap;
}

#chc-universal-footer .chc-uf-plates {
	display: flex;
	align-items: center;
	gap: 14px;
}

#chc-universal-footer .chc-uf-plate {
	background: var(--uf-paper);
	border-radius: 10px;
	padding: 10px 18px;
	height: 64px;
	display: flex;
	align-items: center;
}

#chc-universal-footer .chc-uf-plate-img--sama {
	height: 42px;
	width: auto;
	display: block;
}

#chc-universal-footer .chc-uf-plate-img--ams {
	height: 30px;
	width: auto;
	display: block;
}

#chc-universal-footer .chc-uf-band3__note {
	font-size: 13px;
	line-height: 1.5;
	color: var(--uf-on-ink-muted);
	max-width: 420px;
}

/* ---------- Band 4 — legal ---------- */

#chc-universal-footer .chc-uf-band4 {
	background: var(--uf-ink-deep);
	padding: 22px 56px;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px;
}

#chc-universal-footer .chc-uf-band4__terms {
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--uf-on-ink-muted-2);
	max-width: 820px;
}

#chc-universal-footer .chc-uf-band4__terms a {
	color: #B8B0A5;
	border-bottom: 1px solid #4A443E;
}

#chc-universal-footer .chc-uf-band4__meta {
	display: flex;
	align-items: center;
	gap: 20px;
	font-size: 12.5px;
	white-space: nowrap;
}

#chc-universal-footer .chc-uf-band4__meta a {
	color: #B8B0A5;
}

#chc-universal-footer .chc-uf-band4__copyright {
	color: var(--uf-on-ink-muted-2);
}

/* ---------- Responsive — 900px breakpoint ---------- */

@media (max-width: 900px) {

	#chc-universal-footer .chc-uf-band1 {
		padding: 28px 20px;
		display: flex;
		flex-direction: column;
		gap: 22px;
	}

	#chc-universal-footer .chc-uf-rule-vertical {
		display: none;
	}

	#chc-universal-footer .chc-uf-band1 {
		order: initial;
	}

	#chc-universal-footer .chc-uf-newsletter {
		order: -1;
	}

	#chc-universal-footer .chc-uf-newsletter__heading {
		font-size: 19px;
	}

	#chc-universal-footer .chc-uf-newsletter__form .elementor-form {
		flex-direction: column;
		align-items: stretch;
	}

	#chc-universal-footer .chc-uf-newsletter__form .elementor-form-fields-wrapper {
		flex-direction: column;
		align-items: stretch;
	}

	#chc-universal-footer .chc-uf-newsletter__form .elementor-field-group {
		flex-basis: auto;
	}

	#chc-universal-footer .chc-uf-newsletter__form .elementor-field,
	#chc-universal-footer .chc-uf-newsletter__form input[type="text"],
	#chc-universal-footer .chc-uf-newsletter__form input[type="email"] {
		height: 50px;
		font-size: 16px;
	}

	#chc-universal-footer .chc-uf-newsletter__form .elementor-button,
	#chc-universal-footer .chc-uf-newsletter__form button[type="submit"] {
		width: 100% !important;
		height: 50px !important;
		margin-top: 0 !important;
	}

	#chc-universal-footer .chc-uf-org {
		gap: 12px;
	}

	#chc-universal-footer .chc-uf-logo {
		width: 140px;
	}

	#chc-universal-footer .chc-uf-statement {
		font-size: 14.5px;
	}

	#chc-universal-footer .chc-uf-org-divider {
		display: block;
		height: 1px;
		background: var(--uf-rule-light);
	}

	#chc-universal-footer .chc-uf-band2 {
		display: block;
		padding: 8px 20px 20px;
	}

	#chc-universal-footer .chc-uf-col {
		gap: 0;
	}

	#chc-universal-footer .chc-uf-col--accordion {
		border-bottom: 1px solid var(--uf-rule-dark-2);
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-col__toggle {
		cursor: pointer;
		padding: 16px 0;
		min-height: 44px;
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-eyebrow {
		font-size: 15.5px;
		font-weight: 400;
		letter-spacing: 0;
		text-transform: none;
		color: var(--uf-on-ink);
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-col__icon {
		display: block;
		font-size: 16px;
		color: var(--uf-green-light);
		line-height: 1;
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-col__icon::before {
		content: "+";
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-col__toggle[aria-expanded="true"] .chc-uf-col__icon::before {
		content: "\2013";
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-col__panel {
		display: none;
		padding-bottom: 8px;
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-col__panel.is-open {
		display: block;
	}

	#chc-universal-footer .chc-uf-col--accordion .chc-uf-col__panel a {
		min-height: 44px;
		display: flex;
		align-items: center;
		color: #C9C2B8;
	}

	#chc-universal-footer .chc-uf-col--divisions .chc-uf-col__panel .chc-uf-division-link {
		min-height: 44px;
		justify-content: center;
		gap: 0;
	}

	#chc-universal-footer .chc-uf-col--divisions .chc-uf-col__panel .chc-uf-division-link__desc {
		display: none;
	}

	#chc-universal-footer .chc-uf-col--contact {
		padding: 22px 0 18px;
		border-bottom: 1px solid var(--uf-rule-dark-2);
		gap: 12px;
	}

	#chc-universal-footer .chc-uf-contact ul {
		gap: 0;
	}

	#chc-universal-footer .chc-uf-contact-link,
	#chc-universal-footer .chc-uf-contact-email {
		min-height: 44px;
		justify-content: center;
	}

	#chc-universal-footer .chc-uf-contact-link {
		flex-direction: row;
		align-items: baseline;
		gap: 6px;
	}

	#chc-universal-footer .chc-uf-contact-link__label::before {
		content: "\00b7 ";
	}

	#chc-universal-footer .chc-uf-social {
		padding-top: 8px;
	}

	#chc-universal-footer .chc-uf-band3 {
		padding: 0 20px;
	}

	#chc-universal-footer .chc-uf-band3__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 20px 0 18px;
	}

	#chc-universal-footer .chc-uf-plates {
		width: 100%;
		gap: 10px;
	}

	#chc-universal-footer .chc-uf-plate {
		flex: 1;
		height: 58px;
		justify-content: center;
		padding: 8px 12px;
	}

	#chc-universal-footer .chc-uf-plate-img--sama {
		height: 38px;
	}

	#chc-universal-footer .chc-uf-plate-img--ams {
		height: 26px;
	}

	#chc-universal-footer .chc-uf-band4 {
		padding: 18px 20px;
		flex-direction: column;
		gap: 10px;
	}

	#chc-universal-footer .chc-uf-band4__meta {
		gap: 16px;
	}
}
