/* Modulo di ricontatto. Usa i colori del tema se ci sono. */
.sm-modulo { max-width: 52rem; }
.sm-form { margin: 0; }
.sm-legenda { margin: 0 0 1.2rem; }
.sm-riga-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 0 1.2rem; }
.sm-campo { display: flex; flex-direction: column; gap: 0.35rem; margin: 0 0 1.3rem; }
.sm-campo label, .sm-scelte legend { font-weight: 700; color: var(--inchiostro, #14213d); }
.sm-obbligatorio { color: #b3261e; margin-left: 0.15em; }
.sm-facoltativo { font-weight: 400; color: var(--attenuato, #4a5470); font-size: 0.9em; }
.sm-form input[type="text"], .sm-form input[type="email"], .sm-form input[type="tel"], .sm-form select, .sm-form textarea {
	width: 100%; font: inherit; color: var(--testo, #2b3550); background: var(--sfondo, #fff);
	padding: 0.7em 0.9em; border: 2px solid var(--attenuato, #4a5470); border-radius: 10px; min-height: 2.75rem; box-sizing: border-box;
}
.sm-form textarea { min-height: 8rem; resize: vertical; }
.sm-form [aria-invalid="true"]:not(fieldset) { border-color: #b3261e; background: #fff8f7; }
.sm-aiuto { font-size: 0.88rem; color: var(--attenuato, #4a5470); font-weight: 400; }
.sm-errore { color: #b3261e; font-weight: 700; font-size: 0.92rem; display: flex; gap: 0.4em; align-items: flex-start; }
.sm-errore::before { content: "!"; flex: none; width: 1.25em; height: 1.25em; border-radius: 50%; background: #b3261e; color: #fff; font-size: 0.8em; display: inline-flex; align-items: center; justify-content: center; margin-top: 0.15em; }
.sm-errore[hidden] { display: none; }

/* Argomenti con icona */
.sm-scelte { border: 0; padding: 0; margin: 0 0 1.4rem; min-width: 0; }
.sm-scelte legend { padding: 0; margin-bottom: 0.7rem; }
.sm-scelte[aria-invalid="true"] .sm-scelta { border-color: #b3261e; }
.sm-scelte-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr)); gap: 0.8rem; margin-bottom: 0.4rem; }
.sm-scelta {
	position: relative; display: flex; flex-direction: column; align-items: center; gap: 0.6rem; text-align: center;
	padding: 1rem 0.7rem 0.9rem; border: 2px solid var(--linea, #d9dfec); border-radius: 14px; background: var(--sfondo, #fff);
	cursor: pointer; font-weight: 400 !important; line-height: 1.3; min-height: 8.5rem; transition: border-color .15s, background-color .15s;
}
.sm-scelta:hover { border-color: var(--primario, #2e47c2); }
.sm-scelta input { position: absolute; top: 0.6rem; left: 0.6rem; width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--primario, #2e47c2); }
.sm-scelta-icona { color: var(--primario, #2e47c2); display: inline-flex; margin-top: 0.6rem; }
.sm-scelta-testo { color: var(--inchiostro, #14213d); font-size: 0.95rem; }
.sm-scelta:has(input:checked) { border-color: var(--primario, #2e47c2); background: var(--tinta, #e4eafa); }
.sm-scelta:has(input:checked) .sm-scelta-testo { font-weight: 700; }
.sm-scelta:has(input:focus-visible) { outline: 3px solid var(--fuoco, #f2a900); outline-offset: 2px; }

.sm-campo-somma input { max-width: 7rem; }
.sm-campo-check { flex-direction: row; align-items: flex-start; gap: 0.7rem; flex-wrap: wrap; }
.sm-campo-check input { width: 1.4rem; height: 1.4rem; margin: 0.15rem 0 0; flex: none; accent-color: var(--primario, #2e47c2); }
.sm-campo-check label { font-weight: 400; flex: 1 1 0; min-width: 12rem; }
.sm-campo-check .sm-errore { flex-basis: 100%; }
.sm-invio { margin: 0.4rem 0 0; }
.sm-invio button[disabled] { opacity: .7; cursor: progress; }
.sm-trappola { position: absolute !important; left: -9999px !important; }

/* Messaggi */
.sm-avviso, .sm-riepilogo { padding: 1rem 1.3rem; border-radius: 12px; margin-bottom: 1.5rem; border: 2px solid; }
.sm-avviso:focus, .sm-riepilogo:focus { outline: 3px solid var(--fuoco, #f2a900); outline-offset: 2px; }
.sm-avviso p, .sm-riepilogo p { margin: 0; }
.sm-avviso-ok { border-color: var(--verde, #007a55); background: #e6f4ee; color: #003d2a; }
.sm-riepilogo { border-color: #b3261e; background: #fbeaea; color: #6b0f0a; }
.sm-riepilogo ul { margin: 0.4rem 0 0; padding-left: 1.2rem; }
.sm-riepilogo a { color: #6b0f0a; font-weight: 700; }
.sm-riepilogo[hidden] { display: none; }

.sm-riepilogo-semplice { list-style: none; padding-left: 0 !important; margin: 0 !important; }
