/* ============================================
   ACCESSIBILITY IMPROVEMENTS
   WCAG 2.1 AA Compliance
   ============================================ */

/* Focus visible per navigazione da tastiera */
*:focus {
    outline: 3px solid var(--primary-color);
    outline-offset: 2px;
}

/* Skip link per screen reader */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--primary-color);
    color: white;
    padding: 8px;
    text-decoration: none;
    z-index: 10000;
}

.skip-link:focus {
    top: 0;
}

/* Miglioramento contrasto per tutti i link */
a {
    color: #2563eb;
    font-weight: 500;
}

a:hover {
    color: #1e40af;
    text-decoration: underline;
}

/* Contrasto migliorato per testo su sfondi scuri */
.hero *,
.page-hero * {
    color: #ffffff !important;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

/* Assicura contrasto minimo 4.5:1 per testo normale */
.text-secondary {
    color: #475569 !important; /* Miglior contrasto invece di #64748b */
}


/* Indicatori visivi oltre al colore */
.btn {
    border-width: 2px;
    font-weight: 600;
}

.btn-primary {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.btn-primary:hover {
    background: var(--primary-color);
    border-color: var(--primary-color);
}

/* Supporto per screen reader */
.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;
}

/* Miglioramento contrasto per form */
input, textarea, select {
    border: 2px solid #64748b;
    color: #0f172a;
}

input:focus, textarea:focus, select:focus {
    border-color: var(--primary-color);
    outline: 3px solid rgba(99, 102, 241, 0.2);
}

/* Contrasto migliorato per errori */
.error-message {
    background: #fee2e2;
    color: #991b1b;
    border: 2px solid #dc2626;
    padding: 1rem;
    border-radius: 8px;
    font-weight: 600;
}

/* Contrasto migliorato per successo */
.success-message {
    background: #d1fae5;
    color: #065f46;
    border: 2px solid #10b981;
    padding: 1rem;
    border-radius: 8px;
    font-weight: 600;
}

/* Assicura che i placeholder abbiano contrasto sufficiente */
::placeholder {
    color: #64748b;
    opacity: 1;
}

/* Miglioramento per icone decorative */
.icon-decorative {
        aria-hidden:"true";
    }

/* Supporto per preferenze di riduzione movimento */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Supporto per preferenze di contrasto alto */
@media (prefers-contrast: high) {
    * {
        border-color: #000000 !important;
    }
    
    .btn {
        border-width: 3px !important;
    }
}
