/* =============================================================
   FOOTER (dark)
   ============================================================= */
.footer {
	background: var(--wba-dark);
	color: rgba(255,255,255,0.78);
	padding: 100px 0 32px;
	border-top: 4px solid var(--wba-red);
}
.footer__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--gutter-d);
}
.footer__top {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 56px;
	padding-bottom: 64px;
	border-bottom: 1px solid rgba(255,255,255,0.10);
}

/* Brand mark — light logo */
.footer__brand-mark {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 24px;
	color: var(--wba-white);
}
.footer__logo-img {
	height: 64px;
	width: auto;
	max-width: 240px;
	object-fit: contain;
	display: block;
	flex-shrink: 0;
	/* Fallback: if user only uploaded the colour logo, invert it for dark bg */
}
body:not(.has-light-logo) .footer__logo-img {
	filter: brightness(0) invert(1);
}
.footer__brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.footer__brand-text small {
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.55);
}

.footer__motto {
	font-size: 0.95rem;
	line-height: 1.65;
	color: rgba(255,255,255,0.65);
	margin: 0 0 24px;
	max-width: 36ch;
}
.footer__motto em { font-style: italic; color: var(--wba-orange); font-weight: 500; }

/* Newsletter form */
.footer__newsletter {
	display: flex;
	gap: 0;
	margin-top: 8px;
	max-width: 360px;
	border: 1px solid rgba(255,255,255,0.18);
}
.footer__newsletter input {
	flex: 1;
	background: transparent;
	border: 0;
	padding: 14px 16px;
	color: var(--wba-white);
	font-family: inherit;
	font-size: 0.85rem;
	outline: none;
}
.footer__newsletter input::placeholder { color: rgba(255,255,255,0.45); }
.footer__newsletter input:focus { background: rgba(255,255,255,0.04); }
.footer__newsletter button {
	background: var(--wba-red);
	color: var(--wba-white);
	border: 0;
	padding: 0 22px;
	font-family: inherit;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: lowercase;
	cursor: pointer;
	transition: background 0.25s ease;
}
.footer__newsletter button:hover { background: var(--wba-orange); color: var(--wba-dark); }

/* Footer columns */
.footer__col h4 {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: lowercase;
	color: var(--wba-orange);
	font-style: italic;
	margin: 0 0 24px;
}
.footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.footer__col li { padding: 0; }
.footer__col a {
	color: rgba(255,255,255,0.78);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	transition: color 0.2s ease, padding-left 0.2s ease;
	display: inline-block;
}
.footer__col a:hover { color: var(--wba-orange); padding-left: 4px; }

/* Affiliations strip */
.footer__affiliations {
	padding: 32px 0;
	border-bottom: 1px solid rgba(255,255,255,0.10);
	display: flex;
	align-items: center;
	gap: 32px;
	flex-wrap: wrap;
}
.footer__affiliations-label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: lowercase;
	color: var(--wba-orange);
	font-style: italic;
}
.footer__affiliations-logos {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	align-items: center;
}
.affil-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--wba-white);
	padding: 8px 14px;
	min-height: 56px;
	min-width: 80px;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.affil-badge:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0,0,0,0.30);
}
.affil-badge img {
	max-height: 38px;
	width: auto;
	max-width: 140px;
	object-fit: contain;
	display: block;
}

/* Legal bar */
.footer__bottom {
	padding-top: 28px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	font-size: 0.78rem;
	color: rgba(255,255,255,0.45);
}
.footer__bottom p { margin: 0; }
.footer__bottom-links { display: flex; gap: 22px; flex-wrap: wrap; }
.footer__bottom-links a {
	color: rgba(255,255,255,0.55);
	text-decoration: none;
	transition: color 0.2s;
}
.footer__bottom-links a:hover { color: var(--wba-orange); }

/* Screen-reader-only utility (used on form labels) */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px; width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	word-wrap: normal !important;
}

/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width: 1100px) {
	.footer__top { grid-template-columns: 1fr 1fr; gap: 40px; }
	.footer__top > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.footer { padding: 64px 0 24px; }
	.footer__inner { padding: 0 var(--gutter-m); }
	.footer__top {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-bottom: 40px;
	}
	.footer__top > div:first-child { grid-column: auto; }
	.footer__bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}
