:root {
	--bi-test-primary: #173f73;
	--bi-test-primary-dark: #102d52;
	--bi-test-accent: #d8ad55;
	--bi-test-text: #172033;
	--bi-test-muted: #667085;
	--bi-test-border: #d8dee8;
	--bi-test-surface: #ffffff;
	--bi-test-background: #f4f7fb;
	--bi-test-danger: #b42318;
	--bi-test-radius: 18px;
	--bi-test-shadow: 0 20px 60px rgba(16, 45, 82, 0.10);
}

.bi-level-test {
	box-sizing: border-box;
	width: 100%;
	padding: 24px 0;
	color: var(--bi-test-text);
	font-family: inherit;
}

.bi-level-test *,
.bi-level-test *::before,
.bi-level-test *::after {
	box-sizing: border-box;
}

.bi-level-test [hidden] {
	display: none !important;
}

.bi-level-test__panel {
	width: min(100%, 820px);
	margin: 0 auto;
	padding: clamp(24px, 5vw, 52px);
	border: 1px solid rgba(23, 63, 115, 0.10);
	border-radius: var(--bi-test-radius);
	background: var(--bi-test-surface);
	box-shadow: var(--bi-test-shadow);
}

.bi-level-test__header {
	margin-bottom: 32px;
}

.bi-level-test__header h2,
.bi-level-test__result h3 {
	margin: 0 0 12px;
	color: var(--bi-test-primary-dark);
	font-size: clamp(30px, 5vw, 46px);
	line-height: 1.05;
}

.bi-level-test__header p,
.bi-level-test__result p {
	margin: 0;
	color: var(--bi-test-muted);
	font-size: 17px;
	line-height: 1.6;
}

.bi-level-test__eyebrow {
	margin: 0 0 10px !important;
	color: var(--bi-test-primary) !important;
	font-size: 13px !important;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bi-level-test__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.bi-level-test label > span:first-child {
	display: block;
	margin-bottom: 8px;
	font-weight: 700;
}

.bi-level-test input[type="text"],
.bi-level-test input[type="email"],
.bi-level-test input[type="tel"],
.bi-level-test input[type="number"],
.bi-level-test select {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 1px solid var(--bi-test-border);
	border-radius: 12px;
	background: #fff;
	color: var(--bi-test-text);
	font: inherit;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.bi-level-test input:focus,
.bi-level-test select:focus {
	outline: none;
	border-color: var(--bi-test-primary);
	box-shadow: 0 0 0 4px rgba(23, 63, 115, 0.12);
}

.bi-level-test [aria-invalid="true"] {
	border-color: var(--bi-test-danger) !important;
}

.bi-level-test__consent {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-top: 24px;
	color: var(--bi-test-muted);
	font-size: 14px;
	line-height: 1.5;
}

.bi-level-test__consent input {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	flex: 0 0 auto;
}

.bi-level-test__honeypot {
	position: absolute !important;
	left: -9999px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.bi-level-test__actions,
.bi-level-test__result-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	margin-top: 30px;
}

.bi-level-test__actions--end {
	justify-content: flex-end;
}

.bi-level-test__button {
	display: inline-flex;
	min-height: 50px;
	padding: 13px 22px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--bi-test-primary);
	border-radius: 999px;
	background: var(--bi-test-primary);
	color: #fff !important;
	font: inherit;
	font-weight: 800;
	line-height: 1;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform 160ms ease, background-color 160ms ease, opacity 160ms ease;
}

.bi-level-test__button:hover {
	background: var(--bi-test-primary-dark);
	transform: translateY(-1px);
}

.bi-level-test__button--secondary {
	border-color: var(--bi-test-border);
	background: #fff;
	color: var(--bi-test-primary) !important;
}

.bi-level-test__button--secondary:hover {
	background: var(--bi-test-background);
}

.bi-level-test__button:disabled {
	opacity: 0.55;
	cursor: wait;
	transform: none;
}

.bi-level-test__progress {
	margin: 0 0 28px;
}

.bi-level-test__progress-meta {
	display: flex;
	justify-content: space-between;
	margin-bottom: 8px;
	color: var(--bi-test-muted);
	font-size: 14px;
	font-weight: 700;
}

.bi-level-test__progress-track {
	height: 8px;
	overflow: hidden;
	border-radius: 999px;
	background: var(--bi-test-background);
}

.bi-level-test__progress-track span {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--bi-test-primary), var(--bi-test-accent));
	transition: width 220ms ease;
}

.bi-level-test__question {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.bi-level-test__question legend {
	width: 100%;
	margin: 0 0 24px;
	padding: 0;
	color: var(--bi-test-primary-dark);
	font-size: clamp(22px, 3vw, 30px);
	font-weight: 800;
	line-height: 1.25;
}

.bi-level-test__question-number {
	display: block;
	margin-bottom: 10px;
	color: var(--bi-test-accent);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.10em;
	text-transform: uppercase;
}

.bi-level-test__options {
	display: grid;
	gap: 12px;
}

.bi-level-test__option {
	display: flex;
	gap: 14px;
	align-items: center;
	min-height: 58px;
	padding: 14px 16px;
	border: 1px solid var(--bi-test-border);
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
	transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.bi-level-test__option:hover {
	border-color: var(--bi-test-primary);
	background: var(--bi-test-background);
	transform: translateY(-1px);
}

.bi-level-test__option:has(input:checked) {
	border-color: var(--bi-test-primary);
	background: rgba(23, 63, 115, 0.07);
	box-shadow: inset 0 0 0 1px var(--bi-test-primary);
}

.bi-level-test__option input {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	accent-color: var(--bi-test-primary);
}

.bi-level-test__option-key {
	display: inline-flex !important;
	width: 30px;
	height: 30px;
	margin: 0 !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--bi-test-background);
	color: var(--bi-test-primary);
	font-weight: 900 !important;
}

.bi-level-test__text-answer {
	font-size: 18px !important;
}

.bi-level-test__status {
	min-height: 24px;
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
}

.bi-level-test__status.is-error {
	color: var(--bi-test-danger);
}

.bi-level-test__status.is-info {
	color: var(--bi-test-primary);
}

.bi-level-test__result {
	padding: 30px;
	border-radius: 16px;
	background: var(--bi-test-background);
	text-align: center;
}

.bi-level-test__result h3 {
	font-size: clamp(30px, 5vw, 48px);
}

.bi-level-test__score {
	margin-bottom: 14px !important;
	color: var(--bi-test-primary) !important;
	font-size: 20px !important;
	font-weight: 900;
}

.bi-level-test__result-actions {
	justify-content: center;
	flex-wrap: wrap;
}

@media (max-width: 680px) {
	.bi-level-test {
		padding: 12px 0;
	}

	.bi-level-test__panel {
		padding: 24px 18px;
		border-radius: 14px;
	}

	.bi-level-test__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.bi-level-test__actions {
		align-items: stretch;
		flex-direction: column-reverse;
	}

	.bi-level-test__actions .bi-level-test__button,
	.bi-level-test__result-actions .bi-level-test__button {
		width: 100%;
	}

	.bi-level-test__option {
		align-items: flex-start;
	}

	.bi-level-test__result {
		padding: 24px 18px;
	}
}
