/*
 * Layout condiviso dei form standard a pagina singola.
 * Le regole sono strutturali: colori e branding continuano a provenire dal tema
 * e dalle impostazioni del plugin Pagine.
 */
.meeting-standard-page {
    width: 100%;
}

.meeting-standard-page .meeting-standard-page-inner {
    width: 100%;
    margin-inline: auto;
}

.meeting-standard-page.is-content-standard .meeting-standard-page-inner {
    max-width: 1320px;
}

.meeting-standard-page.is-content-wide .meeting-standard-page-inner {
    max-width: 1600px;
}

.meeting-standard-page.is-content-full .meeting-standard-page-inner {
    max-width: none;
}

.meeting-standard-page.is-single-stacked .meeting-standard-content-row,
.meeting-standard-page.is-single-form_only .meeting-standard-content-row {
    flex-direction: column;
}

.meeting-standard-page.is-single-stacked .meeting-standard-description,
.meeting-standard-page.is-single-stacked .meeting-standard-form-column,
.meeting-standard-page.is-single-form_only .meeting-standard-form-column {
    width: 100%;
    max-width: 100%;
}

.meeting-standard-page.is-single-form_only .meeting-standard-description {
    display: none !important;
}

.meeting-standard-content-row.has-no-standard-description {
    justify-content: center !important;
}

.meeting-standard-content-row.has-no-standard-description .meeting-standard-form-column {
    width: 100%;
    max-width: 100%;
}

.meeting-standard-form-card {
    width: 100%;
    margin-inline: auto;
}

.meeting-standard-page.is-form-compact .meeting-standard-form-card {
    max-width: 720px;
}

.meeting-standard-page.is-form-standard .meeting-standard-form-card {
    max-width: 980px;
}

.meeting-standard-page.is-form-wide .meeting-standard-form-card {
    max-width: 1280px;
}

/*
 * Il contenitore del feedback deve partecipare al layout soltanto quando
 * contiene davvero un messaggio. Il selettore adiacente mantiene inoltre la
 * prima sezione priva del bordo superiore anche se il feedback la precede.
 */
.meeting-standard-form > .step-form-message:empty {
    display: none;
}

.meeting-standard-form > .step-form-message + .standard-form-section {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.standard-form-section {
    margin-top: 1rem;
    padding-top: .8rem;
    border-top: 1px solid rgba(0, 0, 0, .1);
}

.standard-form-section:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

/*
 * Tipografia compatta del form modulare: 12px e la misura base condivisa per
 * label, controlli, note, messaggi e testi informativi. I soli titoli delle
 * sezioni principali salgono di 1px.
 */
.meeting-standard-form,
.meeting-standard-form label,
.meeting-standard-form p,
.meeting-standard-form small,
.meeting-standard-form .small,
.meeting-standard-form .form-text,
.meeting-standard-form .form-control,
.meeting-standard-form .form-select,
.meeting-standard-form input,
.meeting-standard-form select,
.meeting-standard-form option,
.meeting-standard-form textarea,
.meeting-standard-form button,
.meeting-standard-form .alert,
.meeting-standard-form .step-form-message,
.meeting-standard-form h4,
.meeting-standard-form h5,
.meeting-standard-form h6 {
    font-size: 12px !important;
}

.standard-form-section-title {
    margin: 0 0 .65rem;
    font-size: 13px !important;
    line-height: 1.3;
    font-weight: 700;
    text-transform: uppercase;
}

/*
 * Il selettore completo prevale sulle vecchie regole tipografiche evento
 * applicate ai paragrafi dentro .hero-section .boxed form.
 */
.meeting-standard-form p.standard-form-courtesy-name,
#confermapresenza .hero-section .boxed form p.standard-form-courtesy-name {
    font-size: 13px !important;
    line-height: 1.3;
    font-weight: 700;
}

/* Ritmo verticale piu compatto, senza cambiare la struttura dei partial. */
.meeting-standard-form .row.g-3 {
    --bs-gutter-y: .65rem;
}

.meeting-standard-form .mb-4 {
    margin-bottom: .85rem !important;
}

.meeting-standard-form .mb-3 {
    margin-bottom: .65rem !important;
}

.meeting-standard-form .mb-2 {
    margin-bottom: .4rem !important;
}

.meeting-standard-form .mb-1 {
    margin-bottom: .25rem !important;
}

.meeting-standard-form .mt-4 {
    margin-top: .85rem !important;
}

.meeting-standard-form .mt-3 {
    margin-top: .65rem !important;
}

.meeting-standard-form .mt-2 {
    margin-top: .4rem !important;
}

.meeting-standard-form .form-label {
    margin-bottom: .25rem;
}

.meeting-standard-form .form-control,
.meeting-standard-form .form-select {
    line-height: 1.35;
    padding-top: .3rem;
    padding-bottom: .3rem;
}

.meeting-standard-form textarea.form-control {
    min-height: auto;
}

.meeting-standard-form .form-text {
    margin-top: .2rem;
    line-height: 1.35;
}

.meeting-standard-form .companion-card,
#confermapresenza .meeting-standard-form .companion-card {
    margin-top: .65rem;
    margin-bottom: .65rem;
    padding: .75rem;
}

.meeting-standard-form .companion-card h4 {
    margin-bottom: .65rem;
}

.standard-form-required-note {
    font-size: 10px !important;
    line-height: 1.3;
}

/*
 * Le sezioni legate alla partecipazione partono chiuse e vengono mostrate da
 * standard-form.js solo dopo una scelta positiva. La classe evita anche il
 * lampeggio iniziale prima dell'avvio dello script.
 */
.meeting-standard-form [data-standard-participation-dependent]:not(.is-standard-participation-visible) {
    display: none;
}

/*
 * Alcune regole condivise (per esempio .step-conditional-panel) impostano un
 * display esplicito. Nel solo form standard l'attributo hidden deve mantenere
 * sempre la precedenza, altrimenti i contenitori possono occupare spazio pur
 * essendo logicamente nascosti.
 */
.meeting-standard-form [hidden] {
    display: none !important;
}

/*
 * Alcuni temi legacy inizializzano le schede accompagnatore con opacity: 0.
 * La classe viene applicata soltanto da standard-form.js alle schede attive;
 * il selettore con #confermapresenza prevale sulla vecchia regola del tema
 * senza alterare le schede del workflow a step.
 */
.meeting-standard-form .companion-card.is-visible,
#confermapresenza .meeting-standard-form .companion-card.is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/*
 * Il selettore con #confermapresenza prevale anche sui margini legacy delle
 * card accompagnatore senza modificare le card degli altri form.
 */

/*
 * I CSS legacy del tema lasciano i radio in float e possono mandare la label
 * a capo sotto il controllo. Queste regole sono volutamente circoscritte alle
 * scelte del form standard e non modificano i form evento gia esistenti.
 */
.standard-form-choice-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem 1.5rem;
}

.standard-form-choice-list .standard-form-choice {
    display: inline-flex;
    align-items: center;
    width: auto;
    min-height: 1.5rem;
    margin: 0;
    padding-left: 0;
}

.standard-form-choice-list .standard-form-choice .form-check-input {
    position: static;
    float: none;
    flex: 0 0 auto;
    margin: 0 .5rem 0 0;
    padding: 0;
}

.standard-form-choice-list .standard-form-choice .form-check-label {
    display: inline-block;
    width: auto;
    margin: 0;
    line-height: 1.35;
}

.standard-form-divider {
    margin: .85rem 0 .7rem;
    opacity: .1;
}

.standard-form-privacy h6 {
    color: var(--step-primary);
}

.standard-form-privacy .small {
    line-height: 1.45;
}

.meeting-standard-topbar .meeting-step-header-navigation,
.meeting-standard-topbar .meeting-standard-navigation-row {
    min-width: 0;
}

.meeting-standard-topbar .meeting-step-external-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.25rem;
    align-items: center;
    justify-content: flex-end;
}

.meeting-standard-topbar.is-header-stacked .meeting-step-external-nav {
    justify-content: center;
}

@media (max-width: 991.98px) {
    .meeting-standard-page.is-single-split .meeting-standard-content-row {
        flex-direction: column;
    }

    .meeting-standard-page.is-single-split .meeting-standard-description,
    .meeting-standard-page.is-single-split .meeting-standard-form-column {
        width: 100%;
        max-width: 100%;
    }

    .meeting-standard-topbar .meeting-step-external-nav {
        justify-content: center;
    }
}

.meeting-page-decoration {
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 0;
    max-width: min(32vw, 420px);
    max-height: 52vh;
    pointer-events: none;
}

.meeting-standard-page > section,
.meeting-standard-page > div {
    position: relative;
    z-index: 1;
}

/* Lo spazio negativo usato dal workspace a step non serve nelle pagine singole. */
.meeting-standard-topbar .meeting-step-topbar-inner {
    padding-bottom: 1.45rem;
}
