/* ── Stat Bar 2026 ─────────────────────────────────────────────────────────
 *
 * Dark green band with 1–6 stat cells. Optional eyebrow + heading sit above
 * the grid. Numeric cells animate via IntersectionObserver-driven CountUp
 * (see /assets/js/homepage-2026/stat-bar-2026.js). Server-rendered values
 * are the final numbers, so reduced-motion / no-JS users see them as-is.
 *
 * Selectors: .vig-stat-bar-2026__* (BEM, section-scoped).
 * ─────────────────────────────────────────────────────────────────────── */

/* Section root. Vertical rhythm comes from cell padding (mockup pattern) —
 * keeping section padding at 0 makes the stat strip read as a tight
 * industrial band, not a generously-padded marketing block.
 *
 * IMPORTANT: the `padding: 0` override is required to defeat the base
 * `.vig-acf-section { padding: 88px 24px; }` rule in acf-sections.css.
 * Without this, the cells inherit 88px above + below, plus their own
 * 28px, making the band ~232px taller than the mockup intends. */
.vig-stat-bar-2026 {
	background: #08471B;
	color: #fff;
	padding: 0;
}

/* Inner wrapper */
.vig-stat-bar-2026__inner {
	max-width: 1320px;
	margin: 0 auto;
}

/* ── Head (optional eyebrow + heading) ───────────────────────────────────── */

.vig-stat-bar-2026__head {
	max-width: 760px;
	margin: 0 auto 40px;
	padding: 0 32px;
	text-align: center;
}

.vig-stat-bar-2026__eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	/* Lighter orange (--color-secondary-300 = #FFB56E) for the dark-green
	 * band. The brand --color-secondary-500 (#F48113) only hits 4.15:1 on
	 * #08471B, below the WCAG AA 4.5 bar for body text under 18pt. The
	 * -300 token clears AA at 6.27:1 and remains visually brand-orange. */
	color: var(--color-secondary-300);
	margin: 0;
}

.vig-stat-bar-2026__heading {
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: #fff;
	margin: 16px 0 0;
}

/* <em> renders as accent orange, not italic, matching mockup. */
.vig-stat-bar-2026__heading em {
	font-style: normal;
	color: var(--color-secondary-500);
}

/* ── Stat grid ───────────────────────────────────────────────────────────── */

.vig-stat-bar-2026__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	align-items: stretch;
}

.vig-stat-bar-2026__cell {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	/* Mockup: 28px 32px. Provides the band's whole vertical rhythm — no
	 * separate section padding above/below. */
	padding: 28px 32px;
	border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.vig-stat-bar-2026__cell:last-child {
	border-right: 0;
}

/* The big number. tnum keeps digit widths stable so the count-up doesn't
 * jitter horizontally as the digits change. */
.vig-stat-bar-2026__num {
	display: block;
	font-size: 40px;
	font-weight: 800;
	line-height: 1.1;
	color: var(--color-secondary-500);
	font-feature-settings: "tnum";
	font-variant-numeric: tabular-nums;
	margin: 0 0 8px;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.vig-stat-bar-2026__label {
	display: block;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.88);
	margin: 0 0 4px;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.vig-stat-bar-2026__sub {
	display: block;
	font-size: 11px;
	font-weight: 300;
	line-height: 1.4;
	/* white at 0.7 opacity composites to ~rgb(180, 199, 186) on the dark
	 * green band, giving 6.13:1 against #08471B — comfortably WCAG AA for
	 * body text. The mockup's 0.5 looked nicer but failed AA at 3.94:1. */
	color: rgba(255, 255, 255, 0.7);
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* ── Breakpoints ─────────────────────────────────────────────────────────── */

@media (max-width: 900px) {
	/* Defeat the base .vig-acf-section { padding: 64px 20px } from
	 * acf-sections.css's 768px breakpoint as well. */
	.vig-stat-bar-2026 {
		padding: 0;
	}

	.vig-stat-bar-2026__head {
		margin-bottom: 32px;
		padding: 0 20px;
	}

	.vig-stat-bar-2026__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.vig-stat-bar-2026__cell {
		padding: 24px 20px;
	}

	/* Last cell on each row clears the right border at 2-col layout. */
	.vig-stat-bar-2026__cell:nth-child(2n) {
		border-right: 0;
	}
}

/* JS handles the reduced-motion path by leaving server-rendered values
 * untouched. No CSS rule required — placeholder for intent. */
@media (prefers-reduced-motion: reduce) {
	/* no-op: see /assets/js/homepage-2026/stat-bar-2026.js for the JS guard */
}
