/**
 * Accessibility Styles
 * Enhanced accessibility styles for better user experience
 */

/* Screen reader only class */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* Screen reader only but visible on focus */
.sr-only-focusable:focus {
	position: static;
	width: auto;
	height: auto;
	padding: 0.25rem 0.5rem;
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	background: #000;
	color: #fff;
	text-decoration: none;
	z-index: 9999;
}

/* Focus indicators for keyboard users */
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid #005fcc;
	outline-offset: 2px;
}

/* High contrast mode focus indicators */
@media (prefers-contrast: high) {
	button:focus:focus-visible,
	a:focus:focus-visible,
	input:focus:focus-visible,
	textarea:focus:focus-visible,
	select:focus:focus-visible {
		outline: 2px solid #005fcc;
		outline-offset: 2px;
	}
}

/* Hide focus indicators for mouse interactions */
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
input:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
select:focus:not(:focus-visible) {
	outline: none !important;
}

/* High contrast links */
@media (prefers-contrast: high) {
	a {
		text-decoration: underline;
	}
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}