/**
 * WordPress Accessibility Engine - Global Overrides
 * Applies accessibility rules to the main document body based on active engine states
 * while isolating the Shadow DOM widget root (#wp-accessibility-engine-root) and any
 * developer-defined bypass regions (.wp-a11y-bypass / [data-wp-a11y-ignore="true"]).
 *
 * Notes:
 * - Uses :where() to keep specificity low where practical.
 * - Exclusions are repeated explicitly for reliability and readability.
 * - Page-level rules are intentionally separated from widget-internal styles.
 */

/* ==========================================
   SCREEN READER ONLY (Visually Hidden)
   ========================================== */
.wp-a11y-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;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ==========================================
   1. PROFILES OVERRIDES
   ========================================== */

/* Profile: Seizure Safe & Stop Animations */
:where(body.wp-a11y-profile-seizure-safe, body.wp-a11y-orient-stop-animations)
:where(*, *::before, *::after):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	animation: none !important;
	transition: none !important;
	scroll-behavior: auto !important;
}

/* Profile: Seizure Safe Media Protection */
:where(body.wp-a11y-media-seizure-protection)
:where(video, canvas, embed, iframe, object, img[src*=".gif"]):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	filter: grayscale(100%) contrast(0.6) brightness(0.7) sepia(30%) !important;
	opacity: 0.6 !important;
	transition: none !important;
	animation: none !important;
}

/* Profile: ADHD Friendly */
:where(body.wp-a11y-profile-adhd-friendly)
:where(aside, footer, [role="complementary"], [role="contentinfo"], .widget, .sidebar):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	opacity: 0.3 !important;
	filter: grayscale(100%) !important;
	transition: opacity 0.3s ease, filter 0.3s ease !important;
}

:where(body.wp-a11y-profile-adhd-friendly)
:where(aside, footer, [role="complementary"], [role="contentinfo"], .widget, .sidebar):hover:not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	opacity: 1 !important;
	filter: none !important;
}

/* Profile: Keyboard Navigation */
:where(body.wp-a11y-profile-keyboard-navigation)
:where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]):focus-visible:not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 3px solid #0066ff !important;
	outline-offset: 2px !important;
}

:where(body.wp-a11y-profile-keyboard-navigation)
:where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]):focus:not(:focus-visible):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 3px solid #0066ff !important;
	outline-offset: 2px !important;
}

/* Smart Bold for readability-oriented profiles */
:where(body.wp-a11y-profile-vision-impaired, body.wp-a11y-profile-cognitive-disability, body.wp-a11y-profile-older-adults)
:where(p, li, label, td, th, a, button):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	font-weight: 700 !important;
}

/* ==========================================
   2. CONTENT ADJUSTMENTS
   ========================================== */

:where(body.wp-a11y-adjust-readable-font)
:where(p, li, span, a, label, blockquote, figcaption, td, th, dt, dd, h1, h2, h3, h4, h5, h6):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	font-family: Arial, Helvetica, sans-serif !important;
}

/* Text alignment adjustments */
:where(body.wp-a11y-adjust-align-left)
:where(p, h1, h2, h3, h4, h5, h6, li, span, blockquote, figcaption, td, th, label):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	text-align: left !important;
}

:where(body.wp-a11y-adjust-align-center)
:where(p, h1, h2, h3, h4, h5, h6, li, span, blockquote, figcaption, td, th, label):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	text-align: center !important;
}

:where(body.wp-a11y-adjust-align-right)
:where(p, h1, h2, h3, h4, h5, h6, li, span, blockquote, figcaption, td, th, label):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	text-align: right !important;
}

/* Highlight Titles */
:where(body.wp-a11y-adjust-highlight-titles)
:where(h1, h2, h3, h4, h5, h6):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 2px solid #0066ff !important;
	outline-offset: 2px !important;
	background-color: #ffff00 !important;
	color: #000000 !important;
}

/* Highlight Links */
:where(body.wp-a11y-adjust-highlight-links)
:where(a):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 2px solid #ff9500 !important;
	outline-offset: 2px !important;
	background-color: #ffff00 !important;
	color: #000000 !important;
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 0.12em !important;
	font-weight: 700 !important;
}

/* ==========================================
   3. STEPPERS (Dynamic Sizing via Body/HTML Classes)
   ========================================== */

/* Content Scaling */
:where(html.wp-a11y-stepper-content-scaling-plus-1) { zoom: 1.05; }
:where(html.wp-a11y-stepper-content-scaling-plus-2) { zoom: 1.10; }
:where(html.wp-a11y-stepper-content-scaling-plus-3) { zoom: 1.15; }
:where(html.wp-a11y-stepper-content-scaling-minus-1) { zoom: 0.95; }
:where(html.wp-a11y-stepper-content-scaling-minus-2) { zoom: 0.90; }
:where(html.wp-a11y-stepper-content-scaling-minus-3) { zoom: 0.85; }

/* Font Sizing */
:where(body.wp-a11y-stepper-font-sizing-plus-1)
:where(p, li, label, td, th, blockquote, figcaption, dt, dd, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { font-size: 110% !important; }

:where(body.wp-a11y-stepper-font-sizing-plus-2)
:where(p, li, label, td, th, blockquote, figcaption, dt, dd, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { font-size: 120% !important; }

:where(body.wp-a11y-stepper-font-sizing-plus-3)
:where(p, li, label, td, th, blockquote, figcaption, dt, dd, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { font-size: 130% !important; }

:where(body.wp-a11y-stepper-font-sizing-minus-1)
:where(p, li, label, td, th, blockquote, figcaption, dt, dd, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { font-size: 90% !important; }

:where(body.wp-a11y-stepper-font-sizing-minus-2)
:where(p, li, label, td, th, blockquote, figcaption, dt, dd, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { font-size: 80% !important; }

:where(body.wp-a11y-stepper-font-sizing-minus-3)
:where(p, li, label, td, th, blockquote, figcaption, dt, dd, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { font-size: 70% !important; }

/* Line Height */
:where(body.wp-a11y-stepper-line-height-plus-1)
:where(p, li, td, th, blockquote, dd, dt, figcaption, label):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { line-height: 1.5 !important; }

:where(body.wp-a11y-stepper-line-height-plus-2)
:where(p, li, td, th, blockquote, dd, dt, figcaption, label):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { line-height: 1.75 !important; }

:where(body.wp-a11y-stepper-line-height-plus-3)
:where(p, li, td, th, blockquote, dd, dt, figcaption, label):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { line-height: 2 !important; }

:where(body.wp-a11y-stepper-line-height-minus-1)
:where(p, li, td, th, blockquote, dd, dt, figcaption, label):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { line-height: 1.1 !important; }

:where(body.wp-a11y-stepper-line-height-minus-2)
:where(p, li, td, th, blockquote, dd, dt, figcaption, label):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { line-height: 1 !important; }

:where(body.wp-a11y-stepper-line-height-minus-3)
:where(p, li, td, th, blockquote, dd, dt, figcaption, label):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { line-height: 0.9 !important; }

/* Letter Spacing */
:where(body.wp-a11y-stepper-letter-spacing-plus-1)
:where(p, li, label, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { letter-spacing: 0.05em !important; }

:where(body.wp-a11y-stepper-letter-spacing-plus-2)
:where(p, li, label, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { letter-spacing: 0.1em !important; }

:where(body.wp-a11y-stepper-letter-spacing-plus-3)
:where(p, li, label, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { letter-spacing: 0.15em !important; }

:where(body.wp-a11y-stepper-letter-spacing-minus-1)
:where(p, li, label, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { letter-spacing: -0.02em !important; }

:where(body.wp-a11y-stepper-letter-spacing-minus-2)
:where(p, li, label, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { letter-spacing: -0.05em !important; }

:where(body.wp-a11y-stepper-letter-spacing-minus-3)
:where(p, li, label, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea):not(
	.fas, .fa, .dashicons, [class*="icon"], svg,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) { letter-spacing: -0.08em !important; }

/* ==========================================
   4. COLOR & CONTRAST ADJUSTMENTS
   ========================================== */

/* Dark Contrast */
:where(body.wp-a11y-color-dark-contrast) {
	background-color: #111111 !important;
	background-image: none !important;
	color: #ffffff !important;
	border-color: #555555 !important;
}

:where(body.wp-a11y-color-dark-contrast)
:where(main, section, article, aside, header, footer, nav, div, p, li, span, blockquote, figcaption, a, label, h1, h2, h3, h4, h5, h6, button, input, select, textarea, td, th):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	background-color: #111111 !important;
	background-image: none !important;
	color: #ffffff !important;
	border-color: #555555 !important;
}

:where(body.wp-a11y-color-dark-contrast)
:where(a, a *):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	color: #ffd84d !important;
}

:where(body.wp-a11y-color-dark-contrast)
:where(:focus, :focus-visible):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 3px solid #00c8ff !important;
	outline-offset: 2px !important;
}

/* Light Contrast */
:where(body.wp-a11y-color-light-contrast) {
	background-color: #ffffff !important;
	background-image: none !important;
	color: #111111 !important;
	border-color: #cccccc !important;
}

:where(body.wp-a11y-color-light-contrast)
:where(main, section, article, aside, header, footer, nav, div, p, li, span, blockquote, figcaption, a, label, h1, h2, h3, h4, h5, h6, button, input, select, textarea, td, th):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	background-color: #ffffff !important;
	background-image: none !important;
	color: #111111 !important;
	border-color: #cccccc !important;
}

:where(body.wp-a11y-color-light-contrast)
:where(a, a *):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	color: #0047ff !important;
}

:where(body.wp-a11y-color-light-contrast)
:where(:focus, :focus-visible):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 3px solid #111111 !important;
	outline-offset: 2px !important;
}

/* High Contrast */
:where(body.wp-a11y-color-high-contrast) {
	background-color: #000000 !important;
	background-image: none !important;
	color: #ffffff !important;
	border-color: #ffffff !important;
}

:where(body.wp-a11y-color-high-contrast)
:where(main, section, article, aside, header, footer, nav, div, p, li, span, blockquote, figcaption, a, label, h1, h2, h3, h4, h5, h6, button, input, select, textarea, td, th):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	background-color: #000000 !important;
	background-image: none !important;
	color: #ffffff !important;
	border-color: #ffffff !important;
}

:where(body.wp-a11y-color-high-contrast)
:where(a, a *):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	color: #ffff00 !important;
	text-decoration: underline !important;
	font-weight: 700 !important;
}

:where(body.wp-a11y-color-high-contrast)
:where(:focus, :focus-visible):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 3px solid #ffff00 !important;
	outline-offset: 2px !important;
}

/* Saturation / Monochrome
   Applied via direct child only to avoid double compounding.
*/
:where(body.wp-a11y-color-high-saturation) > :where(*):not(
	#wp-accessibility-engine-root,
	.wp-a11y-bypass,
	[data-wp-a11y-ignore="true"]
) {
	filter: saturate(200%) !important;
}

:where(body.wp-a11y-color-low-saturation) > :where(*):not(
	#wp-accessibility-engine-root,
	.wp-a11y-bypass,
	[data-wp-a11y-ignore="true"]
) {
	filter: saturate(50%) !important;
}

:where(body.wp-a11y-color-monochrome) > :where(*):not(
	#wp-accessibility-engine-root,
	.wp-a11y-bypass,
	[data-wp-a11y-ignore="true"]
) {
	filter: grayscale(100%) !important;
}

/* Custom Colors */
:where(body.wp-a11y-has-custom-text)
:where(p, li, span, blockquote, figcaption, label, td, th, dt, dd):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	color: var(--wp-a11y-custom-text) !important;
}

:where(body.wp-a11y-has-custom-title)
:where(h1, h2, h3, h4, h5, h6):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	color: var(--wp-a11y-custom-title) !important;
}

:where(body.wp-a11y-has-custom-bg)
:where(main, section, article, header, footer, aside, div, nav):not(
	.wp-a11y-ignore-classification,
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	background-color: var(--wp-a11y-custom-bg) !important;
}

:where(body.wp-a11y-has-custom-link)
:where(a):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	color: var(--wp-a11y-custom-link) !important;
}

/* ==========================================
   5. ORIENTATION & DYNAMIC TOOLS
   ========================================== */

/* Hide Images */
:where(body.wp-a11y-orient-hide-images)
:where(img, video, iframe):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	display: none !important;
}

:where(body.wp-a11y-orient-hide-images)
:where(*):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	background-image: none !important;
}

/* Highlight Hover
   Targeted to common interactive elements.
*/
:where(body.wp-a11y-orient-highlight-hover)
:where(a, button, summary, input, select, textarea, [role="button"], [role="link"], [tabindex], h1, h2, h3, h4, h5, h6, p, li):hover:not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 3px solid #ff9500 !important;
	outline-offset: 2px !important;
}

/* Highlight Focus */
:where(body.wp-a11y-orient-highlight-focus)
:where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]):focus-visible:not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 4px solid #0066ff !important;
	outline-offset: 3px !important;
}

:where(body.wp-a11y-orient-highlight-focus)
:where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]):focus:not(:focus-visible):not(
	#wp-accessibility-engine-root,
	#wp-accessibility-engine-root *,
	.wp-a11y-bypass,
	.wp-a11y-bypass *,
	[data-wp-a11y-ignore="true"],
	[data-wp-a11y-ignore="true"] *
) {
	outline: 4px solid #0066ff !important;
	outline-offset: 3px !important;
}

/* Big Black Cursor */
body.wp-a11y-orient-big-black-cursor,
body.wp-a11y-orient-big-black-cursor :where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]) {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M4 0l16 11-6 2 4 8-3 2-4-8-5 5z'/%3E%3C/svg%3E"), auto !important;
}

body.wp-a11y-orient-big-black-cursor #wp-accessibility-engine-root,
body.wp-a11y-orient-big-black-cursor #wp-accessibility-engine-root *,
body.wp-a11y-orient-big-black-cursor .wp-a11y-bypass,
body.wp-a11y-orient-big-black-cursor .wp-a11y-bypass *,
body.wp-a11y-orient-big-black-cursor [data-wp-a11y-ignore="true"],
body.wp-a11y-orient-big-black-cursor [data-wp-a11y-ignore="true"] * {
	cursor: auto !important;
}

/* Big White Cursor */
body.wp-a11y-orient-big-white-cursor,
body.wp-a11y-orient-big-white-cursor :where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]) {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='white' stroke='black' stroke-width='1'%3E%3Cpath d='M4 0l16 11-6 2 4 8-3 2-4-8-5 5z'/%3E%3C/svg%3E"), auto !important;
}

body.wp-a11y-orient-big-white-cursor #wp-accessibility-engine-root,
body.wp-a11y-orient-big-white-cursor #wp-accessibility-engine-root *,
body.wp-a11y-orient-big-white-cursor .wp-a11y-bypass,
body.wp-a11y-orient-big-white-cursor .wp-a11y-bypass *,
body.wp-a11y-orient-big-white-cursor [data-wp-a11y-ignore="true"],
body.wp-a11y-orient-big-white-cursor [data-wp-a11y-ignore="true"] * {
	cursor: auto !important;
}

/* ==========================================
   6. DYNAMIC UI TOOLS (Mask, Guide, Magnifier, Read Mode)
   ========================================== */

/* Dynamic Text Magnifier Lens */
.wp-a11y-magnifier-lens {
	position: fixed !important;
	top: var(--wp-a11y-mag-y, 50vh) !important;
	left: var(--wp-a11y-mag-x, 50vw) !important;
	width: 300px !important;
	height: 300px !important;
	transform: translate(-50%, -50%) !important;
	border-radius: 50% !important;
	background-color: rgba(200, 200, 200, 0.15) !important;
	backdrop-filter: blur(12px) brightness(1.1) !important;
	-webkit-backdrop-filter: blur(12px) brightness(1.1) !important;
	border: 2px solid rgba(255, 255, 255, 0.4) !important;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2), inset 0 0 20px rgba(255, 255, 255, 0.5) !important;
	overflow: hidden !important;
	pointer-events: none !important;
	z-index: 999999 !important;
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	transition: opacity 0.2s ease, visibility 0.2s ease !important;
}

.wp-a11y-lens-hidden {
	opacity: 0 !important;
	visibility: hidden !important;
}

.wp-a11y-magnifier-content {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	transform: translate(
		calc(150px - var(--wp-a11y-mag-rel-x, 150px) * 2),
		calc(150px - var(--wp-a11y-mag-rel-y, 150px) * 2)
	) scale(2) !important;
	transform-origin: top left !important;
	pointer-events: none !important;
	background-color: transparent !important;
}

.wp-a11y-magnifier-content * {
	background-color: transparent !important;
}

/* Reading Mask */
.wp-a11y-reading-mask-element {
	position: fixed !important;
	left: 0 !important;
	right: 0 !important;
	top: var(--wp-a11y-mouse-y, 50vh) !important;
	height: 15vh !important;
	transform: translateY(-50%) !important;
	pointer-events: none !important;
	z-index: 999998 !important;
	box-shadow:
		0 -100vh 0 100vh rgba(0, 0, 0, 0.75),
		0 100vh 0 100vh rgba(0, 0, 0, 0.75) !important;
}

/* Reading Guide */
.wp-a11y-reading-guide-element {
	position: fixed !important;
	left: 0 !important;
	right: 0 !important;
	top: var(--wp-a11y-mouse-y, 50vh) !important;
	height: 4px !important;
	background-color: var(--wp-a11y-accent, #0066ff) !important;
	border-top: 1px solid #000 !important;
	border-bottom: 1px solid #000 !important;
	transform: translateY(-50%) !important;
	pointer-events: none !important;
	z-index: 999998 !important;
}

/* ==========================================
   7. READ MODE
   ========================================== */

body.wp-a11y-read-mode-active > :where(*:not(#wp-a11y-read-mode-modal):not(#wp-accessibility-engine-root):not(script):not(style)) {
	display: none !important;
}

#wp-a11y-read-mode-modal {
	position: static !important;
	width: 100% !important;
	min-height: 100vh !important;
	background-color: #f5f5f7 !important;
	padding: 60px 20px !important;
	box-sizing: border-box !important;
	z-index: 999997 !important;
}

.wp-a11y-read-mode-content-wrapper,
.wp-a11y-read-mode-content-wrapper * {
	box-sizing: border-box !important;
}

.wp-a11y-read-mode-content-wrapper {
	max-width: 800px !important;
	margin: 0 auto !important;
	background-color: #ffffff !important;
	padding: 60px !important;
	border-radius: 12px !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	position: relative !important;
}

.wp-a11y-read-mode-close {
	position: absolute !important;
	top: 20px !important;
	right: 20px !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	background-color: #f2f2f7 !important;
	color: #86868b !important;
	border: none !important;
	cursor: pointer !important;
	font-size: 24px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: background-color 0.2s ease, transform 0.2s ease, color 0.2s ease !important;
	z-index: 10 !important;
}

.wp-a11y-read-mode-close:hover {
	background-color: #e5e5ea !important;
	color: #1d1d1f !important;
	transform: scale(1.05) !important;
}

.wp-a11y-read-mode-content-wrapper * {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
	color: #1d1d1f !important;
	line-height: 1.8 !important;
	text-align: left !important;
	background: transparent !important;
	float: none !important;
	position: static !important;
	visibility: visible !important;
	opacity: 1 !important;
	max-height: none !important;
	max-width: 100% !important;
	transform: none !important;
	filter: none !important;
}

.wp-a11y-read-mode-content-wrapper :where(div, p, section, article, h1, h2, h3, h4, h5, h6, ul, ol, li, blockquote, figure, figcaption) {
	display: block !important;
	height: auto !important;
	min-height: 1px !important;
	overflow: visible !important;
}

.wp-a11y-read-mode-content-wrapper article {
	margin-bottom: 40px !important;
	padding-bottom: 40px !important;
	border-bottom: 1px solid #e5e5ea !important;
}

.wp-a11y-read-mode-content-wrapper article:last-child {
	border-bottom: none !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.wp-a11y-read-mode-content-wrapper p,
.wp-a11y-read-mode-content-wrapper li,
.wp-a11y-read-mode-content-wrapper blockquote,
.wp-a11y-read-mode-content-wrapper figcaption {
	font-size: 1.25rem !important;
	margin-bottom: 1.5em !important;
}

.wp-a11y-read-mode-content-wrapper :where(h1, h2, h3, h4, h5, h6) {
	font-weight: 700 !important;
	margin-top: 1.5em !important;
	margin-bottom: 0.5em !important;
	line-height: 1.3 !important;
	letter-spacing: -0.02em !important;
}

.wp-a11y-read-mode-content-wrapper h1 { font-size: 2.5rem !important; }
.wp-a11y-read-mode-content-wrapper h2 { font-size: 2rem !important; }
.wp-a11y-read-mode-content-wrapper h3 { font-size: 1.75rem !important; }
.wp-a11y-read-mode-content-wrapper h4 { font-size: 1.5rem !important; }
.wp-a11y-read-mode-content-wrapper h5 { font-size: 1.25rem !important; }
.wp-a11y-read-mode-content-wrapper h6 { font-size: 1.125rem !important; }

.wp-a11y-read-mode-content-wrapper a {
	color: #0066ff !important;
	text-decoration: underline !important;
	font-weight: 500 !important;
}

.wp-a11y-read-mode-content-wrapper :where(img, figure, video) {
	max-width: 100% !important;
	height: auto !important;
	border-radius: 12px !important;
	margin: 2em auto !important;
}

.wp-a11y-read-mode-content-wrapper :where(ul, ol) {
	margin-bottom: 1.5em !important;
	padding-left: 2em !important;
	font-size: 1.25rem !important;
}

.wp-a11y-read-mode-content-wrapper li {
	margin-bottom: 0.5em !important;
}

.wp-a11y-read-mode-content-wrapper :where(table) {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 2em 0 !important;
}

.wp-a11y-read-mode-content-wrapper :where(th, td) {
	border: 1px solid #d2d2d7 !important;
	padding: 0.75em !important;
	text-align: left !important;
}

.wp-a11y-read-mode-content-wrapper :where(pre, code) {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace !important;
	background-color: #f2f2f7 !important;
	color: #1d1d1f !important;
	border-radius: 8px !important;
}

.wp-a11y-read-mode-content-wrapper pre {
	padding: 1rem !important;
	overflow: auto !important;
	margin: 1.5em 0 !important;
}

.wp-a11y-read-mode-content-wrapper code {
	padding: 0.15em 0.35em !important;
}

/* ==========================================
   8. MOBILE GUARDS & OPTIMIZATIONS
   ========================================== */

@media (max-width: 768px) {
	/* Normalize ADHD profile (remove opacity fading) */
	:where(body.wp-a11y-profile-adhd-friendly) :where(aside, footer, [role="complementary"], [role="contentinfo"], .widget, .sidebar) {
		opacity: 1 !important;
		filter: none !important;
	}

	/* Reset Keyboard Navigation Focus */
	:where(body.wp-a11y-profile-keyboard-navigation) :where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]):focus-visible,
	:where(body.wp-a11y-profile-keyboard-navigation) :where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]):focus {
		outline: none !important;
	}

	/* Disable Global Hover Outline */
	:where(body.wp-a11y-orient-highlight-hover) :where(a, button, summary, input, select, textarea, [role="button"], [role="link"], [tabindex], h1, h2, h3, h4, h5, h6, p, li):hover {
		outline: none !important;
	}

	/* Soften Highlight Focus for mobile (limit to forms only, thin outline) */
	:where(body.wp-a11y-orient-highlight-focus) :where(a, button, summary, [role="button"], [role="link"], [tabindex]):focus,
	:where(body.wp-a11y-orient-highlight-focus) :where(a, button, summary, [role="button"], [role="link"], [tabindex]):focus-visible {
		outline: none !important;
	}
	:where(body.wp-a11y-orient-highlight-focus) :where(input, select, textarea):focus {
		outline: 1px solid #0066ff !important;
		outline-offset: 1px !important;
	}

	/* Reset Content Scaling (Prevent layout breaking) */
	:where(html[class*="wp-a11y-stepper-content-scaling-"]) {
		zoom: 1 !important;
	}

	/* Hide dynamic tools CSS visually */
	.wp-a11y-magnifier-lens,
	.wp-a11y-reading-mask-element,
	.wp-a11y-reading-guide-element {
		display: none !important;
	}

	/* Reset Cursors */
	body.wp-a11y-orient-big-black-cursor,
	body.wp-a11y-orient-big-black-cursor :where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]),
	body.wp-a11y-orient-big-white-cursor,
	body.wp-a11y-orient-big-white-cursor :where(a, button, input, select, textarea, summary, [role="button"], [role="link"], [tabindex]) {
		cursor: auto !important;
	}
}