/* ==========================================================================
   Accessibilità — fix WCAG 2.1 AA (audit cliente 2026)
   Caricato dopo style.css da header.php / header-landingpage.php.
   Tenuto fuori dalla build Tailwind per non dipendere da npm in deploy.
   ========================================================================== */

/* --- 2.4.1 Salto di blocchi: skip link ---------------------------------- */
.skip-link {
    position: absolute;
    top: -100vh;
    left: 1rem;
    z-index: 10000;
    padding: 0.75rem 1.25rem;
    background: #fff;
    color: #075985;
    font-weight: 700;
    text-decoration: underline;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}
.skip-link:focus {
    top: 1rem;
}

/* --- 2.4.7 Focus visibile ------------------------------------------------ */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #075985 !important;
    outline-offset: 2px;
}

/* --- 2.4.3 / 2.4.7 Menu mobile: da chiuso esce dal tab order ------------- */
.menu-panel {
    visibility: hidden;
    transition-property: opacity, visibility;
    transition-delay: 0s, 0.15s; /* in chiusura la visibility aspetta il fade */
}
.menu-open .menu-panel {
    visibility: visible;
    transition-delay: 0s, 0s; /* in apertura subito visibile: il focus JS deve poter entrare */
}

/* --- 2.1.1 Popup corso: da chiusi escono dal tab order ------------------- */
#popup_iscrizione:not(.open),
#popup_interesse:not(.open),
#popup_info:not(.open) {
    visibility: hidden;
    /* il tema usa "transition: 0.3s all": in chiusura la visibility aspetta lo slide */
    transition: 0.3s all ease, visibility 0s linear 0.3s;
}
#popup_iscrizione.open,
#popup_interesse.open,
#popup_info.open {
    visibility: visible;
    transition: 0.3s all ease; /* in apertura subito visibile per il focus JS */
}

/* --- CTA convertiti da <a> a <button>: stesso rendering ------------------
   Neutralizza solo gli stili UA dei button; background/padding restano
   ai class .apply-cta-* dove presenti. */
button.iscrizionecorso,
button.chiediinfo,
button#richiestainfo,
button.chiudi {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    font: inherit;
    cursor: pointer;
}
/* varianti testuali (senza classe .apply-cta-*): nessun fondo UA */
button.chiediinfo:not(.apply-cta-small),
button#richiestainfo:not(.apply-cta-small),
button.chiudi {
    background: none;
    padding: 0;
    color: inherit;
}

/* ==========================================================================
   Batch 2 — Contrasto minimo 1.4.3 / uso del colore 1.4.1
   Palette accessibile: mapping minimo dei 4 colori non conformi
   #6FC1B1 (2.11:1) -> #00797A (5.3:1) per testo e fondi con testo bianco
   #7F8080 (3.96:1) -> #767676 (4.54:1)
   #BABABA badge    -> testo nero (10.9:1), fondo invariato
   #D5D5D5 filtri   -> #767676
   CTA: fondo #00797A, hover invertito teal chiaro #6FC1B1 con testo nero
   ========================================================================== */

:root {
    --color-primary: #00797A;
    --color-primary-hover: #6FC1B1;
    --color-secondary: #767676;
    --color-secondary-hover: #767676;
}

/* testo teal su bianco (aree, prezzi, link) */
.text-primary { color: #00797A; }

/* fondi teal con contenuto bianco (CTA, frecce card, icone) */
.bg-primary,
.bg-\[\#6FC1B1\] { background-color: #00797A; }

/* CTA: base scura, hover invertito chiaro con testo scuro */
.apply-cta,
.apply-cta-small { background-color: #00797A; }

/* CTA reverse (fondo bianco, testo teal): testo scuro leggibile */
.apply-cta-reverse { color: #00797A; }
.apply-cta:hover,
.apply-cta-small:hover {
    background-color: #6FC1B1;
    color: #000000;
}

/* grigi testuali e fondi grigi con testo bianco */
.text-secondary { color: #767676; }
.bg-secondary,
.bg-\[\#7F8080\] { background-color: #767676; }

/* badge corso (Online, crediti ECM): testo nero su grigio chiaro */
.bg-\[\#BABABA\] { color: #000000; }

/* filtri corsi: etichette leggibili, stato attivo teal scuro */
#filterCorsi .filter-content label {
    color: #767676;
    border-color: #767676;
}
#filterCorsi .filter-content input[type=checkbox]:checked + label {
    color: #ffffff;
    background-color: #00797A;
    border-color: #00797A;
}

/* 1.4.1: i link dentro i testi devono essere riconoscibili non solo dal colore */
main p a:not([class*="apply-cta"]),
main li a:not([class*="apply-cta"]),
.text-corso a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Cookiebot: bottoni e link del banner con la palette accessibile */
#CybotCookiebotDialogFooter #CybotCookiebotDialogBodyButtonAccept,
#CybotCookiebotDialogFooter #CybotCookiebotDialogBodyLevelButtonAccept,
#CybotCookiebotDialogFooter #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll {
    background-color: #00797A !important;
    border-color: #00797A !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogBodyContentText a,
#CybotCookiebotDialog #CybotCookiebotDialogDetailFooter a,
#CybotCookiebotDialogNav .CybotCookiebotDialogNavItemLink.CybotCookiebotDialogActive {
    color: #00797A !important;
}

/* --- 1.4.3 Hero con testo bianco su foto: velo scuro per il contrasto -----
   Si applica solo ai blocchi immagine seguiti da contenuto .text-white
   (l'hero delle landing ha testo scuro e resta invariato).
   Opacita' 0.4: sul punto piu' chiaro delle foto attuali porta il contrasto
   da 1.97:1 a ~5.5:1. */
div.absolute.inset-0:has(> img):has(~ .text-white)::after,
div.absolute.inset-0:has(> img):has(~ * .text-white)::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
    pointer-events: none;
}

/* Hero con .overlay (formazione, soluzioni, academy): il velo del tema era 0.4
   e lasciava il sottotitolo a 2.95:1. A 0.55 il testo normale arriva a ~4.9:1. */
.overlay:before {
    opacity: 0.55;
}

/* ==========================================================================
   3.3.1 / 3.3.3 — Presentazione errori dei form del tema, allineata a Gravity Forms
   ========================================================================== */

.a11y-form-errors {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-left: 4px solid #B32D2E;
    background-color: #FCF0F1;
    color: #8A1F20;
    font-weight: 700;
}

.a11y-field-error {
    margin-top: 0.35rem;
    color: #8A1F20;
    font-size: 0.9em;
}

.a11y-field-error:before {
    content: "\26A0";      /* segnale di attenzione: l'errore non e' dato dal solo colore (1.4.1) */
    margin-right: 0.4rem;
}

[aria-invalid="true"] {
    border: 2px solid #B32D2E !important;
}

/* i gruppi di checkbox ora sono fieldset: niente stili UA indesiderati */
form fieldset {
    border: 0;
    padding: 0;
    margin: 0;
}
form legend {
    padding: 0;
}
