/* =====================================================================
   101 Роза — единый дизайн-код поверх Аспро: Премьер (телефон и компьютер).
   Файл на сайте: /local/assets/roz-design/roz-design.css, собирается из work/src/roz-design/*.css.
   Описание шкал — kb/design/DESIGN_CODE.md. Значения меняем только здесь.
   ===================================================================== */
:root {
  /* Шрифты: заголовки Unbounded 500, текст Montserrat под именем Kinetika-SemiBold */
  --d-font-title: 'Unbounded', Arial, sans-serif;
  --d-font-text: 'Kinetika-SemiBold', 'Golos Text', Arial, sans-serif;

  /* Размеры (компьютер) */
  --d-h1: 40px;        --d-h1-lh: 48px;
  --d-h2: 32px;        --d-h2-lh: 40px;
  --d-h3: 20px;        --d-h3-lh: 28px;
  --d-h-product: 24px; --d-h-product-lh: 32px;
  --d-text: 15px;      --d-text-lh: 24px;
  --d-caption: 13px;   --d-caption-lh: 18px;
  --d-name: 15px;      --d-name-lh: 20px;   /* название товара в списке */
  --d-price: 18px;     --d-price-lh: 24px;
  --d-price-big: 28px; --d-price-big-lh: 36px;
  --d-btn: 15px;

  /* Толщины */
  --d-w-title: 500;
  --d-w-text: 400;
  --d-w-name: 500;
  --d-w-price: 600;
  --d-w-btn: 600;

  /* Отступы (кратно 4) */
  --d-1: 4px; --d-2: 8px; --d-3: 12px; --d-4: 16px; --d-5: 20px; --d-6: 24px; --d-8: 32px; --d-10: 40px; --d-12: 48px; --d-16: 64px;
  --d-page: 32px;        /* боковые поля страницы */
  --d-block-gap: 64px;   /* между блоками */
  --d-pad: 32px;         /* внутри блока-карточки */
  --d-title-gap: 24px;   /* заголовок → содержимое */
  --d-label-gap: 8px;    /* подпись → поле */
  --d-grid-gap: 20px;    /* сетка товаров */
  --d-measure: 760px;    /* ширина строки текста на инфостраницах */

  /* Радиусы */
  --d-r-block: 20px;  /* большие блоки-карточки */
  --d-r-img: 12px;    /* картинки */
  --d-r-btn: 12px;    /* кнопки */
  --d-r-field: 12px;  /* поля ввода */
  --d-r-chip: 12px;   /* чипы выбора */
  --d-r-badge: 6px;   /* плашки */

  /* Цвета: только то, что уже есть на сайте */
  --d-ink: #201a1d;
  --d-muted: #6f666a;
  --d-canvas: #f5f4f2;
  --d-surface: #ffffff;
  --d-tile: #f2f1ee;
  --d-line: #e4e2de;
  --d-accent: var(--theme-base-color, #00aea0);  /* бирюзовая кнопка */
  --d-brand: #fb368e;   /* розовый бренда, фон и крупные элементы */
  --d-rose: #d81b6f;    /* розовый для текста на белом, контраст 4.88:1 */
  --d-error: #c42b3a;

  /* Элементы управления */
  --d-btn-h: 48px;
  --d-btn-h-sm: 40px;
  --d-field-h: 48px;
  --d-chip-h: 40px;
}

/* Телефон и узкие планшеты: шкала заметно мельче компьютерной, Unbounded шире обычного шрифта */
@media (max-width: 767px) {
  :root {
    --d-h1: 22px;        --d-h1-lh: 28px;
    --d-h2: 18px;        --d-h2-lh: 24px;
    --d-h3: 16px;        --d-h3-lh: 22px;
    --d-h-product: 18px; --d-h-product-lh: 24px;
    --d-text: 15px;      --d-text-lh: 22px;
    --d-caption: 13px;   --d-caption-lh: 18px;
    --d-name: 14px;      --d-name-lh: 18px;
    --d-price: 16px;     --d-price-lh: 22px;
    --d-price-big: 22px; --d-price-big-lh: 28px;
    --d-page: 16px;
    --d-block-gap: 40px;
    --d-pad: 20px;
    --d-title-gap: 16px;
    --d-label-gap: 6px;
    --d-grid-gap: 12px;
    --d-chip-h: 36px;
  }
}

/* Шрифты Аспро берут из этих переменных */
html body {
  --theme-font-family: 'Kinetika-SemiBold';
  --theme-font-title-family: 'Unbounded';
  --theme-font-title-weight: 500;
}
/* Всплывающие окна Аспро — обычным текстом */
.popup-window { font-family: var(--d-font-text); }

/* Заголовки страницы и блоков. Шапка, подвал, меню, окна — в своих группах правил.
   Специфичность нулевая (:where) + !important: перебивает классы Аспро, а точечные правила ниже перебивают это. */
:where(h1, .h1, h2, .h2, h3, .h3):not(:where(header, footer, .header, .footer, #headerfixed, .mobilemenu, .mobile-menu, .jqmWindow, .popup) *) {
  zoom: 1;
  font-family: var(--d-font-title) !important;
  font-weight: var(--d-w-title) !important;
  letter-spacing: -.01em;
  color: var(--d-ink);
  hyphens: none !important;
  -webkit-hyphens: none !important;
  word-break: normal;
  overflow-wrap: break-word;    /* только если слово не влезает в строку вообще */
}
:where(h1, .h1):not(:where(header, footer, .header, .footer, #headerfixed, .mobilemenu, .mobile-menu, .jqmWindow, .popup) *) { font-size: var(--d-h1) !important; line-height: var(--d-h1-lh) !important; }
:where(h2, .h2):not(:where(header, footer, .header, .footer, #headerfixed, .mobilemenu, .mobile-menu, .jqmWindow, .popup) *) { font-size: var(--d-h2) !important; line-height: var(--d-h2-lh) !important; }
:where(h3, .h3):not(:where(header, footer, .header, .footer, #headerfixed, .mobilemenu, .mobile-menu, .jqmWindow, .popup) *) { font-size: var(--d-h3) !important; line-height: var(--d-h3-lh) !important; }

/* Обычный текст */
body { font-weight: var(--d-w-text); color: var(--d-ink); }

/* Название букета на его карточке — свой размер, не общий H1 */
body:has(.catalog-detail) :is(h1, #pagetitle):not(:where(header, footer, .header, .footer, #headerfixed, .mobilemenu, .mobile-menu, .jqmWindow, .popup) *) { font-size: var(--d-h-product) !important; line-height: var(--d-h-product-lh) !important; }

/* =====================================================================
   Группа a: шапка, меню под бургером, чат, подвал, главная, контакты.
   Значения только из токенов 00-tokens.css. Описание правок — reports/design/notes_a.md.
   ===================================================================== */

/* ---------- Главная: единые поля и отступы между блоками ----------
   Правило одно: у блока отступ сверху 0, снизу один шаг --d-block-gap.
   Раньше Аспро задавала и верх, и низ, отступы складывались (80–160 px). */
.drag-block.container:is(.CATALOG_SECTIONS, .CUSTOM_CATALOG_3, .CATALOG_TAB, .MAPS, .REVIEWS) > .index-block {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.drag-block.container:is(.CATALOG_SECTIONS, .CUSTOM_CATALOG_3, .CATALOG_TAB, .MAPS, .REVIEWS) > .index-block > :is(.sections-list, .element-list, .map-list, .ajax-container--map, .roz-reviews) {
  padding-top: 0 !important;
  padding-bottom: var(--d-block-gap) !important;
}
/* На компьютере .map-list лежит внутри .ajax-container--map, у неё своих отступов быть не должно */
.drag-block.container.MAPS .ajax-container--map > .map-list {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.drag-block.container .maxwidth-theme:not(.maxwidth-banner) {
  padding-left: var(--d-page) !important;
  padding-right: var(--d-page) !important;
}

/* Баннер: снизу отступ не нужен, его даёт заголовок страницы */
.drag-block.container.BIG_BANNER_INDEX .maxwidth-banner--paddings {
  padding-left: var(--d-page) !important;
  padding-right: var(--d-page) !important;
  padding-bottom: 0 !important;
}

/* Заголовок «Доставка цветов в Иванове и области»: шаг от баннера, заголовочный зазор до плиток */
.drag-block.container.roz-home-h {
  padding-top: var(--d-block-gap) !important;
  padding-bottom: var(--d-title-gap) !important;
}

/* Заголовок блока → содержимое */
.drag-block.container .index-block__title-wrapper {
  margin-bottom: var(--d-title-gap) !important;
}
.drag-block.container.MAPS .map-wrapper {
  margin-top: 0 !important;
}

/* Переносов внутри слов на главной нет нигде */
.drag-block.container,
.drag-block.container * {
  hyphens: none !important;
  -webkit-hyphens: none !important;
}

/* Сетка товаров главной: оба блока одинаково. Ряды на компьютере остаются 40 (решение из kb/mobile/README.md) */
.drag-block.container:is(.CUSTOM_CATALOG_3, .CATALOG_TAB) .grid-list {
  column-gap: var(--d-grid-gap) !important;
}

/* «Загрузить ещё» */
.drag-block.container .more_text_ajax.btn {
  height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}

/* ---------- Плитки разделов каталога ---------- */
.drag-block.container.CATALOG_SECTIONS .sections-list__inner {
  column-gap: var(--d-3) !important;
  row-gap: var(--d-3) !important;
}
.drag-block.container.CATALOG_SECTIONS .sections-list__item {
  border-radius: var(--d-r-img) !important;
  background-color: var(--d-tile) !important;
}
.drag-block.container.CATALOG_SECTIONS .sections-list__item-text {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
}

/* ---------- Блок контактов над картой (главная) ---------- */
.drag-block.container.MAPS .map-container {
  border-radius: var(--d-r-block) !important;
  border-color: var(--d-line) !important;
}
.drag-block.container.MAPS .map-items__inner-wrapper {
  border-radius: var(--d-r-block) !important;
}
.drag-block.container.MAPS .map-view {
  border-radius: var(--d-r-block) !important;
}
/* Текст не прилипает к верхней рамке: у Аспро сверху отступа нет */
.drag-block.container.MAPS .map-detail-items .scrollbar.p-inline {
  padding: var(--d-pad) !important;
}
.drag-block.container.MAPS .map-items__item-title {
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
}
.drag-block.container.MAPS .map-detail-items__item-buttons .btn {
  height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}

@media (max-width: 991px) {
  /* Замечание Михаила: окно контактов на телефоне и планшете без внутренней прокрутки, высота по содержимому */
  .drag-block.container.MAPS .map-list__items-wrapper,
  .drag-block.container.MAPS .map-container,
  .drag-block.container.MAPS .map-detail-items,
  .drag-block.container.MAPS .map-detail-items > .line-block,
  .drag-block.container.MAPS .map-items__inner-wrapper,
  .drag-block.container.MAPS .map-detail-items__item,
  .drag-block.container.MAPS .map-detail-items__item > .line-block,
  .drag-block.container.MAPS .map-detail-items__item .line-block__item.height-100,
  .drag-block.container.MAPS .map-detail-items .scrollbar.p-inline {
    height: auto !important;
    max-height: none !important;
  }
  .drag-block.container.MAPS .map-detail-items .scrollbar.p-inline {
    overflow: visible !important;
  }
  .drag-block.container.MAPS .map-container {
    margin-bottom: 0 !important;
  }
  .drag-block.container.MAPS .map-list__items-container {
    row-gap: var(--d-title-gap) !important;
  }
}

/* ---------- Отзывы ---------- */
.drag-block.container.REVIEWS .roz-reviews__grid {
  gap: var(--d-6) !important;
}
.drag-block.container.REVIEWS .roz-reviews__head {
  padding-bottom: var(--d-3) !important;
}
.drag-block.container.REVIEWS .roz-reviews__name {
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
  font-weight: var(--d-w-price) !important;
}
.drag-block.container.REVIEWS .roz-reviews__foot {
  padding-top: var(--d-3) !important;
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
}

/* ---------- Шапка, компьютер ---------- */
.header .btn.btn-vitrina,
.header .btn.header-menu__link--only-catalog,
#headerfixed .btn.btn-vitrina,
#headerfixed .btn.header-menu__link--only-catalog {
  height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}
.header .search-title__form.form-control,
#headerfixed .search-title__form.form-control {
  height: var(--d-field-h) !important;
  border-radius: var(--d-r-field) !important;
  border-color: var(--d-line) !important;
}
.header .header__top-part .font_13 {
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
}

/* ---------- Меню под бургером и окно «Чат» (телефон) ---------- */
.roz-mm__sec { border-radius: var(--d-r-img) !important; }
.roz-mm__link { border-radius: var(--d-r-img) !important; font-size: var(--d-text) !important; }
.roz-mm__tag { border-radius: var(--d-r-badge) !important; }
.roz-chat-pop { border-radius: var(--d-r-block) !important; }
.roz-chat-pop__item { border-radius: var(--d-r-btn) !important; }

/* ---------- Подвал ---------- */
.footer.footer-1 {
  background-color: var(--d-canvas) !important;
}
.footer.footer-1 .footer__divider--bottom,
.footer.footer-1 .footer__divider--top {
  border-color: var(--d-line) !important;
}
.footer.footer-1 .footer__title,
.footer.footer-1 .bottom-menu .title.font_15,
.footer.footer-1 .subscribe-block__part--left {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
  font-weight: var(--d-w-name) !important;
}
.footer.footer-1 .footer__bottom-part,
.footer.footer-1 .footer__bottom-part p,
.footer.footer-1 .footer__copy {
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
  color: var(--d-muted) !important;
}
.footer.footer-1 .footer__bottom-part a {
  color: var(--d-muted) !important;
}
.footer.footer-1 .subscribe-input {
  height: var(--d-field-h) !important;
  border-radius: var(--d-r-field) !important;
  border-color: var(--d-line) !important;
}
.footer.footer-1 .subscribe-btn {
  height: var(--d-field-h) !important;
  border-radius: var(--d-r-field) !important;
}

/* ---------- Страница контактов ---------- */
.contacts-v2 .contacts__sticky-panel {
  border-radius: var(--d-r-block) !important;
  padding: var(--d-pad) !important;
}
.contacts-v2 .contact-property--image {
  border-radius: var(--d-r-img) !important;
}
.contacts-v2 .contacts__map {
  border-radius: var(--d-r-block) !important;
}
.contacts-v2 .contact-property--address .contact-property__value.font_18 {
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
}
.contacts-v2 .contact-property__value.font_15 {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
}
.contacts-v2 .contact-property__value.font_13 {
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
}
.contacts-v2 .contacts__sticky-panel .btn {
  height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}
.contacts-v2 .contacts-list__section-title {
  font-size: var(--d-h2) !important;
  line-height: var(--d-h2-lh) !important;
}
body:has(.contacts-v2) .page-top {
  padding-bottom: var(--d-title-gap) !important;
}
/* От 992 px фото в панели на всю ширину и прижато к верху (Аспро: поля -24). Поля пересчитаны под внутренний отступ из токена */
@media (min-width: 992px) {
  .contacts-v2 .contacts__sticky-panel__image {
    margin-top: calc(-1 * var(--d-pad)) !important;
    margin-left: calc(-1 * var(--d-pad)) !important;
    margin-right: calc(-1 * var(--d-pad)) !important;
  }
}
@media (max-width: 767px) {
  .contacts-v2 .contacts__col--right {
    padding-bottom: var(--d-6) !important;
  }
}

/* ---------- Нижнее меню: пять пунктов делят ширину поровну ----------
   У Аспро ячейка не уже 75 px: 5 × 75 = 375, на экранах уже 375 px «Кабинет» уходил за край. Состав и порядок пунктов прежние. */
@media (max-width: 400px) {
  .bottom-icons-panel__content > .bottom-icons-panel__content-link {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
}

/* =====================================================================
   Группа b: каталог, карточка товара, поиск, окно рекомендаций, «Вы смотрели».
   Значения — только из токенов 00-tokens.css. Разметка Аспро не меняется.
   ===================================================================== */

/* --- Знак ₽ тем же шрифтом, что цена ---
   В файлах Montserrat на сайте (latin, cyrillic) знака ₽ нет, браузер брал его из Golos Text.
   Здесь ₽ берётся из набора latin-ext того же Montserrat. Описание идёт последним, поэтому
   для символа U+20BD выигрывает у прежних описаний 'Kinetika-SemiBold'. */
@font-face { font-family: 'Kinetika-SemiBold'; font-style: normal; font-weight: 400; font-display: swap; src: url(/local/assets/roz-fonts/montserrat/montserrat-latin-ext.woff2) format('woff2'); unicode-range: U+20BD; }
@font-face { font-family: 'Kinetika-SemiBold'; font-style: normal; font-weight: 500; font-display: swap; src: url(/local/assets/roz-fonts/montserrat/montserrat-latin-ext.woff2) format('woff2'); unicode-range: U+20BD; }
@font-face { font-family: 'Kinetika-SemiBold'; font-style: normal; font-weight: 600; font-display: swap; src: url(/local/assets/roz-fonts/montserrat/montserrat-latin-ext.woff2) format('woff2'); unicode-range: U+20BD; }
@font-face { font-family: 'Kinetika-SemiBold'; font-style: normal; font-weight: 700; font-display: swap; src: url(/local/assets/roz-fonts/montserrat/montserrat-latin-ext.woff2) format('woff2'); unicode-range: U+20BD; }

/* --- Товар в списках и каруселях --- */
.catalog-block__item .catalog-block__info-title,
.catalog-block__item .catalog-block__info-title a,
.catalog-block__item .catalog-block__info-title a span {
  font-family: var(--d-font-text) !important;
  font-size: var(--d-name) !important;
  line-height: var(--d-name-lh) !important;
  font-weight: var(--d-w-name) !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
}
.catalog-block__item .catalog-block__info-title a.dark_link { color: var(--d-ink); }

.catalog-block__item .price__new-val,
.catalog-viewed__item .price__new-val {
  font-family: var(--d-font-text) !important;
  font-size: var(--d-price) !important;
  line-height: var(--d-price-lh) !important;
  font-weight: var(--d-w-price) !important;
}

.catalog-block__item .image-list__link,
.catalog-block__item .section-gallery-wrapper,
.catalog-block__item .image-list img { border-radius: var(--d-r-img) !important; }

.catalog-block__item .sticker__item,
.catalog-detail .sticker__item { border-radius: var(--d-r-badge) !important; }

/* Высота и радиус; фон не трогаем: на телефоне у кнопки тёплый серый градиент */
.catalog-block__item .btn.to_cart,
.catalog-block__item .btn.in_cart {
  min-height: var(--d-btn-h-sm) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}

/* Расстояние между колонками; расстояние между рядами остаётся как у Аспро */
.catalog-block > .grid-list { column-gap: var(--d-grid-gap) !important; }

/* --- «Вы смотрели»: те же карточки, что «Лучшие предложения» --- */
.catalog-viewed .swiper-wrapper {
  display: grid !important;
  grid-auto-flow: row !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  column-gap: var(--d-grid-gap) !important;
  row-gap: var(--d-8) !important;
  transform: none !important;
}
.catalog-viewed .slider-nav { display: none !important; }
.catalog-viewed__item.swiper-slide { width: auto !important; margin: 0 !important; min-width: 0; height: auto !important; }
.catalog-viewed__item-wrap {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.catalog-viewed__item__image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  flex: none !important;
  margin-bottom: var(--d-4) !important;
  border-radius: var(--d-r-img) !important;
}
.catalog-viewed__item__image img { object-fit: cover !important; border-radius: var(--d-r-img) !important; }
.catalog-viewed__item__info { display: flex; flex-direction: column; }
.catalog-viewed__item__info .price { order: -1; margin: 0 0 var(--d-2) !important; }
.catalog-viewed__item__title {
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3 !important;
  line-clamp: 3 !important;
  overflow: hidden;
  height: auto !important;
  max-height: none !important;
  font-size: var(--d-name) !important;
  line-height: var(--d-name-lh) !important;
  font-weight: var(--d-w-name) !important;
}
.catalog-viewed__item__title a,
.catalog-viewed__item__title a span {
  font-size: var(--d-name) !important;
  line-height: var(--d-name-lh) !important;
  font-weight: var(--d-w-name) !important;
  white-space: normal !important;
}
.catalog-viewed__item__title a.dark_link { color: var(--d-ink); }

/* --- Карточка товара --- */
.catalog-detail__main h1 {
  font-family: var(--d-font-title) !important;
  font-size: var(--d-h-product) !important;
  line-height: var(--d-h-product-lh) !important;
  font-weight: var(--d-w-title) !important;
  color: var(--d-ink) !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
.catalog-detail__price .price__new-val {
  font-family: var(--d-font-text) !important;
  font-size: var(--d-price-big) !important;
  line-height: var(--d-price-big-lh) !important;
  font-weight: var(--d-w-price) !important;
}
.catalog-detail__buy-block { border-radius: var(--d-r-block) !important; }
.detail-gallery-big-slider-main,
.detail-gallery-big-slider-main img { border-radius: var(--d-r-img) !important; }

.catalog-detail__cart .btn,
.catalog-detail__btn-actions .btn {
  min-height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}

/* Бонусы → кнопка: на компьютере зазор меньше */
.catalog-detail__buy-block .catalog-detail__price { margin-bottom: calc(var(--d-2) * -1); }

/* --- Фильтры и сортировка: как малая кнопка --- */
.filter-panel .dropdown-select__title,
.filter-compact-block .dropdown-select__title {
  min-height: var(--d-btn-h-sm) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
}
.filter-panel .dropdown-select__title,
.filter-panel .dropdown-select__title-text,
.filter-compact-block .dropdown-select__title,
.filter-compact-block .bx_filter_parameters_box_title_text { font-weight: var(--d-w-name) !important; }
.filter-panel .toggle-panel__item { border-radius: var(--d-r-btn) !important; }

/* Боковое меню разделов и вкладки карточки — те же радиусы */
.side-menu .top-level-link { border-radius: var(--d-r-btn) !important; }
.catalog-detail .nav-tabs a { border-radius: var(--d-r-btn) !important; }

/* «Вы смотрели»: столько же колонок, сколько в списках на этой ширине */
@media (max-width: 1199px) { .catalog-viewed .swiper-wrapper { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
@media (max-width: 991px)  { .catalog-viewed .swiper-wrapper { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }

@media (max-width: 767px) {
  /* Фильтры на узком телефоне: «Сортировка» должна влезать целиком */
  .filter-panel .dropdown-select__title,
  .filter-panel .dropdown-select__title-text { font-size: var(--d-name) !important; }
  .filter-panel .dropdown-select__title { padding-left: var(--d-3) !important; padding-right: var(--d-3) !important; }
  .filter-panel .dropdown-select__title > i.mr { margin-right: var(--d-2) !important; }

  /* «Поделиться» и пустая строка под названием */
  .catalog-detail__info-tc { display: none !important; }

  /* Пустой блок вариантов давал второй зазор 24 px между бонусами и кнопкой */
  .catalog-detail__offers.visible-by-block-presence:not(:has(.sku-props > *)) { display: none !important; }
  .catalog-detail__btn-actions { margin-top: calc(var(--d-2) * -1); }

  /* «Вы смотрели»: 2 в ряд, без прокрутки вбок */
  .catalog-viewed .swiper-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    row-gap: var(--d-6) !important;
  }
}

/* =====================================================================
   30-checkout: корзина (/basket/) и оформление заказа (/order/).
   Только вид: размеры, отступы, радиусы. Цвета кнопки «Оформить заказ» и логику не трогаем.
   Наш слой /local/assets/roz-checkout/ остаётся как есть: его переменные переопределяем
   внутри формы (id сильнее :root), поэтому порядок подключения файлов не важен.
   ===================================================================== */

/* ---------- сетка оформления: переменные слоя --roz-* приводим к шкале ---------- */
#bx-soa-order-form {
  --roz-pad: var(--d-pad);
  --roz-title-gap: var(--d-title-gap);
  --roz-label-gap: var(--d-label-gap);
  --roz-radius-block: var(--d-r-block);
  --roz-radius-field: var(--d-r-field);
  --roz-row: var(--d-5);   /* между полями: было 24 */
}
@media (max-width: 767px) {
  #bx-soa-order-form { --roz-row: var(--d-4); }   /* было 20 */
}

/* ---------- заголовки блоков: 24/32 на компьютере, 18/24 на телефоне (как название букета, kb/02) ---------- */
#bx-soa-order-form h2.bx-soa-section-title {
  font-size: var(--d-h-product) !important;
  line-height: var(--d-h-product-lh) !important;
  padding-right: 0 !important;
}

/* ---------- подписи полей ---------- */
#bx-soa-order-form .bx-soa-customer-field .bx-soa-custom-label,
#bx-soa-order-form .bx-soa-customer-field .bx-soa-customer-label,
#bx-soa-order-form .bx-soa-customer-label {
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
  color: var(--d-muted);
}
/* у переключателей подпись — обычный текст, не подпись поля */
#bx-soa-order-form .roz-switch-row .bx-soa-customer-field .bx-soa-custom-label {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
  color: var(--d-ink);
}

/* ---------- поля ввода ---------- */
#bx-soa-order-form input.form-control,
#bx-soa-order-form .bx-soa-customer-input,
#bx-soa-order-form select {
  min-height: var(--d-field-h) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: var(--d-4);
  padding-right: var(--d-4);
  border-radius: var(--d-r-field);
}
#bx-soa-order-form textarea.form-control {
  padding: var(--d-3) var(--d-4) !important;
  border-radius: var(--d-r-field);
}
#bx-soa-order-form #orderDescription { min-height: calc(var(--d-16) + var(--d-2)) !important; }
/* На телефоне размер текста в поле остаётся 16 px: при меньшем iOS увеличивает страницу при фокусе */
@media (min-width: 768px) {
  #bx-soa-order-form input.form-control,
  #bx-soa-order-form textarea.form-control { font-size: var(--d-text) !important; }
}

/* Блок покупателя: поля вровень с остальными блоками (сдвиг на 4 px давал отступ Аспро у строки) */
#bx-soa-order-form .bx-soa-customer .row-props {
  padding: 0 !important;
  margin: 0 !important;
  column-gap: var(--roz-col);
}
#bx-soa-order-form .bx-soa-customer .row-props::before,
#bx-soa-order-form .bx-soa-customer .row-props::after { display: none !important; }   /* clearfix становился элементом flex и давал лишний row-gap сверху и снизу */
#bx-soa-order-form .bx-soa-customer .row-props > .bx-soa-customer-field { padding: 0 !important; }
@media (min-width: 768px) {
  #bx-soa-order-form .bx-soa-customer .row-props > .bx-soa-customer-field[data-property-id-row="2"],
  #bx-soa-order-form .bx-soa-customer .row-props > .bx-soa-customer-field[data-property-id-row="3"] {
    width: calc(50% - var(--roz-col) / 2) !important;
  }
}

/* ---------- плашки доставки и оплаты ---------- */
#bx-soa-order-form .bx-soa-pp-company-inner { border-radius: var(--d-r-field) !important; }
#bx-soa-order-form .bx-soa-pp-company-label {
  font-size: var(--d-text);
  line-height: var(--d-text-lh);
}
#bx-soa-order-form .bx-soa-pp-delivery-cost {
  font-size: var(--d-text);
  line-height: var(--d-text-lh);
  font-weight: var(--d-w-price);
}
#bx-soa-delivery .roz-dsub,
.roz-pay {
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
}
#bx-soa-order-form .corsik_yaDelivery__showDeliveryButton.btn {
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
}

/* ---------- чипы: даты ---------- */
#bx-soa-order-form .roz-dates { gap: var(--d-2); scroll-padding-inline: 2px; }   /* первая дата вровень с полями: без этого прилипание сдвигало её на 2 px влево */
#bx-soa-order-form .roz-date {
  height: var(--d-12);
  min-width: var(--d-16);
  padding: 0 var(--d-2);
  border-radius: var(--d-r-chip);
}
#bx-soa-order-form .roz-date__top {
  font-size: var(--d-caption);
  line-height: var(--d-4);
}
#bx-soa-order-form .roz-date__day {
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
  font-weight: var(--d-w-name);
}

/* ---------- чипы: интервалы. Три в ряд помещаются на 360 px, текст строго по центру ---------- */
#bx-soa-order-form .roz-slots__list { gap: var(--d-2); }
#bx-soa-order-form .roz-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  width: 100%;
  height: var(--d-chip-h);
  min-height: var(--d-chip-h);
  padding: 0;
  border-radius: var(--d-r-chip);
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
  text-align: center;
  white-space: nowrap;
  word-spacing: -.2em;   /* узкие пробелы вокруг тире, иначе на 360 px текст упирается в рамку */
}
@media (max-width: 767px) {
  #bx-soa-order-form .roz-slot { font-size: calc(var(--d-caption) - 1px); }   /* на 360 px при 13 px текст упирался в рамку */
}
#bx-soa-order-form .roz-slots__group + .roz-slots__group { margin-top: var(--d-3); }
#bx-soa-order-form .roz-slots__more {
  min-height: var(--d-btn-h-sm);
  margin-top: var(--d-3);
  padding: 0 var(--d-3) 0 var(--d-4);
  border-radius: var(--d-r-chip);
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
}
#bx-soa-order-form .roz-slots__more-text { white-space: nowrap; }
#bx-soa-order-form .roz-slots__more + .roz-slots__group { margin-top: var(--d-2); }

/* Сегменты «Квартира / Частный дом» и подсказки почты — в той же стилистике */
#bx-soa-order-form .roz-seg { border-radius: var(--d-r-chip); }
#bx-soa-order-form .roz-seg__btn {
  min-height: var(--d-chip-h);
  padding: 0 var(--d-4);
  border-radius: var(--d-2);
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
}
#bx-soa-order-form .roz-email-hint {
  min-height: var(--d-chip-h);
  border-radius: var(--d-r-chip);
  font-size: var(--d-caption);
}

/* Вложенные плашки */
#bx-soa-order-form .roz-important,
#bx-soa-order-form .roz-pickup-info,
#bx-soa-order-form .roz-card-toggle { border-radius: var(--d-r-field); }
#bx-soa-order-form .bx-soa-pp > .roz-important { padding: var(--d-4) !important; }   /* на телефоне внутренний отступ терялся */
#bx-soa-order-form .roz-card-toggle {
  min-height: var(--d-field-h);
  font-size: var(--d-text);
}

/* ---------- итог ---------- */
body #bx-soa-total .bx-soa-cart-total {
  padding: var(--d-pad) !important;
  border-radius: var(--d-r-block) !important;
}
#bx-soa-total .bx-soa-cart-total-line {
  font-size: var(--d-text);
  line-height: var(--d-text-lh);
}
#bx-soa-total .bx-soa-cart-total-line-totals {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--d-3);
  font-size: var(--d-h3);
  line-height: var(--d-h3-lh);
  font-weight: var(--d-w-name);
}
#bx-soa-total .bx-soa-cart-total-line-totals .bx-soa-cart-d {
  font-size: var(--d-price-big);
  line-height: var(--d-price-big-lh);
  font-weight: var(--d-w-price);
}
#bx-soa-total .total-scroll-info,
#bx-soa-total .total-scroll-info__title,
#bx-soa-total .total-scroll-info__value {
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
}
#bx-soa-total .roz-cta-info__title,
#bx-soa-total .roz-cta-info__text {
  font-size: var(--d-caption);
  line-height: var(--d-caption-lh);
}
#bx-soa-total .roz-cta-info__title { font-weight: var(--d-w-name); }

/* Кнопка главного действия: шкала кнопок. Цвет остаётся за слоем roz-checkout */
#bx-soa-total a.btn.btn-order-save,
#bx-soa-total .bx-soa-cart-total a.btn.btn-default,
#bx-soa-orderSave a.btn {
  min-height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  line-height: var(--d-caption-lh) !important;
  font-weight: var(--d-w-btn) !important;
}

@media (max-width: 767px) {
  #bx-soa-total .bx-soa-cart-conditions { padding: 0 var(--d-pad) !important; }
}

/* ---------- корзина: карточка товара ---------- */
#basket-root #basket-items-list-container { border-radius: var(--d-r-block) !important; }
#basket-root .basket-item-image { border-radius: var(--d-r-img); }
#basket-root h2.basket-item-info-name,
#basket-root h2.basket-item-info-name a,
#basket-root h2.basket-item-info-name span {
  font-family: var(--d-font-title) !important;
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
  font-weight: var(--d-w-title) !important;
}
#basket-root .basket-item-price-current-value {
  font-size: var(--d-price) !important;
  line-height: var(--d-price-lh) !important;
  font-weight: var(--d-w-price) !important;
}
#basket-root .basket-item-price-current-text,
#basket-root .basket-item-amount-field-description {
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
}
/* Строку «Тип цены» скрывает 30-checkout.js: только её, другие свойства товара остаются */
#basket-root .roz-d-hide { display: none !important; }

/* ---------- корзина: блок итога ---------- */
#basket-root .basket-checkout-container {
  padding: var(--d-pad) !important;
  border-radius: var(--d-r-block) !important;
}
#basket-root .basket-checkout-total-title {
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
  font-weight: var(--d-w-name) !important;
}
#basket-root .basket-coupon-block-total-price-current {
  font-size: var(--d-price-big) !important;
  line-height: var(--d-price-big-lh) !important;
  font-weight: var(--d-w-price) !important;
}
#basket-root .basket-checkout-block-total-inner { align-items: baseline; }
#basket-root .basket-checkout-total-price-inner { padding-top: 0 !important; }
#basket-root .basket-coupon-section { margin-top: var(--d-4) !important; }
#basket-root .basket-coupon-block-field input {
  height: var(--d-field-h) !important;
  border-radius: var(--d-r-field) !important;
  font-size: var(--d-text) !important;
}
#basket-root .basket-checkout-btn { margin-top: var(--d-2) !important; }
#basket-root .basket-btn-checkout,
#basket-root .basket-checkout-btn .btn-ocb {
  min-height: var(--d-btn-h) !important;
  height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}

/* ---------- пустая корзина ---------- */
/* При пустой корзине обёртки #basket-root на странице нет */
body .bx-sbb-empty-cart-container .bx-sbb-empty-cart-text {
  font-family: var(--d-font-title) !important;
  font-size: var(--d-h2) !important;
  line-height: var(--d-h2-lh) !important;
  font-weight: var(--d-w-title) !important;
  color: var(--d-ink) !important;
}
body .bx-sbb-empty-cart-container .bx-sbb-empty-cart-desc {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
  color: var(--d-muted);
}

/* =====================================================================
   Группа d: инфостраницы (о компании, доставка, оплата, вопросы, отзывы, услуги),
   вход и регистрация, страница 404. Только оформление, структура не меняется.

   Как ограничено: текст инфостраниц — прямые потомки
     .right_block.narrow_Y (компьютер) и main > .maxwidth-theme (телефон).
   Проверено: на главной, в каталоге, карточке, корзине, /order/ и /contacts/ таких элементов нет.
   Форма входа — .pk-page, 404 — .page_not_found, вопросы — .faq-accordion, услуги — .services-list.

   --d-measure — ширина строки текста. В 00-tokens.css такого токена пока нет,
   поэтому значение стоит запасным (см. reports/design/notes_d.md).
   ===================================================================== */

/* ---------- Текст инфостраниц ---------- */
:is(.right_block.narrow_Y, main > .maxwidth-theme) > :is(p, ul, ol, blockquote),
:is(.right_block.narrow_Y, main > .maxwidth-theme) > :is(ul, ol) > li,
:is(.right_block.narrow_Y, main > .maxwidth-theme) > table :is(td, th),
.text_before_items,
.text_before_items p {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
  color: var(--d-ink);
  hyphens: none !important;
  -webkit-hyphens: none !important;
  overflow-wrap: break-word;
}
:is(.right_block.narrow_Y, main > .maxwidth-theme) > p { margin: 0 0 var(--d-4) !important; }
:is(.right_block.narrow_Y, main > .maxwidth-theme) > :is(ul, ol) { margin: 0 0 var(--d-4) !important; }
:is(.right_block.narrow_Y, main > .maxwidth-theme) > :is(ul, ol) > li { margin: 0 0 var(--d-2) !important; }
:is(.right_block.narrow_Y, main > .maxwidth-theme) > :is(ul, ol) > li:last-child { margin-bottom: 0 !important; }

/* Заголовки внутри текста: размеры уже из токенов, здесь только отступы */
:is(.right_block.narrow_Y, main > .maxwidth-theme) > h2 { margin: var(--d-12) 0 var(--d-title-gap) !important; color: var(--d-ink); }
:is(.right_block.narrow_Y, main > .maxwidth-theme) > h3 { margin: var(--d-8) 0 var(--d-4) !important; color: var(--d-ink); }
:is(.right_block.narrow_Y, main > .maxwidth-theme) > :is(h2, h3):first-child { margin-top: 0 !important; }
:is(.right_block.narrow_Y, main > .maxwidth-theme) > h2 + h3 { margin-top: var(--d-title-gap) !important; }

/* Читаемая ширина строки на компьютере: на 1066 пикселей выходило около 125 знаков */
@media (min-width: 768px) {
  .right_block.narrow_Y > :is(p, ul, ol, blockquote),
  .text_before_items { max-width: var(--d-measure, 760px) !important; }
}

/* Таблица (условия доставки): та же ширина, что у текста; на телефоне не шире экрана */
:is(.right_block.narrow_Y, main > .maxwidth-theme) > table {
  width: 100% !important;
  max-width: 100% !important;
  margin: var(--d-5) 0 var(--d-6) !important;
}
@media (min-width: 768px) {
  .right_block.narrow_Y > table { max-width: var(--d-measure, 760px) !important; }
}
:is(.right_block.narrow_Y, main > .maxwidth-theme) > table :is(td, th) {
  padding: var(--d-3) var(--d-4) !important;
  border-color: var(--d-line) !important;
  vertical-align: top;
}
:is(.right_block.narrow_Y, main > .maxwidth-theme) > table th {
  background: var(--d-tile) !important;
  color: var(--d-ink) !important;
  font-weight: var(--d-w-price) !important;
}
@media (max-width: 767px) {
  :is(.right_block.narrow_Y, main > .maxwidth-theme) > table :is(td, th) { padding: var(--d-3) !important; }
  :is(.right_block.narrow_Y, main > .maxwidth-theme) > h2 { margin-top: var(--d-8) !important; }
  :is(.right_block.narrow_Y, main > .maxwidth-theme) > h3 { margin-top: var(--d-6) !important; margin-bottom: var(--d-3) !important; }
}

/* Картинки в тексте не шире колонки */
:is(.right_block.narrow_Y, main > .maxwidth-theme) > p img { max-width: 100% !important; height: auto !important; border-radius: var(--d-r-img); }

/* ---------- О компании: фотогалерея ---------- */
/* Было: атрибут height=400 перебивал задуманную пропорцию, фото 258×400, пятое одно на втором ряду */
.roz-gal { gap: var(--d-3) !important; margin: var(--d-5) 0 0 !important; }
/* В файлах по бокам белые поля (3:2), пропорция 4:5 с обрезкой по центру их убирает. !important: стиль страницы стоит в body, позже слоя */
.roz-gal img { height: auto !important; aspect-ratio: 4 / 5 !important; object-fit: cover !important; border-radius: var(--d-r-img) !important; }
@media (min-width: 992px) {
  .roz-gal { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}
@media (min-width: 600px) and (max-width: 991px) {
  .roz-gal { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 599px) {
  .roz-gal { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .roz-gal img:last-child:nth-child(odd) { grid-column: 1 / -1; aspect-ratio: 1 / 1 !important; }
}

/* ---------- Вопросы и ответы ---------- */
/* Вкладки разделов — как чипы */
.tabs:has(~ .tab-content .faq-accordion__list) .nav__item a {
  display: flex !important;
  align-items: center;
  height: var(--d-chip-h) !important;
  padding: 0 var(--d-4) !important;
  border-radius: var(--d-r-chip) !important;
  font-size: var(--d-text) !important;
  line-height: 1 !important;
  white-space: nowrap;
}
.faq-accordion__list .accordion-head .switcher-title {
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
}
.faq-accordion__detail-text {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
  max-width: var(--d-measure, 760px);
  color: var(--d-ink);
  hyphens: none !important;
  -webkit-hyphens: none !important;
}
/* Углы списка и карточки «Задать вопрос» — как у больших блоков */
.faq-accordion__list .faq-accordion__wrapper:first-child { border-top-left-radius: var(--d-r-block) !important; border-top-right-radius: var(--d-r-block) !important; }
.faq-accordion__list .faq-accordion__wrapper:last-child { border-bottom-left-radius: var(--d-r-block) !important; border-bottom-right-radius: var(--d-r-block) !important; }
.right_block.narrow_Y > .order-block__wrapper,
main > .maxwidth-theme > .order-block__wrapper {
  border-radius: var(--d-r-block) !important;
  padding: var(--d-pad) !important;
  margin-top: var(--d-10) !important;
}
:is(.right_block.narrow_Y, main > .maxwidth-theme) > .order-block__wrapper h3 { margin: 0 !important; }
:is(.right_block.narrow_Y, main > .maxwidth-theme) > .order-block__wrapper .mt--32 {
  margin-top: var(--d-3) !important;
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
}
:is(.right_block.narrow_Y, main > .maxwidth-theme) > .order-block__wrapper .btn {
  height: var(--d-btn-h) !important;
  min-height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}

/* ---------- Услуги ---------- */
.services-list .ui-card { border-radius: var(--d-r-block) !important; overflow: hidden; }
.services-list .ui-card .blog-item__title {
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
}
.services-list .ui-card .btn {
  height: var(--d-btn-h-sm) !important;
  min-height: var(--d-btn-h-sm) !important;
  padding: 0 var(--d-5) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}

/* ---------- Отзывы: только шапки и подписи. Прокрутка окна Яндекса задумана (roz_home9/10), не трогаем ---------- */
.roz-reviews-page .roz-reviews__name {
  font-family: var(--d-font-title) !important;
  font-size: var(--d-h3) !important;
  line-height: var(--d-h3-lh) !important;
  font-weight: var(--d-w-title) !important;
  color: var(--d-ink) !important;
}
.roz-reviews-page .roz-reviews__foot {
  padding-top: var(--d-3) !important;
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
}

/* ---------- Вход, регистрация, восстановление пароля ---------- */
.pk-page .top-text {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
  padding-bottom: var(--d-6) !important;
}
.pk-page .form-group { margin-bottom: var(--d-5) !important; }
.pk-page .form-group > label,
.pk-page .captcha-row > label {
  margin-bottom: var(--d-label-gap) !important;
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
  color: var(--d-ink) !important;
}
.pk-page .form-group .text_block {
  margin-top: var(--d-1);
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
  color: var(--d-muted) !important;
}
.pk-page input.form-control {
  height: var(--d-field-h) !important;
  min-height: var(--d-field-h) !important;
  padding: 0 var(--d-4) !important;
  border-radius: var(--d-r-field) !important;
  font-size: var(--d-text) !important;
  line-height: normal !important;
}
.pk-page input.form-control:not(:focus) { border-color: var(--d-line) !important; }
.pk-page button.btn {
  height: var(--d-btn-h) !important;
  min-height: var(--d-btn-h) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}
.pk-page .forgot,
.pk-page .form-checkbox__label {
  font-size: var(--d-caption) !important;
  line-height: var(--d-caption-lh) !important;
}
.pk-page .form-footer .font_15 {
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
}
/* На iPhone поле с шрифтом меньше 16 px при нажатии увеличивает всю страницу */
@media (max-width: 767px) {
  .pk-page input.form-control { font-size: max(16px, var(--d-text)) !important; }
}

/* ---------- 404 ---------- */
.page_not_found { padding: var(--d-16) 0 !important; }
.page_not_found .image { margin-bottom: var(--d-8) !important; height: auto !important; line-height: 0; }
.page_not_found .image svg { max-width: 100%; height: auto; }
.page_not_found .subtitle404 {
  font-family: var(--d-font-title) !important;
  font-size: var(--d-h1) !important;
  line-height: var(--d-h1-lh) !important;
  font-weight: var(--d-w-title) !important;
  color: var(--d-ink) !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
}
.page_not_found .descr_text404 {
  margin-top: var(--d-4) !important;
  font-size: var(--d-text) !important;
  line-height: var(--d-text-lh) !important;
  color: var(--d-muted) !important;
}
.page_not_found .description {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--d-3);
}
.page_not_found .subtitle404,
.page_not_found .descr_text404 { flex: 0 0 100%; }
.page_not_found .descr_text404 { margin-bottom: var(--d-5) !important; }
.page_not_found .btn {
  height: var(--d-btn-h) !important;
  min-height: var(--d-btn-h) !important;
  margin: 0 !important;
  padding: 0 var(--d-6) !important;
  border-radius: var(--d-r-btn) !important;
  font-size: var(--d-btn) !important;
  font-weight: var(--d-w-btn) !important;
}
.page_not_found .btn-transparent-border { border-color: var(--d-line) !important; color: var(--d-ink) !important; }
@media (max-width: 767px) {
  /* Поля как у остальных страниц: лишняя вложенность .maxwidth-theme давала 32 вместо 16 */
  .page_error_block { margin-left: calc(var(--d-page) * -1) !important; margin-right: calc(var(--d-page) * -1) !important; }
  .page_not_found { padding: var(--d-10) 0 !important; }
  .page_not_found .image svg { width: 240px; }
  .page_not_found .btn { flex: 0 0 100%; }
}
