/* =====================================================================
   EnableUser accessibility fixes - inpactwealth.com
   WCAG 2.1 / 2.2 Level AA. Loaded after style.css + responsive.css
   (see main_links() in common.php). Remove this file + its <link>
   to roll back.
   ===================================================================== */

/* WCAG 1.4.3 Contrast (Minimum)
   Section sub-titles ("Offering", "Welcome To", "Client Testimonials" ...)
   were #e0ab00 = 2.1:1 on white / 1.92:1 on #f5f5f5.
   #8b6a00 = 5.05:1 on white, 4.63:1 on #f5f5f5. The .light variant keeps
   its own colour (more specific rule in style.css). */
.sec-title .sub-title {
  color: #8b6a00;
}

/* WCAG 1.4.1 Use of Color (axe: link-in-text-block)
   Links that sit inside a sentence need a non-colour cue. */
.footer-bottom p a,
a.sebi-link {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* WCAG 2.4.7 Focus Visible
   style.css has ":active, :focus { outline: none !important; }", which
   removes the focus ring from every link, button and field. Restore a
   visible ring for keyboard users only (:focus-visible), so mouse clicks
   look unchanged. */
:focus-visible {
  outline: 3px solid #b25f00 !important;
  outline-offset: 2px !important;
  /* white halo: keeps the ring >= 3:1 against dark photos and panels too (WCAG 1.4.11) */
  box-shadow: 0 0 0 7px #ffffff !important;
}


/* ---------------------------------------------------------------------
   Round 2 - BrowserStack scan "inpactwealth.com-16" (01 Oct 2026)
   --------------------------------------------------------------------- */

/* WCAG 2.4.1 Bypass Blocks - "Skip to main content" link (first focusable
   element on every page). Hidden until it receives keyboard focus. */
.skip-link {
  transition: none !important;
  position: absolute;
  left: -10000px;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 100000;
}
.skip-link:focus,
.skip-link:focus-visible {
  position: fixed;
  left: 16px;
  top: 16px;
  width: auto;
  height: auto;
  overflow: visible;
  padding: 12px 20px;
  background: #0B3130;
  color: #ffffff;
  font-weight: 600;
  border-radius: 6px;
  text-decoration: underline;
}
/* <main> only receives focus programmatically from the skip link */
#main-content:focus,
#main-content:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* WCAG 1.4.3 - gradient buttons ("Contact Us", "Speak With Our Advisor",
   "Discover More", "Show More"). White text on the yellow end was ~1.7:1.
   Black text keeps the brand gradient and passes across all of it:
   12.6:1 on #f5c232, 11.1:1 on #ffab0b, 5.3:1 on #019444, 10:1 on the
   #D4AF37 hover fill. */
.btn-style-one,
.btn-style-one:hover,
.btn-style-one:focus,
.btn-style-two,
.btn-style-two:hover,
.btn-style-two:focus {
  color: #000000 !important;
}
.btn-style-one svg path {
  fill: #000000;
}

/* WCAG 1.4.3 - home hero: heading/paragraph sit on a bright forest photo.
   Stronger teal overlay behind the text column (fades out on the right).
   isolation makes the theme's existing z-index:-1 overlay actually paint
   above the section's background photo (it was hidden behind it). */
.hero-5 {
  isolation: isolate;
}
.hero-5::before {
  background: linear-gradient(100deg, rgba(6, 41, 40, 0.78) 0%, rgba(6, 41, 40, 0.66) 55%, rgba(11, 49, 48, 0) 100%);
}

/* WCAG 1.4.3 - inner-page banners: breadcrumb ("Home" link) and page title
   on a photo. Stronger overlay on the left where the text sits. */
.page-title:before {
  background: linear-gradient(90deg, rgba(4, 44, 42, 0.8) 0%, rgba(4, 44, 42, 0.6) 50%, rgba(4, 44, 42, 0.3) 100%);
}

/* WCAG 1.4.3 - home "Suite of Services" cards: gold titles and 01/02/03
   counters on photos. Darken the photo slightly and give the title pill a
   dark backing. */
.case-block-one .inner-box {
  position: relative;
  isolation: isolate;
}
.case-block-one .inner-box::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.15) 45%, rgba(0, 0, 0, 0.6) 100%);
  z-index: -1;
  pointer-events: none;
}
.case-block-one .inner-box .case-title {
  background: rgba(0, 0, 0, 0.62);
}
.case-block-one .inner-box .content .sl-number {
  color: rgba(255, 255, 255, 0.9);
}

/* WCAG 1.4.11 Non-text Contrast */
/* Regulatory Compliances card arrows: white on #d89900 was 2.48:1 -> dark teal 5.67:1 */
.project-card-items .project-content .icon,
.project-card-items .project-content .icon:hover {
  color: #0B3130;
}
/* Testimonial slider "next" button: green arrow on gold was 1.7:1 -> dark teal 6.9:1
   (hover state keeps the theme's white-on-dark-teal) */
.testimonial-section-3 .array-button .array-next {
  color: #0B3130;
}
/* Testimonial rating stars: #ff8c22 was 2.33:1 on white -> #b25f00 4.64:1 */
.image-box-style-3 .star {
  color: #b25f00;
}
/* Contact form field borders: 43% green (~1.9:1) -> solid #00843e (4.7:1) */
.contact-box-style-3 form .input input,
.contact-box-style-3 form textarea {
  border-color: #00843e;
}
/* Native investment <select> (nice-select removed on this field) styled like the inputs */
.contact-box-style-3 form select[name="product"] {
  display: block;
  width: 100%;
  height: 50px;
  padding: 0 16px;
  border: 1px solid #00843e;
  border-radius: 5px;
  background-color: #ffffff;
  color: #000000;
  font-size: 16px;
}

/* ---------------------------------------------------------------------
   Round 3 - "Regulatory Compliances" dropdown (WCAG 2.1.1 / 4.1.2)
   The sub-menu only showed on :hover. Also show it when the trigger is
   expanded from the keyboard (aria-expanded is toggled by the script at
   the end of main_script() in common.php).
   --------------------------------------------------------------------- */
.main-menu .navigation > li.dropdown > a[aria-expanded="true"] + ul {
  margin-top: 0;
  opacity: 1;
  top: 100%;
  visibility: visible;
}

/* =====================================================================
   EnableStack accessibility widget - INPact theme
   The widget (js/enablestack-widget.js, loaded from main_script() in
   common.php) is built with the logo green #00843e, which themes the
   launcher, icons and accents. Its neutral surfaces are lavender by
   default, so they are re-tinted here to the site's green/teal palette
   using the widget's own theme variables. Contrast checked:
   ink #0b3130 >= 12.3:1, muted #566965 >= 5.1:1, green #00843e 4.55:1
   on the card background.
   ===================================================================== */
#eu-accessibility-widget-container,
html:root {
  --eu-option-bg: #f5faf7;
  --eu-surface-2: #edf6f1;
  --eu-hover: #e6f3ec;
  --eu-border: #e0f0e8;
  --eu-border-strong: #c7e4d5;
  --eu-option-text: #0b3130;
  --eu-text: #0b3130;
  --eu-text-muted: #566965;
}

/* ---------------------------------------------------------------------
   Footer links - permanently underlined (Company, Regulatory, phone,
   email, Design For U, ODR Portal, Privacy Policy). The theme only
   showed a line on hover; the hover gradient line still plays on top.
   --------------------------------------------------------------------- */
.footer-section-1 a,
.footer-section-1 a:hover,
.footer-section-1 a:focus {
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* ---------------------------------------------------------------------
   Keyboard (Tab) navigation
   --------------------------------------------------------------------- */
/* Mobile menu open/close icons are now <button>s - keep the theme's look */
button.mobile-nav-toggler,
.mobile-menu button.close-btn {
  background: transparent;
  border: 0;
  padding: 0;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
}
.mobile-menu button.close-btn {
  line-height: 1;
}

/* WCAG 2.4.11 Focus Not Obscured - when Tab scrolls the page, keep the
   focused item clear of the sticky header (top) and the floating
   accessibility / back-to-top buttons (bottom). Also applies to the
   "Skip to main content" jump. */
html {
  scroll-padding-top: 100px;
  scroll-padding-bottom: 90px;
}
/* On phones the last footer row sat under the floating buttons */
@media (max-width: 991.98px) {
  .footer-bottom {
    padding-bottom: 90px;
  }
}

/* Content that fades in on scroll (WOW.js) must be visible as soon as it
   receives keyboard focus, not after its animation delay */
.wow:focus-within {
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
}

/* give the small × a 24px target (WCAG 2.5.8) without moving it */
.mobile-menu button.close-btn {
  min-width: 24px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ---------------------------------------------------------------------
   Regulatory Compliances slider - Pause / Play button (WCAG 2.2.2),
   styled like the arrow buttons next to it
   --------------------------------------------------------------------- */
.array-button .array-pause {
  width: 51px;
  height: 51px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 50%;
  background-color: #ffffff;
  border: 1px solid #D9D9D9;
  color: #009d48;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}
.array-button .array-pause svg {
  fill: currentColor;
}
.array-button .array-pause .eu-icon-play,
.array-button .array-pause.is-paused .eu-icon-pause {
  display: none;
}
.array-button .array-pause.is-paused .eu-icon-play {
  display: block;
}
/* hover: theme turned the arrows white on a light lime gradient (1.3:1) -
   use dark teal on the gradient instead, for all three buttons */
.array-button .array-pause:hover,
.array-button .array-prev:hover,
.array-button .array-next:hover {
  background: var(--gradient-1);
  color: #0B3130;
}

/* =====================================================================
   Round 8 - strict WCAG 2.2 AA re-audit (Oct 2026)
   ===================================================================== */

/* 1.4.3 - text on photos */
/* breadcrumb "Home" link was gold on the banner photo (down to 3.3:1 on phones) */
.page-breadcrumb li a {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 767.98px) {
  .page-title:before {
    background: rgba(4, 44, 42, 0.72);
  }
  /* on phones the hero text spans the full width, so darken all of it */
  .hero-5::before {
    background: rgba(6, 41, 40, 0.72);
  }
}
/* "Embark on your Wealth Creation..." band: gold "Inpact Wealth Advisors" fell to 1.6:1 */
.cta-contact-wrapper::before {
  background: linear-gradient(90deg, rgba(6, 41, 40, 0.85) 0%, rgba(6, 41, 40, 0.72) 60%, rgba(6, 41, 40, 0.5) 100%);
  opacity: 1;
}

/* 1.4.3 - placeholder text is text too (was #7c858c, 3.8:1) */
::placeholder {
  color: #5c666e;
  opacity: 1;
}

/* 2.2.2 - the small arrow next to section labels moved forever; now it stops after 4 seconds */
.sec-title .sub-title .triangle.triangle2 {
  animation-iteration-count: 4;
}

/* 1.4.10 Reflow - at 320px the header (logo + Contact Us + menu button) was 6px too wide */
@media (max-width: 379.98px) {
  .main-header .header-lower .logo img {
    height: 54px !important;
  }
  .header-style-one .main-box .outer-box .theme-btn {
    font-size: 14px;
    padding: 6px 10px;
  }
  .header-style-one .main-box .outer-box .mobile-nav-toggler {
    margin-left: 12px;
  }
}

/* 1.4.12 Text Spacing - fixed-height cards cut their text off */
.service-block-four {
  height: auto;
  min-height: 359px;
}
.service-card-items-2 .content {
  height: auto;
  min-height: 272px;
}
@media (max-width: 767.98px) {
  .service-card-items-2 .content {
    min-height: 288px;
  }
}

/* 1.3.1 - former headings now paragraphs: keep their look */
.content-box-style-3 p.text {
  font-family: var(--heading-font-family);
}
.content-box-style-3 p.title {
  font-family: var(--heading-font-family);
  color: #004921;
  font-weight: var(--h3-font-weight);
  line-height: var(--line-height-heading);
  margin-bottom: 0;
}
.about-image-items-2 .about-counter2 .eu-count {
  font-family: var(--heading-font-family);
  font-weight: 700;
  font-size: 49px;
  line-height: var(--line-height-heading);
  color: #ffffff;
  margin: -7px 0 0;
  position: relative;
}

/* 1.3.1 - sticky header "Contact Us" now sits in its own list item;
   undo the menu-link styles that now reach it so the button looks as before */
.sticky-header .main-menu .navigation > li.eu-sticky-cta {
  float: right;
  margin: 0;
  padding: 0;
}
.sticky-header .main-menu .navigation > li.eu-sticky-cta > a.theme-btn {
  display: inline-flex;
  padding: 10px 20px;
  line-height: 16px;
}

/* 3.3.2 / 3.3.1 - contact form: visible labels, required note, inline errors */
.contact-box-style-3 .cf-label {
  display: block;
  margin-bottom: 6px;
  font-size: 15px;
  font-weight: 600;
  color: #0b3130;
}
.contact-box-style-3 textarea + .cf-error,
.contact-box-style-3 .cf-error {
  margin: 6px 0 0;
  font-size: 14px;
  font-weight: 500;
  color: #b30000;
}
.contact-box-style-3 .cf-required-note {
  margin: 0 0 10px;
  font-size: 14px;
  color: #4a4a4a;
}
.contact-box-style-3 [aria-invalid="true"] {
  border: 2px solid #b30000 !important;
}
.contact-box-style-3 textarea {
  display: block;
  margin-bottom: 12px;
}
.contact-box-style-3 .cf-error + .btn,
.contact-box-style-3 textarea + .btn {
  margin-top: 12px;
}
.form-error ul {
  padding-left: 18px;
  list-style: disc;
}
.form-error a {
  color: #8a0000;
  text-decoration: underline;
}
.form-success {
  color: #146c40 !important;
}

/* 1.1.1 - text version of the "Client Advisory Framework" diagram */
.eu-figure {
  margin: 0;
}
.eu-longdesc {
  max-width: 760px;
  margin: 20px auto 0;
  padding: 12px 18px;
  text-align: left;
  background: #ffffff;
  border: 1px solid #c7e4d5;
  border-radius: 8px;
}
.eu-longdesc summary {
  cursor: pointer;
  font-weight: 600;
  color: #0b3130;
}
.eu-longdesc ol {
  margin: 12px 0 0;
  padding-left: 22px;
  list-style: decimal;
}
.eu-longdesc li {
  list-style: decimal outside;
  margin-bottom: 6px;
  color: #333333;
}

/* 1.1.1 / 1.4.5 - "Our Moral Compass" logo explanation as real text (was an image of text) */
.eu-logo-meaning {
  display: grid;
  grid-template-columns: 1fr minmax(220px, 300px) 1fr;
  grid-template-areas: "tl logo tr" "bl logo br";
  gap: 32px 40px;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
  text-align: left;
}
.eu-logo-meaning__logo {
  grid-area: logo;
  padding: 40px 24px;
  text-align: center;
  background: #ffffff;
  border: 1px solid #00843e;
}
.eu-logo-meaning__logo img {
  max-width: 100%;
  height: auto;
}
.eu-logo-meaning .eu-tl { grid-area: tl; text-align: right; }
.eu-logo-meaning .eu-tr { grid-area: tr; }
.eu-logo-meaning .eu-bl { grid-area: bl; text-align: right; }
.eu-logo-meaning .eu-br { grid-area: br; }
.eu-logo-meaning__item h3 {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  color: #006b33;
}
.eu-logo-meaning__item p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: #333333;
}
@media (max-width: 991.98px) {
  .eu-logo-meaning {
    grid-template-columns: 1fr;
    grid-template-areas: "logo" "tl" "tr" "bl" "br";
    gap: 20px;
  }
  .eu-logo-meaning .eu-tl,
  .eu-logo-meaning .eu-bl { text-align: left; }
  .eu-logo-meaning__logo {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
  }
}
