.simulator-page {
	--sim-primary: #1677a0;
	--sim-primary-dark: #0d5f83;
	--sim-accent: #f39800;
	--sim-pale: #edf8fc;
	--sim-text: #263b45;
	background: #f7fbfd;
	color: var(--sim-text);
	min-height: 70vh;
	padding-bottom: 80px;
}

.simulator-hero {
	background: linear-gradient(135deg, #e9f8fc 0%, #f8fcfd 52%, #fff6df 100%);
	margin-top: -60px;
	overflow: hidden;
	padding: 58px 20px 54px;
	position: relative;
	text-align: center;
}

.simulator-hero::before,
.simulator-hero::after {
	background: rgba(101, 185, 221, .13);
	border-radius: 50%;
	content: "";
	position: absolute;
}

.simulator-hero::before {
	height: 240px;
	left: -90px;
	top: -110px;
	width: 240px;
}

.simulator-hero::after {
	bottom: -120px;
	height: 270px;
	right: -80px;
	width: 270px;
}

.simulator-hero__inner {
	margin: auto;
	max-width: 760px;
	position: relative;
	z-index: 1;
}

.simulator-hero__eyebrow {
	background: var(--sim-accent);
	border-radius: 30px;
	color: #fff;
	display: inline-block;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: .08em;
	margin: 0 0 16px;
	padding: 7px 22px;
}

.simulator-hero h1 {
	color: var(--sim-primary-dark);
	font-size: clamp(3rem, 6vw, 4.6rem);
	line-height: 1.35;
	margin: 0 0 14px;
}

.simulator-hero p:last-child {
	font-size: 1.7rem;
	line-height: 1.8;
	margin: 0;
}

.simulator-wrap {
	margin: -2px auto 0;
	max-width: 780px;
	padding: 40px 20px 0;
}

.simulator-card {
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 12px 40px rgba(28, 96, 124, .12);
	min-height: 430px;
	padding: 34px 28px 38px;
}

.simulator-progress {
	margin: 0 auto 50px;
	max-width: 610px;
}

.simulator-progress__head {
	color: var(--sim-primary);
	display: flex;
	font-size: 1.4rem;
	font-weight: 700;
	justify-content: space-between;
	margin-bottom: 9px;
}

.simulator-progress__track {
	background: #dcecf2;
	border-radius: 10px;
	display: block;
	height: 9px;
	overflow: hidden;
}

.simulator-progress__track span {
	background: linear-gradient(90deg, #65b9dd, var(--sim-primary));
	border-radius: inherit;
	display: block;
	height: 100%;
	transition: width .35s ease;
	width: 20%;
}

.simulator-form fieldset {
	border: 0;
	margin: 0;
	padding: 0;
	text-align: center;
}

.simulator-step[hidden],
.simulator-contact[hidden] {
	display: none;
}

.simulator-step.is-active {
	animation: simulator-in .3s ease;
}

.simulator-step legend {
	display: block;
	float: none;
	font-size: clamp(2.2rem, 5vw, 3rem);
	font-weight: 700;
	line-height: 1.55;
	margin: 0 0 38px;
	padding: 0;
	width: 100%;
}

.simulator-options {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: auto;
	max-width: 590px;
}

.simulator-options--three {
	grid-template-columns: 1fr;
	max-width: 480px;
}

.simulator-option {
	appearance: none;
	background: #fff;
	border: 2px solid #c9e0e9;
	border-radius: 12px;
	box-shadow: 0 4px 0 #c9e0e9;
	color: var(--sim-primary-dark);
	cursor: pointer;
	font: inherit;
	font-size: 1.8rem;
	font-weight: 700;
	min-height: 68px;
	padding: 14px 20px;
	transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
}

.simulator-option:hover,
.simulator-option:focus-visible {
	background: var(--sim-pale);
	border-color: var(--sim-primary);
	box-shadow: 0 4px 0 var(--sim-primary);
	outline: 3px solid rgba(22, 119, 160, .16);
}

.simulator-option:active {
	box-shadow: 0 1px 0 var(--sim-primary);
	transform: translateY(3px);
}

.simulator-back,
.simulator-restart {
	background: transparent;
	border: 0;
	color: #5e747e;
	cursor: pointer;
	font: inherit;
	font-size: 1.4rem;
	margin-top: 30px;
	padding: 8px;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.simulator-back::before {
	content: "‹ ";
}

.simulator-contact {
	animation: simulator-in .35s ease;
	text-align: center;
}

.simulator-contact h2 {
	color: var(--sim-primary-dark);
	font-size: clamp(2.4rem, 5vw, 3.4rem);
	line-height: 1.5;
	margin: 0 0 18px;
}

.simulator-contact__lead {
	font-size: 1.5rem;
	line-height: 1.8;
	margin: 0 auto 32px;
	max-width: 620px;
}

.simulator-contact.form-box {
	font-size: 1.5rem;
	padding: 0;
}

.simulator-contact.form-box form {
	margin: 0 auto;
	max-width: 680px;
	text-align: left;
}

.simulator-contact.form-box form input:not([type="checkbox"]),
.simulator-contact.form-box form select {
	font-size: 16px;
	height: 46px;
	padding: 8px 10px;
	width: 100%;
}

.simulator-contact.form-box form textarea {
	font-size: 16px;
	height: 150px !important;
	padding: 10px;
}

.simulator-contact.form-box dd em {
	display: block;
	font-size: 1.25rem;
	line-height: 1.6;
	margin-top: 7px;
}

.simulator-contact.form-box .must,
.simulator-contact.form-box .notmust {
	display: inline-block;
	margin: 0 0 0 8px;
	vertical-align: middle;
}

.simulator-contact.form-box .must {
	border-radius: 4px;
	color: #fff;
	padding: 2px 5px;
}

.simulator-contact__consent {
	margin: 0 0 32px !important;
	text-align: left;
}

.simulator-contact__consent label {
	align-items: flex-start;
	line-height: 1.7;
}

.simulator-contact__consent input[type="checkbox"] {
	flex: 0 0 20px;
	margin-top: 3px;
}

.simulator-contact.form-box .submit {
	background: linear-gradient(90deg, #f39800, #ef7d00);
	border-radius: 50px;
	box-shadow: 0 6px 0 #c96500;
	font-size: 1.8rem;
	max-width: 430px;
	width: 100%;
}

.simulator-contact__back {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.simulator-contact .mfp_err {
	font-size: 1.5rem;
	text-align: left;
}

.simulator-assurance {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 20px;
}

.simulator-assurance > div {
	align-items: center;
	background: #fff;
	border-radius: 12px;
	display: flex;
	gap: 14px;
	padding: 18px 20px;
}

.simulator-assurance span {
	align-items: center;
	background: var(--sim-pale);
	border-radius: 50%;
	color: var(--sim-primary);
	display: flex;
	flex: 0 0 48px;
	font-size: 1.3rem;
	font-weight: 700;
	height: 48px;
	justify-content: center;
}

.simulator-assurance p {
	font-size: 1.3rem;
	line-height: 1.5;
	margin: 0;
}

.simulator-assurance strong {
	color: var(--sim-primary-dark);
	font-size: 1.5rem;
}

.simulator-seo-content {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 18px;
	color: #3f4a59;
	margin: 34px auto 0;
	max-width: 920px;
	padding: 30px 34px;
}

.simulator-seo-content h2 {
	color: var(--sim-primary-dark);
	font-size: clamp(2rem, 3vw, 2.6rem);
	line-height: 1.45;
	margin: 0 0 18px;
}

.simulator-seo-content p {
	font-size: 1.5rem;
	line-height: 1.9;
	margin: 0 0 12px;
}

.simulator-seo-content__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin-bottom: 0 !important;
	margin-top: 20px !important;
}

.simulator-seo-content__links a {
	color: var(--sim-primary-dark);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 4px;
}

@keyframes simulator-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (min-width: 768px) {
	.simulator-hero {
		margin-top: 140px;
		padding-bottom: 64px;
		padding-top: 72px;
	}

	.simulator-card {
		padding: 42px 50px 46px;
	}
}

@media (max-width: 600px) {
	.simulator-page {
		padding-bottom: 50px;
	}

	.simulator-hero {
		padding-bottom: 42px;
		padding-top: 44px;
	}

	.simulator-hero__eyebrow {
		margin-bottom: 4px;
		margin-top: 20px;
	}

	.simulator-hero p:last-child {
		font-size: 1.45rem;
	}

	.simulator-wrap {
		padding: 24px 14px 0;
	}

	.simulator-card {
		border-radius: 16px;
		min-height: 400px;
		padding: 26px 18px 32px;
	}

	.simulator-progress {
		margin-bottom: 38px;
	}

	.simulator-options {
		grid-template-columns: 1fr;
	}

	.simulator-option {
		min-height: 62px;
	}

	.simulator-assurance {
		grid-template-columns: 1fr;
	}

	.simulator-seo-content {
		border-radius: 14px;
		margin-top: 24px;
		padding: 24px 20px;
	}

	.simulator-seo-content p {
		font-size: 1.4rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.simulator-step.is-active,
	.simulator-contact {
		animation: none;
	}

	.simulator-progress__track span,
	.simulator-option {
		transition: none;
	}
}
