/*
 * Centurion — custom CSS
 * Accessibility baseline + light global defaults for non-Elementor chrome.
 * Elementor handles per-page layout; this file enforces the things that must be
 * true site-wide: visible focus, a working skip link, motion preferences, and a
 * typographic safety net. Keep page-specific styling in Elementor, not here.
 */

/* ---- Accessibility: visible keyboard focus (WCAG 2.4.7) ---- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--c-red);
	outline-offset: 2px;
	border-radius: 2px;
}

/* On dark surfaces (header, hero, footer) gold reads better than red. */
header :focus-visible,
.hero :focus-visible,
footer :focus-visible {
	outline-color: var(--c-gold);
}

/* ---- Skip link ---- */
.skip-link.screen-reader-text:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100000;
	width: auto;
	height: auto;
	clip: auto;
	clip-path: none;
	margin: 0;
	padding: 12px 20px;
	background: var(--c-black);
	color: var(--c-white);
	font-family: var(--font-label);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Screen-reader-only utility (visually hidden but announced). */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* ---- Respect reduced-motion preferences ---- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---- Typographic safety net ---- */
/* Elementor Global Fonts drive most typography; these are fallbacks so the site
   never renders in an unstyled system font if a global is missing. */
body {
	font-family: var(--font-serif);
	color: var(--c-ink);
	line-height: var(--lh-body);
}

h1, h2, h3 {
	font-family: var(--font-serif);
	line-height: var(--lh-head);
	letter-spacing: var(--tracking-head);
}
.cases-filter .e-filter { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:10px; margin:0 0 8px; }
.cases-filter .e-filter-item {
	font-family: var(--font-label); font-size: var(--fs-label);
	text-transform: uppercase; letter-spacing:.06em; line-height:1;
	color: var(--c-ink); background: transparent;
	border:1px solid var(--c-ink); border-radius:0; padding:11px 18px; cursor:pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.cases-filter .e-filter-item:hover { background:var(--c-ink); color:var(--c-white); border-color:var(--c-ink); }
.cases-filter .e-filter-item[aria-pressed="true"],
.cases-filter .e-filter-item.e-active { background:#000; color:#fff; border-color:#000; }
.cases-filter .e-filter-item:focus-visible { outline-offset:3px; }