/* ===================== УБОРКА МОГИЛ: ДОЧЕРНИЕ СТРАНИЦЫ /dopolnitelnye-uslugi/uborka-mogil/{slug} (2026-11-13) =====================
   Подключается через PageStyles.RequireCss на UborkaMogilPage.cshtml и на родителе UborkaMogil.cshtml (блок #vidy-uborki).
   Классы — ubp-* (устройство как у skp-* скульптуры). Ритм 56px между блоками даёт .service-page--rhythm.
   Фон блоков — #e3efe6 или белая карточка с рамкой 1px #e4e6e2 (страница #FAF9F7 — блоки темнее/контрастнее неё).
   Адаптив (≤1199 / ≤767) — только в css/adaptive/svc-dop.css, раздел «Уборка могил: дочерние страницы». */

/* — Общее — */
.ubp-head { max-width: 840px; margin-bottom: 32px; }
.ubp-head > .eyebrow { margin-bottom: 8px; }
.ubp-h2 { margin: 8px 0 0; font-family: 'Lora', Georgia, serif; font-weight: 600; font-size: 40px; line-height: 1.15; letter-spacing: -0.01em; color: var(--ink); }
.ubp-head > .eyebrow + .ubp-h2 { margin-top: 0; }
.ubp-h3 { margin: 0 0 16px; font-family: 'Lora', Georgia, serif; font-weight: 600; font-size: 22px; line-height: 1.25; color: var(--ink); }
.ubp-lead { margin: 16px 0 0; font-size: 17px; line-height: 1.55; color: var(--ink-3); }
.ubp-note { display: flex; align-items: flex-start; gap: 10px; margin: 20px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--muted); }
.ubp-note [data-lucide], .ubp-note svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 2px; color: var(--green-600); }
.ubp-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; color: var(--green-600); text-decoration: none; }
.ubp-link:hover { color: var(--green-700); text-decoration: underline; }
.ubp-link [data-lucide], .ubp-link svg { width: 16px; height: 16px; flex-shrink: 0; }
.ubp-center { display: flex; justify-content: center; margin-top: 28px; }
.ubp-ico { width: 40px; height: 40px; flex-shrink: 0; display: grid; place-items: center; border-radius: 12px; background: var(--green-50); color: var(--green-600); }
.ubp-ico [data-lucide], .ubp-ico svg { width: 20px; height: 20px; }
.ubp-ico--sm { width: 34px; height: 34px; border-radius: 10px; }
.ubp-ico--sm [data-lucide], .ubp-ico--sm svg { width: 17px; height: 17px; }
.ubp-page > section[id] { scroll-margin-top: calc(var(--header-height, 70px) + 16px); }

.ubp-pic { position: relative; margin: 0; overflow: hidden; border-radius: 20px; background: #e3efe6; aspect-ratio: 4 / 3; }
.ubp-pic img { display: block; width: 100%; height: 100%; object-fit: cover; }

.ubp-checks { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 10px; }
.ubp-checks li { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; line-height: 1.5; color: var(--ink-2); }
.ubp-checks [data-lucide], .ubp-checks svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; color: var(--green-600); }

/* Заглушка вместо кадра (кадр ещё в очереди ai-images) */
.ubp-ph { position: absolute; inset: 0; display: grid; place-items: center; background: #e3efe6; color: var(--green-600); }
.ubp-ph [data-lucide], .ubp-ph svg { width: 44px; height: 44px; opacity: .7; }

/* — Галерея «Готовые работы» (карточки svw-* из components/service-works.css): 8 работ → 2 ряда по 4 — */
.ubp-works .svw__row { row-gap: 24px; }

/* — Карточки — */
.ubp-cards__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; }
.ubp-cards__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ubp-card { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #e4e6e2; border-radius: 20px; overflow: hidden; }
.ubp-card__media { position: relative; aspect-ratio: 4 / 3; background: #e3efe6; }
.ubp-card__body { display: flex; flex-direction: column; padding: 24px; }
.ubp-card:not(.ubp-card--pic) .ubp-card__body .ubp-ico { margin-bottom: 16px; }
.ubp-card__title { margin: 0; font-family: 'Lora', Georgia, serif; font-weight: 600; font-size: 20px; line-height: 1.3; color: var(--ink); }
.ubp-card__text { margin: 12px 0 0; font-size: 15.5px; line-height: 1.55; color: var(--ink-3); }

/* — Шаги — */
.ubp-steps__layout { display: block; }
.ubp-steps__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ubp-steps__list--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ubp-steps__list--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }   /* без висячего ряда: 5 в строку, 6 — 3 × 2 */
.ubp-step { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: 22px; background: #fff; border: 1px solid #e4e6e2; border-radius: 18px; }
.ubp-step__num { font-size: 15px; font-weight: 800; letter-spacing: .04em; color: var(--green-600); }
.ubp-step__title { display: flex; align-items: center; gap: 8px; margin: 0; font-family: 'Lora', Georgia, serif; font-weight: 600; font-size: 18px; line-height: 1.3; color: var(--ink); }
.ubp-step__title [data-lucide], .ubp-step__title svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--green-600); }
.ubp-step__text { margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: var(--ink-3); }
/* с кадром: кадр слева, шаги столбиком справа */
.ubp-steps--pic .ubp-steps__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.ubp-steps--pic .ubp-steps__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.ubp-steps--pic .ubp-step { flex-direction: row; gap: 16px; padding: 18px 20px; }
.ubp-steps--pic .ubp-step__num { min-width: 28px; padding-top: 2px; }
.ubp-steps--pic .ubp-steps__pic { position: sticky; top: calc(var(--header-height, 70px) + 24px); }

/* — Текст + кадр — */
.ubp-split { display: block; }
.ubp-split__copy { max-width: 840px; }
.ubp-split--pic { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.ubp-split--pic .ubp-split__copy { max-width: none; }
.ubp-split--pic.ubp-split--flip .ubp-split__pic { order: -1; }
.ubp-split__copy > .eyebrow { margin-bottom: 8px; }
.ubp-split__p { margin: 16px 0 0; font-size: 17px; line-height: 1.6; color: var(--ink-2); }
.ubp-split__link { margin-top: 20px; }
.ubp-split__cta { margin-top: 24px; }
.ubp-split__link + .ubp-split__cta { display: flex; width: max-content; }

/* — Список на зелёной плашке — */
.ubp-check__card { display: block; padding: 40px 44px; border-radius: 24px; background: #e3efe6; }
.ubp-check--pic .ubp-check__card { display: grid; grid-template-columns: 440px minmax(0, 1fr); gap: 40px; align-items: center; }
.ubp-check__copy > .eyebrow { margin-bottom: 8px; }
.ubp-check__list { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }
.ubp-check__list li { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; line-height: 1.5; color: var(--ink-2); }
.ubp-check__list [data-lucide], .ubp-check__list svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; color: var(--green-600); }
.ubp-check--pic .ubp-check__list { grid-template-columns: minmax(0, 1fr); }
.ubp-check__cta { margin-top: 24px; }

/* — Цена — */
.ubp-price__layout { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 24px; align-items: stretch; }
.ubp-price__card { display: flex; flex-direction: column; gap: 18px; padding: 28px; border-radius: 20px; background: #e3efe6; }
.ubp-price__row + .ubp-price__row { padding-top: 18px; border-top: 1px solid rgba(31, 90, 51, .18); }
.ubp-price__label { font-size: 15px; font-weight: 700; color: var(--green-700); }
.ubp-price__num { margin-top: 6px; font-size: 32px; line-height: 1.15; font-weight: 800; color: var(--ink); }
.ubp-price__note { margin: 8px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); }
.ubp-price__btn { margin-top: auto; align-self: flex-start; }
.ubp-price__factors { padding: 28px; background: #fff; border: 1px solid #e4e6e2; border-radius: 20px; }
.ubp-price__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.ubp-price__factor { display: flex; gap: 12px; align-items: flex-start; }
.ubp-price__factor b { display: block; font-size: 16px; color: var(--ink); }
.ubp-price__factor span:not(.ubp-ico) { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.5; color: var(--ink-3); }

/* — Частая ошибка → как делаем мы — */
.ubp-vs__table { background: #fff; border: 1px solid #e4e6e2; border-radius: 22px; overflow: hidden; }
.ubp-vs__row { display: grid; grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr); border-top: 1px solid #e4e6e2; font-size: 15.5px; line-height: 1.5; color: var(--ink-2); }
.ubp-vs__row:first-child { border-top: 0; }
.ubp-vs__row > span { padding: 18px 24px; }
.ubp-vs__row--head { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); background: #f1f2ef; }
.ubp-vs__row--head > span { padding-top: 14px; padding-bottom: 14px; }
.ubp-vs__row--head .ubp-vs__us-head { background: #e3efe6; color: var(--green-700); }
.ubp-vs__topic { font-weight: 700; color: var(--ink); }
.ubp-vs__bad, .ubp-vs__us { display: flex; gap: 10px; align-items: flex-start; }
.ubp-vs__bad { color: var(--ink-3); }
.ubp-vs__us { background: #f2f7f3; color: var(--ink); }
.ubp-vs__bad > [data-lucide], .ubp-vs__bad > svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 3px; color: #b07a2a; }
.ubp-vs__us > [data-lucide], .ubp-vs__us > svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 3px; color: var(--green-600); }
.ubp-vs__lab { display: none; font-style: normal; font-weight: 700; }

/* — Панель обязательств: 4 пункта — */
.ubp-promise__card { padding: 40px 44px; border-radius: 22px; background: #e3efe6; }
.ubp-promise__head { max-width: 860px; }
.ubp-promise__head > .eyebrow { margin-bottom: 8px; }
.ubp-promise__grid { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ubp-promise__item { display: flex; gap: 12px; align-items: flex-start; padding: 20px; background: #fff; border-radius: 16px; }
.ubp-promise__item b { display: block; font-size: 16px; line-height: 1.35; color: var(--ink); }
.ubp-promise__item span:not(.ubp-ico) { display: block; margin-top: 6px; font-size: 14.5px; line-height: 1.5; color: var(--ink-3); }
.ubp-promise__cta { margin-top: 28px; }

/* — Сомнение → честный ответ: 2×2 — */
.ubp-doubts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ubp-doubt { padding: 26px 28px; background: #fff; border: 1px solid #e4e6e2; border-radius: 20px; }
.ubp-doubt__q { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-family: 'Lora', Georgia, serif; font-weight: 600; font-size: 19px; line-height: 1.35; color: var(--ink); }
.ubp-doubt__q [data-lucide], .ubp-doubt__q svg { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; color: var(--green-600); }
.ubp-doubt__a { margin: 14px 0 0; font-size: 15.5px; line-height: 1.6; color: var(--ink-2); }

/* — Картинка сбоку у price / vs / promise / doubts: секция — сетка, кадр 3:4 справа, прилипает при прокрутке — */
.ubp-haspic { display: grid; grid-template-columns: minmax(0, 1fr) 360px; column-gap: 48px; row-gap: 0; align-items: start; }
.ubp-haspic > * { grid-column: 1; min-width: 0; }
.ubp-haspic > .ubp-aside { grid-column: 2; grid-row: 1 / span 12; align-self: start; position: sticky; top: 96px; margin: 0; border-radius: 24px; overflow: hidden; aspect-ratio: 3 / 4; background: #e3efe6; }
.ubp-aside img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ubp-haspic .ubp-promise__grid, .ubp-haspic .ubp-doubts__grid, .ubp-haspic .ubp-price__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ubp-haspic .ubp-price__layout { grid-template-columns: minmax(0, 1fr); }
.ubp-haspic .ubp-vs__row { grid-template-columns: 140px minmax(0, 1fr) minmax(0, 1fr); }

/* — Перелинковка по кругу: 4 следующие страницы с кадром — */
.ubp-next__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ubp-next__grid > li { display: flex; min-width: 0; }
.ubp-next__card { display: flex; flex-direction: column; width: 100%; background: #fff; border: 1px solid #e4e6e2; border-radius: 20px; overflow: hidden; color: inherit; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.ubp-next__card:hover { border-color: var(--green-600); box-shadow: 0 14px 30px -24px rgba(20, 24, 26, .35); }
.ubp-next__pic { position: relative; display: block; aspect-ratio: 4 / 3; background: #e3efe6; overflow: hidden; }
.ubp-next__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ubp-next__body { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px; }
.ubp-next__title { font-family: 'Lora', Georgia, serif; font-size: 18px; font-weight: 600; line-height: 1.3; color: var(--ink); }
.ubp-next__text { margin-top: 8px; font-size: 15px; line-height: 1.5; color: var(--ink-3); }
.ubp-next__go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 16px; font-size: 15px; font-weight: 600; color: var(--green-600); }
.ubp-next__go [data-lucide], .ubp-next__go svg { width: 16px; height: 16px; }
.ubp-next__more { flex-wrap: wrap; gap: 12px 32px; }

/* — «Что ещё можно заказать» карточками с фото (как «Популярные услуги»): 3 колонки на компьютере — */
.services-row.ubp-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; overflow: visible; }
.services-row.ubp-related .service-card { width: auto; min-width: 0; flex: none; }
.ubp-related .service-card .pic { position: relative; }

/* — Хаб на родителе: «Виды уборки» (#vidy-uborki), 5 карточек — */
.ubp-hub__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.ubp-hub__grid > li { display: flex; min-width: 0; }
