
/* =========================================================================
 * Form Contact Form 7 di universitadimedicina.it (29/09/2026)
 *
 * Stesso stile dei form di universita.it (etichette, icone, spunta verde,
 * consensi nel riquadro, pulsante "Invio in corso..."), con il verde del sito.
 * Caricato da functions.php con la data del file come versione: la cache del
 * browser in .htaccess e' di un anno.
 * Le regole di base (.stile-form, .stile-btn-form, .stile-privacy-form,
 * .cf7-row) restano in style.css del tema figlio: qui ci sono le correzioni.
 * "body" davanti a ogni regola: vince a parita' di peso sulle regole di
 * Contact Form 7 (styles.css), qualunque sia l'ordine dei fogli di stile.
 * ========================================================================= */

/* Scheda: il form in un riquadro bianco con ombra leggera. Solo i form con il pulsante
   standard, e non dove c'e' gia' un riquadro: prenotazioni, popup degli articoli, comparatore,
   webinar a passi, le landing 2212 (form 2282) e 2631 (form 2629) e il form delle schede
   atenei (1034), che sta nel riquadro blu "Richiedi informazioni", e la vecchia landing 1395
   (form 1422), nel riquadro verde. */
body .wpcf7-form:has(.stile-btn-form):not(.ub-form-wrap *, .pum-container *, #infoModal *, #article-gate-modal *, .lpweb-form *,
    [id^="wpcf7-f2282-"] *, [id^="wpcf7-f2629-"] *, [id^="wpcf7-f1034-"] *, [id^="wpcf7-f1422-"] *) {
    background: #ffffff;
    border: 1px solid #e1e7f0;
    border-radius: 16px;
    padding: 28px 28px 24px;
    box-shadow: 0 12px 32px rgba(0, 152, 106, 0.1);
}

@media (max-width: 768px) {
    body .wpcf7-form:has(.stile-btn-form):not(.ub-form-wrap *, .pum-container *, #infoModal *, #article-gate-modal *, .lpweb-form *,
        [id^="wpcf7-f2282-"] *, [id^="wpcf7-f2629-"] *, [id^="wpcf7-f1034-"] *, [id^="wpcf7-f1422-"] *) {
        padding: 20px 16px 18px;
        border-radius: 14px;
    }
}

/* Su telefono e tablet molte sezioni non hanno spazio in basso: senza margine la scheda
   toccava il footer (su universita.it succedeva su 8 pagine su 10) */
@media (max-width: 980px) {
    body .wpcf7-form:has(.stile-btn-form):not(.ub-form-wrap *, .pum-container *, #infoModal *, #article-gate-modal *, .lpweb-form *,
        [id^="wpcf7-f2282-"] *, [id^="wpcf7-f2629-"] *, [id^="wpcf7-f1034-"] *, [id^="wpcf7-f1422-"] *) {
        margin-bottom: 32px;
    }
}

/* Etichette: <label class="etichetta-campo"> nei modelli dei form (29/09/2026):
   cliccando il testo il cursore va nel campo. */
body .wpcf7-form label.etichetta-campo {
    display: block;
    margin-bottom: 12px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: #1f2937;
}

/* Gli "a capo" nel paragrafo delle etichette (fra un'etichetta e l'altra, o dopo i campi
   nascosti del form atenei) lascerebbero righe vuote */
body .wpcf7-form p:has(> label.etichetta-campo) > br {
    display: none;
}

/* L'a capo fra un'etichetta e la successiva lascerebbe una riga vuota */
body .wpcf7-form label.etichetta-campo + br {
    display: none;
}

/* Form con il testo ancora libero nel paragrafo, senza <label> (per esempio "Form Test").
   !important perche' il CSS di Divi forza tutti i <p> a 400 e 18px/16px. */
body .wpcf7-form p:has(> .wpcf7-form-control-wrap > .stile-form) {
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.4;
    color: #1f2937;
}

/* Spazi: lo stacco fra i campi lo danno le etichette, non il margine di Divi (1em) */
body .wpcf7-form p:has(> label.etichetta-campo) {
    padding-bottom: 0;
}

body .wpcf7-form .cf7-row {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    body .wpcf7-form .cf7-row {
        gap: 0;
    }
}

/* Campi: 16px (sotto, iPhone ingrandisce la pagina al tocco), font del sito.
   Stile "contorno" (29/09/2026): bianchi, bordo morbido e ombra leggerissima. */
body .wpcf7-form .stile-form {
    margin-top: 4px;
    margin-bottom: 0 !important;
    padding: 12px 14px !important;
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: #1f2937;
    background-color: #ffffff;
    border: 1.5px solid #d5dbe5 !important;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05);
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

/* Richiesta libera: tre righe, allungabile a mano */
body .wpcf7-form textarea.stile-form {
    height: 100px;
    min-height: 68px;
    resize: vertical;
}

/* Tendine e data non ancora scelte: testo grigio, come un suggerimento. La data diventa
   scura con la classe data-piena (udm-form.js) o mentre la si scrive. */
body .wpcf7-form select.stile-form:has(option:first-child:checked) {
    color: #8a94a6;
}

body .wpcf7-form select.stile-form option {
    color: #1f2937;
}

body .wpcf7-form input[type="date"].stile-form:not(.data-piena):not(:focus) {
    color: #8a94a6;
}

/* Freccia della tendina e calendario della data disegnati come le icone dei campi,
   al posto di quelli del browser */
body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap > select.stile-form {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 42px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 18px 18px;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap > input[type="date"].stile-form::-webkit-calendar-picker-indicator {
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E") no-repeat center / 18px 18px;
    opacity: 1;
    cursor: pointer;
}

/* Esempio grigio nella casella della richiesta (placeholder nei modelli dei form) */
body .wpcf7-form .stile-form::placeholder {
    color: #8a94a6;
    opacity: 1;
}

/* Campo e contenitore a blocco: le icone e la spunta si posizionano sul contenitore,
   che cosi' ha lo stesso bordo in alto del campo (il margine di 4px passa fuori) */
body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap {
    display: block;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap > .stile-form {
    display: block;
}

/* Icone nei campi piu' comuni (la data ha gia' il calendario del browser a destra).
   Stanno sul contenitore e non come sfondo del campo: la compilazione automatica
   di Chrome toglie le immagini di sfondo ai campi che riempie. */
body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:is([data-name="firstName"], [data-name="lastName"], [data-name="email"], [data-name="phone"], [data-name="province"], [data-name="notes"],
    [data-name="nome"], [data-name="cognome"], [data-name="telefono"], [data-name="provincia"], [data-name="richiesta"],
    [data-name="diploma"], [data-name="universita"], [data-name="esami"]) > .stile-form {
    padding-left: 42px !important;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:is([data-name="firstName"], [data-name="lastName"], [data-name="email"], [data-name="phone"], [data-name="province"], [data-name="notes"],
    [data-name="nome"], [data-name="cognome"], [data-name="telefono"], [data-name="provincia"], [data-name="richiesta"],
    [data-name="diploma"], [data-name="universita"], [data-name="esami"])::before {
    content: "";
    position: absolute;
    z-index: 1;
    left: 14px;
    top: 15px; /* (48px del campo - 18px) / 2 */
    width: 18px;
    height: 18px;
    /* L'icona fa da maschera: il colore e' --colore-icona, verde mentre si scrive nel campo */
    background: var(--colore-icona, #8a94a6);
    -webkit-mask: var(--icona) no-repeat center / contain;
    mask: var(--icona) no-repeat center / contain;
    pointer-events: none;
    transition: background-color 0.15s ease;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:focus-within {
    --colore-icona: #00986a;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:is([data-name="firstName"], [data-name="lastName"], [data-name="nome"], [data-name="cognome"]) {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 3.6-7 8-7s8 3 8 7'/%3E%3C/svg%3E");
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap[data-name="email"] {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:is([data-name="phone"], [data-name="telefono"]) {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:is([data-name="province"], [data-name="provincia"]) {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:is([data-name="notes"], [data-name="richiesta"]) {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/%3E%3C/svg%3E");
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap:is([data-name="notes"], [data-name="richiesta"])::before {
    top: 14px;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap[data-name="diploma"] {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c3 2 9 2 12 0v-5'/%3E%3C/svg%3E");
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap[data-name="universita"] {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V10M9 21V10M15 21V10M19 21V10M2 10l10-6 10 6'/%3E%3C/svg%3E");
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap[data-name="esami"] {
    --icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z'/%3E%3Cpath d='M14 3v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E");
}

/* Spunta verde nei campi compilati bene: la classe campo-ok la mette udm-form.js.
   Non con un errore di CF7 ancora visibile. */
body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap.campo-ok > .stile-form {
    padding-right: 42px !important;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap.campo-ok:not(:has(.wpcf7-not-valid))::after {
    content: "";
    position: absolute;
    z-index: 1;
    right: 14px;
    top: 15px;
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%2300986a'/%3E%3Cpath d='m7 12.5 3.2 3.2L17 9' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
    pointer-events: none;
    animation: uni-campo-ok 0.25s ease-out;
}

/* Nelle tendine e nella data la spunta sta prima della freccia o del calendario del browser */
body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap.campo-ok:has(> select) > .stile-form {
    padding-right: 72px !important;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap.campo-ok:not(:has(.wpcf7-not-valid)):has(> select)::after {
    right: 46px;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap.campo-ok:has(> input[type="date"]) > .stile-form {
    padding-right: 14px !important;
}

body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap.campo-ok:not(:has(.wpcf7-not-valid)):has(> input[type="date"])::after {
    right: 46px;
}

@keyframes uni-campo-ok {
    from { opacity: 0; }
    to { opacity: 1; }
}

body .wpcf7-form .stile-form:hover {
    border-color: #aab4c3 !important;
}

body .wpcf7-form .stile-form:focus {
    outline: none;
    background-color: #ffffff;
    border-color: #00986a !important;
    box-shadow: 0 0 0 4px rgba(0, 152, 106, 0.12);
}

/* Campo con errore */
body .wpcf7-form .stile-form.wpcf7-not-valid {
    border-color: #c62828 !important;
    background-color: #fff5f4;
}

body .wpcf7-form .stile-form.wpcf7-not-valid:focus {
    box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.18);
}

body .wpcf7-form .wpcf7-not-valid-tip {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    color: #b42318;
}

/* Consensi: casella da 20px e testo allineato accanto, non sotto la casella */
body .wpcf7-form p:has(> label.stile-privacy-form) {
    padding-bottom: 8px;
}

body .wpcf7-form label.stile-privacy-form {
    display: block;
    position: relative;
    padding-left: 30px;
    margin-bottom: 0;
    font-size: 13px !important;
    font-weight: 400;
    line-height: 1.5;
    color: #374151;
}

/* Consensi nello stesso paragrafo (form delle landing): lo stacco che fra paragrafi da' il padding */
body .wpcf7-form label.stile-privacy-form + br + label.stile-privacy-form {
    margin-top: 8px;
}

/* Contact Form 7 mette position:relative sul contenitore: la casella si posiziona sull'etichetta */
body .wpcf7-form label.stile-privacy-form .wpcf7-form-control-wrap {
    position: static;
}

body .wpcf7-form label.stile-privacy-form .wpcf7-acceptance {
    position: absolute;
    left: 0;
    top: 0;
}

body .wpcf7-form label.stile-privacy-form .wpcf7-list-item {
    margin: 0;
}

/* Casella disegnata: angoli arrotondati, verde del sito quando e' spuntata */
body .wpcf7-form label.stile-privacy-form input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    display: grid;
    place-content: center;
    width: 20px;
    height: 20px;
    margin: 0;
    border: 1.5px solid #9aa3b0;
    border-radius: 6px;
    background: #ffffff;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

body .wpcf7-form label.stile-privacy-form input[type="checkbox"]:hover {
    border-color: #00986a;
}

body .wpcf7-form label.stile-privacy-form input[type="checkbox"]:checked {
    background: #00986a;
    border-color: #00986a;
}

body .wpcf7-form label.stile-privacy-form input[type="checkbox"]:checked::before {
    content: "";
    width: 10px;
    height: 5px;
    border: 2px solid #ffffff;
    border-top: 0;
    border-right: 0;
    transform: translateY(-1px) rotate(-45deg);
}

/* Contrasto elevato di Windows: torna la casella del sistema */
@media (forced-colors: active) {
    body .wpcf7-form label.stile-privacy-form input[type="checkbox"] {
        -webkit-appearance: auto;
        appearance: auto;
    }
}

body .wpcf7-form label.stile-privacy-form input[type="checkbox"]:focus-visible {
    outline: 2px solid #00986a;
    outline-offset: 2px;
}

/* Consenso obbligatorio non spuntato: il messaggio sta sopra il testo, accanto alla casella */
body .wpcf7-form label.stile-privacy-form .wpcf7-not-valid-tip {
    margin: 0 0 2px;
}

body .wpcf7-form label.stile-privacy-form a {
    color: #00986a;
    text-decoration: underline;
}

/* Consensi raccolti in un riquadro grigio chiaro (<div class="form-consensi"> nei modelli
   dei form): si leggono come note legali, separate dai campi. I testi restano interi. */
body .wpcf7-form .form-consensi {
    margin: 4px 0 10px;
    padding: 14px 16px 12px;
    background: #f4f6fa;
    border: 1px solid #e3e8f0;
    border-radius: 12px;
}

body .wpcf7-form .form-consensi label.stile-privacy-form {
    font-size: 12.5px !important;
    line-height: 1.45;
    color: #4b5563;
}

body .wpcf7-form .form-consensi p:last-child {
    padding-bottom: 0;
}

/* "* Campi obbligatori" sotto il riquadro */
body .wpcf7-form p:has(> .form-obbligatori) {
    padding-bottom: 0;
}

body .wpcf7-form .form-obbligatori {
    display: block;
    margin: 0 0 4px;
    font-size: 12px;
    color: #4b5563;
}

/* Nel paragrafo del pulsante gli "a capo" non servono (nota e pulsante sono blocchi); nella vecchia
   landing c'e' anche un campo nascosto fra i due */
body .wpcf7-form p:has(> .stile-btn-form) > br {
    display: none;
}

body .wpcf7-form .form-obbligatori ~ .stile-btn-form {
    margin-top: 10px;
}

/* Nelle landing la nota e il pulsante stanno nello stesso paragrafo, separati da un a capo */
body .wpcf7-form .form-obbligatori + br {
    display: none;
}

body .wpcf7-form .form-obbligatori + br + .stile-btn-form {
    margin-top: 10px;
}

/* "* Campi obbligatori" nello stesso paragrafo dell'ultimo consenso (form senza riquadro):
   l'a capo lascerebbe una riga vuota */
body .wpcf7-form label.stile-privacy-form + br {
    display: none;
}

body .wpcf7-form label.stile-privacy-form + br + span {
    display: block;
    margin-top: 4px;
    color: #4b5563;
}

/* Pulsante di invio */
body .wpcf7-form p:has(> .stile-btn-form) {
    padding-top: 6px;
    padding-bottom: 0;
}

/* Angoli a pillola come su universita.it (style.css del tema li teneva a 15px) */
body .wpcf7-form .stile-btn-form {
    display: block;
    margin: 0 auto;
    border-radius: 25px;
    font-family: inherit;
    font-weight: 600;
    line-height: 1.4;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

body .wpcf7-form .stile-btn-form:hover {
    background-color: #007a55;
}

/* Piu' grande e con ombra; a tutta larghezza su telefono. Non nei webinar e nella landing iPad,
   dove il pulsante sta nella barra Indietro/Avanti */
body .wpcf7-form:not(.lpweb-form *, .lpipad-form *) .stile-btn-form {
    min-width: 260px;
    padding: 12px 48px;
    box-shadow: 0 8px 20px rgba(0, 152, 106, 0.28);
}

body .wpcf7-form:not(.lpweb-form *, .lpipad-form *) .stile-btn-form:hover {
    box-shadow: 0 4px 12px rgba(0, 152, 106, 0.2);
}

@media (max-width: 768px) {
    body .wpcf7-form:not(.lpweb-form *, .lpipad-form *) .stile-btn-form {
        width: 100%;
        min-width: 0;
    }
}

body .wpcf7-form .stile-btn-form:focus-visible {
    outline: 3px solid #00986a;
    outline-offset: 3px;
}

body .wpcf7-form .stile-btn-form:active {
    transform: translateY(1px);
}

/* Mentre invia: pulsante attenuato e non ricliccabile, rotellina centrata sotto */
body .wpcf7-form.submitting .stile-btn-form {
    opacity: 0.65;
    cursor: progress;
    pointer-events: none;
}

body .wpcf7-form:not(.submitting) .wpcf7-spinner {
    display: none;
}

body .wpcf7-form.submitting .wpcf7-spinner {
    display: block;
    margin: 12px auto 0;
}

/* Riga di rassicurazione sotto il pulsante: <p class="form-garanzie"> nei modelli dei form */
body .wpcf7-form .form-garanzie {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 18px;
    margin: 12px 0 0;
    padding: 0;
    font-size: 13px !important;
    line-height: 1.4;
    color: #4b5563;
}

body .wpcf7-form .form-garanzie span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body .wpcf7-form .form-garanzie span::before {
    content: "";
    width: 16px;
    height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300986a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Messaggio finale del form */
body .wpcf7 form .wpcf7-response-output {
    margin: 16px 0 0;
    padding: 12px 16px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

body .wpcf7 form.invalid .wpcf7-response-output,
body .wpcf7 form.unaccepted .wpcf7-response-output,
body .wpcf7 form.payment-required .wpcf7-response-output {
    border-color: #f0b429;
    background: #fff8e6;
    color: #5c3d00;
}

body .wpcf7 form.sent .wpcf7-response-output {
    border-color: #2e9d5b;
    background: #effaf3;
    color: #14532d;
}

body .wpcf7 form.failed .wpcf7-response-output,
body .wpcf7 form.aborted .wpcf7-response-output,
body .wpcf7 form.spam .wpcf7-response-output {
    border-color: #d92d20;
    background: #fef3f2;
    color: #912018;
}

/* Due colonne da computer, per scorrere meno (29/09/2026). Decide la larghezza del form,
   non quella della finestra: quasi tutti i form stanno in una colonna laterale (375px utili).
   - dai 600px in su (per esempio la landing del corso): tutto su due colonne, richiesta intera;
   - fra 340 e 599px: due colonne solo per i campi corti (Nome|Cognome, Telefono|Data di nascita),
     Email, Provincia e Richiesta restano larghe.
   Su telefono una colonna. Le etichette di un form stanno tutte nello stesso <p>. */
@media (min-width: 981px) {
    body .wpcf7 {
        container-type: inline-size;
        width: 100%;
    }

    @container (min-width: 340px) {
        /* Solo nei paragrafi con piu' etichette: nei form con le righe .cf7-row (webinar, vecchia
           landing) ogni etichetta ha il suo paragrafo e le colonne ci sono gia' */
        body .wpcf7-form p:has(> label.etichetta-campo ~ label.etichetta-campo) {
            display: grid;
            grid-template-columns: 1fr 1fr;
            column-gap: 16px;
        }

        body .wpcf7-form p > label.etichetta-campo {
            grid-column: 1 / -1;
            min-width: 0;
        }
    }

    @container (min-width: 340px) and (max-width: 599px) {
        /* Nome e Cognome affiancati; Telefono e Data di nascita solo se sono uno dopo l'altro */
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="firstName"]),
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="lastName"]),
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="nome"]),
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="cognome"]),
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="telefono"]):has(+ br + label > [data-name="data_nascita"]),
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="telefono"]) + br + label.etichetta-campo:has(> [data-name="data_nascita"]),
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="phone"]):has(+ br + label > [data-name="birthDate"]),
        body .wpcf7-form p > label.etichetta-campo:has(> [data-name="phone"]) + br + label.etichetta-campo:has(> [data-name="birthDate"]) {
            grid-column: auto;
        }
    }

    @container (min-width: 600px) {
        body .wpcf7-form p > label.etichetta-campo:not(:has(textarea)) {
            grid-column: auto;
        }
    }
}

/* Form delle schede atenei (1034) nel riquadro blu "Richiedi informazioni": niente scheda,
   etichette, consenso, nota e riga sotto il pulsante in bianco (29/09/2026) */
body [id^="wpcf7-f1034-"] label.etichetta-campo,
body [id^="wpcf7-f1034-"] .form-obbligatori,
body [id^="wpcf7-f1034-"] .form-garanzie,
body [id^="wpcf7-f1034-"] .form-consensi label.stile-privacy-form {
    color: #ffffff;
}

/* !important: nelle schede atenei il form sta nel layout del Theme Builder, dove Divi colora
   i link con una regola che contiene un ID (.et-db #et-boc .et-l a) */
body [id^="wpcf7-f1034-"] .form-consensi label.stile-privacy-form a {
    color: #ffffff !important;
}

body [id^="wpcf7-f1034-"] .form-consensi {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.2);
}

body [id^="wpcf7-f1034-"] .wpcf7-not-valid-tip {
    color: #ffc9c2;
}

body [id^="wpcf7-f1034-"] .wpcf7-form .stile-form:focus {
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.7);
}

body [id^="wpcf7-f1034-"] .wpcf7-form .stile-btn-form:focus-visible {
    outline-color: #ffffff;
}

body [id^="wpcf7-f1034-"] .form-garanzie span::before {
    filter: brightness(0) invert(1);
}

/* Vecchia landing 1395 (form 1422) nel riquadro verde: testi bianchi, pulsante bianco con il
   testo verde (verde su verde non si vedrebbe), caselle spuntate bianche con la spunta verde */
body [id^="wpcf7-f1422-"] label.etichetta-campo,
body [id^="wpcf7-f1422-"] .form-obbligatori,
body [id^="wpcf7-f1422-"] .form-garanzie,
body [id^="wpcf7-f1422-"] .form-consensi label.stile-privacy-form {
    color: #ffffff;
}

body [id^="wpcf7-f1422-"] .form-consensi label.stile-privacy-form a {
    color: #ffffff !important;
}

body [id^="wpcf7-f1422-"] .form-consensi {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
}

body [id^="wpcf7-f1422-"] .wpcf7-not-valid-tip {
    color: #fff1ef;
}

body [id^="wpcf7-f1422-"] .wpcf7-form .stile-form:focus {
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.7);
}

body [id^="wpcf7-f1422-"] label.stile-privacy-form input[type="checkbox"]:checked {
    background: #ffffff;
    border-color: #ffffff;
}

body [id^="wpcf7-f1422-"] label.stile-privacy-form input[type="checkbox"]:checked::before {
    border-color: #00986a;
}

body [id^="wpcf7-f1422-"] .wpcf7-form .stile-btn-form {
    background-color: #ffffff;
    color: #00986a !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}

body [id^="wpcf7-f1422-"] .wpcf7-form .stile-btn-form:hover {
    background-color: #eafaf4;
}

body [id^="wpcf7-f1422-"] .wpcf7-form .stile-btn-form:focus-visible {
    outline-color: #ffffff;
}

body [id^="wpcf7-f1422-"] .form-garanzie span::before {
    filter: brightness(0) invert(1);
}

@media (prefers-reduced-motion: reduce) {
    body .wpcf7-form .stile-form,
    body .wpcf7-form .stile-btn-form,
    body .wpcf7-form label.stile-privacy-form input[type="checkbox"] {
        transition: none;
    }

    body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap::after {
        animation: none;
    }

    body .wpcf7-form label.etichetta-campo .wpcf7-form-control-wrap::before {
        transition: none;
    }
}
