/* ==========================================================================
   estimator.css — Landing page stimatore potenziale di ricavo
   Mobile-first. Riusa le custom properties del tema (con fallback hardcoded
   allo stesso valore, cosi il plugin resta autonomo se il tema cambia).
   ========================================================================== */

.lipe-landing {
	font-family: var(--font-body, 'DM Sans', 'Segoe UI', sans-serif);
	color: var(--color-dark, #1A1A1A);
}

.lipe-landing .container {
	max-width: var(--max-width, 1200px);
	margin: 0 auto;
	padding: 0 1rem;
}

/* ==========================================================================
   HERO
   ========================================================================== */

.lipe-hero {
	background: var(--color-secondary, #1B4F5C);
	color: #fff;
	padding: 2.5rem 0 3rem;
	text-align: center;
}

.lipe-hero__title {
	font-family: var(--font-display, 'DM Serif Display', Georgia, serif);
	font-size: clamp(1.75rem, 6vw, var(--font-size-3xl, 2.5rem));
	line-height: 1.15;
	margin: 0 0 1rem;
	color: #fff;
}

.lipe-hero__subtitle {
	font-size: var(--font-size-base, 1rem);
	line-height: 1.6;
	max-width: 560px;
	margin: 0 auto 1.5rem;
	color: rgba(255, 255, 255, 0.85);
}

.lipe-hero__cta {
	display: inline-block;
}

.lipe-hero__note {
	font-size: var(--font-size-xs, 0.75rem);
	color: rgba(255, 255, 255, 0.6);
	max-width: 480px;
	margin: 1.25rem auto 0;
	line-height: 1.5;
}

/* ==========================================================================
   TRUST
   ========================================================================== */

.lipe-trust {
	background: var(--color-cream, #FDF8F3);
	padding: 2.5rem 0;
	text-align: center;
}

.lipe-trust__title {
	font-family: var(--font-display, 'DM Serif Display', Georgia, serif);
	font-size: var(--font-size-xl, 1.5rem);
	margin: 0 0 0.75rem;
}

.lipe-trust__text {
	max-width: 640px;
	margin: 0 auto;
	line-height: 1.65;
	color: var(--color-gray-700, #4A4A4A);
}

/* ==========================================================================
   FORM WRAP
   ========================================================================== */

.lipe-form-wrap {
	background: var(--color-white, #fff);
	padding: 2.5rem 0;
	scroll-margin-top: 90px;
}

.lipe-form-wrap__inner {
	max-width: 560px;
}

.lipe-error {
	background: #fdecea;
	color: #b3261e;
	border: 1px solid #f5c6c3;
	border-radius: var(--border-radius, 0px);
	padding: 0.75rem 1rem;
	font-size: var(--font-size-sm, 0.875rem);
	margin-bottom: 1rem;
}

/* ==========================================================================
   STEP INDICATOR
   ========================================================================== */

.lipe-steps {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.lipe-steps__dot {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-gray-200, #E5E5E5);
	color: var(--color-gray-700, #4A4A4A);
	font-size: var(--font-size-sm, 0.875rem);
	font-weight: 700;
}

.lipe-steps__dot.is-active {
	background: var(--color-primary, #3f556e);
	color: #fff;
}

/* ==========================================================================
   HONEYPOT (nascosto ma presente nel DOM/tab order escluso)
   ========================================================================== */

.lipe-honeypot {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ==========================================================================
   STEP / CAMPI
   ========================================================================== */

.lipe-step {
	border: none;
	margin: 0;
	padding: 0;
}

.lipe-step[hidden] {
	display: none !important;
}

.lipe-step__title {
	font-family: var(--font-display, 'DM Serif Display', Georgia, serif);
	font-size: var(--font-size-lg, 1.125rem);
	margin: 0 0 1rem;
	padding: 0;
}

.lipe-step__intro {
	font-size: var(--font-size-sm, 0.875rem);
	color: var(--color-gray-700, #4A4A4A);
	margin: 0 0 1rem;
}

.lipe-field {
	margin-bottom: 1.1rem;
}

.lipe-field label,
.lipe-field__label {
	display: block;
	font-size: var(--font-size-sm, 0.875rem);
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.lipe-field input[type="text"],
.lipe-field input[type="email"],
.lipe-field input[type="tel"],
.lipe-field input[type="number"],
.lipe-field select,
.lipe-field textarea {
	width: 100%;
	padding: 0.65rem 0.75rem;
	border: 1.5px solid var(--color-gray-200, #E5E5E5);
	border-radius: var(--border-radius, 0px);
	font-family: inherit;
	font-size: var(--font-size-base, 1rem);
	background: #fff;
	color: var(--color-dark, #1A1A1A);
}

.lipe-field input:focus,
.lipe-field select:focus,
.lipe-field textarea:focus {
	outline: 2px solid var(--color-primary, #3f556e);
	outline-offset: 1px;
}

.lipe-field-row {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.lipe-field-row .lipe-field {
	flex: 1 1 120px;
}

/* Tile (radio) */
.lipe-tile-group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.lipe-tile {
	position: relative;
}

.lipe-tile input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
}

.lipe-tile span {
	display: inline-block;
	padding: 0.5rem 0.9rem;
	border: 1.5px solid var(--color-gray-200, #E5E5E5);
	border-radius: 100px;
	font-size: var(--font-size-sm, 0.875rem);
	font-weight: 500;
	color: var(--color-gray-700, #4A4A4A);
	transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

.lipe-tile input:checked + span {
	background: var(--color-primary, #3f556e);
	border-color: var(--color-primary, #3f556e);
	color: #fff;
}

.lipe-tile input:focus-visible + span {
	outline: 2px solid var(--color-primary, #3f556e);
	outline-offset: 2px;
}

/* Checkbox group */
.lipe-checkbox-group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
}

.lipe-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: var(--font-size-sm, 0.875rem);
	font-weight: 400;
	cursor: pointer;
}

.lipe-checkbox--sm {
	font-size: var(--font-size-xs, 0.75rem);
}

.lipe-checkbox-group--months {
	gap: 0.4rem 0.7rem;
}

.lipe-field--consent .lipe-checkbox {
	align-items: flex-start;
	font-weight: 400;
}

.lipe-field--consent input {
	margin-top: 3px;
}

/* Navigazione step */
.lipe-nav {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.lipe-nav .lipe-next,
.lipe-nav .lipe-submit-btn {
	margin-left: auto;
}

/* ==========================================================================
   THANK YOU
   ========================================================================== */

.lipe-thankyou {
	text-align: center;
	padding: 2rem 0;
}

.lipe-thankyou__icon {
	color: var(--color-success, #2D8B4E);
	margin-bottom: 1rem;
}

.lipe-thankyou__heading {
	font-family: var(--font-display, 'DM Serif Display', Georgia, serif);
	font-size: var(--font-size-2xl, 2rem);
	margin: 0 0 0.75rem;
}

.lipe-thankyou__text {
	font-size: var(--font-size-base, 1rem);
	line-height: 1.6;
	color: var(--color-gray-700, #4A4A4A);
	max-width: 480px;
	margin: 0 auto 1.5rem;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (min-width: 768px) {
	.lipe-hero {
		padding: 3.5rem 0 4rem;
	}

	.lipe-form-wrap__inner {
		margin: 0 auto;
	}
}
