/*
 * SES-01 accessibility fixes from the WCAG 2.2 AA audit, 29 Oct 2026
 * (launch/wcag-2.2-aa-2026-10-29.md). Loaded after ACSS so the tokens win.
 */

/* 2.4.11: keep focused elements and #request-staff / #apply / #enquiry clear of the 76px sticky header. */
html {
	scroll-padding-top: calc(var(--ses-header-h, 76px) + 1rem);
}

/* 1.4.11, 2.4.7: the purple ring is 1.8:1 on dark surfaces, so they get the yellow accent. */
.bg--ultra-dark,
.bg--dark,
.ses-footer,
.ses-callbar,
html.ses-js body:has(.ses-hero--photo) .ses-header:not(.scrolled) {
	--focus-color: var(--accent);
}

/* 2.4.7: buttons and the form Submit get a solid 2px ring with an offset, in the surface's focus colour,
   instead of ACSS's pale lilac ring (1.2:1 on white). */
[class*="btn--"]:focus-visible,
.wsf-form button.wsf-button:focus-visible {
	outline: var(--focus-width, 2px) solid var(--focus-color);
	outline-offset: var(--focus-offset, 2px);
}

/* 1.4.11: field edges were 1.6:1 on white; #767676 is 4.5:1. WS Form style 1 compiles the colour into
   --wsf-field-border on the form element, so it is overridden there. The focus border stays purple. */
.ses-formcard form.wsf-form {
	--wsf-field-border: 1.5px solid #767676;
}

/* Mobile menu: stop the panel above the call bar so its last link is not covered. */
@media (width < 992px) {
	.ses-mobile__panel {
		max-height: calc(100dvh - var(--ses-header-h, 76px) - 56px);
	}
}

/* 1.4.10: at very short viewports (high zoom) the header and call bar stop being fixed. */
@media (max-height: 30em) {
	.ses-header,
	.ses-callbar {
		position: static;
	}
}