/* Shared toggle-switch component — reused by the accessibility panel and
   the cookie-consent settings panel (cookie-consent.css depends on this
   file loading first, see functions.php enqueue order). */
.nios-a11y-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	width: 44px;
	height: 24px;
	flex-shrink: 0;
	border-radius: 999px;
	background: var(--nios-border);
	border: 0;
	cursor: pointer;
	transition: background-color .15s ease;
}
.nios-a11y-toggle::before {
	content: "";
	position: absolute;
	inset-inline-start: 3px;
	top: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--nios-white);
	box-shadow: 0 1px 3px rgba(43, 37, 34, .3);
	transition: inset-inline-start .15s ease;
}
.nios-a11y-toggle[aria-checked="true"] { background: var(--nios-accent); }
.nios-a11y-toggle[aria-checked="true"]::before { inset-inline-start: 23px; }
.nios-a11y-toggle[disabled] { cursor: not-allowed; opacity: .6; }
.nios-a11y-toggle:focus-visible { outline: 2px solid var(--nios-accent); outline-offset: 2px; }

.nios-a11y-toggle-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--nios-border);
}
.nios-a11y-toggle-row:last-of-type { border-bottom: 0; }
.nios-a11y-toggle-row__text strong { display: block; font: 600 14px/20px var(--nios-font); color: var(--nios-ink-strong); margin: 0 0 2px; }
.nios-a11y-toggle-row__text p { margin: 0; font: 400 12px/18px var(--nios-font); color: #665f59; }

/* Accessibility widget shell — bottom corner, inset-inline-start matches
   this theme's RTL reading direction (right edge).
   --nios-cookie-offset is written by cookie-consent.js to the visible
   height of the cookie banner/backdrop dialogs (0px when neither is open)
   so the two independent sitewide floating widgets never overlap, most
   visibly on narrow viewports where the banner spans full width. */
.nios-a11y-widget {
	position: fixed;
	inset-inline-start: 16px;
	bottom: calc(16px + var(--nios-cookie-offset, 0px));
	z-index: 275;
	transition: bottom .2s ease;
}
.nios-a11y-widget[hidden] { display: none; }

.nios-a11y-widget__trigger {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--nios-ink-strong);
	color: var(--nios-white);
	border: 0;
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(43, 37, 34, .28);
	transition: transform .15s ease, background-color .15s ease;
}
.nios-a11y-widget__trigger:hover,
.nios-a11y-widget__trigger:focus-visible { background: #423b30; transform: scale(1.05); }
.nios-a11y-widget__trigger:focus-visible { outline: 2px solid var(--nios-accent); outline-offset: 3px; }
.nios-a11y-widget__icon { width: 28px; height: 28px; }

.nios-a11y-restore {
	position: fixed;
	inset-inline-start: 16px;
	bottom: calc(16px + var(--nios-cookie-offset, 0px));
	z-index: 275;
	transition: bottom .2s ease;
	height: 36px;
	padding-inline: 16px;
	border-radius: 999px;
	border: 1px solid var(--nios-border);
	background: var(--nios-white);
	color: var(--nios-ink-strong);
	font: 600 13px/1 var(--nios-font);
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(43, 37, 34, .18);
}
.nios-a11y-restore[hidden] { display: none; }
.nios-a11y-restore:hover,
.nios-a11y-restore:focus-visible { background: var(--nios-bg-panel); }
.nios-a11y-restore:focus-visible { outline: 2px solid var(--nios-accent); outline-offset: 2px; }

.nios-a11y-panel {
	--nios-a11y-panel-bottom: calc(84px + var(--nios-cookie-offset, 0px));
	position: fixed;
	inset-inline-start: 16px;
	bottom: var(--nios-a11y-panel-bottom);
	z-index: 276;
	width: min(360px, calc(100vw - 32px));
	/* Shrinks as --nios-cookie-offset grows, so the panel's own top edge
	   (and its close button) can never be pushed above the viewport, no
	   matter how tall the cookie banner currently is. */
	max-height: min(640px, calc(100vh - var(--nios-a11y-panel-bottom) - 24px));
	overflow-y: auto;
	background: #fcfaf6;
	border-radius: 14px;
	box-shadow: 0 16px 40px rgba(43, 37, 34, .22);
	border: 1px solid var(--nios-border);
	padding: 16px;
}
.nios-a11y-panel[hidden] { display: none; }

.nios-a11y-panel__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.nios-a11y-panel__title { font: 700 18px/1.2 var(--nios-font); color: var(--nios-ink-strong); margin: 0; }
.nios-a11y-panel__close {
	width: 32px; height: 32px; border-radius: 50%; border: 0;
	background: var(--nios-bg-panel); color: var(--nios-ink);
	cursor: pointer; font-size: 18px; line-height: 1; display: grid; place-items: center;
}
.nios-a11y-panel__close:hover,
.nios-a11y-panel__close:focus-visible { background: var(--nios-border); }
.nios-a11y-panel__close:focus-visible { outline: 2px solid var(--nios-accent); outline-offset: 2px; }
.nios-a11y-panel__intro { font: 400 12px/18px var(--nios-font); color: #665f59; margin: 0 0 8px; }
.nios-a11y-panel__group-title {
	font: 700 11px/1 var(--nios-font); text-transform: uppercase; letter-spacing: .04em;
	color: #665f59; margin: 16px 0 4px;
}
.nios-a11y-panel__group-title:first-of-type { margin-top: 0; }
.nios-a11y-panel__action { margin-top: 16px; }
.nios-a11y-panel__dismiss {
	display: block; width: 100%; margin-top: 8px; padding: 8px 0;
	background: none; border: 0; cursor: pointer;
	font: 400 12px/18px var(--nios-font); color: #665f59; text-decoration: underline;
}
.nios-a11y-panel__dismiss:hover,
.nios-a11y-panel__dismiss:focus-visible { color: var(--nios-ink-strong); }
.nios-a11y-panel__dismiss:focus-visible { outline: 2px solid var(--nios-accent); outline-offset: 2px; }

/* Effects applied to <html> when a preference is active. */
html.a11y-large-text { font-size: 112.5%; }
html.a11y-larger-text { font-size: 125%; }

html.a11y-high-contrast { filter: contrast(1.25); }
html.a11y-high-contrast body { background: #fff; color: #000; }
html.a11y-high-contrast a { color: #00248f !important; }

html.a11y-grayscale { filter: grayscale(1); }

html.a11y-underline-links a { text-decoration: underline !important; text-underline-offset: 3px; }

html.a11y-readable-font body { font-family: 'Lexend', var(--nios-font) !important; }

html.a11y-line-spacing body { line-height: 2 !important; }

html.a11y-letter-spacing body { letter-spacing: .04em !important; }

html.a11y-stop-animations *,
html.a11y-stop-animations *::before,
html.a11y-stop-animations *::after {
	animation-duration: .001ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: .001ms !important;
	scroll-behavior: auto !important;
}

html.a11y-large-cursor,
html.a11y-large-cursor * {
	cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24"><path d="M4 2l14 8-6 2 4 7-3 2-4-7-4 4z" fill="black" stroke="white" stroke-width="1"/></svg>') 4 4, auto !important;
}

html.a11y-strong-focus *:focus-visible {
	outline: 4px solid var(--nios-accent) !important;
	outline-offset: 3px !important;
}

/* Reading guide: a bar that follows the pointer/keyboard focus, dimming the rest. */
.nios-a11y-reading-guide-bar {
	position: fixed;
	inset-inline: 0;
	height: 48px;
	background: rgba(173, 108, 34, .14);
	border-top: 2px solid var(--nios-accent);
	border-bottom: 2px solid var(--nios-accent);
	pointer-events: none;
	z-index: 274;
	display: none;
}
html.a11y-reading-guide .nios-a11y-reading-guide-bar { display: block; }

@media (max-width: 639px) {
	.nios-a11y-widget,
	.nios-a11y-restore { inset-inline-start: 12px; bottom: calc(12px + var(--nios-cookie-offset, 0px)); }
	.nios-a11y-panel { inset-inline-start: 12px; --nios-a11y-panel-bottom: calc(80px + var(--nios-cookie-offset, 0px)); }
}
