/*
 * Unbound Accessibility — toolbar + page effects.
 * Everything visual is driven by CSS variables on #ua11y-root, so themes can
 * restyle it with a few custom properties instead of fighting specificity.
 */

/* ======================================================================
   Root & positioning
   ====================================================================== */

.ua11y-root {
	--ua11y-btn-bg: #4054b2;
	--ua11y-btn-fg: #fff;
	--ua11y-btn-size: 50px;
	--ua11y-btn-size-m: 44px;
	--ua11y-icon-scale: 60;
	--ua11y-btn-radius: 8px;
	--ua11y-btn-border-width: 0px;
	--ua11y-btn-font-size: 15px;
	--ua11y-btn-opacity: 100%;
	--ua11y-panel-bg: #fff;
	--ua11y-panel-fg: #333;
	--ua11y-active-bg: #4054b2;
	--ua11y-active-fg: #fff;
	--ua11y-panel-width: 260px;
	--ua11y-panel-radius: 0px;
	--ua11y-panel-font-size: 14px;
	--ua11y-x: 20px;
	--ua11y-y: 20px;
	--ua11y-xm: 12px;
	--ua11y-ym: 12px;
	--ua11y-z: 99999;
	--ua11y-gap: 8px;
	--ua11y-size: var(--ua11y-btn-size);
	--ua11y-sys-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	position: fixed;
	z-index: var(--ua11y-z);
	width: max-content;
	height: max-content;
	margin: 0;
	padding: 0;
	line-height: 1.3;
	font-size: var(--ua11y-panel-font-size);
	text-align: start;
	direction: inherit;
}
.ua11y-root *,
.ua11y-root *::before,
.ua11y-root *::after { box-sizing: border-box; }
.ua11y-root[data-edge] { --ua11y-gap: 0px; }
.ua11y-root[data-trigger-only] .ua11y-toggle { display: none !important; }

@media (min-width: 768px) {
	.ua11y-root[data-anchor="top-left"]      { top: var(--ua11y-y); left: var(--ua11y-x); }
	.ua11y-root[data-anchor="top-center"]    { top: var(--ua11y-y); left: 0; right: 0; margin-inline: auto; }
	.ua11y-root[data-anchor="top-right"]     { top: var(--ua11y-y); right: var(--ua11y-x); }
	.ua11y-root[data-anchor="center-left"]   { top: 0; bottom: 0; margin-block: auto; left: var(--ua11y-x); }
	.ua11y-root[data-anchor="center-right"]  { top: 0; bottom: 0; margin-block: auto; right: var(--ua11y-x); }
	.ua11y-root[data-anchor="bottom-left"]   { bottom: var(--ua11y-y); left: var(--ua11y-x); }
	.ua11y-root[data-anchor="bottom-center"] { bottom: var(--ua11y-y); left: 0; right: 0; margin-inline: auto; }
	.ua11y-root[data-anchor="bottom-right"]  { bottom: var(--ua11y-y); right: var(--ua11y-x); }
}
@media (max-width: 767px) {
	.ua11y-root { --ua11y-size: var(--ua11y-btn-size-m); }
	.ua11y-root[data-anchor-mobile="top-left"]      { top: var(--ua11y-ym); left: var(--ua11y-xm); }
	.ua11y-root[data-anchor-mobile="top-center"]    { top: var(--ua11y-ym); left: 0; right: 0; margin-inline: auto; }
	.ua11y-root[data-anchor-mobile="top-right"]     { top: var(--ua11y-ym); right: var(--ua11y-xm); }
	.ua11y-root[data-anchor-mobile="center-left"]   { top: 0; bottom: 0; margin-block: auto; left: var(--ua11y-xm); }
	.ua11y-root[data-anchor-mobile="center-right"]  { top: 0; bottom: 0; margin-block: auto; right: var(--ua11y-xm); }
	.ua11y-root[data-anchor-mobile="bottom-left"]   { bottom: var(--ua11y-ym); left: var(--ua11y-xm); }
	.ua11y-root[data-anchor-mobile="bottom-center"] { bottom: var(--ua11y-ym); left: 0; right: 0; margin-inline: auto; }
	.ua11y-root[data-anchor-mobile="bottom-right"]  { bottom: var(--ua11y-ym); right: var(--ua11y-xm); }
}

/* Pojo-style device visibility */
@media (min-width: 1025px) {
	.ua11y-root.ua11y-visible-tablet, .ua11y-root.ua11y-visible-phone, .ua11y-root.ua11y-hidden-desktop { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.ua11y-root.ua11y-visible-desktop, .ua11y-root.ua11y-visible-phone, .ua11y-root.ua11y-hidden-tablet { display: none !important; }
}
@media (max-width: 767px) {
	.ua11y-root.ua11y-visible-desktop, .ua11y-root.ua11y-visible-tablet, .ua11y-root.ua11y-hidden-phone { display: none !important; }
}

/* ======================================================================
   Toggle button
   ====================================================================== */

.ua11y-root .ua11y-toggle {
	all: unset;
	box-sizing: border-box;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-width: var(--ua11y-size);
	height: var(--ua11y-size);
	padding: 0;
	margin: 0;
	background: var(--ua11y-btn-bg);
	color: var(--ua11y-btn-fg);
	border: var(--ua11y-btn-border-width) solid var(--ua11y-btn-border-color, transparent);
	border-radius: 0;
	font-family: inherit;
	font-size: var(--ua11y-btn-font-size);
	font-weight: 600;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
	opacity: var(--ua11y-btn-opacity);
	transition: background-color .15s ease, color .15s ease, opacity .15s ease, filter .15s ease;
	-webkit-tap-highlight-color: transparent;
}
.ua11y-root[data-btn-font="system"] .ua11y-toggle { font-family: var(--ua11y-sys-font); }

.ua11y-root .ua11y-toggle:hover,
.ua11y-root .ua11y-toggle:focus-visible,
.ua11y-root .ua11y-toggle[aria-expanded="true"] {
	opacity: 1;
	background: var(--ua11y-btn-bg-hover, var(--ua11y-btn-bg));
	color: var(--ua11y-btn-fg-hover, var(--ua11y-btn-fg));
}
.ua11y-root[data-auto-hover="1"] .ua11y-toggle:hover { filter: brightness(0.9); }

/* Two-tone ring: visible on any background colour. */
.ua11y-root .ua11y-toggle:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 6px #111 !important;
}

/* Shapes */
.ua11y-root[data-shape="rounded"] .ua11y-toggle { border-radius: var(--ua11y-btn-radius); }
.ua11y-root[data-shape="round"] .ua11y-toggle   { border-radius: 9999px; }
@media (min-width: 768px) {
	.ua11y-root[data-shape="tab"][data-anchor$="-left"] .ua11y-toggle   { border-radius: 0 var(--ua11y-btn-radius) var(--ua11y-btn-radius) 0; }
	.ua11y-root[data-shape="tab"][data-anchor$="-right"] .ua11y-toggle  { border-radius: var(--ua11y-btn-radius) 0 0 var(--ua11y-btn-radius); }
	.ua11y-root[data-shape="tab"][data-anchor="top-center"] .ua11y-toggle    { border-radius: 0 0 var(--ua11y-btn-radius) var(--ua11y-btn-radius); }
	.ua11y-root[data-shape="tab"][data-anchor="bottom-center"] .ua11y-toggle { border-radius: var(--ua11y-btn-radius) var(--ua11y-btn-radius) 0 0; }
}
@media (max-width: 767px) {
	.ua11y-root[data-shape="tab"][data-anchor-mobile$="-left"] .ua11y-toggle   { border-radius: 0 var(--ua11y-btn-radius) var(--ua11y-btn-radius) 0; }
	.ua11y-root[data-shape="tab"][data-anchor-mobile$="-right"] .ua11y-toggle  { border-radius: var(--ua11y-btn-radius) 0 0 var(--ua11y-btn-radius); }
	.ua11y-root[data-shape="tab"][data-anchor-mobile="top-center"] .ua11y-toggle    { border-radius: 0 0 var(--ua11y-btn-radius) var(--ua11y-btn-radius); }
	.ua11y-root[data-shape="tab"][data-anchor-mobile="bottom-center"] .ua11y-toggle { border-radius: var(--ua11y-btn-radius) var(--ua11y-btn-radius) 0 0; }
}

/* Shadows */
.ua11y-root[data-shadow="soft"] .ua11y-toggle   { box-shadow: 0 1px 3px rgba(0,0,0,.18); }
.ua11y-root[data-shadow="medium"] .ua11y-toggle { box-shadow: 0 3px 10px rgba(0,0,0,.22); }
.ua11y-root[data-shadow="strong"] .ua11y-toggle { box-shadow: 0 8px 24px rgba(0,0,0,.35); }

/* Content: which parts of the button show */
.ua11y-root .ua11y-media { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.ua11y-root .ua11y-media-icon,
.ua11y-root .ua11y-media-img { display: none; position: relative; }
.ua11y-root .ua11y-icon,
.ua11y-root .ua11y-media-img img {
	display: block;
	width: calc(var(--ua11y-size) * var(--ua11y-icon-scale) / 100);
	height: calc(var(--ua11y-size) * var(--ua11y-icon-scale) / 100);
	max-width: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.ua11y-root .ua11y-media-img img { object-fit: contain; }
.ua11y-root[data-img-fit="cover"] .ua11y-media-img img { object-fit: cover; }
.ua11y-root .ua11y-img-hover { position: absolute; inset: 0; opacity: 0; transition: opacity .15s ease; }
.ua11y-root .ua11y-toggle:hover .ua11y-img-hover,
.ua11y-root .ua11y-toggle:focus-visible .ua11y-img-hover,
.ua11y-root .ua11y-toggle[aria-expanded="true"] .ua11y-img-hover { opacity: 1; }
.ua11y-root .ua11y-toggle[data-has-hover]:hover .ua11y-img-rest,
.ua11y-root .ua11y-toggle[data-has-hover]:focus-visible .ua11y-img-rest,
.ua11y-root .ua11y-toggle[data-has-hover][aria-expanded="true"] .ua11y-img-rest { opacity: 0; }
.ua11y-root .ua11y-media img[hidden] { display: none !important; }

.ua11y-root[data-content="icon"] .ua11y-media-icon,
.ua11y-root[data-content="icon_text"] .ua11y-media-icon,
.ua11y-root[data-content="image"] .ua11y-media-img,
.ua11y-root[data-content="image_text"] .ua11y-media-img { display: inline-flex; }

.ua11y-root .ua11y-label { white-space: nowrap; }
.ua11y-root[data-content="icon"] .ua11y-label,
.ua11y-root[data-content="image"] .ua11y-label,
.ua11y-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;
}
.ua11y-root[data-content="text"] .ua11y-media { display: none; }
.ua11y-root[data-content="icon_text"] .ua11y-toggle,
.ua11y-root[data-content="image_text"] .ua11y-toggle { padding-inline: calc(var(--ua11y-size) * .22) calc(var(--ua11y-size) * .38); }
.ua11y-root[data-content="text"] .ua11y-toggle { padding-inline: calc(var(--ua11y-size) * .4); }

/* Image is the whole button */
.ua11y-root[data-bare="1"][data-content="image"] .ua11y-toggle,
.ua11y-root[data-bare="1"][data-content="image_text"] .ua11y-toggle {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	filter: none;
}
.ua11y-root[data-bare="1"][data-content="image_text"] .ua11y-toggle { color: var(--ua11y-btn-bg); }
.ua11y-root[data-bare="1"] .ua11y-toggle:hover { filter: none; }

/* ======================================================================
   Panel
   ====================================================================== */

.ua11y-root .ua11y-panel {
	position: absolute;
	width: var(--ua11y-panel-width);
	max-width: calc(100vw - 16px);
	max-height: calc(100vh - 16px);
	overflow: auto;
	overscroll-behavior: contain;
	background: var(--ua11y-panel-bg);
	color: var(--ua11y-panel-fg);
	border: 1px solid var(--ua11y-panel-border, var(--ua11y-btn-bg));
	border-radius: var(--ua11y-panel-radius);
	font-family: inherit;
	font-size: var(--ua11y-panel-font-size);
	line-height: 1.3;
	text-align: start;
}
.ua11y-root[data-panel-font="system"] .ua11y-panel { font-family: var(--ua11y-sys-font); }
.ua11y-root .ua11y-panel[hidden] { display: none !important; }
.ua11y-root[data-panel-shadow="soft"] .ua11y-panel   { box-shadow: 0 2px 8px rgba(0,0,0,.14); }
.ua11y-root[data-panel-shadow="medium"] .ua11y-panel { box-shadow: 0 8px 28px rgba(0,0,0,.2); }
.ua11y-root[data-panel-shadow="strong"] .ua11y-panel { box-shadow: 0 16px 48px rgba(0,0,0,.35); }

@media (prefers-reduced-motion: no-preference) {
	.ua11y-root .ua11y-panel:not([hidden]) { animation: ua11y-in .14s ease-out; }
}
@keyframes ua11y-in { from { opacity: 0; } to { opacity: 1; } }

/* Panel placement beside the button (desktop) */
@media (min-width: 768px) {
	.ua11y-root[data-anchor$="-left"] .ua11y-panel  { left: calc(100% + var(--ua11y-gap)); }
	.ua11y-root[data-anchor$="-right"] .ua11y-panel { right: calc(100% + var(--ua11y-gap)); }
	.ua11y-root[data-anchor^="top-"] .ua11y-panel   { top: 0; max-height: calc(100vh - var(--ua11y-y) - 16px); }
	.ua11y-root[data-anchor^="bottom-"] .ua11y-panel { bottom: 0; max-height: calc(100vh - var(--ua11y-y) - 16px); }
	.ua11y-root[data-anchor^="center-"] .ua11y-panel { top: 50%; transform: translateY(-50%); }
	.ua11y-root[data-anchor="top-center"] .ua11y-panel    { top: calc(100% + var(--ua11y-gap)); left: 50%; transform: translateX(-50%); }
	.ua11y-root[data-anchor="bottom-center"] .ua11y-panel { top: auto; bottom: calc(100% + var(--ua11y-gap)); left: 50%; transform: translateX(-50%); }
	.ua11y-root[data-trigger-only][data-anchor$="-left"] .ua11y-panel  { left: 0; }
	.ua11y-root[data-trigger-only][data-anchor$="-right"] .ua11y-panel { right: 0; }
}
@media (max-width: 767px) {
	.ua11y-root[data-mobile-panel="sheet"] .ua11y-panel {
		position: fixed;
		inset: auto 8px 8px 8px;
		width: auto;
		max-width: none;
		max-height: 75vh;
		transform: none;
		border-radius: max(var(--ua11y-panel-radius), 12px);
	}
	.ua11y-root[data-mobile-panel="attached"][data-anchor-mobile$="-left"] .ua11y-panel  { left: calc(100% + var(--ua11y-gap)); }
	.ua11y-root[data-mobile-panel="attached"][data-anchor-mobile$="-right"] .ua11y-panel { right: calc(100% + var(--ua11y-gap)); }
	.ua11y-root[data-mobile-panel="attached"][data-anchor-mobile^="top-"] .ua11y-panel   { top: 0; }
	.ua11y-root[data-mobile-panel="attached"][data-anchor-mobile^="bottom-"] .ua11y-panel { bottom: 0; }
	.ua11y-root[data-mobile-panel="attached"][data-anchor-mobile^="center-"] .ua11y-panel { top: 50%; transform: translateY(-50%); }
	.ua11y-root[data-mobile-panel="attached"][data-anchor-mobile="top-center"] .ua11y-panel { top: calc(100% + var(--ua11y-gap)); left: 50%; transform: translateX(-50%); }
	.ua11y-root[data-mobile-panel="attached"][data-anchor-mobile="bottom-center"] .ua11y-panel { top: auto; bottom: calc(100% + var(--ua11y-gap)); left: 50%; transform: translateX(-50%); }
}

/* wp-admin, opened from the admin bar */
.ua11y-root[data-adminbar-only] { top: 0; right: 0; }
.ua11y-root[data-adminbar-only] .ua11y-panel {
	position: fixed !important;
	top: calc(var(--wp-admin--admin-bar--height, 32px) + 8px) !important;
	right: 12px !important;
	left: auto !important;
	bottom: auto !important;
	transform: none !important;
	max-height: calc(100vh - var(--wp-admin--admin-bar--height, 32px) - 20px);
}
@media (max-width: 767px) {
	.ua11y-root[data-adminbar-only] .ua11y-panel { top: 54px !important; left: 8px !important; right: 8px !important; width: auto; }
}

/* Panel contents */
.ua11y-root .ua11y-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5em;
	padding: .7em .6em .7em 1em;
	border-bottom: 1px solid rgba(127,127,127,.25);
	border-bottom-color: color-mix(in srgb, currentColor 16%, transparent);
}
.ua11y-root .ua11y-title {
	margin: 0;
	padding: 0;
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.25;
	color: inherit;
}
.ua11y-root .ua11y-note {
	margin: 0;
	padding: .6em 1em 0;
	font-size: .88em;
	opacity: .8;
}
.ua11y-root .ua11y-close {
	all: unset;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.2em;
	height: 2.2em;
	border-radius: 6px;
	color: inherit;
	cursor: pointer;
}
.ua11y-root .ua11y-close:hover { background: rgba(127,127,127,.14); background: color-mix(in srgb, currentColor 10%, transparent); }
.ua11y-root .ua11y-close svg { width: 1.2em; height: 1.2em; }

.ua11y-root .ua11y-tools {
	list-style: none;
	margin: 0;
	padding: .35em;
}
.ua11y-root .ua11y-links {
	border-top: 1px solid rgba(127,127,127,.25);
	border-top-color: color-mix(in srgb, currentColor 16%, transparent);
}
.ua11y-root .ua11y-item {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: inherit;
}
.ua11y-root .ua11y-item::before,
.ua11y-root .ua11y-item::marker { content: none; }
.ua11y-root .ua11y-item[data-off] { display: none; }

.ua11y-root .ua11y-tool {
	all: unset;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	gap: .75em;
	width: 100%;
	min-height: 2.6em;
	padding: .5em .75em;
	border-radius: max(0px, calc(var(--ua11y-panel-radius) - 4px));
	color: inherit;
	font: inherit;
	line-height: 1.25;
	text-align: start;
	text-decoration: none;
	cursor: pointer;
}
.ua11y-root .ua11y-tool:hover { background: rgba(127,127,127,.12); background: color-mix(in srgb, currentColor 8%, transparent); }
.ua11y-root .ua11y-tool[aria-pressed="true"] {
	background: var(--ua11y-active-bg);
	color: var(--ua11y-active-fg);
}
.ua11y-root .ua11y-tool:focus-visible,
.ua11y-root .ua11y-close:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -2px;
}
.ua11y-root .ua11y-tool-icon { flex: none; width: 1.35em; height: 1.35em; }
.ua11y-root[data-icons="0"] .ua11y-tool-icon { display: none; }

.ua11y-root .ua11y-readout {
	margin: 0 1em .6em;
	font-size: .88em;
	opacity: .8;
}
.ua11y-root .ua11y-readout[hidden] { display: none; }

/* Grid layout */
.ua11y-root[data-layout="grid"] .ua11y-tools {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .4em;
	padding: .6em;
}
.ua11y-root[data-layout="grid"] .ua11y-tools .ua11y-tool {
	flex-direction: column;
	justify-content: center;
	gap: .45em;
	min-height: 5.2em;
	padding: .7em .4em;
	text-align: center;
	border: 1px solid rgba(127,127,127,.28);
	border-color: color-mix(in srgb, currentColor 18%, transparent);
	border-radius: max(4px, calc(var(--ua11y-panel-radius) - 4px));
}
.ua11y-root[data-layout="grid"] .ua11y-tools .ua11y-tool[aria-pressed="true"] { border-color: var(--ua11y-active-bg); }
.ua11y-root[data-layout="grid"] .ua11y-tool-icon { width: 1.6em; height: 1.6em; }
.ua11y-root[data-layout="grid"] .ua11y-item-reset,
.ua11y-root[data-layout="grid"] .ua11y-links .ua11y-item { grid-column: 1 / -1; }
.ua11y-root[data-layout="grid"] .ua11y-item-reset .ua11y-tool,
.ua11y-root[data-layout="grid"] .ua11y-links .ua11y-tool {
	flex-direction: row;
	justify-content: flex-start;
	min-height: 2.6em;
	text-align: start;
	border: 0;
}
.ua11y-root[data-layout="grid"][data-icons="0"] .ua11y-tools .ua11y-tool { min-height: 3.4em; }

/* ======================================================================
   Skip link
   ====================================================================== */

.ua11y-skip {
	position: absolute !important;
	top: -1000em;
	left: 0;
}
.ua11y-skip:focus {
	top: 12px;
	left: 12px;
	z-index: 2147483647;
	display: block;
	width: auto;
	height: auto;
	padding: 14px 22px;
	background: #f1f1f1;
	color: #1d4f91;
	font: 700 15px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	text-decoration: none;
	box-shadow: 0 0 0 3px #1d4f91, 0 2px 10px rgba(0,0,0,.4);
}

/* ======================================================================
   Page effects. Class names live on <html>; the toolbar is excluded.
   Filters sit on the root element because only there do they avoid
   breaking position:fixed descendants (CSS Filter Effects spec).
   ====================================================================== */

/* Site-wide keyboard focus (Pojo "focusable") */
body.ua11y-focusable a:focus,
body.ua11y-focusable :is(button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline-style: var(--ua11y-focus-style, solid) !important;
	outline-width: var(--ua11y-focus-width, 1px) !important;
	outline-color: var(--ua11y-focus-color, #f00) !important;
}

/* Grayscale & invert */
html.ua11y-grayscale { filter: grayscale(1); }
html.ua11y-invert { filter: invert(1) hue-rotate(180deg); }
html.ua11y-invert.ua11y-grayscale { filter: invert(1) hue-rotate(180deg) grayscale(1); }
html.ua11y-invert :is(img, video, picture, iframe, canvas, [style*="background-image"]):not(.ua11y-root *),
html.ua11y-invert .ua11y-root { filter: invert(1) hue-rotate(180deg); }
html.ua11y-invert { background: #fff; }

/* High contrast: white on black */
html.ua11y-high-contrast body,
html.ua11y-high-contrast body *:not(.ua11y-root):not(.ua11y-root *):not(.ua11y-mask) {
	background-color: #000 !important;
	background-image: none !important;
	color: #fff !important;
	border-color: #fff !important;
	box-shadow: none !important;
	text-shadow: none !important;
}
html.ua11y-high-contrast :is(a, a *):not(.ua11y-root *) { color: #7fd4ff !important; }
html.ua11y-high-contrast :is(a:visited, a:visited *):not(.ua11y-root *) { color: #d6a8ff !important; }
html.ua11y-high-contrast :is(h1, h2, h3, h4, h5, h6, strong, b, mark):not(.ua11y-root *) { color: #ffff5a !important; }
html.ua11y-high-contrast :is(button, input, select, textarea):not(.ua11y-root *) { border: 1px solid #fff !important; }
html.ua11y-high-contrast img:not(.ua11y-root *) { background-color: transparent !important; }

/* Negative contrast: yellow on black (Pojo's scheme) */
html.ua11y-negative-contrast body,
html.ua11y-negative-contrast body *:not(.ua11y-root):not(.ua11y-root *):not(.ua11y-mask) {
	background-color: #000 !important;
	background-image: none !important;
	color: #ff0 !important;
	border-color: #ff0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
}
html.ua11y-negative-contrast :is(a, a *):not(.ua11y-root *) { color: #fff !important; text-decoration: underline !important; }
html.ua11y-negative-contrast :is(button, input, select, textarea):not(.ua11y-root *) { border: 1px solid #fff !important; }
html.ua11y-negative-contrast img:not(.ua11y-root *) { background-color: transparent !important; }

/* Light background: black on white */
html.ua11y-light-background body,
html.ua11y-light-background body *:not(.ua11y-root):not(.ua11y-root *):not(.ua11y-mask) {
	background-color: #fff !important;
	background-image: none !important;
	color: #000 !important;
	text-shadow: none !important;
}
html.ua11y-light-background :is(a, a *):not(.ua11y-root *) { color: #0000c8 !important; }
html.ua11y-light-background img:not(.ua11y-root *) { background-color: transparent !important; }

/* Links underline */
html.ua11y-links-underline :is(a, a *):not(.ua11y-root *) { text-decoration: underline !important; }

/* Readable font — leaves icon fonts alone */
html.ua11y-readable-font body,
html.ua11y-readable-font body *:not(.ua11y-root *):not(i):not(.dashicons):not(.ab-icon):not([class*="icon"]):not([class^="fa"]):not([class*=" fa-"]):not(code):not(pre):not(kbd) {
	font-family: Verdana, Tahoma, "Atkinson Hyperlegible", Arial, Helvetica, sans-serif !important;
}

/* Spacing (WCAG 1.4.12 values) */
html.ua11y-line-height body *:not(.ua11y-root):not(.ua11y-root *) { line-height: 1.8 !important; }
html.ua11y-letter-spacing body *:not(.ua11y-root):not(.ua11y-root *) {
	letter-spacing: 0.12em !important;
	word-spacing: 0.16em !important;
}
html.ua11y-text-align body *:not(.ua11y-root):not(.ua11y-root *) { text-align: start !important; }

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

/* Stop animations: jump to the end state so nothing is left half-faded */
html.ua11y-pause-animations *:not(.ua11y-root *),
html.ua11y-pause-animations *:not(.ua11y-root *)::before,
html.ua11y-pause-animations *:not(.ua11y-root *)::after {
	animation-duration: 0.001ms !important;
	animation-iteration-count: 1 !important;
	animation-delay: 0s !important;
	transition-duration: 0.001ms !important;
	transition-delay: 0s !important;
	scroll-behavior: auto !important;
}

/* Big cursor */
html.ua11y-big-cursor,
html.ua11y-big-cursor * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M6 3l32 17-14 4-6 15z' fill='%23000' stroke='%23fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, auto !important;
}
html.ua11y-big-cursor :is(a, button, [role="button"], label, select, summary, input[type="checkbox"], input[type="radio"]),
html.ua11y-big-cursor :is(a, button, [role="button"]) * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M6 3l32 17-14 4-6 15z' fill='%231d4f91' stroke='%23fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, pointer !important;
}

/* Highlight headings */
html.ua11y-highlight-headings :is(h1, h2, h3, h4, h5, h6, [role="heading"]):not(.ua11y-root *) {
	outline: 2px dashed currentColor !important;
	outline-offset: 4px !important;
}

/* Highlight focus */
html.ua11y-focus-highlight :focus-visible:not(.ua11y-root *) {
	outline: 4px solid #ffd400 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 8px #000 !important;
}

/* Larger click targets (wp-admin) */
html.ua11y-larger-targets :is(.button, button, input[type="submit"], input[type="button"], select, input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="password"], input[type="number"]):not(.ua11y-root *) {
	min-height: 40px !important;
}
html.ua11y-larger-targets :is(input[type="checkbox"], input[type="radio"]):not(.ua11y-root *) {
	transform: scale(1.35);
	margin: 6px !important;
}
html.ua11y-larger-targets #adminmenu a { padding-top: 10px !important; padding-bottom: 10px !important; }
html.ua11y-larger-targets .row-actions { left: 0 !important; position: static !important; }

/* Reading mask */
.ua11y-mask {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	height: 7em;
	pointer-events: none;
	z-index: 2147483646;
	box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .55);
	border-block: 2px solid #ffd400;
	transform: translateY(var(--ua11y-mask-y, 40vh));
}

/* ======================================================================
   wp-admin tweaks for the floating button & admin bar item
   ====================================================================== */

#wpadminbar #wp-admin-bar-ua11y .ab-icon::before { content: "\f10b"; top: 2px; }
#wpadminbar #wp-admin-bar-ua11y > .ab-item[aria-expanded="true"] { background: #2c3338; color: #72aee6; }
@media (max-width: 782px) {
	#wpadminbar #wp-admin-bar-ua11y { display: block; }
	#wpadminbar #wp-admin-bar-ua11y .ab-label { display: none; }
	#wpadminbar #wp-admin-bar-ua11y > .ab-item { width: 52px; text-align: center; }
	#wpadminbar #wp-admin-bar-ua11y .ab-icon { margin: 0; }
	#wpadminbar #wp-admin-bar-ua11y .ab-icon::before { font-size: 30px; top: 4px; }
}
.ua11y-admin-root {
	--ua11y-btn-bg: var(--wp-admin-theme-color, #2271b1);
	--ua11y-active-bg: var(--wp-admin-theme-color, #2271b1);
	--ua11y-panel-fg: #1d2327;
	--ua11y-panel-width: 280px;
	--ua11y-panel-radius: 8px;
	--ua11y-panel-font-size: 13px;
	--ua11y-btn-size: 44px;
	--ua11y-panel-border: #c3c4c7;
	--ua11y-z: 100000;
}
