/**
 * Accessibility layer (WCAG 2.1 AA).
 *
 * Loaded last so its focus / screen-reader rules win over the design system.
 * Keep this file self-contained: skip-link, screen-reader-text utility,
 * visible keyboard focus, and reduced-motion fallbacks.
 */

/* ------------------------------------------------------------------ *
 * Screen-reader-only utility (canonical WordPress implementation).
 * Visually hidden but still announced by assistive technology.
 * ------------------------------------------------------------------ */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	position: absolute !important;
	word-wrap: normal !important;
}

/* Reveal screen-reader-text when it receives keyboard focus (e.g. the skip-link). */
.screen-reader-text:focus {
	background-color: #fff;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: var(--ecard-blue);
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 6px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 6px;
	width: auto;
	z-index: 100000; /* Above the sticky header. */
}

/* ------------------------------------------------------------------ *
 * Skip-link target — #content gets tabindex="-1"; suppress its focus ring.
 * ------------------------------------------------------------------ */
#content:focus {
	outline: none;
}

/* ------------------------------------------------------------------ *
 * Visible keyboard focus.
 * :focus-visible only paints the ring for keyboard / programmatic focus,
 * so mouse users keep the clean design while keyboard users get a clear
 * indicator on every interactive control.
 * ------------------------------------------------------------------ */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
	outline: 3px solid var(--ecard-blue);
	outline-offset: 2px;
	border-radius: 3px;
}

/* On dark surfaces (header bar, footer, mega panels) a white ring reads better. */
.ecard-site-header a:focus-visible,
.ecard-site-header button:focus-visible,
.ecard-site-header input:focus-visible,
.ecard-site-header select:focus-visible,
.ecard-v2-footer a:focus-visible,
.ecard-v2-footer button:focus-visible,
.ecard-mobile-drawer a:focus-visible,
.ecard-mobile-drawer button:focus-visible,
.ecard-mobile-drawer input:focus-visible {
	outline-color: #fff;
	box-shadow: 0 0 0 5px var(--ecard-blue);
}

/* Fallback for browsers without :focus-visible — still show a ring on :focus. */
@supports not selector(:focus-visible) {
	a:focus,
	button:focus,
	input:focus,
	select:focus,
	textarea:focus,
	summary:focus,
	[tabindex]:focus {
		outline: 3px solid var(--ecard-blue);
		outline-offset: 2px;
	}
}

/* ------------------------------------------------------------------ *
 * Reduced motion — honour the user's OS preference.
 * Disables the promo-bar marquee and any decorative transitions/animations.
 * ------------------------------------------------------------------ */
@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;
	}

	.ecard-promo-bar__track {
		animation: none !important;
		transform: none !important;
	}
}
