/* ═══════════════════════════════════════════════════════════════
   Лендинги услуг: /uslugi/{slug}

   Визуальная система сайта: тёплый серый фон, бордовый акцент,
   квадратные углы 2px, моноширинные метки. Ничего нового не
   изобретаем — страница должна читаться как часть сайта, а не
   как посадочная от другого подрядчика.

   Анимация повторяет механику остальных страниц: [data-reveal]
   получает .visible при попадании в зону видимости, задержка
   задаётся переменной --lp-delay прямо в разметке.
   ═══════════════════════════════════════════════════════════════ */

.lp {
	--lp-delay: 0ms;
}

.lp-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

/* ─── Общие элементы ─────────────────────────────────────────── */

.lp-label {
	font-family: 'JetBrains Mono', monospace;
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(91, 44, 44, .5);
	margin: 0 0 .8rem;
}

.lp-h2 {
	font-size: clamp(1.5rem, 3.4vw, 2.1rem);
	font-weight: 700;
	letter-spacing: -.025em;
	line-height: 1.15;
	margin: 0;
	text-wrap: balance;
}

.lp-h2 em,
.lp-title em {
	color: var(--accent);
	font-style: normal;
}

.lp-head {
	margin-bottom: 2rem;
}

/* ─── Первый экран ───────────────────────────────────────────── */

.lp-hero {
	padding: 4rem 0 3.5rem;
	border-bottom: 1px solid rgba(17, 24, 39, .07);
}

.lp-title {
	font-size: clamp(2.1rem, 6vw, 3.6rem);
	font-weight: 700;
	letter-spacing: -.035em;
	line-height: 1.04;
	margin: 0 0 1.1rem;
	text-wrap: balance;
}

.lp-lead {
	max-width: 62ch;
	font-size: 1.05rem;
	line-height: 1.6;
	color: var(--muted);
	margin: 0 0 2rem;
}

.lp-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .65rem;
}

.lp-btn {
	font-family: 'JetBrains Mono', monospace;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #fff;
	background: var(--accent);
	border: 0;
	border-radius: 2px;
	padding: 1.05rem 2rem;
	cursor: pointer;
	box-shadow: 0 10px 28px -14px rgba(91, 44, 44, .75);
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.lp-btn:hover {
	background: #3f1e1e;
	transform: translateY(-2px);
	box-shadow: 0 16px 34px -14px rgba(91, 44, 44, .85);
}

.lp-btn:active { transform: translateY(0); }

.lp-btn:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}

/* Снимает возражение до клика: человек знает, что будет дальше. */
.lp-btn-note {
	font-family: 'JetBrains Mono', monospace;
	font-size: .68rem;
	letter-spacing: .05em;
	color: rgba(91, 44, 44, .55);
}

/* ─── Цифры ──────────────────────────────────────────────────── */

.lp-stats {
	padding: 3rem 0 2.5rem;
}

.lp-stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: rgba(91, 44, 44, .14);
	border: 1px solid rgba(91, 44, 44, .14);
	border-radius: 2px;
	overflow: hidden;
}

.lp-stat {
	background: var(--bg);
	padding: 1.3rem 1.2rem 1.4rem;
}

.lp-stat-num {
	display: flex;
	align-items: baseline;
	gap: .35rem;
	font-family: 'JetBrains Mono', monospace;
	font-size: 1.85rem;
	font-weight: 600;
	line-height: 1;
	color: var(--accent);
	font-variant-numeric: tabular-nums;
}

.lp-stat-unit {
	font-size: .7rem;
	font-weight: 400;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(91, 44, 44, .55);
}

.lp-stat-cap {
	margin: .6rem 0 0;
	font-size: .84rem;
	line-height: 1.45;
	color: var(--muted);
}

.lp-stats-note {
	margin: .9rem 0 0;
	font-family: 'JetBrains Mono', monospace;
	font-size: .66rem;
	letter-spacing: .05em;
	color: rgba(91, 44, 44, .45);
}

/* ─── Признаки проблемы ──────────────────────────────────────── */

.lp-pains {
	padding: 3rem 0;
}

.lp-pain-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1px;
	background: rgba(91, 44, 44, .12);
	border: 1px solid rgba(91, 44, 44, .12);
	border-radius: 2px;
	overflow: hidden;
}

.lp-pain {
	display: flex;
	align-items: flex-start;
	gap: .85rem;
	background: var(--bg);
	padding: .95rem 1.2rem;
	line-height: 1.5;
	transition-delay: var(--lp-delay);
}

.lp-pain-mark {
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	margin-top: .55rem;
	background: var(--accent);
	border-radius: 1px;
}

/* ─── Состав работы ──────────────────────────────────────────── */

.lp-includes {
	padding: 3rem 0;
}

.lp-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

.lp-card {
	background: var(--bg);
	border: 1px solid rgba(17, 24, 39, .1);
	border-left: var(--border);
	border-radius: 2px;
	padding: 1.2rem 1.3rem 1.35rem;
	transition-delay: var(--lp-delay);
}

.lp-card-title {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: -.01em;
	margin: 0 0 .5rem;
}

.lp-card-text {
	margin: 0;
	font-size: .9rem;
	line-height: 1.55;
	color: var(--muted);
}

/* ─── Порядок работы ─────────────────────────────────────────── */

.lp-steps {
	padding: 3rem 0;
}

.lp-step-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.2rem;
}

.lp-step {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	gap: 1.1rem;
	align-items: start;
	transition-delay: var(--lp-delay);
}

.lp-step-num {
	font-family: 'JetBrains Mono', monospace;
	font-size: .78rem;
	font-weight: 600;
	color: var(--accent);
	background: var(--accent-pale);
	border: 1px solid rgba(91, 44, 44, .2);
	border-radius: 2px;
	padding: .5rem 0;
	text-align: center;
}

.lp-step-title {
	font-size: 1rem;
	font-weight: 700;
	margin: 0 0 .3rem;
}

.lp-step-text {
	margin: 0;
	font-size: .92rem;
	line-height: 1.55;
	color: var(--muted);
}

/* ─── Стоимость ──────────────────────────────────────────────── */

.lp-pricing {
	padding: 3rem 0;
}

.lp-plans {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

.lp-plan {
	background: var(--bg);
	border: 1px solid rgba(17, 24, 39, .12);
	border-radius: 2px;
	padding: 1.4rem 1.4rem 1.5rem;
	transition-delay: var(--lp-delay);
}

/* Средний тариф выделен: это осознанный якорь, а не украшение. */
.lp-plan--accent {
	border-color: var(--accent);
	border-left: var(--border);
	background: var(--accent-pale);
}

.lp-plan-name {
	font-family: 'JetBrains Mono', monospace;
	font-size: .68rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(91, 44, 44, .55);
	margin: 0 0 .7rem;
}

.lp-plan-price {
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -.02em;
	margin: 0 0 .6rem;
	color: var(--accent);
}

.lp-plan-what {
	margin: 0;
	font-size: .88rem;
	line-height: 1.5;
	color: var(--muted);
}

.lp-plans-note {
	margin: 1rem 0 0;
	font-size: .85rem;
	color: var(--muted);
}

/* ─── Вопросы ────────────────────────────────────────────────── */

.lp-faq {
	padding: 3rem 0 4rem;
}

.lp-faq-list {
	display: grid;
	gap: 1px;
	background: rgba(91, 44, 44, .12);
	border: 1px solid rgba(91, 44, 44, .12);
	border-radius: 2px;
	overflow: hidden;
}

.lp-faq-item {
	background: var(--bg);
	transition-delay: var(--lp-delay);
}

.lp-faq-q {
	list-style: none;
	cursor: pointer;
	padding: 1rem 1.3rem;
	font-weight: 600;
	line-height: 1.45;
	display: flex;
	align-items: flex-start;
	gap: .8rem;
}

.lp-faq-q::-webkit-details-marker { display: none; }

.lp-faq-q::before {
	content: '+';
	flex: 0 0 auto;
	font-family: 'JetBrains Mono', monospace;
	color: var(--accent);
	transition: transform .2s ease;
}

.lp-faq-item[open] .lp-faq-q::before {
	transform: rotate(45deg);
}

.lp-faq-q:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: -2px;
}

.lp-faq-a {
	padding: 0 1.3rem 1.15rem 2.9rem;
	font-size: .92rem;
	line-height: 1.6;
	color: var(--muted);
}

/* ─── Появление при прокрутке ────────────────────────────────── */

[data-reveal] {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s cubic-bezier(.22, 1, .36, 1),
	            transform .5s cubic-bezier(.22, 1, .36, 1);
}

[data-reveal].visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.lp-btn { transition: none; }
	.lp-btn:hover { transform: none; }
}

/* ─── Адаптив ────────────────────────────────────────────────── */

@media (max-width: 900px) {
	.lp-stats-grid { grid-template-columns: repeat(2, 1fr); }
	.lp-cards,
	.lp-plans { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
	.lp-inner { padding: 0 1.1rem; }

	/* Верхний паддинг — не эстетика, а расчёт: .site-header на мобильном
	   ~63px (шире, чем на десктопе — влезают лого, «на главную» и
	   бургер), а не ~59px как на десктопе, для которого 4rem (64px)
	   в .lp-hero (см. выше) более-менее хватало. 1.75rem (28px) с этим
	   не сходится вообще — заголовок услуги оказывался наполовину под
	   фиксированной шапкой. */
	.lp-hero { padding: 5.5rem 0 2.25rem; }
	.lp-title { font-size: clamp(1.9rem, 9vw, 2.4rem); line-height: 1.08; }
	.lp-lead { font-size: .95rem; margin-bottom: 1.4rem; }

	.lp-btn {
		width: 100%;
		text-align: center;
		padding: 1.1rem 1rem;
	}
	.lp-actions { align-items: stretch; }
	.lp-btn-note { text-align: center; }

	.lp-stats { padding: 2rem 0 1.75rem; }
	.lp-stats-grid { grid-template-columns: 1fr; }
	.lp-stat { padding: 1rem 1.1rem 1.1rem; }
	.lp-stat-num { font-size: 1.6rem; }

	.lp-pains,
	.lp-includes,
	.lp-steps,
	.lp-pricing { padding: 2rem 0; }

	.lp-faq { padding: 2rem 0 3rem; }

	.lp-head { margin-bottom: 1.4rem; }

	.lp-cards,
	.lp-plans { grid-template-columns: 1fr; }

	.lp-step { grid-template-columns: 38px minmax(0, 1fr); gap: .85rem; }

	.lp-faq-a { padding-left: 1.3rem; }

	/* На узком экране каскад задержек превращается в ожидание:
	   блоки должны появляться сразу, как только попали в кадр. */
	.lp-pain,
	.lp-card,
	.lp-step,
	.lp-plan,
	.lp-faq-item { transition-delay: 0ms; }
}
