/**
 * Visually hidden text for screen readers (e.g. page H1).
 */
.nono-visually-hidden,
.sr-only,
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/**
 * Skip navigation link: hidden until keyboard focus (WCAG 2.4.1).
 */
.nono-skip-link {
	position: absolute;
	top: 0;
	inset-inline-start: 0;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	z-index: 100000;
}

html.nono-keyboard-nav .nono-skip-link:focus-visible {
	width: auto;
	height: auto;
	margin: 0;
	padding: 8px 16px;
	overflow: visible;
	clip: auto;
	clip-path: none;
	white-space: normal;
	background: #f9f9f9;
	color: #4b3c1e;
	text-decoration: none;
}

/**
 * Suppress focus rings until the user navigates with the keyboard.
 * Programmatic focus on open (dialogs, search) keeps the default look.
 */
html:not(.nono-keyboard-nav) :focus-visible {
	outline: none !important;
	outline-offset: 0 !important;
}

/**
 * Site-wide keyboard focus indicator (WCAG 2.4.7).
 * Only active while html.nono-keyboard-nav is set (see nono-keyboard-nav.js).
 */
html.nono-keyboard-nav :is(
	a,
	area,
	button,
	input,
	select,
	textarea,
	summary,
	[href],
	iframe,
	[tabindex]:not([tabindex="-1"]),
	[role="button"],
	[role="link"],
	[role="tab"],
	[role="menuitem"],
	[role="menuitemcheckbox"],
	[role="menuitemradio"],
	[role="option"],
	[role="checkbox"],
	[role="radio"],
	[role="switch"],
	[role="combobox"],
	[role="slider"],
	.owl-prev,
	.owl-next,
	.mmenu,
	.nono-motion-control-btn,
	.nono-skip-link
):focus:not(:focus-visible) {
	outline: none;
}

html.nono-keyboard-nav :is(
	a,
	area,
	button,
	input,
	select,
	textarea,
	summary,
	[href],
	iframe,
	[tabindex]:not([tabindex="-1"]),
	[role="button"],
	[role="link"],
	[role="tab"],
	[role="menuitem"],
	[role="menuitemcheckbox"],
	[role="menuitemradio"],
	[role="option"],
	[role="checkbox"],
	[role="radio"],
	[role="switch"],
	[role="combobox"],
	[role="slider"],
	.owl-prev,
	.owl-next,
	.mmenu,
	.nono-motion-control-btn,
	.nono-skip-link
):focus-visible {
	border: 2px solid #4b3c1e;
	outline: 2px solid #f9f9f9;
	outline-offset: 2px;
}

html.nono-keyboard-nav .nono-motion-control-btn:focus-visible {
	width: auto;
	height: auto;
	margin: 4px;
	padding: 4px 8px;
	overflow: visible;
	clip: auto;
	clip-path: none;
	white-space: normal;
	z-index: 10;
}

html.nono-keyboard-nav .running-line-block .nono-motion-control-btn:focus-visible {
	top: 0;
	left: 0;
}

html.nono-keyboard-nav .home-top-slider-section .nono-motion-control-btn:focus-visible {
	top: 8px;
	left: 8px;
}

/* Branch locator: scroll container must not enter tab order or show a focus ring. */
html.nono-keyboard-nav .archive_branch .branch_list_wrap:focus,
html.nono-keyboard-nav .archive_branch .branch_list_wrap:focus-visible {
	outline: none !important;
	border: none !important;
	box-shadow: none !important;
}
