/* Intendit Accessibility Fixes – front-end styles */

/* 2.4.7 Visible focus indicator (only when enabled via body class) */
body.intendit-a11y-focus :where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [role="button"]):focus-visible {
	outline: 3px solid var(--intendit-a11y-focus, #005f73) !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px #fff !important;
	border-radius: 2px;
}
body.intendit-a11y-focus :where(a, button, [role="button"]):focus:not(:focus-visible) {
	outline: none;
}

/* 2.4.1 Skip link must become visible on focus (theme-agnostic) */
body.intendit-a11y .skip-link:focus,
body.intendit-a11y .skip-link:focus-visible,
body.intendit-a11y a.screen-reader-text:focus,
body.intendit-a11y a.elementor-screen-only:focus {
	position: fixed !important;
	top: 8px !important;
	left: 8px !important;
	z-index: 100000 !important;
	clip: auto !important;
	clip-path: none !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 12px 20px !important;
	background: #fff !important;
	color: #111 !important;
	font-size: 1rem !important;
	line-height: 1.4 !important;
	text-decoration: underline !important;
	overflow: visible !important;
	white-space: nowrap !important;
}

/* 2.1.1 Elementor nav dropdowns: open on keyboard focus, not only on hover */
body.intendit-a11y .elementor-nav-menu li.menu-item-has-children:focus-within > ul.sub-menu,
body.intendit-a11y .elementor-nav-menu li.menu-item-has-children.intendit-a11y-open > ul.sub-menu,
body.intendit-a11y .elementor-nav-menu--main li.menu-item-has-children:focus-within > ul.sub-menu {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

/* Card links converted server-side: keep the card clickable, show pointer */
body.intendit-a11y .intendit-a11y-card {
	cursor: pointer;
}
body.intendit-a11y .intendit-a11y-card-link {
	color: inherit;
	text-decoration: inherit;
}

/* 2.5.5 Minimum target size for icon links (opt-in) */
body.intendit-a11y-min-target .elementor-social-icon,
body.intendit-a11y-min-target a.elementor-icon,
body.intendit-a11y-min-target .elementor-icon-list-items a {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* 2.3.3 Respect reduced motion: neutralise Elementor entrance animations */
@media (prefers-reduced-motion: reduce) {
	body.intendit-a11y-reduced-motion *,
	body.intendit-a11y-reduced-motion *::before,
	body.intendit-a11y-reduced-motion *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	body.intendit-a11y-reduced-motion .elementor-invisible {
		visibility: visible !important;
	}
}

/* Elements marked inert by JS on browsers without native inert support */
body.intendit-a11y [data-intendit-inert="1"] {
	pointer-events: none;
}

/* Accessibility statement */
.intendit-a11y-statement h2 { margin-top: 0; }
.intendit-a11y-statement h3 { margin-top: 1.5em; }
