/* Persisted accessibility effects scoped to public page content. */

html {
	font-size: var(--wp--custom--accessibility--text-scale, 100%);
}

html.sggw-a11y-reduced-motion {
	scroll-behavior: auto;
}

.wp-site-blocks {
	min-block-size: 100dvh;
	background-color: var(--sggw-surface-page);
}

/*
 * High contrast remains a semantic black/yellow mode. It changes the same
 * minimal surface inputs as the normal contract, so custom blocks, Core
 * blocks and nested surfaces all receive one consistent result.
 */
html.sggw-a11y-high-contrast .wp-site-blocks,
html.sggw-a11y-high-contrast .wp-site-blocks :where(
	.has-background,
	.has-sggw-sage-100-background-color,
	.has-sggw-sage-95-background-color,
	.has-sggw-sage-90-background-color,
	.has-sggw-sage-85-background-color,
	.has-sggw-surface-0-background-color,
	.has-sggw-surface-1-background-color,
	.has-sggw-surface-2-background-color,
	.has-sggw-surface-3-background-color,
	.sggw-surface-0,
	.sggw-surface-1,
	.sggw-surface-2,
	.sggw-surface-3,
	.sggw-surface-context-0,
	.sggw-surface-context-1,
	.sggw-surface-context-2,
	.sggw-surface-context-3,
	.has-sggw-green-5-background-color,
	.has-sggw-green-15-background-color,
	.has-sggw-green-0-background-color,
	.has-sggw-green-10-background-color,
	.is-sggw-dark-surface-level-0,
	.is-sggw-dark-surface-level-3,
	.sggw-surface-accent-0,
	.sggw-surface-accent-1,
	.sggw-surface-context-accent-0,
	.sggw-surface-context-accent-1
) {
	color-scheme: dark;
	--sggw-surface-page: #000000;
	--sggw-surface-current: #000000;
	--sggw-surface-alternating: #000000;
	--sggw-module-default-surface: #000000;
	--sggw-module-default-alternating: #000000;
	--sggw-text: #ffff00;
	--sggw-text-muted: #ffff00;
	--sggw-line-focus: #ffff00;
	--sggw-line-functional: #ffff00;
	--sggw-line-decorative: #ffff00;
	--sggw-line: #ffff00;
	--sggw-button-background: #ffff00;
	--sggw-button-foreground: #000000;
	--sggw-button-background-hover: #ffff00;
	--sggw-button-foreground-hover: #000000;
	--sggw-button-outline: #ffff00;
	--sggw-link-decoration-rest: underline;
	--sggw-inline-link-decoration-rest: underline;
	--sggw-link-foreground: #ffff00;
	--sggw-module-default-inline-link-decoration-rest: underline;
	--sggw-module-default-link-foreground: #ffff00;
	--wp--custom--component--navigation--interaction-accent: #ffff00;
	background-color: #000000 !important;
	color: #ffff00;
}

html.sggw-a11y-high-contrast .wp-site-blocks {
	--wp--preset--color--base: #000000;
	--wp--preset--color--base-2: #000000;
	--wp--preset--color--contrast: #ffff00;
	--wp--preset--color--contrast-2: #ffff00;
	--wp--preset--color--contrast-3: #ffff00;
}

html.sggw-a11y-high-contrast .wp-site-blocks :where(
	.has-sggw-text-default-color,
	.has-sggw-text-muted-color,
	.has-sggw-text-accent-color,
	.has-sggw-timeline-date-accent-color,
	.has-base-color,
	.has-base-2-color,
	.has-contrast-color,
	.has-contrast-2-color,
	.has-contrast-3-color
) {
	color: #ffff00 !important;
}

html.sggw-a11y-high-contrast .wp-site-blocks :where(
	.has-base-background-color,
	.has-base-2-background-color,
	.has-contrast-background-color,
	.has-contrast-2-background-color,
	.has-contrast-3-background-color,
	.has-gradient-background
) {
	background-color: #000000 !important;
	background-image: none !important;
}

html.sggw-a11y-high-contrast .wp-site-blocks :where(
	a,
	button,
	input,
	select,
	textarea,
	summary
) {
	outline-color: #ffff00;
}

html.sggw-a11y-high-contrast .wp-site-blocks ::selection,
html.sggw-a11y-high-contrast .wp-site-blocks mark {
	background: #ffff00;
	color: #000000;
}

/* Photographs and embedded media keep their natural colors in every mode. */
@media (forced-colors: none) {
	html.sggw-a11y-grayscale .wp-site-blocks {
		filter: grayscale(1);
	}

	html.sggw-a11y-negative .wp-site-blocks {
		filter: invert(1) hue-rotate(180deg);
	}

	html.sggw-a11y-negative .wp-site-blocks
		:is(img:not([src$=".svg" i]), video, iframe, canvas, embed, object) {
		filter: invert(1) hue-rotate(180deg);
	}

	/* A filtered ancestor would become the containing block for the fixed menu. */
	html.sggw-a11y-grayscale:has(
		.wp-block-navigation__responsive-container.is-menu-open
	) .wp-site-blocks,
	html.sggw-a11y-negative:has(
		.wp-block-navigation__responsive-container.is-menu-open
	) .wp-site-blocks {
		filter: none;
	}
}
