/* Configuratore prezzi Explorer Sea, stile "listino elegante" */
.esp {
	--esp-blu: #002331;
	--esp-inchiostro: #18323d;
	--esp-grigio: #556268;
	--esp-linea: #d9dedf;
	--esp-puntini: #9aa6ab;
	--esp-carta: #faf8f3;
	color: var(--esp-inchiostro);
	font-family: inherit;
	background: var(--esp-carta);
	padding: clamp(16px, 4vw, 40px);
	box-sizing: border-box;
	line-height: 1.45;
}
.esp *, .esp *::before, .esp *::after { box-sizing: border-box; }
.esp p, .esp h2, .esp h3 { margin: 0; }
.esp img { max-width: 100%; }
.esp button { font: inherit; }
.esp a { color: var(--esp-blu); }
.esp :focus-visible { outline: 2px solid var(--esp-blu); outline-offset: 2px; }

.esp .esp-etichetta { font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--esp-grigio); }
.esp .esp-dettaglio { font-size: 13px; color: var(--esp-grigio); }
.esp .esp-titolo { font-size: clamp(30px, 4vw, 44px); line-height: 1.05; font-weight: 300; letter-spacing: -0.01em; color: var(--esp-blu); }

/* schermata configurazione */
.esp .esp-optional { display: flex; flex-direction: column; gap: 28px; }

/* scelta del modello: foto sopra il nome */
.esp .esp-scelta-modello { margin-bottom: clamp(24px, 4vw, 40px); }
.esp .esp-modelli { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--esp-inchiostro); border-bottom: 1px solid var(--esp-linea); }
.esp .esp-modello { padding: 16px; border: 0; border-right: 1px solid var(--esp-linea); background: transparent; color: var(--esp-inchiostro); cursor: pointer; display: flex; flex-direction: column; align-items: stretch; gap: 12px; text-align: left; font-size: 16px; }
.esp .esp-modello:last-child { border-right: 0; }
.esp .esp-modello.is-scelto { background: #fff; box-shadow: inset 0 -3px 0 var(--esp-blu); }
.esp .esp-modello-nome { font-weight: 500; }
.esp .esp-modello.is-scelto .esp-modello-nome { color: var(--esp-blu); }
.esp .esp-modello-foto { width: 100%; height: clamp(110px, 13vw, 170px); object-fit: contain; display: block; }
.esp .esp-modello-testo { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.esp .esp-modello-riga { display: flex; align-items: center; gap: 10px; }
.esp .esp-pallino { width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--esp-blu); flex-shrink: 0; }
.esp .esp-modello.is-scelto .esp-pallino { background: var(--esp-blu); }
.esp .esp-puntini { flex: 1; min-width: 16px; border-bottom: 1px dotted var(--esp-puntini); align-self: center; transform: translateY(4px); }
.esp .esp-prezzi { display: flex; flex-direction: column; align-items: flex-end; }
.esp .esp-modello .esp-prezzo { font-size: 16px; }
.esp .esp-netto { font-size: 12px; font-weight: 400; color: var(--esp-grigio); white-space: nowrap; }
/* voucher promozionale */
.esp .esp-promo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin-bottom: 24px; padding: 14px 18px; background: var(--esp-blu); color: #fff; font-size: 15px; }
.esp .esp-promo-nome { font-size: 13px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; }
.esp .esp-barrato { text-decoration: line-through; color: var(--esp-grigio); font-size: 13px; font-weight: 400; }
.esp .esp-promo-riga { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: baseline; gap: 2px 8px; }
.esp .esp-promo-etichetta { font-size: 13px; font-weight: 400; color: var(--esp-blu); white-space: nowrap; }
/* il testo delle schede non deve mai uscire dal riquadro */
.esp .esp-modello-testo, .esp .esp-modello-riga, .esp .esp-prezzi { min-width: 0; }
.esp .esp-prezzi { text-align: right; }
/* schede larghe: "Compra in inverno" e prezzo barrato sempre sulla stessa riga; se manca spazio va a capo il nome del modello */
@media (min-width: 1201px) {
	.esp .esp-prezzi { flex-shrink: 0; }
	.esp .esp-promo-riga { flex-wrap: nowrap; }
}
/* schede strette: nome e prezzi uno sotto l'altro, centrati */
@media (min-width: 761px) and (max-width: 1200px) {
	.esp .esp-modello-testo { flex-direction: column; align-items: center; text-align: center; gap: 6px; }
	.esp .esp-prezzi { align-items: center; text-align: center; }
	.esp .esp-promo-riga { justify-content: center; }
}
.esp .esp-off-voucher { font-weight: 600; color: var(--esp-blu); }
.esp .esp-nota { font-size: 13px; line-height: 1.6; color: var(--esp-grigio); }

.esp .esp-gruppo { display: flex; flex-direction: column; }
.esp .esp-gruppo-titolo { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--esp-grigio); }
.esp .esp-riga { padding: 12px 0; border-bottom: 1px solid var(--esp-linea); display: flex; align-items: center; gap: 18px; }
.esp .esp-miniatura { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; flex-shrink: 0; transition: opacity 0.2s; }
.esp .esp-riga.is-spento .esp-miniatura { opacity: 0.55; }
.esp .esp-testo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.esp .esp-linea { display: flex; align-items: baseline; gap: 10px; }
.esp .esp-voce { font-size: 17px; font-weight: 500; }
.esp .esp-riga .esp-prezzo { font-size: 17px; font-weight: 600; color: var(--esp-blu); white-space: nowrap; }
.esp .esp-linea-sotto { justify-content: space-between; gap: 16px; }
.esp .esp-desc { font-size: 13px; line-height: 1.5; color: var(--esp-grigio); }
/* tre colonne uguali, allineate alle tre colonne dei modelli */
.esp .esp-finiture { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 0; padding: 12px 0 16px; border-bottom: 1px solid var(--esp-linea); }
.esp .esp-finitura { margin: 0; padding: 0 12px; border: 0; min-width: 0; text-align: center; }
.esp .esp-finitura legend { width: 100%; text-align: center; padding: 0; margin-bottom: 8px; font-size: 17px; font-weight: 500; color: var(--esp-inchiostro); }
.esp .esp-colori { display: flex; flex-wrap: nowrap; justify-content: center; gap: 4px 12px; }
.esp .esp-colore { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 15px; color: var(--esp-grigio); cursor: pointer; white-space: nowrap; }
.esp .esp-colore.is-scelto { color: var(--esp-inchiostro); }
.esp .esp-colore input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.esp .esp-tinta { width: 22px; height: 22px; border-radius: 50%; border: 1px solid #c9cfd1; flex-shrink: 0; }
.esp .esp-colore.is-scelto .esp-tinta { box-shadow: 0 0 0 2px var(--esp-carta), 0 0 0 3px var(--esp-blu); }
.esp .esp-colore input:focus-visible + .esp-tinta { outline: 2px solid var(--esp-blu); outline-offset: 3px; }
.esp .esp-off-finiture { display: flex; flex-wrap: wrap; gap: 12px 40px; }
.esp .esp-off-finiture > div { display: flex; flex-direction: column; gap: 2px; }
.esp .esp-incluso { flex-shrink: 0; width: 56px; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--esp-blu); }

.esp .esp-interruttore { flex-shrink: 0; width: 56px; height: 48px; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.esp .esp-binario { display: block; width: 44px; height: 24px; padding: 2px; border-radius: 12px; border: 1px solid var(--esp-blu); background: var(--esp-carta); transition: background 0.2s; }
.esp .esp-pomello { display: block; width: 18px; height: 18px; border-radius: 50%; background: var(--esp-blu); transition: transform 0.2s, background 0.2s; }
.esp .esp-interruttore[aria-checked="true"] .esp-binario { background: var(--esp-blu); }
.esp .esp-interruttore[aria-checked="true"] .esp-pomello { background: #fff; transform: translateX(20px); }

.esp .esp-totale { padding: 18px 0; border-top: 3px double var(--esp-inchiostro); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.esp .esp-cifra { margin-top: 4px; font-size: 34px; font-weight: 300; color: var(--esp-blu); }

.esp .esp-bottone { min-height: 48px; padding: 12px 22px; border: 1px solid var(--esp-blu); border-radius: 0; background: transparent; color: var(--esp-blu); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; }
.esp .esp-bottone-pieno { background: var(--esp-blu); color: #fff; }
.esp .esp-bottone:disabled { opacity: 0.6; cursor: wait; }

/* modulo dati */
.esp .esp-centro { display: flex; justify-content: center; }
.esp .esp-colonna { flex-direction: column; align-items: center; gap: 20px; }
.esp .esp-modulo { width: 100%; max-width: 560px; padding: clamp(24px, 5vw, 40px); background: #fff; box-shadow: 0 12px 40px rgba(24, 50, 61, 0.1); display: flex; flex-direction: column; gap: 18px; }
.esp .esp-modulo-testa { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; padding-bottom: 8px; }
.esp .esp-campo { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: #4f5d63; }
.esp .esp-campo input { min-height: 48px; padding: 0 14px; border: 1px solid var(--esp-puntini); border-radius: 0; background: var(--esp-carta); font: inherit; font-size: 16px; font-weight: 400; color: var(--esp-inchiostro); width: 100%; }
.esp .esp-spunta { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; color: #4f5d63; cursor: pointer; }
.esp .esp-spunta input { width: 20px; height: 20px; margin: 0; flex-shrink: 0; accent-color: var(--esp-blu); }
.esp .esp-trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.esp .esp-errore { padding: 10px 14px; border: 1px solid var(--esp-blu); font-size: 14px; }
.esp .esp-azioni { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 6px; }
.esp .esp-larga { width: 100%; max-width: 794px; }

/* offerta inviata */
.esp .esp-conferma { width: 100%; max-width: 794px; padding: 14px 18px; background: var(--esp-blu); color: #fff; font-size: 15px; }
.esp .esp-offerta { width: 100%; max-width: 794px; padding: clamp(24px, 6vw, 64px) clamp(18px, 6vw, 72px); background: #fff; box-shadow: 0 12px 40px rgba(24, 50, 61, 0.12); display: flex; flex-direction: column; gap: 24px; font-size: 14px; }
.esp .esp-off-intesta { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.esp .esp-off-intesta img { width: 44px; height: 44px; max-width: none; }
.esp .esp-riepilogo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 4px; }
.esp .esp-riepilogo .esp-cifra { margin: 0; font-size: 26px; }

.esp .esp-marchio { font-size: 14px; font-weight: 800; letter-spacing: 0.32em; color: var(--esp-blu); }
.esp .esp-marchio span { font-weight: 500; }
.esp .esp-off-cliente { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 18px 0; border-top: 1px solid var(--esp-inchiostro); border-bottom: 1px solid var(--esp-inchiostro); text-align: center; font-size: 13px; color: var(--esp-grigio); }
.esp .esp-off-cliente strong { font-size: 22px; font-weight: 300; color: var(--esp-blu); }
.esp .esp-off-barca { width: 100%; height: clamp(150px, 28vw, 230px); object-fit: contain; }
.esp .esp-off-riga { display: grid; grid-template-columns: minmax(0, 1fr) 110px 100px; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--esp-linea); }
.esp .esp-off-riga > span:nth-child(2), .esp .esp-off-riga > span:nth-child(3) { text-align: right; }
.esp .esp-off-riga small { display: block; font-size: 12px; line-height: 1.5; color: var(--esp-grigio); }
.esp .esp-off-testa { border-bottom-color: var(--esp-inchiostro); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--esp-grigio); padding: 6px 0; }
.esp .esp-off-forte { font-weight: 600; }
.esp .esp-off-omaggio { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--esp-blu); }
.esp .esp-off-totali { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; border-top: 3px double var(--esp-inchiostro); }
.esp .esp-off-totali > div { display: flex; justify-content: space-between; color: var(--esp-grigio); }
.esp .esp-off-totali .esp-off-totale { margin-top: 6px; font-size: 22px; font-weight: 300; color: var(--esp-blu); }
.esp .esp-off-condizioni { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.esp .esp-off-condizioni > div { display: flex; flex-direction: column; gap: 4px; }
.esp .esp-off-piede { padding-top: 14px; border-top: 1px solid var(--esp-linea); text-align: center; font-size: 12px; line-height: 1.7; color: var(--esp-grigio); }

@media (max-width: 760px) {
	.esp .esp-finiture { grid-template-columns: minmax(0, 1fr); }
	.esp .esp-finitura { padding: 0; text-align: left; }
	.esp .esp-finitura legend { text-align: left; }
	.esp .esp-colori { justify-content: flex-start; }
	.esp .esp-modelli { grid-template-columns: minmax(0, 1fr); }
	.esp .esp-modello { flex-direction: row; align-items: center; padding: 10px 12px; border-right: 0; border-bottom: 1px solid var(--esp-linea); }
	.esp .esp-modello:last-child { border-bottom: 0; }
	.esp .esp-modello-foto { width: 110px; height: 66px; flex-shrink: 0; }
	.esp .esp-modello-testo { flex: 1; min-width: 0; flex-direction: column; align-items: flex-start; gap: 4px; }
	.esp .esp-prezzi { align-items: flex-start; text-align: left; }
	.esp .esp-promo-riga { justify-content: flex-start; }
}

/* telefono */
@media (max-width: 600px) {
	.esp .esp-riga { gap: 12px; }
	.esp .esp-miniatura { width: 48px; height: 48px; }
	.esp .esp-voce, .esp .esp-riga .esp-prezzo { font-size: 15px; }
	.esp .esp-linea-sotto { flex-direction: column; gap: 2px; }
	.esp .esp-off-riga { grid-template-columns: minmax(0, 1fr) 84px; }
	.esp .esp-off-riga > span:nth-child(2) { display: none; }
	.esp .esp-off-condizioni { grid-template-columns: minmax(0, 1fr); }
	.esp .esp-totale .esp-bottone { width: 100%; }
}
