/* =====================================================================================================================
   АДАПТИВ — страницы «Объявления», «Книги», «О нас», «Контакты», «Вопросы», «Франшиза», «Профессионалам» (Б-082…Б-114).
   Планшет — @media (max-width: 1199px), телефон — @media (max-width: 767px). Компьютерные стили — в css/pages/*.css.
   ===================================================================================================================== */


/* Б-082 Объявления — каталог /obyavleniya — класс ads-page
   Боковой панели фильтров нет: кнопка «Фильтры N» (filtersOpen) стоит слева в строке инструментов
   (кнопка — сосед панели и ленты, поэтому прижата абсолютно к верху .ads-layout, а строке оставлено место слева). */
@media (max-width: 1199px) {
  .ads-page { padding: 8px 28px 56px; }
  .ads-page .ads-layout { position: relative; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ads-page .ads-filters-toggle {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
  }
  .ads-page .ads-filters-toggle :is(svg, [data-lucide]) { width: 18px; height: 18px; color: var(--green-700); }
  .ads-page .ads-filters-toggle__count {
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--green-50);
    color: var(--green-700);
    font-size: 13px;
  }
  .ads-page .ads-filters { display: none; position: static; margin: 56px 0 20px; }
  .ads-page .ads-filters.is-open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
  .ads-page .ads-filters.is-open > .ads-filters__head,
  .ads-page .ads-filters.is-open > .ads-filters__apply { grid-column: 1 / -1; }
  .ads-page .ads-toolbar { min-height: 44px; padding-left: 230px; }
  .ads-page .ads-layout:has(.ads-filters.is-open) .ads-toolbar { padding-left: 0; }

  .ads-page .ads-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .ads-page .ad-row { grid-template-columns: 160px minmax(0, 1fr) 200px; }
}
@media (max-width: 767px) {
  .ads-page { padding: 4px 16px 48px; }
  .ads-page .ads-page__head { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 20px; }
  .ads-page .ads-page__head h1 { font-size: 28px; }
  .ads-page .ads-page__submit { justify-content: center; min-height: 52px; }

  /* строка 1: «Фильтры N» | сортировка; строка 2: «N объявлений» | Плитки/Списком */
  .ads-page .ads-filters-toggle { width: calc(50% - 6px); justify-content: center; padding: 0 10px; }
  .ads-page .ads-filters.is-open { grid-template-columns: minmax(0, 1fr); }
  .ads-page .ads-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    padding-left: 0;
  }
  .ads-page .ads-toolbar__controls { display: contents; }
  .ads-page .ads-sort { grid-column: 2; grid-row: 1; }
  .ads-page .ads-sort__label { display: none; }
  .ads-page .ads-sort .ads-dd { width: 100%; min-width: 0; }
  .ads-page .ads-toolbar__count { grid-column: 1; grid-row: 2; }
  .ads-page .ads-view { grid-column: 2; grid-row: 2; justify-self: end; }
  .ads-page .ads-view__btn { padding: 0 10px; }
  /* фильтры открыты — сортировка отдельной строкой под панелью */
  .ads-page .ads-layout:has(.ads-filters.is-open) .ads-sort { grid-column: 1 / -1; }

  /* компактная карточка: фото 104×104 слева, справа теги, название, место, цена; автор и время — на всю ширину */
  .ads-page .ads-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ads-page .ad-card {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    column-gap: 14px;
    row-gap: 6px;
    align-items: start;
    padding: 12px;
  }
  .ads-page .ad-card__media { grid-row: 1 / span 4; height: 104px; aspect-ratio: auto; border-radius: 12px; }
  .ads-page .ad-card__fav { top: 6px; right: 6px; width: 30px; height: 30px; }
  .ads-page .ad-card__fav :is(svg, [data-lucide]) { width: 15px; height: 15px; }
  .ads-page .ad-card__body { display: contents; }
  .ads-page .ad-card__price { font-size: 17px; }
  .ads-page .ad-card__foot { grid-column: 1 / -1; gap: 6px; margin-top: 6px; }

  .ads-page .ad-row { grid-template-columns: 104px minmax(0, 1fr); gap: 6px 14px; padding: 12px; }
  .ads-page .ad-row__media { width: 104px; height: 104px; aspect-ratio: auto; border-radius: 12px; }
  .ads-page .ad-row__text { display: none; }
  .ads-page .ad-row__side { grid-column: 1 / -1; grid-template-columns: auto 1fr; align-items: center; padding-right: 40px; }
  .ads-page .ad-row__price { grid-column: 1 / -1; }
  .ads-page .ad-row__btn { display: none; }

  .ads-page .ads-invite { flex-direction: column; align-items: stretch; gap: 14px; padding: 18px; }
  .ads-page .ads-invite__btn { justify-content: center; min-height: 52px; }
  .ads-page .ads-more__btn { width: 100%; justify-content: center; min-height: 52px; }
}


/* Б-083 Ограда из металла с монтажом — шапка объявления — класс ad-detail__head
   Раскладка страницы объявления на планшете и телефоне: колонки «основное | боковая» раскрыты (display: contents),
   карточка цены встаёт сразу под галерею, остальные карточки боковой колонки — после описания (рекомендация макета Б-084). */
@media (max-width: 1199px) {
  .ad-detail { padding: 8px 28px 56px; }
  .ad-detail .ad-detail__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row dense; gap: 0 20px; }
  .ad-detail .ad-detail__main,
  .ad-detail .ad-detail__aside { display: contents; }
  .ad-detail .ad-detail__main > * { grid-column: 1 / -1; order: 4; min-width: 0; }
  .ad-detail .ad-detail__head { order: 1; }
  .ad-detail .ad-detail__title { font-size: 36px; }
  .ad-detail .ad-detail__loc { font-size: 15px; }
}
@media (max-width: 767px) {
  .ad-detail { padding: 4px 16px 48px; }
  .ad-detail .ad-detail__grid { grid-template-columns: minmax(0, 1fr); }
  .ad-detail .ad-detail__badge { min-height: 32px; font-size: 14px; }
  .ad-detail .ad-detail__title { font-size: 28px; }
}


/* Б-084 Безопасность сделок — боковая колонка объявления — класс ad-detail__aside
   Планшет: цена — на всю ширину под галереей (кнопки в ряд); исполнитель | безопасность — две колонки; похожие — 3 в ряд.
   Телефон: все карточки одной колонкой, цена — сразу после галереи. */
@media (max-width: 1199px) {
  .ad-detail .ad-detail__card { margin-bottom: 20px; }
  .ad-detail .ad-detail__card--price {
    grid-column: 1 / -1;
    order: 3;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 8px 16px;
    margin-bottom: 32px;
  }
  .ad-detail .ad-detail__card--price .ad-detail__price-block { grid-row: 1 / span 2; }
  .ad-detail .ad-detail__card--price .ad-detail__btn--primary { grid-column: 2; grid-row: 1; }
  .ad-detail .ad-detail__card--price .ad-detail__btn--outline { grid-column: 3; grid-row: 1; }
  .ad-detail .ad-detail__card--price .ad-detail__price-hint { grid-column: 2; grid-row: 2; margin: 0; }
  .ad-detail .ad-detail__card--price .ad-detail__response-time { grid-column: 3; grid-row: 2; margin: 0; }
  .ad-detail .ad-detail__card--executor { grid-column: 2; grid-row: span 2; order: 5; }
  .ad-detail .ad-detail__card--safe { grid-column: 1; order: 5; }
  .ad-detail .ad-detail__card--similar { grid-column: 1 / -1; order: 6; }
  .ad-detail .ad-detail__similar-list { flex-direction: row; gap: 16px; }
  .ad-detail .ad-detail__similar-item { flex: 1 1 0; flex-direction: column; align-items: stretch; min-width: 0; }
  .ad-detail .ad-detail__similar-item img { width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 12px; }
  .ad-detail .ad-detail__similar-title { font-size: 15px; }
  .ad-detail .ad-detail__similar-meta { font-size: 14px; }
  .ad-detail .ad-detail__similar-all { padding: 12px 28px; }
  .ad-detail .ad-detail__card h3 { font-size: 18px; }
  .ad-detail .ad-detail__card p,
  .ad-detail .ad-detail__executor-stat,
  .ad-detail .ad-detail__executor-adv-title,
  .ad-detail .ad-detail__executor-adv li { font-size: 15px; }
  .ad-detail .ad-detail__executor-name { font-size: 17px; }
  .ad-detail .ad-detail__executor-since { font-size: 13px; }
}
@media (max-width: 767px) {
  .ad-detail .ad-detail__card--price { display: block; margin-bottom: 28px; }
  .ad-detail .ad-detail__price-val { font-size: 34px; }
  .ad-detail .ad-detail__card--price .ad-detail__btn { min-height: 52px; }
  .ad-detail .ad-detail__card--price .ad-detail__price-hint { margin: 10px 0 14px; }
  .ad-detail .ad-detail__card--price .ad-detail__response-time { margin-top: 12px; }
  .ad-detail .ad-detail__card--executor { grid-column: 1; grid-row: auto; }
  .ad-detail .ad-detail__executor-avatar { width: 64px; height: 64px; }
  .ad-detail .ad-detail__executor-since { font-size: 14px; }
  .ad-detail .ad-detail__similar-list { flex-direction: column; gap: 14px; }
  .ad-detail .ad-detail__similar-item { flex-direction: row; align-items: center; }
  .ad-detail .ad-detail__similar-item img { width: 88px; flex: none; border-radius: 8px; }
  .ad-detail .ad-detail__similar-all { min-height: 52px; }
  .ad-detail .ad-detail__bottom { flex-direction: column; align-items: stretch; padding: 20px; }
  .ad-detail .ad-detail__bottom-btn { min-height: 52px; }
}


/* Б-085 Галерея фото объявления — класс ad-detail__gallery: миниатюры — рядом из 5 под главным фото */
@media (max-width: 1199px) {
  .ad-detail .ad-detail__gallery { order: 2; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-bottom: 24px; }
  .ad-detail .ad-detail__gallery-thumbs { grid-template-rows: none; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
  .ad-detail .ad-detail__gallery-thumb { aspect-ratio: 4 / 3; }
}
@media (max-width: 767px) {
  .ad-detail .ad-detail__gallery { gap: 8px; margin-bottom: 20px; }
  .ad-detail .ad-detail__gallery-main { aspect-ratio: 4 / 3; }
  .ad-detail .ad-detail__gallery-all { top: 10px; right: 10px; min-height: 40px; padding: 0 12px; box-shadow: 0 6px 16px -8px rgba(20, 24, 26, .35); }
  .ad-detail .ad-detail__gallery-thumbs { gap: 6px; }
  .ad-detail .ad-detail__gallery-thumb { border-radius: 8px; }
  .ad-detail .ad-detail__gallery-more { font-size: 12px; }
}


/* Б-086 Описание работы — раздел объявления — класс ad-detail__section
   (вариант «Другие наши объявления» — 4 в ряд на планшете, лента m-swipe на телефоне; «Отзывы» — карточки во всю ширину) */
@media (max-width: 1199px) {
  .ad-detail .ad-detail__section h2 { font-size: 28px; }
  .ad-detail .ad-detail__section p { font-size: 17px; max-width: 900px; }
  .ad-detail .ad-detail__specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ad-detail .ad-detail__section { margin-bottom: 28px; }
  .ad-detail .ad-detail__section h2 { font-size: 24px; }
  .ad-detail .ad-detail__section p { font-size: 16px; }
  .ad-detail .ad-detail__included { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ad-detail .ad-detail__specs { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 28px; }
  .ad-detail .ad-detail__works-item { aspect-ratio: auto; }
  .ad-detail .ad-detail__review { padding: 16px; }
  .ad-detail .ad-detail__section-head { flex-wrap: wrap; }
}


/* Б-087 Подать объявление — форма /obyavleniya/podat — класс podat */
@media (max-width: 1199px) {
  .podat .podat__container { max-width: none; padding: 0 28px; }
  .podat .podat__container--narrow { max-width: 720px; }
  .podat .podat__head p { max-width: none; }
  .podat .podat__section { padding: 28px; }
}
@media (max-width: 767px) {
  .podat .podat__container { padding: 0 16px; }
  .podat .podat__head h1 { font-size: 28px; }
  .podat .podat__section { padding: 18px; }
  .podat .podat__row { grid-template-columns: minmax(0, 1fr); }
  .podat .podat__field :is(input, select) { min-height: 52px; font-size: 16px; }
  .podat .podat__field textarea { min-height: 130px; font-size: 16px; }
  .podat .podat-select.is-ready .podat-select__btn { min-height: 52px; font-size: 16px; }
  .podat .podat__upload-btn { width: 100%; justify-content: center; min-height: 52px; }
  .podat .podat__actions { flex-direction: column; align-items: stretch; gap: 10px; }
  .podat .podat__actions .podat__btn { min-height: 52px; }
  .podat .podat__actions-note { text-align: center; }
  /* шаг 2 (предпросмотр): карточка и страница — друг под другом */
  .podat .podat__preview { grid-template-columns: minmax(0, 1fr); }
  .podat .podat__preview-actions { flex-direction: column; align-items: stretch; }
}


/* Б-088 Как заказать памятник правильно — версия 2.0 — первый экран обложки книги — класс book-cover__hero
   (здесь же каркас страниц книги: верхняя панель, сетка, шторка содержания — без них блоки книги не встают).
   Планшет: на обложке, содержании, закладках — содержание только шторкой (кнопка «Содержание»);
   в главе — постоянная левая колонка 280px (Б-090). Телефон: везде шторка, внизу панель «Назад / закладка / Далее». */
@media (max-width: 1199px) {
  .book-body { --book-top: 56px; }
  .book-topbar__inner { padding: 0 28px; gap: 14px; }
  .book-topbar__menu { display: inline-flex; }
  .book:has(.book__grid--reading) .book-topbar__menu { display: none; }
  .book-topbar__pct-word { display: none; }
  .book-topbar__bar { width: 80px; }

  .book__grid { padding: 0 28px; }
  .book__grid--wide { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .book__grid--wide .book-sidebar,
  .book-sidebar.is-open {
    position: fixed; top: 0; bottom: 0; left: 0; z-index: 60; width: min(360px, 88vw); max-height: none;
    background: var(--page); padding: 16px 16px 32px; transform: translateX(-104%); transition: transform .25s ease;
    box-shadow: 24px 0 48px -24px rgba(20, 24, 26, .35); visibility: hidden;
  }
  .book__grid--wide .book-sidebar.is-open,
  .book-sidebar.is-open { transform: none; visibility: visible; }
  .book__grid--wide .book-sidebar__close { display: grid; }
  .book__grid--wide .book-search__results { right: 0; }
  .book-drawer-backdrop { position: fixed; inset: 0; z-index: 55; background: rgba(20, 24, 26, .45); }

  .book-cover { gap: 56px; }
  .book-cover .book-cover__hero { grid-template-columns: minmax(0, 1fr) 330px; gap: 40px; align-items: center; }
  .book-cover .book-cover__hero > .book-cover__photo { padding-top: 0; }
  .book-cover .book-cover__title { font-size: 44px; }
  .book-cover .book-cover__subtitle { font-size: 17px; }
  .book-cover .book-cover__facts { font-size: 15px; }
  .book-cover .book-cover__facts b { font-size: 20px; }
  .book-cover .book-cover__author-img,
  .book-cover .book-cover__author-img img { max-width: 330px; border-radius: 24px; }
}
@media (max-width: 767px) {
  .book-topbar__inner { padding: 0 12px; gap: 10px; }
  .book .book-topbar__menu,
  .book:has(.book__grid--reading) .book-topbar__menu { display: inline-flex; padding: 8px 10px; }
  .book-topbar__menu-word,
  .book-topbar__logo,
  .book-topbar__title { display: none; }
  .book-topbar__catalog { padding: 8px 12px; }
  .book-topbar__chapter { display: block; overflow: hidden; text-overflow: ellipsis; min-width: 0; font-size: 13px; }
  .book-topbar__bar { width: 48px; }

  .book__grid { padding: 0 16px; }
  .book__main { padding: 24px 0 40px; }
  .book .book-sidebar {
    position: fixed; top: 0; bottom: 0; left: 0; z-index: 60; width: min(343px, 88vw); max-height: none;
    background: var(--page); padding: 16px 16px 32px; transform: translateX(-104%); transition: transform .25s ease;
    box-shadow: 24px 0 48px -24px rgba(20, 24, 26, .35); visibility: hidden;
  }
  .book .book-sidebar.is-open { transform: none; visibility: visible; }
  .book .book-sidebar__close { display: grid; width: 44px; height: 44px; }
  .book .book-sidebar__title { font-size: 19px; }
  .book .book-search__results { right: 0; }

  .book-bottomnav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(10px); border-top: 1px solid var(--line);
  }
  .book-bottomnav__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; border-radius: 12px; border: 1px solid var(--line); background: #fff; font-weight: 700; color: var(--ink); }
  .book-bottomnav__btn--next { background: var(--green-700); border-color: var(--green-700); color: #fff; }
  .book-bottomnav__btn svg { width: 18px; height: 18px; }
  .book-bottomnav__mark { width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--line); display: grid; place-items: center; color: var(--green-700); background: #fff; }
  .book:has(.book-bottomnav) ~ .book-footer { padding-bottom: 76px; }

  .book-cover { gap: 44px; }
  .book-cover .book-cover__hero { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .book-cover .book-cover__title { font-size: 30px; }
  .book-cover .book-cover__subtitle { font-size: 16px; }
  .book-cover .book-cover__actions { flex-direction: column; gap: 10px; }
  .book-cover .book-cover__actions .book-btn { width: 100%; min-height: 52px; justify-content: center; text-align: center; }
  .book-cover .book-cover__facts { flex-wrap: nowrap; }
  .book-cover .book-cover__photo { justify-self: center; width: 72%; }
  .book-cover .book-cover__lead { font-size: 16px; }
  .book-cover .book-cover__practice { padding: 24px 20px; }
  .book-cover .book-cover__practice-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .book-cover .book-cover__practice-grid p,
  .book-cover .book-cover__why p { font-size: 17px; }
  .book-cover .book-path li { width: 100%; margin-right: 0; }
  .book-cover .book-path li:not(:last-child)::after { content: "↓"; right: auto; left: 18px; top: auto; bottom: -14px; transform: none; }
  .book__grid--wide .book__main { padding-bottom: 32px; }
}


/* Б-089 Для кого эта книга — секция обложки — класс book-cover__section
   (тот же компонент: «Что вы узнаете», «Содержание книги», «Как пользоваться книгой») */
@media (max-width: 1199px) {
  .book-cover .book-cover__h2 { font-size: 36px; }
  .book-cover .book-cover__audience { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .book-cover .book-card { grid-template-columns: 48px minmax(0, 1fr); column-gap: 16px; row-gap: 4px; }
  .book-cover .book-card__ico { grid-row: 1 / span 2; width: 48px; height: 48px; margin: 0; }
  .book-cover .book-card__text { font-size: 15px; }
  .book-cover .book-parts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .book-cover .book-part__desc { font-size: 14px; }
}
@media (max-width: 767px) {
  .book-cover .book-cover__h2 { font-size: 26px; }
  /* каждая секция — белая плита, внутри — строки-ссылки с разделителями и шевроном */
  .book-cover .book-cover__section:not(.book-cover__practice) {
    padding: 22px 20px; border: 1px solid var(--line); border-radius: var(--book-radius); background: #fff;
  }
  .book-cover .book-cover__section:not(.book-cover__practice) .book-cover__h2 { margin-bottom: 4px; }
  .book-cover .book-cover__audience { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .book-cover .book-card {
    position: relative; grid-template-columns: 44px minmax(0, 1fr); padding: 16px 26px 16px 0;
    border: 0; border-radius: 0; background: none;
  }
  .book-cover .book-card:hover { transform: none; }
  .book-cover .book-card + .book-card,
  .book-cover .book-part + .book-part { border-top: 1px solid var(--line); }
  .book-cover .book-card::after {
    content: ""; position: absolute; right: 4px; top: 24px; width: 8px; height: 8px;
    border-top: 2px solid var(--muted); border-right: 2px solid var(--muted); transform: rotate(45deg);
  }
  .book-cover .book-card__ico { width: 44px; height: 44px; }
  .book-cover .book-card__title { font-size: 16px; }
  /* «Что вы узнаете»: один столбец галочек без рамок */
  .book-cover .book-learn { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .book-cover .book-learn li { padding: 8px 0; border: 0; background: none; font-weight: 400; }
  /* «Содержание книги»: список «номер слева, текст справа», первые 5 + «Показать все (N)», «Все главы» — кнопкой */
  .book-cover .book-parts { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .book-cover .book-part { grid-template-columns: 44px minmax(0, 1fr); padding: 16px 0; border: 0; border-radius: 0; background: none; }
  .book-cover .book-part__num { width: 44px; height: 44px; }
  .book-cover .book-part__title { font-size: 16px; }
  .book-cover .book-part__desc { font-size: 15px; }
  .book-cover .book-parts:not(.is-all) > .book-part:nth-child(n + 6) { display: none; }
  .book-cover .book-parts__more,
  .book-cover .book-parts__all { display: flex; justify-content: center; width: 100%; min-height: 52px; margin-top: 12px; }
  .book-cover .book-parts__more { border-style: dashed; color: var(--green-700); }
  .book-cover .book-parts__all { border: 1.5px solid var(--green-700); background: #fff; color: var(--green-700); box-shadow: none; }
}


/* Б-090 Оглавление книги — части и главы в боковой панели — класс book-toc__part
   Планшет: в главе — постоянная левая колонка 280px (sticky, прокрутка внутри); на телефоне — та же панель шторкой. */
@media (max-width: 1199px) {
  .book__grid--reading { grid-template-columns: 280px minmax(0, 1fr); justify-content: start; gap: 0 40px; }
  .book__grid--reading .book-sidebar { grid-row: 1 / span 2; }
  .book-toc__part-btn { min-height: 44px; }
}
@media (max-width: 767px) {
  .book__grid--reading { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .book__grid--reading .book-sidebar { grid-row: auto; }
  .book-toc__ch { font-size: 15px; color: var(--ink-2); }
}


/* Б-091 Глава книги — экран чтения — класс book-chapter
   Правой колонки нет: «В этой главе» — свёрнутый список под строкой «Читать / Сохранить» (details в разметке),
   «Связанная услуга» и «Задать вопрос» (колонка .book-aside) встают под текстом главы одним рядом. */
@media (max-width: 1199px) {
  .book__grid--reading .book-aside { grid-column: 2; padding: 0 0 56px; align-self: start; }
  .book__grid--reading .book__main { padding-bottom: 32px; }
  .book-aside .book-aside__sticky { position: static; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; }
  .book-aside .book-aside__toc,
  .book-aside .book-aside__card { display: none; }
  .book-aside .book-aside__ask-btn { min-height: 52px; padding: 12px 22px; }

  .book-chapter__toc { margin: -12px 0 28px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
  .book-chapter__toc summary {
    display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 48px; padding: 0 16px;
    list-style: none; font-weight: 700; color: var(--ink); cursor: pointer;
  }
  .book-chapter__toc summary::-webkit-details-marker { display: none; }
  .book-chapter__toc summary svg { width: 18px; height: 18px; color: var(--green-700); transition: transform .2s; }
  .book-chapter__toc[open] summary svg { transform: rotate(180deg); }
  .book-chapter__toc ul { list-style: none; margin: 0; padding: 0 16px 12px; display: grid; gap: 2px; }
  .book-chapter__toc a { display: block; padding: 8px 0 8px 12px; border-left: 2px solid var(--line); color: var(--ink-3); }

  .book-chapter .book-chapter__title { font-size: 32px; }
  .book-chapter .book-chapter__mark { min-height: 44px; padding: 0 14px; }
  .book-chapter .book-prose { font-size: 17px; line-height: 1.7; }
  .book-chapter .book-prose h2 { font-size: 23px; }
  .book-sales { grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .book-final__grid { grid-template-columns: minmax(0, 1fr); }
  .book-calc__out { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .book__grid--reading .book-aside { grid-column: 1; padding-bottom: 32px; }
  .book-aside .book-aside__sticky { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .book-pager { display: none; }

  .book-chapter .book-crumbs { font-size: 13px; }
  .book-chapter .book-chapter__title { font-size: 27px; }
  .book-chapter .book-chapter__meta { flex-wrap: nowrap; justify-content: space-between; margin: 14px 0 22px; }
  .book-chapter .book-figure figcaption { font-size: 13px; }
  .book-box { padding: 18px; font-size: 16px; }
  .book-process li { width: 100%; margin-right: 0 !important; }   /* в основном файле ширина шага задана с !important */
  .book-process li:not(:last-child)::after { content: "↓"; right: auto; left: 16px; top: auto; bottom: -15px; transform: none; }
  .book-process ol,
  .book-process ul { gap: 14px; }
  .book-offer,
  .book-offer--medium { grid-template-columns: minmax(0, 1fr); }
  .book-offer__ico { display: none; }
  .book-offer--medium .book-offer__btn,
  .book-offer__btn { grid-column: auto; justify-self: stretch; justify-content: center; }
  .book-choose,
  .book-calc__grid,
  .book-lead__grid,
  .book-lead__quick-row,
  .book-compare,
  .book-prompt__text { grid-template-columns: minmax(0, 1fr); }
  .book-prompt__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .book-contents__ch { grid-template-columns: 40px minmax(0, 1fr); }
  .book-contents__ch-meta { grid-column: 2; justify-items: start; }
  .book-bridge { padding: 18px; }
  .book-bridge__head { grid-template-columns: minmax(0, 1fr); }
  .book-bridge__ico { display: none; }
  .book-bridge__actions { margin-left: 0; }
  .book-bridge__btn { flex: 1 1 100%; justify-content: center; }
  .book-ask-modal { padding: 0; align-items: stretch; }
  .book-ask-modal__box { border-radius: 0; padding: 28px 20px 24px; min-height: 100%; }
  .book-ask-modal__head { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .book-ask-modal__ico { width: 48px; height: 48px; }
  .book-ask-modal__title { font-size: 24px; }
  .book-ask-modal .book-lead__grid { grid-template-columns: minmax(0, 1fr); }
  .book-ask-modal textarea { height: 180px; }
  .book-ask-modal .book-lead__submit { width: 100%; }
}


/* Б-092 Связанные услуги — в конце главы — класс book-services */
@media (max-width: 1199px) {
  .book-services .book-services__card { grid-template-columns: 48px minmax(0, 1fr) 16px; }
  .book-services .book-services__ico { width: 48px; height: 48px; }
  .book-services .book-services__name { font-size: 16px; }
  .book-services .book-services__text { font-size: 15px; }
}
@media (max-width: 767px) {
  .book-services .book-services__grid { grid-template-columns: minmax(0, 1fr); }
  .book-services .book-services__card { min-height: 64px; }
}


/* Б-093 Также полезно — ссылки на другие главы — класс book-related */
@media (max-width: 1199px) {
  .book-related ul { gap: 10px; }
}
@media (max-width: 767px) {
  .book-related a { min-height: 62px; padding: 16px 18px; font-size: 16px; font-weight: 500; }
}


/* Б-094 «Помни Всегда» — первый экран /about — класс about-hero
   Колонки копии и фото «раскрываются» (display: contents), чтобы факты и преимущества встали ниже на всю ширину. */
@media (max-width: 1199px) {
  .about-hero { padding: 8px 28px 40px; }
  .about-hero .about-hero__grid {
    grid-template-columns: minmax(0, 1fr) 370px;
    grid-template-areas:
      "eyebrow visual" "title visual" "lead visual" "actions visual"
      "facts facts" "highlights highlights";
    column-gap: 32px;
    row-gap: 0;
  }
  .about-hero .about-hero__copy,
  .about-hero .about-hero__aside { display: contents; }
  .about-hero .eyebrow { grid-area: eyebrow; }
  .about-hero .about-hero__title { grid-area: title; font-size: 38px; }
  .about-hero .about-hero__lead { grid-area: lead; font-size: 17px; max-width: none; }
  .about-hero .about-hero__actions { grid-area: actions; margin-bottom: 0; }
  .about-hero .about-hero__visual { grid-area: visual; align-self: center; }
  .about-hero .about-hero__facts {
    grid-area: facts;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
  }
  .about-hero .about-hero__fact { padding: 16px; }
  .about-hero .about-hero__fact-value { font-size: 22px; }
  .about-hero .about-hero__fact-label { font-size: 14px; }
  .about-hero .about-hero__highlights {
    grid-area: highlights;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 32px;
  }
  .about-hero .about-hero__highlight-title { font-size: 16px; }
  .about-hero .about-hero__highlight-desc { font-size: 15px; }
}
@media (max-width: 767px) {
  .about-hero { padding: 8px 16px 32px; }
  .about-hero .about-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "eyebrow" "title" "lead" "actions" "visual" "facts" "highlights";
  }
  .about-hero .about-hero__copy .eyebrow { margin-bottom: 12px; }
  .about-hero .about-hero__title { font-size: 28px; margin-bottom: 14px; }
  .about-hero .about-hero__lead { font-size: 16px; margin-bottom: 20px; }
  .about-hero .about-hero__actions { flex-direction: column; gap: 10px; }
  .about-hero .about-hero__btn { min-width: 0; min-height: 64px; }
  .about-hero .about-hero__btn-main { font-size: 16px; }
  .about-hero .about-hero__btn-sub { font-size: 13px; }
  .about-hero .about-hero__visual { margin-top: 24px; }
  .about-hero .about-hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
  .about-hero .about-hero__highlights { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}


/* Б-095 Зачем мы это делаем — класс about-page__mission (здесь же заголовки и подзаголовки всех секций /about) */
@media (max-width: 1199px) {
  .about-page .about-page__section-title { font-size: 36px; }
  .about-page .about-page__section-sub { font-size: 17px; }
  .about-page__mission { grid-template-columns: minmax(0, 1fr) 340px; gap: 36px; }
  .about-page__mission .about-page__mission-copy p { font-size: 17px; }
  .about-page__mission .about-page__mission-list li { font-size: 16px; }
  .about-page__mission .about-page__mission-card { padding: 22px; border-radius: 24px; }
  .about-page__mission .about-page__mission-card-head { margin-bottom: 16px; }
  .about-page__mission .about-page__mission-card-title { font-size: 16px; }
  .about-page__mission .about-page__mission-card-sub,
  .about-page__mission .about-page__mission-row,
  .about-page__mission .about-page__mission-row strong { font-size: 15px; }
  .about-page__mission .about-page__mission-card-rows { gap: 0; }
  .about-page__mission .about-page__mission-row { padding: 14px 0; }
}
@media (max-width: 767px) {
  .about-page .about-page__section-title { font-size: 28px; }
  .about-page .about-page__section-sub { font-size: 16px; }
  .about-page__mission { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-bottom: 44px; }
  .about-page__mission .about-page__section-title { margin-bottom: 14px; }
  .about-page__mission .about-page__mission-copy p { font-size: 16px; }
}


/* Б-096 4 простых шага — класс about-page__steps (телефон — список с пунктиром вместо ленты) */
@media (max-width: 1199px) {
  .about-page__steps .about-page__steps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-page__steps .about-page__step { padding: 22px; }
  .about-page__steps .about-page__step-num { font-size: 15px; }
  .about-page__steps .about-page__step-title { font-size: 18px; }
  .about-page__steps .about-page__step-desc,
  .about-page__steps .about-page__step-link { font-size: 15px; }
}
@media (max-width: 767px) {
  .about-page__steps { margin-bottom: 44px; }
  .about-page__steps .about-page__steps-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .about-page__steps .about-page__step {
    position: relative;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    column-gap: 16px;
    align-content: start;
    padding: 0 0 24px;
    border: 0;
    border-radius: 0;
    background: none;
  }
  .about-page__steps .about-page__step:not(:last-child)::before {   /* пунктир между кругами */
    content: "";
    position: absolute;
    left: 27px;
    top: 62px;
    bottom: 6px;
    border-left: 2px dashed var(--line);
  }
  .about-page__steps .about-page__step > * { grid-column: 2; }
  .about-page__steps .about-page__step-head {
    grid-column: 1;
    grid-row: 1 / span 3;
    position: relative;
    display: block;
    height: 56px;
    margin: 0;
  }
  .about-page__steps .about-page__step-ico { width: 56px; height: 56px; border-radius: 50%; }
  .about-page__steps .about-page__step-ico [data-lucide] { width: 24px; height: 24px; }
  .about-page__steps .about-page__step-num {
    position: absolute;
    left: -6px;
    top: -6px;
    z-index: 1;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid var(--bg, #f8f7f4);
    background: var(--green-50);
    color: var(--green-700);
    display: grid;
    place-items: center;
    font-size: 13px;
    letter-spacing: 0;
  }
  .about-page__steps .about-page__step-title { margin: 4px 0 6px; }
  .about-page__steps .about-page__step-desc { color: var(--ink-3); }
  .about-page__steps .about-page__step-link { margin-top: 10px; }
}


/* Б-097 Что можно заказать — класс about-page__services (телефон — список, основной вариант макета) */
@media (max-width: 1199px) {
  .about-page__services .about-page__service { padding: 16px; }
  .about-page__services .about-page__service-title { font-size: 16px; }
  .about-page__services .about-page__service-desc { font-size: 14px; }
  .about-page__services .about-page__service-price { font-size: 15px; }
}
@media (max-width: 767px) {
  .about-page__services { margin-bottom: 44px; }
  .about-page__services .about-page__services-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .about-page__services .about-page__service-desc { font-size: 15px; }
}


/* Б-098 Почему выбирают нас — класс about-page__benefits (телефон — одна плита-список) */
@media (max-width: 1199px) {
  .about-page__benefits .about-page__benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-page__benefits .about-page__benefit-title { font-size: 18px; }
  .about-page__benefits .about-page__benefit-desc { font-size: 15px; }
}
@media (max-width: 767px) {
  .about-page__benefits { margin-bottom: 44px; }
  .about-page__benefits .about-page__benefits-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 4px 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--card);
  }
  .about-page__benefits .about-page__benefit {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 14px;
    padding: 16px 0;
    border: 0;
    border-radius: 0;
    background: none;
  }
  .about-page__benefits .about-page__benefit + .about-page__benefit { border-top: 1px solid var(--line); }
  .about-page__benefits .about-page__benefit-ico { grid-row: 1 / span 2; width: 44px; height: 44px; margin: 0; }
  .about-page__benefits .about-page__benefit-title { margin-bottom: 4px; }
}


/* Б-099 Клиентам и исполнителям — классы about-page__audience, about-page__links
   (полоса поддержки — общий partial _FaqSupport / .home-faq__support, его адаптив — у владельца общих блоков) */
@media (max-width: 1199px) {
  .about-page__audience .about-page__audience-card { padding: 20px; }
  .about-page__audience .about-page__audience-ico { margin-bottom: 12px; }
  .about-page__audience .about-page__audience-desc,
  .about-page__audience .about-page__audience-cta,
  .about-page__links .about-page__link-desc { font-size: 15px; }
  .about-page__links .about-page__link-card { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 16px; }
  .about-page__links .about-page__link-ico { width: 44px; height: 44px; }
  .about-page__links .about-page__link-title { font-size: 16px; }
}
@media (max-width: 767px) {
  .about-page__audience .about-page__audience-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .about-page__links { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}


/* Б-100 Мы всегда на связи — первый экран /kontakty — класс kt-hero */
@media (max-width: 1199px) {
  .kt-page .kt-wrap { padding-inline: 28px; }
  .kt-hero .kt-hero__title { font-size: 56px; }
  .kt-hero .kt-hero__lead { max-width: 600px; font-size: 18px; }
  .kt-hero .kt-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .kt-hero .kt-hero__fact { font-size: 14px; }
}
@media (max-width: 767px) {
  .kt-page .kt-wrap { padding-inline: 16px; }
  .kt-hero .kt-hero__img { object-position: 60% 40%; }
  .kt-hero .kt-hero__media::after { background: rgba(8, 12, 10, .75); }
  .kt-hero .breadcrumbs { padding: 14px 0 20px; font-size: 14px; }
  .kt-hero .kt-hero__title { font-size: 40px; margin-bottom: 14px; }
  .kt-hero .kt-hero__lead { font-size: 16px; margin-bottom: 24px; }
  .kt-hero .kt-hero__facts { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .kt-hero .kt-hero__fact-ico { width: 44px; height: 44px; }
}


/* Б-101 Свяжитесь с нами удобным способом — класс kt-section (каналы; варианты: «Быстрые ответы», «Оставьте заявку») */
@media (max-width: 1199px) {
  .kt-channels .kt-channels__head { align-items: flex-end; }
  .kt-channels .kt-h2 { max-width: 400px; }
  .kt-channels .kt-channels__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .kt-channels .kt-channel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    grid-template-rows: auto 1fr;
    column-gap: 32px;
    align-items: start;
    padding: 24px 28px;
  }
  .kt-channels .kt-channel__top { grid-row: 1 / span 2; align-self: center; margin: 0; }
  .kt-channels .kt-channel__title { font-size: 19px; }
  .kt-channels .kt-channel__desc { font-size: 15px; }
  .kt-channels .kt-channel__btn { grid-column: 2; min-height: 52px; }
  .kt-channels .kt-channel__note { grid-column: 2; min-height: 0; margin-top: 12px; font-size: 14px; }

  .kt-faq .kt-faq__item summary { min-height: 56px; }

  .kt-request .kt-request__grid { grid-template-columns: minmax(0, 1fr) 330px; gap: 20px; }
  .kt-request .kt-form-card { padding: 28px; }
  .kt-request .kt-quote__body { inset: auto 24px 24px; }
  .kt-request .kt-quote__text { font-size: 23px; }
}
@media (max-width: 767px) {
  .kt-page .kt-h2 { font-size: 28px; }
  .kt-page .kt-sub { font-size: 16px; }
  .kt-channels .kt-channels__head { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 20px; }
  .kt-channels .kt-trust { font-size: 14px; }
  .kt-channels .kt-channel { display: flex; padding: 20px; }
  .kt-channels .kt-channel__top { margin-bottom: 16px; }
  .kt-channels .kt-channel__ico { width: 52px; height: 52px; }

  /* «Быстрые ответы»: вопросы столбцом, «Все вопросы →» — под списком */
  .kt-faq .kt-wrap { display: flex; flex-direction: column; }
  .kt-faq .kt-faq__head { display: contents; }
  .kt-faq .kt-faq__head > div { margin-bottom: 20px; }
  .kt-faq .kt-faq__grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .kt-faq .kt-faq__item summary { padding: 14px 16px; }
  .kt-faq .kt-link { order: 2; align-self: flex-start; min-height: 44px; margin-top: 8px; font-size: 15px; }

  /* «Оставьте заявку»: форма в одну колонку, ниже карточка-фото 1:1 */
  .kt-request .kt-request__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .kt-request .kt-form-card { padding: 20px 18px; }
  .kt-request .kt-form__row,
  .kt-request .kt-form__bottom { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .kt-request .kt-field :is(input, textarea),
  .kt-request .kt-field--dd .ads-dd__btn { min-height: 52px; font-size: 16px; }
  .kt-request .kt-attach { margin-bottom: 14px; }
  .kt-request .kt-form__submit { min-height: 52px; }
  .kt-request .kt-quote { min-height: 0; aspect-ratio: 1 / 1; }
  .kt-request .kt-quote__body { inset: auto 20px 20px; }
  .kt-request .kt-quote__text { font-size: 22px; }
}


/* Б-102 Контакты — способы связи — белая плита kt-benefits внутри kt-wrap */
@media (max-width: 1199px) {
  .kt-page .kt-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 24px; padding: 12px 32px; }
  .kt-page .kt-benefit { font-size: 16px; padding: 16px 0; }
  .kt-page .kt-benefit__ico { width: 56px; height: 56px; }
  .kt-page .kt-benefit__ico :is(i, svg) { width: 24px; height: 24px; }
}
@media (max-width: 767px) {
  .kt-page .kt-benefits { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 4px 18px; }
  .kt-page .kt-benefit { font-size: 15px; }
  .kt-page .kt-benefit + .kt-benefit { border-top: 1px solid var(--line); }
  .kt-page .kt-benefit__ico { width: 44px; height: 44px; }
  .kt-page .kt-benefit__ico :is(i, svg) { width: 21px; height: 21px; }
}


/* Б-103 Остались вопросы? Мы на связи. — класс kt-cta */
@media (max-width: 1199px) {
  .kt-cta .kt-cta__media::after { background: linear-gradient(90deg, rgba(8, 12, 10, .85) 0%, rgba(8, 12, 10, .7) 100%); }
  .kt-cta .kt-cta__inner { padding: 56px 32px; }
  .kt-cta .kt-btn { min-height: 52px; padding: 0 28px; font-size: 16px; }
  .kt-cta .kt-cta__copy { margin-left: 0; max-width: 560px; }
  .kt-cta .kt-cta__copy p { font-size: 17px; max-width: none; }
}
@media (max-width: 767px) {
  .kt-cta .kt-cta__media::after { background: rgba(8, 12, 10, .75); }
  .kt-cta .kt-cta__inner { flex-direction: column; align-items: stretch; gap: 22px; padding: 56px 16px; }
  .kt-cta .kt-cta__title { font-size: 28px; }
  .kt-cta .kt-cta__copy p { font-size: 16px; }
}


/* Б-104 Частые вопросы — первый экран /faq — класс faq-page__hero */
@media (max-width: 1199px) {
  .faq-page .faq-page__title { font-size: 44px; }
  .faq-page .faq-page__sub { font-size: 17px; max-width: 720px; }
}
@media (max-width: 767px) {
  .faq-page { padding-top: 20px; }
  .faq-page .faq-page__hero { margin-bottom: 24px; }
  .faq-page .faq-page__hero .eyebrow { margin-bottom: 12px; font-size: 13px; }
  .faq-page .faq-page__title { font-size: 28px; margin-bottom: 12px; }
  .faq-page .faq-page__sub { font-size: 16px; }
  /* карточки-ярлыки тем под шапкой (в макетах не показаны): 5 штук — сеткой 2 в ряд, чтобы не растягивать экран */
  .faq-page .faq-page__shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 24px; }
  .faq-page .faq-page__shortcut { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 14px; }
}


/* Б-105 Вопросы — поиск и темы — класс faq-page__toolbar */
@media (max-width: 1199px) {
  .faq-page .faq-page__toolbar { padding: 24px 28px; }
  .faq-page .faq-page__search-input { min-height: 52px; font-size: 16px; }
  .faq-page .faq__tags .faq__tag { min-height: 44px; font-size: 15px; }
  .faq-page .faq__tags .faq__tag-count { font-size: 13px; }
}
@media (max-width: 767px) {
  .faq-page .faq-page__toolbar { padding: 20px 0 20px 20px; overflow: hidden; }
  .faq-page .faq-page__search { display: block; margin: 0 20px 16px 0; }
  .faq-page .faq-page__search-input { margin-bottom: 0; }
  .faq-page .faq-page__toolbar .faq__tags {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-right: 20px;
    -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
    mask-image: linear-gradient(90deg, #000 85%, transparent);
  }
  .faq-page .faq-page__toolbar .faq__tags::-webkit-scrollbar { display: none; }
  .faq-page .faq__tags .faq__tag { flex: none; }
}


/* Б-106 Группа вопросов «О сервисе…» — класс faq__block (на /faq)
   Телефон: «Сервис» и «4 вопроса» в одну строку — кнопка-заголовок «раскрыта» (display: contents), её части разложены сеткой шапки. */
@media (max-width: 1199px) {
  .faq-page .faq__block--acc .faq__block-chevron { width: 44px; height: 44px; padding: 12px; }
  .faq-page .faq__block .faq__question { padding: 20px 16px; font-size: 16px; }
}
@media (max-width: 767px) {
  .faq-page .faq__block--acc .faq__block-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) 44px;
    align-items: center;
    column-gap: 12px;
    padding: 18px 20px;
  }
  .faq-page .faq__block--acc .faq__block-title,
  .faq-page .faq__block--acc .faq__block-toggle { display: contents; }
  .faq-page .faq__block--acc .faq__block-name {
    grid-column: 1 / 3; grid-row: 1; font-size: 19px;
  }
  .faq-page .faq__block--acc .faq__block-chevron { grid-column: 3; grid-row: 1; }
  .faq-page .faq__block--acc .faq__block-tags { grid-column: 1; grid-row: 2; }
  .faq-page .faq__block--acc .faq__block-count { grid-column: 2; grid-row: 2; margin-top: 10px; font-size: 14px; }
  .faq-page .faq__block--acc:not(.is-open) .faq__block-count { grid-column: 1 / 3; }
  .faq-page .faq__block--acc .faq__block-tag { padding: 6px 12px; font-size: 14px; }

  /* вопросы одной колонкой без рамок-карточек, строки с разделителями; порядок 1-2-3-4 (--i из разметки) */
  .faq-page .faq__block--acc .faq-page__cols { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0 20px 8px; }
  .faq-page .faq__block--acc .faq__list--col { display: contents; }
  .faq-page .faq__block--acc .faq__item {
    order: var(--i, 0);
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: none;
  }
  .faq-page .faq__block--acc .faq__question { padding: 14px 0; min-height: 56px; font-size: 15px; }
  .faq-page .faq__block--acc .faq__answer { padding: 0 0 14px; }
}


/* Б-107 Франшиза магазина памятников — первый экран /franshiza — класс fr-hero
   (здесь же общие для страницы поля .fr-wrap и полоса .fr-bar — она стоит почти в каждом блоке франшизы).
   Планшет: фото — фон верхней части, снизу растворяется; карточка фактов, цитата и полоса — ниже на всю ширину.
   Телефон: сначала весь текст, потом фото отдельной картинкой 4:3 (обёртки «раскрыты» display: contents, порядок — order). */
@media (max-width: 1199px) {
  .fr-page .fr-wrap { padding: 0 28px; }
  .fr-page .fr-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 12px; }
  .fr-page .fr-bar__item:nth-child(3n + 1) { border-left: 0; }
  .fr-page [style*="--fr-bar-cols:4"] .fr-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-page [style*="--fr-bar-cols:4"] .fr-bar__item:nth-child(3n + 1) { border-left: 1px solid var(--line); }
  .fr-page [style*="--fr-bar-cols:4"] .fr-bar__item:nth-child(2n + 1) { border-left: 0; }
  .fr-page .fr-bar__title { font-size: 16px; }
  .fr-page .fr-bar__text { font-size: 14px; }

  .fr-hero { --fr-hero-left: 0px; }
  .fr-hero .fr-hero__media {
    bottom: auto;
    height: calc(760px + var(--fr-hero-rise));
    -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent);
            mask-image: linear-gradient(180deg, #000 70%, transparent);
  }
  .fr-hero .fr-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; min-height: 0; }
  .fr-hero .fr-hero__copy { max-width: 600px; }
  .fr-hero .fr-h1 { font-size: 46px; }
  .fr-hero .fr-hero__lead { font-size: 23px; }
  .fr-hero .fr-hero__text { font-size: 17px; }
  .fr-hero .fr-hero__actions { flex-direction: column; align-items: flex-start; }
  .fr-hero .fr-hero__visual { gap: 16px; }
  .fr-hero .fr-hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; padding: 28px; }
  .fr-hero .fr-hero__fact-title { font-size: 16px; }
  .fr-hero .fr-hero__fact-text { font-size: 15px; }
  .fr-hero .fr-hero__quote { padding: 20px 28px; background: #3a4340; }
  .fr-hero .fr-hero__quote-photo { width: 72px; height: 72px; }
  .fr-hero .fr-hero__quote-text { font-size: 19px; }
  .fr-hero .fr-hero__quote-name { font-size: 14px; }
  .fr-hero .fr-bar { margin-top: 16px; }
}
@media (max-width: 767px) {
  .fr-page .fr-wrap { padding: 0 16px; }
  .fr-page .fr-vyglyadit__media { width: 100%; aspect-ratio: auto; overflow: visible; }
  .fr-page .fr-vyglyadit__media picture { display: block; position: relative; width: 100%; aspect-ratio: 16 / 7; overflow: hidden; border-radius: 16px; }
  .fr-page .fr-vyglyadit__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .fr-page .fr-vyglyadit__badge { position: static; display: flex; width: 100%; box-sizing: border-box; margin-top: 12px; text-align: left; }
  .fr-page .fr-vyglyadit__badge :is(i, svg) { flex-shrink: 0; }
  .fr-page .fr-bar,
  .fr-page [style*="--fr-bar-cols:4"] .fr-bar { grid-template-columns: minmax(0, 1fr); row-gap: 0; padding: 4px 16px; }
  .fr-page .fr-bar .fr-bar__item:nth-child(n) { padding: 14px 0; border-left: 0; }   /* :nth-child(n) — сильнее планшетных :nth-child(3n + 1) */
  .fr-page .fr-bar .fr-bar__item + .fr-bar__item { border-top: 1px solid var(--line); }
  .fr-page .fr-bar__title { font-size: 15px; }

  .fr-hero { display: flex; flex-direction: column; padding: 8px 0 24px; }
  .fr-hero::before { display: none; }
  .fr-hero > .fr-wrap,
  .fr-hero .fr-hero__grid { display: contents; }
  .fr-hero .fr-hero__copy { order: 1; margin: 0 16px; padding-top: 0; }
  .fr-hero .fr-hero__media {
    position: relative; inset: auto; order: 2; z-index: 0; height: auto; aspect-ratio: 4 / 3;
    margin: 24px 16px 0; overflow: hidden; border-radius: 16px;
    -webkit-mask-image: none; mask-image: none;
  }
  .fr-hero .fr-hero__visual { order: 3; margin: 16px 16px 0; }
  .fr-hero .fr-bar-dup { order: 4; margin: 0 16px; }
  .fr-hero .fr-h1 { font-size: 28px; }
  .fr-hero .fr-hero__lead { font-size: 20px; }
  .fr-hero .fr-hero__text { font-size: 15px; }
  .fr-hero .fr-hero__actions { align-items: stretch; gap: 10px; }
  .fr-hero .fr-hero__actions .fr-btn--lg { min-height: 52px; padding: 10px 18px; }
  .fr-hero .fr-hero__pill { display: flex; min-height: 52px; }
  .fr-hero .fr-hero__facts { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 20px; }
  .fr-hero .fr-hero__fact .fr-round { width: 48px; height: 48px; }
  .fr-hero .fr-hero__quote { padding: 18px; }
  .fr-hero .fr-hero__quote-photo { width: 64px; height: 64px; }
  .fr-hero .fr-hero__quote-text { font-size: 17px; }
  .fr-hero .fr-bar { margin-bottom: 0; padding: 12px 16px; }
  /* полоса первого экрана — компактный список: иконка без плашки, «заголовок пояснение» одной фразой, без разделителей */
  .fr-hero .fr-bar .fr-bar__item:nth-child(n) { padding: 7px 0; }
  .fr-hero .fr-bar .fr-bar__item + .fr-bar__item { border-top: 0; }
  .fr-hero .fr-bar .fr-ico { width: 24px; height: 24px; background: none; }
  .fr-hero .fr-bar__body { display: block; }
  .fr-hero .fr-bar__text { font-size: 15px; }
}


/* Б-108 Кому подходит это предложение — класс fr-section (fr-komu); здесь же общая схема остальных секций франшизы:
   сетки карточек → 2–3 колонки на планшете; на телефоне — ленты m-swipe (где они в разметке) или список. */
@media (max-width: 1199px) {
  .fr-page .fr-section { padding-top: 48px; }
  .fr-page .fr-h2 { font-size: 36px; }
  .fr-page .fr-sub { font-size: 17px; }

  .fr-komu .fr-audience-grid { gap: 24px; }
  .fr-komu .fr-audience__media { aspect-ratio: 4 / 3; }
  .fr-komu .fr-audience__media img { position: absolute; inset: 0; }
  .fr-komu .fr-audience__title { font-size: 19px; }
  .fr-komu .fr-audience__text { font-size: 15px; }

  .fr-page .fr-grid--4,
  .fr-page .fr-grid--5,
  .fr-page .fr-tariff-grid,
  .fr-page .fr-icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-page .fr-grid--6,
  .fr-page .fr-icon-grid--5,
  .fr-page .fr-split__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none; }
  .fr-page .fr-band__grid { max-width: none; }
  .fr-page .fr-fact__title { font-size: 16px; }
  .fr-page .fr-fact__text { font-size: 14px; }
  .fr-page .fr-timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 28px; }
  .fr-page .fr-timeline::before { display: none; }
  .fr-page .fr-istoriya__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-page .fr-podderzhka__grid { grid-template-columns: minmax(0, 1fr); }
  .fr-page .fr-podderzhka__grid .fr-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-page .fr-podderzhka__side { grid-column: 1; grid-row: 3; }
  .fr-page .fr-split--obuchenie .fr-split__note,
  .fr-page .fr-split--masterskie .fr-split__note { max-width: none; }
}
@media (max-width: 767px) {
  .fr-page .fr-section { padding-top: 40px; }
  .fr-page .fr-h2 { font-size: 28px; }
  .fr-page .fr-sub { font-size: 16px; }
  .fr-page .fr-grid--2,
  .fr-page .fr-grid--3,
  .fr-page .fr-grid--4,
  .fr-page .fr-grid--5,
  .fr-page .fr-grid--6,
  .fr-page .fr-icon-grid,
  .fr-page .fr-split__cards,
  .fr-page .fr-band__grid,
  .fr-page .fr-istoriya__facts,
  .fr-page .fr-podderzhka__grid .fr-grid--3,
  .fr-page .fr-timeline { grid-template-columns: minmax(0, 1fr); }
  .fr-page .fr-band { padding: 28px 20px; }
  .fr-page .fr-band__bg { width: 100%; opacity: .35; }
  .fr-page .fr-band__item,
  .fr-page .fr-band__item:first-child { padding: 12px 0; }
  .fr-page .fr-band__item + .fr-band__item { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .18); }
  .fr-page .fr-timeline__item { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: start; gap: 4px 14px; text-align: left; }
  .fr-page .fr-timeline__node { grid-row: 1 / span 2; }
  .fr-page .fr-timeline__item h3 { margin: 4px 0 0; font-size: 16px; }
  .fr-page .fr-timeline__item p { font-size: 14px; }
  .fr-page .fr-timeline__node { flex: none; width: 56px; height: 56px; }
  .fr-page .fr-timeline__node :is(i, svg) { width: 24px; height: 24px; }
  .fr-page .fr-faq__list { column-count: 1; }
  .fr-page .fr-note,
  .fr-page .fr-split__note,
  .fr-page .fr-poluchaet__foot { flex-direction: column; align-items: stretch; }
  .fr-page .fr-split--masterskie .fr-split__note { flex-wrap: wrap; }
  .fr-page .fr-split--masterskie .fr-split__note > div:nth-of-type(2) { width: auto; min-width: 0; }
  .fr-page .fr-note .fr-btn,
  .fr-page .fr-split__note .fr-btn { width: 100%; }
  /* «Поддержка после запуска» (вариант-3): карточки списком без теней; фото основателя целиком над текстом цитаты */
  .fr-page .fr-podderzhka__grid .fr-grid--3 { gap: 0; }
  .fr-page .fr-podderzhka__grid .fr-fact { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 4px 14px; padding: 14px 0; border-radius: 0; background: none; box-shadow: none; }
  .fr-page .fr-podderzhka__grid .fr-fact > .fr-ico { grid-row: 1 / span 2; }
  .fr-page .fr-podderzhka__grid .fr-fact + .fr-fact { border-top: 1px solid var(--line); }
  .fr-page .fr-podderzhka__quote { display: block; aspect-ratio: auto; background: #fff; }
  .fr-page .fr-podderzhka__quote-bg { position: relative; aspect-ratio: 1 / 1; }
  .fr-page .fr-podderzhka__quote-bg::after { display: none; }
  .fr-page .fr-podderzhka__quote-body { width: auto; padding: 20px; }
  .fr-page .fr-podderzhka__actions { grid-template-columns: minmax(0, 1fr); }
}


/* Б-109 Сайт в аренду по свободному городу — класс fr-sajt */
@media (max-width: 1199px) {
  .fr-sajt { --fr-sajt-left: 0px; min-height: 0; padding: 48px 0; }
  .fr-sajt .fr-sajt__media {
    bottom: auto;
    height: 700px;
    -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent);
            mask-image: linear-gradient(180deg, #000 70%, transparent);
  }
  .fr-sajt .fr-sajt__media img { object-fit: cover; object-position: right center; }
  .fr-sajt::before { bottom: auto; height: 700px; }
  .fr-sajt .fr-sajt__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .fr-sajt .fr-sajt__copy { max-width: 580px; }
  .fr-sajt .fr-sajt__perk > span { font-size: 15px; }
  .fr-sajt .fr-btn-note { font-size: 14px; }
  .fr-sajt .fr-sajt__card { padding: 28px; }
  .fr-sajt .fr-sajt__card-title { margin: 0 0 12px; font-size: 28px; text-align: left; }
  .fr-sajt .fr-sajt__card-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
  .fr-sajt .fr-sajt__card-list li + li { border-top: 0; }
  .fr-sajt .fr-sajt__card-list li:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .fr-sajt .fr-sajt__card-list .fr-round { width: 52px; height: 52px; }
  .fr-sajt .fr-sajt__card-list strong { font-size: 15px; }
  .fr-sajt .fr-sajt__card-list span.fr-sajt__card-text { font-size: 14px; }
}
@media (max-width: 767px) {
  .fr-sajt { display: flex; flex-direction: column; margin-top: 40px; padding: 0; }
  .fr-sajt::before { display: none; }
  .fr-sajt > .fr-wrap,
  .fr-sajt .fr-sajt__grid { display: contents; }
  .fr-sajt .fr-sajt__copy { order: 1; margin: 0 16px; }
  .fr-sajt .fr-sajt__media {
    position: relative; inset: auto; order: 2; z-index: 0; height: auto; aspect-ratio: 4 / 3;
    margin: 24px 16px 0; overflow: hidden; border-radius: 16px;
    -webkit-mask-image: none; mask-image: none;
  }
  .fr-sajt .fr-sajt__card { order: 3; margin: 16px 16px 0; padding: 22px 18px; }
  .fr-sajt .fr-sajt__card-title { margin-bottom: 10px; text-align: center; font-size: 24px; }
  .fr-sajt .fr-sajt__card-list { grid-template-columns: minmax(0, 1fr); }
  .fr-sajt .fr-sajt__card-list strong,
  .fr-sajt .fr-sajt__perk > span { font-size: 16px; }
  .fr-sajt .fr-sajt__card-list span.fr-sajt__card-text { font-size: 15px; }
  .fr-sajt .fr-sajt__card-list li:nth-child(n + 2) { border-top: 1px solid var(--line); }
  .fr-sajt .fr-sajt__perks { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 24px; }
  .fr-sajt .fr-sajt__perk { flex-direction: row; align-items: center; gap: 14px; }
  .fr-sajt .fr-sajt__perk .fr-round { width: 52px; height: 52px; }
  .fr-sajt .fr-sajt__btn { display: flex; min-height: 52px; margin-top: 24px; }
  .fr-sajt .fr-btn-note { justify-content: center; text-align: center; }
}


/* Б-110 Как выбрать город для запуска — класс fr-gorod
   (рукописная стрелка к списку городов на планшете и телефоне скрыта: подсказка стоит прямо под списком) */
@media (max-width: 1199px) {
  .fr-gorod { --fr-gorod-left: 0px; padding: 48px 0; }
  .fr-gorod .fr-gorod__media {
    bottom: auto;
    height: 900px;
    -webkit-mask-image: linear-gradient(180deg, #000 65%, transparent);
            mask-image: linear-gradient(180deg, #000 65%, transparent);
  }
  .fr-gorod::before { bottom: auto; height: 900px; }
  .fr-gorod .fr-gorod__head { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; }
  .fr-gorod .fr-gorod__quote { padding: 20px; border-radius: 16px; background: rgba(255, 255, 255, .78); }
  .fr-gorod .fr-gorod__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); width: auto; }
  .fr-gorod .fr-gorod__step { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; }
  .fr-gorod .fr-gorod__step-head { position: relative; grid-row: 1 / span 2; align-self: start; margin: 0; }
  .fr-gorod .fr-gorod__step-num { position: absolute; left: -6px; top: -6px; z-index: 1; width: 24px; height: 24px; background: #fff; border: 1px solid var(--line); }
  .fr-gorod .fr-gorod__step h3 { font-size: 18px; }
  .fr-gorod .fr-gorod__step p { font-size: 14px; }
  .fr-gorod .fr-gorod__panel { padding: 28px; }
  .fr-gorod .fr-gorod__panel-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-gorod .fr-gorod__hint {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) 150px;
    align-items: center;
    justify-items: stretch;
    padding: 18px 22px;
    border-radius: 14px;
    background: var(--green-50);
  }
  .fr-gorod .fr-gorod__hint-arrow { display: none; }
  .fr-gorod .fr-gorod__hint p { font-size: 14px; }
  .fr-gorod .fr-gorod__hint-map { margin: 0; }
  .fr-gorod .fr-gorod__hint-map img:not(.fr-gorod__hint-pin) { position: static; aspect-ratio: 2 / 1; object-fit: cover; }
  .fr-gorod .fr-gorod__hint-map .fr-gorod__hint-pin { top: 40%; }
  .fr-gorod .fr-gorod__sample--photo { grid-template-columns: 360px minmax(0, 1fr); }
  .fr-gorod .fr-gorod__near { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) 300px; grid-template-rows: 1fr auto; column-gap: 24px; align-items: end; }
  .fr-gorod .fr-gorod__near-card { grid-row: 1 / span 2; align-self: start; margin: 0; }
  .fr-gorod .fr-gorod__near-btn-main { grid-column: 2; }
  .fr-gorod .fr-gorod__price-note { grid-column: 2; align-self: start; }
  .fr-gorod .fr-gorod__near-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .fr-gorod .fr-gorod__near-list li + li { border-top: 0; }
  .fr-gorod .fr-gorod__near-list li:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .fr-gorod .fr-gorod__sample-city { font-size: 34px; }
  .fr-gorod .fr-gorod__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-gorod .fr-gorod__stat-head strong { font-size: 16px; }
  .fr-gorod .fr-gorod__stat-label { font-size: 13px; }
  .fr-gorod .fr-gorod__city { min-height: 40px; font-size: 14px; }
}
@media (max-width: 767px) {
  .fr-gorod { display: flex; flex-direction: column; padding: 40px 0; }
  .fr-gorod::before { display: none; }
  .fr-gorod > .fr-wrap,
  .fr-gorod .fr-gorod__head { display: contents; }
  .fr-gorod > .fr-wrap > *,
  .fr-gorod .fr-gorod__head > * { order: 4; margin-inline: 16px; }
  .fr-gorod .fr-gorod__head-copy { order: 1; }
  .fr-gorod .fr-gorod__media {
    position: relative; inset: auto; order: 2; z-index: 0; height: auto; aspect-ratio: 16 / 9;
    margin: 20px 16px 0; overflow: hidden; border-radius: 16px;
    -webkit-mask-image: none; mask-image: none;
  }
  .fr-gorod .fr-gorod__quote { order: 3; margin-top: 20px; padding: 2px 0 2px 16px; border-left: 3px solid var(--green-700); border-radius: 0; background: none; }
  .fr-gorod .fr-gorod__quote blockquote { font-size: 20px; }
  .fr-gorod .fr-gorod__quote figcaption { margin-top: 8px; padding-top: 0; border-top: 0; }

  /* 4 шага — список: круг с иконкой и номером слева, пунктир между шагами */
  .fr-gorod .fr-gorod__steps { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 28px; }
  .fr-gorod .fr-gorod__step { position: relative; padding: 0 0 22px; border-radius: 0; background: none; box-shadow: none; }
  .fr-gorod .fr-gorod__step:not(:last-child)::before {
    content: ""; position: absolute; left: 27px; top: 62px; bottom: 6px; border-left: 2px dashed var(--line);
  }

  .fr-gorod .fr-gorod__panel { padding: 20px 16px; }
  .fr-gorod .fr-gorod__panel-top { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .fr-gorod .fr-gorod__search { min-height: 52px; }
  .fr-gorod .fr-gorod__search-input { font-size: 16px; }
  .fr-gorod .fr-gorod__cities { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: -16px; padding-right: 16px; }
  .fr-gorod .fr-gorod__cities::-webkit-scrollbar { display: none; }
  .fr-gorod .fr-gorod__cities > li { flex: none; }
  .fr-gorod .fr-gorod__city { min-height: 44px; }
  .fr-gorod .fr-gorod__hint { grid-template-columns: minmax(0, 1fr) 110px; padding: 14px 16px; }
  .fr-gorod .fr-gorod__hint-map img:not(.fr-gorod__hint-pin) { aspect-ratio: 4 / 3; }

  .fr-gorod .fr-gorod__sample,
  .fr-gorod .fr-gorod__sample--photo { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .fr-gorod .fr-gorod__near { grid-column: auto; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .fr-gorod .fr-gorod__near-card,
  .fr-gorod .fr-gorod__near-btn-main,
  .fr-gorod .fr-gorod__price-note { grid-column: 1; grid-row: auto; }
  .fr-gorod .fr-gorod__near-list:not(.is-all) > li:nth-child(n + 6) { display: none; }
  .fr-gorod .fr-gorod__near-more {
    display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; margin-top: 8px;
    border: 1.5px dashed var(--line); border-radius: 14px; color: var(--green-700); font: inherit; font-size: 15px; font-weight: 700;
  }
  .fr-gorod .fr-gorod__near-more :is(i, svg) { width: 18px; height: 18px; }
  .fr-gorod .fr-gorod__near-card { margin-bottom: 16px; }
  .fr-gorod .fr-gorod__near-list { grid-template-columns: minmax(0, 1fr); }
  .fr-gorod .fr-gorod__near-list li:nth-child(n + 2) { border-top: 1px solid var(--line); }
  .fr-gorod .fr-gorod__near-btn { min-height: 44px; font-size: 15px; }
  .fr-gorod .fr-gorod__photo img { aspect-ratio: 4 / 3; }
  .fr-gorod .fr-gorod__photo-bar { background: linear-gradient(to top, rgba(17, 24, 20, .85), rgba(17, 24, 20, 0)); }
  .fr-gorod .fr-gorod__sample-city { font-size: 30px; }
  .fr-gorod .fr-gorod__stats li { border: 0; background: var(--line-2); }
  .fr-gorod .fr-gorod__near-btn-main { min-height: 52px; }
}


/* Б-111 Для ритуальных агентств — класс fr-split (тот же приём у «Мастерских», «Новичков», «Обучения», «Истории Евгения»):
   планшет — фото фоном сверху справа, текст слева, всё дополнительное ниже на всю ширину;
   телефон — текст → фото отдельной картинкой 4:3 → остальное. */
@media (max-width: 1199px) {
  .fr-split .fr-split__media {
    bottom: auto;
    height: min(100%, 760px);
    -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent);
            mask-image: linear-gradient(180deg, #000 70%, transparent);
  }
  .fr-split .fr-split__copy { max-width: 580px !important; }   /* у части блоков inline-стиль max-width:760px в разметке */
  .fr-split .fr-lead { font-size: 23px; }
  .fr-split .fr-split__btn { min-width: 0; }

  .fr-split--ritual .fr-split__grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .fr-split--ritual .fr-split__copy,
  .fr-split--ritual .fr-split__bar,
  .fr-split--ritual .fr-split__side { grid-column: 1; grid-row: auto; }
  .fr-split--ritual .fr-split__side--card { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; padding: 8px 28px; }
  .fr-split--ritual .fr-split__side--card .fr-fact:nth-child(2) { border-top: 0; }
  .fr-split--ritual .fr-split__side--card .fr-fact__title { font-size: 18px; }
  .fr-split--ritual .fr-split__side--card .fr-ico--sm { width: 44px; height: 44px; border-radius: 12px; }
  .fr-split--ritual .fr-split__side--card .fr-ico--sm :is(i, svg) { width: 22px; height: 22px; }
  .fr-split--ritual .fr-split__bar { order: 1; }
  .fr-split--ritual .fr-split__side { order: 2; }

  .fr-split--istoriya { min-height: 0; }
}
@media (max-width: 767px) {
  .fr-split { display: flex; flex-direction: column; padding: 40px 0 0; }
  .fr-page .fr-gorod { padding-bottom: 0; }
  .fr-page .fr-split--obuchenie { margin-top: 0; }
  .fr-page .fr-split__copy { padding-block: 0; }
  .fr-page .fr-paket__note-text { text-align: left; align-self: stretch; }
  .fr-page .fr-split__cards.m-swipe { margin-inline: 0; }
  .fr-split::before { display: none; }
  .fr-split > .fr-wrap,
  .fr-split .fr-split__grid { display: contents; }
  .fr-split > .fr-wrap > *,
  .fr-split .fr-split__grid > * { order: 3; margin-inline: 16px; }
  .fr-split .fr-split__copy,
  .fr-split .fr-istoriya__copy { order: 1; max-width: none !important; }   /* inline-стиль max-width:760px в разметке */
  .fr-split .fr-split__media {
    position: relative; inset: auto; order: 2; z-index: 0; width: auto; height: auto; aspect-ratio: 4 / 3;
    margin: 24px 16px 16px; overflow: hidden; border-radius: 16px;
    -webkit-mask-image: none; mask-image: none;
  }
  /* «История Евгения»: фото основателя не обрезаем — кадр в своей пропорции 16:9, над текстом */
  .fr-split--istoriya { margin-top: 40px; padding-top: 0; }
  .fr-split--istoriya .fr-split__media { order: 0; aspect-ratio: 16 / 9; margin-top: 0; }
  .fr-split .fr-h2 { max-width: none; }
  .fr-split .fr-lead { font-size: 20px; }
  .fr-split .fr-split__lead { font-size: 15px; }
  .fr-split .fr-split__btn { display: flex; min-height: 52px; padding: 12px 18px; font-size: 15px; }
  .fr-split .fr-split__cards { margin-top: 0 !important; }   /* inline margin-top:24px в разметке */
  .fr-split .fr-split__note { margin-top: 16px; }
  .fr-split--ritual .fr-split__side--card { grid-template-columns: minmax(0, 1fr); padding: 4px 18px; }
  .fr-split--ritual .fr-split__side--card .fr-fact:nth-child(2) { border-top: 1px solid var(--line); }
  .fr-split--ritual .fr-split__bar { order: 4; }
}


/* Б-112 Остались вопросы? — заявка внизу /franshiza — класс fr-zayavka
   (телефон: фото основателя целиком 16:9, а не 4:3 — правило владельца «фото основателя не обрезать») */
@media (max-width: 1199px) {
  .fr-zayavka .fr-zayavka__media img { object-position: 78% 0; }
  .fr-zayavka::before {
    background: linear-gradient(94deg, var(--page) 0%, var(--page) 30%, rgba(250, 249, 247, .9) 48%, rgba(250, 249, 247, .4) 62%, rgba(250, 249, 247, 0) 75%);
  }
  .fr-zayavka .fr-zayavka__head { max-width: 620px; }
  .fr-zayavka .fr-h2 { font-size: 44px; }
  .fr-zayavka .fr-zayavka__sub { font-size: 21px; }
  .fr-zayavka .fr-zayavka__form-card { max-width: 620px; }
  .fr-zayavka .fr-zayavka__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-zayavka .fr-zayavka__fields > .fr-field:nth-child(3) { grid-column: 1 / -1; }
  .fr-zayavka .fr-field__box { min-height: 48px; }
  .fr-zayavka .fr-field__box input { font-size: 15px; }
}
@media (max-width: 767px) {
  .fr-zayavka { display: flex; flex-direction: column; margin-top: 40px; padding: 0 0 8px; }
  .fr-zayavka::before { display: none; }
  .fr-zayavka > .fr-wrap { display: contents; }
  .fr-zayavka > .fr-wrap > * { order: 3; margin-inline: 16px; }
  .fr-zayavka .fr-zayavka__head { order: 1; }
  .fr-zayavka .fr-zayavka__media {
    position: relative; inset: auto; order: 2; z-index: 0; aspect-ratio: 16 / 9;
    margin: 20px 16px 0; overflow: hidden; border-radius: 16px;
  }
  .fr-zayavka .fr-h2 { font-size: 28px; }
  .fr-zayavka .fr-zayavka__sub { font-size: 19px; }
  .fr-zayavka .fr-zayavka__form-card { margin-top: 16px; padding: 20px 18px; }
  .fr-zayavka .fr-zayavka__fields { grid-template-columns: minmax(0, 1fr); }
  .fr-zayavka .fr-zayavka__fields > .fr-field:nth-child(3) { grid-column: auto; }
  .fr-zayavka .fr-field__box { min-height: 52px; }
  .fr-zayavka .fr-field__box input { font-size: 16px; }
  .fr-zayavka .fr-zayavka__submit { min-height: 52px; }
  .fr-zayavka .fr-zayavka__note { justify-content: flex-start; }
  .fr-zayavka .fr-bar .fr-bar__item:nth-child(n) { padding: 7px 0; }
  .fr-zayavka .fr-bar .fr-bar__item + .fr-bar__item { border-top: 0; }
  .fr-zayavka .fr-bar__text { font-size: 15px; }
}


/* Б-113 Изготавливаете памятники или занимаетесь благоустройством могил? — первый экран /professionalam — класс pro-hero */
@media (max-width: 1199px) {
  .pro-page { padding: 8px 28px 56px; }
  .pro-hero { grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: stretch; }
  .pro-hero--noimg { grid-template-columns: minmax(0, 1fr); }
  .pro-hero .pro-hero__title { font-size: 38px; }
  .pro-hero .pro-hero__sub { font-size: 17px; }
  .pro-hero .pro-actions { flex-direction: column; align-items: flex-start; }
  .pro-hero .pro-actions .pro-btn { width: 300px; min-height: 52px; }
  .pro-hero .pro-hero__media { aspect-ratio: auto; min-height: 100%; }
}
@media (max-width: 767px) {
  .pro-page { padding: 4px 16px 48px; }
  .pro-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .pro-hero .pro-hero__title { font-size: 28px; hyphens: none; }
  .pro-hero .pro-hero__lead { font-size: 15px; }
  .pro-hero .pro-actions { align-items: stretch; }
  .pro-hero .pro-actions .pro-btn { width: 100%; }
  .pro-hero .pro-hero__media { aspect-ratio: 4 / 3; min-height: 0; border-radius: 18px; }
}


/* Б-114 Чем вы занимаетесь? — класс pro-section (направления); здесь же общая схема остальных секций /professionalam:
   «заголовок → содержимое», сетки — 2 колонки на планшете и список на телефоне. */
@media (max-width: 1199px) {
  .pro-page .pro-section { margin-top: 48px; }
  .pro-page .pro-h2 { font-size: 36px; }
  .pro-page .pro-sub { font-size: 17px; }

  .pro-section .pro-dirs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .pro-section .pro-dir { flex-direction: row; align-items: center; gap: 16px; padding: 18px 20px; }
  .pro-section .pro-dir__ico { flex: none; }
  .pro-section .pro-dir__body { flex: 1 1 auto; min-width: 0; padding-right: 0; }
  .pro-section .pro-dir__go { position: static; }

  .pro-page .pro-mats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pro-page .pro-aud { grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; padding: 28px; }
  .pro-page .pro-aud--noimg { grid-template-columns: minmax(0, 1fr); }
  .pro-page .pro-fmts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pro-page .pro-step { padding: 22px 20px 24px 76px; }
  .pro-page .pro-step::before { left: 20px; }
  .pro-page .pro-faq { max-width: none; }
}
@media (max-width: 767px) {
  .pro-page .pro-section { margin-top: 40px; }
  .pro-page .pro-h2 { font-size: 28px; }
  .pro-page .pro-sub { font-size: 16px; }

  .pro-section .pro-dirs { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .pro-section .pro-dir { min-height: 76px; padding: 14px 16px; }
  .pro-section .pro-dirs:not(.is-all) > li:nth-child(n + 7) { display: none; }
  .pro-section .pro-dirs__more { display: flex; width: 100%; margin-top: 12px; border: 1.5px dashed var(--line); }

  .pro-page .pro-mats,
  .pro-page .pro-fmts,
  .pro-page .pro-steps { grid-template-columns: minmax(0, 1fr); }
  .pro-page .pro-aud { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 20px; }
  .pro-page .pro-aud__title { font-size: 23px; }
  .pro-page .pro-aud .pro-actions { flex-direction: column; align-items: stretch; }
  .pro-page .pro-fmt { padding: 22px 20px; }
  /* «Как начать» (вариант-2): список «номер слева, текст справа» без рамок */
  .pro-page .pro-steps { gap: 0; }
  .pro-page .pro-step { padding: 14px 0 14px 58px; border: 0; border-radius: 0; background: none; }
  .pro-page .pro-step + .pro-step { border-top: 1px solid var(--line); }
  .pro-page .pro-step::before { left: 0; top: 14px; }
  /* «Вопросы» (вариант-3): строки ≥52px */
  .pro-page .pro-faq__q { min-height: 52px; padding: 14px 16px; font-size: 15px; }
  .pro-page .pro-faq__a { padding: 0 16px 16px; }
  .pro-page .pro-form-card { padding: 20px 18px; }
  .pro-page .pro-grid2,
  .pro-page .pro-checks { grid-template-columns: minmax(0, 1fr); }
  .pro-page .pro-input { min-height: 52px; font-size: 16px; }
  .pro-page .pro-form__submit { align-self: stretch; min-width: 0; min-height: 52px; }
  .pro-page .pro-private { flex-direction: column; align-items: stretch; }
}

/* /oferta, /politika-konfidencialnosti (без макетов) — длинные адреса и заголовки переносятся, не вылезают за экран */
@media (max-width: 767px) {
  .legal-page h1,
  .legal-page__section-title,
  .legal-page__section a { overflow-wrap: anywhere; }
}

/* /portfolio «Наши работы»: планшет — работы в 2 колонки, телефон — в 1; фильтры на телефоне свёрнуты до двух строк */
@media (max-width: 1199px) {
  .pf-grid.pf-grid--mason { column-count: 2; }
}
@media (max-width: 767px) {
  .pf-grid.pf-grid--mason { column-count: 1; }
  .pf-chips:not(.is-all) { max-height: 92px; overflow: hidden; }   /* две строки чипов: 42 + 8 + 42 */
  .pf-chips-more { margin-top: -22px; }   /* .pf-page — сетка с gap 32px: кнопка в 10px под фильтрами */
}

/* /rabota/… окно фото pf-lb (pages/portfolio.css): планшет и телефон — как granit-lightbox на остальных страницах:
   фото на всю ширину, крестик прямо над фото справа, «назад/вперёд» — две белые плашки под фото, счётчик под ними */
@media (max-width: 1199px) {
  .pf-lb { flex-direction: column; padding: 16px; }
  .pf-lb__close { position: static; align-self: flex-end; margin: 0 0 10px; flex: none; }
  .pf-lb__stage { width: 100%; max-width: 720px; gap: 0; }
  .pf-lb__frame { width: 100%; margin-bottom: 58px; }
  .pf-lb__img { width: 100%; max-width: none; max-height: calc(100vh - 220px); border-radius: 16px; }
  .pf-lb__nav {
    top: calc(100% + 10px); transform: none;
    width: calc(50% - 5px); height: 48px; border-radius: 12px; background: #fff; color: var(--ink);
  }
  .pf-lb__nav:hover { background: var(--green-50); }
  .pf-lb__nav--prev { left: 0; }
  .pf-lb__nav--next { right: 0; left: auto; }
  .pf-lb__count { margin-top: 12px; }
}

/* Страница заявки: карточки в потоке, без узкой боковой колонки на телефоне. */
@media (max-width: 1199px) {
  .zayavka-page__inner { padding-inline: 24px; }
}
@media (max-width: 767px) {
  .zayavka-page { padding: 24px 0 40px; }
  .zayavka-page__inner { padding-inline: 16px; }
  .zayavka-page__head { gap: 16px; margin-bottom: 20px; }
  .zayavka-page__status { justify-self: stretch; }
  .zayavka-page__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .zayavka-page__main, .zayavka-page__side { gap: 16px; }
  .zayavka-page .zayavka-card { padding: 20px 16px; border-radius: 16px; }
  .zayavka-page .zayavka-responses__empty { padding: 16px; }
  .zayavka-page .zayavka-link-box__btn { width: 100%; }
}
/* Авторский разбор дизайна: поля и материалы на телефоне — одной колонкой. */
@media (max-width: 1199px) {
  .dr-page .hero-grid { grid-template-columns: minmax(0, 1fr) 330px; align-items: start; }
  .dr-page .hero .hero-media__img { align-self: center; min-height: 0; overflow: visible; border-radius: 0; }
  .dr-page .hero .hero-media__img :is(picture,img) { position: static; inset: auto; height: auto; width: 100%; object-fit: contain; }
  .dr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dr-split, .dr-annotated { gap: 24px; }
}
@media (max-width: 767px) {
  .dr-page .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .dr-page .hero .hero-media__img { width: calc(100% + 32px); margin: 20px -16px 0; aspect-ratio: 3 / 2; }
  .dr-page .hero-media__img :is(picture,img) { max-height: none; object-position: center; border-radius: 0; }
  .dr-grid, .dr-grid--two, .dr-split, .dr-annotated { grid-template-columns: minmax(0, 1fr); }
  .dr-form, .dr-empty { padding: 20px 16px; }
  .dr-card { padding: 20px; }
  .dr-form .btn { width: 100%; justify-content: center; }
  .dr-file { grid-template-columns: 48px minmax(0, 1fr); }
  .dr-file img { width: 48px; height: 48px; }
  .dr-file button { grid-column: 2; justify-self: start; }
}
