.fa-product-quote-open {
	overflow: hidden;
}

.fa-product-quote-modal[hidden] {
	display: none;
}

.fa-product-quote-modal {
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: grid;
	place-items: center;
	padding: clamp(18px, 4vw, 48px);
	background: rgba(5, 8, 12, 0.78);
	backdrop-filter: blur(12px);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.fa-product-quote-modal.is-open {
	opacity: 1;
}

.fa-product-quote-dialog {
	position: relative;
	display: grid;
	grid-template-columns: minmax(280px, 0.82fr) minmax(390px, 1.18fr);
	width: min(980px, 100%);
	max-height: calc(100vh - clamp(36px, 8vw, 96px));
	overflow: auto;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 28px;
	background: #f7f8fa;
	box-shadow: 0 34px 100px rgba(0, 0, 0, 0.4);
	transform: translateY(16px) scale(0.985);
	transition: transform 0.2s ease;
}

.fa-product-quote-modal.is-open .fa-product-quote-dialog {
	transform: translateY(0) scale(1);
}

.fa-product-quote-close {
	position: absolute;
	z-index: 2;
	top: 18px;
	right: 18px;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid rgba(14, 19, 25, 0.12);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: #111820;
	font-size: 27px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
	transition: background 0.18s ease, transform 0.18s ease;
}

.fa-product-quote-close:hover,
.fa-product-quote-close:focus-visible {
	background: #fff;
	transform: rotate(3deg);
	outline: 2px solid #a03333;
	outline-offset: 2px;
}

.fa-product-quote-header {
	padding: clamp(38px, 5vw, 64px) clamp(28px, 4vw, 48px);
	border-radius: 27px 0 0 27px;
	background:
		radial-gradient(circle at 18% 8%, rgba(201, 210, 220, 0.17), transparent 42%),
		linear-gradient(150deg, #1c242d, #090d12 76%);
	color: #f6f8fa;
}

.fa-product-quote-kicker,
.fa-product-quote-selection-title {
	margin: 0 0 12px;
	color: #bdc5ce;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.fa-product-quote-header h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(34px, 4vw, 52px);
	line-height: 1.02;
	letter-spacing: -0.04em;
}

.fa-product-quote-header > p:not(.fa-product-quote-kicker) {
	margin: 20px 0 0;
	color: #b9c2cc;
	font-size: 15px;
	line-height: 1.7;
}

.fa-product-quote-selection {
	margin-top: clamp(34px, 6vw, 70px);
	padding: 22px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.055);
}

.fa-product-quote-selection dl,
.fa-product-quote-selection dd {
	margin: 0;
}

.fa-product-quote-selection dl {
	display: grid;
	gap: 13px;
}

.fa-product-quote-selection dl > div {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 14px;
	align-items: baseline;
}

.fa-product-quote-selection dt {
	color: #8995a2;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.fa-product-quote-selection dd {
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.45;
	word-break: break-word;
}

.fa-product-quote-form {
	padding: clamp(72px, 7vw, 88px) clamp(26px, 5vw, 58px) clamp(34px, 5vw, 58px);
	background: #f7f8fa;
	color: #131a22;
}

.fa-product-quote-form label {
	color: #27313b;
	font-size: 13px;
	font-weight: 700;
}

.fa-product-quote-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.fa-product-quote-form select,
.fa-product-quote-form textarea {
	min-height: 48px;
	border: 1px solid #d7dce2 !important;
	border-radius: 10px !important;
	background: #fff !important;
	box-shadow: none !important;
}

.fa-product-quote-form input[readonly] {
	background: #edf0f3 !important;
	color: #4a5661 !important;
	cursor: default;
}

.fa-product-quote-form input:focus,
.fa-product-quote-form select:focus,
.fa-product-quote-form textarea:focus {
	border-color: #707b86 !important;
	box-shadow: 0 0 0 3px rgba(112, 123, 134, 0.14) !important;
	outline: 0;
}

.fa-product-quote-form button[type="submit"],
.fa-product-quote-form input[type="submit"] {
	min-height: 48px;
	padding: 13px 24px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #a03333 !important;
	color: #fff !important;
	font-weight: 800 !important;
	letter-spacing: 0.02em;
	box-shadow: none !important;
}

@media (max-width: 780px) {
	.fa-product-quote-modal {
		align-items: end;
		padding: 12px;
	}

	.fa-product-quote-dialog {
		grid-template-columns: 1fr;
		max-height: calc(100vh - 24px);
		border-radius: 22px;
	}

	.fa-product-quote-header {
		padding: 38px 24px 28px;
		border-radius: 21px 21px 0 0;
	}

	.fa-product-quote-header h2 {
		font-size: 36px;
	}

	.fa-product-quote-selection {
		margin-top: 28px;
		padding: 18px;
	}

	.fa-product-quote-form {
		padding: 28px 22px 34px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fa-product-quote-modal,
	.fa-product-quote-dialog,
	.fa-product-quote-close {
		transition: none;
	}
}
