/*
 * Stile del "cancello" (shortcode [pv_cancello]).
 * Volontariamente semplice e neutro: il tema attivo (Hello Elementor) non
 * porta un proprio design system, quindi qui c'è solo lo stretto
 * necessario per leggibilità e usabilità da smartphone (Volume 5, Cap. 11:
 * buon contrasto, elementi interattivi ben dimensionati per il tocco).
 * I colori sono un segnaposto neutro: da adattare all'immagine dello
 * studio quando si definisce lo stile grafico definitivo.
 */

.pv-cancello {
    max-width: 480px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 1.5;
}

.pv-cancello__progresso {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
    color: #888;
}

.pv-cancello__passo {
    flex: 1;
    text-align: center;
    padding-bottom: 0.5rem;
    border-bottom: 3px solid #e0e0e0;
}

.pv-cancello__passo.is-attivo {
    color: #1a1a1a;
    font-weight: 600;
    border-bottom-color: #2c7a7b;
}

.pv-cancello__passo.is-completato {
    border-bottom-color: #2c7a7b;
}

.pv-cancello__messaggio {
    display: none;
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 6px;
    font-size: 0.95rem;
}

.pv-cancello__messaggio.is-visibile {
    display: block;
}

.pv-cancello__messaggio.is-errore {
    background: #fdecea;
    color: #7a1f1a;
    border: 1px solid #f3b3ae;
}

.pv-cancello__messaggio.is-successo {
    background: #e6f4ea;
    color: #1e4620;
    border: 1px solid #a8d5b0;
}

.pv-cancello__campo {
    margin: 0 0 1rem;
}

.pv-cancello__campo label {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 600;
}

.pv-cancello__campo input {
    width: 100%;
    min-height: 48px;
    padding: 0.6rem 0.8rem;
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 6px;
    box-sizing: border-box;
}

.pv-cancello__campo input:focus {
    outline: 2px solid #2c7a7b;
    outline-offset: 1px;
}

.pv-cancello__consenso {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
}

.pv-cancello__consenso label {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.pv-cancello__consenso input[type="checkbox"] {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    margin-top: 2px;
}

/*
 * Link all'informativa privacy dentro il testo di consenso — evidenziato
 * (colore, grassetto, sottolineatura) su richiesta dell'utente il
 * 14/09/2026: prima era un link "muto" (solo colore/sottolineatura di
 * default del tema), poco distinguibile dal resto del testo, col rischio
 * che l'utente spuntasse la casella senza notare di poter aprire e
 * leggere davvero l'informativa.
 */
.pv-cancello__consenso-link {
    color: #c0392b;
    font-weight: 700;
    text-decoration: underline;
}

.pv-cancello__consenso-link:hover,
.pv-cancello__consenso-link:focus {
    color: #96281b;
}

.pv-cancello__pulsante {
    display: block;
    width: 100%;
    min-height: 50px;
    padding: 0.75rem 1rem;
    font-size: 1.05rem;
    font-weight: 600;
    color: #fff;
    background: #2c7a7b;
    border: none;
    border-radius: 8px;
    cursor: pointer;
}

.pv-cancello__pulsante:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.pv-cancello__pulsante:hover:not(:disabled) {
    background: #23615f;
}

.pv-cancello__link {
    display: block;
    width: 100%;
    margin-top: 0.75rem;
    padding: 0.5rem;
    background: none;
    border: none;
    color: #2c7a7b;
    text-decoration: underline;
    font-size: 0.9rem;
    cursor: pointer;
    min-height: 44px;
}

.pv-cancello__link:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    text-decoration: none;
}

.pv-cancello__otp-testo {
    margin-bottom: 1rem;
}

/*
 * RF-PRV-005/006: alternativa al calendario, sempre visibile (Passaggio 3).
 * Stile a "riquadro" aggiunto il 24/08/2026 dopo test dal vivo: la prima
 * versione (semplice link di testo sotto il calendario) passava
 * inosservata. Ora è un box a sé, posizionato SOPRA il widget di Easy
 * Appointments (vedi class-shortcode-cancello.php), cosi da essere visibile
 * subito, prima ancora di iniziare a guardare le date disponibili.
 */

.pv-cancello__alternativa {
    box-sizing: border-box;
    margin-bottom: 1.25rem;
    padding: 1rem 1.1rem;
    background: #eef6f6;
    border: 1px solid #bcdcdc;
    border-radius: 8px;
    text-align: center;
}

.pv-cancello__alternativa-testo {
    margin: 0 0 0.6rem;
    font-size: 0.95rem;
    color: #333;
}

.pv-cancello__alternativa-pulsante {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    padding: 0.55rem 1.1rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: #2c7a7b;
    background: #fff;
    border: 2px solid #2c7a7b;
    border-radius: 6px;
    cursor: pointer;
}

.pv-cancello__alternativa-pulsante:hover {
    color: #fff;
    background: #2c7a7b;
}

/*
 * Nasconde i menu "Servizio" e "Medico" del widget Easy Appointments —
 * aggiunto il 24/08/2026 su richiesta dell'utente: oggi c'è un solo
 * servizio (Prima Visita) e un solo medico (Dr. Guerriero) configurati,
 * quindi mostrare una scelta che in realtà non esiste confonde più che
 * aiutare. Il valore selezionato resta comunque quello impostato dagli
 * attributi service="1" worker="1" dello shortcode [ea_bootstrap] (vedi
 * class-shortcode-cancello.php): il campo <select> resta nel DOM, solo
 * nascosto alla vista, quindi la prenotazione funziona esattamente come
 * prima — non è stato toccato né lo shortcode né il JS.
 *
 * Struttura verificata via "Ispeziona elemento" il 24/08/2026 sul widget
 * dal vivo (versione "new UI" di Easy Appointments): ogni campo vive in
 * .ea-filters-grid-full > .ea-field-group > label + select. Il selettore
 * :has() (supportato da tutti i browser moderni nel 2026) individua il
 * contenitore giusto dal name del select al suo interno, ed è ristretto
 * a dentro .pv-cancello per non toccare eventuali altri widget Easy
 * Appointments presenti altrove nel sito.
 */
.pv-cancello .ea-filters-grid-full:has(select[name="service"]),
.pv-cancello .ea-filters-grid-full:has(select[name="worker"]) {
    display: none;
}

@media (max-width: 480px) {
    .pv-cancello {
        font-size: 17px;
    }
}

/* Passaggio 4: conferma (Volume 5, Cap. 6.5) */

.pv-cancello__conferma-titolo {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1e4620;
    margin-bottom: 0.75rem;
}

.pv-cancello__conferma-riepilogo {
    font-size: 1.05rem;
    margin-bottom: 0.75rem;
}

.pv-cancello__conferma-messaggio {
    color: #444;
}