/* ==========================================================================
   nia-lab060.css — Lab 060: Moduli A/B/C su schede NON reclamate
   Direttiva: agent-framework/directives/060b_rendering_moduli.md
   Scope: .nia-psi__m060* (BEM, zero collisione con psicologo-single.css)

   Enqueue CONDIZIONALE (nia_lab060_enqueue_assets): questo file arriva solo
   sulle citta' whitelist con almeno un modulo renderizzato — mai sulle 7.906.
   Dipendenze: nia-base.css (token) + psicologo-single.css (container/tipografia).
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Ripristino alternanza colori sezioni (029f)
   --------------------------------------------------------------------------
   psicologo-single.css colora le sezioni per POSIZIONE nel DOM:
     :nth-child(4n+1) teal | :nth-child(even) bianco | :nth-child(4n+3) sand
   Il blocco 060 aggiunge esattamente UN figlio (<div class="nia-psi__m060-block">)
   subito dopo la hero, quindi tutte le sezioni successive slittano di +1 e il
   ritmo cromatico si romperebbe (teal adiacenti, testo bianco su fondo bianco).
   Qui si riallinea il ciclo per le sole pagine con il blocco (.nia-psi--m060),
   limitandolo ai figli dal 3o in poi: la hero resta il figlio 1 in entrambi i casi.
   Lo slot ads 039f resta figlio diretto dell'article, dopo il blocco: lo scarto
   e' quindi sempre e solo +1, con o senza campagna attiva.
   -------------------------------------------------------------------------- */

.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(odd):nth-child(n+3) {
    background-color: var(--nia-card-bg);           /* bianco */
    color: var(--nia-text-primary);
}
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n):nth-child(n+3) {
    background-color: var(--nia-bg);                /* sand */
    color: var(--nia-text-primary);
}
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n+2):nth-child(n+3) {
    background-color: var(--nia-accent);            /* teal */
    color: #fff;
}

/* Testi: la regola teal originale (0,3,0) va neutralizzata dove non serve piu' */
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(odd):nth-child(n+3) h2,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n):nth-child(n+3) h2,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(odd):nth-child(n+3) .nia-psi__h1,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n):nth-child(n+3) .nia-psi__h1 {
    color: var(--nia-accent-dark);
}
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(odd):nth-child(n+3) .nia-psi__editorial-content,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n):nth-child(n+3) .nia-psi__editorial-content {
    color: var(--nia-text-primary);
}
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(odd):nth-child(n+3) .nia-psi__hero-subtitle,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n):nth-child(n+3) .nia-psi__hero-subtitle {
    color: var(--nia-text-secondary);
}
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n+2):nth-child(n+3) h2,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n+2):nth-child(n+3) .nia-psi__h1,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n+2):nth-child(n+3) .nia-psi__hero-subtitle,
.nia-psi--non-reclamata.nia-psi--m060 > .nia-psi__section:nth-child(4n+2):nth-child(n+3) .nia-psi__editorial-content {
    color: #fff;
}

/* --------------------------------------------------------------------------
   1. Blocco e sezioni modulo
   -------------------------------------------------------------------------- */

.nia-psi__m060-block {
    background-color: var(--nia-card-bg);
}

.nia-psi__m060 {
    padding-block: var(--nia-sp-10);
}

.nia-psi__m060 + .nia-psi__m060 {
    border-top: 1px solid var(--nia-border-light);
}

.nia-psi__m060-h2 {
    font-family: var(--nia-font-heading);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--nia-accent-dark);
    margin: 0 0 var(--nia-sp-3);
}

.nia-psi__m060-intro {
    font-size: 15px;
    line-height: 1.6;
    color: var(--nia-text-secondary);
    margin: 0 0 var(--nia-sp-6);
    max-width: 70ch;
}

/* --------------------------------------------------------------------------
   2. Nav ancore
   -------------------------------------------------------------------------- */

.nia-psi__m060-nav {
    background-color: var(--nia-accent-xlight);
    border-bottom: 1px solid var(--nia-border);
    padding-block: var(--nia-sp-3);
}

.nia-psi__m060-nav__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nia-sp-2) var(--nia-sp-5);
    list-style: none;
    margin: 0;
    padding: 0;
}

.nia-psi__m060-nav__list li {
    margin: 0;
}

.nia-psi__m060-nav__link {
    display: inline-block;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--nia-accent-dark);          /* 7.4:1 su --nia-accent-xlight */
    text-decoration: underline;
    text-underline-offset: 3px;
    padding-block: var(--nia-sp-1);
}

.nia-psi__m060-nav__link:hover,
.nia-psi__m060-nav__link:focus-visible {
    color: var(--nia-teal-deeper);
}

/* --------------------------------------------------------------------------
   3. Modulo A — elenco professionisti (righe, non griglia)
   --------------------------------------------------------------------------
   Il numero di item varia per comune (5..10): con una griglia a 3 colonne
   l'ultima riga resta monca in 14 comuni su 18 (solo i quattro comuni con
   esattamente 9 item la riempiono), e con 10 item due terzi dell'ultima riga
   restano vuoti. Non e' aggiustabile: con N variabile la riga monca e'
   strutturale. Quindi elenco a RIGHE piene, tre zone affiancate:

       [ identita' ]   [ contatti ]        [ azioni ]
       titolo          indirizzo           (bottoni 060c)
       nome            telefono
       n. albo         link Google Maps

   Le zone sono posizionate per classe con grid-column/grid-row espliciti:
   il markup non cambia (nessun wrapper aggiuntivo) e i campi facoltativi
   assenti lasciano semplicemente la cella vuota, senza sfasare le altre —
   cosi' i dati restano incolonnati fra una riga e l'altra.
   La terza colonna e' a larghezza fissa: e' quello che tiene i bottoni
   allineati verticalmente su tutte le righe.
   L'<ol> resta senza numerazione visibile: l'ordine e' per prossimita' al
   centro citta', numerarlo lo farebbe leggere come una classifica di merito.
   -------------------------------------------------------------------------- */

/* Base (mobile-first): righe a piena larghezza, contenuto impilato.
   Le tre zone affiancate arrivano da >=769px, in fondo alla sezione 4. */
.nia-psi__m060-list {
    display: flex;
    flex-direction: column;
    gap: var(--nia-sp-3);
    list-style: none;
    margin: 0;
    padding: 0;
}

.nia-psi__m060-card {
    background-color: var(--nia-card-bg);
    border: 1px solid var(--nia-border);
    border-radius: var(--nia-radius);
    padding: var(--nia-sp-5);
    /* Nessuna immagine, nessun contenuto differito: altezza stabile, zero CLS. */
}

.nia-psi__m060-card__role {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--nia-accent-dark);
    background-color: var(--nia-accent-light);
    border-radius: var(--nia-radius-sm);
    padding: 2px var(--nia-sp-2);
    margin: 0 0 var(--nia-sp-2);
}

.nia-psi__m060-card__name {
    font-family: var(--nia-font-heading);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--nia-text-primary);
    margin: 0 0 var(--nia-sp-3);
}

.nia-psi__m060-card__row {
    font-size: 15px;
    line-height: 1.5;
    color: var(--nia-text-primary);
    margin: 0 0 var(--nia-sp-2);
}

.nia-psi__m060-card__row:last-child {
    margin-bottom: 0;
}

.nia-psi__m060-card__albo {
    font-size: 14px;
    color: var(--nia-text-secondary);
}

.nia-psi__m060-card a {
    color: var(--nia-accent-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.nia-psi__m060-card a:hover,
.nia-psi__m060-card a:focus-visible {
    color: var(--nia-teal-deeper);
}

.nia-psi__m060-card__gbp {
    margin-top: var(--nia-sp-3);
    font-size: 15px;
}

/* --------------------------------------------------------------------------
   4. Modulo A — azioni PER CARD (060c) + privacy
   --------------------------------------------------------------------------
   Le due CTA stanno dentro ogni <li>: il lead e' attribuibile al singolo
   professionista (place_id), non solo al comune. Sotto l'elenco resta la
   sola riga privacy. I due percorsi restano visivamente distinti: primario
   giallo (gestione), ghost (rimozione GDPR) — nessuna gerarchia che nasconda
   la rimozione, nessun contenuto commerciale sul secondo.
   -------------------------------------------------------------------------- */

.nia-psi__m060-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nia-sp-2);
    margin-top: var(--nia-sp-4);
    padding-top: var(--nia-sp-4);
    border-top: 1px solid var(--nia-border);
}

.nia-psi__m060-btn {
    font-family: var(--nia-font-body);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    border-radius: var(--nia-radius-sm);
    /* min-height 44px: tap target AA anche quando il testo va su una riga sola. */
    min-height: 44px;
    padding: var(--nia-sp-2) var(--nia-sp-4);
    cursor: pointer;
    transition: background-color var(--nia-transition), color var(--nia-transition);
}

.nia-psi__m060-btn--primary {
    background-color: var(--nia-cta);
    border: 1px solid var(--nia-cta-hover);
    color: var(--nia-cta-text);              /* #2c2c2c su #F0D351 = 9.2:1 */
}

.nia-psi__m060-btn--primary:hover,
.nia-psi__m060-btn--primary:focus-visible {
    background-color: var(--nia-cta-hover);
}

.nia-psi__m060-btn--ghost {
    background-color: transparent;
    border: 1px solid var(--nia-accent-dark);
    color: var(--nia-accent-dark);           /* 7.4:1 su --nia-card-bg */
}

.nia-psi__m060-btn--ghost:hover,
.nia-psi__m060-btn--ghost:focus-visible {
    background-color: var(--nia-accent-light);
}

/* La card ha `a { text-decoration: underline }`: i bottoni non sono link. */
.nia-psi__m060-card__actions .nia-psi__m060-btn {
    text-decoration: none;
}

/* --------------------------------------------------------------------------
   4bis. Modulo A — riga a tre zone (desktop)
   --------------------------------------------------------------------------
   Deve stare DOPO la sezione 4: neutralizza il separatore delle azioni e il
   margin-top del link Maps, che in modalita' riga sono a carico del grid gap.
   -------------------------------------------------------------------------- */

@media (min-width: 769px) {

    .nia-psi__m060-card {
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) 220px;
        grid-template-rows: auto auto auto;
        column-gap: var(--nia-sp-6);
        row-gap: var(--nia-sp-1);
        align-items: start;
        padding: var(--nia-sp-4) var(--nia-sp-5);
    }

    /* La spaziatura la fa il grid: i margini dei figli vanno azzerati. */
    .nia-psi__m060-card > * {
        margin: 0;
    }

    /* Zona 1 — identita' */
    .nia-psi__m060-card__role { grid-column: 1; grid-row: 1; }
    .nia-psi__m060-card__name { grid-column: 1; grid-row: 2; }
    .nia-psi__m060-card__albo { grid-column: 1; grid-row: 3; }

    /* Zona 2 — contatti */
    .nia-psi__m060-card__addr { grid-column: 2; grid-row: 1; }
    .nia-psi__m060-card__tel  { grid-column: 2; grid-row: 2; }

    .nia-psi__m060-card__gbp {
        grid-column: 2;
        grid-row: 3;
        margin-top: 0;
    }

    /* Zona 3 — azioni (060c): tutta l'altezza della riga, bottoni impilati.
       Il separatore della card impilata qui non serve: le zone sono gia'
       separate dal column-gap. */
    .nia-psi__m060-card__actions {
        grid-column: 3;
        grid-row: 1 / -1;
        align-self: center;
        flex-direction: column;
        align-items: stretch;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
}

.nia-psi__m060-privacy {
    font-size: 14px;
    line-height: 1.5;
    color: var(--nia-text-secondary);
    margin: var(--nia-sp-6) 0 0;
}

.nia-psi__m060-privacy a {
    color: var(--nia-accent-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* --------------------------------------------------------------------------
   5. Modulo B — servizi pubblici
   -------------------------------------------------------------------------- */

.nia-psi__m060-capsula {
    font-size: 16px;
    line-height: 1.7;
    color: var(--nia-text-primary);
    margin: 0 0 var(--nia-sp-6);
    max-width: 70ch;
}

.nia-psi__m060-servizi {
    display: grid;
    /* Una riga per servizio: i servizi per citta' sono 2-6, quasi mai multipli
       di 3, e la griglia a 3 colonne lasciava celle vuote (4 servizi = 3+1). */
    grid-template-columns: 1fr;
    gap: var(--nia-sp-4);
    list-style: none;
    margin: 0;
    padding: 0;
}

.nia-psi__m060-servizio {
    background-color: var(--nia-card-bg);
    border: 1px solid var(--nia-border);
    border-left: 4px solid var(--nia-accent);
    border-radius: var(--nia-radius);
    padding: var(--nia-sp-5);
}

.nia-psi__m060-servizio__tipo {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--nia-accent-dark);
    background-color: var(--nia-accent-light);
    border-radius: var(--nia-radius-sm);
    padding: 2px var(--nia-sp-2);
    margin: 0 0 var(--nia-sp-2);
}

.nia-psi__m060-servizio__nome {
    font-family: var(--nia-font-heading);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--nia-text-primary);
    margin: 0 0 var(--nia-sp-3);
}

.nia-psi__m060-servizio__row {
    font-size: 15px;
    line-height: 1.5;
    color: var(--nia-text-primary);
    margin: 0 0 var(--nia-sp-2);
}

.nia-psi__m060-servizio__label {
    color: var(--nia-text-secondary);
}

.nia-psi__m060-servizio a {
    color: var(--nia-accent-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.nia-psi__m060-servizio__verifica {
    display: block;
    margin-top: var(--nia-sp-4);
    padding-top: var(--nia-sp-3);
    border-top: 1px dashed var(--nia-border);
    font-size: 13px;
    color: var(--nia-text-secondary);
}

/* --------------------------------------------------------------------------
   5bis. Modulo B — riga a tre zone (desktop)
   --------------------------------------------------------------------------
   Stesso principio del Modulo A (sezione 4bis): la card diventa una griglia e
   ogni campo ha la sua cella fissa. Ogni campo e' condizionale in PHP, quindi
   la posizione e' assegnata per classe modificatore (`__row--*`) e non con
   :nth-child(): un servizio senza `orari` non deve sfasare gli altri.
   Un campo assente lascia la sua cella vuota — i dati restano incolonnati fra
   una riga e l'altra, come nel Modulo A.
   -------------------------------------------------------------------------- */

@media (min-width: 769px) {

    .nia-psi__m060-servizio {
        display: grid;
        /* Terza zona piu' larga e comunque flessibile: `Come si accede` puo'
           essere un paragrafo intero (es. Servizio di Psicologia di Lucera). */
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.5fr);
        grid-template-rows: auto auto auto auto;
        column-gap: var(--nia-sp-6);
        row-gap: var(--nia-sp-2);
        align-items: start;
    }

    /* La spaziatura la fa il grid: i margini dei figli vanno azzerati. */
    .nia-psi__m060-servizio > * {
        margin: 0;
    }

    /* Zona 1 — identita' */
    .nia-psi__m060-servizio__tipo {
        grid-column: 1;
        grid-row: 1;
        /* Blockified come grid item: senza questo il badge occupa la colonna. */
        justify-self: start;
    }

    .nia-psi__m060-servizio__nome       { grid-column: 1; grid-row: 2; }
    .nia-psi__m060-servizio__row--ente  { grid-column: 1; grid-row: 3; }

    /* Zona 2 — dove */
    .nia-psi__m060-servizio__row--indirizzo { grid-column: 2; grid-row: 1; }
    .nia-psi__m060-servizio__row--telefono  { grid-column: 2; grid-row: 2; }

    /* Zona 3 — quando / come. `accesso` occupa anche la riga 3: e' l'ultimo
       campo della colonna, puo' crescere senza spostare nulla. */
    .nia-psi__m060-servizio__row--orari   { grid-column: 3; grid-row: 1; }
    .nia-psi__m060-servizio__row--accesso { grid-column: 3; grid-row: 2 / 4; }

    /* Riga di chiusura a piena larghezza: il separatore tratteggiato resta,
       il margin-top no (lo fa il row-gap). */
    .nia-psi__m060-servizio__verifica {
        grid-column: 1 / -1;
        grid-row: 4;
        margin-top: var(--nia-sp-2);
    }
}

/* --------------------------------------------------------------------------
   6. Modulo C — temi editoriali
   -------------------------------------------------------------------------- */

.nia-psi__m060-tema + .nia-psi__m060-tema {
    margin-top: var(--nia-sp-8);
}

.nia-psi__m060-tema__h2 {
    font-family: var(--nia-font-heading);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--nia-accent-dark);
    margin: 0 0 var(--nia-sp-4);
}

/* --------------------------------------------------------------------------
   7. Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
    .nia-psi__m060 {
        padding-block: var(--nia-sp-8);
    }

    /* `.nia-psi__m060-list` non e' piu' una griglia: e' gia' a righe piene. */
    .nia-psi__m060-servizi {
        grid-template-columns: 1fr;
    }

    .nia-psi__m060-nav__list {
        gap: var(--nia-sp-2) var(--nia-sp-4);
    }

    .nia-psi__m060-nav__link {
        font-size: 14px;
    }

    .nia-psi__m060-card__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .nia-psi__m060-btn {
        width: 100%;
        text-align: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nia-psi__m060-btn {
        transition: none;
    }
}

/* --------------------------------------------------------------------------
   8. Modal dei due form (060c)
   --------------------------------------------------------------------------
   Un solo set di classi `.nia-m060-modal*` per entrambi i percorsi: il flusso
   e' distinto da `[data-nia-m060-flow]` sul contenitore, i CONTENUTI (titolo,
   testi, conferme) sono definiti separatamente in nia-lab060.js e non si
   incrociano mai. Nessuna decorazione commerciale sul flusso rimozione.
   Il markup e' creato dal JS: a flag spento (o senza JS) non esiste.
   -------------------------------------------------------------------------- */

.nia-m060-modal-open {
    overflow: hidden;
}

.nia-m060-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--nia-sp-5);
    overflow-y: auto;
    background-color: rgba(28, 28, 28, 0.55);
}

.nia-m060-modal__dialog {
    position: relative;
    width: 100%;
    max-width: 520px;
    margin: auto;
    background-color: var(--nia-card-bg);
    border-radius: var(--nia-radius);
    box-shadow: var(--nia-shadow-lg, 0 12px 32px rgba(0, 0, 0, 0.22));
    padding: var(--nia-sp-6);
}

.nia-m060-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--nia-sp-3);
    margin-bottom: var(--nia-sp-3);
}

.nia-m060-modal__title {
    font-family: var(--nia-font-heading);
    font-size: 21px;
    line-height: 1.3;
    color: var(--nia-text-primary);
    margin: 0;
}

/* Specificita' alzata di proposito: il tema (Astra) colora i <button> generici
   con color:#fff su fondo chiaro — a parita' di peso vincerebbe il suo foglio,
   e la "x" risulterebbe bianco su bianco (contrasto 1.13:1). Verificato su
   Local in sessione 060c. */
.nia-m060-modal .nia-m060-modal__close {
    flex: 0 0 auto;
    /* Tap target 44px anche se la "x" e' piccola. */
    min-width: 44px;
    min-height: 44px;
    font-size: 24px;
    line-height: 1;
    color: var(--nia-text-primary);          /* 13.97:1 su fondo card */
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: var(--nia-radius-sm);
    cursor: pointer;
}

.nia-m060-modal .nia-m060-modal__close:hover,
.nia-m060-modal .nia-m060-modal__close:focus-visible {
    background-color: var(--nia-bg);
    border-color: var(--nia-border);
    color: var(--nia-text-primary);
}

.nia-m060-modal__intro,
.nia-m060-modal__target {
    font-size: 15px;
    line-height: 1.55;
    color: var(--nia-text-secondary);
    margin: 0 0 var(--nia-sp-3);
}

.nia-m060-modal__target {
    font-weight: 600;
    color: var(--nia-text-primary);
}

.nia-m060-modal__field {
    margin: 0 0 var(--nia-sp-4);
}

.nia-m060-modal__field label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--nia-text-primary);
    margin-bottom: var(--nia-sp-1, 4px);
}

/* Asterisco dei campi obbligatori. Non e' l'unico veicolo dell'informazione:
   l'input porta aria-required e sotto al form c'e' la legenda. */
.nia-m060-modal__req {
    color: #a33a2a;                  /* 5.9:1 su bianco */
    font-weight: 700;
}

.nia-m060-modal__legend {
    font-size: 13px;
    line-height: 1.5;
    color: var(--nia-text-secondary);
    margin: 0 0 var(--nia-sp-4);
}

.nia-m060-modal__field input[type="text"],
.nia-m060-modal__field input[type="email"],
.nia-m060-modal__field input[type="tel"],
.nia-m060-modal__field textarea {
    width: 100%;
    min-height: 44px;
    font-family: var(--nia-font-body);
    font-size: 16px;                 /* 16px: niente zoom automatico su iOS */
    line-height: 1.4;
    color: var(--nia-text-primary);
    background-color: var(--nia-card-bg);
    border: 1px solid var(--nia-border);
    border-radius: var(--nia-radius-sm);
    padding: var(--nia-sp-2) var(--nia-sp-3);
}

.nia-m060-modal__field textarea {
    min-height: 88px;
    resize: vertical;
}

.nia-m060-modal__field input:focus-visible,
.nia-m060-modal__field textarea:focus-visible {
    outline: 2px solid var(--nia-accent-dark);
    outline-offset: 1px;
}

.nia-m060-modal__field--check {
    display: flex;
    align-items: flex-start;
    gap: var(--nia-sp-2);
}

.nia-m060-modal__field--check input {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 2px;
}

.nia-m060-modal__field--check label {
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
    color: var(--nia-text-secondary);
    margin: 0;
}

.nia-m060-modal__field--check a {
    color: var(--nia-accent-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Honeypot: invisibile all'utente, presente per i bot. Niente display:none
   (alcuni bot lo riconoscono), fuori viewport e fuori tab order. */
.nia-m060-modal__hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.nia-m060-modal__status {
    font-size: 14px;
    line-height: 1.5;
    color: var(--nia-text-secondary);
    margin: 0 0 var(--nia-sp-3);
    min-height: 1.5em;
}

.nia-m060-modal__status--error {
    color: var(--nia-error, #8a1f1f);   /* 8.6:1 su fondo card */
    font-weight: 600;
}

.nia-m060-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nia-sp-3);
    margin: 0;
}

@media (max-width: 768px) {
    .nia-m060-modal {
        padding: var(--nia-sp-3);
    }

    .nia-m060-modal__dialog {
        padding: var(--nia-sp-5);
    }

    .nia-m060-modal__actions {
        flex-direction: column;
        align-items: stretch;
    }
}
