/* ==========================================================================
   Anthem Insurance Group - accessibility stylesheet
   Wave 1, JJ#72999, 2026-08-20.

   Loaded after the child stylesheet. Several rules need !important purely to
   beat the parent theme's own resets, which are noted inline where that is
   the case.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Visually-hidden utility

   The parent theme ships .screen-reader-text but only reveals it on focus in
   one narrow selector. This is the standard implementation, used by the skip
   link and by every visually-hidden label added in Wave 1.
   -------------------------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}


/* --------------------------------------------------------------------------
   2. Skip to main content (WCAG 2.4.1)

   Off-screen until focused, then pinned top-left. White on the brand navy is
   13.69:1, comfortably past the 4.5:1 requirement.
   -------------------------------------------------------------------------- */
.aig-skip-link {
	position: absolute;
	top: -200px;
	left: 8px;
	z-index: 100000;
	display: block;
	padding: 14px 22px;
	background: #0c2e54;
	color: #ffffff !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: underline;
	border-radius: 0 0 4px 4px;
	transition: none;
}

.aig-skip-link:focus,
.aig-skip-link:focus-visible {
	top: 0;
	color: #ffffff !important;
	outline: 3px solid #ffffff;
	outline-offset: -6px;
}

/* The skip target takes focus programmatically; suppress its own ring so the
   jump does not paint a box around the whole page. */
main#main-content:focus {
	outline: none;
}


/* --------------------------------------------------------------------------
   3. Visible keyboard focus (WCAG 2.4.7)

   The parent stylesheet actively removes focus outlines:
       a:active, a:focus, a:hover { outline: 0 }
       .sf-menu a:focus           { outline: 0 }
       select:active, select:focus{ outline: 0 }
   so a keyboard user had no indication of position anywhere on the site.

   !important is required to beat those resets. The white outer ring keeps the
   indicator legible against the navy header and footer as well as white body
   background.
   -------------------------------------------------------------------------- */
:is(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 3px solid #0c2e54 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px #ffffff !important;
}

/* On the dark header/footer, invert so the ring stays visible either way. */
#header-inner :is(a, button, input, select):focus-visible,
#footer :is(a, button, input, select):focus-visible,
#mobile-menu :is(a, button, input, select):focus-visible {
	outline: 3px solid #ffffff !important;
	box-shadow: 0 0 0 5px #0c2e54 !important;
}

/* Browsers without :focus-visible still get something. */
:is(a, button, input, select, textarea):focus:not(:focus-visible) {
	outline: none;
}


/* --------------------------------------------------------------------------
   4. Contrast corrections (WCAG 1.4.3)

   Every value below was measured against the rendered background.

     .minor-meta dates    #999999 on #f9f9f9 = 2.70:1  ->  #6e6e6e = 5.28:1
     CF7 placeholders     #777777 on #ffffff = 4.47:1  ->  #757575 = 4.60:1
     404 helper text      #7d7d7d on #f9f9f9 = 3.90:1  ->  #6e6e6e = 5.28:1
     buttons/fills        #ffffff on #7e8ea4 = 3.33:1  ->  #667891 = 4.51:1
     accent               #da4c26 on #ffffff = 4.16:1  ->  #d04823 = 4.53:1

   The two brand tokens shift by 8.5% and 2.5% lightness respectively, which is
   visually near-identical. The navy (#0c2e54, 13.69:1) is untouched.
   -------------------------------------------------------------------------- */
.minor-meta,
.additional-desc {
	color: #6e6e6e !important;
}

::placeholder {
	color: #757575 !important;
	opacity: 1;
}
::-webkit-input-placeholder { color: #757575 !important; }
::-moz-placeholder          { color: #757575 !important; opacity: 1; }
:-ms-input-placeholder      { color: #757575 !important; }

/* Brand slate used as a background behind white text. */
.wpcf7-submit,
.hb-button,
input[type="submit"],
button.hb-button,
.hb-button-flat {
	background-color: #667891 !important;
}

.wpcf7-submit:hover,
.hb-button:hover,
input[type="submit"]:hover,
button.hb-button:hover {
	background-color: #56657b !important;
}


/* --------------------------------------------------------------------------
   5. In-text links distinguishable without colour (WCAG 1.4.1)

   Links inside body copy were marked by colour alone. Scoped deliberately to
   content areas and excluded from buttons, navigation, the carousel and
   anything image-wrapped, so this does not underline the whole site.
   -------------------------------------------------------------------------- */
main#main-content p > a:not(.hb-button):not([class*="vc_single_image"]):not(.content-download-btn),
main#main-content li > a:not(.hb-button):not([class*="vc_single_image"]),
.wpb_text_column p > a:not(.hb-button):not([class*="vc_single_image"]),
.wpb_text_column li > a:not(.hb-button):not([class*="vc_single_image"]) {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.contact-notice a,
#footer .textwidget p > a {
	text-decoration: underline;
	text-underline-offset: 2px;
}


/* --------------------------------------------------------------------------
   6. Partner carousel controls (WCAG 2.5.8 target size, 4.1.2)

   Owl Carousel generates empty <button class="owl-dot"> elements whose visible
   dot is roughly 10px. WCAG 2.2 requires a 24x24 CSS px target. The padding
   grows the hit area while leaving the dot itself the same size, so nothing
   about the design changes visually.
   -------------------------------------------------------------------------- */
.owl-ourpartners .owl-dots {
	line-height: 1;
}

.owl-ourpartners .owl-dot {
	position: relative;
	min-width: 24px;
	min-height: 24px;
	padding: 7px !important;
	background: transparent !important;
	border: 0;
	vertical-align: middle;
	cursor: pointer;
}

.owl-ourpartners .owl-nav button.owl-prev,
.owl-ourpartners .owl-nav button.owl-next {
	min-width: 24px;
	min-height: 24px;
}


/* --------------------------------------------------------------------------
   7. The "button-image" blocks

   A WPBakery image block whose caption is made clickable by script. The
   caption is a div, so it is not keyboard reachable; js/a11y.js gives the
   underlying anchor the accessible name instead and stops the caption from
   being the only route. This just keeps the cursor honest.
   -------------------------------------------------------------------------- */
.button-image .wpb_singleimage_heading {
	cursor: pointer;
}


/* --------------------------------------------------------------------------
   8. Respect reduced-motion preference (WCAG 2.3.3)

   The partner carousel autoplays. Anyone who has asked their system to reduce
   motion should not be given a moving carousel; js/a11y.js also stops autoplay
   for these users, this covers CSS transitions.
   -------------------------------------------------------------------------- */
@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;
	}
}


/* --------------------------------------------------------------------------
   9. Partner widget title

   Was an <h3> sitting directly beneath the page <h1> with no <h2> between,
   which skipped a heading level on all 25 templates. It labels a footer
   widget rather than a document section, so it is now a styled <p>. These
   rules reproduce the theme's h3 appearance exactly so nothing shifts.
   -------------------------------------------------------------------------- */
.ourpartners_wrap .ourpartners-title {
	font-family: inherit;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 20px;
	color: inherit;
}


/* --------------------------------------------------------------------------
   10. Wave 1b corrections

   Fixes for what the first Wave 1 scan still reported.
   -------------------------------------------------------------------------- */

/* The skip link now lives in a <nav> so it is inside a landmark. The wrapper
   must not occupy layout space or it pushes the page down by a pixel. */
.aig-skip-nav {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 0;
	z-index: 100000;
}

/* Footer privacy link sat in <div class="copytext">, not a <p>, so the
   in-text underline rule in section 5 never matched it. axe reported it as
   link-in-text-block on all 25 templates. (WCAG 1.4.1) */
#footer .copytext a,
#footer a.footer-privacy,
.copytext a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Contrast, second pass. These selectors need to out-specify the theme's own
   rules, which is why they are more verbose than section 4.

   Contact Form 7 placeholders measured #777777 on #ffffff = 4.47:1, just under
   the 4.5:1 threshold. The generic ::placeholder rule was being beaten by the
   theme's .wpcf7-form-control rules. (WCAG 1.4.3) */
.wpcf7-form-control::placeholder,
.wpcf7-form-control::-webkit-input-placeholder,
input.wpcf7-form-control::placeholder,
textarea.wpcf7-form-control::placeholder,
.req-text-box::placeholder,
.req-textarea::placeholder {
	color: #757575 !important;
	opacity: 1 !important;
}

/* Post author link and share bar measured #999999 on #f9f9f9 = 2.70:1. */
.minor-meta a,
.minor-meta a:link,
.minor-meta a:visited,
.share-holder,
.share-holder a,
a[rel="author"] {
	color: #6e6e6e !important;
}

/* The quote-form heading moved from <h3> to <h2> to stop skipping a heading
   level. These rules keep it rendering exactly as the h3 did. */
.auto-contact-form-well h2 {
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 12px;
}

/* Theme headings that skipped levels are now the correct level (or a <p>).
   These keep the original appearance. */
p.additional-desc {
	font-size: 18px;
	line-height: 1.5;
	margin: 0 0 10px;
}
.refine-search-wrapper h2.title-class {
	font-size: 22px;
	font-weight: 600;
	margin: 0 0 6px;
}
.refine-search-wrapper p.lighter-text {
	font-size: 16px;
	margin: 0 0 14px;
}


/* --------------------------------------------------------------------------
   11. Wave 1c corrections

   The placeholder colour fix in section 10 did not take, because the theme
   does not colour the placeholder at all -- it sets color:#777 on the INPUT,
   and the placeholder inherits it:

     input[type=email], input[type=password], input[type=search],
     input[type=tel],   input[type=text],     input[type=url],
     select, textarea { ... color:#777; ... }

   #777777 on #ffffff is 4.47:1, just under the 4.5:1 threshold. Correcting the
   input colour fixes both the typed text and the placeholder.
   (WCAG 1.4.3)
   -------------------------------------------------------------------------- */
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="url"],
input[type="number"],
select,
textarea,
.wpcf7-form-control,
.req-text-box,
.req-textarea {
	color: #595959 !important;   /* 7.0:1 on white - comfortable for typed text */
}

/* Placeholders stay visually lighter than typed text while still passing. */
input::placeholder,
textarea::placeholder,
.wpcf7-form-control::placeholder {
	color: #757575 !important;   /* 4.60:1 on white */
	opacity: 1 !important;
}

/* Theme rule .search .lighter-text{color:#777} = 4.25:1 on the #f9f9f9
   search-page background. */
.lighter-text,
.search .lighter-text,
p.lighter-text {
	color: #6e6e6e !important;   /* 5.28:1 on #f9f9f9 */
}


/* --------------------------------------------------------------------------
   12. Sentences that were marked up as headings

   Four service pages had a full sentence wrapped in <h3>, purely to get the
   type size. A screen reader announced each one as a heading, and because
   they followed the page <h1> with no <h2> between they also skipped a level.

   They are now <p class="aig-h3-style">. These rules reproduce the theme's h3
   appearance exactly, so the pages look identical to before.
   (WCAG 1.3.1)
   -------------------------------------------------------------------------- */
.aig-h3-style {
	font-family: inherit;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 20px;
	color: inherit;
}

@media (max-width: 767px) {
	.aig-h3-style {
		font-size: 20px;
	}
}
