/* ============================================================
   Правки, сделанные вручную параллельно с фоновой доработкой.
   Держим отдельным файлом, чтобы не столкнуться с правками
   в lp-final.css. Подключается из Header.html последним.
   ============================================================ */

/* --- Контакты: пояснение жалось в 172px рядом со значением,
       строки выглядели рвано (замечание Андрея) --------------- */
html body.tpl-body-site-1 .contacts-short .tpl-block-list-objects {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}
html body.tpl-body-site-1 .contacts-short .contact-value-wrapper {
  display: grid;
  grid-template-columns: 26px 1fr;
  align-items: start;
  column-gap: 12px;
  row-gap: 4px;
}
html body.tpl-body-site-1 .contacts-short .contact-icon {
  grid-row: span 2;
  width: 26px;
  justify-content: flex-start;
  color: var(--lp-teal, #155E54);
}
html body.tpl-body-site-1 .contacts-short .contact-value,
html body.tpl-body-site-1 .contacts-short .contact-value-wrapper > a {
  font-size: 16.5px;
  font-weight: 700;
  color: var(--lp-ink, #2E2A23);
  text-decoration: none;
  align-self: center;
}
html body.tpl-body-site-1 .contacts-short .contact-description {
  grid-column: 2;
  width: auto !important;
  max-width: none !important;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--lp-muted, #6B6154);
}

@media (max-width: 560px) {
  html body.tpl-body-site-1 .contacts-short .tpl-block-list-objects { gap: 14px; }
  html body.tpl-body-site-1 .contacts-short .contact-value,
  html body.tpl-body-site-1 .contacts-short .contact-value-wrapper > a { font-size: 16px; }
}

/* --- Кнопка покупки: тёмный текст на хвойном фоне давал контраст
       1.88 при норме 4.5 — надпись не читалась (замечание Андрея).
       Заодно кнопка становится терракотовой и крупнее: покупка
       должна быть самым заметным действием на карточке. ---------- */
html body.tpl-body-site-1 .lp-agg-card__btn,
html body.tpl-body-site-1 .item-card__cart-btn,
html body.tpl-body-site-1 .lp-buy-box .item-full__cart-btn,
html body.tpl-body-site-1 .lp-sticky-buy__btn,
html body.tpl-body-site-1 .lp-t-card__btn {
  background: #A9522C !important;
  border-color: #A9522C !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  font-weight: 700;
}
html body.tpl-body-site-1 .lp-agg-card__btn:hover,
html body.tpl-body-site-1 .item-card__cart-btn:hover,
html body.tpl-body-site-1 .lp-buy-box .item-full__cart-btn:hover,
html body.tpl-body-site-1 .lp-sticky-buy__btn:hover,
html body.tpl-body-site-1 .lp-t-card__btn:hover {
  background: #8E4423 !important;
  border-color: #8E4423 !important;
}

/* крупнее прежнего */
html body.tpl-body-site-1 .lp-agg-card__btn,
html body.tpl-body-site-1 .item-card__cart-btn {
  min-height: 42px;
  padding: 0 18px;
  font-size: 14.5px;
  border-radius: 11px;
}
html body.tpl-body-site-1 .lp-buy-box .item-full__cart-btn {
  min-height: 54px;
  font-size: 17px;
}

/* Терракота ушла кнопке, поэтому мелкие акценты приглушаем —
   иначе на странице каталога два десятка одинаково ярких пятен
   и кнопка перестаёт выделяться. */
html body.tpl-body-site-1 .lp-agg-card__cat,
html body.tpl-body-site-1 .item-card__category,
html body.tpl-body-site-1 .lp-t-card__cat {
  color: #8A7B6B !important;
  -webkit-text-fill-color: #8A7B6B;
}

/* --- Воздух между шапкой и первым заголовком: было 26px,
       логотип почти упирался в текст (замечание Андрея) --------- */
@media (max-width: 900px) {
  html body.tpl-body-site-1 .lp-usp,
  html body.tpl-body-site-1 .lp-hero {
    padding-top: 34px;
  }
  html body.tpl-body-site-1 .tpl-container-main > .tpl-block-list:first-child {
    margin-top: 14px;
  }
}

/* --- Окно входа на телефоне: сквозь подложку читался текст
       страницы и мешал (замечание Андрея «убрать прозрачный фон») */
@media (max-width: 900px) {
  html body.tpl-body-site-1 .nc-auth-popup {
    background: #1B1813 !important;
  }
}

/* --- Кнопка покупки: терракота не доходила до каталога.
       Тема красит кнопки правилом
       «.tpl-body-site-1 button:not(.a):not(.b):not(.c)» — каждый :not()
       добавляет вес класса, поэтому у темы вес 4 класса против наших 2,
       и зелёный побеждал даже в файле, подключённом последним.
       Повышаем вес: добавляем в цепочку .item-card и класс кнопки. ------ */
html body.tpl-body-site-1 .item-card button.item-card__cart-btn.tpl-button-primary,
html body.tpl-body-site-1 .item-card .item-card__cart-form button.tpl-button-primary,
html body.tpl-body-site-1 .lp-buy-box button.item-full__cart-btn.tpl-button-primary,
html body.tpl-body-site-1 .lp-sticky-buy button.lp-sticky-buy__btn.tpl-button-primary {
  background: #A9522C !important;
  background-color: #A9522C !important;
  border-color: #A9522C !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}
html body.tpl-body-site-1 .item-card button.item-card__cart-btn.tpl-button-primary:hover,
html body.tpl-body-site-1 .lp-buy-box button.item-full__cart-btn.tpl-button-primary:hover,
html body.tpl-body-site-1 .lp-sticky-buy button.lp-sticky-buy__btn.tpl-button-primary:hover {
  background: #8E4423 !important;
  background-color: #8E4423 !important;
  border-color: #8E4423 !important;
}

/* крупнее, как просил Андрей */
html body.tpl-body-site-1 .item-card button.item-card__cart-btn.tpl-button-primary {
  min-height: 44px !important;
  padding: 0 20px !important;
  font-size: 15px !important;
  border-radius: 11px !important;
}
html body.tpl-body-site-1 .lp-buy-box button.item-full__cart-btn.tpl-button-primary {
  min-height: 56px !important;
  font-size: 17px !important;
}

/* метка формата на главной была светлее, чем в каталоге (4.10 против 6.06) */
html body.tpl-body-site-1 .lp-agg-card__cat {
  color: #7A6A58 !important;
  -webkit-text-fill-color: #7A6A58;
}

/* Избранное на телефоне: цена + «В корзину» + «Удалить» не помещались в один
   ряд, «Удалить» уезжала строкой ниже и разрывала карточку. Раскладываем
   сеткой: цена и удаление сверху, кнопка корзины во всю ширину под ними. */
@media (max-width: 560px) {
    html body.tpl-body-site-1 .lp-fav-card__actions {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "price remove"
            "cart  cart";
        align-items: center;
        gap: 12px 10px;
    }
    html body.tpl-body-site-1 .lp-fav-card__price  { grid-area: price; }
    html body.tpl-body-site-1 .lp-fav-card__remove { grid-area: remove; justify-self: end; }
    html body.tpl-body-site-1 .lp-fav-card__cart   { grid-area: cart; width: 100%; }
    html body.tpl-body-site-1 .lp-fav-card__cart button { width: 100%; }
}

/* Переключатель сортировки каталога: строка над списком материалов.
   Текущий вариант — залитая плашка, остальные — спокойные ссылки. */
html body.tpl-body-site-1 .lp-sort {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin: 0 0 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(46, 42, 35, 0.12);
}
html body.tpl-body-site-1 .lp-sort__label {
    font-size: 14px;
    color: #7A6A58;
    white-space: nowrap;
}
html body.tpl-body-site-1 .lp-sort__list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
html body.tpl-body-site-1 .lp-sort__item {
    display: inline-block;
    padding: 6px 13px;
    border-radius: 999px;
    font-size: 14px;
    line-height: 1.2;
    text-decoration: none;
    color: #2E2A23;
    background: rgba(46, 42, 35, 0.06);
    transition: background .15s ease, color .15s ease;
}
html body.tpl-body-site-1 a.lp-sort__item:hover {
    background: rgba(169, 82, 44, 0.14);
    color: #8A4520;
}
html body.tpl-body-site-1 .lp-sort__item--on {
    background: #A9522C;
    color: #fff;
    font-weight: 600;
}

/* На телефоне строка сортировки прокручивается вбок, а не переносится
   в три ряда и не съедает экран до карточек. */
@media (max-width: 560px) {
    html body.tpl-body-site-1 .lp-sort {
        display: block;
        margin-bottom: 16px;
    }
    html body.tpl-body-site-1 .lp-sort__label {
        display: block;
        margin-bottom: 8px;
    }
    html body.tpl-body-site-1 .lp-sort__list {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 4px;
    }
    html body.tpl-body-site-1 .lp-sort__list > li { flex: 0 0 auto; }
}

/* Широкий баннер в обложке новости или статьи: показываем целиком, а не
   вырезаем середину. Подложка в тон карточки, чтобы поля не выглядели дырой. */
html body.tpl-body-site-1 .item-image-wrapper.lp-fit-contain {
    background: #F3EDE1;
}
html body.tpl-body-site-1 .item-image-wrapper.lp-fit-contain img {
    object-fit: contain !important;
    padding: 10px;
}

/* Иконки в блоке преимуществ приходили 48×48, а рисовались 14×14 — вместо
   значка была точка. Даём нормальный размер и отступ до подписи. */
html body.tpl-body-site-1 .object-item-image img.tpl-icon {
    width: 28px !important;
    height: 28px !important;
    max-width: 28px;
    opacity: .85;
}
html body.tpl-body-site-1 .icon-layout.icon-top .object-item-image {
    height: auto !important;
    margin-bottom: 12px;
}

/* Пустая корзина: спокойный блок с выходом в каталог вместо красной ошибки. */
html body.tpl-body-site-1 .lp-cart-empty {
    max-width: 560px;
    margin: 8px 0 48px;
    padding: 32px;
    border-radius: 20px;
    background: #F6F1E8;
}
html body.tpl-body-site-1 .lp-cart-empty__title {
    margin: 0 0 8px;
    font-family: Lora, Georgia, serif;
    font-size: 22px;
    font-weight: 700;
    color: #2E2A23;
}
html body.tpl-body-site-1 .lp-cart-empty__text {
    margin: 0 0 22px;
    font-size: 15px;
    line-height: 1.5;
    color: #7A6A58;
}
html body.tpl-body-site-1 .lp-cart-empty__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 20px;
}
html body.tpl-body-site-1 .lp-cart-empty__btn {
    display: inline-block;
    padding: 12px 26px;
    border-radius: 12px;
    background: #A9522C;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}
html body.tpl-body-site-1 .lp-cart-empty__btn:hover { background: #8A4520; }
html body.tpl-body-site-1 .lp-cart-empty__link {
    color: #7A6A58;
    text-decoration: underline;
}
@media (max-width: 560px) {
    html body.tpl-body-site-1 .lp-cart-empty { padding: 24px 20px; }
    html body.tpl-body-site-1 .lp-cart-empty__btn { width: 100%; text-align: center; }
}

/* Контейнер иконки жёстко держал высоту 20px и расплющивал значок в 28×14. */
html body.tpl-body-site-1 .object-item-image,
html body.tpl-body-site-1 .object-item-image .tpl-icon {
    height: auto !important;
    min-height: 0 !important;
    line-height: 0;
}
html body.tpl-body-site-1 .object-item-image img.tpl-icon {
    object-fit: contain; /* иконки преимуществ */
    aspect-ratio: 1 / 1;
}

/* Шаги оформления на телефоне шли столбиком и занимали пол-экрана до товаров.
   Ставим лентой с горизонтальной прокруткой. */
@media (max-width: 720px) {
    html body.tpl-body-site-1 .cart-page-labels {
        display: flex !important;
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-bottom: 18px;
        padding-bottom: 6px;
    }
    html body.tpl-body-site-1 .cart-page-labels > * {
        flex: 0 0 auto;
        font-size: 13px;
        white-space: nowrap;
        opacity: .55;
    }
    html body.tpl-body-site-1 .cart-page-labels > .active,
    html body.tpl-body-site-1 .cart-page-labels > .is-active {
        opacity: 1;
        font-weight: 700;
    }
}

/* Обложка товара в корзине: широкий баннер показываем целиком, а не серединой. */
html body.tpl-body-site-1 .cart-item-image img,
html body.tpl-body-site-1 .cart-goods-item img,
html body.tpl-body-site-1 [class*="cart"] .item-image-wrapper img {
    object-fit: contain !important;
    background: #F3EDE1;
}

/* Страница «не найдено»: короткое объяснение и два выхода. Навигация по сайту
   есть в подвале, поэтому меню разделов здесь не дублируем. */
html body.tpl-body-site-1 .lp-404__text {
    max-width: 560px;
    margin: 0 0 26px;
    font-size: 16px;
    line-height: 1.55;
    color: #7A6A58;
}
html body.tpl-body-site-1 .lp-404__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 22px;
    margin-bottom: 56px;
}
html body.tpl-body-site-1 .lp-404__btn {
    display: inline-block;
    padding: 13px 28px;
    border-radius: 12px;
    background: #A9522C;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}
html body.tpl-body-site-1 .lp-404__btn:hover { background: #8A4520; }
html body.tpl-body-site-1 .lp-404__link {
    color: #7A6A58;
    text-decoration: underline;
}
@media (max-width: 560px) {
    html body.tpl-body-site-1 .lp-404__btn { width: 100%; text-align: center; }
}

/* Меню разделов на странице «не найдено» скрываем: плитками оно выглядело
   рекламной лентой, списком — разъезжалось на широком экране, а навигация
   по сайту и так есть в подвале. Снятия галочки в админке движок для
   компонента навигации не слушается, поэтому убираем стилями. */
html body.tpl-body-site-1 .tpl-block-51,
html body.tpl-body-site-1 .tpl-block-51-list {
    display: none !important;
}

/* Две карточки в ряд на планшете (480–767): ширина карточки около 270,
   и в неё нужно уложить обложку, заголовок, преподавателя, метки, цену
   и кнопку. Уплотняем всё, что распирало вёрстку. */
@media (min-width: 480px) and (max-width: 767.98px) {
    /* заголовок мельче и не длиннее трёх строк */
    html body.tpl-body-site-1 .lp-agg-card__title {
        font-size: 15px;
        line-height: 1.3;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    /* регалии в такой ширине всё равно обрезались на полуслове — прячем,
       имя преподавателя остаётся */
    html body.tpl-body-site-1 .lp-agg-card__trole { display: none; }
    html body.tpl-body-site-1 .lp-agg-card__tname { font-size: 13px; }
    html body.tpl-body-site-1 .lp-agg-card__ava {
        width: 28px;
        height: 28px;
        font-size: 11px;
    }
    /* метки компактнее */
    html body.tpl-body-site-1 .lp-agg-card__meta { gap: 4px; }
    html body.tpl-body-site-1 .lp-agg-card__meta span {
        padding: 3px 8px;
        font-size: 11px;
    }
    /* цена и кнопка — в столбик, кнопка во всю ширину */
    html body.tpl-body-site-1 .lp-agg-card__foot {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    html body.tpl-body-site-1 .lp-agg-card__price { font-size: 17px; }
    html body.tpl-body-site-1 .lp-agg-card__btn {
        width: 100%;
        text-align: center;
        padding: 10px 12px;
        font-size: 14px;
    }
    /* обложка чуть ниже: квадрат съедал половину карточки */
    html body.tpl-body-site-1 .lp-agg-card__cover {
        height: 170px !important;
        padding-top: 0 !important;
        aspect-ratio: auto !important;
    }
    html body.tpl-body-site-1 .lp-agg-card__body { padding: 14px; }
}

/* Приводим подборки главной к одной сетке: у «Развивающих пособий» в
   настройках стояло четыре колонки, и на планшете карточки сжимались до
   122 пикселей. Перечисляем блоки по номерам — правило темы задано так же,
   и общий селектор ему проигрывает. */
@media (min-width: 480px) and (max-width: 767.98px) {
    html body.tpl-body-site-1 .tpl-block-54 .tpl-block-54-list,
    html body.tpl-body-site-1 .tpl-block-68 .tpl-block-68-list,
    html body.tpl-body-site-1 .tpl-block-168 .tpl-block-168-list,
    html body.tpl-body-site-1 .tpl-block-170 .tpl-block-170-list,
    html body.tpl-body-site-1 .tpl-block-171 .tpl-block-171-list,
    html body.tpl-body-site-1 .tpl-block-178 .tpl-block-178-list,
    html body.tpl-body-site-1 .tpl-block-183 .tpl-block-183-list,
    html body.tpl-body-site-1 .tpl-block-184 .tpl-block-184-list,
    html body.tpl-body-site-1 .tpl-block-185 .tpl-block-185-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 479.98px) {
    html body.tpl-body-site-1 .tpl-block-54 .tpl-block-54-list,
    html body.tpl-body-site-1 .tpl-block-68 .tpl-block-68-list,
    html body.tpl-body-site-1 .tpl-block-168 .tpl-block-168-list,
    html body.tpl-body-site-1 .tpl-block-170 .tpl-block-170-list,
    html body.tpl-body-site-1 .tpl-block-171 .tpl-block-171-list,
    html body.tpl-body-site-1 .tpl-block-178 .tpl-block-178-list,
    html body.tpl-body-site-1 .tpl-block-183 .tpl-block-183-list,
    html body.tpl-body-site-1 .tpl-block-184 .tpl-block-184-list,
    html body.tpl-body-site-1 .tpl-block-185 .tpl-block-185-list {
        grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    }
}





/* В узкой карточке цена и кнопка в одну строку не помещаются — переносим
   «Подробнее» на свою строку, кнопку оставляем компактной. */
@media (max-width: 767.98px) {
    html body.tpl-body-site-1 .lp-agg-card__buy {
        width: 100%;
        justify-content: space-between;
        margin-left: 0;
    }
}

/* Подвал карточки: цена и покупка — пара в одной строке, «Подробнее» —
   вторичная ссылка под ними. Раньше три элемента стояли в ряд и между
   кнопкой и ссылкой зияла дыра в половину карточки. */
html body.tpl-body-site-1 .lp-agg-card__foot:has(.lp-agg-card__buy) {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    row-gap: 10px;
    column-gap: 12px;
}
html body.tpl-body-site-1 .lp-agg-card__foot:has(.lp-agg-card__buy) .lp-agg-card__price {
    grid-column: 1;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
}
html body.tpl-body-site-1 .lp-agg-card__buy {
    grid-column: 2;
    display: contents;              /* форма не мешает сетке подвала */
}
html body.tpl-body-site-1 .lp-agg-card__cartform {
    grid-column: 2;
    margin: 0;
}
html body.tpl-body-site-1 .lp-agg-card__buy .lp-agg-card__btn {
    grid-column: 2;
    width: auto;
    padding: 10px 18px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}
/* «Подробнее» — своя строка под ценой, вес заметно меньше кнопки */
html body.tpl-body-site-1 .lp-agg-card__more {
    grid-column: 1 / -1;
    justify-self: start;
    font-size: 13px;
    line-height: 1;
    color: #7A6A58;
    text-decoration: none;
    border-bottom: 1px solid rgba(122, 106, 88, .35);
    padding-bottom: 2px;
    transition: color .15s ease, border-color .15s ease;
}
html body.tpl-body-site-1 .lp-agg-card__more::after {
    content: " →";
    letter-spacing: -.02em;
}
html body.tpl-body-site-1 .lp-agg-card__more:hover {
    color: #A9522C;
    border-color: rgba(169, 82, 44, .55);
}


/* На совсем узких карточках цена и кнопка встык — даём им по своей строке,
   но кнопку по-прежнему не растягиваем. */
@media (max-width: 359.98px) {
    html body.tpl-body-site-1 .lp-agg-card__foot:has(.lp-agg-card__buy) {
        grid-template-columns: 1fr;
    }
    html body.tpl-body-site-1 .lp-agg-card__cartform,
    html body.tpl-body-site-1 .lp-agg-card__buy .lp-agg-card__btn {
        grid-column: 1;
        justify-self: start;
    }
}

/* Состояние «уже в корзине»: не гасим кнопку заливкой — текст на ней терялся.
   Показываем отметкой: белый фон, терракотовая обводка, тёмный текст. */
html body.tpl-body-site-1 .lp-agg-card__buy .lp-agg-card__btn--incart,
html body.tpl-body-site-1 a.lp-agg-card__btn--incart {
    background: #fff !important;
    color: #6E3414 !important;
    border: 1.5px solid #A9522C !important;
    font-weight: 600 !important;
    padding: 8.5px 16px;
}
html body.tpl-body-site-1 .lp-agg-card__btn--incart::before {
    content: "✓ ";
    font-weight: 700;
}
@media (hover: hover) and (pointer: fine) {
    html body.tpl-body-site-1 .lp-agg-card__btn--incart:hover {
        background: #FBF3ED !important;
        color: #6E3414 !important;
        border-color: #8A4520 !important;
    }
}

/* Состояние «в корзине» перебиваем селектором той же силы, что у базовой
   кнопки, и снимаем -webkit-text-fill-color: он красит текст поверх color. */
html body.tpl-body-site-1 .lp-agg-card .lp-agg-card__foot .lp-agg-card__btn--incart,
html body.tpl-body-site-1 .lp-agg-card__foot a.lp-agg-card__btn--incart {
    background: #fff !important;
    background-color: #fff !important;
    border: 1.5px solid #A9522C !important;
    border-color: #A9522C !important;
    color: #6E3414 !important;
    -webkit-text-fill-color: #6E3414 !important;
    font-weight: 600 !important;
}

/* Подпись обложки по одной вертикали с текстом карточки: было 18 против 14,
   и надпись выглядела съехавшей вправо относительно заголовка под ней. */
html body.tpl-body-site-1 .lp-agg-card__word,
html body.tpl-body-site-1 .lp-card-cover__word,
html body.tpl-body-site-1 .lp-related__media .lp-card-cover__word {
    padding: 18px 14px 14px !important;
}
@media (max-width: 767.98px) {
    html body.tpl-body-site-1 .lp-agg-card__word,
    html body.tpl-body-site-1 .lp-card-cover__word,
    html body.tpl-body-site-1 .lp-related__media .lp-card-cover__word {
        padding: 16px 14px 14px !important;
    }
}

/* Текст кнопки по центру: при растянутой высоте надпись прижималась к
   верхнему отступу и сидела выше середины. */
html body.tpl-body-site-1 .lp-agg-card__btn,
html body.tpl-body-site-1 .lp-agg-card__buy .lp-agg-card__btn,
html body.tpl-body-site-1 .lp-agg-card .lp-agg-card__foot .lp-agg-card__btn--incart,
html body.tpl-body-site-1 .item-card__cart-btn,
html body.tpl-body-site-1 .lp-cart-empty__btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 42px;
    line-height: 1.15 !important;
}
html body.tpl-body-site-1 .lp-agg-card__cartform {
    display: flex;
}

/* Количество в корзине: одна покупка — один доступ. Материалы цифровые,
   второй экземпляр не даёт ничего, кроме второй цены, поэтому сервер
   сводит количество к единице. Кнопки «плюс» и «минус» при этом только
   сбивали бы с толку — убираем их, число оставляем как есть. */
html body.tpl-body-site-1 .cart-page-column--quantity .product-quantity-button {
    display: none !important;
}
html body.tpl-body-site-1 .cart-page-column--quantity .product-quantity-input {
    pointer-events: none;
    width: 44px;
    text-align: center;
    border-color: transparent;
    background: transparent;
    color: #2E2A23;
    -moz-appearance: textfield;
    appearance: textfield;
}
html body.tpl-body-site-1 .cart-page-column--quantity .product-quantity-input::-webkit-outer-spin-button,
html body.tpl-body-site-1 .cart-page-column--quantity .product-quantity-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ======================================================================
   Корзина: строка товара собрана в сетку, цифры прижаты вправо.
   Колонки таблицы растягивались по всей ширине, и между названием и ценой
   висела пустота. Теперь название забирает свободное место, а цена,
   количество и сумма стоят компактной группой справа.
   ====================================================================== */

html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-table {
    max-width: 940px;
    margin: 0 auto;
}

html body.tpl-body-site-1 .cart-page-header,
html body.tpl-body-site-1 .cart-page-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px 92px 120px 40px;
    align-items: center;
    column-gap: 16px;
}

html body.tpl-body-site-1 .cart-page-header {
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(46, 42, 35, .12);
}
html body.tpl-body-site-1 .cart-page-header .cart-stage-label {
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #7A6A58;
    font-style: normal;
}

html body.tpl-body-site-1 .cart-page-row {
    padding: 18px 0;
    border-bottom: 1px solid rgba(46, 42, 35, .08);
}

/* товар: картинка крупнее, название читаемое и не сжатое */
html body.tpl-body-site-1 .cart-page-column--title {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}
html body.tpl-body-site-1 .cart-page-image {
    flex: 0 0 88px;
    width: 88px;
    height: 88px;
    border-radius: 10px;
    background-size: cover;
    background-position: center;
    background-color: #F0E9DD;
}
html body.tpl-body-site-1 .cart-page-info { min-width: 0; }
html body.tpl-body-site-1 .cart-page-name a {
    font-family: 'Lora', Georgia, serif;
    font-size: 16px;
    line-height: 1.35;
    color: #2E2A23;
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
html body.tpl-body-site-1 .cart-page-name a:hover { color: #A9522C; }

/* цифры: одинаковое выравнивание по правому краю */
html body.tpl-body-site-1 .cart-page-column--price,
html body.tpl-body-site-1 .cart-page-column--sum {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
html body.tpl-body-site-1 .cart-page-price { font-size: 15px; color: #7A6A58; }
html body.tpl-body-site-1 .cart-page-column--sum { font-size: 17px; font-weight: 700; color: #2E2A23; }
html body.tpl-body-site-1 .cart-page-column--quantity { justify-self: center; }
html body.tpl-body-site-1 .cart-page-column--changeStatus { justify-self: end; }

/* итоги и промокод — одна карточка, а не два разрозненных блока */
html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-bottom {
    max-width: 940px;
    margin: 22px auto 0;
    padding: 20px 22px;
    background: #FBF7F0;
    border: 1px solid rgba(46, 42, 35, .08);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}
html body.tpl-body-site-1 .cart-stage-subscribe { margin: 0; }
html body.tpl-body-site-1 .cart-subscribe-label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}
html body.tpl-body-site-1 .cart-subscribe-text {
    font-size: 13px;
    color: #7A6A58;
    white-space: nowrap;
}
html body.tpl-body-site-1 .cart-subscribe-input {
    width: 190px;
    height: 42px;
}
html body.tpl-body-site-1 .cart-subscribe-button { height: 42px; }
html body.tpl-body-site-1 .cart-stage-sum {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin: 0;
}
html body.tpl-body-site-1 .cart-sum-text { font-size: 14px; color: #7A6A58; }
html body.tpl-body-site-1 .cart-sum-number {
    font-family: 'Lora', Georgia, serif;
    font-size: 26px;
    font-weight: 700;
    color: #2E2A23;
    font-variant-numeric: tabular-nums;
}

/* переход к оформлению — главное действие страницы */
html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-next {
    max-width: 940px;
    margin: 16px auto 0;
    padding: 0;
    background: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}
html body.tpl-body-site-1 .cart-next-text {
    font-size: 14px;
    color: #7A6A58;
    font-style: normal;
}

@media (max-width: 767.98px) {
    html body.tpl-body-site-1 .cart-page-header { display: none; }
    html body.tpl-body-site-1 .cart-page-row {
        grid-template-columns: minmax(0, 1fr) auto;
        row-gap: 10px;
        padding: 16px 0;
    }
    html body.tpl-body-site-1 .cart-page-column--title { grid-column: 1 / -1; }
    html body.tpl-body-site-1 .cart-page-image { flex: 0 0 68px; width: 68px; height: 68px; }
    html body.tpl-body-site-1 .cart-page-name a { font-size: 15px; }
    /* на телефоне цену отдельной строкой не показываем: сумма её повторяет */
    html body.tpl-body-site-1 .cart-page-column--price { display: none; }
    html body.tpl-body-site-1 .cart-page-column--quantity { justify-self: start; }
    html body.tpl-body-site-1 .cart-page-column--sum { grid-column: 2; }
    html body.tpl-body-site-1 .cart-page-column--changeStatus {
        position: absolute;
        right: 0;
        margin-top: -78px;
    }
    html body.tpl-body-site-1 .cart-page-row { position: relative; }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-bottom {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        padding: 16px;
    }
    html body.tpl-body-site-1 .cart-subscribe-label { flex-wrap: wrap; }
    html body.tpl-body-site-1 .cart-subscribe-input { flex: 1 1 130px; width: auto; }
    html body.tpl-body-site-1 .cart-stage-sum { justify-content: space-between; }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-next {
        flex-direction: column;
        align-items: stretch;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-next .cart-next-button,
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-next .button { width: 100%; }
}

/* Корзина: перебиваем раскладку темы. Её правила задают строке flex со
   «space-between» — картинка и название расходились по краям, а сетка не
   включалась. Здесь только те свойства, которые тема действительно ставит. */
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-header,
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 110px 92px 120px 40px !important;
    justify-content: initial !important;
    align-items: center !important;
    column-gap: 16px !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-column {
    width: auto !important;
    padding: 0 !important;
    flex: initial !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-column--title {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 16px !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-image {
    flex: 0 0 88px !important;
    width: 88px !important;
    height: 88px !important;
    margin: 0 !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-info {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
}

/* низ корзины: промокод слева, итог справа — в одну строку */
html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-subscribe {
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    flex: 0 1 auto !important;
    padding: 0 !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-subscribe-label {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: auto !important;
    margin: 0 !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-sum {
    display: flex !important;
    align-items: baseline !important;
    width: auto !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
}

@media (max-width: 767.98px) {
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-row {
        grid-template-columns: minmax(0, 1fr) auto !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-column--title {
        grid-column: 1 / -1 !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-image {
        flex: 0 0 68px !important;
        width: 68px !important;
        height: 68px !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-subscribe,
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-sum {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-sum {
        justify-content: space-between !important;
    }
}

/* Корзина: низ страницы одной строкой — промокод слева, сумма справа.
   Раньше блоки переносились из-за собственных отступов темы. */
@media (min-width: 768px) {
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-bottom {
        flex-wrap: nowrap !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-subscribe {
        margin: 0 !important;
        flex: 0 1 auto !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-subscribe-label {
        width: auto !important;
        max-width: 100% !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-sum {
        margin: 0 0 0 auto !important;
        flex: 0 0 auto !important;
        white-space: nowrap;
    }
}

/* цифры строки товара — по центру вместе с картинкой */
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-row .cart-page-column {
    align-self: center !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-row .cart-page-price,
html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-row .cart-page-column--sum {
    margin: 0 !important;
}

/* подпись «Промо-код» не должна прижиматься к полю справа */
html body.tpl-body-site-1 .cart-page-stage--cart .cart-subscribe-text {
    text-align: left !important;
    flex: 0 0 auto !important;
}

/* Корзина: промокод прижат к левому краю карточки — подпись тянулась
   фиксированной шириной и отжимала поле ввода вправо. */
html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-subscribe {
    justify-content: flex-start !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-subscribe-label {
    justify-content: flex-start !important;
}
html body.tpl-body-site-1 .cart-page-stage--cart .cart-subscribe-text {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Подпись MAX в подвале: нарисованный значок ни на что не походил, поэтому
   ставим буквы — в том же кружке, что и соседние иконки. */
html body.tpl-body-site-1 .lp-ft__socials .lp-ft__max {
    font-family: 'Manrope', system-ui, sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1;
    text-decoration: none;
}

/* В пустом разделе не показываем сортировку и подбор: выбирать не из чего,
   а элементы управления над сообщением «материалов пока нет» выглядят
   недоделкой. */
html body.tpl-body-site-1 .tpl-component-netcat-module-netshop-goods-universal:has(.lp-empty) .lp-sort,
html body.tpl-body-site-1 .tpl-component-netcat-module-netshop-goods-universal:has(.lp-empty) .lp-filter,
html body.tpl-body-site-1 .tpl-component-netcat-module-netshop-goods-universal:has(.lp-empty) .lp-facets {
    display: none !important;
}

/* Программа занятий в карточке товара: оглавление курса — номер, название,
   время справа. Длинный список сворачиваем, иначе двадцать строк вытесняют
   со страницы всё остальное. */
html body.tpl-body-site-1 .lp-program__count {
    font-family: 'Manrope', system-ui, sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #7A6A58;
    letter-spacing: .01em;
    margin-left: 8px;
    white-space: nowrap;
}
html body.tpl-body-site-1 ol.lp-lessons {
    list-style: none;
    margin: 0 0 6px;
    padding: 0;
    counter-reset: none;
}
html body.tpl-body-site-1 .lp-lessons__item {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(46, 42, 35, .08);
}
html body.tpl-body-site-1 .lp-lessons__item:last-child { border-bottom: 0; }
html body.tpl-body-site-1 .lp-lessons__num {
    flex: 0 0 26px;
    height: 26px;
    border-radius: 8px;
    background: #F0E9DD;
    color: #7A6A58;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
}
html body.tpl-body-site-1 .lp-lessons__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 15px;
    line-height: 1.4;
    color: #2E2A23;
}
html body.tpl-body-site-1 .lp-lessons__dur {
    flex: 0 0 auto;
    font-size: 13px;
    color: #7A6A58;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* сворачивание длинного списка: показываем восемь занятий, дальше по кнопке */
html body.tpl-body-site-1 ol.lp-lessons.is-collapsed .lp-lessons__item:nth-child(n+9) {
    display: none;
}
html body.tpl-body-site-1 .lp-lessons-more {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 6px;
    padding: 9px 16px;
    border: 1px solid rgba(46, 42, 35, .18);
    border-radius: 10px;
    background: #fff;
    color: #0D453D;
    font: 600 14px/1 'Manrope', system-ui, sans-serif;
    cursor: pointer;
}
html body.tpl-body-site-1 .lp-lessons-more:hover {
    border-color: #0D453D;
}

@media (max-width: 575.98px) {
    html body.tpl-body-site-1 .lp-lessons__item { gap: 10px; padding: 9px 0; }
    html body.tpl-body-site-1 .lp-lessons__title { font-size: 14px; }
    html body.tpl-body-site-1 .lp-lessons__dur { font-size: 12px; }
}

/* Строка над программой: сколько занятий и когда откроется доступ. */
html body.tpl-body-site-1 .lp-lessons__summary {
    margin: 0 0 14px;
    color: #7A6A58;
    font-size: 14px;
    line-height: 1.5;
}

/* Корзина на телефоне: обложка слева, название рядом, цифры строкой ниже.
   Тема добавляет колонке товара перенос и собственные отступы — из-за них
   картинка уезжала в середину, а колонка вылезала за свою ячейку. */
@media (max-width: 767.98px) {
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-row {
        grid-template-columns: minmax(0, 1fr) auto !important;
        row-gap: 12px !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-column--title {
        grid-column: 1 / -1 !important;
        /* тема разворачивает эту колонку по вертикали — возвращаем строку */
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-image {
        margin: 0 !important;
        align-self: flex-start !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-info {
        margin: 0 !important;
        text-align: left !important;
    }
    /* цифры: количество слева, сумма справа */
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-column--quantity {
        grid-column: 1 !important;
        justify-self: start !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-column--sum {
        grid-column: 2 !important;
        justify-self: end !important;
        text-align: right !important;
    }
    /* сначала промокод, потом итог — порядок читается сверху вниз */
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-bottom {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-subscribe { order: 1 !important; }
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-stage-sum {
        order: 2 !important;
        justify-content: space-between !important;
        padding-top: 14px !important;
        border-top: 1px solid rgba(46, 42, 35, .10) !important;
    }
}

/* Узкий экран: страницу нельзя утащить вбок. Ряд меток шагов и скрытая
   шапка таблицы вылезали за край и включали горизонтальную прокрутку. */
@media (max-width: 767.98px) {
    /* шапка таблицы не нужна: в строке товара и так подписано */
    html body.tpl-body-site-1 .cart-page-stage--cart .cart-page-header {
        display: none !important;
    }
    /* шаги: оставляем только текущий, остальные не помещаются и не нужны */
    html body.tpl-body-site-1 .cart-page-labels {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px 10px !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }
    html body.tpl-body-site-1 .cart-page-label {
        font-size: 12px !important;
        white-space: nowrap !important;
    }
    html body.tpl-body-site-1 .cart-page-label:not(.is-active):not(.active):not(.current) {
        display: none !important;
    }
    /* страховка от любого другого широкого содержимого */
    html body.tpl-body-site-1 .cart-page-stage--cart {
        overflow-x: hidden;
    }
}

/* ============================================================
   Правки по письму Андрея 10.08.2026 (без #6 MAX — откачен по просьбе)
   ============================================================ */

/* #1 — воздух в логотипе: между «Логопрофистор» и «портал для специалистов» */
html body.tpl-body-site-1 .lp-hd__logo { line-height: 1.18; }
html body.tpl-body-site-1 .lp-hd__logo-sub { margin-top: 6px; }
@media (max-width: 640px) {
  html body.tpl-body-site-1 .lp-hd__logo-sub { margin-top: 4px; }
}

/* #8 — попап входа: смягчить подложку (была сплошная rgb(27,24,19)) и поднять контраст */
html body.tpl-body-site-1 .nc-auth-popup {
  background: rgba(17, 14, 11, .55) !important;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
html body.tpl-body-site-1 .nc-auth-popup__title,
html body.tpl-body-site-1 .nc-auth-form label,
html body.tpl-body-site-1 .nc-auth-field label,
html body.tpl-body-site-1 .nc-auth-popup__subtitle {
  color: #2E2A23 !important;
}
html body.tpl-body-site-1 .nc-auth-popup input::placeholder {
  color: #8A7D6C !important;
  opacity: 1;
}

/* #7 — модалка «в корзину»: подложку делаем заметно тёмной */
html body.tpl-body-site-1 .nc-popup-cart.nc-popup {
  background: rgba(0, 0, 0, .55) !important;
}

/* #1 доп (10.08): «портал для специалистов» чуть правее */
html body.tpl-body-site-1 .lp-hd__logo-sub { margin-left: 5px; }
@media (max-width: 640px) {
  html body.tpl-body-site-1 .lp-hd__logo-sub { margin-left: 4px; }
}

/* R2-1/2 (11.08) — Андрею .55-подложка всё равно казалась прозрачной. Делаем
   явный плотный фон, без blur (на части мобильных blur читается как «прозрачно»). */
html body.tpl-body-site-1 .nc-auth-popup {
  background: rgba(0, 0, 0, .72) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html body.tpl-body-site-1 .nc-popup-cart.nc-popup {
  background: rgba(0, 0, 0, .72) !important;
}
/* на случай, если после «в корзину» показывается нативная мини-корзина NetCat —
   ей тоже задаём фон подложки */
html body.tpl-body-site-1 .tpl-component-netcat-module-netshop-modal-basket-add > div[style*="position: fixed"],
html body.tpl-body-site-1 .nc-basket-modal__overlay,
html body.tpl-body-site-1 [class*="basket-add"] [class*="overlay"] {
  background: rgba(0, 0, 0, .72) !important;
}

/* R2-3 (11.08) — «Войти» первым пунктом мобильного меню + акцент, чтобы клиенты
   его замечали (Андрей: «а то не найдут»). */
html body.tpl-body-site-1 .lp-hd__mobile .lp-hd__mobile-login {
  background: #C4643A;
  color: #fff !important;
  font-weight: 700;
  border-radius: 10px;
  text-align: center;
  margin-bottom: 8px;
}
html body.tpl-body-site-1 .lp-hd__mobile .lp-hd__mobile-login:hover {
  background: #A9522C;
  color: #fff !important;
}

/* R2-4 (11.08) — «Мои покупки» на мобильном: карточки в один столбец с явным
   вертикальным зазором (Андрей: не хватает пробела между строк). */
@media (max-width: 640px) {
  html body.tpl-body-site-1 .lp-purchases-scope .prod-grid.lp-purchases {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    row-gap: 16px;
  }
  html body.tpl-body-site-1 .lp-purchases-scope .prod-card {
    margin: 0;
  }
}

/* R3-1 (13.08) — Андрей: подложки модалок по-прежнему прозрачные. Причина:
   чинил только корзину и вход, а «Поделиться» (.45) и «Быстрая покупка» (.5)
   остались полупрозрачными. Делаем ПЛОТНЫМИ ВСЕ модальные подложки. */
html body.tpl-body-site-1 .lp-share-modal,
html body.tpl-body-site-1 .tpl-block-popup,
html body.tpl-body-site-1 .nc-popup-cart.nc-popup,
html body.tpl-body-site-1 .nc-auth-popup {
  background: rgba(0, 0, 0, .72) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* R3-2 (13.08) — единый вертикальный ритм секций главной. Модули «Новые записи»,
   «Дистанционные курсы», «Развивающие пособия», рассылка, блог сливались с
   карточками выше (margin:0). Даём каждому блоку-НАЧАЛУ секции одинаковый отступ
   сверху (как между слайдером и «Ближайшими вебинарами»). */
html body.tpl-body-site-1 .tpl-container-129-list > *:has(.tpl-text-header2),
html body.tpl-body-site-1 .tpl-container-129-list > .lp-subscribe {
  margin-top: 44px !important;
}

/* R3-2 доработка (13.08): margin у блоков не схлопывались (отступы складывались,
   первый зазор стал 74, «Новости» 84). Обнуляем все вертикальные margin блоков
   списка главной и задаём ЕДИНЫЙ ритм: 44px над началом секции, 12px до её карточек. */
html body.tpl-body-site-1 .tpl-container-129-list > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
html body.tpl-body-site-1 .tpl-container-129-list > *:has(.tpl-text-header2) {
  margin-top: 44px !important;
  margin-bottom: 12px !important;
}
html body.tpl-body-site-1 .tpl-container-129-list > .lp-subscribe {
  margin-top: 44px !important;
}

/* R3-2 добор (13.08): «Лидеры продаж» использует .lp-sec-head, а не .tpl-text-header2 */
html body.tpl-body-site-1 .tpl-container-129-list > *:has(.lp-sec-head) {
  margin-top: 44px !important;
  margin-bottom: 12px !important;
}

/* ============================================================
   ПРАВКИ R4 (21.08.2026). Оверрайды — в конце lp-manual.css.
   ============================================================ */

/* R4-1. «Всего в корзине 1 товар» — счётчик выглядел оранжевым маркером.
   Виновато широкое правило lp-final.css:302 [class*="-count"], задуманное
   под кружок-бейдж у иконки. Внутри фразы это обычный текст. */
html body.tpl-body-site-1 .nc-cart-items-count,
html body.tpl-body-site-1 .nc-cart-items-count-text,
html body.tpl-body-site-1 .nc-popup-cart__subtitle [class*="-count"] {
  background-color: transparent !important;
  color: inherit !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-weight: 700;
}

/* R4-2 (#8). Единый размер шрифта во всех вкладках карточки.
   Было вразнобой: описание/FAQ 18px, «что входит» 15px, характеристики 16/18px. */
html body.tpl-body-site-1 .lp-tabpanel,
html body.tpl-body-site-1 .lp-tabpanel p,
html body.tpl-body-site-1 .lp-tabpanel li,
html body.tpl-body-site-1 .lp-tabpanel dt,
html body.tpl-body-site-1 .lp-tabpanel dd,
html body.tpl-body-site-1 .item-full__details,
html body.tpl-body-site-1 .item-full__details p,
html body.tpl-body-site-1 .item-full__details li,
html body.tpl-body-site-1 .lp-includes li,
html body.tpl-body-site-1 .item-full__spec-name,
html body.tpl-body-site-1 .item-full__spec-value,
html body.tpl-body-site-1 .lp-faq-q,
html body.tpl-body-site-1 .lp-faq-a,
html body.tpl-body-site-1 .lp-faq-a p,
html body.tpl-body-site-1 .lp-program li,
html body.tpl-body-site-1 .lp-rich,
html body.tpl-body-site-1 .lp-rich p,
html body.tpl-body-site-1 .lp-rich li {
  font-size: 16px !important;
  line-height: 1.6 !important;
}
/* подзаголовки внутри вкладок остаются крупнее — иначе текст сливается */
html body.tpl-body-site-1 .lp-tabpanel h3,
html body.tpl-body-site-1 .lp-tabpanel h4,
html body.tpl-body-site-1 .lp-rich h3,
html body.tpl-body-site-1 .lp-rich h4 {
  font-size: 18px !important;
  line-height: 1.35 !important;
}

/* R4-3 (#9). Меньше воздуха: блоки читались как разрозненные из-за
   крупных вертикальных отступов при и без того большом межстрочном. */
html body.tpl-body-site-1 .lp-faq-item { padding: 11px 0 !important; }
html body.tpl-body-site-1 .lp-faq-a { margin-top: 7px !important; }
html body.tpl-body-site-1 .lp-includes li { padding: 5px 0 !important; }
html body.tpl-body-site-1 .item-full__details p { margin: 0 0 9px !important; }
html body.tpl-body-site-1 .item-full__details p:last-child { margin-bottom: 0 !important; }
html body.tpl-body-site-1 .lp-rich p,
html body.tpl-body-site-1 .lp-rich ul,
html body.tpl-body-site-1 .lp-rich ol { margin-bottom: 9px !important; }
html body.tpl-body-site-1 .lp-related { margin-top: 34px !important; }

/* R4-4 (#10). Поиск пропадал при сужении окна: в lp-final.css:1426 он
   просто прятался (display:none) и нигде не заменялся. Теперь переносим
   его второй строкой шапки — остаётся доступен на любой ширине. */
@media (max-width: 720px) {
  html body.tpl-body-site-1 .lp-hd__in {
    height: auto;
    min-height: 58px;
    flex-wrap: wrap;
    align-items: center;
    padding-top: 8px;
    padding-bottom: 10px;
    column-gap: 10px;
    row-gap: 8px;
  }
  html body.tpl-body-site-1 .lp-hd__logo  { order: 1; }
  html body.tpl-body-site-1 .lp-hd__icons { order: 2; margin-left: auto; }
  html body.tpl-body-site-1 .lp-hd__search {
    display: flex !important;
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    height: 38px;
  }
  /* меню-оверлей открывается под шапкой, а она стала выше */
  html body.tpl-body-site-1 .lp-hd__mobile { inset: 109px 0 0 0; }
}

/* R4-5 (#4). Номер занятия не был отцентрован: у строки стояло
   align-items:baseline — кружок с цифрой уезжал на 3px вниз относительно
   первой строки названия. Ровняем по первой строке: высота кружка (26px)
   совпадает с интерлиньяжем названия (16px x 1.6 = 25.6px). */
html body.tpl-body-site-1 .lp-lessons__item { align-items: flex-start !important; }
html body.tpl-body-site-1 .lp-lessons__title { font-size: 16px !important; line-height: 1.6 !important; }
html body.tpl-body-site-1 .lp-lessons__num { margin-top: 0 !important; }
html body.tpl-body-site-1 .lp-lessons__summary { font-size: 16px !important; line-height: 1.6 !important; }

/* R4-6 (#13). Штатная форма обратной связи (модуль requests) на «Контактах».
   Модуль отдаёт поля без классов — целимся в контейнер секции. */
html body.tpl-body-site-1 .lp-feedback {
  max-width: 720px;
  margin: 40px auto 0;
  padding: 28px clamp(18px, 3vw, 32px) 30px;
  background: #fff;
  border: 1px solid #E5DCC9;
  border-radius: 18px;
}
html body.tpl-body-site-1 .lp-feedback__title {
  font-family: Lora, Georgia, serif;
  font-size: 24px;
  line-height: 1.25;
  margin: 0 0 8px;
  color: #2E2A23;
}
html body.tpl-body-site-1 .lp-feedback__lead {
  margin: 0 0 20px !important;
  font-size: 15px;
  line-height: 1.55;
  color: #6B6154 !important;
}
html body.tpl-body-site-1 .lp-feedback form { display: block; }
html body.tpl-body-site-1 .lp-feedback input[type="text"],
html body.tpl-body-site-1 .lp-feedback input[type="email"],
html body.tpl-body-site-1 .lp-feedback input[type="tel"],
html body.tpl-body-site-1 .lp-feedback textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 12px;
  padding: 12px 15px;
  height: auto;
  min-height: 46px;
  font: inherit;
  font-size: 16px;
  line-height: 1.4;
  color: #2E2A23;
  background: #FBF7F0;
  border: 1px solid #DFD4C2;
  border-radius: 12px;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
html body.tpl-body-site-1 .lp-feedback textarea { min-height: 118px; resize: vertical; }
html body.tpl-body-site-1 .lp-feedback input[type="text"]:focus,
html body.tpl-body-site-1 .lp-feedback input[type="email"]:focus,
html body.tpl-body-site-1 .lp-feedback input[type="tel"]:focus,
html body.tpl-body-site-1 .lp-feedback textarea:focus {
  background: #fff;
  border-color: #155E54;
  box-shadow: 0 0 0 3px rgba(21, 94, 84, .1);
}
html body.tpl-body-site-1 .lp-feedback input::placeholder,
html body.tpl-body-site-1 .lp-feedback textarea::placeholder { color: #9A8F80; }

/* согласия: чекбокс и подпись в одну строку, подпись мельче */
html body.tpl-body-site-1 .lp-feedback label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0 0 10px;
  font-size: 13.5px;
  line-height: 1.5;
  color: #6B6154;
  cursor: pointer;
}
html body.tpl-body-site-1 .lp-feedback input[type="checkbox"] {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  margin: 2px 0 0;
  accent-color: #155E54;
  cursor: pointer;
}
html body.tpl-body-site-1 .lp-feedback a { color: #A9522C; text-decoration: underline; }

html body.tpl-body-site-1 .lp-feedback [type="submit"] {
  margin-top: 8px;
  padding: 13px 30px;
  font-size: 16px;
  font-weight: 700;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
}
@media (max-width: 560px) {
  html body.tpl-body-site-1 .lp-feedback { padding: 22px 16px 24px; border-radius: 14px; }
  html body.tpl-body-site-1 .lp-feedback [type="submit"] { width: 100%; }
}

/* R4-6a. Согласия модуля requests: чекбокс и подпись лежат в div.tpl-value
   (label отдельным узлом, не обёрткой) — целимся в контейнер. */
html body.tpl-body-site-1 .lp-feedback .tpl-block-input { margin: 0 0 11px; }
html body.tpl-body-site-1 .lp-feedback .tpl-value {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}
html body.tpl-body-site-1 .lp-feedback .tpl-value label {
  display: inline;
  margin: 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: #6B6154;
  cursor: pointer;
}
html body.tpl-body-site-1 .lp-feedback [class*="agreement"] .tpl-value { align-items: flex-start; }

/* R4-7. Высота шапки — переменной. Раньше меню считало «100dvh - 58px»
   жёстко; после переноса поиска второй строкой шапка стала 109px и меню
   вылезало за экран. Теперь обе величины берутся из одного источника. */
html body.tpl-body-site-1 .lp-hd { --lp-hd-h: 66px; }
@media (max-width: 720px) { html body.tpl-body-site-1 .lp-hd { --lp-hd-h: 109px; } }
html body.tpl-body-site-1 .lp-hd__mobile {
  inset: var(--lp-hd-h, 66px) 0 0 0 !important;
  height: calc(100dvh - var(--lp-hd-h, 66px)) !important;
  max-height: calc(100dvh - var(--lp-hd-h, 66px)) !important;
  background: #FBF7F0 !important;
}

/* R4-8 (#5). Подложки модалок: прежние правила висели на
   body.tpl-body-site-1 — на системных страницах (вход, восстановление
   пароля, служебные) этого класса нет, и подложка там оставалась
   полупрозрачной. Дублируем без привязки к классу body и глушим
   backdrop-filter: на реальных телефонах он часто не отрабатывает и
   слой читается как прозрачный. */
.nc-auth-popup,
.nc-popup-cart.nc-popup,
.nc-popup,
.lp-share-modal,
.tpl-block-popup,
[class*="popup-overlay"],
[class*="modal-overlay"] {
  background: rgba(0, 0, 0, .72) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* контейнеры внутри модалок — наоборот, строго непрозрачные */
.nc-auth-popup__container,
.nc-popup-cart__container,
.lp-share-box,
.tpl-block-popup .tpl-block-popup__container {
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* шапка на любых узких экранах — без стекла */
@media (max-width: 900px) {
  .lp-hd {
    background: #FBF7F0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* R4-9 (#2). Партнёрский товар — обычный товар с пометкой; вместо корзины
   уводим на сайт партнёра. Пометка не должна спорить с плашкой типа. */
html body.tpl-body-site-1 .lp-p-partner {
  display: inline-block;
  margin: 0 0 8px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #7A3418;
  background: #F6E7DC;
  border: 1px solid #E4C4AE;
  border-radius: 999px;
}
html body.tpl-body-site-1 .lp-card-partner {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
  color: #7A3418;
  background: rgba(246, 231, 220, .96);
  border: 1px solid #E4C4AE;
  border-radius: 999px;
}
html body.tpl-body-site-1 .lp-partner-nolink {
  padding: 13px 16px;
  font-size: 15px;
  line-height: 1.5;
  color: #7A3418;
  background: #FBF1EA;
  border: 1px solid #E4C4AE;
  border-radius: 12px;
}

/* R4-10 (#11). Отзывы — штатный модуль comments (шаблон 2). Оформляем его
   разметку под палитру портала: модуль отдаёт свои классы comments-*. */
html body.tpl-body-site-1 .lp-reviews .comments-auth-note {
  padding: 14px 16px;
  font-size: 15px;
  line-height: 1.55;
  color: #6B6154;
  background: #FBF7F0;
  border: 1px solid #E5DCC9;
  border-radius: 12px;
}
html body.tpl-body-site-1 .lp-reviews .comments-auth-note a { color: #A9522C; text-decoration: underline; }

html body.tpl-body-site-1 .lp-reviews .comments-block {
  padding: 16px 0;
  border-bottom: 1px solid #F2ECE0;
}
html body.tpl-body-site-1 .lp-reviews .comments-block:last-child { border-bottom: 0; }
html body.tpl-body-site-1 .lp-reviews .comments-block-reply { margin-left: 26px; border-left: 2px solid #E5DCC9; padding-left: 16px; }
html body.tpl-body-site-1 .lp-reviews .comments-block-user-name { font-weight: 700; color: #2E2A23; }
html body.tpl-body-site-1 .lp-reviews .comments-block-user-date { font-size: 13px; color: #9A8F80; margin-left: 8px; }
html body.tpl-body-site-1 .lp-reviews .comments-block-body-text { margin-top: 6px; font-size: 16px; line-height: 1.6; color: #2E2A23; }
html body.tpl-body-site-1 .lp-reviews .comments-block-body-links { margin-top: 8px; font-size: 13.5px; }
html body.tpl-body-site-1 .lp-reviews .comments-link { color: #155E54; text-decoration: none; }
html body.tpl-body-site-1 .lp-reviews .comments-link:hover { text-decoration: underline; }

/* форма отзыва */
html body.tpl-body-site-1 .lp-reviews .comments-add-block {
  margin-top: 18px;
  padding: 18px;
  background: #FBF7F0;
  border: 1px solid #E5DCC9;
  border-radius: 14px;
}
html body.tpl-body-site-1 .lp-reviews .comments-label {
  display: block;
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #4A4034;
}
html body.tpl-body-site-1 .lp-reviews .comments-input,
html body.tpl-body-site-1 .lp-reviews textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 6px;
  padding: 11px 14px;
  font: inherit;
  font-size: 16px;
  font-weight: 400;
  color: #2E2A23;
  background: #fff;
  border: 1px solid #DFD4C2;
  border-radius: 10px;
  outline: none;
}
html body.tpl-body-site-1 .lp-reviews textarea { min-height: 110px; resize: vertical; }
html body.tpl-body-site-1 .lp-reviews .comments-input:focus,
html body.tpl-body-site-1 .lp-reviews textarea:focus { border-color: #155E54; box-shadow: 0 0 0 3px rgba(21, 94, 84, .1); }
html body.tpl-body-site-1 .lp-reviews .comments-button {
  margin-top: 4px;
  padding: 11px 24px;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: #155E54;
  background: transparent;
  border: 1.5px solid #155E54;
  border-radius: 11px;
  cursor: pointer;
}
html body.tpl-body-site-1 .lp-reviews .comments-button-primary { color: #fff; background: #155E54; border-color: #155E54; }
html body.tpl-body-site-1 .lp-reviews .comments-button:hover { background: #0F4A42; color: #fff; }

/* оценка */
html body.tpl-body-site-1 .lp-reviews .comments-block-rating { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; }
html body.tpl-body-site-1 .lp-reviews .comments-block-rating-link { color: #7A6A58; text-decoration: none; }
html body.tpl-body-site-1 .lp-reviews .comments-block-rating-link:hover { color: #A9522C; }
html body.tpl-body-site-1 .lp-reviews .comments-block-rating-text { font-weight: 700; color: #2E2A23; }
html body.tpl-body-site-1 .lp-reviews .comments-right { text-align: right; font-size: 13.5px; }

/* R4-11 (#12). Карточка-приглашение в блоке ближайших вебинаров: тот же
   размер и ритм, что у товарных, но пунктиром — чтобы читалась как место,
   а не как товар. */
html body.tpl-body-site-1 .lp-agg-invite {
  display: flex;
  flex-direction: column;
  background: #FBF7F0;
  border: 1.5px dashed #D8CBB4;
  border-radius: 16px;
  overflow: hidden;
}
html body.tpl-body-site-1 .lp-agg-invite__cover {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #F3EDE1 0%, #E9DFCC 100%);
}
html body.tpl-body-site-1 .lp-agg-invite__plus {
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  font-weight: 300;
  line-height: 1;
  color: #155E54;
  background: #fff;
  border: 1.5px solid #D8CBB4;
  border-radius: 50%;
}
html body.tpl-body-site-1 .lp-agg-invite__title {
  font-family: Lora, Georgia, serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: #2E2A23;
  margin: 4px 0 6px;
}
html body.tpl-body-site-1 .lp-agg-invite__text {
  margin: 0 0 14px !important;
  font-size: 14px;
  line-height: 1.5;
  color: #6B6154 !important;
}
html body.tpl-body-site-1 .lp-agg-invite__btn { margin-top: auto; }
html body.tpl-body-site-1 .lp-agg-invite__btn .tpl-link-form-open { display: block; }
html body.tpl-body-site-1 .lp-agg-invite__btn button,
html body.tpl-body-site-1 .lp-agg-invite__btn a {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 11px 16px;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background: #155E54;
  border: 0;
  border-radius: 11px;
  cursor: pointer;
}
html body.tpl-body-site-1 .lp-agg-invite__btn button:hover,
html body.tpl-body-site-1 .lp-agg-invite__btn a:hover { background: #0F4A42; }

html body.tpl-body-site-1 .lp-agg-invite { height: 100%; align-self: stretch; }

/* R4-12 (#5, продолжение). У попапа формы отдельный слой-подложка
   .tpl-block-popup-background — он был полностью прозрачным. Если тема
   на каком-то экране красит именно его, а не родителя, подложка читается
   как прозрачная. Заливаем и его. */
.tpl-block-popup-background,
.tpl-block-popup-form .tpl-block-popup-background {
  background: rgba(0, 0, 0, .72) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* сам контейнер формы остаётсянепрозрачным */
.tpl-block-popup-container { background: #fff !important; }

/* R4-13. Сообщение автору отзыва (премодерация) и предупреждения формы. */
html body.tpl-body-site-1 .lp-reviews .comments-warntext {
  margin: 12px 0 0;
  padding: 12px 15px;
  font-size: 15px;
  line-height: 1.5;
  color: #14574C;
  background: #E7F2EE;
  border: 1px solid #BEDCD3;
  border-radius: 11px;
}

/* ============================================================
   Смысловой поиск: блок подбора над обычными результатами.
   ============================================================ */
html body.tpl-body-site-1 .lp-ai {
  margin: 0 0 30px;
  padding: 22px clamp(16px, 2.6vw, 26px) 24px;
  background: linear-gradient(180deg, #FFFDF9 0%, #FBF7F0 100%);
  border: 1px solid #E5DCC9;
  border-radius: 18px;
}
html body.tpl-body-site-1 .lp-ai__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
html body.tpl-body-site-1 .lp-ai__badge {
  padding: 5px 12px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #0F4A42;
  background: #E2EFE9;
  border: 1px solid #BEDCD3;
  border-radius: 999px;
}
html body.tpl-body-site-1 .lp-ai__title {
  margin: 0;
  font-family: Lora, Georgia, serif;
  font-size: 21px;
  line-height: 1.25;
  color: #2E2A23;
}
html body.tpl-body-site-1 .lp-ai__answer {
  margin: 0 0 16px;
  padding: 13px 16px;
  font-size: 15.5px;
  line-height: 1.6;
  color: #2E2A23;
  background: #fff;
  border: 1px solid #E5DCC9;
  border-radius: 12px;
}
html body.tpl-body-site-1 .lp-ai__note {
  display: block;
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px dashed #E5DCC9;
  font-size: 12.5px;
  line-height: 1.45;
  color: #8A8073;
}
html body.tpl-body-site-1 .lp-ai__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
html body.tpl-body-site-1 .lp-ai__card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #E5DCC9;
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: #2E2A23;
  transition: border-color .15s ease, box-shadow .15s ease;
}
html body.tpl-body-site-1 .lp-ai__card:hover { border-color: #155E54; box-shadow: 0 6px 18px rgba(21, 94, 84, .10); }
html body.tpl-body-site-1 .lp-ai__media { display: block; aspect-ratio: 4 / 3; background: #F0EADF; overflow: hidden; }
html body.tpl-body-site-1 .lp-ai__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
html body.tpl-body-site-1 .lp-ai__name {
  padding: 12px 14px 6px;
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
html body.tpl-body-site-1 .lp-ai__price { padding: 0 14px 14px; margin-top: auto; font-size: 15px; font-weight: 700; color: #A9522C; }
@media (max-width: 900px) { html body.tpl-body-site-1 .lp-ai__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  html body.tpl-body-site-1 .lp-ai { padding: 18px 14px 20px; border-radius: 14px; }
  html body.tpl-body-site-1 .lp-ai__grid { grid-template-columns: 1fr; gap: 12px; }
  html body.tpl-body-site-1 .lp-ai__card { flex-direction: row; align-items: stretch; }
  html body.tpl-body-site-1 .lp-ai__media { flex: 0 0 34%; aspect-ratio: auto; }
  html body.tpl-body-site-1 .lp-ai__name { padding: 11px 13px 4px; }
  html body.tpl-body-site-1 .lp-ai__price { padding: 0 13px 11px; }
}

/* ============================================================
   Системная форма входа (модуль auth) — на странице «Мой профиль»
   она выводилась дефолтной разметкой NetCat: узкое поле, обрезающее
   адрес почты, чёрные рамки, вёрстка на <br>. Приводим к дизайну.
   ============================================================ */
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] {
  max-width: 420px;
}
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] br { display: none; }
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] .block { margin: 0 0 14px !important; }
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] label {
  display: block;
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 600;
  color: #4A4034;
}
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] .input_text { display: block; }
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] .input_text .left,
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] .input_text .right { display: none; }
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] input[type="text"],
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] input[type="email"],
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] input[type="password"] {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 15px;
  font: inherit;
  font-size: 16px;
  line-height: 1.4;
  color: #2E2A23;
  background: #FBF7F0;
  border: 1px solid #DFD4C2;
  border-radius: 12px;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] input[type="text"]:focus,
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] input[type="email"]:focus,
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] input[type="password"]:focus {
  background: #fff;
  border-color: #155E54;
  box-shadow: 0 0 0 3px rgba(21, 94, 84, .1);
}
/* «Сохранить логин и пароль» — чекбокс в строку с подписью */
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] label:has(input[type="checkbox"]) {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 2px 0 16px;
  font-weight: 400;
  font-size: 14.5px;
  color: #6B6154;
  cursor: pointer;
}
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: #155E54;
  cursor: pointer;
}
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] .login_submit {
  padding: 12px 30px;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  background: #155E54;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  transition: background .15s ease;
}
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] .login_submit:hover { background: #0F4A42; }
html body.tpl-body-site-1 form[action="/netcat/modules/auth/"] #rem_pwd {
  display: inline-block;
  margin-left: 18px;
  font-size: 14.5px;
  color: #A9522C;
  text-decoration: underline;
}

/* Боковое меню «Войти / Регистрация» в кабинете — было двумя голыми
   ссылками у левого края, теперь аккуратный список-карточка. */
html body.tpl-body-site-1 .tpl-block-142 ul {
  list-style: none;
  margin: 0;
  padding: 14px;
  background: #FBF7F0;
  border: 1px solid #E5DCC9;
  border-radius: 14px;
}
html body.tpl-body-site-1 .tpl-block-142 .menu-item-link {
  display: block;
  padding: 9px 11px;
  border-radius: 9px;
  text-decoration: none;
  color: #155E54;
  font-weight: 600;
  font-size: 15px;
}
html body.tpl-body-site-1 .tpl-block-142 .menu-item-link:hover { background: #E2EFE9; color: #0F4A42; }

/* Гость на «Моём профиле» видел форму входа без единого слова объяснения.
   Подпись даём стилем: разметка формы принадлежит модулю авторизации,
   трогать его шаблон ради одной строки не стоит. */
html body.tpl-body-site-1 .tpl-container-143 form[action="/netcat/modules/auth/"]::before {
  content: "Войдите, чтобы посмотреть и изменить данные профиля. Аккаунт создаётся при первой покупке или через регистрацию.";
  display: block;
  max-width: 420px;
  margin: 0 0 20px;
  font-size: 15.5px;
  line-height: 1.55;
  color: #6B6154;
}

/* ============================================================
   ЛИЧНЫЙ КАБИНЕТ. Карточки «Моих покупок» не имели стилей вовсе
   (был только мобильный оверрайд), поэтому на десктопе список
   выглядел голыми подчёркнутыми ссылками. Оформляем целиком.
   ============================================================ */
html body.tpl-body-site-1 .lp-purchases-scope .prod-grid.lp-purchases {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
html body.tpl-body-site-1 .lp-purchases-scope .prod-card {
  background: #fff;
  border: 1px solid #E5DCC9;
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease;
}
html body.tpl-body-site-1 .lp-purchases-scope .prod-card:hover {
  border-color: #CFC1A8;
  box-shadow: 0 4px 16px rgba(46, 42, 35, .06);
}
html body.tpl-body-site-1 .lp-purchases-scope .prod-body { padding: 20px clamp(16px, 2.4vw, 24px) 22px; }
html body.tpl-body-site-1 .lp-purchases-scope .prod-card h3 {
  margin: 0 0 8px;
  font-family: Lora, Georgia, serif;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.3;
}
html body.tpl-body-site-1 .lp-purchases-scope .prod-card h3 a {
  color: #2E2A23;
  text-decoration: none;          /* подчёркнутые ссылки читались как список 90-х */
}
html body.tpl-body-site-1 .lp-purchases-scope .prod-card h3 a:hover { color: #155E54; }
html body.tpl-body-site-1 .lp-purchases-scope .prod-cat {
  display: inline-block;
  margin: 0 0 6px;
  padding: 4px 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: #0F4A42;
  background: #E7F2EE;
  border-radius: 999px;
}
html body.tpl-body-site-1 .lp-purchases-scope .lp-meta {
  margin: 0;
  font-size: 14px;
  color: #7A6A58;
}
html body.tpl-body-site-1 .lp-purchases-scope .lp-purchase-soon {
  width: 100%;
  margin: 4px 0 0;
  padding: 12px 15px;
  font-size: 14.5px;
  line-height: 1.55;
  color: #7A3418;
  background: #FBF1EA;
  border: 1px solid #E4C4AE;
  border-radius: 11px;
}
html body.tpl-body-site-1 .lp-purchases-scope .lp-purchase-soon a { color: #A9522C; }

/* Боковое меню кабинета: пункты в две строки и без активного состояния. */
html body.tpl-body-site-1 .lp-cab-menu .menu-item-link,
html body.tpl-body-site-1 .tpl-block-142 .menu-item-link { line-height: 1.35; }

/* Кнопки кабинета к одному виду: главная — зелёная. Терракотовая
   «Восстановить пароль» выбивалась из ряда. */
html body.tpl-body-site-1 form[action*="password_recovery"] input[type="submit"],
html body.tpl-body-site-1 form[action*="password_change"] input[type="submit"] {
  padding: 12px 26px;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  color: #fff !important;
  background: #155E54 !important;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
}
html body.tpl-body-site-1 form[action*="password_recovery"] input[type="submit"]:hover,
html body.tpl-body-site-1 form[action*="password_change"] input[type="submit"]:hover { background: #0F4A42 !important; }

/* Поля восстановления/смены пароля — как везде. */
html body.tpl-body-site-1 form[action*="password_recovery"] input[type="text"],
html body.tpl-body-site-1 form[action*="password_recovery"] input[type="password"],
html body.tpl-body-site-1 form[action*="password_change"] input[type="text"],
html body.tpl-body-site-1 form[action*="password_change"] input[type="password"] {
  display: block;
  width: 100%;
  max-width: 420px;
  box-sizing: border-box;
  padding: 12px 15px;
  font: inherit;
  font-size: 16px;
  color: #2E2A23;
  background: #FBF7F0;
  border: 1px solid #DFD4C2;
  border-radius: 12px;
  outline: none;
}
html body.tpl-body-site-1 form[action*="password_recovery"] input:focus,
html body.tpl-body-site-1 form[action*="password_change"] input:focus {
  background: #fff;
  border-color: #155E54;
  box-shadow: 0 0 0 3px rgba(21, 94, 84, .1);
}

/* Подвал тёмный, а глобальное правило темы красит весь текст в #2E2A23 —
   строка часов работы получала контраст 1.11 и была не видна. Возвращаем
   светлый цвет всему, что не переопределено явно. */
html body.tpl-body-site-1 .lp-ft p,
html body.tpl-body-site-1 .lp-ft li,
html body.tpl-body-site-1 .lp-ft div,
html body.tpl-body-site-1 .lp-ft span,
html body.tpl-body-site-1 footer p,
html body.tpl-body-site-1 footer li,
html body.tpl-body-site-1 footer span { color: #CFC6B8 !important; }
html body.tpl-body-site-1 .lp-ft a,
html body.tpl-body-site-1 footer a { color: #E7E1D6 !important; }
html body.tpl-body-site-1 .lp-ft a:hover,
html body.tpl-body-site-1 footer a:hover { color: #fff !important; }
html body.tpl-body-site-1 .lp-ft__max {
  color: #E7E1D6 !important;
  border-color: rgba(231, 225, 214, .5) !important;
}

/* ============================================================
   «Мои покупки» — личная библиотека материалов.
   Прежде: список подчёркнутых ссылок, где самым громким пятном
   была оранжевая плашка «материалы готовятся». Теперь материал —
   главный, состояние доступа — тихая подпись и цветная кромка.
   ============================================================ */
html body.tpl-body-site-1 .lp-lib__count {
  margin: 0 0 16px !important;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #9A8F80 !important;
}
html body.tpl-body-site-1 .lp-lib { display: flex; flex-direction: column; gap: 14px; }

html body.tpl-body-site-1 .lp-lib__item {
  position: relative;
  display: flex;
  gap: 18px;
  padding: 18px;
  background: #fff;
  border: 1px solid #E8E0D2;
  border-radius: 18px;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
html body.tpl-body-site-1 .lp-lib__item:hover {
  border-color: #D6C9B2;
  box-shadow: 0 8px 24px rgba(46, 42, 35, .07);
  transform: translateY(-1px);
}
/* кромка слева — состояние доступа, вместо тревожного блока в тексте */
html body.tpl-body-site-1 .lp-lib__item::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
}
html body.tpl-body-site-1 .lp-lib__item.is-ready::before   { background: #155E54; }
html body.tpl-body-site-1 .lp-lib__item.is-pending::before { background: #E4C4AE; }

html body.tpl-body-site-1 .lp-lib__cover {
  flex: 0 0 148px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(140deg, #F3EDE1 0%, #E7DDC9 100%);
  text-decoration: none;
}
/* contain, а не cover: обложки в каталоге разного формата - квадратные,
   широкие 2.4:1 и вертикальные. При cover резало у всех. Замер 26.10.2026. */
html body.tpl-body-site-1 .lp-lib__cover img { width: 100%; height: 100%; object-fit: contain; display: block; padding: 6px; box-sizing: border-box; }
html body.tpl-body-site-1 .lp-lib__letter {
  font-family: Lora, Georgia, serif;
  font-size: 34px;
  font-weight: 700;
  color: #B9A98C;
}

html body.tpl-body-site-1 .lp-lib__body { flex: 1 1 auto; min-width: 0; }
html body.tpl-body-site-1 .lp-lib__title {
  margin: 0 0 9px;
  font-family: Lora, Georgia, serif;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.32;
}
html body.tpl-body-site-1 .lp-lib__title a { color: #2E2A23; text-decoration: none; }
html body.tpl-body-site-1 .lp-lib__title a:hover { color: #155E54; }

html body.tpl-body-site-1 .lp-lib__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
html body.tpl-body-site-1 .lp-lib__chip {
  padding: 3px 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: #0F4A42;
  background: #E7F2EE;
  border-radius: 999px;
}
html body.tpl-body-site-1 .lp-lib__chip--doc { color: #7A3418; background: #F8ECE3; }
html body.tpl-body-site-1 .lp-lib__access { font-size: 13.5px; color: #8A8073 !important; }

html body.tpl-body-site-1 .lp-lib__pending {
  margin: 12px 0 0 !important;
  font-size: 13.5px;
  line-height: 1.55;
  color: #8A8073 !important;      /* тихая подпись, а не тревожная плашка */
}
html body.tpl-body-site-1 .lp-lib__pending a { color: #A9522C; }

/* кнопки чуть компактнее — в библиотеке их бывает много */
html body.tpl-body-site-1 .lp-purchases-scope .lp-lib__item .lp-btn { padding: 10px 18px; font-size: 14.5px; }
html body.tpl-body-site-1 .lp-purchases-scope .lp-lib__item .lp-actions { margin-top: 13px; gap: 8px; }

@media (max-width: 760px) {
  html body.tpl-body-site-1 .lp-lib__cover { flex-basis: 96px; height: 74px; }
  html body.tpl-body-site-1 .lp-lib__title { font-size: 17px; }
}
@media (max-width: 520px) {
  html body.tpl-body-site-1 .lp-lib__item { flex-direction: column; gap: 13px; padding: 15px; }
  html body.tpl-body-site-1 .lp-lib__cover { flex-basis: auto; width: 100%; height: 132px; }
  html body.tpl-body-site-1 .lp-purchases-scope .lp-lib__item .lp-btn { width: 100%; text-align: center; }
}

/* Боковое меню кабинета: активный пункт видно, «Выход» отделён. */
html body.tpl-body-site-1 .tpl-block-142 li:last-child .menu-item-link,
html body.tpl-body-site-1 .lp-cab-menu li:last-child .menu-item-link {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid #E5DCC9;
  color: #8A8073;
  font-weight: 600;
}

/* ============================================================
   МОИ ЗАКАЗЫ. Было: «оплачен» и «Оформлен» одинаковыми зелёными
   плашками (хотя второй не оплачен), пропасть между составом и
   ценой, системный список «Отображать».
   ============================================================ */
html body.tpl-body-site-1 .lp-orders-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0 0 16px;
}
html body.tpl-body-site-1 .lp-orders-count {
  margin: 0 !important;
  font-size: 12.5px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #9A8F80 !important;
}
html body.tpl-body-site-1 .lp-seg {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: #fff;
  border: 1px solid #E8E0D2;
  border-radius: 12px;
}
html body.tpl-body-site-1 .lp-seg__btn {
  padding: 7px 14px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 600;
  color: #7A6A58;
  text-decoration: none;
  white-space: nowrap;
}
html body.tpl-body-site-1 .lp-seg__btn:hover { background: #F2ECE0; color: #2E2A23; }
html body.tpl-body-site-1 .lp-seg__btn.is-on { background: #155E54; color: #fff; }

html body.tpl-body-site-1 .lp-order {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 18px;
  align-items: center;
  margin: 0 0 10px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid #E8E0D2;
  border-radius: 14px;
  text-decoration: none;
  color: #2E2A23;
  transition: border-color .15s ease, box-shadow .15s ease;
}
html body.tpl-body-site-1 .lp-order:hover {
  border-color: #9FC3B9;
  box-shadow: 0 4px 14px rgba(46, 42, 35, .06);
}
html body.tpl-body-site-1 .lp-order__main { min-width: 0; }
html body.tpl-body-site-1 .lp-order__id { display: flex; align-items: baseline; gap: 10px; margin-bottom: 3px; }
html body.tpl-body-site-1 .lp-order__num { font-weight: 800; font-size: 15px; font-variant-numeric: tabular-nums; }
html body.tpl-body-site-1 .lp-order__date { font-size: 13px; color: #9A8F80; font-variant-numeric: tabular-nums; }
html body.tpl-body-site-1 .lp-order__goods {
  display: block;
  font-size: 14.5px;
  line-height: 1.45;
  color: #7A6A58;
}
html body.tpl-body-site-1 .lp-order__status {
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 700;
  white-space: nowrap;
}
html body.tpl-body-site-1 .lp-order.is-paid .lp-order__status { background: #E7F2EE; color: #155E54; }
html body.tpl-body-site-1 .lp-order.is-wait .lp-order__status { background: #F7EEDA; color: #9A6B15; }
html body.tpl-body-site-1 .lp-order.is-off  .lp-order__status { background: #F2ECE0; color: #9A8F80; }
html body.tpl-body-site-1 .lp-order__sum {
  font-size: 17px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-align: right;
}
@media (max-width: 720px) {
  html body.tpl-body-site-1 .lp-order { grid-template-columns: minmax(0,1fr) auto; row-gap: 10px; }
  html body.tpl-body-site-1 .lp-order__sum { grid-column: 2; }
  html body.tpl-body-site-1 .lp-seg { width: 100%; overflow-x: auto; }
}

/* ============================================================
   МЕНЮ КАБИНЕТА: иконки, подсветка текущего раздела, «Выход» отдельно.
   Раньше это был столбик одинаковых ссылок без единого признака того,
   в каком разделе человек находится.
   ============================================================ */
html body.tpl-body-site-1 ul.lp-cab { padding: 8px !important; }
html body.tpl-body-site-1 ul.lp-cab .menu-item-link {
  display: flex !important;
  align-items: center;
  gap: 11px;
  padding: 11px 12px !important;
  border-radius: 11px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
  color: #2E2A23 !important;
  text-decoration: none;
}
html body.tpl-body-site-1 ul.lp-cab .menu-item-link:hover { background: #F2ECE0; }
html body.tpl-body-site-1 ul.lp-cab .menu-item-link.is-active {
  background: #E7F2EE;
  color: #155E54 !important;
  box-shadow: inset 3px 0 0 #155E54;
}
html body.tpl-body-site-1 ul.lp-cab .menu-item-link:focus-visible { outline: 2px solid #155E54; outline-offset: 2px; }
html body.tpl-body-site-1 ul.lp-cab svg {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.7;
  opacity: .85;
}
html body.tpl-body-site-1 ul.lp-cab .menu-item-text { display: inline; }
html body.tpl-body-site-1 ul.lp-cab .menu-item-link.is-exit {
  margin-top: 6px;
  padding-top: 15px !important;
  border-top: 1px solid #E5DCC9;
  border-radius: 0 0 11px 11px;
  color: #8A8073 !important;
  font-weight: 500;
}

/* ============================================================
   КАРТОЧКА ЛИЧНЫХ ДАННЫХ: заголовок и пояснение; кнопка по содержимому,
   а не во всю ширину — растянутая читалась тяжело.
   ============================================================ */
html body.tpl-body-site-1 .lp-form-head { margin: 0 0 20px; }
html body.tpl-body-site-1 .lp-form-head__title {
  margin: 0;
  font-family: Lora, Georgia, serif;
  font-size: 18px;
  font-weight: 700;
  color: #2E2A23;
}
html body.tpl-body-site-1 .lp-form-head__hint {
  margin: 4px 0 0 !important;
  font-size: 13.5px;
  line-height: 1.5;
  color: #9A8F80 !important;
}
html body.tpl-body-site-1 #adminForm input[type="submit"],
html body.tpl-body-site-1 #adminForm button[type="submit"] {
  width: auto !important;
  min-width: 0 !important;
  padding: 12px 28px !important;
  font-size: 15px;
}

/* Разделитель перед «Выходом» — отдельной строкой списка. Рамка на самой
   ссылке выглядела обрубленной кнопкой. */
html body.tpl-body-site-1 ul.lp-cab .lp-cab__sep {
  height: 1px;
  margin: 8px 12px;
  padding: 0 !important;
  background: #E5DCC9;
  list-style: none;
}
html body.tpl-body-site-1 ul.lp-cab .menu-item-link.is-exit {
  margin-top: 0;
  padding-top: 11px !important;
  border-top: 0;
  border-radius: 11px;
  color: #8A8073 !important;
  font-weight: 500;
}
html body.tpl-body-site-1 ul.lp-cab .menu-item-link.is-exit:hover { background: #F2ECE0; color: #2E2A23 !important; }

/* Карточка бокового меню кабинета: раньше оформление висело на номере
   инфоблока (.tpl-block-142), а у вошедшего пользователя меню приходит
   ДРУГИМ блоком — стили молча не доезжали. Теперь на классе, который
   проставляет скрипт по содержимому меню. */
html body.tpl-body-site-1 ul.lp-cab {
  list-style: none;
  margin: 0;
  padding: 8px !important;
  background: #fff;
  border: 1px solid #E8E0D2;
  border-radius: 16px;
}
html body.tpl-body-site-1 ul.lp-cab li { margin: 0; padding: 0; list-style: none; }
html body.tpl-body-site-1 ul.lp-cab li::marker { content: none; }

/* Подсветка текущего раздела: фон перебивался темой, нужен приоритет.
   Заодно цепляемся за штатный класс NetCat — он сам помечает активный пункт. */
html body.tpl-body-site-1 ul.lp-cab .menu-item-link.is-active,
html body.tpl-body-site-1 ul.lp-cab .menu-item-link-active {
  background: #E7F2EE !important;
  color: #155E54 !important;
  box-shadow: inset 3px 0 0 #155E54;
  font-weight: 700;
}
html body.tpl-body-site-1 ul.lp-cab .menu-item-link:hover:not(.is-active):not(.menu-item-link-active) {
  background: #F2ECE0 !important;
}

/* Фон активного пункта на самой ссылке подавляется темой (не проходит даже
   inline !important), поэтому красим строку списка — NetCat помечает её
   классами menu-item-active / menu-item-current. */
html body.tpl-body-site-1 ul.lp-cab li.menu-item-active,
html body.tpl-body-site-1 ul.lp-cab li.menu-item-current,
html body.tpl-body-site-1 ul.lp-cab li:has(> .is-active) {
  background: #E7F2EE;
  border-radius: 11px;
  box-shadow: inset 3px 0 0 #155E54;
}
html body.tpl-body-site-1 ul.lp-cab li.menu-item-active .menu-item-link,
html body.tpl-body-site-1 ul.lp-cab li.menu-item-current .menu-item-link,
html body.tpl-body-site-1 ul.lp-cab li:has(> .is-active) .menu-item-link {
  color: #155E54 !important;
  font-weight: 700;
  box-shadow: none;
}
html body.tpl-body-site-1 ul.lp-cab li:not(.menu-item-active):not(.menu-item-current):hover {
  background: #F2ECE0;
  border-radius: 11px;
}

/* Текст пункта лежит во вложенном .menu-item-text — цвет задаётся там,
   поэтому покраска самой ссылки ничего не меняла: все пункты выходили
   зелёными, и текущий раздел не выделялся ничем, кроме фона. */
html body.tpl-body-site-1 ul.lp-cab li .menu-item-text {
  color: #2E2A23 !important;
  font-weight: 600;
}
html body.tpl-body-site-1 ul.lp-cab li.menu-item-active .menu-item-text,
html body.tpl-body-site-1 ul.lp-cab li.menu-item-current .menu-item-text,
html body.tpl-body-site-1 ul.lp-cab li:has(> .is-active) .menu-item-text {
  color: #155E54 !important;
  font-weight: 700;
}
html body.tpl-body-site-1 ul.lp-cab li .is-exit .menu-item-text {
  color: #8A8073 !important;
  font-weight: 500;
}
html body.tpl-body-site-1 ul.lp-cab li .menu-item-link { color: #2E2A23 !important; }
html body.tpl-body-site-1 ul.lp-cab li .is-exit { color: #8A8073 !important; }

/* Кнопка «Личный кабинет / Войти» вверху мобильного меню: белый текст на
   светлой терракоте давал контраст 4.01 при норме 4.5. Берём тёмный оттенок
   той же палитры — он уже используется в кнопках карточки товара. */
html body.tpl-body-site-1 .lp-hd__mobile-login {
  background: #A9522C !important;
  color: #fff !important;
}
html body.tpl-body-site-1 .lp-hd__mobile-login:hover { background: #8F4423 !important; }

/* Реквизиты в подвале (просьба Андрея 21.09.2026): лицензия, ИП, ИНН, ОГРНИП.
   Отдельной строкой под копирайтом, мельче основного текста — юридический блок. */
html body.tpl-body-site-1 .lp-ft__reqs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  width: 100%;
  order: 3;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, .10);
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .62);
}
@media (max-width: 640px) {
  html body.tpl-body-site-1 .lp-ft__reqs { gap: 2px 12px; font-size: 12px; }
}

/* lp-ai__media--square: карточки «Подбор по смыслу» — квадрат вместо 4:3 (21–24.09.2026).
   Обложки пособий квадратные, cover срезал им верх и низ; на узком экране блок
   схлопывался в нулевую ширину и вёрстка ехала. */
html body.tpl-body-site-1 .lp-ai__media {
  aspect-ratio: 1 / 1;
  background: #F7F3EA;
}
html body.tpl-body-site-1 .lp-ai__media img {
  object-fit: contain;
  padding: 4px;
}
@media (max-width: 560px) {
  html body.tpl-body-site-1 .lp-ai__media {
    flex: 0 0 108px;
    width: 108px;
    aspect-ratio: 1 / 1;
    align-self: center;
    margin: 10px 0 10px 10px;
    border-radius: 10px;
  }
  html body.tpl-body-site-1 .lp-ai__card { align-items: flex-start; }
  html body.tpl-body-site-1 .lp-ai__name { padding: 12px 13px 4px; }
}

/* lp-ai__name--wrap: перенос названий по словам, цена одной строкой (28.09.2026) */
html body.tpl-body-site-1 .lp-ai__name {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}
html body.tpl-body-site-1 .lp-ai__price { white-space: nowrap; }
@media (max-width: 560px) {
  html body.tpl-body-site-1 .lp-ai__media {
    flex: 0 0 92px;
    width: 92px;
    margin: 10px 0 10px 10px;
  }
  html body.tpl-body-site-1 .lp-ai__name { font-size: 14px; -webkit-line-clamp: 4; }
}

/* lp-ai__media--cap: ограничение размера обложки в подборе по смыслу (29.09.2026).
   Квадрат сохраняем, но не крупнее 300 px и по центру карточки. */
html body.tpl-body-site-1 .lp-ai__media {
  max-width: 300px;
  max-height: 300px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  border-radius: 12px 12px 0 0;
}
@media (max-width: 560px) {
  html body.tpl-body-site-1 .lp-ai__media {
    max-width: 92px;
    margin: 10px 0 10px 10px;
    border-radius: 10px;
  }
}

/* lp-ai__media--frame: убираем «контур» вокруг обложки в подборе по смыслу (30.09.2026).
   Подложка была бежевой и шире картинки — после уменьшения обложки поля стали заметны. */
html body.tpl-body-site-1 .lp-ai__media {
  background: #fff;
  max-width: 100%;
  max-height: none;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  box-sizing: border-box;
}
html body.tpl-body-site-1 .lp-ai__media img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  padding: 0;
  border-radius: 8px;
}
/* товар без обложки: мягкий фон вместо пустого прямоугольника */
html body.tpl-body-site-1 .lp-ai__media:not(:has(img)) {
  background: linear-gradient(135deg, #F3EDE1 0%, #E9E0CF 100%);
}
@media (max-width: 560px) {
  html body.tpl-body-site-1 .lp-ai__media {
    max-width: 92px;
    padding: 6px;
    margin: 10px 0 10px 10px;
  }
}

/* lp-files--fold: на странице курса список файлов сворачивается, когда их больше четырёх
   (01.10.2026). Вид тот же, что в «Моих покупках»: стрелка и число файлов в подписи. */
html body.tpl-body-site-1 details.lp-files--fold > summary.lp-files__title {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 8px;
}
html body.tpl-body-site-1 details.lp-files--fold > summary.lp-files__title::-webkit-details-marker { display: none; }
html body.tpl-body-site-1 details.lp-files--fold > summary.lp-files__title::before {
  content: '\25B8';
  font-size: 13px;
  color: #155E54;
  transition: transform .15s ease;
}
html body.tpl-body-site-1 details.lp-files--fold[open] > summary.lp-files__title::before { transform: rotate(90deg); }
html body.tpl-body-site-1 details.lp-files--fold > summary.lp-files__title:hover { color: #155E54; }

/* lp-ai__grid--fit: карточки «Подбор по смыслу» растягивались на всю ширину, когда
   находилось меньше трёх материалов, и обложка раздувалась до 430 px (05.10.2026).
   Колонка фиксированной ширины — как в каталоге; две находки выглядят как шесть. */
html body.tpl-body-site-1 .lp-ai__grid {
  grid-template-columns: repeat(auto-fill, minmax(240px, 295px));
  justify-content: start;
}
html body.tpl-body-site-1 .lp-ai__media { max-height: 295px; }
@media (max-width: 900px) {
  html body.tpl-body-site-1 .lp-ai__grid {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  }
}
@media (max-width: 560px) {
  html body.tpl-body-site-1 .lp-ai__grid { grid-template-columns: 1fr; }
  html body.tpl-body-site-1 .lp-ai__media { max-height: none; }
}

/* lp-search-grid-v2 (16.10.2026): сетка выдачи поиска без зависимости от скрипта темы.
   Тема включает grid только при data-nc-b1/b2, которые ставит ResizeObserver уже
   после загрузки. Если он не отработал ИЛИ записал пустое значение, не совпадает
   ни одно правило темы — и карточки растягиваются во всю ширину. Клиент видел это
   на ноутбуке в разных браузерах. Здесь сетка задана обычными медиазапросами:
   файл подключается последним, поэтому результат одинаков во всех трёх состояниях. */
html body.tpl-body-site-1 .tpl-component-netcat-module-search-result-by-type .tpl-block-list-objects[data-object-count] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 295px));
  justify-content: start;
  gap: 20px;
  align-items: stretch;
}
@media (max-width: 1023px) {
  html body.tpl-body-site-1 .tpl-component-netcat-module-search-result-by-type .tpl-block-list-objects[data-object-count] {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  }
}
@media (max-width: 560px) {
  html body.tpl-body-site-1 .tpl-component-netcat-module-search-result-by-type .tpl-block-list-objects[data-object-count] {
    grid-template-columns: 1fr;
  }
}
/* разделы и прочие результаты — это строки списка, а не плитки: их не трогаем */
html body.tpl-body-site-1 .tpl-template-subdivisions .tpl-block-list-objects[data-object-count],
html body.tpl-body-site-1 .tpl-template-others .tpl-block-list-objects[data-object-count] {
  display: block;
}
