/* =========================================================================
   EnableUser Accessibility Fixes  -  a11y-fixes.css   (v3.0.0)
   -------------------------------------------------------------------------
   Structural / value fixes that are safest to pin in CSS. Per-pixel text
   recolouring is still done at runtime in a11y-fixes.js so ONLY the exact
   text that fails WCAG is touched. These rules are deliberately scoped to
   the specific widgets flagged in the BrowserStack report so the visible
   design is preserved.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1.4.3 Contrast — flip-boxes / buttons animate their brand colour with a
   0.5s transition that sits above !important, so disabling it lets the JS
   apply a WCAG-passing (same-hue, slightly darker) background.
   ------------------------------------------------------------------------- */
.eael-elements-flip-box-front-container,
.eael-elements-flip-box-back-container,
.eael-elements-flip-box-rear-container,
.flipbox-button,
.elementor-button {
	transition: none !important;
}

/* -------------------------------------------------------------------------
   1.4.3 Contrast — post-meta dates. The scanner reports #888888 on the
   #f5f5f5 post cards (3.25:1). These meta rows are always on the light
   cards, so a slightly darker grey (#595959 ≈ 6.5:1) fixes contrast while
   staying visually a muted grey. Guaranteed regardless of JS timing.
   ------------------------------------------------------------------------- */
.sp-pcp-post-meta,
.sp-pcp-post-meta li,
.sp-pcp-post-meta a,
.sp-pcp-post-meta time,
.sp-pcp-post-meta i,
.pcp-post-meta,
.pcp-post-meta time,
.pcp-post-meta a,
.entry-date,
.posted-on,
.posted-on a,
.entry-meta .entry-date {
	color: #595959 !important;
}

/* -------------------------------------------------------------------------
   1.4.11 Non-text contrast — form controls whose borders fall below 3:1.
   Scoped to the exact controls flagged (search boxes, comment / WPForms /
   Grunion fields). A 1px #6d6d6d border is ~3.5:1 on white and reads as a
   normal thin field border.
   ------------------------------------------------------------------------- */
.wp-block-search__input,
input.wp-block-search__input,
.search-field,
input[type="search"],
input[type="text"].grunion-field,
input[type="email"].grunion-field,
textarea.grunion-field,
input.wpforms-field-medium,
input.wpforms-field-large,
input.wpforms-field-small,
textarea.wpforms-field-medium,
textarea.wpforms-field-large,
textarea.wpforms-field-small,
select.wpforms-field-medium,
select.wpforms-field-large,
#author,
#email,
#url,
#comment {
	border: 1px solid #6d6d6d !important;
}

/* -------------------------------------------------------------------------
   1.4.1 Use of Color (link-in-text-block / distinguishable-link)
   In-content text links must be distinguishable by more than colour. Add an
   underline ONLY to body-copy links — never buttons, nav or icon links.
   ------------------------------------------------------------------------- */
.elementor-widget-text-editor .elementor-widget-container a:not(.elementor-button):not([role="button"]):not(.wp-block-button__link),
.elementor-widget-text-editor .elementor-widget-container ol a:not(.elementor-button),
.elementor-widget-text-editor .elementor-widget-container ul a:not(.elementor-button),
.entry-content p a:not(.elementor-button):not([role="button"]),
.entry-content li a:not(.elementor-button):not([role="button"]),
.entry-content ol a:not(.elementor-button),
.entry-content ul a:not(.elementor-button),
.sp-pcp-post-content p a,
.wp-block-post-content a:not(.wp-element-button) {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Keep buttons / CTAs visually unchanged (no underline). */
.elementor-button,
.elementor-button:hover,
a.elementor-button .elementor-button-text,
.wp-block-button__link {
	text-decoration: none;
}

/* -------------------------------------------------------------------------
   3.3.2 Required-field instruction injected by the JS. Small, muted and
   placed at the top of the form so it reads as a normal helper line.
   ------------------------------------------------------------------------- */
.eua11y-required-note {
	font-size: 0.8125em;
	color: #595959;
	margin: 0 0 0.75em;
	line-height: 1.4;
}

/* -------------------------------------------------------------------------
   Hero rotating headline clipping fix (unchanged from v2).
   ------------------------------------------------------------------------- */
.elementor-image-carousel-caption { line-height: 1.3 !important; }
.elementor-image-carousel-wrapper.swiper { overflow: visible !important; }
.elementor-image-carousel-wrapper .swiper-wrapper,
.elementor-image-carousel-wrapper .swiper-slide { height: auto !important; min-height: 1.3em; }

/* -------------------------------------------------------------------------
   2.4.7 Focus visible — keyboard-only outline. Does not change the mouse
   appearance of any element; only shows an outline on keyboard focus. Also
   gives the JS-activated carousel arrows a clear focus ring.
   ------------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible,
.elementor-button:focus-visible,
.pcp-button-prev:focus-visible,
.pcp-button-next:focus-visible,
.swiper-button-prev:focus-visible,
.swiper-button-next:focus-visible {
	outline: 2px solid #005fcc !important;
	outline-offset: 2px !important;
}

/* Skip-link contrast (clipped off-screen until focused). */
.skip-link,
a.skip-link.screen-reader-text {
	color: #ffffff !important;
	background-color: #001127 !important;
}
.skip-link:focus,
a.skip-link.screen-reader-text:focus {
	background-color: #001127 !important;
	color: #ffffff !important;
	padding: 8px 16px !important;
	z-index: 100000 !important;
}

/* Visually-hidden helper (for text exposed to AT without visual change). */
.eua11y-sr-only {
	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;
}
