/* ============================================
   ACCESSIBILITY ENHANCEMENTS
   WCAG 2.1 AAA Compliant Styles
   ============================================ */

/* Skip to Main Content Link */
.skip-to-main {
    position: absolute;
    left: -9999px;
    z-index: 999;
    padding: 1em;
    background-color: var(--main-color-one);
    color: white;
    text-decoration: none;
}

.skip-to-main:focus {
    left: 50%;
    transform: translateX(-50%);
    top: 0;
}

/* Focus Visible Styles */
*:focus-visible {
    outline: 3px solid var(--main-color-one);
    outline-offset: 2px;
}

/* Remove outline for mouse users */
*:focus:not(:focus-visible) {
    outline: none;
}

/* Ensure all interactive elements have sufficient touch target size */
a,
button,
input,
select,
textarea {
    min-height: 44px;
    min-width: 44px;
}

/* High Contrast Link Styles */
a {
    color: #1A1B1D;
    text-decoration: none !important;
    text-underline-offset: 2px;
}

a:hover,
a:focus {
    color: var(--main-color-one);
    text-decoration: none !important;
}

/* Screen Reader Only Content */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Ensure sufficient color contrast for all text */
.text-light-bg {
    color: #1A1B1D !important;
}

.text-dark-bg {
    color: #FFFFFF !important;
}

/* Improve form field visibility */
input,
select,
textarea {
    border: 2px solid #404145;
    background-color: #FFFFFF;
    color: #1A1B1D;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--main-color-one);
    box-shadow: 0 0 0 3px rgba(29, 191, 115, 0.2);
}

/* Error states with sufficient contrast */
.error,
.invalid {
    color: #C41E3A;
    border-color: #C41E3A;
}

/* Success states with sufficient contrast */
.success,
.valid {
    color: #0F7A3E;
    border-color: #0F7A3E;
}

/* Breadcrumb Contrast Fixes */
.banner-inner-contents .inner-menu .list {
    color: #404145 !important;
    font-weight: 500;
}

.banner-inner-contents .inner-menu .list a {
    color: #1A1B1D !important;
    font-weight: 600;
}

.banner-inner-contents .banner-inner-title {
    color: #1A1B1D !important;
    margin-top: 10px;
}

/* Footer Link Contrast Fixes */
.footer-area,
.footer-area p,
.footer-area span,
.footer-area li {
    color: #404145 !important;
}

.footer-area a {
    color: #222325 !important;
    font-weight: 500;
}

.footer-area a:hover {
    color: var(--main-color-one) !important;
}

/* Regional Switcher Contrast */
.regional-switcher .text-dark {
    color: #1A1B1D !important;
}

/* Fix for Heading Order - Ensuring nested headings are correct */
.widget-title {
    color: #1A1B1D !important;
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

/* ============================================
   CONTRAST RATIO FIXES - PageSpeed Accessibility
   ============================================ */

/* Fix Log In button contrast - WCAG AA 4.5:1 minimum */
.cmn-btn.btn-outline-1.color-one {
    color: #1A1B1D !important;
    border-color: #404145 !important;
    border-width: 2px !important;
}

.cmn-btn.btn-outline-1.color-one:hover,
.cmn-btn.btn-outline-1.color-one:focus {
    color: #FFFFFF !important;
    background-color: #1A1B1D !important;
    border-color: #1A1B1D !important;
}

/* Fix Sign Up button contrast */
.cmn-btn.btn-bg-1 {
    background-color: #1A8E47 !important;
    color: #FFFFFF !important;
}

.cmn-btn.btn-bg-1:hover,
.cmn-btn.btn-bg-1:focus {
    background-color: #146F38 !important;
    color: #FFFFFF !important;
}

/* Fix step-card text contrast */
.single-step-card .step-card-title,
.single-step-card .step-card-description {
    color: #1A1B1D !important;
}

/* Fix any light-on-light text issues */
.text-muted {
    color: #404145 !important;
}

/* Fix search title heading size for font consistency */
.header-global-search-title {
    font-size: 1rem !important;
    font-weight: 700;
    color: #1A1B1D !important;
}