/*
 * 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: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(0, 0, 0, .1);
}

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

.standard-form-section-title {
    margin-bottom: 1rem;
    font-size: 1.35rem;
}

/*
 * 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: 1.25rem !important;
    line-height: 1.35;
    font-weight: 700;
}

/*
 * 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.
 */
.meeting-standard-form .companion-card,
#confermapresenza .meeting-standard-form .companion-card {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

/*
 * 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: .65rem 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: 1.75rem 0 1.25rem;
    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;
    /* Mantiene anche il form standard coerente con la navigazione condivisa. */
    flex-wrap: nowrap;
    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;
}

/*
 * Ingegneri Riuniti - variante compatta (16/10/2026).
 * Ambito ristretto: non modifica gli altri form modulari/standard.
 */
#confermapresenza .hero-section .boxed form.meeting-compact-form {
    color: #00216A;
    font-size: 14px;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form :is(label, input, select, textarea, p, h3, a, span, .compact-required-note) {
    color: #00216A;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form :is(.form-label, .form-control, .form-select) {
    font-size: 14px;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .text-danger {
    color: #00216A !important;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .form-control::placeholder {
    color: #00216A;
    opacity: .65;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .form-control {
    border-bottom-color: #00216A !important;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .compact-form-privacy,
#confermapresenza .hero-section .boxed form.meeting-compact-form .compact-form-privacy :is(p, label, a, span),
#confermapresenza .hero-section .boxed form.meeting-compact-form .compact-required-note,
#confermapresenza .hero-section .boxed form.meeting-compact-form .compact-required-note span {
    font-size: 12px;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .compact-form-privacy .standard-form-section-title {
    color: #00216A;
    font-size: 16px;
    line-height: 1.35;
    margin-bottom: .85rem;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .form-check-input {
    border-color: #00216A;
    accent-color: #00216A;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .form-check-input:checked {
    background-color: #00216A;
    border-color: #00216A;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form .form-check-input:focus {
    border-color: #00216A;
    box-shadow: 0 0 0 .2rem rgba(0, 33, 106, .18);
}

#confermapresenza .hero-section .boxed form.meeting-compact-form #invia {
    color: #ffffff;
    background-color: #00216A;
    border: 1px solid #00216A;
    font-size: 14px;
    font-weight: 700;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form #invia:hover:not(:disabled),
#confermapresenza .hero-section .boxed form.meeting-compact-form #invia:focus-visible {
    color: #00216A;
    background-color: #ffffff;
    border-color: #00216A;
}

#confermapresenza .hero-section .boxed form.meeting-compact-form #invia:disabled {
    color: #ffffff;
    background-color: #00216A;
    border-color: #00216A;
    opacity: .65;
    cursor: not-allowed;
}

/*
 * Ingegneri Riuniti - feedback visivi della pagina iscrizione (16/10/2026).
 * Solo aspetto grafico: nessuna modifica a messaggi, validazioni o salvataggio.
 * In particolare neutralizza i colori Bootstrap degli avvisi di stato.
 */
#confermapresenza.meeting-standard-page .meeting-standard-form-card {
    background: #ffffff !important;
    background-image: none !important;
}

#confermapresenza.meeting-standard-page .meeting-standard-form-card :is(
    .alert,
    .message-confirmed,
    .message-unconfirmed,
    .step-form-message:not(:empty)
) {
    background: #ffffff !important;
    background-image: none !important;
    color: #00216A !important;
    border-color: transparent !important;
    box-shadow: none !important;
    font-size: 14px;
}

#confermapresenza.meeting-standard-page .meeting-standard-form-card :is(
    .alert,
    .message-confirmed,
    .message-unconfirmed,
    .step-form-message:not(:empty)
) :is(h1, h2, h3, h4, h5, h6, p, span, small, strong, b, em, i, li, a) {
    color: #00216A !important;
}

#confermapresenza.meeting-standard-page .meeting-standard-form-card :is(
    .alert,
    .message-confirmed,
    .message-unconfirmed,
    .step-form-message:not(:empty)
) a {
    text-decoration-color: #00216A;
}

/* Il modale email duplicata e' fuori dal div #confermapresenza nel layout. */
body:has(#confermapresenza.meeting-standard-page) #modal_user_exist :is(
    .modal-content,
    .modal-header,
    .modal-body,
    .modal-footer,
    .alert
) {
    background: #ffffff !important;
    background-image: none !important;
    color: #00216A !important;
}

body:has(#confermapresenza.meeting-standard-page) #modal_user_exist :is(
    .modal-title,
    .modal-body,
    .modal-body p,
    .modal-body strong,
    .alert,
    .alert strong
) {
    color: #00216A !important;
}

body:has(#confermapresenza.meeting-standard-page) #modal_user_exist .alert {
    border-color: transparent !important;
    box-shadow: none !important;
}

body:has(#confermapresenza.meeting-standard-page) #modal_user_exist .modal-footer .btn {
    color: #00216A !important;
    background: #ffffff !important;
    border: 1px solid #00216A !important;
}

body:has(#confermapresenza.meeting-standard-page) #modal_user_exist .modal-footer .btn:is(:hover, :focus-visible) {
    color: #ffffff !important;
    background: #00216A !important;
}
