/* ===========================================================================
   Accessibility (WCAG 2.1 / 2.2 AA)
   ---------------------------------------------------------------------------
   September 2026. Loaded last so it wins over Salient and the plugins on equal
   specificity. Each block corresponds to a failure reported by axe-core across
   the whole sitemap.
   =========================================================================== */

/* 1.4.1 Use of Colour. Links inside running copy are distinguished from the
   text around them by hue alone. Underline them so the distinction survives
   for anyone who cannot separate the two colours. Buttons and navigation are
   excluded: they carry their own affordances. */
.wpb_text_column a:not(.btn):not(.nectar-button):not([class*="button"]),
.entry-content a:not(.btn):not(.nectar-button):not([class*="button"]),
.post-content a:not(.btn):not(.nectar-button):not([class*="button"]),
.container-wrap p a:not(.btn):not(.nectar-button):not([class*="button"]),
.container-wrap li a:not(.btn):not(.nectar-button):not([class*="button"]) {
	text-decoration: underline;
}

/* Keep navigation, buttons and card links free of the underline. */
.gm-navbar-nav a,
.gm-main-menu a,
nav a,
footer .widget a,
a.nectar-button,
a.btn {
	text-decoration: none;
}

/* 2.4.7 Focus Visible. Give keyboard users one consistent, high-contrast
   indicator. Salient suppresses the outline on several controls. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid #8a2332;
	outline-offset: 2px;
}

/* Fallback for browsers without :focus-visible. */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
	outline: 3px solid #8a2332;
	outline-offset: 2px;
}

/* 1.4.3 Contrast. Grey text the theme and its widgets render below the 4.5:1
   minimum on white or near-white. #595959 is 7:1 on white. */
.wpb_text_column .small,
.nectar-milestone .subject,
.testimonial_slider .title,
small,
.text-muted,
figcaption,
.wp-caption-text {
	color: #595959;
}

/* 2.3.3 Animation from Interactions. Honour the operating system setting. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------------------------------------------------------------------------
   1.4.3 Contrast, second pass. The pairs below were measured on staging and
   all fall under the 4.5:1 minimum for body text. Replacements keep the same
   hue so the design reads unchanged; only the lightness moves.
   --------------------------------------------------------------------------- */

/* Grey body text on white or near-white: 2.1:1 to 4.5:1, all short of the bar.
   #595959 is 7:1 on white. Inline styles from the editor need the override. */
[style*="color: #888"],
[style*="color:#888"],
[style*="color: #777"],
[style*="color:#777"],
[style*="color: #b0b0b0"],
[style*="color: #b1b1b1"],
[style*="color: #999"],
[style*="color:#999"] {
	color: #595959 !important;
}

/* Bootstrap's muted grey (#6c757d) is 4.44:1 on its own panel colour. */
.text-muted,
.form-text {
	color: #595959;
}

/* Theme greys that the stylesheet sets rather than the editor. */
.nectar-milestone .subject,
.wpb_text_column .small,
.woocommerce .price del,
.entry-meta,
.meta-date,
.meta-category {
	color: #595959;
}

/* Brand orange is only 2:1 against white text, and white on orange is worse.
   Dark text on the orange panel reaches 8.6:1 and keeps the brand colour. */
[style*="background-color: #f9a639"],
[style*="background-color:#f9a639"],
[style*="background: #f9a639"],
[style*="background-color: #f7a700"],
[style*="background-color: #ef9f37"],
[style*="background-color: #fbc174"] {
	color: #2b2b2b !important;
}

/* Orange text on the maroon brand panel is 4.45:1 at body size. Lighten it to
   clear the bar while staying recognisably the same colour. */
[style*="background-color: #8a2332"] [style*="color: #f9a639"],
[style*="background-color: #842230"] {
	color: #ffd9a0 !important;
}

/* Muted maroon on maroon (2:1) and mid-grey on maroon (1.25:1) are unreadable.
   White on #8a2332 is 8.1:1. */
[style*="background-color: #8a2332"] [style*="color: #ac636d"],
[style*="background-color: #842230"] [style*="color: #555"],
[style*="background: #8a2332"] [style*="color: #ac636d"] {
	color: #ffffff !important;
}

/* #b97b84 on white is 3.37:1; the darker tint of the same hue is 5.2:1. */
[style*="color: #b97b84"],
.title[style*="#b97b84"] {
	color: #8a4a54 !important;
}

/* #ff9900 headings on white are 2.14:1 even at large sizes. */
[style*="color: #ff9900"],
[style*="color:#ff9900"] {
	color: #9a5b00 !important;
}
