/**
 * Supporters page template
 *
 * Tokens mirror the Elementor global kit so this page matches the rest of the site
 * even though it bypasses Elementor. Fallback hex values are pulled from the active
 * kit (post ID 6) so the page renders correctly if Elementor frontend CSS is absent.
 */

.supporters-page {
	--sp-primary: var(--e-global-color-primary, #061C3D);
	--sp-secondary: var(--e-global-color-secondary, #AA011C);
	--sp-text: var(--e-global-color-text, #000000);
	--sp-bg: #F5F6F7;
	--sp-card-bg: #FFFFFF;
	--sp-border: #061C3D1A;
	--sp-radius: 8px;
	--sp-gap: clamp(1rem, 2vw, 1.75rem);
	--sp-container-max: 1200px;
	--sp-section-padding-y: clamp(2.5rem, 6vw, 5rem);

	--sp-font-heading: var(--e-global-typography-primary-font-family, "Chivo"), system-ui, sans-serif;
	--sp-font-body: var(--e-global-typography-text-font-family, "Lora"), Georgia, serif;

	background: var(--sp-bg);
	color: var(--sp-text);
}

.supporters-container {
	width: 100%;
	max-width: var(--sp-container-max);
	margin: 0 auto;
	padding: 0 clamp(1rem, 4vw, 2rem);
	box-sizing: border-box;
}

/* ---------- Hero ---------- */
.supporters-hero {
	padding: var(--sp-section-padding-y) 0 clamp(1.5rem, 4vw, 2.5rem);
	text-align: center;
}

.supporters-hero__heading {
	font-family: var(--sp-font-heading);
	font-weight: 600;
	color: var(--sp-primary);
	font-size: clamp(2rem, 5vw, 3.25rem);
	line-height: 1.15;
	margin: 0 0 0.75rem;
	letter-spacing: -0.01em;
}

.supporters-hero__subheading {
	font-family: var(--sp-font-body);
	font-weight: 300;
	color: var(--sp-text);
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	line-height: 1.6;
	max-width: 720px;
	margin: 0 auto;
}

.supporters-hero__subheading p:last-child {
	margin-bottom: 0;
}

/* ---------- Grid ---------- */
.supporters-grid-section {
	padding: clamp(1rem, 3vw, 2rem) 0 var(--sp-section-padding-y);
}

.supporters-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--sp-gap);
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.supporters-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1025px) {
	.supporters-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.supporters-grid__item {
	display: flex;
}

/* ---------- Logo card ---------- */
.supporter-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 100%;
	min-height: 220px;
	padding: 1.5rem;
	background: var(--sp-card-bg);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius);
	text-decoration: none;
	color: var(--sp-text);
	box-sizing: border-box;
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

a.supporter-card:hover,
a.supporter-card:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(6, 28, 61, 0.10);
	border-color: var(--sp-primary);
}

a.supporter-card:focus-visible {
	outline: 2px solid var(--sp-secondary);
	outline-offset: 3px;
}

.supporter-card__logo-wrap {
	width: 100%;
	height: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.supporter-card__logo {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

.supporter-card__name {
	font-family: var(--sp-font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.3;
	text-align: center;
	color: var(--sp-primary);
}

/* ---------- Text callout card ---------- */
.supporters-grid__item--callout .supporter-callout {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 100%;
	min-height: 220px;
	padding: 1.5rem;
	background: var(--sp-card-bg);
	color: var(--sp-primary);
	border: 1px solid var(--sp-border);
	border-radius: var(--sp-radius);
	text-align: center;
	box-sizing: border-box;
}

.supporter-callout__number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100px;
	font-family: var(--sp-font-heading);
	font-weight: 600;
	font-size: clamp(3rem, 7vw, 4.5rem);
	line-height: 1;
	color: var(--sp-primary);
	letter-spacing: -0.02em;
}

.supporter-callout__label {
	font-family: var(--sp-font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.3;
	text-align: center;
	color: var(--sp-primary);
}

/* ---------- CTA ---------- */
.supporters-cta {
	background: var(--sp-primary);
	color: #FFFFFF;
	padding: var(--sp-section-padding-y) 0;
	text-align: center;
}

.supporters-cta__heading {
	font-family: var(--sp-font-heading);
	font-weight: 600;
	font-size: clamp(1.5rem, 3.5vw, 2.25rem);
	line-height: 1.2;
	color: #FFFFFF;
	margin: 0 0 1.5rem;
}

.supporters-cta__button {
	display: inline-block;
	padding: 0.9rem 2rem;
	background: var(--sp-secondary);
	color: #FFFFFF;
	font-family: var(--sp-font-heading);
	font-weight: 500;
	font-size: 1rem;
	text-decoration: none;
	border-radius: 4px;
	transition: background 180ms ease, transform 180ms ease;
	letter-spacing: 0.02em;
}

.supporters-cta__button:hover,
.supporters-cta__button:focus-visible {
	background: #c00425;
	transform: translateY(-1px);
}

.supporters-cta__button:focus-visible {
	outline: 2px solid #FFFFFF;
	outline-offset: 3px;
}

/* ---------- a11y helper (mirrors WP core) ---------- */
.supporters-page .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}
