/*
 * Il configuratore della rata, rivestito dal tema (Task 11).
 *
 * Il plugin `configuratore-mov3` non si tocca: la sua logica è collegata al
 * gestionale del cliente (decisione di Giammarco del 2026-10-20). Qui solo
 * la grafica, sulle classi dei suoi template (frontend/templates/*.php) e
 * sugli ID che usa il suo JavaScript. Ogni regola parte da
 * #mov3-configuratore, come il Tailwind del plugin, e vince perché è un
 * gradino più specifica e arriva dopo.
 *
 * Dopo ogni rilascio del plugin si riguardano i cinque passi: se cambiano
 * classi o markup, queste regole vanno ritoccate.
 */

/* --- La sezione e il contenitore ----------------------------------------- */

.mv-configuratore-sezione {
	padding-block: clamp(1.5rem, 4vw, 3rem) var(--mv-sezione);
	padding-inline: var(--mv-margine);
}

.mv-configuratore-sezione > .wp-block-shortcode,
.mv-configuratore-sezione > p {
	max-width: var(--mv-larghezza);
	margin-inline: auto !important;
}

#mov3-configuratore {
	max-width: var(--mv-larghezza);
	margin-inline: auto;
	padding-block: 0;
	color: var(--mv-inchiostro);
	font-family: var(--mv-testo);
}

#mov3-configuratore h2,
#mov3-configuratore h3 {
	font-family: var(--mv-titoli);
	font-weight: 500;
	color: var(--mv-inchiostro);
	text-transform: none;
	letter-spacing: -0.01em;
}

#mov3-configuratore h2.text-2xl {
	font-size: var(--wp--preset--font-size--titolo-3);
}

#mov3-configuratore a {
	color: var(--mv-marchio);
}

#mov3-configuratore .text-gray-500,
#mov3-configuratore .text-gray-600,
#mov3-configuratore .text-gray-700 {
	color: var(--mv-terra);
}

#mov3-configuratore .text-gray-800,
#mov3-configuratore .text-black {
	color: var(--mv-inchiostro);
}

/* --- Barra di avanzamento ------------------------------------------------- */

#mov3-configuratore [data-mov3-progress-bar] {
	border-color: var(--mv-filo);
	background: color-mix(in srgb, var(--mv-carta) 92%, transparent);
	border-radius: var(--mv-raggio);
	padding-inline: 1rem;
}

/* Sul computer la barra resta sotto la testata del tema, non dietro. */
@media (min-width: 768px) {
	#mov3-configuratore [data-mov3-progress-bar="top"] {
		top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--mv-galleggia) + var(--mv-testata-alta) + 10px);
		z-index: 40;
	}
}

/* Sul telefono è fissa in basso: la pagina deve poter scorrere oltre. */
@media (max-width: 767px) {
	.mv-configuratore-sezione {
		padding-bottom: 9rem;
	}

	#mov3-configuratore [data-mov3-progress-bar="top"] {
		border-radius: 0;
		border-top: 1px solid var(--mv-filo);
		background: color-mix(in srgb, var(--mv-carta) 96%, transparent);
	}
}

#mov3-configuratore [data-mov3-progress-bar] .bg-orange-100 {
	background: var(--mv-filo);
}

#mov3-configuratore [data-mov3-progress-fill] {
	background: var(--mv-arancio);
}

#mov3-configuratore [data-mov3-progress-bar] .flex.justify-between {
	font-family: var(--mv-dati);
	font-size: 0.68rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* --- Pulsanti ------------------------------------------------------------- */

#mov3-configuratore [data-mov3-prev-step],
#mov3-configuratore [data-mov3-next-step],
#mov3-configuratore #sidebar-confirm-model,
#mov3-configuratore #btn-invia,
#mov3-configuratore #btn-pdf,
#mov3-configuratore #btn-salva {
	min-height: 44px;
	padding: 0.65rem 1.25rem;
	border-radius: 999px;
	border: 0;
	background: var(--mv-arancio);
	color: var(--mv-notte);
	font-family: var(--mv-testo);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--piccolo);
}

#mov3-configuratore [data-mov3-prev-step],
#mov3-configuratore #btn-pdf,
#mov3-configuratore #btn-salva {
	background: transparent;
	color: var(--mv-inchiostro);
	box-shadow: inset 0 0 0 1.5px var(--mv-inchiostro);
}

#mov3-configuratore [data-mov3-next-step]:hover,
#mov3-configuratore #sidebar-confirm-model:hover,
#mov3-configuratore #btn-invia:hover {
	background: var(--mv-arancio);
	box-shadow: 0 10px 24px -12px color-mix(in srgb, var(--mv-arancio) 80%, transparent);
}

#mov3-configuratore [data-mov3-prev-step]:hover,
#mov3-configuratore #btn-pdf:hover,
#mov3-configuratore #btn-salva:hover {
	background: color-mix(in srgb, var(--mv-inchiostro) 6%, transparent);
}

#mov3-configuratore button:focus-visible,
#mov3-configuratore input:focus-visible,
#mov3-configuratore select:focus-visible,
#mov3-configuratore textarea:focus-visible,
#mov3-configuratore [data-term-id]:focus-visible {
	outline: 2px solid var(--mv-marchio);
	outline-offset: 3px;
}

/* --- Passo 1: categorie ---------------------------------------------------- */

#mov3-configuratore [data-term-id] {
	border: 0;
	border-radius: var(--mv-raggio);
	background: var(--mv-carta);
	box-shadow: none;
	transition: transform 0.25s var(--mv-curva), box-shadow 0.25s var(--mv-curva);
}

#mov3-configuratore [data-term-id]:hover {
	transform: translateY(-3px);
	box-shadow: var(--mv-ombra);
}

#mov3-configuratore [data-term-id] img {
	padding: 10px;
	border-radius: var(--mv-raggio-piccolo);
	background:
		radial-gradient(circle at 50% 72%, color-mix(in srgb, var(--mv-arancio) 18%, transparent), transparent 66%),
		var(--mv-sabbia);
	mix-blend-mode: multiply;
}

#mov3-configuratore [data-term-id] h3 {
	margin-top: 0.25rem;
	font-size: 1rem;
}

#mov3-configuratore [data-term-id] p {
	font-family: var(--mv-dati);
	font-size: 0.68rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* --- Passi 2 e 3: modelli e accessori -------------------------------------- */

#mov3-configuratore .modello-card,
#mov3-configuratore .accessorio-card {
	border: 0;
	border-radius: var(--mv-raggio);
	background: var(--mv-carta);
	box-shadow: none;
}

#mov3-configuratore .modello-card:hover,
#mov3-configuratore .accessorio-card:hover {
	box-shadow: var(--mv-ombra);
}

/* Il pannello dei passi si allargava animando la larghezza (w-0 transition-all, due secondi): il
   testo dentro si riadattava riga per riga e scendeva tutto (CLS 0,3 sul telefono, 2026-10-22).
   Nessun suo script aspetta la fine dell'animazione. */
#mov3-configuratore #mov3-contentLeft,
#mov3-configuratore #mov3-contentRight,
#mov3-configuratore #mov3-sidebar {
	transition: none;
}

/* Finché il suo script non disegna i passi il configuratore è basso, e il piè compariva in fondo
   allo schermo per poi sparire: l'altezza si tiene da subito. */
#mov3-configuratore {
	min-height: 80vh;
}

/* Le immagini arrivano dopo le schede: senza il quadrato riservato, nella vista a
   elenco le descrizioni scendevano di 115 px (CLS 0,34 sul telefono, 2026-10-22). */
#mov3-configuratore .modello-img,
#mov3-configuratore .accessorio-img {
	aspect-ratio: 1 / 1;
	height: auto;
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-sabbia);
	mix-blend-mode: multiply;
}

#mov3-configuratore .modello-title,
#mov3-configuratore .accessorio-title {
	font-family: var(--mv-titoli);
	font-weight: 500;
	color: var(--mv-inchiostro);
}

#mov3-configuratore .modello-specs,
#mov3-configuratore .accessorio-description {
	color: var(--mv-terra);
}

#mov3-configuratore .accessorio-price {
	color: var(--mv-marchio);
}

#mov3-configuratore .modello-card .bg-mov3-blue {
	background: var(--mv-inchiostro);
}

#mov3-configuratore #layout-grid,
#mov3-configuratore #layout-list,
#mov3-configuratore #accessori-layout-grid,
#mov3-configuratore #accessori-layout-list {
	border-color: var(--mv-filo);
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-carta);
}

#mov3-configuratore #layout-grid.active,
#mov3-configuratore #layout-list.active,
#mov3-configuratore #accessori-layout-grid.active,
#mov3-configuratore #accessori-layout-list.active {
	border-color: var(--mv-inchiostro);
}

/* La scheda laterale del modello scelto. */
#mov3-configuratore #mov3-sidebar {
	border-radius: var(--mv-raggio);
	background: var(--mv-carta);
	box-shadow: var(--mv-ombra);
}

#mov3-configuratore #mov3-sidebar img {
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-sabbia);
	mix-blend-mode: multiply;
}

/* --- Campi ---------------------------------------------------------------- */

#mov3-configuratore input[type="text"],
#mov3-configuratore input[type="email"],
#mov3-configuratore input[type="tel"],
#mov3-configuratore select,
#mov3-configuratore textarea,
#mov3-configuratore .input-field {
	width: 100%;
	min-height: 44px;
	padding: 0.6rem 0.8rem;
	border: 1px solid var(--mv-filo);
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-carta);
	color: var(--mv-inchiostro);
	font: inherit;
	font-size: var(--wp--preset--font-size--piccolo);
}

#mov3-configuratore #modelli-search,
#mov3-configuratore #accessori-search {
	width: auto;
	min-width: 12rem;
}

#mov3-configuratore input[type="radio"],
#mov3-configuratore input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	accent-color: var(--mv-arancio);
}

#mov3-configuratore .input-field-file {
	display: block;
	margin-top: 0.35rem;
	font-size: var(--wp--preset--font-size--piccolo);
}

/* --- Passo 4: contratto --------------------------------------------------- */

#mov3-configuratore [data-step="4"] label.block {
	font-family: var(--mv-titoli);
	font-weight: 500;
	font-size: 1rem;
}

#mov3-configuratore #nuova-azienda-hint {
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-carta);
	color: var(--mv-terra);
}

#mov3-configuratore #durata-bar {
	height: 3rem;
	border: 1px solid var(--mv-filo);
	background: var(--mv-carta);
}

#mov3-configuratore #durata-progress {
	background: var(--mv-arancio);
}

#mov3-configuratore .durata-tacca {
	font-family: var(--mv-dati);
	font-size: 0.75rem;
	color: var(--mv-inchiostro);
}

/* --- Passo 5: la rata e il cliente ---------------------------------------- */

#mov3-configuratore [data-step="5"] .border-x {
	border-color: var(--mv-filo);
}

#mov3-configuratore #rate-info-message {
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-carta);
	color: var(--mv-terra);
}

/* La rata su un riquadro della notte: bianco su arancio non si leggeva. */
#mov3-configuratore #rata-selezionata {
	border-radius: var(--mv-raggio);
	background: var(--mv-notte);
	color: var(--mv-arancio);
	font-family: var(--mv-dati);
	font-weight: 500;
	letter-spacing: -0.02em;
}

#mov3-configuratore #rata-selezionata div {
	color: var(--mv-luna);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

#mov3-configuratore #rata-alternative > * {
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-carta);
	color: var(--mv-inchiostro);
	font-family: var(--mv-dati);
	font-size: 0.75rem;
}

#mov3-configuratore #rata-dettagli {
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-carta);
	color: var(--mv-inchiostro);
}

#mov3-configuratore [data-step="5"] .from-yellow-100 {
	border: 1px solid var(--mv-arancio);
	border-radius: var(--mv-raggio-piccolo);
	background: var(--mv-carta);
	box-shadow: none;
}

#mov3-configuratore [data-step="5"] .text-yellow-900,
#mov3-configuratore [data-step="5"] .text-orange-600 {
	color: var(--mv-inchiostro);
}

#mov3-configuratore #rate-loader {
	background: color-mix(in srgb, var(--mv-sabbia) 80%, transparent);
}

#mov3-configuratore #cliente-form summary {
	font-family: var(--mv-titoli);
	font-weight: 500;
}

#mov3-configuratore #cliente-form .border-t {
	border-color: var(--mv-filo);
}

#mov3-configuratore .text-red-500 {
	color: var(--mv-errore);
}

/* «24 Mesi»: lo spazio prima di «Mesi» si perde nel flex della tacca. */
#mov3-configuratore .durata-tacca span {
	margin-left: 0.3em;
}

/* I nomi delle categorie come nel resto del sito, senza maiuscolo. */
#mov3-configuratore [data-term-id] h3.uppercase {
	text-transform: none;
}

/* Sul telefono i cinque nomi dei passi stanno su una riga solo senza maiuscolo. */
@media (max-width: 767px) {
	#mov3-configuratore [data-mov3-progress-bar] .flex.justify-between {
		font-family: var(--mv-testo);
		font-size: 0.72rem;
		letter-spacing: 0;
		text-transform: none;
	}
}

/*
 * Il passo 1 dopo l'«Indietro» del browser (2026-10-21).
 *
 * Il router del plugin, su `popstate`, mostra il passo ma le larghezze delle due
 * colonne le cambiano solo i ganci dei passi 2-5. Dal link «Scopri la tua rata»
 * si entra al passo 3 (colonna sinistra w-0, destra w-3/4); un solo «Indietro»
 * del browser riporta al passo 1, che resta chiuso in una colonna larga 0.
 * Succede anche sul sito vivo. La cura vera è un gancio per il passo 1 nel
 * plugin; qui si sistema solo la forma: la colonna che contiene il passo
 * visibile si apre, quella che non contiene niente si chiude.
 */
#mov3-configuratore #mov3-contentLeft.w-0:has(> .mov3-step:not(.hidden)) {
	width: 75%;
}

#mov3-configuratore #mov3-contentLeft.w-0:has(> .mov3-step:not(.hidden)):has(~ #mov3-sidebar.hidden) {
	width: 100%;
}

#mov3-configuratore #mov3-contentRight:not(.w-0):not(:has(> .mov3-step:not(.hidden))) {
	width: 0;
	overflow: hidden;
}

/* Una sola barra dei passi, quella in alto (sticky sul computer, fissa in basso sul telefono). */
#mov3-configuratore [data-mov3-progress-bar="bottom"] {
	display: none;
}
