/* ============================================
   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;
}