/* -------------------------------------------------------
   FIX 1: Skip Link — visible when keyboard users tab to it
------------------------------------------------------- */
.skip-link, a[href="#content"] {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: -999;
}
.skip-link:focus, a[href="#content"]:focus {
    position: fixed;
    top: 0;
    left: 0;
    width: auto;
    height: auto;
    padding: 12px 20px;
    background-color: #1a5276;
    color: #ffffff;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    z-index: 99999;
    border: 3px solid #ffffff;
    border-radius: 0 0 4px 0;
    overflow: visible;
}

/* -------------------------------------------------------
   FIX 2: Focus Indicators — visible outline for keyboard users
------------------------------------------------------- */
a:focus, button:focus, input:focus,
textarea:focus, select:focus, [tabindex]:focus {
    outline: 3px solid #1a5276 !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px rgba(26, 82, 118, 0.25) !important;
}
*:focus-visible {
    outline: 3px solid #1a5276 !important;
    outline-offset: 2px !important;
}
*:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

/* -------------------------------------------------------
   FIX 3: Form Fields — visible labels and borders
------------------------------------------------------- */
.wpcf7-form label, .elementor-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    color: #333333;
}
.wpcf7-form input, .wpcf7-form textarea,
.elementor-form input, .elementor-form textarea {
    border: 2px solid #767676 !important;
    padding: 10px 12px !important;
    border-radius: 4px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.wpcf7-form input:focus, .wpcf7-form textarea:focus,
.elementor-form input:focus, .elementor-form textarea:focus {
    border-color: #1a5276 !important;
    outline: 3px solid #1a5276 !important;
}
.wpcf7-not-valid-tip,
.wpcf7-response-output.wpcf7-validation-errors {
    color: #c0392b !important;
    font-weight: 600 !important;
    padding: 8px !important;
    border: 2px solid #c0392b !important;
    border-radius: 4px !important;
}
.wpcf7-response-output.wpcf7-mail-sent-ok {
    color: #1e8449 !important;
    border-color: #1e8449 !important;
    background-color: #eafaf1 !important;
}

/* -------------------------------------------------------
   FIX 4: Minimum touch target size (44x44px)
------------------------------------------------------- */
.elementor-button, .wpcf7-submit, button[type="submit"] {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 12px 24px !important;
}

/* -------------------------------------------------------
   FIX 5: Screen-reader-only utility class
   Use class="sr-only" on text meant only for screen readers
------------------------------------------------------- */
.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;
}