/* NSM Accessibility Toolkit: styles applied by the visitor accessibility menu.
   Each rule is scoped to a class on <html> that only exists when the visitor
   turned that option on. The menu itself lives in a shadow root and is excluded. */

/* ---------- Readable font ---------- */
html.nsm-p-font body :not(#nsm-a11y-menu):not(i):not(code):not(pre):not(kbd):not(samp):not([class*="icon"]):not([class*="fa-"]):not(.fa):not(.fas):not(.far):not(.fab):not([class*="dashicons"]):not([class*="eicon"]):not([class*="genericon"]):not([class*="material-symbols"]):not([class*="material-icons"]) {
	font-family: Verdana, Tahoma, "Segoe UI", Arial, sans-serif !important;
}

/* ---------- Text spacing (WCAG 1.4.12 values) ---------- */
html.nsm-p-spacing body :not(#nsm-a11y-menu):not(i):not([class*="icon"]):not([class*="fa-"]) {
	line-height: 1.5 !important;
	letter-spacing: 0.12em !important;
	word-spacing: 0.16em !important;
}

html.nsm-p-spacing body p:not(#nsm-a11y-menu) {
	margin-bottom: 2em !important;
}

/* ---------- Align text left ---------- */
html.nsm-p-align body :is(p, li, dd, dt, td, th, blockquote, figcaption, h1, h2, h3, h4, h5, h6, div, span, label, a):not(#nsm-a11y-menu) {
	text-align: start !important;
}

/* ---------- Highlight links ---------- */
html.nsm-p-links body a[href]:not(#nsm-a11y-menu) {
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 0.18em !important;
}

html.nsm-p-links body a[href]:not(:has(img, svg, video, picture)):not(#nsm-a11y-menu) {
	background-color: #ffeb3b !important;
	color: #000 !important;
}

html.nsm-p-links body a[href]:not(:has(img, svg, video, picture)) * {
	color: #000 !important;
}

html.nsm-p-links body a[href]:has(img, picture, video) {
	outline: 3px dashed currentColor !important;
	outline-offset: 2px !important;
}

/* ---------- Dark contrast ---------- */
html.nsm-p-contrast-dark,
html.nsm-p-contrast-dark body,
html.nsm-p-contrast-dark body :not(#nsm-a11y-menu):not(img):not(video):not(picture):not(iframe):not(canvas):not(svg):not(svg *) {
	background-color: #000 !important;
	background-image: none !important;
	color: #fff !important;
	border-color: #fff !important;
	text-shadow: none !important;
	box-shadow: none !important;
}

html.nsm-p-contrast-dark body a[href]:not(#nsm-a11y-menu),
html.nsm-p-contrast-dark body a[href] *:not(svg):not(svg *) {
	color: #ffeb3b !important;
}

html.nsm-p-contrast-dark body :is(button, input, select, textarea, [role="button"]):not(#nsm-a11y-menu) {
	border: 2px solid #fff !important;
}

html.nsm-p-contrast-dark body ::placeholder {
	color: #d0d0d0 !important;
	opacity: 1 !important;
}

html.nsm-p-contrast-dark body :is(img, video, picture, iframe) {
	background-color: transparent !important;
}

/* ---------- Light contrast ---------- */
html.nsm-p-contrast-light,
html.nsm-p-contrast-light body,
html.nsm-p-contrast-light body :not(#nsm-a11y-menu):not(img):not(video):not(picture):not(iframe):not(canvas):not(svg):not(svg *) {
	background-color: #fff !important;
	background-image: none !important;
	color: #000 !important;
	border-color: #000 !important;
	text-shadow: none !important;
	box-shadow: none !important;
}

html.nsm-p-contrast-light body a[href]:not(#nsm-a11y-menu),
html.nsm-p-contrast-light body a[href] *:not(svg):not(svg *) {
	color: #0033cc !important;
	text-decoration: underline !important;
}

html.nsm-p-contrast-light body :is(button, input, select, textarea, [role="button"]):not(#nsm-a11y-menu) {
	border: 2px solid #000 !important;
}

html.nsm-p-contrast-light body ::placeholder {
	color: #444 !important;
	opacity: 1 !important;
}

/* Keep icon glyphs visible in both contrast modes. */
html:is(.nsm-p-contrast-dark, .nsm-p-contrast-light) body svg:not([fill="none"]) :is(path, circle, rect, polygon, ellipse):not([fill="none"]) {
	fill: currentColor !important;
}

/* ---------- Saturation (filters on <html> keep fixed elements in place) ---------- */
html.nsm-p-sat-low {
	filter: saturate(0.35);
}

html.nsm-p-sat-gray {
	filter: grayscale(1);
}

/* ---------- Strong focus outline ---------- */
html.nsm-p-focus body :focus-visible:not(#nsm-a11y-menu) {
	outline: 4px solid #ffbf47 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 8px #0b0c0c !important;
}

/* ---------- Pause animations ---------- */
html.nsm-p-motion *,
html.nsm-p-motion *::before,
html.nsm-p-motion *::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;
}

html.nsm-p-motion .elementor-invisible {
	visibility: visible !important;
	opacity: 1 !important;
}

/* ---------- Large cursor ---------- */
html.nsm-p-cursor,
html.nsm-p-cursor body * {
	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 3l30 27H21l9 15-6 3-9-15-9 9z' fill='%23000' stroke='%23fff' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, auto !important;
}

html.nsm-p-cursor body :is(a[href], button, [role="button"], label, summary, select, input[type="checkbox"], input[type="radio"], input[type="submit"]),
html.nsm-p-cursor body :is(a[href], 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='M17 4a4 4 0 0 1 4 4v14l2-1a4 4 0 0 1 5 2l1 1a4 4 0 0 1 5 2l1 1a4 4 0 0 1 5 3v9c0 4-3 7-7 7H23c-3 0-5-1-7-4L8 30a4 4 0 0 1 6-5l3 3V8a4 4 0 0 1 0-4z' fill='%23fff' stroke='%23000' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 17 4, pointer !important;
}

html.nsm-p-cursor body :is(input:not([type]), input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="url"], input[type="password"], input[type="number"], textarea) {
	cursor: text !important;
}

@media print {
	#nsm-a11y-menu {
		display: none !important;
	}
}
