/* =============================================================================
   Accessibility — WCAG 2.2 AA
   ========================================================================== */

/* Screen-reader-only utility */
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.sr-only-focusable:focus,
.sr-only-focusable:active {
	position: static !important;
	width: auto !important;
	height: auto !important;
	padding: initial !important;
	margin: initial !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
}

/* Global focus-visible ring — WCAG 2.2 requires clearly visible focus */
*:focus {
	outline: 0;
}
*:focus-visible {
	outline: var(--wt-focus-ring-width) solid var(--wt-focus-ring-color) !important;
	outline-offset: var(--wt-focus-ring-offset) !important;
	border-radius: var(--wt-radius-md);
}

/* Windows high contrast fallback */
@media (forced-colors: active) {
	.wt-btn,
	.elementor-button,
	.wt-header__cta,
	.wt-card,
	.wt-feature-card,
	.wt-bento-card {
		border: 1px solid CanvasText;
	}
	.wt-btn:focus-visible,
	.elementor-button:focus-visible {
		outline: 2px solid Highlight !important;
	}
}

/* Ensure minimum touch-target size (WCAG 2.5.5 / 2.2 target-size) */
button,
a.wt-btn,
a.wt-header__cta,
.wt-header__hamburger,
.wt-mobile-menu__close,
.wt-mobile-menu__cta {
	min-height: 44px;
	min-width: 44px;
}

/* Hide from AT but keep for layout */
[aria-hidden="true"] { pointer-events: none; }

/* Visible labels retention — never rely on placeholder-only */
.wt-form-label { display: block !important; }

/* Ensure sufficient contrast in placeholders */
::placeholder {
	color: var(--wt-outline);
	opacity: 1;
}

/* Reserve viewport for accessibility widget's own reserved area */
body {
	scroll-padding-bottom: 96px;
}
