/* Accessibility fixes (WCAG 2.1 AA). Loaded after the parent theme. */

/* Skip link: hidden until focused. */
.hb-skip-link {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 100000;
	padding: 12px 20px;
	background: #122337;
	color: #ffffff !important;
	font-weight: 600;
	text-decoration: none;
}

.hb-skip-link:focus {
	top: 16px;
}

/* Visible keyboard focus. The parent theme removes outlines globally (:focus { outline: none }).
   Brand pink #e20e64 is 3:1+ against both white and the navy. */
:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid #e20e64 !important;
	outline-offset: 3px !important;
}

#main-content:focus {
	outline: none !important;
}

/* Form fields show focus for mouse users too. */
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
	outline: 3px solid #e20e64 !important;
	outline-offset: 1px !important;
}

/* Mega menus open on keyboard focus, same as hover. */
.msm-menu-item.msm-hover:not(.hb-msm-dismissed):focus-within .msm-submenu,
.msm-link.msm-hover:not(.hb-msm-dismissed):focus-within .msm-submenu {
	visibility: visible;
	opacity: 1;
	z-index: 90;
}

/* Screen-reader-only text added by a11y.js. */
.hb-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Respect reduced motion: show WPBakery animated elements without animating them. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.wpb_animate_when_almost_visible {
		opacity: 1 !important;
	}
}
