/* Первый экран и блоки страниц. */

/* ─── Первый экран ─────────────────────────────────────────────────────── */
.vk-hero { position: relative; overflow: hidden; padding: clamp(36px, 5vw, 72px) 0 clamp(40px, 5vw, 80px); color: #fff; background: linear-gradient(135deg, var(--vk-deep) 0%, var(--vk-deep-3) 60%, #2b64a0 100%); }
.vk-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 80% at 85% 20%, rgba(255, 216, 0, 0.22), transparent 60%), radial-gradient(40% 60% at 10% 90%, rgba(121, 149, 17, 0.28), transparent 60%); pointer-events: none; }
.vk-hero__bg { position: absolute; inset: 0; }
.vk-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.vk-hero.has-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(82, 112, 0, 0.82) 0%, rgba(96, 130, 6, 0.58) 50%, rgba(121, 149, 17, 0.22) 100%); }
.vk-hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, 420px); gap: clamp(24px, 4vw, 56px); align-items: center; }
.vk-hero__kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; padding: 6px 14px 6px 10px; border-radius: var(--vk-radius-pill); background: rgba(255, 255, 255, 0.12); font-size: var(--vk-fs-sm); font-weight: 500; }
.vk-hero__kicker .vk-icon { color: var(--vk-sun); }
.vk-hero__title { margin-bottom: 0.4em; color: #fff; font-size: var(--vk-fs-1); text-wrap: balance; }
.vk-hero__sub { max-width: 620px; margin-bottom: 1.2em; font-size: clamp(1.02rem, 0.95rem + 0.4vw, 1.2rem); color: rgba(255, 255, 255, 0.86); }
.vk-hero__usp { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0 0 1.6em; padding: 0; list-style: none; }
.vk-hero__usp li { position: relative; padding-left: 26px; font-weight: 500; }
.vk-hero__usp li::before { content: ''; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--vk-sun) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2743' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.vk-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.vk-hero__phone { font-weight: 800; font-size: 1.35rem; color: #fff; }
.vk-hero__phone:hover { color: var(--vk-sun); }
.vk-hero__card { padding: 26px 26px 22px; background: #fff; color: var(--vk-text); border-radius: var(--vk-radius); box-shadow: var(--vk-shadow-lg); }
.vk-hero__price { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--vk-line); }
.vk-hero__price-num { display: block; font-weight: 800; font-size: 1.8rem; color: var(--vk-brand); line-height: 1.1; }
.vk-hero__price-note { display: block; margin-top: 4px; font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-hero--page { padding-top: 22px; }

/* ─── Факты доверия ────────────────────────────────────────────────────── */
.vk-facts { position: relative; z-index: 3; margin-top: -28px; }
.vk-facts__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; overflow: hidden; border-radius: var(--vk-radius); background: var(--vk-line); box-shadow: var(--vk-shadow); }
.vk-fact { padding: 20px 22px; background: #fff; }
.vk-fact__num { font-weight: 800; font-size: 1.7rem; line-height: 1.1; color: var(--vk-deep); }
.vk-fact__num::first-letter { color: var(--vk-brand); }
.vk-fact__text { margin-top: 4px; font-size: var(--vk-fs-sm); color: var(--vk-muted); }

/* ─── Услуги ───────────────────────────────────────────────────────────── */
.vk-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--vk-gap); }
.vk-services__group { display: flex; flex-direction: column; padding: 26px 24px 20px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); overflow: hidden; border-top: 6px solid var(--vk-deep); }
.vk-services__group--septiki { border-top-color: var(--vk-brand); }
.vk-services__group--drenazh { border-top-color: #2b8cd6; }
.vk-services__group--kolodtsy { border-top-color: var(--vk-sun); }
.vk-services__photo { position: relative; margin: -26px -24px 0; aspect-ratio: 16 / 9; overflow: hidden; }
.vk-services__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vk-services__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 255, 255, 0) 55%, #fff 100%); }
.vk-services__photo + .vk-services__head { margin-top: -30px; position: relative; }
.vk-services__photo + .vk-services__head .vk-icon { padding: 8px; border-radius: 14px; background: #fff; box-shadow: var(--vk-shadow); width: 48px; height: 48px; }
.vk-services__head { margin-bottom: 14px; }
.vk-services__head .vk-icon { margin-bottom: 10px; color: var(--vk-deep); }
.vk-services__group--septiki .vk-services__head .vk-icon { color: var(--vk-brand); }
.vk-services__group--drenazh .vk-services__head .vk-icon { color: #2b8cd6; }
.vk-services__group--kolodtsy .vk-services__head .vk-icon { color: var(--vk-sun-dark); }
.vk-services__head h3 { margin-bottom: 4px; }
.vk-services__head p { margin: 0; font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-services__list { list-style: none; margin: 0; padding: 0; }
.vk-services__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 18px; }
.vk-services__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; gap: 2px 12px; padding: 12px 10px; margin-inline: -10px; border-radius: var(--vk-radius-sm); border-bottom: 1px solid var(--vk-line); color: var(--vk-ink); transition: background var(--vk-t); }
.vk-services__list li:last-child .vk-services__item { border-bottom: 0; }
.vk-services__item:hover, .vk-services__item.is-current { background: var(--vk-mist); color: var(--vk-deep); }
.vk-services__name { grid-column: 1; grid-row: 1; font-weight: 700; }
.vk-services__text { grid-column: 1; grid-row: 2; font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-services__price { grid-column: 2; grid-row: 1 / span 2; align-self: center; white-space: nowrap; font-weight: 800; font-size: 0.92rem; color: var(--vk-brand); }

/* ─── Схемы ────────────────────────────────────────────────────────────── */
.vk-schemes { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--vk-gap); }
.vk-scheme { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); transition: transform var(--vk-t), box-shadow var(--vk-t); }
.vk-scheme:hover { transform: translateY(-3px); box-shadow: var(--vk-shadow-lg); }
.vk-scheme__img { aspect-ratio: 4 / 3; background: var(--vk-mist); }
.vk-scheme__img img { width: 100%; height: 100%; object-fit: contain; }
.vk-scheme__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.vk-scheme__name { font-weight: 800; font-size: 1.5rem; color: var(--vk-deep); line-height: 1; }
.vk-scheme__for { font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-scheme__price { font-weight: 800; color: var(--vk-brand); }
.vk-scheme .vk-btn { margin-top: auto; align-self: flex-start; }

/* ─── Этапы ────────────────────────────────────────────────────────────── */
.vk-steps { counter-reset: step; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--vk-gap); margin: 0; padding: 0; list-style: none; }
.vk-step { position: relative; display: flex; gap: 14px; padding: 22px 20px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-step__num { flex: 0 0 44px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--vk-brand); color: #fff; font-weight: 800; font-size: 1.15rem; }
.vk-step__title { margin-bottom: 4px; font-weight: 700; color: var(--vk-ink); }
.vk-step p { margin: 0; font-size: 0.95rem; color: var(--vk-muted); }
.vk-steps--long { grid-template-columns: 1fr; gap: 14px; }
.vk-steps--long .vk-step { gap: 22px; padding: 24px 28px; }
.vk-steps--long .vk-step__title { font-size: 1.15rem; margin-bottom: 8px; }
.vk-steps--long .vk-step p { font-size: 1rem; line-height: 1.6; max-width: 90ch; }

/* ─── Галерея ──────────────────────────────────────────────────────────── */
.vk-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.vk-gallery__item { margin: 0; overflow: hidden; border-radius: var(--vk-radius); background: var(--vk-mist); aspect-ratio: 4 / 3; }
.vk-gallery__item a, .vk-gallery__item img { display: block; width: 100%; height: 100%; }
.vk-gallery__item img { object-fit: cover; transition: transform 0.5s var(--vk-ease); }
.vk-gallery__item:hover img { transform: scale(1.04); }
.vk-gallery__item:first-child { grid-column: span 2; grid-row: span 2; }

/* ─── Почему мы ────────────────────────────────────────────────────────── */

/* ─── Работы ───────────────────────────────────────────────────────────── */
.vk-works { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--vk-gap); }
.vk-work { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); color: var(--vk-text); transition: transform var(--vk-t), box-shadow var(--vk-t); }
.vk-work:hover { transform: translateY(-3px); box-shadow: var(--vk-shadow-lg); color: var(--vk-text); }
.vk-work__img { aspect-ratio: 16 / 10; background: var(--vk-mist); }
.vk-work__img img { width: 100%; height: 100%; object-fit: cover; }
.vk-work__body { padding: 16px 18px 18px; }
.vk-work__title { margin-bottom: 6px; font-weight: 700; color: var(--vk-ink); }
.vk-work__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-work__price { margin-top: 8px; font-weight: 800; color: var(--vk-brand); }
.vk-spec { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 12px 0 0; }
.vk-spec dt { font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-spec dd { margin: 0; font-weight: 700; }

/* ─── Отзывы ───────────────────────────────────────────────────────────── */
.vk-reviews__top { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-bottom: 24px; }
.vk-reviews__stat { font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-review { position: relative; border-top: 4px solid var(--vk-brand); }
.vk-review__quote { position: absolute; right: 18px; top: 6px; font-family: Georgia, serif; font-size: 4rem; line-height: 1; color: var(--vk-brand-light); pointer-events: none; }
.vk-reviews__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-top: 24px; }
.vk-reviews__ask { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 12px 18px; border-radius: var(--vk-radius); background: var(--vk-brand-light); }
.vk-reviews__ask b { color: var(--vk-deep); }
.vk-reviews__ask span { font-size: 0.9rem; color: var(--vk-text); }
.vk-review { display: flex; flex-direction: column; height: 100%; padding: 22px 22px 18px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-review__head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.vk-review__avatar { flex: 0 0 44px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--vk-deep); color: #fff; font-weight: 800; }
.vk-review__name { font-weight: 700; color: var(--vk-ink); }
.vk-review__meta { font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-review__head .vk-stars { margin-left: auto; }
.vk-review__service { display: inline-block; align-self: flex-start; margin-bottom: 10px; padding: 3px 10px; border-radius: var(--vk-radius-pill); background: var(--vk-mist); font-size: 0.8rem; font-weight: 700; color: var(--vk-deep); }
.vk-review__text { font-size: 0.97rem; }
.vk-review__text p:last-child { margin-bottom: 0; }
.vk-review__reply { margin-top: 12px; padding: 10px 14px; border-radius: var(--vk-radius-sm); background: var(--vk-sand); font-size: var(--vk-fs-sm); }
.vk-review__source { display: flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 12px; font-size: 0.8rem; color: var(--vk-muted); }
.vk-review__source .vk-icon { stroke: none; }
.vk-reviews-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--vk-gap); }
.vk-reviews-grid .vk-review.is-hidden { display: none; }
.vk-reviews__empty.is-off, .vk-geosearch__empty.is-off, .is-off { display: none; }
.vk-chips--filter { margin-bottom: 24px; }

/* Карусель */
.vk-carousel { position: relative; }
.vk-carousel__viewport { overflow: hidden; margin-inline: -8px; }
.vk-carousel__track { display: flex; transition: transform 0.45s var(--vk-ease); will-change: transform; }
.vk-carousel__item { flex: 0 0 100%; padding: 8px; }
.vk-carousel.is-dragging .vk-carousel__track { transition: none; }
.vk-carousel.is-dragging { cursor: grabbing; user-select: none; }
.vk-carousel__nav { display: flex; justify-content: center; gap: 10px; margin-top: 18px; }
.vk-carousel__btn { width: 46px; height: 46px; border: 2px solid var(--vk-deep); border-radius: 50%; background: #fff; color: var(--vk-deep); font-size: 22px; line-height: 1; transition: background var(--vk-t), color var(--vk-t); }
.vk-carousel__btn:hover { background: var(--vk-deep); color: #fff; }
.vk-carousel__dots { display: flex; justify-content: center; gap: 8px; margin-top: 12px; }
.vk-carousel__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: var(--vk-line); }
.vk-carousel__dot.is-on { background: var(--vk-brand); }
@media (min-width: 640px) { .vk-carousel[data-carousel="3"] .vk-carousel__item { flex-basis: 50%; } }
@media (min-width: 1000px) { .vk-carousel[data-carousel="3"] .vk-carousel__item { flex-basis: 33.3333%; } }

/* ─── FAQ ──────────────────────────────────────────────────────────────── */
.vk-faq { max-width: 860px; }
.vk-faq__item { margin-bottom: 10px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); overflow: hidden; }
.vk-faq__q { margin: 0; font-size: 1.05rem; }
.vk-faq__q button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border: 0; background: none; text-align: left; font-weight: 700; color: var(--vk-ink); }
.vk-faq__q button::after { content: ''; flex: 0 0 auto; width: 12px; height: 12px; border-right: 2px solid var(--vk-brand); border-bottom: 2px solid var(--vk-brand); transform: rotate(45deg); transition: transform var(--vk-t); }
.vk-faq__item.is-open .vk-faq__q button::after { transform: rotate(-135deg); }
.vk-faq__a { display: grid; grid-template-rows: 0fr; padding: 0 22px; opacity: 0; transition: grid-template-rows 0.38s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.3s ease, padding 0.38s cubic-bezier(0.2, 0.8, 0.2, 1); }
.vk-faq__a[hidden] { display: grid; }
.vk-faq__inner { min-height: 0; overflow: hidden; }
.vk-faq__item.is-shown .vk-faq__a { grid-template-rows: 1fr; opacity: 1; padding: 0 22px 20px; }
.vk-faq__item { transition: box-shadow var(--vk-t), border-color var(--vk-t); border: 2px solid transparent; }
.vk-faq__item.is-open { border-color: var(--vk-brand-light); box-shadow: var(--vk-shadow-lg); }
.vk-faq__item.is-open .vk-faq__q button { color: var(--vk-brand-dark); }
.vk-faq__q button::after { transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); }
@media (prefers-reduced-motion: reduce) { .vk-faq__a, .vk-faq__q button::after { transition: none; } }
.vk-faq__inner p:last-child { margin-bottom: 0; }

/* ─── География ────────────────────────────────────────────────────────── */
.vk-geosearch { position: relative; max-width: 560px; margin-top: 18px; }
.vk-geosearch input { width: 100%; padding: 14px 70px 14px 18px; border: 2px solid var(--vk-line); border-radius: var(--vk-radius-pill); font: inherit; }
.vk-geosearch input:focus { border-color: var(--vk-deep); outline: none; }
.vk-geosearch__count { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-geogroup { margin-bottom: 28px; }
.vk-geogroup.is-off { display: none; }
.vk-geogroup__title { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; font-size: 1.1rem; }
.vk-geogroup__count { font-size: var(--vk-fs-sm); font-weight: 500; color: var(--vk-muted); }
.vk-geogroup__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.vk-geogroup__list li.is-off { display: none; }
.vk-geogroup__list a { display: inline-block; padding: 6px 14px; border-radius: var(--vk-radius-pill); background: var(--vk-mist); color: var(--vk-deep); font-size: 0.95rem; }
.vk-geogroup__list a:hover { background: var(--vk-deep); color: #fff; }
.vk-geogroup--top .vk-geogroup__list a { background: var(--vk-brand-light); color: var(--vk-brand-dark); font-weight: 700; }
.vk-geogroup--top .vk-geogroup__list a:hover { background: var(--vk-brand); color: #fff; }

/* ─── Связанные услуги ─────────────────────────────────────────────────── */
.vk-related { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--vk-gap); }
.vk-related__card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); color: var(--vk-ink); transition: transform var(--vk-t); }
.vk-related__card:hover { transform: translateY(-3px); color: var(--vk-deep); }
.vk-related__img { aspect-ratio: 16 / 10; background: var(--vk-mist); }
.vk-related__img img { width: 100%; height: 100%; object-fit: cover; }
.vk-related__body { display: flex; justify-content: space-between; gap: 10px; padding: 14px 16px; }
.vk-related__name { font-weight: 700; }
.vk-related__price { white-space: nowrap; font-weight: 800; color: var(--vk-brand); }

/* ─── CTA ──────────────────────────────────────────────────────────────── */
.vk-cta { padding-block: var(--vk-section); background: var(--vk-mist); }
.vk-cta__box { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 440px); gap: clamp(24px, 4vw, 56px); padding: clamp(28px, 4vw, 52px); border-radius: 28px; background: linear-gradient(120deg, var(--vk-brand) 0%, var(--vk-brand-dark) 100%); color: #fff; overflow: hidden; box-shadow: var(--vk-shadow-lg); }
.vk-cta__box::before { content: ''; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%; border: 60px solid rgba(255, 255, 255, 0.07); pointer-events: none; }
.vk-cta__box::after { content: ''; position: absolute; left: 34%; bottom: -160px; width: 320px; height: 320px; border-radius: 50%; border: 44px solid rgba(255, 216, 0, 0.10); pointer-events: none; }
.vk-cta__text { position: relative; z-index: 1; }
.vk-cta__eyebrow { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: var(--vk-radius-pill); background: rgba(255, 255, 255, 0.14); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--vk-sun); }
.vk-cta__eyebrow .vk-icon { stroke: var(--vk-sun); }
.vk-cta__title { margin: 14px 0 10px; color: #fff; }
.vk-cta__lead { margin: 0 0 24px; font-size: 1.05rem; color: rgba(255, 255, 255, 0.88); max-width: 52ch; }
.vk-cta__steps { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; margin: 0 0 26px; padding: 0; list-style: none; }
.vk-cta__steps li { display: flex; gap: 12px; align-items: flex-start; }
.vk-cta__step-ico { position: relative; flex: 0 0 46px; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: rgba(255, 255, 255, 0.14); }
.vk-cta__step-ico .vk-icon { width: 24px; height: 24px; stroke: #fff; }
.vk-cta__step-ico i { position: absolute; right: -6px; top: -6px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--vk-sun); color: var(--vk-ink); font-style: normal; font-weight: 800; font-size: 0.72rem; }
.vk-cta__steps b { display: block; font-size: 0.98rem; line-height: 1.25; }
.vk-cta__steps small { display: block; margin-top: 2px; font-size: 0.8rem; line-height: 1.35; color: rgba(255, 255, 255, 0.78); }
.vk-cta__contacts { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.vk-cta__phone { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 1.35rem; color: #fff; }
.vk-cta__phone .vk-icon { stroke: var(--vk-sun); }
.vk-cta__phone:hover { color: var(--vk-sun); }
.vk-cta__crew { position: relative; margin: 26px 0 0; border-radius: 18px; overflow: hidden; }
.vk-cta__crew img { display: block; width: 100%; height: 200px; object-fit: cover; }
.vk-cta__crew figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: var(--vk-radius-pill); background: rgba(29, 36, 23, 0.72); font-size: 0.8rem; font-weight: 700; backdrop-filter: blur(4px); }
.vk-cta__form { position: relative; z-index: 1; align-self: start; padding: 26px 26px 22px; border-radius: 20px; background: #fff; color: var(--vk-text); box-shadow: var(--vk-shadow-lg); }
@media (max-width: 1000px) { .vk-cta__box { grid-template-columns: 1fr; } .vk-cta__crew { display: none; } }
@media (max-width: 640px) { .vk-cta__box { padding: 22px 16px; border-radius: 20px; } .vk-cta__steps { grid-template-columns: 1fr; gap: 12px; } .vk-cta__form { padding: 20px 16px; } .vk-cta__phone { font-size: 1.2rem; } }

/* ─── Контакты ─────────────────────────────────────────────────────────── */

/* ─── Юридические документы ────────────────────────────────────────────── */
.vk-legal { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--vk-gap); align-items: start; }
.vk-legal__doc { font-size: 0.98rem; }
.vk-legal__doc h2 { margin: 1.6em 0 0.6em; font-size: 1.25rem; }
.vk-legal__doc p, .vk-legal__doc li { margin-bottom: 0.7em; }
.vk-legal__date { text-align: right; color: var(--vk-muted); }
.vk-legal__aside { position: sticky; top: 16px; display: grid; gap: 16px; }
.vk-legal__card { padding: 22px 22px 18px; border-radius: var(--vk-radius); background: var(--vk-mist); }
.vk-legal__card-title { margin-bottom: 10px; font-weight: 700; color: var(--vk-ink); }
.vk-legal__card p { margin: 0 0 6px; font-size: 0.95rem; }
.vk-legal__link { display: block; padding: 8px 0; border-top: 1px solid var(--vk-line); font-size: 0.95rem; color: var(--vk-deep); }
.vk-legal__link.is-current { font-weight: 700; color: var(--vk-brand); }
@media (max-width: 900px) { .vk-legal { grid-template-columns: 1fr; } .vk-legal__aside { position: static; } }
/* Плашка cookie (Wolf Tweaks) не должна накрывать плавающий виджет связи */
body:has(.wolf-cookie:not([hidden])) .vk-contact { bottom: 108px; }
.vk-contact { transition: bottom 0.25s var(--vk-ease); }
.wolf-cookie { font-family: var(--vk-font); font-size: 13px; line-height: 1.45; }
@media (max-width: 640px) { .wolf-cookie { font-size: 12px; } }
/* на телефоне плашка в одну строку с кнопкой справа — не закрывает первый экран и форму (аудит 20.10.2026) */
@media (max-width: 600px) {
	.wolf-cookie { left: 8px; right: 8px; }
	.wolf-cookie--bottom { bottom: 8px; }
	.wolf-cookie .wolf-cookie-in { flex-wrap: nowrap; gap: 10px; padding: 9px 10px 9px 13px; }
	.wolf-cookie p { min-width: 0; font-size: 11.5px; line-height: 1.35; }
	.wolf-cookie button { width: auto; padding: 9px 14px; font-size: 13px; }
}

/* ─── Блог ─────────────────────────────────────────────────────────────── */
.vk-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--vk-gap); }
.vk-post-card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-post-card__img { aspect-ratio: 16 / 10; background: var(--vk-mist); }
.vk-post-card__img img { width: 100%; height: 100%; object-fit: cover; }
.vk-post-card__body { padding: 16px 18px 20px; }
.vk-post-card__date { font-size: var(--vk-fs-sm); color: var(--vk-muted); }
.vk-post-card__title { margin: 6px 0 8px; font-size: 1.1rem; }
.vk-post-card p { margin: 0; font-size: 0.95rem; color: var(--vk-muted); }

/* ─── Адаптив ──────────────────────────────────────────────────────────── */
@media (max-width: 1000px) {
	.vk-services { grid-template-columns: 1fr; }
	.vk-hero__grid, .vk-cta__grid, .vk-contacts { grid-template-columns: 1fr; }
	.vk-hero__card, .vk-cta__form { max-width: 520px; }
}
@media (max-width: 640px) {
	.vk-hero { padding-top: 24px; }
	.vk-hero__usp { flex-direction: column; gap: 8px; }
	.vk-hero__actions { gap: 12px; }
	.vk-hero__actions .vk-btn { width: 100%; }
	.vk-hero__card { padding: 20px 18px 16px; }
	.vk-facts { margin-top: 20px; }
	.vk-facts__grid { grid-template-columns: 1fr 1fr; }
	.vk-fact { padding: 14px 16px; }
	.vk-fact__num { font-size: 1.35rem; }
	.vk-fact:last-child:nth-child(odd) { grid-column: span 2; }
	.vk-hero__actions { padding-right: 64px; }
	.vk-gallery { grid-template-columns: 1fr 1fr; gap: 8px; }
	.vk-gallery__item:first-child { grid-column: span 2; grid-row: span 1; }
	.vk-cta__form, .vk-contacts__form, .vk-contacts__card { padding: 20px 18px; }
	.vk-schemes { grid-template-columns: 1fr 1fr; gap: 10px; }
	.vk-scheme__body { padding: 12px 12px 14px; }
	.vk-scheme__name { font-size: 1.25rem; }
	.vk-table th, .vk-table td { padding: 10px 12px; font-size: 0.92rem; }
	.vk-review { padding: 18px 16px 14px; }
}
@media (max-width: 420px) {
	.vk-schemes { grid-template-columns: 1fr; }
}

/* ─── Текст блоками (inc/prose.php) ────────────────────────────────────── */
.vk-section--prose { padding-top: 0; }
.vk-feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding-block: clamp(28px, 4vw, 56px); border-top: 1px solid var(--vk-line); }
.vk-feature:first-child { border-top: 0; }
.vk-feature--rev .vk-feature__text { order: 2; }
.vk-feature--rev .vk-feature__media { order: 1; }
.vk-feature__title { margin-bottom: 0.6em; font-size: var(--vk-fs-2); }
.vk-feature__body { max-width: none; font-size: 1.04rem; }
.vk-feature__body p:last-child { margin-bottom: 0; }
.vk-feature__media { margin: 0; }
.vk-feature__media img { width: 100%; border-radius: var(--vk-radius); box-shadow: var(--vk-shadow); }
.vk-feature__media figcaption { margin-top: 10px; font-size: var(--vk-fs-sm); color: var(--vk-muted); text-align: center; }
.vk-feature--wide { display: block; }
.vk-feature__media--wide { max-width: 960px; margin: 0 auto 28px; }
.vk-feature--wide .vk-feature__body { columns: 2; column-gap: 48px; }
.vk-feature--wide.has-wide .vk-feature__body { columns: 1; }
.vk-feature--wide .vk-feature__body > * { break-inside: avoid; }
.vk-feature--wide .vk-feature__body > p { break-inside: auto; }
.vk-feature--wide .vk-feature__body .vk-checks, .vk-feature--wide .vk-feature__body .vk-table-wrap, .vk-feature--wide .vk-feature__body .vk-ol { column-span: all; }
.vk-checks--prose { margin: 1em 0 1.4em; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.vk-checks--prose li { padding: 14px 16px 14px 48px; border-radius: var(--vk-radius-sm); background: var(--vk-mist); font-size: 0.98rem; }
.vk-checks--prose li::before { left: 14px; top: 14px; }
.vk-feature__body .vk-table-wrap { margin: 1em 0 1.4em; }
.vk-ol { counter-reset: n; list-style: none; margin: 1em 0 1.4em; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.vk-ol li { counter-increment: n; position: relative; padding: 16px 16px 16px 58px; border-radius: var(--vk-radius-sm); background: #fff; box-shadow: var(--vk-shadow); font-size: 0.95rem; }
.vk-ol li::before { content: counter(n); position: absolute; left: 14px; top: 12px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--vk-brand); color: #fff; font-weight: 800; }
.vk-quote { margin: 1.2em 0; padding: 20px 24px 20px 28px; border-left: 4px solid var(--vk-sun); border-radius: 0 var(--vk-radius) var(--vk-radius) 0; background: var(--vk-sand); font-size: 1.02rem; }
.vk-quote p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.vk-feature { grid-template-columns: 1fr; gap: 20px; }
	.vk-feature--rev .vk-feature__text { order: 0; }
	.vk-feature--rev .vk-feature__media { order: 0; }
	.vk-feature--wide .vk-feature__body { columns: 1; }
}

/* ─── Блоки со старого сайта (inc/blocks-extra.php) ────────────────────── */
/* Акционная плашка над шапкой */
.vk-promo { background: var(--vk-sun); color: var(--vk-ink); }
.vk-promo__row { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 42px; padding-block: 6px; font-size: 0.95rem; }
.vk-promo__text { font-weight: 500; }
.vk-promo__btn { padding: 6px 14px; border: 0; border-radius: var(--vk-radius-pill); background: var(--vk-brand); color: #fff; font: inherit; font-weight: 700; cursor: pointer; transition: background var(--vk-t); }
.vk-promo__btn:hover { background: var(--vk-brand-dark); }
.vk-promo__close { margin-left: auto; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, 0.08); color: var(--vk-ink); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.vk-promo__close:hover { background: rgba(0, 0, 0, 0.16); }

/* Кнопка солнечная — акцент бренда на тёмном и зелёном */
.vk-btn--sun { background: var(--vk-sun); color: var(--vk-deep); box-shadow: 0 8px 20px rgba(255, 216, 0, 0.35); }
.vk-btn--sun:hover { background: var(--vk-sun-dark); color: var(--vk-deep); transform: translateY(-1px); }
.vk-checks--inline { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px 20px; margin: 18px 0 24px; }

/* Гарантия качества воды */
.vk-section--guarantee { padding-block: 0 var(--vk-section); }
.vk-guarantee { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, 420px); gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(24px, 4vw, 48px); border-radius: var(--vk-radius); background: linear-gradient(120deg, var(--vk-brand) 0%, var(--vk-brand-dark) 100%); color: #fff; overflow: hidden; }
.vk-guarantee__title { color: #fff; margin-bottom: 12px; }
.vk-guarantee__text p { color: rgba(255, 255, 255, 0.86); font-size: 1.05rem; }
.vk-guarantee .vk-checks li { color: #fff; }
.vk-guarantee .vk-checks li::before { background-color: var(--vk-sun); }
.vk-guarantee__media { margin: 0; }
.vk-guarantee__media img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--vk-radius); box-shadow: var(--vk-shadow-lg); }

/* Баннер к прайсу */
.vk-section--pricebanner { padding-block: 0 var(--vk-section); }
.vk-pricebanner { display: grid; grid-template-columns: minmax(220px, 360px) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: center; padding: clamp(20px, 3vw, 36px); border: 2px solid var(--vk-brand-light); border-radius: var(--vk-radius); background: var(--vk-mist); }
.vk-pricebanner__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--vk-radius-sm); }
.vk-pricebanner__title { margin-bottom: 8px; font-size: var(--vk-fs-3); }
.vk-pricebanner__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }

/* Можно дешевле */
.vk-section--cheaper { padding-block: 0 var(--vk-section); }

/* Акции */
.vk-sales { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--vk-gap); }
.vk-sale { position: relative; display: flex; flex-direction: column; gap: 6px; min-height: 260px; padding: 26px 24px 22px; border-radius: var(--vk-radius); color: #fff; overflow: hidden; box-shadow: var(--vk-shadow); transition: transform var(--vk-t), box-shadow var(--vk-t); }
.vk-sale:hover { color: #fff; transform: translateY(-4px); box-shadow: var(--vk-shadow-lg); }
.vk-sale--1 { background: linear-gradient(150deg, #2f6f9f 0%, #164a73 100%); }
.vk-sale--2 { background: linear-gradient(150deg, #8fb01a 0%, var(--vk-brand-dark) 100%); }
.vk-sale--3 { background: linear-gradient(150deg, #8a6a3a 0%, #5b4324 100%); }
.vk-sale::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 180px; height: 180px; border-radius: 50%; background: rgba(255, 255, 255, 0.08); }
.vk-sale__icon { position: relative; width: 40px; height: 40px; margin-bottom: 8px; stroke: var(--vk-sun); }
.vk-sale__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.vk-sale.has-photo { isolation: isolate; }
.vk-sale.has-photo .vk-sale__photo { z-index: 0; }
.vk-sale.has-photo .vk-sale__icon { position: relative; z-index: 2; }
.vk-sale.has-photo::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(29, 36, 23, 0.05) 0%, rgba(29, 36, 23, 0.1) 30%, rgba(29, 36, 23, 0.55) 50%, rgba(29, 36, 23, 0.86) 72%, rgba(29, 36, 23, 0.92) 100%); }
.vk-sale.has-photo::after { display: none; }
.vk-sale.has-photo > span { position: relative; z-index: 2; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45); }
.vk-sale.has-photo { min-height: 320px; }
.vk-sale.has-photo .vk-sale__kicker { margin-top: auto; }
.vk-sale.has-photo .vk-sale__num { margin-top: 6px; }
.vk-sale__kicker { font-size: var(--vk-fs-sm); opacity: 0.85; }
.vk-sale__title { font-size: 1.2rem; font-weight: 700; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; }
.vk-sale__num { margin-top: auto; font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.4rem); font-weight: 800; line-height: 1; color: var(--vk-sun); }
.vk-sale__num small { display: block; margin-top: 4px; font-size: 0.95rem; font-weight: 500; color: rgba(255, 255, 255, 0.85); }
.vk-sale__more { margin-top: 10px; font-size: var(--vk-fs-sm); font-weight: 700; opacity: 0.9; }
.vk-sale-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: var(--vk-gap); padding: 18px 24px; border-radius: var(--vk-radius); background: var(--vk-brand-light); }
.vk-sale-cta__text { font-size: 1.05rem; }

/* Видео-отзывы: обложка, iframe подставляется по клику */
.vk-videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vk-gap); }
.vk-video { position: relative; display: block; padding: 0; border: 0; border-radius: var(--vk-radius); background: var(--vk-brand); aspect-ratio: 16 / 9; overflow: hidden; cursor: pointer; box-shadow: var(--vk-shadow); }
.vk-video img { width: 100%; height: 100%; object-fit: cover; opacity: 0.92; transition: transform var(--vk-t), opacity var(--vk-t); }
.vk-video:hover img { transform: scale(1.04); opacity: 1; }
.vk-video__play { position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; transform: translate(-50%, -50%); border-radius: 50%; background: var(--vk-sun); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35); transition: transform var(--vk-t); }
.vk-video__play::after { content: ""; position: absolute; left: 55%; top: 50%; border: 12px solid transparent; border-left: 20px solid var(--vk-deep); transform: translate(-50%, -50%); }
.vk-video:hover .vk-video__play { transform: translate(-50%, -50%) scale(1.08); }
.vk-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Дежурный мастер */
.vk-master { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, 360px); gap: clamp(24px, 4vw, 56px); align-items: end; padding: clamp(24px, 4vw, 48px) clamp(24px, 4vw, 48px) 0; border-radius: var(--vk-radius); background: var(--vk-mist); overflow: hidden; }
.vk-master__text { padding-bottom: clamp(24px, 4vw, 48px); }
.vk-master__title { margin-bottom: 10px; }
.vk-master__phone { display: inline-flex; align-items: center; gap: 10px; margin: 8px 24px 8px 0; font-size: 1.35rem; font-weight: 800; color: var(--vk-deep); }
.vk-master__phone .vk-icon { width: 22px; height: 22px; stroke: var(--vk-brand); }
.vk-master__phone--second { font-size: 1.1rem; font-weight: 700; }
.vk-msgs--master { margin-top: 12px; }
.vk-master__media { margin: 0; align-self: end; }
.vk-master__media img { display: block; width: 100%; max-height: 380px; object-fit: contain; object-position: bottom; }

/* Гео-блок: все города, лишние прячем до клика */
.vk-chip.is-more { display: none; }
.vk-chips.is-open .vk-chip.is-more { display: inline-flex; }
.vk-chips.is-open .vk-chip--more { display: none; }
.vk-chip--top { font-weight: 700; }
.vk-chip.is-current { background: var(--vk-deep); color: #fff; }
.vk-chip--pick .vk-icon { width: 16px; height: 16px; margin-right: 6px; }

/* Текст старого сайта: блоки «этап» с картинкой слева */
.vk-prose .etap { display: grid; grid-template-columns: minmax(180px, 280px) minmax(0, 1fr); gap: 20px 28px; align-items: start; margin: 1.2em 0; padding: 18px; border-radius: var(--vk-radius-sm); background: var(--vk-mist); }
.vk-prose .etap.revers { direction: rtl; }
.vk-prose .etap.revers > * { direction: ltr; }
.vk-prose .etap img { width: 100%; height: auto; border-radius: var(--vk-radius-sm); }
.vk-prose .etap h3 { margin-top: 0; }
.vk-prose .etap .text > :last-child { margin-bottom: 0; }

@media (max-width: 1000px) {
	.vk-sales, .vk-videos { grid-template-columns: 1fr 1fr; }
	.vk-guarantee, .vk-master { grid-template-columns: 1fr; }
	.vk-guarantee__media { max-width: 360px; }
	.vk-master__media { max-width: 300px; }
}
@media (max-width: 640px) {
	.vk-sales, .vk-videos, .vk-pricebanner, .vk-cheaper, .vk-prose .etap { grid-template-columns: 1fr; }
	.vk-prose .etap.revers { direction: ltr; }
	.vk-cheaper__badge { width: 180px; margin-inline: auto; }
	.vk-promo__row { flex-wrap: wrap; justify-content: flex-start; padding-block: 8px; }
	.vk-promo__text { flex: 1 1 100%; font-size: 0.9rem; }
	.vk-sale { min-height: 200px; }
	.vk-master { padding-inline: 18px; }
	.vk-master__phone { font-size: 1.15rem; }
}

/* Подразделы H3 в прозе — карточки сеткой */
.vk-subgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--vk-gap); margin: 1.2em 0; }
.vk-sub { padding: 22px 24px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-feature--wide .vk-sub { background: var(--vk-mist); box-shadow: none; }
.vk-sub h3 { margin: 0 0 8px; font-size: 1.1rem; }
.vk-sub > :last-child { margin-bottom: 0; }
.vk-sub p, .vk-sub li { font-size: 0.97rem; }

/* FAQ с карточкой «спросите мастера» справа */
.vk-faq-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--vk-gap); align-items: start; }
.vk-faq-grid .vk-faq { max-width: none; }
.vk-faq-aside { position: sticky; top: 16px; }
.vk-faq-card { position: relative; padding: 24px 24px 22px; border-radius: var(--vk-radius); background: linear-gradient(160deg, var(--vk-brand-light) 0%, #fff 100%); box-shadow: var(--vk-shadow); overflow: hidden; }
.vk-faq-card__img { display: block; width: 62%; height: auto; margin: -8px auto 8px; }
.vk-faq-card__title { font-size: 1.3rem; font-weight: 800; color: var(--vk-deep); margin-bottom: 6px; }
.vk-faq-card p { font-size: 0.95rem; color: var(--vk-muted); }
.vk-faq-card__phone { display: block; margin: 8px 0 14px; font-size: 1.3rem; font-weight: 800; color: var(--vk-deep); }
@media (max-width: 1000px) { .vk-faq-grid { grid-template-columns: 1fr; } .vk-faq-aside { position: static; } .vk-faq-card__img { width: 40%; } }

/* Карта на контактах: заглушка, iframe конструктора Яндекс.Карт по клику */
.vk-map { position: relative; display: grid; place-items: center; width: 100%; min-height: 400px; border: 2px dashed var(--vk-mist-2); border-radius: var(--vk-radius); background: var(--vk-mist) url('../images/map-bg.svg') center / cover no-repeat; cursor: pointer; overflow: hidden; }
.vk-map__hint { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border-radius: var(--vk-radius-pill); background: #fff; color: var(--vk-deep); font-weight: 700; box-shadow: var(--vk-shadow); }
.vk-map__hint .vk-icon { width: 20px; height: 20px; stroke: var(--vk-brand); }
.vk-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Гео-блок: карта со статистикой слева, города справа */
.vk-geo { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: var(--vk-gap); align-items: start; }
.vk-geo__map { position: sticky; top: 16px; padding: 18px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-geo__map img { display: block; width: 100%; height: auto; margin-bottom: 12px; }
.vk-geo__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.vk-geo__stats div { padding: 10px 8px; border-radius: var(--vk-radius-sm); background: var(--vk-mist); text-align: center; }
.vk-geo__stats b { display: block; font-size: 1.35rem; font-weight: 800; color: var(--vk-brand-dark); line-height: 1.1; }
.vk-geo__stats span { display: block; margin-top: 2px; font-size: 0.72rem; color: var(--vk-muted); line-height: 1.2; }
.vk-geo__map .vk-btn .vk-icon { width: 18px; height: 18px; }
.vk-geo__label { display: flex; align-items: baseline; gap: 8px; margin: 0 0 10px; font-weight: 800; color: var(--vk-ink); }
.vk-geo__label span { font-size: 0.8rem; font-weight: 600; color: var(--vk-muted); }
.vk-geo__tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 22px; }
.vk-geo__tile { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 12px; border: 2px solid var(--vk-line); border-radius: var(--vk-radius-sm); background: #fff; color: var(--vk-ink); text-decoration: none; transition: border-color var(--vk-t), transform var(--vk-t), box-shadow var(--vk-t); }
.vk-geo__tile:hover { border-color: var(--vk-brand); transform: translateY(-2px); box-shadow: var(--vk-shadow); }
.vk-geo__tile .vk-icon { flex: 0 0 18px; width: 18px; height: 18px; stroke: var(--vk-brand); }
.vk-geo__tile > span { min-width: 0; }
.vk-geo__tile b { display: block; font-size: 0.95rem; line-height: 1.2; }
.vk-geo__tile i { display: block; font-style: normal; font-size: 0.74rem; color: var(--vk-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 150px; }
.vk-geo__tile.is-current { border-color: var(--vk-brand); background: var(--vk-brand-light); }
.vk-chips--geo .vk-chip { min-height: 38px; padding: 6px 12px; font-size: 0.9rem; }
@media (max-width: 1000px) { .vk-geo { grid-template-columns: minmax(0, 1fr); } .vk-geo__map { position: static; display: grid; grid-template-columns: 200px 1fr; gap: 12px 18px; align-items: center; } .vk-geo__map img { margin: 0; } .vk-geo__map .vk-btn { grid-column: 2; } .vk-geo__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .vk-geo__map { grid-template-columns: 1fr; } .vk-geo__map img { max-width: 260px; margin: 0 auto; } .vk-geo__map .vk-btn { grid-column: auto; } .vk-geo__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Каталог моделей (домики ДК-1…ДК-16) — сетка карточек с подписью, открываются в лайтбоксе */
.vk-catalog { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 1.4em 0; }
.vk-prose .vk-catalog__item, .vk-catalog__item { position: relative; margin: 0; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); overflow: hidden; transition: transform var(--vk-t), box-shadow var(--vk-t); }
.vk-catalog__item:hover { transform: translateY(-3px); box-shadow: var(--vk-shadow-lg); }
.vk-catalog__item a { display: block; }
.vk-prose .vk-catalog__item img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; margin: 0; border-radius: 0; }
.vk-catalog__item figcaption { position: absolute; left: 10px; bottom: 10px; padding: 4px 10px; border-radius: var(--vk-radius-pill); background: var(--vk-deep); color: #fff; font-size: 0.8rem; font-weight: 700; }
@media (max-width: 900px) { .vk-catalog { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } }
@media (max-width: 640px) { .vk-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } }

/* ─── Преимущества: карточки с фото, иконкой-бейджем и номером ─── */
.vk-benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--vk-gap); }
.vk-benefits[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vk-benefits[data-count="5"], .vk-benefits[data-count="6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vk-benefit { position: relative; display: flex; flex-direction: column; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); overflow: hidden; transition: transform var(--vk-t), box-shadow var(--vk-t); }
.vk-benefit:hover { transform: translateY(-3px); box-shadow: var(--vk-shadow-lg); }
.vk-benefit__photo { display: block; aspect-ratio: 3 / 2; background: var(--vk-mist); }
.vk-benefit__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vk-benefit__ico { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 12px; border-radius: 16px; background: var(--vk-brand); box-shadow: var(--vk-shadow); border: 3px solid #fff; }
.vk-benefit__ico .vk-icon { width: 26px; height: 26px; stroke: #fff; }
.vk-benefit__body { padding: 22px 22px 22px; }
.vk-benefit__body.has-photo { padding-top: 0; }
.vk-benefit__body.has-photo .vk-benefit__ico { margin-top: -26px; }
.vk-benefit__title { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; font-weight: 800; font-size: 1.12rem; color: var(--vk-ink); }
.vk-benefit__title i { font-style: normal; font-size: 0.8rem; font-weight: 800; color: var(--vk-brand); }
.vk-benefit p { margin: 0; font-size: 0.95rem; line-height: 1.55; color: var(--vk-muted); }
@media (max-width: 1000px) { .vk-benefits, .vk-benefits[data-count="3"], .vk-benefits[data-count="5"], .vk-benefits[data-count="6"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .vk-benefits, .vk-benefits[data-count="3"], .vk-benefits[data-count="5"], .vk-benefits[data-count="6"] { grid-template-columns: 1fr; } }

/* ─── Можно дешевле: фото с бейджем экономии, три совета, кнопка ─── */
.vk-cheaper { display: grid; grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr); gap: clamp(20px, 3vw, 44px); align-items: center; padding: clamp(20px, 3vw, 36px); border-radius: 28px; background: linear-gradient(135deg, #fffbe0 0%, #fff 60%); border: 2px solid rgba(255, 216, 0, 0.5); box-shadow: var(--vk-shadow); }
.vk-cheaper__media { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--vk-mist); }
.vk-cheaper__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vk-cheaper__badge { position: absolute; left: 14px; bottom: 14px; display: flex; flex-direction: column; padding: 12px 16px; border-radius: 16px; background: var(--vk-sun); color: var(--vk-ink); box-shadow: var(--vk-shadow-lg); }
.vk-cheaper__badge b { font-size: clamp(1.2rem, 1rem + 1vw, 1.7rem); line-height: 1.1; }
.vk-cheaper__badge span { font-size: 0.78rem; font-weight: 600; }
.vk-cheaper__eyebrow { display: inline-block; margin-bottom: 8px; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--vk-brand-dark); }
.vk-cheaper__title { margin: 0 0 10px; }
.vk-cheaper__text > p { margin: 0 0 18px; color: var(--vk-text); }
.vk-cheaper__tips { display: grid; gap: 12px; margin: 0 0 22px; padding: 0; list-style: none; }
.vk-cheaper__tips li { display: flex; gap: 12px; align-items: flex-start; }
.vk-cheaper__tips .vk-icon { flex: 0 0 40px; width: 40px; height: 40px; padding: 8px; border-radius: 12px; background: var(--vk-brand-light); stroke: var(--vk-brand-dark); }
.vk-cheaper__tips b { display: block; font-size: 0.98rem; color: var(--vk-ink); }
.vk-cheaper__tips span { font-size: 0.9rem; line-height: 1.45; color: var(--vk-muted); }
@media (max-width: 900px) { .vk-cheaper { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .vk-cheaper { padding: 16px; border-radius: 20px; } }

/* ─── Страница «Цены» ─── */
.vk-prices-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 8px; }
.vk-pricelist { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.vk-pricelist__item { min-width: 0; }
.vk-pricelist__item { min-width: 0; padding: 24px 26px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); scroll-margin-top: 20px; }
.vk-pricelist__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; margin-bottom: 14px; }
.vk-pricelist__head h3 { margin: 0; font-size: 1.3rem; }
.vk-pricelist__item .vk-table-wrap { box-shadow: none; border: 1px solid var(--vk-line); }

/* ─── Страница «О компании» ─── */
.vk-about-hero { padding: 28px 0 8px; }
.vk-about-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.vk-about-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.vk-about-hero__photo { position: relative; margin: 0; border-radius: 24px; overflow: hidden; box-shadow: var(--vk-shadow-lg); }
.vk-about-hero__photo img { display: block; width: 100%; height: auto; }
.vk-about-hero__photo figcaption { position: absolute; left: 14px; bottom: 14px; padding: 8px 14px; border-radius: var(--vk-radius-pill); background: rgba(29, 36, 23, 0.72); color: #fff; font-size: 0.85rem; font-weight: 700; backdrop-filter: blur(4px); }
.vk-how { counter-reset: how; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.vk-how__step { position: relative; padding: 22px 20px 20px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-how__num { position: absolute; right: 16px; top: 14px; font-size: 2rem; font-weight: 800; color: var(--vk-brand-light); line-height: 1; }
.vk-how__ico { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 14px; border-radius: 14px; background: var(--vk-brand-light); }
.vk-how__ico .vk-icon { width: 24px; height: 24px; stroke: var(--vk-brand-dark); }
.vk-how__step b { display: block; margin-bottom: 6px; font-size: 1.02rem; color: var(--vk-ink); }
.vk-how__step p { margin: 0; font-size: 0.9rem; line-height: 1.5; color: var(--vk-muted); }
.vk-about-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.vk-about-photos__item { position: relative; margin: 0; border-radius: var(--vk-radius); overflow: hidden; box-shadow: var(--vk-shadow); }
.vk-about-photos__item img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.vk-about-photos__item figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: var(--vk-radius-pill); background: rgba(255, 255, 255, 0.92); font-size: 0.82rem; font-weight: 700; color: var(--vk-deep); }
.vk-about-docs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.vk-about-docs__item { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 2px solid var(--vk-line); border-radius: var(--vk-radius); background: #fff; color: var(--vk-ink); text-decoration: none; transition: border-color var(--vk-t), transform var(--vk-t); }
.vk-about-docs__item:hover { border-color: var(--vk-brand); transform: translateY(-2px); }
.vk-about-docs__item .vk-icon { width: 28px; height: 28px; stroke: var(--vk-brand); margin-bottom: 6px; }
.vk-about-docs__item span { font-size: 0.85rem; color: var(--vk-muted); }
@media (max-width: 1000px) { .vk-about-hero__grid { grid-template-columns: 1fr; } .vk-how { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vk-about-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vk-about-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .vk-how { grid-template-columns: 1fr; } .vk-about-docs { grid-template-columns: 1fr; } .vk-about-photos { grid-template-columns: 1fr; } }

/* ─── Страница «Наши работы» ─── */
.vk-works-group { margin-bottom: 36px; }
.vk-works-group.is-off { display: none; }
.vk-works-group__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; margin-bottom: 14px; }
.vk-works-group__head h2 { margin: 0; font-size: 1.4rem; }
.vk-works-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.vk-works-grid__item { margin: 0; border-radius: var(--vk-radius); overflow: hidden; box-shadow: var(--vk-shadow); }
.vk-works-grid__item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.4s ease; }
.vk-works-grid__item:hover img { transform: scale(1.04); }
.vk-chips--filter .vk-chip span { margin-left: 6px; font-size: 0.78rem; opacity: 0.7; }
@media (max-width: 900px) { .vk-works-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .vk-works-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } }

/* Карточка рядом с коротким текстом (inc/prose.php: vk_aside_card) */
.vk-aside { border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); overflow: hidden; }
.vk-aside--master { padding: 24px 24px 22px; text-align: center; background: linear-gradient(160deg, var(--vk-brand-light) 0%, #fff 100%); }
.vk-aside--master img { display: block; width: 52%; height: auto; margin: -6px auto 8px; }
.vk-aside__title { margin-bottom: 8px; font-size: 1.2rem; font-weight: 800; color: var(--vk-deep); }
.vk-aside p { margin: 0 0 12px; font-size: 0.95rem; color: var(--vk-muted); }
.vk-aside__phone { display: block; margin: 4px 0 14px; font-size: 1.3rem; font-weight: 800; color: var(--vk-deep); }
.vk-aside--photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.vk-aside__body { padding: 20px 22px 22px; }
.vk-aside--list { padding: 24px; }
.vk-aside--list .vk-checks { grid-template-columns: 1fr; gap: 10px; margin-bottom: 16px; }
.vk-aside--list .vk-checks li { font-size: 0.95rem; }
@media (max-width: 640px) { .vk-pricelist__item { padding: 16px 12px; } }
.vk-page-head + .vk-facts, .vk-about-hero + .vk-facts { margin-top: 28px; }

/* ─── Страница «Гарантии» ─── */
.vk-garant { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.vk-garant__card { padding: 22px 20px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); border-top: 4px solid var(--vk-sun); }
.vk-garant__ico { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 12px; border-radius: 14px; background: var(--vk-brand-light); }
.vk-garant__ico .vk-icon { width: 24px; height: 24px; stroke: var(--vk-brand-dark); }
.vk-garant__card b { display: block; margin-bottom: 6px; font-size: 1.05rem; color: var(--vk-ink); }
.vk-garant__card p { margin: 0; font-size: 0.92rem; line-height: 1.5; color: var(--vk-muted); }
.vk-garant-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.vk-garant-grid h2 { margin-top: 0; }
.vk-checks--col { grid-template-columns: 1fr; }
.vk-checks--col b { color: var(--vk-ink); }
.vk-garant-grid__photo { margin: 0; }
.vk-garant-grid__photo img { display: block; width: 100%; border-radius: var(--vk-radius); box-shadow: var(--vk-shadow); }
.vk-garant-grid__photo figcaption { margin-top: 10px; font-size: var(--vk-fs-sm); color: var(--vk-muted); text-align: center; }
.vk-how--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .vk-garant { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vk-garant-grid { grid-template-columns: 1fr; } .vk-how--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .vk-garant { grid-template-columns: 1fr; } .vk-how--4 { grid-template-columns: 1fr; } }
.vk-guarantee__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.vk-btn--outline-white { border-color: rgba(255, 255, 255, 0.6); background: transparent; color: #fff; }
.vk-btn--outline-white:hover { border-color: #fff; background: rgba(255, 255, 255, 0.12); color: #fff; }

/* ─── Контакты: карточки каналов связи, что будет после заявки, реквизиты, форма ─── */
.vk-contacts { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 440px); gap: var(--vk-gap); align-items: start; }
.vk-contacts__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.vk-ccard { display: flex; flex-direction: column; gap: 4px; padding: 20px 22px; border: 2px solid var(--vk-line); border-radius: var(--vk-radius); background: #fff; color: var(--vk-ink); text-decoration: none; transition: border-color var(--vk-t), transform var(--vk-t), box-shadow var(--vk-t); }
.vk-ccard:hover { border-color: var(--vk-brand); transform: translateY(-2px); box-shadow: var(--vk-shadow); color: var(--vk-ink); }
.vk-ccard__ico { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 6px; border-radius: 12px; background: var(--vk-brand-light); }
.vk-ccard__ico .vk-icon { width: 22px; height: 22px; stroke: var(--vk-brand-dark); }
.vk-ccard--tg .vk-ccard__ico, .vk-ccard--max .vk-ccard__ico { background: none; }
.vk-ccard--tg .vk-ccard__ico .vk-icon, .vk-ccard--max .vk-ccard__ico .vk-icon { width: 44px; height: 44px; }
.vk-ccard__label { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--vk-muted); }
.vk-ccard b { font-size: 1.15rem; line-height: 1.2; }
.vk-ccard--phone b { font-size: 1.35rem; }
.vk-ccard__sub { font-size: 0.85rem; color: var(--vk-muted); }
.vk-contacts__how { padding: 20px 22px; margin-bottom: 20px; border-radius: var(--vk-radius); background: var(--vk-brand-light); }
.vk-contacts__how-title { margin-bottom: 12px; font-weight: 800; color: var(--vk-deep); }
.vk-contacts__steps { counter-reset: cs; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.vk-contacts__steps li { position: relative; padding-left: 36px; }
.vk-contacts__steps li::before { counter-increment: cs; content: counter(cs); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--vk-brand); color: #fff; font-size: 0.85rem; font-weight: 800; }
.vk-contacts__steps b { display: block; font-size: 0.95rem; color: var(--vk-ink); }
.vk-contacts__steps span { font-size: 0.82rem; color: var(--vk-muted); }
.vk-contacts__meta { display: grid; gap: 10px; margin-bottom: 18px; font-size: 0.95rem; }
.vk-contacts__meta-label { display: inline-block; min-width: 96px; margin-right: 8px; font-weight: 700; color: var(--vk-deep); }
.vk-contacts__form { padding: 26px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow-lg); }
@media (max-width: 1000px) { .vk-contacts { grid-template-columns: 1fr; } .vk-contacts__steps { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .vk-contacts__cards { grid-template-columns: 1fr; } .vk-contacts__form { padding: 20px 16px; } }

/* ─── Страница «Города и районы»: карта + районы карточками ─── */
.vk-geo-page { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: var(--vk-gap); align-items: start; }
.vk-geo-page__side { position: sticky; top: 16px; }
.vk-geo-page__card { padding: 18px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-geo-page__card > img { display: block; width: 100%; height: auto; margin-bottom: 12px; }
.vk-geo-page__card .vk-geosearch { max-width: none; margin: 0 0 12px; }
.vk-geo-page__card .vk-geo__stats { margin-bottom: 12px; }
.vk-geo-page__note { margin: 0 0 14px; font-size: 0.85rem; color: var(--vk-muted); }
.vk-geo-page__h { margin: 8px 0 14px; font-size: 1.3rem; }
.vk-geo-page__groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vk-geogroup--card { margin: 0; padding: 16px 18px; border-radius: var(--vk-radius); background: #fff; box-shadow: var(--vk-shadow); }
.vk-geogroup--card .vk-geogroup__title { font-size: 1rem; margin-bottom: 8px; }
.vk-geogroup__list--tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.vk-geogroup__list--tiles a { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border: 2px solid var(--vk-line); border-radius: var(--vk-radius-sm); background: #fff; color: var(--vk-ink); }
.vk-geogroup__list--tiles a:hover { border-color: var(--vk-brand); background: #fff; color: var(--vk-ink); }
.vk-geogroup__list--tiles .vk-icon { flex: 0 0 18px; width: 18px; height: 18px; stroke: var(--vk-brand); }
.vk-geogroup__list--tiles b { display: block; font-size: 0.95rem; line-height: 1.2; }
.vk-geogroup__list--tiles i { display: block; font-style: normal; font-size: 0.74rem; color: var(--vk-muted); }
.vk-geogroup--top { margin-bottom: 28px; }
@media (max-width: 1000px) { .vk-geo-page { grid-template-columns: 1fr; } .vk-geo-page__side { position: static; } .vk-geo-page__card { display: grid; grid-template-columns: 200px 1fr; gap: 10px 18px; align-items: center; } .vk-geo-page__card > img { grid-row: 1 / span 4; margin: 0; } .vk-geogroup__list--tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .vk-geo-page__card { grid-template-columns: 1fr; } .vk-geo-page__card > img { grid-row: auto; max-width: 240px; margin: 0 auto; } .vk-geo-page__groups { grid-template-columns: 1fr; } }

/* Этапы с фото: карточка = кадр сверху, номер-бейдж, заголовок и текст */
.vk-steps[data-count="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.vk-steps[data-count="6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vk-steps[data-count="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vk-step.has-photo { position: relative; flex-direction: column; gap: 0; padding: 0; overflow: hidden; }
.vk-step__photo { display: block; aspect-ratio: 3 / 2; background: var(--vk-mist); }
.vk-step__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vk-step.has-photo .vk-step__num { position: absolute; left: 14px; top: 14px; box-shadow: var(--vk-shadow); }
.vk-step.has-photo .vk-step__body { padding: 16px 18px 18px; }
.vk-step.has-photo .vk-step__title { font-size: 1.02rem; }
.vk-step.has-photo p { font-size: 0.9rem; line-height: 1.5; }
@media (max-width: 1100px) { .vk-steps[data-count="5"], .vk-steps[data-count="4"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .vk-steps[data-count="5"], .vk-steps[data-count="4"], .vk-steps[data-count="6"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .vk-steps[data-count="5"], .vk-steps[data-count="4"], .vk-steps[data-count="6"] { grid-template-columns: 1fr; } }

/* Схемы септиков: разрез SVG в карточке */
.vk-schemes--septik { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.vk-scheme--septik .vk-scheme__img { aspect-ratio: 5 / 3; }
.vk-scheme--septik .vk-scheme__img svg { display: block; width: 100%; height: 100%; }
.vk-scheme--septik .vk-scheme__body { padding: 12px 14px 14px; }
.vk-scheme--septik .vk-scheme__name { font-size: 0.98rem; }
.vk-scheme--septik .vk-scheme__for { font-size: 0.78rem; }
.vk-scheme--septik .vk-scheme__price { font-size: 1.15rem; }
.vk-scheme--septik .vk-scheme__body { flex: 1; }
.vk-scheme--septik .vk-scheme__price { margin-top: auto; }
.vk-scheme--septik .vk-scheme__name { min-height: 2.4em; }

/* Что входит: список + кадр с ценой */
.vk-includes.has-photo { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.vk-checks--big { grid-template-columns: 1fr; gap: 14px; }
.vk-checks--big li { font-size: 1.05rem; }
.vk-includes__photo { position: relative; margin: 0; border-radius: var(--vk-radius); overflow: hidden; box-shadow: var(--vk-shadow-lg); }
.vk-includes__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.vk-includes__photo figcaption { position: absolute; left: 14px; bottom: 14px; display: flex; flex-direction: column; padding: 10px 16px; border-radius: 14px; background: var(--vk-sun); color: var(--vk-ink); box-shadow: var(--vk-shadow); }
.vk-includes__photo b { font-size: 1.3rem; line-height: 1.1; }
.vk-includes__photo span { font-size: 0.78rem; }
@media (max-width: 900px) { .vk-includes.has-photo { grid-template-columns: 1fr; } }

/* Карточка услуги в тексте: фото, заголовок, текст, ссылка */
.vk-prose a.vk-sub--card { display: flex; flex-direction: column; padding: 0; overflow: hidden; color: var(--vk-text); text-decoration: none; background: #fff; box-shadow: var(--vk-shadow); transition: transform var(--vk-t), box-shadow var(--vk-t); }
.vk-prose a.vk-sub--card:hover { transform: translateY(-3px); box-shadow: var(--vk-shadow-lg); color: var(--vk-text); }
.vk-sub__photo { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.vk-prose .vk-sub__photo img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; border-radius: 0; transition: transform 0.4s ease; }
a.vk-sub--card:hover .vk-sub__photo img { transform: scale(1.04); }
.vk-sub__body { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px; }
.vk-sub__body h3 { margin: 0 0 8px; font-size: 1.12rem; color: var(--vk-ink); }
.vk-sub__body p, .vk-sub__body { font-size: 0.95rem; line-height: 1.55; }
.vk-sub__more { margin-top: auto; padding-top: 12px; font-weight: 700; color: var(--vk-brand-dark); }
.vk-feature--wide .vk-prose a.vk-sub--card { background: #fff; box-shadow: var(--vk-shadow); }
/* Заполнитель-фото рядом с коротким текстом */
figure.vk-aside--photo { margin: 0; }
figure.vk-aside--photo figcaption { padding: 16px 20px 18px; }
figure.vk-aside--photo b { display: block; margin-bottom: 4px; font-size: 1.05rem; color: var(--vk-ink); }
figure.vk-aside--photo span { font-size: 0.88rem; color: var(--vk-muted); }
.vk-cheaper__badge > span:first-child { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.8; }

/* Подразделы с иконкой (vk-sub--ico): белая карточка, зелёная иконка, номер, полоса слева */
.vk-prose .vk-sub--ico { position: relative; padding: 22px 22px 22px 24px; background: #fff; box-shadow: var(--vk-shadow); border-left: 4px solid var(--vk-brand); transition: transform var(--vk-t), box-shadow var(--vk-t); }
.vk-prose .vk-sub--ico:hover { transform: translateY(-3px); box-shadow: var(--vk-shadow-lg); }
.vk-feature--wide .vk-sub--ico { background: #fff; box-shadow: var(--vk-shadow); }
.vk-sub__ico { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.vk-sub__ico .vk-icon { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--vk-brand-light); stroke: var(--vk-brand-dark); }
.vk-sub__ico i { font-style: normal; font-weight: 800; font-size: 1.6rem; line-height: 1; color: var(--vk-brand-light); }
.vk-prose .vk-sub--ico h3 { margin: 0 0 8px; font-size: 1.1rem; }

/* Этапы без фото: крупный номер, стрелка между шагами, светлая карточка */
.vk-steps:not(.vk-steps--long) .vk-step:not(.has-photo) { position: relative; flex-direction: column; gap: 0; padding: 24px 22px 22px; background: #fff; border-top: 4px solid var(--vk-brand); }
.vk-steps:not(.vk-steps--long) .vk-step:not(.has-photo) .vk-step__num { width: 48px; height: 48px; margin-bottom: 14px; font-size: 1.25rem; box-shadow: 0 6px 16px rgba(121, 149, 17, 0.35); }
.vk-steps:not(.vk-steps--long) .vk-step:not(.has-photo)::after { content: ''; position: absolute; right: -18px; top: 44px; width: 12px; height: 12px; border-right: 3px solid var(--vk-brand); border-top: 3px solid var(--vk-brand); transform: rotate(45deg); opacity: 0.7; }
.vk-steps:not(.vk-steps--long) .vk-step:not(.has-photo):last-child::after { display: none; }
.vk-steps:not(.vk-steps--long) .vk-step:not(.has-photo) .vk-step__title { font-size: 1.08rem; margin-bottom: 8px; }
.vk-steps:not(.vk-steps--long) .vk-step:not(.has-photo) p { font-size: 0.93rem; line-height: 1.55; }
@media (max-width: 760px) { .vk-steps .vk-step:not(.has-photo)::after { display: none; } }

/* Таблицы текста на телефоне: строка → карточка, подпись колонки перед значением */
@media (max-width: 560px) {
	.vk-table.vk-table--cards, .vk-table.vk-table--cards tbody, .vk-table.vk-table--cards tr, .vk-table.vk-table--cards td { display: block; width: 100%; box-sizing: border-box; }
	.vk-table.vk-table--cards thead { display: none; }
	.vk-table.vk-table--cards tr { padding: 12px 14px 10px; border-bottom: 1px solid var(--vk-line); }
	.vk-table.vk-table--cards tbody tr:nth-child(even) { background: var(--vk-mist); }
	.vk-table.vk-table--cards tbody tr:nth-child(even) td, .vk-table.vk-table--cards td { background: none; border: 0; padding: 3px 0; font-size: 0.95rem; }
	.vk-table.vk-table--cards td::before { content: attr(data-label); display: block; font-size: 0.78rem; font-weight: 700; color: var(--vk-deep); text-transform: uppercase; letter-spacing: 0.02em; }
	.vk-table.vk-table--cards td:first-child { font-weight: 700; font-size: 1.02rem; padding-bottom: 6px; }
	.vk-table.vk-table--cards td:first-child::before { display: none; }
	.vk-table.vk-table--cards td[data-label=""]::before { display: none; }
}

/* Локальная карточка города в географии */
.vk-geo__local { margin: 0 0 22px; padding: 18px 20px 16px; background: #fff; border-radius: var(--vk-radius); box-shadow: var(--vk-shadow); border-left: 4px solid var(--vk-brand); }
.vk-geo__local-head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.vk-geo__local-head .vk-icon { flex: 0 0 auto; width: 26px; height: 26px; color: var(--vk-brand); }
.vk-geo__local-head div { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.vk-geo__local-head b { font-size: 1.12rem; line-height: 1.25; }
.vk-geo__local-head span { font-size: 0.85rem; color: var(--vk-muted); }
.vk-geo__local-head i { flex: 0 0 auto; font-style: normal; font-weight: 800; font-size: 0.85rem; color: var(--vk-deep); background: var(--vk-sun); padding: 6px 10px; border-radius: 999px; white-space: nowrap; }
.vk-geo__local p { margin: 0; font-size: 0.95rem; line-height: 1.55; color: var(--vk-ink); }
.vk-geo__near { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 12px; }
.vk-geo__near span { font-size: 0.85rem; font-weight: 700; color: var(--vk-muted); margin-right: 4px; }
@media (max-width: 560px) { .vk-geo__local { padding: 14px 14px 12px; } .vk-geo__local-head { flex-wrap: wrap; } .vk-geo__local-head div { flex: 1 1 0; } .vk-geo__local-head i { order: 3; margin-left: 38px; } }
