/* ==========================================================================
   КВИЗ (шаблон template-quiz.php) — оформление в дизайн-системе walfe.

   Опорные страницы: главная, /services/paid-traffic/, /quiz/ (блок .b37).
   Приняты те же правила, что и во всей теме:
     • шрифт Geologica, начертания 200/300/400;
     • размеры во vw — десктоп от базы 1920, мобилка от базы 390
       (0.0520833333vw = 1px на 1920, 0.2564102564vw = 1px на 390);
     • единственный брейкпоинт — max-width: 700px, как в base_66.css;
     • карточка #0C0C0C с рамкой #262626, поля-подчёркивания, чипы-пилюли,
       салатовая кнопка #d7ffb7 → #A8FF6E на ховере.
   ========================================================================== */

.quiz-page {
	--wq-surface:     #0C0C0C;          /* карточка, как .b37 .list */
	--wq-line:        #262626;          /* рамка карточки */
	--wq-ink:         #fafafa;          /* заголовки */
	--wq-text:        #bababa;          /* вопросы, подписи, чипы */
	--wq-dim:         #6a6a6a;          /* лид под заголовком */
	--wq-field-line:  #484848;          /* подчёркивание поля */
	--wq-chip-line:   rgba(255, 255, 255, 0.3);
	--wq-accent:      #d7ffb7;          /* кнопка */
	--wq-accent-hov:  #A8FF6E;
	--wq-gradient: linear-gradient(90deg,
		#a8ff6e 0%, #9fcced 27.12%, #be97f7 62.98%, #ffb166 95.67%);

	position: relative;
	padding: 10.4166666667vw 0 6.25vw;  /* отступ сверху — под фиксированную шапку */
	font-family: "Geologica", sans-serif;
	color: var(--wq-ink);
	overflow: hidden;
}

/* Подсветка за карточкой — тот же приём, что у .b37:after */
.quiz-page::after {
	content: '';
	position: absolute;
	z-index: 0;
	bottom: 5.4166666667vw;
	right: -16.875vw;
	width: 35.5208333333vw;
	height: 19.2708333333vw;
	border-radius: 50%;
	background: rgba(52, 48, 135, 0.5);
	filter: blur(10.4166666667vw);
	pointer-events: none;
}

.quiz-page *,
.quiz-page *::before,
.quiz-page *::after { box-sizing: border-box; }

/* ---------- карточка ---------- */

.quiz-page .quiz {
	position: relative;
	z-index: 1;
	width: 46.875vw;
	max-width: 54.6875vw;
	min-height: 26.0416666667vw;   /* чтобы шаги не «прыгали» по высоте */
	margin: 0 auto;
	padding: 3.125vw;
	background: var(--wq-surface);
	border: 0.0520833333vw solid var(--wq-line);
	border-radius: 0.5208333333vw;
	display: flex;
	flex-direction: column;
}

.quiz-page .quiz [hidden] { display: none !important; }

.quiz-page .quiz > .quiz__screen,
.quiz-page .quiz > .quiz__root { flex: 1 1 auto; display: flex; flex-direction: column; }

.quiz__screen { display: flex; flex-direction: column; flex: 1 1 auto; }

/* ---------- прогресс ---------- */

.quiz__progress { margin-bottom: 2.0833333333vw; }

/* Градиент лежит на дорожке; сегменты сверху закрашены в цвет линии
   и, становясь прозрачными, открывают его — заполнение без инлайн-стилей. */
.quiz__progress-track {
	display: flex;
	height: 0.2083333333vw;
	background: var(--wq-gradient);
	border-radius: 0.2083333333vw;
	overflow: hidden;
}

.quiz__progress-step {
	flex: 1 1 0;
	background: var(--wq-line);
	transition: background-color 0.45s cubic-bezier(.4, 0, .2, 1);
}

.quiz__progress-step.is-done { background: transparent; }

/* ---------- тело шага ---------- */

.quiz__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 1.5625vw;
	animation: quiz-in 0.32s ease both;
}

.quiz__body--center {
	justify-content: center;
	align-items: center;
	text-align: center;
	gap: 1.0416666667vw;
}

@keyframes quiz-in {
	from { opacity: 0; transform: translateY(0.5208333333vw); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Мелкая юридическая приписка под лидом интро («прихований текст») */
.quiz__disclaimer {
	margin: 0;
	max-width: 32.8125vw;
	font-family: "Geologica", sans-serif;
	font-weight: 200;
	font-size: 0.625vw;
	line-height: 140%;
	color: #4a4a4a;
}

.quiz__noscript {
	margin: 0;
	padding: 2.0833333333vw 0;
	font-family: "Geologica", sans-serif;
	font-weight: 300;
	font-size: 0.9375vw;
	line-height: 130%;
	text-align: center;
	color: var(--wq-text);
}

/* ---------- типографика ---------- */

/* Заголовок интро/«спасибо» — градиентная заливка текста, как .b37 h1 */
.quiz__title {
	margin: 0;
	font-family: "Geologica", sans-serif;
	font-weight: 300;
	font-size: 2.6041666667vw;
	line-height: 110%;
	letter-spacing: -0.04em;
	background: linear-gradient(180deg, #e6e5e6 0%, #b9b9ba 100%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.quiz__lead {
	margin: 0;
	max-width: 32.8125vw;
	font-family: "Geologica", sans-serif;
	font-weight: 400;
	font-size: 1.0416666667vw;
	line-height: 120%;
	color: var(--wq-dim);
}

.quiz__head {
	display: flex;
	flex-direction: column;
	gap: 0.5208333333vw;
}

/* Заголовок вопроса — как h2 внутри .b37 .list */
.quiz__q-title {
	margin: 0;
	font-family: "Geologica", sans-serif;
	font-weight: 400;
	font-size: 1.5625vw;
	line-height: 120%;
	letter-spacing: normal;
	color: var(--wq-ink);
}

.quiz__q-sub {
	margin: 0;
	font-family: "Geologica", sans-serif;
	font-weight: 300;
	font-size: 0.8333333333vw;
	line-height: 130%;
	letter-spacing: normal;
	color: var(--wq-text);
}

/* ---------- поля ввода ---------- */

.quiz__form {
	display: flex;
	flex-direction: column;
	gap: 1.0416666667vw;
}

.quiz__field {
	position: relative;
	display: flex;
	flex-direction: column;
}

.quiz__label {
	font-family: "Geologica", sans-serif;
	font-weight: 400;
	font-size: 0.8333333333vw;
	line-height: 130%;
	color: var(--wq-text);
}

.quiz__input {
	width: 100%;
	height: 3.125vw;
	padding: 0;
	font-family: "Geologica", sans-serif;
	font-weight: 300;
	font-size: 0.9375vw;
	line-height: 100%;
	letter-spacing: inherit;
	color: #fff;
	background: none;
	border: none;
	border-bottom: 0.0520833333vw solid var(--wq-field-line);
	border-radius: 0 !important;
	outline: none;
	transition: border-color 0.3s;
}

.quiz__input::placeholder { color: #757575; }

/* Белая линия, «набегающая» слева при фокусе и заполнении — приём из .b37 */
.quiz__field::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 0.0520833333vw;
	background: #fff;
	transition: 0.3s;
}

.quiz__field:focus-within::after { width: 100%; }
.quiz__field:has(.quiz__input:not(:placeholder-shown))::after { width: 100%; }

/* ---------- варианты ответа — чипы ---------- */

.quiz__options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5208333333vw;
}

.quiz__opt {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.3125vw 0.9375vw 0.3645833333vw;
	white-space: nowrap;
	background: none;
	border: 0.0520833333vw solid var(--wq-chip-line);
	border-radius: 2.6041666667vw;
	color: var(--wq-text);
	cursor: pointer;
	user-select: none;
	transition: 0.3s;
}

.quiz__opt-label {
	font-family: "Geologica", sans-serif;
	font-weight: 400;
	font-size: 0.8333333333vw;
	line-height: 130%;
	letter-spacing: normal;
}

@media (hover: hover) {
	.quiz__opt:hover { border-color: #fff; }
}

.quiz__opt.is-selected {
	border-color: #fff;
	background: #fff;
	color: #010101;
}

/* Реальные input'ы скрыты, но доступны с клавиатуры */
.quiz__opt-input {
	position: absolute;
	opacity: 0;
	width: 0.0520833333vw;
	height: 0.0520833333vw;
	margin: 0;
}

.quiz__opt-input:focus-visible + .quiz__opt-label {
	text-decoration: underline;
	text-underline-offset: 0.15625vw;
}

/* ---------- ошибки ---------- */

.quiz__opt.is-error { border-color: red; }
.quiz__input.is-error { border-bottom-color: red; }
.quiz__field:has(.quiz__input.is-error)::after { width: 100%; background: red; }

/* ---------- футер и кнопки ---------- */

.quiz__footer {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 0.8333333333vw;
	margin-top: 2.6041666667vw;
}

.quiz__footer--single { justify-content: stretch; }

.quiz__btn {
	font-family: "Geologica", sans-serif;
	border: none;
	cursor: pointer;
	transition: 0.3s;
	-webkit-tap-highlight-color: transparent;
}

/* Основная — салатовая пилюля, как .modal .btn и .b37 .list .btns .btn */
.quiz__btn--primary {
	flex: 1 1 auto;
	height: 3.125vw;
	padding: 0.5208333333vw 1.5625vw;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 400;
	font-size: 0.8333333333vw;
	line-height: 110%;
	text-transform: uppercase;
	text-align: center;
	color: #000;
	background: var(--wq-accent);
	border-radius: 3.125vw;
}

@media (hover: hover) {
	.quiz__btn--primary:hover { background: var(--wq-accent-hov); }
}

.quiz__btn--wide { width: 100%; }

/* «Назад» — круглая, обводкой, как чип */
.quiz__btn--back {
	flex: 0 0 auto;
	width: 3.125vw;
	height: 3.125vw;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wq-text);
	background: none;
	border: 0.0520833333vw solid var(--wq-chip-line);
	border-radius: 50%;
}

.quiz__btn--back svg {
	width: 1.1458333333vw;
	height: 1.1458333333vw;
}

@media (hover: hover) {
	.quiz__btn--back:hover { border-color: #fff; color: #fff; }
}

.quiz__btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 0.15625vw rgba(255, 255, 255, 0.25);
}

/* ---------- отправка и финальный экран ---------- */

.quiz__spinner {
	width: 2.6041666667vw;
	height: 2.6041666667vw;
	border: 0.15625vw solid var(--wq-line);
	border-top-color: var(--wq-accent-hov);
	border-radius: 50%;
	animation: quiz-spin 0.8s linear infinite;
}

@keyframes quiz-spin { to { transform: rotate(360deg); } }

.quiz__check {
	position: relative;
	width: 3.9583333333vw;
	height: 3.9583333333vw;
	border: 0.1041666667vw solid var(--wq-accent);
	border-radius: 50%;
	margin-bottom: 0.5208333333vw;
}

.quiz__check::after {
	content: '';
	position: absolute;
	left: 1.4583333333vw;
	top: 1.0416666667vw;
	width: 0.78125vw;
	height: 1.4583333333vw;
	border: solid var(--wq-accent);
	border-width: 0 0.2083333333vw 0.2083333333vw 0;
	transform: rotate(45deg);
	animation: quiz-check 0.35s ease 0.1s both;
}

@keyframes quiz-check {
	from { opacity: 0; transform: rotate(45deg) scale(.4); }
	to   { opacity: 1; transform: rotate(45deg) scale(1); }
}

/* ==========================================================================
   Мобильная версия — единственный брейкпоинт темы, база 390
   ========================================================================== */

@media (max-width: 700px) {

	.quiz-page {
		padding: 33.3333333333vw 0 20.5128205128vw;
	}

	.quiz-page::after {
		bottom: 18.9743589744vw;
		right: -36.4102564103vw;
		width: 88.2051282051vw;
		height: 47.9487179487vw;
		filter: blur(25.641025641vw);
	}

	.quiz-page .quiz {
		width: 89.7435897436vw;
		max-width: none;
		min-height: 89.7435897436vw;
		padding: 7.6923076923vw;
		border-width: 0.2564102564vw;
		border-radius: 2.5641025641vw;
	}

	.quiz__progress { margin-bottom: 7.6923076923vw; }

	.quiz__progress-track {
		height: 1.0256410256vw;
		border-radius: 1.0256410256vw;
	}

	.quiz__disclaimer {
		max-width: none;
		font-size: 2.5641025641vw;
	}

	.quiz__noscript {
		padding: 10.2564102564vw 0;
		font-size: 3.5897435897vw;
	}

	.quiz__body { gap: 6.4102564103vw; }
	.quiz__body--center { gap: 5.1282051282vw; }

	.quiz__title { font-size: 8.2051282051vw; }

	.quiz__lead {
		max-width: none;
		font-size: 3.5897435897vw;
	}

	.quiz__head { gap: 2.5641025641vw; }

	.quiz__q-title { font-size: 6.1538461538vw; }

	.quiz__q-sub { font-size: 3.5897435897vw; }

	.quiz__form { gap: 5.1282051282vw; }

	.quiz__label { font-size: 3.5897435897vw; }

	.quiz__input {
		height: 13.8461538462vw;
		font-size: 3.5897435897vw;
		border-bottom-width: 0.2564102564vw;
	}

	.quiz__field::after { height: 0.2564102564vw; }

	.quiz__options { gap: 1.2820512821vw; }

	.quiz__opt {
		padding: 1.5384615385vw 3.0769230769vw 1.7948717949vw;
		border-width: 0.2564102564vw;
		border-radius: 12.8205128205vw;
		white-space: normal;
	}

	.quiz__opt-label { font-size: 3.5897435897vw; }

	.quiz__footer {
		gap: 3.0769230769vw;
		margin-top: 7.6923076923vw;
	}

	.quiz__btn--primary {
		height: 12.8205128205vw;
		font-size: 3.5897435897vw;
		border-radius: 12.8205128205vw;
	}

	.quiz__btn--back {
		width: 12.8205128205vw;
		height: 12.8205128205vw;
		border-width: 0.2564102564vw;
	}

	.quiz__btn--back svg {
		width: 5.1282051282vw;
		height: 5.1282051282vw;
	}

	.quiz__spinner {
		width: 12.8205128205vw;
		height: 12.8205128205vw;
		border-width: 0.7692307692vw;
	}

	.quiz__check {
		width: 17.9487179487vw;
		height: 17.9487179487vw;
		border-width: 0.5128205128vw;
		margin-bottom: 2.5641025641vw;
	}

	.quiz__check::after {
		left: 6.6666666667vw;
		top: 4.6153846154vw;
		width: 3.5897435897vw;
		height: 6.6666666667vw;
		border-width: 0 1.0256410256vw 1.0256410256vw 0;
	}
}

/* ---------- уважение к prefers-reduced-motion ---------- */

@media (prefers-reduced-motion: reduce) {
	.quiz__body,
	.quiz__progress-step,
	.quiz__check::after { animation: none !important; transition: none !important; }
	.quiz__spinner { animation-duration: 1.4s; }
}
