/*
 * hsd-eaa.css — Hector Solis Digital
 * European Accessibility Act + WCAG 2.1 AA
 *
 * Struttura:
 *   0. CORREZIONI BASE — sempre attive (fix px → rem per scalabilità testo)
 *   1. prefers-reduced-motion  → disabilita animazioni CSS
 *   2. prefers-contrast: high  → aumenta contrasti
 *   3. forced-colors: active   → Windows High Contrast Mode
 *
 * Le sezioni 1-3 si attivano SOLO per chi ha quella preferenza nel SO.
 * Zero impatto sugli altri utenti.
 */


/* ============================================================
   0. CORREZIONI BASE — sempre attive
   Porto imposta body { font-size: 14px } — blocca il testo
   grande del sistema. Convertiamo i valori critici in rem.
   ============================================================ */

/* Fix body base — Porto usa 14px fisso */
body {
    font-size: 1rem !important;
    line-height: 1.625 !important;
}

/* Fix navbar links */
.hsd-menu li a         { font-size: 0.9375rem !important; }
.hsd-btn-cta           { font-size: 0.875rem  !important; }
.hsd-skip-link         { font-size: 0.875rem  !important; }
.hsd-toggle i          { font-size: 1.125rem  !important; }

@media (max-width: 991px) {
    .hsd-menu li a     { font-size: 0.875rem  !important; }
    .hsd-logo img      { height: 2.5rem       !important; }
}

/* Area minima cliccabile 44×44px — WCAG 2.5.5 */
.hsd-soc,
.hsd-toggle {
    min-width:  44px !important;
    min-height: 44px !important;
}

/* Focus ring rafforzato — WCAG 2.4.7 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline:        3px solid var(--hsd-blue) !important;
    outline-offset: 3px                       !important;
    border-radius:  2px                       !important;
}

/* Testo non giustificato — WCAG 1.4.8 */
p, li, td { text-align: left !important; }


/* ============================================================
   1. PREFERS-REDUCED-MOTION
   iOS: Impostazioni → Accessibilità → Movimento → Riduci
   Android: Impostazioni → Accessibilità → Togli animazioni
   Windows: Impostazioni → Accessibilità → Effetti visivi
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    /* Ferma tutto il CSS */
    *, *::before, *::after {
        animation-duration:        0.01ms !important;
        animation-iteration-count: 1      !important;
        transition-duration:       0.01ms !important;
        scroll-behavior:           auto   !important;
    }

    /* Ticker chi-sono + recensioni */
    .hsd-ticker-track,
    .hsd-rec-track         { animation: none !important; }

    /* Oculta la sección de reseñas — el ticker infinito no tiene sentido sin animación */
    .hsd-rec-section       { display: none !important; }

    /* Porto appear-animation — subito visibili */
    .appear-animation {
        opacity:    1       !important;
        transform:  none    !important;
        visibility: visible !important;
    }

    /* GSAP words — subito visibili */
    .hsd-gsap-word {
        opacity:   1    !important;
        transform: none !important;
    }

    /* hsd-text-col scroll effect */
    .hsd-text-col {
        opacity:   1    !important;
        transform: none !important;
    }

    /* Hover — nessun movimento */
    .hsd-card-servicio:hover,
    .hsd-srv-card:hover,
    .hsd-rec-card:hover,
    .hsd-ct-card:hover,
    .hsd-soc:hover,
    .hsd-soc:hover i,
    .hsd-info-row:hover,
    .hsd-footer-socials a:hover,
    .hsd-submit--ready:hover,
    .hsd-grazie-btn:hover,
    .hsd-btn-cta:hover {
        transform: none !important;
    }

    /* Footer link — no padding-left animato */
    .hsd-footer-links a:hover { padding-left: 0 !important; }

    /* Grazie icon pop */
    .hsd-grazie-icon { animation: none !important; opacity: 1 !important; }

    /* Word tour */
    #hsdRotatingText { transition: none !important; }
}


/* ============================================================
   2. PREFERS-CONTRAST: HIGH
   macOS/iOS: Accessibilità → Schermo → Aumenta contrasto
   ============================================================ */

@media (prefers-contrast: high) {

    /* Bordi più marcati */
    .hsd-ct-card,
    .hsd-ct-info,
    .hsd-srv-card,
    .hsd-rec-card,
    .hsd-legal-card {
        border: 2px solid var(--hsd-blue) !important;
        box-shadow: none !important;
    }

    /* Navbar */
    .hsd-header { border-bottom: 2px solid var(--hsd-blue) !important; }

    /* Input */
    .hsd-field-input { border-bottom: 2px solid #000000 !important; }

    /* Testo muted — rapporto contrasto minimo 4.5:1 */
    .hsd-ct-sub,
    .hsd-srv-desc,
    .hsd-rec-data,
    .hsd-info-lbl,
    .hsd-legal-update,
    .text-muted { color: #374151 !important; }

    /* Ticker */
    .hsd-ticker-item { color: rgba(255,255,255,0.95) !important; }

    /* Link sempre sottolineati */
    a { text-decoration: underline !important; text-underline-offset: 3px !important; }

    /* Checkbox */
    .hsd-check-box { border: 2px solid #000000 !important; }

    /* Social */
    .hsd-soc { border-width: 2px !important; }

    /* Footer */
    .hsd-footer-links a,
    .hsd-footer-bottom,
    .hsd-footer-bottom a { color: rgba(255,255,255,0.9) !important; }

    /* Stelle — colore più scuro per contrasto */
    .hsd-rec-stars i { color: #B45309 !important; }

    /* Bottoni outline */
    .btn-outline-primary,
    .hsd-grazie-btn-outline { border-width: 2px !important; }
}


/* ============================================================
   3. FORCED-COLORS: ACTIVE — Windows High Contrast Mode
   Il SO sovrascrive i colori. Usiamo colori di sistema per
   garantire visibilità degli elementi custom.
   ============================================================ */

@media (forced-colors: active) {

    .hsd-field-line {
        forced-color-adjust: none;
        background: Highlight !important;
    }

    .hsd-field-input {
        border-bottom: 2px solid ButtonText !important;
    }

    .hsd-submit,
    .hsd-grazie-btn-primary,
    .hsd-btn-cta {
        forced-color-adjust: none;
        background: ButtonFace !important;
        color:      ButtonText !important;
        border:     2px solid ButtonText !important;
    }

    .hsd-check-box {
        forced-color-adjust: none;
        border:     2px solid ButtonText !important;
        background: ButtonFace           !important;
    }

    .hsd-check-wrap input:checked ~ .hsd-check-box {
        background:   Highlight !important;
        border-color: Highlight !important;
    }

    .hsd-check-box::after { border-color: ButtonFace !important; }

    .hsd-soc {
        forced-color-adjust: none;
        border:     2px solid ButtonText !important;
        color:      ButtonText           !important;
        background: ButtonFace           !important;
    }

    .hsd-gallery-progress {
        forced-color-adjust: none;
        background: Highlight !important;
    }

    .hsd-skip-link {
        forced-color-adjust: none;
        background: Highlight      !important;
        color:      HighlightText  !important;
        border:     2px solid ButtonText !important;
    }

    .hsd-header {
        border-bottom: 1px solid ButtonText !important;
    }
}