:root {
	--ntz-a11y--color-dark-background-default: color-mix(in srgb, Canvas, CanvasText 2.5%);
	--ntz-a11y--color-dark-foreground-default: color-mix(in srgb, CanvasText, Canvas 15%);
	--ntz-a11y--contrast-min-default: 25%;
	--ntz-a11y--contrast-max-default: 175%;
	--ntz-a11y--contrast-step-default: 15%;
	--ntz-a11y--contrast-min: var(--ntz-a11y--contrast-min-customizer, var(--ntz-a11y--contrast-min-default));
	--ntz-a11y--contrast-max: var(--ntz-a11y--contrast-max-customizer, var(--ntz-a11y--contrast-max-default));
	--ntz-a11y--contrast-step: var(--ntz-a11y--contrast-step-customizer, var(--ntz-a11y--contrast-step-default));
	--ntz-a11y--height-reading-help-default: 100px;
	--ntz-a11y--border-reading-help-default: 5px;
	--ntz-a11y--color-reading-help-default: #FFFF00;
	--ntz-a11y--height-reading-help: var(--ntz-a11y--height-reading-help-customizer, var(--ntz-a11y--height-reading-help-default));
}

/* https://dev.to/madsstoumann/dark-mode-in-3-lines-of-css-and-other-adventures-1ljj */
html.has-a11y-tool:not(.has-a11y-styles) body {
	color-scheme: light dark;
}

html.is-dark-mode:not(.has-a11y-styles) body {
	color-scheme: dark;
	background-color: var(--ntz-a11y--color-dark-background-default);
	color: var(--ntz-a11y--color-dark-foreground-default);
}

html.is-dark-mode:not(.has-a11y-styles) body *:not(.a11y-no-schema) {
	background-color: inherit;
	color: inherit;	
}

/*
html.is-dark-mode body *:not(:is(.a11y-no-schema, svg, svg *, div#gmap, div#gmap *)) {
	background: var(--wp--preset--color--black) !important;
	color: var(--wp--preset--color--white) !important;
}
html.is-dark-mode body *:is(.wp-block-button, button, a, input, textarea, select, table, td, th, tr, tt):not(:is(.a11y-no-schema)) {
	outline: 1px solid var(--wp--preset--color--white) !important;
}
html.is-dark-mode body * {
	-webkit-box-shadow: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	background-image: none !important;
}
*/

html.is-inverted-mode:not(.has-a11y-styles) {
	-webkit-filter: invert(100%) !important;
	filter: invert(100%) !important;
}

html.is-grayscale-mode:not(.has-a11y-styles) {
	filter: grayscale(100%) !important;
	-webkit-filter: grayscale(100%) !important;
	-webkit-filter: grayscale(1) !important;
	-moz-filter: grayscale(100%) !important;
	-ms-filter: grayscale(100%) !important;
	-o-filter: grayscale(100%) !important;
	filter: gray !important;
}

html.is-dark-mode:not(.has-a11y-styles) body *,
html.is-inverted-mode:not(.has-a11y-styles) body *,
html.is-grayscale-mode:not(.has-a11y-styles) body *, {
	-webkit-box-shadow: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

html.has-a11y-scaled-contrast {
	-webkit-filter:  !important;
	filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) !important;
}

html.is-high-contrast {
	--ntz-a11y--scale-contrast: 130;
}	

html.is-low-contrast {
	--ntz-a11y--scale-contrast: 70;
}

html.has-a11y-scaled-contrast.is-grayscale-mode:not(.has-a11y-styles) {
	-webkit-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) grayscale(100%) !important;
	-webkit-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) grayscale(1) !important;
	-moz-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) grayscale(100%) !important;
	-ms-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) grayscale(100%) !important;
	-o-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) grayscale(100%) !important;
	filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) grayscale(100%) !important;
}

html.has-a11y-scaled-contrast.is-inverted-mode:not(.has-a11y-styles) {
	-webkit-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) invert(100%) !important;
	-moz-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) invert(100%) !important;
	-ms-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) invert(100%) !important;
	-o-filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) invert(100%) !important;
	filter: contrast(calc(var(--ntz-a11y--scale-contrast) * 1%)) saturate(calc(var(--ntz-a11y--scale-contrast) * 1%)) invert(100%) !important;
}

html.no-transitions:not(.has-a11y-styles) * {
	transition: none !important;
}

html.no-transparency:not(.has-a11y-styles) * {
	opacity: 1 !important;
}

html:not(.has-a11y-reading-mask) #a11y-reading-mask-upper,
html:not(.has-a11y-reading-mask) #a11y-reading-mask-lower {
	display: none !important;
	visibility: hidden;
	height: 0 !important;
	border: none !important;
}

html.has-a11y-reading-mask #a11y-reading-mask-upper,
html.has-a11y-reading-mask #a11y-reading-mask-lower {
	position: fixed !important;
	width: 100% !important;
	background: rgba(0, 0, 0, 0.5) !important;
	z-index: 9998;
}

html.has-a11y-reading-mask #a11y-reading-mask-upper {
	top: 0px;
	height: 0px;
	border-bottom: calc(var(--ntz-a11y--border-reading-help, var(--ntz-a11y--border-reading-help-default)) * 1px) solid var(--ntz-a11y--color-reading-help, var(--ntz-a11y--color-reading-help-default));
}

html.has-a11y-reading-mask #a11y-reading-mask-lower {
	bottom: 0px;
	height: 0px;
	border-top: calc(var(--ntz-a11y--border-reading-help, var(--ntz-a11y--border-reading-help-default)) * 1px) solid var(--ntz-a11y--color-reading-help, var(--ntz-a11y--color-reading-help-default));
}