/**
 * Matsuri Accessibility Styles
 *
 * WCAG AA compliance:
 * - Unified :focus-visible ring
 * - Comprehensive prefers-reduced-motion support
 * - forced-colors (Windows High Contrast) support
 *
 * @since 1.1.0
 * @package WAM_Matsuri
 */

/* === Focus Visible: Unified ring for all interactive elements === */
:focus-visible {
	outline: 2px solid var(--wam-focus-color);
	outline-offset: 2px;
}

/* Remove default focus outline when not using keyboard */
:focus:not(:focus-visible) {
	outline: none;
}

/* Enhanced focus for buttons and links */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--wam-focus-color);
	outline-offset: 2px;
	box-shadow: var(--wam-focus-shadow);
}

/* Ensure focus ring is visible on dark backgrounds */
.wam-selector-modal-header :focus-visible,
.wam-map-header :focus-visible,
.wam-selected-group-tag :focus-visible {
	outline-color: #fff;
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.4);
}

/* === Reduced Motion: comprehensive === */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* === Forced Colors (Windows High Contrast) === */
@media (forced-colors: active) {
	.wam-btn {
		border: 1px solid ButtonText;
	}

	.wam-btn-primary,
	.wam-btn-secondary,
	.wam-btn-success {
		background: ButtonFace;
		color: ButtonText;
		forced-color-adjust: none;
	}

	.wam-card {
		border: 1px solid CanvasText;
	}

	.wam-lantern-body {
		border: 2px solid CanvasText;
		forced-color-adjust: none;
	}

	.wam-lantern.selected .wam-lantern-body {
		background: Highlight;
		color: HighlightText;
		border-color: Highlight;
	}

	.wam-lantern.reserved .wam-lantern-body {
		background: GrayText;
		color: Canvas;
		border-color: GrayText;
	}

	.wam-area-tab.active {
		background: Highlight;
		color: HighlightText;
		border-color: Highlight;
	}

	:focus-visible {
		outline: 2px solid Highlight;
	}
}
