/* ============================================================
   Выкуп Авто 26 — стили секций (перенос из Astro-компонентов).
   ============================================================ */

.section { padding-top: 110px; padding-bottom: 40px; }
.section-title br { display: inline; }

/* ---------- Типы авто ---------- */
.types { margin-top: 50px; }
.type { position: relative; background: var(--surface); border: 1px solid var(--line); padding: 32px 30px 36px; overflow: hidden; transition: border-color .25s, background .25s; isolation: isolate; }
.type-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .14; z-index: -1; transition: opacity .4s ease, transform .6s cubic-bezier(.2,.7,.2,1); -webkit-mask-image: linear-gradient(180deg,#000,transparent 92%); mask-image: linear-gradient(180deg,#000,transparent 92%); }
.type:hover { border-color: rgba(var(--red-rgb),.55); background: var(--surface-2); }
.type:hover .type-bg { opacity: .4; }
.type-n { font-size: 13px; font-weight: 800; color: var(--red); letter-spacing: .1em; }
.type h3 { font-size: 26px; font-weight: 800; font-style: italic; text-transform: uppercase; margin-top: 18px; line-height: 1.02; }
.type p { color: var(--text-dim); font-size: 15px; margin-top: 12px; line-height: 1.5; }
.type-arrow { position: absolute; right: 26px; bottom: 30px; color: var(--red); font-size: 22px; font-weight: 800; }

/* ---------- SpeedBand ---------- */
.speedband { position: relative; margin-top: 110px; min-height: 58vh; display: flex; align-items: center; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.speedband-media { position: absolute; inset: 0; z-index: 0; }
.speedband-zoom { position: absolute; inset: 0; }
.speedband-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.speedband-veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,#0A0A0B 6%,rgba(10,10,11,.72) 42%,rgba(10,10,11,.25) 100%), linear-gradient(0deg,rgba(10,10,11,.85),transparent 55%); }
.speedband .fx-scan { z-index: 2; }
.speedband-inner { position: relative; z-index: 3; width: 100%; }
.speedband-title { font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(34px,5vw,72px); line-height: .92; letter-spacing: -.02em; margin-top: 16px; max-width: 760px; }
.speedband-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
@media (max-width:560px){ .speedband { min-height: 70vh; } }

/* ---------- Как работаем (шаги) ---------- */
.steps { margin-top: 50px; gap: 0; border-top: 1px solid var(--line-2); }
.step { position: relative; padding: 34px 28px; }
.step:first-child { padding-left: 0; }
.step:last-child { padding-right: 0; }
.step + .step { border-left: 1px solid var(--line-2); }
.step-bar { position: absolute; top: 0; left: 0; width: 46px; height: 3px; background: var(--red); }
.step-n { font-size: 64px; font-weight: 900; font-style: italic; color: #1E1E22; line-height: .9; }
.step h3 { font-size: 21px; font-weight: 800; text-transform: uppercase; margin-top: 12px; }
.step p { color: var(--text-muted); font-size: 15px; margin-top: 10px; line-height: 1.5; }
@media (max-width:980px){ .steps { border-top: none; } .step { padding: 28px 0; border-top: 1px solid var(--line-2); } .step + .step { border-left: none; } .step:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line-2); } }
@media (max-width:640px){ .step, .step:nth-child(even) { padding: 24px 0; border-left: none; } }

/* ---------- Почему выбирают ---------- */
.why { position: relative; margin-top: 110px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.why-grid { display: grid; grid-template-columns: 1fr 1fr; max-width: var(--maxw); }
.why-text { padding: 90px 60px 90px 0; }
.why-list { margin-top: 40px; display: flex; flex-direction: column; }
.why-item { display: flex; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.why-item.no-border { border-bottom: none; }
.why-n { color: var(--red); font-weight: 900; font-style: italic; font-size: 20px; flex-shrink: 0; }
.why-item h4 { font-size: 18px; font-weight: 700; }
.why-item p { color: var(--text-muted); font-size: 14px; margin-top: 4px; line-height: 1.5; }
.why-photo { position: relative; overflow: hidden; min-height: 540px; border-left: 1px solid var(--line); }
.why-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.why-photo-veil { position: absolute; inset: 0; background: linear-gradient(90deg,#0A0A0B,transparent 40%); }
.why-photo-glow { position: absolute; left: 0; bottom: 0; width: 60%; height: 60%; background: radial-gradient(circle at 30% 80%,rgba(var(--red-rgb),.25),transparent 70%); animation: vaGlow 6s ease-in-out infinite; }
@media (max-width:860px){ .why-grid { grid-template-columns: 1fr; } .why-text { padding: 64px 0; } .why-photo { min-height: 320px; border-left: none; border-top: 1px solid var(--line); } .why-photo-veil { background: linear-gradient(0deg,#0A0A0B,transparent 60%); } }

/* ---------- Оценка (чек-лист критериев) ---------- */
.ci { padding-top: 96px; padding-bottom: 40px; }
.ci-lead { font-size: 18px; color: var(--text-muted); margin-top: 14px; max-width: 640px; line-height: 1.55; }
.ci-checklist { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 48px; }
.ci-card { position: relative; background: var(--surface); border: 1px solid var(--line); padding: 30px 28px 32px; overflow: hidden; transition: border-color .25s, background .25s, transform .25s; }
.ci-card::before { content: ""; position: absolute; left: 0; top: 0; width: 40px; height: 3px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.ci-card:hover { border-color: rgba(var(--red-rgb),.5); background: var(--surface-2); transform: translateY(-4px); }
.ci-card:hover::before { transform: scaleX(1); }
.ci-card-n { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid var(--red); color: var(--red); font-weight: 900; font-style: italic; font-size: 17px; }
.ci-card-title { font-size: 20px; font-weight: 800; font-style: italic; text-transform: uppercase; margin-top: 18px; line-height: 1.05; }
.ci-card-text { color: var(--text-muted); font-size: 15px; line-height: 1.55; margin-top: 12px; }
@media (max-width:900px){ .ci-checklist { grid-template-columns: repeat(2, 1fr); } }
@media (max-width:560px){ .ci-checklist { grid-template-columns: 1fr; gap: 12px; } .ci { padding-top: 72px; } }

/* ---------- Карта ---------- */
.map-section { padding-top: 110px; padding-bottom: 40px; }
.map-lead { font-size: 18px; color: var(--text-muted); margin-top: 16px; max-width: 620px; line-height: 1.5; }
.map-box { position: relative; margin-top: 44px; border: 1px solid var(--line); overflow: hidden; background: radial-gradient(700px 360px at 22% 35%,rgba(var(--red-rgb),.10),transparent 70%), var(--surface); }
.map-canvas { width: 100%; height: 520px; }
.map-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.map-chip { display: inline-flex; align-items: center; gap: 8px; background: var(--surface); border: 1px solid var(--line); color: var(--text-dim); font-size: 14px; font-weight: 600; padding: 9px 16px; border-radius: 2px; transition: border-color .2s, color .2s, transform .2s; }
.map-chip:hover { border-color: rgba(var(--red-rgb),.55); color: #fff; transform: translateY(-2px); }
.map-chip--hq { border-color: rgba(var(--red-rgb),.5); color: #fff; }
.map-chip-reg { font-size: 11px; color: var(--text-faint); text-transform: uppercase; letter-spacing: .08em; }
@media (max-width:560px){ .map-canvas { height: 400px; } }
/* Leaflet тёмная тема */
.leaflet-container { background: #0A0A0B; font-family: 'Rubik', system-ui, sans-serif; cursor: grab; }
.leaflet-container:active { cursor: grabbing; }
.leaflet-interactive { cursor: pointer; }
.map-dot { filter: drop-shadow(0 0 5px rgba(255,30,20,.8)); }
.map-dot--hq { filter: drop-shadow(0 0 10px rgba(255,30,20,.95)); }
.leaflet-tooltip.map-tt { background: #121215; color: #fff; border: 1px solid rgba(255,255,255,.16); font-weight: 700; font-size: 13px; padding: 5px 10px; border-radius: 3px; box-shadow: 0 8px 20px rgba(0,0,0,.55); }
.leaflet-tooltip.map-tt.hq { color: #FF1E14; }
.leaflet-tooltip-top.map-tt::before { border-top-color: rgba(255,255,255,.16); }
.leaflet-control-attribution { background: rgba(10,10,11,.7) !important; color: #6C6E72 !important; font-size: 10px; }
.leaflet-control-attribution a { color: #9B9DA1 !important; }

/* ---------- Витрина авто + карточка ---------- */
.teaser-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.teaser-grid { margin-top: 50px; }
.car { display: block; background: var(--surface); border: 1px solid var(--line); overflow: hidden; transition: border-color .25s, transform .25s; }
.car:hover { border-color: rgba(var(--red-rgb),.5); transform: translateY(-4px); }
.car-media { position: relative; height: 230px; overflow: hidden; }
.car-media img { width: 100%; height: 100%; object-fit: cover; }
.car-veil { position: absolute; inset: 0; background: linear-gradient(0deg,rgba(10,10,11,.5),transparent 55%); }
.car-badge { position: absolute; top: 14px; left: 14px; z-index: 2; background: var(--red); color: #fff; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; padding: 6px 12px; }
.car-body { padding: 22px 24px 26px; }
.car-body h3 { font-size: 21px; font-weight: 800; text-transform: uppercase; line-height: 1; }
.car-specs { color: var(--text-muted); font-size: 14px; margin-top: 8px; }
.car-foot { display: flex; align-items: flex-end; justify-content: space-between; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.car-price-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--text-faint); }
.car-price { font-size: 24px; font-weight: 900; font-style: italic; color: var(--red); margin-top: 2px; white-space: nowrap; }
.car-city { font-size: 13px; color: var(--text-muted); }

/* ---------- Отзывы + карточка ---------- */
.rev-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.rev-rating { display: flex; align-items: center; gap: 16px; }
.rev-score { font-size: 46px; font-weight: 900; font-style: italic; color: var(--red); line-height: 1; }
.stars { display: flex; gap: 3px; }
.stars span { color: var(--red); font-size: 15px; }
.rev-count { color: var(--text-muted); font-size: 13px; margin-top: 4px; }
.rev-grid { margin-top: 50px; }
.rev-more { text-align: center; margin-top: 40px; }
.review { background: var(--surface); border: 1px solid var(--line); padding: 30px 30px 32px; display: flex; flex-direction: column; transition: border-color .25s; }
.review:hover { border-color: rgba(var(--red-rgb),.45); }
.review-text { color: var(--text-dim); font-size: 15px; line-height: 1.6; margin-top: 16px; flex: 1; }
.review-foot { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.review-name { font-weight: 700; font-size: 16px; }
.review-city { color: var(--text-faint); font-size: 13px; margin-top: 2px; }
.review-car { text-align: right; font-size: 12px; color: var(--red); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
/* статистика на странице отзывов */
.rev-stats { display: flex; flex-wrap: wrap; align-items: center; margin-top: 40px; padding: 30px 0; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.rs { padding: 0 24px; text-align: center; }
.rs + .rs { border-left: 1px solid var(--line-2); }
.rs-score { display: flex; align-items: center; gap: 18px; padding-left: 0; padding-right: 40px; text-align: left; }
.rs-num { font-size: 52px; font-weight: 900; font-style: italic; line-height: 1; color: #fff; }
.rs-score .rs-num { font-size: 60px; }
.rs-cap { font-size: 13px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .1em; margin-top: 8px; }
.rs-lbl { color: var(--text-muted); font-size: 13px; margin-top: 6px; }
@media (max-width:640px){ .rs, .rs-score { padding: 14px 16px; border-left: none !important; } .rev-stats { gap: 8px; } }

/* ---------- Сравнение ---------- */
.cmp-grid { margin-top: 54px; }
.cmp-col { position: relative; background: var(--surface); border: 1px solid var(--line); padding: 34px 30px; }
.cmp-col.is-best { background: #161013; border-color: var(--red); }
.cmp-badge { position: absolute; top: -12px; left: 30px; background: var(--red); color: #fff; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; padding: 6px 14px; }
.cmp-col h3 { font-size: 23px; font-weight: 800; font-style: italic; text-transform: uppercase; line-height: 1; }
.cmp-col.is-best h3 { color: #fff; }
.cmp-sub { color: var(--text-faint); font-size: 13px; margin-top: 8px; text-transform: uppercase; letter-spacing: .1em; }
.cmp-list { margin-top: 20px; }
.cmp-item { display: flex; align-items: flex-start; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.07); }
.cmp-item span:last-child { font-size: 15px; line-height: 1.4; color: var(--text-muted); }
.cmp-col.is-best .cmp-item span:last-child { color: #fff; }
.cmp-ico { flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; margin-top: 1px; background: rgba(255,255,255,.08); color: var(--text-faint); }
.cmp-col.is-best .cmp-ico { background: var(--red); color: #fff; }

/* ---------- FAQ ---------- */
.faq-list { margin-top: 40px; border-top: 1px solid var(--line-2); }
.faq-list details { border-bottom: 1px solid var(--line-2); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 4px; }
.faq-q { font-size: clamp(18px,2vw,23px); font-weight: 700; color: var(--text-dim); transition: color .2s; }
.faq-list details[open] .faq-q { color: #fff; }
.faq-ico { flex-shrink: 0; color: var(--red); font-size: 28px; font-weight: 300; line-height: 1; transition: transform .3s ease; }
.faq-list details[open] .faq-ico { transform: rotate(45deg); }
.faq-a { color: var(--text-muted); font-size: 16px; line-height: 1.6; padding: 0 4px 28px; max-width: 840px; }

/* ---------- Финальный CTA + баннер ---------- */
.final-cta-wrap { margin-top: 110px; }
.final-cta { position: relative; overflow: hidden; background: var(--red); padding: 72px 60px; display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.final-cta-glow { position: absolute; right: -40px; top: -60px; width: 360px; height: 360px; border-radius: 50%; background: rgba(255,255,255,.08); pointer-events: none; }
.final-cta-text { position: relative; z-index: 1; }
.final-cta-text h2 { font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(30px,3.6vw,50px); line-height: .95; color: #fff; letter-spacing: -.01em; }
.final-cta-text p { color: rgba(255,255,255,.85); font-size: 18px; margin-top: 16px; font-weight: 500; }
.final-cta-actions { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 14px; flex-shrink: 0; }
.final-cta-phone { text-align: center; color: #fff; font-weight: 800; font-size: 24px; font-style: italic; }
@media (max-width:560px){ .final-cta { padding: 48px 28px; } }
.cta { position: relative; overflow: hidden; background: var(--red); padding: 64px 60px; margin-top: 90px; display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.cta-glow { position: absolute; right: -40px; top: -60px; width: 340px; height: 340px; border-radius: 50%; background: rgba(255,255,255,.08); pointer-events: none; }
.cta h2 { position: relative; font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(28px,3.4vw,46px); line-height: .95; color: #fff; }
.cta .btn { position: relative; }
@media (max-width:560px){ .cta { padding: 44px 28px; } }

/* ---------- Заголовок страницы ---------- */
.page-head { position: relative; padding-top: 64px; overflow: hidden; }
.page-head-inner { position: relative; }
.head-glow { position: absolute; right: -160px; top: -40px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle,rgba(var(--red-rgb),.14),transparent 68%); pointer-events: none; }
.page-lead { font-size: 19px; color: var(--text-dim); margin-top: 22px; max-width: 580px; line-height: 1.5; }
/* Фильтры-табы (Выкупленные авто) */
.filters { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.filter { font-family: inherit; font-weight: 700; font-size: 14px; color: var(--text-dim); background: var(--surface); border: 1px solid var(--line-2); padding: 11px 22px; border-radius: 2px; cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.filter:hover { border-color: rgba(var(--red-rgb), .55); color: #fff; }
.filter.is-active { background: var(--red); border-color: var(--red); color: #fff; }
/* Витрина выкупленных + нижний CTA */
.cars-wrap { padding-top: 54px; padding-bottom: 40px; }
.inv-cta { margin-top: 64px; text-align: center; background: var(--surface); border: 1px solid var(--line); padding: 56px 30px; }
.inv-cta h2 { font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(26px, 3vw, 40px); line-height: 1; }
.inv-cta p { color: var(--text-muted); font-size: 17px; margin: 14px auto 26px; max-width: 480px; line-height: 1.5; }
@media (max-width: 560px) { .inv-cta { padding: 40px 22px; } .cars-wrap { padding-top: 36px; } }

/* ---------- Гарантии ---------- */
.guarantees { padding-top: 48px; }
.guar { background: var(--surface); border: 1px solid var(--line); padding: 34px 30px 38px; transition: border-color .25s, background .25s; }
.guar:hover { border-color: rgba(var(--red-rgb),.5); background: var(--surface-2); }
.guar-head { display: flex; align-items: center; gap: 14px; }
.guar-n { width: 44px; height: 44px; flex-shrink: 0; border: 1px solid var(--red); color: var(--red); display: flex; align-items: center; justify-content: center; font-weight: 900; font-style: italic; font-size: 18px; }
.guar h3 { font-size: 22px; font-weight: 800; font-style: italic; text-transform: uppercase; line-height: 1; }
.guar p { color: var(--text-muted); font-size: 15px; margin-top: 18px; line-height: 1.55; }
.evaluate { padding-top: 100px; }
.eval-list { margin-top: 30px; border-top: 1px solid var(--line); }
.eval-row { display: flex; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.eval-row:last-child { border-bottom: none; }
.eval-n { font-size: 40px; font-weight: 900; font-style: italic; color: var(--red); line-height: .9; min-width: 58px; }
.eval-row h4 { font-size: 20px; font-weight: 800; text-transform: uppercase; }
.eval-row p { color: var(--text-muted); font-size: 15px; margin-top: 8px; line-height: 1.5; max-width: 560px; }

/* ---------- Контакты ---------- */
.contacts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; padding-top: 50px; }
.c-row { padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.09); }
.c-row--last { border-bottom: none; }
.c-lbl { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: var(--text-faint); }
.c-phone { display: block; font-size: 34px; font-weight: 900; font-style: italic; color: #fff; margin-top: 8px; }
.c-value { display: block; font-size: 20px; font-weight: 600; color: #fff; margin-top: 8px; }
.c-note { color: var(--text-muted); font-size: 14px; margin-top: 6px; }
.c-msgs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }
.c-msg { display: inline-flex; align-items: center; font-size: 15px; font-weight: 700; color: #fff; padding: 11px 18px; border-radius: 4px; transition: transform .2s, filter .2s; }
.c-msg:hover { transform: translateY(-2px); filter: brightness(1.08); }
.c-msg--wa { background: #25D366; }
.c-msg--viber { background: #7360F2; }
.c-msg--max { background: linear-gradient(45deg, #22C1E4, #7A3FF2 55%, #C02BD3); }
.c-msg--max img { border-radius: 5px; }
.c-addr + .c-addr { margin-top: 6px; }
.map-wrap { margin-top: 70px; }
.cmap { position: relative; border: 1px solid var(--line-2); overflow: hidden; }
.cmap iframe { display: block; width: 100%; height: 420px; border: 0; filter: grayscale(.25); }
.map-card { position: absolute; left: 24px; bottom: 24px; max-width: 320px; pointer-events: none; background: var(--bg); border: 1px solid rgba(255,255,255,.12); padding: 18px 24px; }
.map-card-lbl { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--red); }
.map-card-addr { font-size: 18px; font-weight: 700; color: #fff; margin-top: 6px; }
@media (max-width:860px){ .contacts-grid { grid-template-columns: 1fr; gap: 40px; } }

/* ---------- Оценка (ocenka) ---------- */
.calc { position: relative; padding: 60px 0 96px; overflow: hidden; border-bottom: 1px solid var(--line); }
.calc-glow { position: absolute; right: -180px; top: 20px; width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle,rgba(var(--red-rgb),.16),transparent 68%); pointer-events: none; animation: vaGlow 6s ease-in-out infinite; }
.calc-grid { position: relative; display: grid; grid-template-columns: 1fr 1.05fr; gap: 64px; align-items: start; }
.calc-left { padding-top: 14px; }
.calc-title { font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(40px,5vw,76px); line-height: .88; letter-spacing: -.02em; margin-top: 18px; }
.calc-lead { font-size: 19px; color: var(--text-dim); margin-top: 24px; max-width: 440px; line-height: 1.5; }
.calc-benefits { margin-top: 34px; display: flex; flex-direction: column; gap: 16px; }
.calc-benefit { display: flex; align-items: center; gap: 14px; font-size: 17px; font-weight: 600; }
.calc-check { width: 26px; height: 26px; flex-shrink: 0; background: var(--red); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; }
.calc-call { margin-top: 38px; padding-top: 30px; border-top: 1px solid var(--line-2); }
.calc-call-lbl { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: var(--text-faint); }
.calc-phone { display: block; font-size: 32px; font-weight: 900; font-style: italic; color: #fff; margin-top: 10px; }
.calc-wa { display: inline-block; margin-top: 10px; font-size: 15px; color: var(--red); font-weight: 600; }
@media (max-width:900px){ .calc-grid { grid-template-columns: 1fr; gap: 40px; } }

/* ---------- Форма оценки ---------- */
.vform { padding: 40px 40px 44px; position: relative; }
.vform-title { font-weight: 800; font-style: italic; text-transform: uppercase; font-size: 26px; line-height: 1; }
.vform-sub { color: var(--text-muted); font-size: 14px; margin-top: 8px; }
.vform-form { margin-top: 26px; display: flex; flex-direction: column; gap: 18px; }
.vform-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.vform-textarea { resize: vertical; line-height: 1.5; }
.vform-pay { display: flex; gap: 10px; }
.vform-pay button { flex: 1; background: var(--input-bg); border: 1px solid rgba(255,255,255,.12); color: var(--text-muted); font-weight: 700; font-size: 14px; padding: 13px; border-radius: 2px; cursor: pointer; font-family: inherit; transition: all .15s; }
.vform-pay button.is-active { background: var(--red); border-color: var(--red); color: #fff; }
.vform-consent-row { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--text-muted); line-height: 1.4; }
.vform-consent-row a { color: var(--red); }
.vform-submit { margin-top: 6px; width: 100%; padding: 18px; font-size: 17px; }
.vform-success { text-align: center; padding: 40px 10px; }
.vform-success .vform-check { width: 74px; height: 74px; margin: 0 auto; background: var(--red); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 38px; color: #fff; font-weight: 800; }
.vform-success h2 { font-weight: 900; font-style: italic; text-transform: uppercase; font-size: 32px; margin-top: 24px; line-height: 1; }
.vform-success p { color: var(--text-dim); font-size: 17px; margin-top: 14px; line-height: 1.5; max-width: 340px; margin-inline: auto; }
.vform-success p b { color: #fff; }
.vform-success .vform-phone { display: inline-block; margin-top: 26px; color: #fff; font-weight: 800; font-style: italic; font-size: 22px; }
@media (max-width:480px){ .vform { padding: 28px 22px 32px; } }

/* ---------- Страницы услуг ---------- */
.svc-hero { position: relative; padding: 56px 0 90px; overflow: hidden; border-bottom: 1px solid var(--line); }
.svc-media { position: absolute; inset: 0; z-index: 0; }
.svc-media > div { position: absolute; inset: 0; }
.svc-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.svc-veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,#0A0A0B 10%,rgba(10,10,11,.82) 46%,rgba(10,10,11,.5) 100%), linear-gradient(0deg,rgba(10,10,11,.7),transparent 60%); }
.svc-hero .fx-scan { z-index: 2; }
.svc-glow { position: absolute; right: -180px; top: 0; width: 600px; height: 600px; border-radius: 50%; z-index: 2; background: radial-gradient(circle,rgba(var(--red-rgb),.16),transparent 68%); pointer-events: none; animation: vaGlow 6s ease-in-out infinite; }
.svc-grid { position: relative; z-index: 3; display: grid; grid-template-columns: 1fr 1.05fr; gap: 64px; align-items: start; }
.svc-offer { padding-top: 10px; }
.svc-h1 { font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(34px,4.4vw,60px); line-height: .95; letter-spacing: -.02em; margin-top: 16px; }
.svc-lead { font-size: 19px; color: var(--text-dim); margin-top: 22px; max-width: 460px; line-height: 1.5; }
.svc-benefits { margin-top: 30px; display: flex; flex-direction: column; gap: 14px; }
.svc-benefit { display: flex; align-items: center; gap: 14px; font-size: 16px; font-weight: 600; }
.svc-check { width: 26px; height: 26px; flex-shrink: 0; background: var(--red); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; }
.svc-call { margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--line-2); }
.svc-phone { display: block; font-size: 30px; font-weight: 900; font-style: italic; color: #fff; }
.svc-wa { display: inline-block; margin-top: 8px; font-size: 15px; color: var(--red); font-weight: 600; }
.seo-title { max-width: 900px; }
.seo-body { margin-top: 26px; max-width: 820px; }
.seo-body p { color: var(--text-muted); font-size: 16px; line-height: 1.7; }
.seo-body p + p { margin-top: 18px; }
@media (max-width:900px){ .svc-grid { grid-template-columns: 1fr; gap: 40px; } }

/* ---------- Городские страницы ---------- */
.city-hero { position: relative; padding: 56px 0 90px; overflow: hidden; border-bottom: 1px solid var(--line); }
.city-hero-media { position: absolute; inset: 0; z-index: 0; }
.city-hero-media > div { position: absolute; inset: 0; }
.city-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.city-hero-veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,#0A0A0B 10%,rgba(10,10,11,.82) 46%,rgba(10,10,11,.5) 100%), linear-gradient(0deg,rgba(10,10,11,.7),transparent 60%); }
.city-hero .fx-scan { z-index: 2; }
.city-hero-glow { position: absolute; right: -180px; top: 0; width: 600px; height: 600px; border-radius: 50%; z-index: 2; background: radial-gradient(circle,rgba(var(--red-rgb),.16),transparent 68%); pointer-events: none; animation: vaGlow 6s ease-in-out infinite; }
.city-hero-grid { position: relative; z-index: 3; display: grid; grid-template-columns: 1fr 1.05fr; gap: 64px; align-items: start; }
.city-offer { padding-top: 10px; }
.city-h1 { font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(34px,4.4vw,60px); line-height: .95; letter-spacing: -.02em; margin-top: 16px; }
.city-lead { font-size: 19px; color: var(--text-dim); margin-top: 22px; max-width: 460px; line-height: 1.5; }
.city-benefits { margin-top: 30px; display: flex; flex-direction: column; gap: 14px; }
.city-benefit { display: flex; align-items: center; gap: 14px; font-size: 16px; font-weight: 600; }
.city-check { width: 26px; height: 26px; flex-shrink: 0; background: var(--red); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; }
.city-call { margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--line-2); }
.city-phone { display: block; font-size: 30px; font-weight: 900; font-style: italic; color: #fff; }
.city-wa { display: inline-block; margin-top: 8px; font-size: 15px; color: var(--red); font-weight: 600; }
.geo-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; margin-top: 40px; border-top: 1px solid var(--line); }
.geo-item { display: flex; gap: 18px; padding: 26px 30px 26px 0; border-bottom: 1px solid var(--line); }
.geo-item:nth-child(even) { padding-left: 30px; border-left: 1px solid var(--line); }
.geo-n { font-size: 28px; font-weight: 900; font-style: italic; color: var(--red); line-height: 1; flex-shrink: 0; }
.geo-item p { color: var(--text-dim); font-size: 16px; line-height: 1.45; }
.links-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.link-card { display: flex; flex-direction: column; gap: 8px; background: var(--surface); border: 1px solid var(--line); padding: 24px 22px; transition: border-color .25s, transform .25s; }
.link-card:hover { border-color: rgba(var(--red-rgb),.5); transform: translateY(-4px); }
.link-card--accent { background: #161013; border-color: rgba(var(--red-rgb),.5); }
.link-card-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--text-faint); }
.link-card-title { font-size: 16px; font-weight: 700; line-height: 1.3; }
/* Хлебные крошки */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13px; color: var(--text-faint); margin-bottom: 14px; }
.crumbs a { color: var(--text-muted); transition: color .2s; }
.crumbs a:hover { color: var(--red); }
/* Блок доверия на городских страницах */
.city-trust { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.city-trust-inner { display: flex; flex-wrap: wrap; }
.ct-item { flex: 1; min-width: 150px; display: flex; flex-direction: column; gap: 5px; padding: 26px 20px; text-align: center; }
.ct-item + .ct-item { border-left: 1px solid var(--line); }
.ct-n { font-size: 30px; font-weight: 900; font-style: italic; color: var(--red); line-height: 1; }
.ct-t { font-size: 13px; color: var(--text-muted); line-height: 1.35; }
@media (max-width: 640px) {
  .ct-item { flex: 1 1 50%; min-width: 0; padding: 18px 12px; }
  .ct-item:nth-child(odd) { border-left: none; }
  .ct-item:nth-child(3), .ct-item:nth-child(4) { border-top: 1px solid var(--line); }
}
@media (max-width:900px){ .city-hero-grid { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width:980px){ .links-row { grid-template-columns: repeat(2,1fr); } }
@media (max-width:640px){ .geo-grid { grid-template-columns: 1fr; } .geo-item, .geo-item:nth-child(even) { padding: 22px 0; border-left: none; } .links-row { grid-template-columns: 1fr; } }

/* ---------- Мобайл: компактнее вертикальные отступы между секциями ---------- */
@media (max-width: 640px) {
  .section { padding-top: 56px; padding-bottom: 24px; }
  .ci { padding-top: 56px; padding-bottom: 24px; }
  .map-section { padding-top: 56px; padding-bottom: 24px; }
  .speedband { margin-top: 56px; }
  .why { margin-top: 56px; }
  .evaluate { padding-top: 56px; }
  .guarantees { padding-top: 32px; }
  .calc { padding: 44px 0 64px; }
  .final-cta-wrap { margin-top: 56px; }
  .cta { margin-top: 48px; }
  .map-wrap { margin-top: 44px; }
  .site-footer { margin-top: 56px; padding-top: 44px; }
}

/* ---------- Юридический текст ---------- */
.legal { max-width: 820px; }
.legal p { color: var(--text-muted); font-size: 16px; line-height: 1.7; margin-bottom: 16px; }
.legal h2 { font-size: 22px; font-weight: 800; font-style: italic; text-transform: uppercase; margin: 30px 0 10px; }
.legal a { color: var(--red); }
