/* AriAccess display panel. Scoped to #ariaccess; page effects are scoped to html.ariaccess-* classes. */

/* ---------- Panel reset ---------- */
#ariaccess,
#ariaccess * {
	box-sizing: border-box;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: normal;
	word-spacing: normal;
	text-transform: none;
	text-shadow: none;
	text-align: start;
	line-height: 1.35;
	float: none;
	margin: 0;
}
#ariaccess {
	--ariaccess-bg: #ffffff;
	--ariaccess-fg: #111827;
	--ariaccess-muted: #4b5563;
	--ariaccess-line: #d1d5db;
	--ariaccess-tile: #f3f4f6;
	--ariaccess-tile-hover: #e5e7eb;
	--ariaccess-focus: #111827;
	position: static;
	font-size: 16px;
	color: var(--ariaccess-fg);
}
#ariaccess [hidden] {
	display: none !important;
}
#ariaccess .ariaccess-sr,
.ariaccess-sr {
	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;
	white-space: nowrap !important;
	border: 0 !important;
}
#ariaccess button {
	appearance: none;
	font: inherit;
	font-size: 15px;
	cursor: pointer;
	border-radius: 10px;
	min-height: 44px;
	text-decoration: none;
}
#ariaccess svg {
	display: block;
	flex: none;
}
#ariaccess :focus-visible {
	outline: 3px solid var(--ariaccess-focus) !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px var(--ariaccess-bg) !important;
}

/* ---------- Trigger ---------- */
#ariaccess .ariaccess-trigger {
	position: fixed;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 2px solid var(--ariaccess-on-accent, #fff);
	border-radius: 50%;
	background: var(--ariaccess-accent, #1d4ed8);
	color: var(--ariaccess-on-accent, #fff);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
	transition: transform 0.15s ease;
}
#ariaccess .ariaccess-trigger:hover {
	transform: scale(1.06);
}
#ariaccess.ariaccess--s .ariaccess-trigger {
	width: 44px;
	height: 44px;
}
#ariaccess.ariaccess--l .ariaccess-trigger {
	width: 62px;
	height: 62px;
}
#ariaccess.ariaccess--l .ariaccess-trigger svg {
	width: 36px;
	height: 36px;
}
#ariaccess.ariaccess--bottom-right .ariaccess-trigger { right: var(--ariaccess-x); bottom: var(--ariaccess-y); }
#ariaccess.ariaccess--bottom-left .ariaccess-trigger { left: var(--ariaccess-x); bottom: var(--ariaccess-y); }
#ariaccess.ariaccess--top-right .ariaccess-trigger { right: var(--ariaccess-x); top: var(--ariaccess-y); }
#ariaccess.ariaccess--top-left .ariaccess-trigger { left: var(--ariaccess-x); top: var(--ariaccess-y); }
#ariaccess.ariaccess--middle-right .ariaccess-trigger { right: var(--ariaccess-x); top: 50%; margin-top: -26px; }
#ariaccess.ariaccess--middle-left .ariaccess-trigger { left: var(--ariaccess-x); top: 50%; margin-top: -26px; }
body.admin-bar #ariaccess.ariaccess--top-right .ariaccess-trigger,
body.admin-bar #ariaccess.ariaccess--top-left .ariaccess-trigger {
	top: calc(var(--ariaccess-y) + 32px);
}

/* ---------- Panel ---------- */
#ariaccess .ariaccess-panel {
	position: fixed;
	z-index: 2147483001;
	display: flex;
	flex-direction: column;
	width: 400px;
	max-width: calc(100vw - 24px);
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	background: var(--ariaccess-bg);
	color: var(--ariaccess-fg);
	border: 1px solid var(--ariaccess-line);
	border-radius: 16px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
	overflow: hidden;
}
#ariaccess.ariaccess--bottom-right .ariaccess-panel,
#ariaccess.ariaccess--middle-right .ariaccess-panel,
#ariaccess.ariaccess--top-right .ariaccess-panel { right: 12px; }
#ariaccess.ariaccess--bottom-left .ariaccess-panel,
#ariaccess.ariaccess--middle-left .ariaccess-panel,
#ariaccess.ariaccess--top-left .ariaccess-panel { left: 12px; }
#ariaccess.ariaccess--bottom-right .ariaccess-panel,
#ariaccess.ariaccess--bottom-left .ariaccess-panel,
#ariaccess.ariaccess--middle-right .ariaccess-panel,
#ariaccess.ariaccess--middle-left .ariaccess-panel { bottom: 16px; }
#ariaccess.ariaccess--top-right .ariaccess-panel,
#ariaccess.ariaccess--top-left .ariaccess-panel { top: 16px; }

#ariaccess .ariaccess-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 14px 14px 20px;
	background: var(--ariaccess-accent, #1d4ed8);
	color: var(--ariaccess-on-accent, #fff);
}
#ariaccess .ariaccess-title {
	font-size: 19px;
	font-weight: 700;
	color: inherit;
	padding: 0;
	border: 0;
	background: none;
}
#ariaccess .ariaccess-title:focus {
	outline: none;
}
#ariaccess .ariaccess-title:focus-visible {
	outline: 3px solid var(--ariaccess-on-accent, #fff) !important;
	box-shadow: none !important;
}
#ariaccess .ariaccess-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	padding: 0;
	background: transparent;
	color: inherit;
	border: 2px solid transparent;
}
#ariaccess .ariaccess-close:hover {
	border-color: currentColor;
}
#ariaccess .ariaccess-close:focus-visible {
	outline-color: var(--ariaccess-on-accent, #fff) !important;
	box-shadow: none !important;
}
#ariaccess .ariaccess-body {
	padding: 4px 20px 16px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
#ariaccess .ariaccess-intro {
	margin: 12px 0 4px;
	font-size: 14px;
	color: var(--ariaccess-muted);
}
#ariaccess .ariaccess-section {
	margin-top: 16px;
}
#ariaccess .ariaccess-h {
	margin: 0 0 8px;
	padding: 0;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--ariaccess-muted);
	border: 0;
	background: none;
}
#ariaccess .ariaccess-grid,
#ariaccess .ariaccess-profiles {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}
#ariaccess .ariaccess-module,
#ariaccess .ariaccess-profile {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 10px 12px;
	background: var(--ariaccess-tile);
	color: var(--ariaccess-fg);
	border: 2px solid transparent;
	text-align: start;
	position: relative;
}
#ariaccess .ariaccess-module:hover,
#ariaccess .ariaccess-profile:hover {
	background: var(--ariaccess-tile-hover);
}
#ariaccess .ariaccess-module[aria-pressed="true"],
#ariaccess .ariaccess-profile[aria-pressed="true"] {
	background: var(--ariaccess-bg);
	border-color: var(--ariaccess-accent, #1d4ed8);
	box-shadow: inset 0 0 0 1px var(--ariaccess-accent, #1d4ed8);
}
#ariaccess .ariaccess-module[aria-pressed="true"]::after,
#ariaccess .ariaccess-profile[aria-pressed="true"]::after {
	content: "";
	position: absolute;
	top: 8px;
	right: 8px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--ariaccess-accent, #1d4ed8) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6 11-11-1.4-1.4z'/%3E%3C/svg%3E") center / 14px no-repeat;
}
#ariaccess .ariaccess-module-label,
#ariaccess .ariaccess-profile-name {
	font-size: 14.5px;
	font-weight: 600;
	padding-right: 18px;
}
#ariaccess .ariaccess-profile-desc {
	font-size: 12.5px;
	color: var(--ariaccess-muted);
}
#ariaccess .ariaccess-module-icon {
	display: block;
	width: 24px;
	height: 24px;
	background: currentColor;
	-webkit-mask: var(--ariaccess-icon) center / contain no-repeat;
	mask: var(--ariaccess-icon) center / contain no-repeat;
}
#ariaccess .ariaccess-dots {
	display: flex;
	gap: 4px;
}
#ariaccess .ariaccess-dots i {
	display: block;
	width: 18px;
	height: 5px;
	border-radius: 3px;
	background: var(--ariaccess-line);
}
#ariaccess .ariaccess-dots i.is-on {
	background: var(--ariaccess-accent, #1d4ed8);
}

/* Text size stepper spans the whole row. */
#ariaccess .ariaccess-size {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 1fr auto auto auto;
	align-items: center;
	gap: 8px;
	padding: 8px 8px 8px 12px;
	background: var(--ariaccess-tile);
	border-radius: 10px;
}
#ariaccess .ariaccess-size-label {
	font-size: 14.5px;
	font-weight: 600;
}
#ariaccess .ariaccess-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	padding: 0;
	text-align: center;
	font-weight: 700;
	background: var(--ariaccess-bg);
	color: var(--ariaccess-fg);
	border: 2px solid var(--ariaccess-line);
}
#ariaccess .ariaccess-step:hover {
	border-color: var(--ariaccess-fg);
}
#ariaccess .ariaccess-size-value {
	min-width: 52px;
	text-align: center;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

#ariaccess .ariaccess-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	padding: 12px 20px;
	border-top: 1px solid var(--ariaccess-line);
}
#ariaccess .ariaccess-reset {
	padding: 0 16px;
	background: var(--ariaccess-fg);
	color: var(--ariaccess-bg);
	border: 2px solid var(--ariaccess-fg);
	font-weight: 600;
}
#ariaccess .ariaccess-link {
	color: var(--ariaccess-fg);
	font-size: 14px;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	padding: 10px 0;
}

/* Icons (masks keep them in the current text colour). */
#ariaccess .ariaccess-i-line-height { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 5h11v2H10zm0 6h11v2H10zm0 6h11v2H10zM6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-letter-spacing { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.2 3 3 14h2.1l.9-2.6h4l.9 2.6H13L8.8 3H7.2zm-.6 6.6L8 5.6l1.4 4zM15 3h2v11h-2zm4 0h2v11h-2zM2 18h20v2H2z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-readable-font,
#ariaccess .ariaccess-i-dyslexia-font { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.6 4h-2L2 20h2.3l1.5-4.3h5.6l1.5 4.3h2.3zm-3.1 9.7L8.6 7.6l2.1 6.1zM19 9c-2.5 0-4 1.5-4 1.5l1 1.5s1.2-1 2.8-1c1.3 0 2 .7 2 1.8V13h-2.5c-2.4 0-3.8 1.2-3.8 3.1 0 1.9 1.4 3.1 3.4 3.1 1.3 0 2.3-.6 2.9-1.4V19H23v-6.7C23 10.2 21.5 9 19 9zm1.8 6.5c0 1.1-1 2-2.3 2-.9 0-1.5-.5-1.5-1.3 0-.8.6-1.3 1.8-1.3h2z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-align-left { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18v2H3zm0 5h12v2H3zm0 5h18v2H3zm0 5h12v2H3z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-contrast-dark,
#ariaccess .ariaccess-i-contrast-light { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18V4a8 8 0 0 1 0 16z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-monochrome,
#ariaccess .ariaccess-i-low-saturation { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.7 6.3 8.4a8 8 0 1 0 11.4 0zM12 19.6a5.6 5.6 0 0 1-4-9.6l4-4z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-highlight-links { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.6 13.4a1 1 0 0 1 0-1.4l4-4a1 1 0 1 1 1.4 1.4l-4 4a1 1 0 0 1-1.4 0zM8.5 19.8a4.3 4.3 0 0 1-3-7.3l2.2-2.2 1.4 1.4-2.2 2.2a2.3 2.3 0 0 0 3.2 3.2l2.2-2.2 1.4 1.4-2.2 2.2a4.3 4.3 0 0 1-3 1.3zm8-6.1-1.4-1.4 2.2-2.2a2.3 2.3 0 0 0-3.2-3.2l-2.2 2.2-1.4-1.4 2.2-2.2a4.3 4.3 0 0 1 6 6z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-highlight-headings { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4h2.2v7h9.6V4H19v16h-2.2v-7H7.2v7H5z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-stop-motion { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM9 8h2v8H9zm4 0h2v8h-2z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-hide-images { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.3 2 2 3.3 4 5.2V19a1 1 0 0 0 1 1h13.8l2 2 1.3-1.3zM6 18v-1.6l3.5-4.5 2.4 3 .9-1.1L16.8 18zM20 5v11.2L8.8 5H20z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-big-cursor { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 2v19l5-5 3.3 7 2.9-1.4-3.3-6.9H20z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-reading-guide { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v2H3zm0 5h18v4H3zm0 7h18v2H3z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-reading-mask { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h18v6H3zm0 12h18v6H3zm2-4h14v2H5z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-focus-ring { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h7v2H5v5H3zm11 0h7v7h-2V5h-5zM3 14h2v5h5v2H3zm16 0h2v7h-7v-2h5zM8 8h8v8H8z'/%3E%3C/svg%3E"); }
#ariaccess .ariaccess-i-read-aloud { --ariaccess-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9v6h4l5 5V4L7 9zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.5 4.5 0 0 0 2.5-4zM14 3.2v2.1a7 7 0 0 1 0 13.4v2.1a9 9 0 0 0 0-17.6z'/%3E%3C/svg%3E"); }

/* Reading guide and mask. */
#ariaccess .ariaccess-guide {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	height: 12px;
	z-index: 2147482990;
	pointer-events: none;
	background: rgba(255, 213, 0, 0.45);
	border-top: 3px solid #111;
	border-bottom: 3px solid #111;
	transform: translateY(-100px);
}
#ariaccess .ariaccess-mask {
	position: fixed;
	inset: 0;
	z-index: 2147482990;
	pointer-events: none;
}
#ariaccess .ariaccess-mask-top,
#ariaccess .ariaccess-mask-bottom {
	position: absolute;
	left: 0;
	right: 0;
	background: rgba(0, 0, 0, 0.62);
}
#ariaccess .ariaccess-mask-top {
	top: 0;
	height: 40vh;
}
#ariaccess .ariaccess-mask-bottom {
	bottom: 0;
	top: calc(40vh + 120px);
}

/* Small screens: bottom sheet. */
#ariaccess .ariaccess-trigger {
	-webkit-tap-highlight-color: transparent;
}
@media (max-width: 600px) {
	#ariaccess .ariaccess-trigger[aria-expanded="true"] {
		visibility: hidden;
	}
	#ariaccess .ariaccess-panel {
		left: 8px !important;
		right: 8px !important;
		bottom: 8px !important;
		top: auto !important;
		width: auto;
		max-width: none;
		max-height: 85vh;
		max-height: 85dvh;
	}
	#ariaccess .ariaccess-body {
		padding: 4px 14px 14px;
	}
}

@media (prefers-color-scheme: dark) {
	#ariaccess {
		--ariaccess-bg: #111827;
		--ariaccess-fg: #f9fafb;
		--ariaccess-muted: #d1d5db;
		--ariaccess-line: #4b5563;
		--ariaccess-tile: #1f2937;
		--ariaccess-tile-hover: #374151;
		--ariaccess-focus: #f9fafb;
	}
	#ariaccess .ariaccess-module[aria-pressed="true"],
	#ariaccess .ariaccess-profile[aria-pressed="true"] {
		border-color: var(--ariaccess-fg);
		box-shadow: inset 0 0 0 1px var(--ariaccess-fg);
	}
	#ariaccess .ariaccess-dots i.is-on {
		background: var(--ariaccess-fg);
	}
}

@media (prefers-reduced-motion: reduce) {
	#ariaccess * {
		transition: none !important;
	}
}

@media print {
	#ariaccess {
		display: none !important;
	}
}

@media (forced-colors: active) {
	#ariaccess .ariaccess-trigger,
	#ariaccess .ariaccess-panel,
	#ariaccess .ariaccess-module,
	#ariaccess .ariaccess-profile {
		border: 2px solid ButtonText;
	}
	#ariaccess .ariaccess-module[aria-pressed="true"],
	#ariaccess .ariaccess-profile[aria-pressed="true"] {
		border: 4px double Highlight;
	}
	#ariaccess .ariaccess-module-icon {
		background: ButtonText;
	}
}

/* ================= Page effects ================= */

/* Line spacing. */
html.ariaccess-line-height body :not(#ariaccess, #ariaccess *) { line-height: 1.8 !important; }
html.ariaccess-line-height-2 body :not(#ariaccess, #ariaccess *) { line-height: 2.1 !important; }
html.ariaccess-line-height-3 body :not(#ariaccess, #ariaccess *) { line-height: 2.5 !important; }

/* Letter and word spacing. */
html.ariaccess-letter-spacing body :not(#ariaccess, #ariaccess *) { letter-spacing: 0.06em !important; word-spacing: 0.12em !important; }
html.ariaccess-letter-spacing-2 body :not(#ariaccess, #ariaccess *) { letter-spacing: 0.12em !important; word-spacing: 0.16em !important; }
html.ariaccess-letter-spacing-3 body :not(#ariaccess, #ariaccess *) { letter-spacing: 0.18em !important; word-spacing: 0.24em !important; }

/* Fonts (icon fonts, code and SVG keep theirs). */
html.ariaccess-readable-font body :not(#ariaccess, #ariaccess *, i, code, pre, kbd, samp, svg, svg *, [class*="icon"], [class*="Icon"], [class^="fa"], [class*=" fa-"], [class*="dashicons"], [class*="genericon"], [aria-hidden="true"]) {
	font-family: "AriAccess Readable", Verdana, Tahoma, sans-serif !important;
}
html.ariaccess-dyslexia-font body :not(#ariaccess, #ariaccess *, i, code, pre, kbd, samp, svg, svg *, [class*="icon"], [class*="Icon"], [class^="fa"], [class*=" fa-"], [class*="dashicons"], [class*="genericon"], [aria-hidden="true"]) {
	font-family: "AriAccess Dyslexic", "Comic Sans MS", Verdana, sans-serif !important;
}

/* Align text to the start edge (removes justified text). */
html.ariaccess-align-left body :is(p, li, dd, dt, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, div, span):not(#ariaccess, #ariaccess *) {
	text-align: start !important;
}

/* Dark high contrast. */
html.ariaccess-contrast-dark,
html.ariaccess-contrast-dark body,
html.ariaccess-contrast-dark body :not(#ariaccess, #ariaccess *, img, picture, video, iframe, canvas, svg, svg *) {
	background-color: #000 !important;
	color: #fff !important;
	border-color: #fff !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.ariaccess-contrast-dark body :is(a, a *):not(#ariaccess, #ariaccess *) {
	color: #ffe500 !important;
	text-decoration: underline !important;
}
html.ariaccess-contrast-dark body :is(button, input, select, textarea, [role="button"]):not(#ariaccess, #ariaccess *) {
	border: 2px solid #fff !important;
}
html.ariaccess-contrast-dark body svg:not(#ariaccess svg) {
	fill: currentColor;
}

/* Light high contrast. */
html.ariaccess-contrast-light,
html.ariaccess-contrast-light body,
html.ariaccess-contrast-light body :not(#ariaccess, #ariaccess *, img, picture, video, iframe, canvas, svg, svg *) {
	background-color: #fff !important;
	color: #000 !important;
	border-color: #000 !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.ariaccess-contrast-light body :is(a, a *):not(#ariaccess, #ariaccess *) {
	color: #0000c8 !important;
	text-decoration: underline !important;
}
html.ariaccess-contrast-light body :is(button, input, select, textarea, [role="button"]):not(#ariaccess, #ariaccess *) {
	border: 2px solid #000 !important;
}

/* Greyscale and soft colours (a filter on the root does not break fixed positioning). */
html.ariaccess-monochrome { filter: grayscale(1); }
html.ariaccess-low-saturation { filter: saturate(0.45); }

/* Highlight links and headings. */
html.ariaccess-highlight-links body a:not(#ariaccess a) {
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 0.18em !important;
	outline: 2px dashed currentColor !important;
	outline-offset: 2px !important;
}
html.ariaccess-highlight-headings body :is(h1, h2, h3, h4, h5, h6, [role="heading"]):not(#ariaccess *) {
	outline: 3px solid currentColor !important;
	outline-offset: 4px !important;
}

/* Stop animations: finish them at their end state instead of hiding content. */
html.ariaccess-stop-motion *:not(#ariaccess *),
html.ariaccess-stop-motion *:not(#ariaccess *)::before,
html.ariaccess-stop-motion *:not(#ariaccess *)::after {
	animation-duration: 0.001ms !important;
	animation-delay: 0s !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.001ms !important;
	transition-delay: 0s !important;
	scroll-behavior: auto !important;
}

/* Hide images. */
html.ariaccess-hide-images body :is(img, picture, video, [role="img"]):not(#ariaccess *) {
	visibility: hidden !important;
}
html.ariaccess-hide-images body :not(#ariaccess, #ariaccess *) {
	background-image: none !important;
}

/* Big cursor. */
html.ariaccess-big-cursor,
html.ariaccess-big-cursor * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' stroke='%23fff' stroke-width='1.2' d='M5 2v19l5-5 3.3 7 2.9-1.4-3.3-6.9H20z'/%3E%3C/svg%3E") 10 4, auto !important;
}
html.ariaccess-big-cursor :is(a, button, [role="button"], label, select, summary),
html.ariaccess-big-cursor :is(a, button, [role="button"], label, summary) * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' stroke='%23fff' stroke-width='1.1' d='M9 2.5a1.5 1.5 0 0 1 3 0V10l1-.1a1.5 1.5 0 0 1 2.7.6 1.5 1.5 0 0 1 2.6.8 1.5 1.5 0 0 1 2.7.9V16c0 3.3-2.7 6-6 6h-1.5c-1.8 0-3.4-.8-4.6-2.1L4.2 15a1.6 1.6 0 0 1 2.3-2.2L9 15z'/%3E%3C/svg%3E") 18 4, pointer !important;
}

/* Strong focus outline on every focus, mouse included. */
html.ariaccess-focus-ring body :focus:not(#ariaccess *) {
	outline: 4px solid #000 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 8px #ffe500 !important;
}

/* Read aloud: show what is clickable. */
html.ariaccess-read-aloud body :is(p, li, h1, h2, h3, h4, h5, h6, td, th, blockquote, figcaption, dd):not(#ariaccess *):hover {
	outline: 2px dotted currentColor;
	outline-offset: 2px;
	cursor: help;
}
html.ariaccess-read-aloud .ariaccess-speaking {
	background: #ffe500 !important;
	color: #000 !important;
}
