.sapra-prev-wrapper {
	--sapra-primary: #000;
	--sapra-primary-dark: #000;
	--sapra-bg: #ffffff;
	--sapra-border: #000;
	--sapra-text: #000;
	--sapra-muted: #000;
	--sapra-error: #c0392b;
	--sapra-success: #3f7d4f;

	max-width: 40vw;
	margin: 0;
	font-family: inherit;
	color: var(--sapra-text);
	background: var(--sapra-bg);
	border: 1px solid var(--sapra-border);
	border-radius: 0;
	padding: 40px;
	box-sizing: border-box;
}

@media screen and (max-width: 1440px) {
	.sapra-prev-wrapper {
		max-width: 60vw;
	}
}

@media screen and (max-width: 600px) {
	.wrapper-richiesta-preventivo{
		margin: 5vh auto 0 auto;
	}
	.sapra-prev-wrapper {
		max-width: 90vw;
	}
}

button:hover{
	border-color: #000 !important;
}

.sapra-prev-wrapper * { box-sizing: border-box; }

/* Progress bar */
.sapra-prev-progress { margin-bottom: 32px; }
.sapra-prev-progress-bar {
	width: 100%;
	height: 4px;
	background: #E6E6E6;
	border-radius: 2px;
	overflow: hidden;
}
.sapra-prev-progress-fill {
	display: block;
	height: 100%;
	width: 12.5%;
	background: #000;
	transition: width .35s ease;
}
.sapra-prev-progress-label {
	margin-top: 8px;
	font-size: 13px;
	color: var(--sapra-muted);
	letter-spacing: .02em;
}

/* Steps */
.sapra-prev-step { display: none; animation: sapraFadeIn .3s ease; }
.sapra-prev-step.active { display: block; }

@keyframes sapraFadeIn {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: translateY(0); }
}

.sapra-prev-step h3 {
	font-size: 21px;
	margin: 0 0 6px;
	font-weight: 400;
	color: var(--sapra-text);
	font-family: 'Oswald', sans-serif;
	text-transform: uppercase;
}

.sapra-prev-hint {
	font-size: 13px;
	color: var(--sapra-muted);
	margin: 0 0 18px;
}

/* Options (radio/checkbox cards) */
.sapra-prev-options {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 18px;
	font-family: 'Roboto Condensed', sans-serif;
}
.sapra-prev-options-checkbox { grid-template-columns: 1fr 1fr; }

@media (max-width: 480px) {
	.sapra-prev-options { grid-template-columns: 1fr; }
}

.sapra-prev-option {
	position: relative;
	display: flex;
	align-items: center;
	padding: 14px 16px;
	border: 1.5px solid var(--sapra-border);
	border-radius: 0;
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
	font-size: 15px;
}
.sapra-prev-option:hover { border-color: #000; }
.sapra-prev-option input { position: absolute; opacity: 0; }
.sapra-prev-option input:checked ~ .sapra-prev-option-title { color: #fff; }
.sapra-prev-option:has(input:checked) {
	
	background: #000;
	color: #fff;
}

/* Fields */
.sapra-prev-field { margin-top: 18px; }
.sapra-prev-field label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--sapra-text);
}
.sapra-prev-field input[type="text"],
.sapra-prev-field input[type="email"],
.sapra-prev-field input[type="tel"],
.sapra-prev-field input[type="number"],
.sapra-prev-field textarea {
	width: 100%;
	padding: 11px 13px;
	border: 1.5px solid var(--sapra-border);
	border-radius: 0;
	font-size: 15px;
	font-family: 'Roboto Condensed', sans-serif;
	color: var(--sapra-text);
}
.sapra-prev-field input:focus,
.sapra-prev-field textarea:focus {
	outline: none;
	border-color: var(--sapra-primary);
}
.sapra-prev-field textarea { resize: vertical; }

.sapra-prev-checkbox-field label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: 400;
	font-size: 14px;
	cursor: pointer;
}
.sapra-prev-checkbox-field input { margin-top: 3px; }
.sapra-prev-checkbox-field a { color: var(--sapra-primary-dark); }

.sapra-prev-conditional { display: none; }
.sapra-prev-conditional.visible { display: block; }

.sapra-prev-honeypot { position: absolute !important; left: -9999px !important; }

/* Messages */
.sapra-prev-message { margin-top: 18px; padding: 14px 16px; border-radius: 0; font-size: 14px; }
.sapra-prev-message-error { background: #fbeceb; color: var(--sapra-error); border: 1px solid #f0c9c5; }
.sapra-prev-message-success { background: #eef6ef; color: var(--sapra-success); border: 1px solid #c9e3cd; text-align: center; padding: 32px 20px; }
.sapra-prev-message-success h3 { color: var(--sapra-success); margin: 0 0 6px; }
.sapra-prev-message-success p { margin: 0; }

/* Navigation */
.sapra-prev-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 32px;
	gap: 12px;
}
.sapra-prev-btn {
	padding: 12px 26px;
	border-radius: 0;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	border: 1.5px solid transparent;
	transition: opacity .2s ease, transform .1s ease;
	font-family: 'denseregular';
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 4px;
}
.sapra-prev-btn:active { transform: scale(.98); }
.sapra-prev-btn-prev {
	background: transparent;
	border-color: var(--sapra-border);
	color: var(--sapra-muted);
}
.sapra-prev-btn-prev:hover { border-color: var(--sapra-muted); }
.sapra-prev-btn-next,
.sapra-prev-btn-submit {
	background: var(--sapra-primary);
	color: #fff;
	margin-left: auto;
}
.sapra-prev-btn-next:hover,
.sapra-prev-btn-submit:hover { background: var(--sapra-primary-dark); }
.sapra-prev-btn:disabled { opacity: .55; cursor: not-allowed; }

.sapra-prev-field.sapra-prev-invalid input,
.sapra-prev-field.sapra-prev-invalid textarea { border-color: var(--sapra-error); }

.sapra-prev-success{
    text-align:center;
    padding:40px 20px;
}

.sapra-prev-success svg{
    margin-bottom:20px;
}

.sapra-prev-success h3{
    margin:0 0 15px;
    font-size:28px;
    color:#2e7d32;
}

.sapra-prev-success p{
    max-width:600px;
    margin:0 auto;
    font-size:16px;
    line-height:1.7;
}