/* RU Accessibility — site-wide fixes. See ACCESSIBILITY-AUDIT.md in the project root. */

/* ----- Skip link (WCAG 2.4.1) ----- */
.skip-link {
	position: absolute;
	left: 16px;
	top: -100px;
	z-index: 100000;
	padding: 12px 20px;
	border-radius: 40px;
	background: #001d3a;
	color: #fff;
	font: 600 16px/1.2 Figtree, sans-serif;
	text-decoration: none;
}
.skip-link:focus {
	top: 16px;
	outline: 3px solid #7fb4ec;
	outline-offset: 2px;
}
#content:focus { outline: none; }

/* ----- Visible focus (WCAG 2.4.7) -----
   :where() keeps this at zero specificity, so components with their own
   focus style keep it. The rules after it fix components that removed theirs. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid #1d6fc2;
	outline-offset: 2px;
}
.ru-fd__button:focus-visible,
.ru-nav .ru-nav__toggle:focus-visible,
.swiftfaq-question button:focus-visible,
.ss-main:focus-visible,
.fl-button:focus-visible {
	outline: 3px solid #1d6fc2 !important;
	outline-offset: 3px !important;
}
#footer :focus-visible,
.ru-header-dark :focus-visible {
	outline-color: #7fb4ec !important;
}

/* ----- Formidable: hidden labels stay readable by screen readers (1.3.1 / 4.1.2) -----
   Formidable's "None" label position uses display:none, which removes the
   field's only name. Hide it visually instead. */
.with_frm_style .frm_none_container .frm_primary_label,
.frm_none_container .frm_primary_label,
.with_frm_style .frm_pos_none,
.frm_pos_none {
	display: block !important;
	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;
}
.frm_none_container { position: relative; }

/* ----- Formidable text contrast (1.4.3) — #939290 / #8d8d8d were ~3:1 ----- */
body .with_frm_style .frm_checkbox label,
body .with_frm_style .frm_radio label,
body .with_frm_style .frm_description {
	color: #5b6b7a;
}
/* Links inside consent text are only told apart by colour otherwise (1.4.1). */
body .with_frm_style .frm_checkbox label a,
body .with_frm_style .frm_description a {
	color: #1d6fc2;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.frm_slimselect,
.ss-main,
.ss-content {
	--ss-font-placeholder-color: #5b6b7a;
}
.with_frm_style ::placeholder { color: #5b6b7a; opacity: 1; }

/* ----- UABB info-box "Step N" prefix: now a <p>, not an <h5> (1.3.1) ----- */
p.uabb-infobox-title-prefix {
	margin-top: 0;
	font-size: 0.83em;
	font-weight: 700;
	line-height: 1.2;
}

/* ----- Vertical slider dots: 24px between centres (2.5.8 spacing exception) ----- */
.vs-pagination {
	--swiper-pagination-bullet-vertical-gap: 9px;
}
.vs-outer .vs-controls__dots {
	--swiper-pagination-bullet-horizontal-gap: 0px;
	gap: 16px;
}

/* ----- Accessibility page (/accessibility/, seeded by bin/seed-page.php) ----- */
.ru-a11y-page h1 { margin: 0 0 24px; }
.ru-a11y-page h2 { margin: 40px 0 12px; }
.ru-a11y-page ul { margin: 0 0 24px; padding-left: 1.25em; list-style: disc; }
.ru-a11y-page li { margin-bottom: 6px; }
body .ru-a11y-page a { color: #1d6fc2; text-decoration: underline; text-underline-offset: 2px; }
.ru-a11y-reviewed { color: #5b6b7a; }
#report { scroll-margin-top: calc(var(--ru-header-offset, 76px) + 24px); }

/* ----- Eyebrow-style H1 (/get-help/ #2669, bin/add-get-help-eyebrow.php) -----
   The child theme sizes every h1 with !important, so this needs it too. */
.ru-eyebrow-h1 h1.fl-heading,
.ru-eyebrow-h1 h1.fl-heading > span {
	font-family: Figtree, sans-serif;
	font-size: 13px !important;
	font-weight: 600;
	line-height: 1.2 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #1d6fc2;
}
