/* ==========================================================================
   Atai Construction - WCAG 2.1 AA Accessibility Styles
   ========================================================================== */

/* Screen reader text utility */
.screen-reader-text,
.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;
}
.screen-reader-text:focus,
.sr-only:focus {
    position: static !important;
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    overflow: visible !important;
    white-space: normal !important;
}

/* Focus indicators - WCAG 2.4.7 Focus Visible */
*:focus-visible {
    outline: 3px solid var(--atai-accent, #C9A84C) !important;
    outline-offset: 2px !important;
}

/* Ensure link text is distinguishable - WCAG 1.4.1 */
.elementor-text-editor a,
.elementor-widget-text-editor a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Touch target minimum 44x44px - WCAG 2.5.5 */
a, button, [role="button"], input[type="submit"], input[type="button"],
input[type="reset"], input[type="checkbox"], input[type="radio"],
select, .elementor-button {
    min-height: 44px;
    min-width: 44px;
}

/* Form accessibility - WCAG 1.3.1, 3.3.2 */
label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--atai-heading, #2A1A40); }
input, textarea, select {
    border: 2px solid var(--atai-border, #D1D5DB);
    padding: 12px 16px;
    font-size: 16px; /* Prevents iOS zoom */
    border-radius: 0;
    transition: border-color 0.2s;
}
input:focus, textarea:focus, select:focus {
    border-color: var(--atai-accent, #C9A84C);
    outline: 2px solid var(--atai-accent, #C9A84C);
    outline-offset: 1px;
}

/* Error states - WCAG 3.3.1 */
.error, .wpcf7-not-valid, [aria-invalid="true"] {
    border-color: #DC2626 !important;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.2);
}
.error-message, .wpcf7-not-valid-tip {
    color: #DC2626;
    font-size: 14px;
    margin-top: 4px;
}

/* WCAG 1.4.12 Text Spacing - don't break layout with increased spacing */
body { word-spacing: normal; letter-spacing: normal; }

/* WCAG 1.4.4 Resize Text - up to 200% without loss */
html { font-size: 100%; }

/* WCAG 1.4.10 Reflow - no horizontal scroll at 320px */
@media (max-width: 320px) {
    body { overflow-x: hidden; }
    .elementor-section .elementor-container { flex-wrap: wrap; }
    img { max-width: 100%; height: auto; }
}

/* High contrast / forced colors */
@media (forced-colors: active) {
    a { text-decoration: underline; }
    .elementor-button { border: 2px solid ButtonText; }
    .atai-project-overlay { background: Canvas; color: CanvasText; opacity: 1; }
    img { border: 1px solid CanvasText; }
}

/* Prefers contrast */
@media (prefers-contrast: more) {
    body { color: #000000; }
    a { color: #0000EE; }
    .elementor-button { border: 2px solid currentColor !important; }
}
