/* Лендинг ЦТМ рендерится внутри общих стилей сайта: style.css — это полный
   CSS-reset (margin: 0 на всём, ol/ul { list-style: none }, заголовки обычным
   весом), а addon.css сужает .container до 1200px и вешает на него клирфикс.
   Здесь только возврат к макету, ничего своего.

   Селекторы завёрнуты в :where(), чтобы вес правил остался таким же, как у
   отменяемых сбросов. Иначе оверрайд перебивает отступы самого макета
   (.hero__title, .price__name и прочие). Файл подключается последним. */

/* addon.css: .container { width: 1200px } — макет рассчитан на 1350 */
:where(.body) .container {
    width: auto;
}

:where(.body) .container::before,
:where(.body) .container::after {
    content: none;
}

/* style.css: ol, ul { list-style: none } — в макете это точки перечисления */
:where(.body) .difference__list,
:where(.body) .specialists__text-list {
    list-style: disc;
}

/* style.css: заголовки обычным весом — в макете браузерный жирный */
:where(.body) h3,
:where(.body) h4 {
    font-weight: 700;
}

/* style.css: margin: 0 на всех блоках — возвращаем браузерные отступы.
   Скоуп main, чтобы не задеть модалку записи и футер сайта. */
:where(.body main) p {
    margin: 1em 0;
}

/* .list-reset и .difference__list гасят это сами — у них свой margin/padding */
:where(.body main) ul,
:where(.body main) ol {
    margin: 1em 0;
    padding-left: 40px;
}

:where(.body main) blockquote {
    margin: 1em 40px;
}

:where(.body main) h1 {
    margin: 0.67em 0;
}

:where(.body main) h2 {
    margin: 0.83em 0;
}

:where(.body main) h3 {
    margin: 1em 0;
}

:where(.body main) h4 {
    margin: 1.33em 0;
}

/* .scrollbar рисует полосу всегда (overflow-y: scroll). Тексты в модалках
   приходят из админки и часто короткие — полоса нужна, только когда контент
   действительно не помещается. */
:where(.body) .modal__body {
    overflow-y: auto;
}

/* То же и для отзывов: в макете длинным карточкам класс scrollbar проставлен
   руками, у нас отзывы приходят из админки и длину заранее не знаем.
   .reviews__item в reviews.css стоит overflow: hidden — текст просто обрезался.
   Полосу прокрутки при этом не показываем — в карточке отзыва она лишняя. */
:where(.body) .reviews__item {
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.body .reviews__item::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

/* Бабл Яндекс-карты считает высоту под текст макета (одна строка графика).
   У центра график в три строки — текст вылезал за рамку. Селектор по
   вхождению класса, потому что в имени зашита версия API (ymaps-2-1-79-…),
   и без :where(), т.к. свои стили Яндекс подключает уже после наших. */
.body [class*="balloon__layout"],
.body [class*="balloon__content"] {
    height: auto;
}

/* Модалка — flex-колонка фиксированной высоты 500px с justify-content: center.
   Текст специалистов в неё не помещается (перелив до 292px), а центрирование
   срезает переполнение сверху: начало текста становится недоступным, и прокрутка
   ведёт себя непредсказуемо. min-height: 0 снимает у флекс-элемента запрет
   сжиматься ниже своего контента — тогда он умещается в модалку и прокручивается
   внутри себя. safe center — подстраховка: центрирует, но не режет верх.
   Это правка бага исходного макета, а не интеграции. */
.body .modal {
    justify-content: safe center;
    height: auto;
    max-height: 85vh;
}

.body .modal__content,
.body .modal__body {
    min-height: 0;
}
