/**
 * Anteprima gratuita "immobili per codice fiscale" — box pubblico.
 *
 * Stile coerente con i campi prodotto (vsm-frontend.css): sfondo bianco, bordi
 * leggibili, focus blu. Colori neutri, nessun accento preso dal tema, cosi' il
 * box resta coerente con qualsiasi palette. Selettori sotto .vsm-ant per non
 * interferire col resto della pagina.
 */

.vsm-ant {
	box-sizing: border-box;
	max-width: 640px;
	margin: 0 auto;
	padding: 24px;
	background: #fff;
	border: 1px solid #d7dde5;
	border-radius: 12px;
}

.vsm-ant *,
.vsm-ant *::before,
.vsm-ant *::after {
	box-sizing: border-box;
}

/* --- Intro ------------------------------------------------------------- */
.vsm-ant-intro {
	margin: 0 0 18px;
}

.vsm-ant-titolo {
	margin: 0 0 6px;
	font-size: 1.35em;
	line-height: 1.25;
	font-weight: 700;
	color: #1f2937;
}

.vsm-ant-sub {
	margin: 0;
	font-size: 0.98em;
	line-height: 1.45;
	color: #55606e;
}

/* --- Form -------------------------------------------------------------- */
.vsm-ant-form {
	margin: 0;
}

.vsm-ant-label {
	display: block;
	margin: 0 0 6px;
	font-weight: 600;
	font-size: 0.95em;
	color: #374151;
}

.vsm-ant-row {
	display: flex;
	gap: 10px;
	align-items: stretch;
}

.vsm-ant-input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 12px 14px;
	font-size: 1.05em;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	background: #fff;
	border: 1px solid #b9c2cd;
	border-radius: 8px;
	color: #1f2937;
	line-height: 1.3;
}

.vsm-ant-input::placeholder {
	text-transform: none;
	letter-spacing: normal;
	color: #9aa4b0;
}

.vsm-ant-input:hover {
	border-color: #93a0af;
}

.vsm-ant-input:focus {
	outline: 0;
	border-color: #2b6cb0;
	box-shadow: 0 0 0 3px rgba(43, 108, 176, 0.15);
}

.vsm-ant-input:disabled {
	background: #f1f3f6;
	color: #8a94a0;
	cursor: not-allowed;
}

.vsm-ant-btn {
	flex: 0 0 auto;
	padding: 12px 22px;
	font-size: 1.02em;
	font-weight: 600;
	color: #fff;
	background: #2b6cb0;
	border: 1px solid #2b6cb0;
	border-radius: 8px;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.vsm-ant-btn:hover {
	background: #245a95;
	border-color: #245a95;
}

.vsm-ant-btn:disabled {
	background: #9db4cd;
	border-color: #9db4cd;
	cursor: not-allowed;
}

.vsm-ant-hint {
	margin: 8px 0 0;
	font-size: 0.85em;
	line-height: 1.4;
	color: #6b7280;
}

/* --- Attesa (spinner) -------------------------------------------------- */
.vsm-ant-attesa {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 18px 0 0;
	padding: 14px 16px;
	background: #f4f8fc;
	border: 1px solid #d6e4f2;
	border-radius: 8px;
	font-size: 0.98em;
	color: #33475b;
}

.vsm-ant-spinner {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	border: 3px solid #cdd9e6;
	border-top-color: #2b6cb0;
	border-radius: 50%;
	animation: vsm-ant-spin 0.8s linear infinite;
}

@keyframes vsm-ant-spin {
	to { transform: rotate(360deg); }
}

/* --- Messaggio / errore ------------------------------------------------ */
.vsm-ant-msg {
	margin: 18px 0 0;
	padding: 14px 16px;
	background: #fff7f5;
	border: 1px solid #f2c7bd;
	border-radius: 8px;
	font-size: 0.98em;
	line-height: 1.45;
	color: #8a3a2c;
}

/* --- Risultato --------------------------------------------------------- */
.vsm-ant-out {
	margin: 18px 0 0;
}

.vsm-ant-out-head {
	margin: 0 0 12px;
	font-size: 1.08em;
	font-weight: 700;
	color: #1f7a4d;
}

.vsm-ant-lista {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	overflow: hidden;
}

.vsm-ant-voce {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 12px 16px;
	border-bottom: 1px solid #eef2f6;
}

.vsm-ant-voce:last-child {
	border-bottom: 0;
}

.vsm-ant-voce:nth-child(odd) {
	background: #fafbfc;
}

.vsm-ant-voce-nome {
	font-weight: 600;
	color: #263340;
}

.vsm-ant-voce-num {
	font-size: 0.92em;
	color: #5b6774;
	white-space: nowrap;
}

/* --- CTA / reindirizzamento -------------------------------------------- */
.vsm-ant-cta {
	margin: 4px 0 0;
	text-align: center;
}

.vsm-ant-cta-btn {
	display: inline-block;
	padding: 13px 26px;
	font-size: 1.05em;
	font-weight: 700;
	color: #fff;
	background: #1f7a4d;
	border-radius: 8px;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.vsm-ant-cta-btn:hover {
	background: #196340;
	color: #fff;
}

.vsm-ant-cta-nota {
	margin: 8px 0 0;
	font-size: 0.85em;
	color: #6b7280;
}

/* --- Responsive -------------------------------------------------------- */
@media (max-width: 480px) {
	.vsm-ant {
		padding: 18px;
	}
	.vsm-ant-row {
		flex-direction: column;
	}
	.vsm-ant-btn {
		width: 100%;
	}
	.vsm-ant-voce {
		flex-direction: column;
		gap: 2px;
	}
	.vsm-ant-voce-num {
		white-space: normal;
	}
}
