/* ==========================================================================
   ЛогоПрофистор — страницы поиска, избранного и сравнения.

   Отдельный файл, а не дописывание в lp-final.css: над каталогом и общей
   темой работают параллельно, и правки в общий файл затирались бы.
   Подключается из FormPrefix компонентов поиска, избранного и сравнения
   (один раз за страницу, через define('LP_SEARCH_CSS')).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Результаты поиска: у блоков не было своих стилей, заголовки «Материалы»
   и «Статьи и новости» сливались с текстом и было непонятно, где кончается
   один блок и начинается другой (правка Андрея, п.8).
   -------------------------------------------------------------------------- */
/* именно прямой потомок: внутри блока «Материалы» в h3 лежат названия
   товаров (.item-card__title), их оформление трогать нельзя */
.tpl-component-netcat-module-search-result-by-type > h3 {
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--lp-line, #DFD4C2);
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
    color: var(--lp-ink, #2E2A23);
}

/* между блоками выдачи нужен воздух: они идут вплотную друг к другу */
.tpl-component-netcat-module-search-result-by-type.tpl-template-subdivisions,
.tpl-component-netcat-module-search-result-by-type.tpl-template-others {
    padding-top: 34px;
}

.tpl-component-netcat-module-search-result-by-type .search-item {
    padding: 14px 0;
    border-bottom: 1px dashed var(--lp-line, #DFD4C2);
}

.tpl-component-netcat-module-search-result-by-type .search-item:last-child {
    border-bottom: 0;
}

.tpl-component-netcat-module-search-result-by-type .search-item h4 {
    margin: 0 0 4px;
    font-size: 17px;
    line-height: 1.35;
    font-weight: 600;
}

.tpl-component-netcat-module-search-result-by-type .search-item h4 a {
    color: var(--lp-ink, #2E2A23);
    text-decoration: none;
}

.tpl-component-netcat-module-search-result-by-type .search-item h4 a:hover {
    color: var(--lp-terra, #A9522C);
    text-decoration: underline;
}

/* адрес страницы — служебная строка, ей не место в общем весе текста */
.tpl-component-netcat-module-search-result-by-type .search-item cite {
    display: block;
    margin-top: 6px;
    font-style: normal;
    font-size: 13px;
    color: var(--lp-muted, #6B6154);
    overflow-wrap: anywhere;
}

/* подсветку совпадений индексатор отдаёт как <strong class="matched"> */
.tpl-component-netcat-module-search-result-by-type .search-item strong.matched {
    background: #FFF3D6;
    border-radius: 3px;
    padding: 0 2px;
    font-weight: 700;
}

/* --------------------------------------------------------------------------
   2. Избранное (правка Андрея, п.7): сверху не было воздуха, а цена стояла
   в описании, отдельно от кнопок — теперь цена, «В корзину» и удаление
   выстроены в одну линию справа.
   -------------------------------------------------------------------------- */
.tpl-component-netcat-module-netshop-favorite {
    padding-top: 26px;
    padding-bottom: 10px;
}

/* в components.css у .tpl-block-list-objects стоят flex + justify-content:center;
   в гриде это не даёт колонке растянуться, поэтому колонку задаём явно */
.tpl-component-netcat-module-netshop-favorite .tpl-block-list-objects {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-content: stretch;
    align-content: start;
    gap: 14px;
    height: auto;
}

.lp-fav-card {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 14px 16px;
    background: var(--tpl-color-background-main, #FFFFFF);
    border: 1px solid var(--lp-line, #DFD4C2);
    border-radius: 16px;
    transition: box-shadow .2s ease;
}

.lp-fav-card:hover {
    box-shadow: 0 10px 26px rgba(46, 42, 35, .10);
}

.lp-fav-card__media {
    display: block;
    width: 132px;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
    overflow: hidden;
    background: var(--lp-sand, #F6F1E7);
    flex-shrink: 0;
}

.lp-fav-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* у части материалов картинки нет — вместо пустого места фирменная плашка */
.lp-fav-card__plate {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 8px;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 700;
    text-align: center;
    color: var(--lp-terra, #A9522C);
}

.lp-fav-card__title {
    display: block;
    font-size: 17px;
    line-height: 1.35;
    font-weight: 700;
    color: var(--lp-ink, #2E2A23);
    text-decoration: none;
}

.lp-fav-card__title:hover {
    color: var(--lp-terra, #A9522C);
}

.lp-fav-card__meta {
    margin-top: 6px;
    font-size: 13px;
    color: var(--lp-muted, #6B6154);
}

.lp-fav-card__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
}

.lp-fav-card__price {
    margin: 0;
    font-size: 19px;
    font-weight: 800;
    white-space: nowrap;
    color: var(--lp-ink, #2E2A23);
}

.lp-fav-card__price--free {
    color: var(--lp-teal-dark, #0F4A42);
}

.lp-fav-card__cart,
.lp-fav-card__remove {
    margin: 0;
    display: flex;
}

/* 44px — минимальная зона нажатия на телефоне;
   inline-flex, чтобы подпись стояла по центру кнопки при заданной высоте */
.lp-fav-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 12px;
    white-space: nowrap;
}

.lp-fav-card__btn[disabled] {
    opacity: .55;
    cursor: default;
}

.lp-fav-card__remove-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 44px;
    min-height: 44px;
    padding: 0 10px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--lp-muted, #6B6154);
    cursor: pointer;
    transition: color .15s ease, background .15s ease, border-color .15s ease;
}

.lp-fav-card__remove-btn:hover,
.lp-fav-card__remove-btn:focus-visible {
    color: #C0392B;
    background: #FCF4F2;
    border-color: #F0D5D0;
}

.lp-fav-card__remove-btn svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
    flex-shrink: 0;
}

/* подпись у корзины нужна только на телефоне, где иконка без слова непонятна */
.lp-fav-card__remove-text {
    display: none;
}

.lp-fav-empty {
    padding: 28px 0;
    color: var(--lp-muted, #6B6154);
}

@media (max-width: 760px) {
    .tpl-component-netcat-module-netshop-favorite {
        padding-top: 18px;
    }

    .lp-fav-card {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 12px 14px;
        padding: 12px;
    }

    .lp-fav-card__media {
        width: 96px;
    }

    .lp-fav-card__title {
        font-size: 16px;
    }

    /* на телефоне цена и кнопки уходят под описание отдельной строкой */
    .lp-fav-card__actions {
        grid-column: 1 / -1;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 10px;
        padding-top: 12px;
        border-top: 1px dashed var(--lp-line, #DFD4C2);
    }

    .lp-fav-card__cart {
        flex: 1 1 auto;
    }

    .lp-fav-card__btn {
        width: 100%;
        justify-content: center;
    }

    .lp-fav-card__remove-btn {
        padding: 0 14px;
    }

    .lp-fav-card__remove-text {
        display: inline;
        font-size: 14px;
    }
}

@media (max-width: 420px) {
    .lp-fav-card {
        grid-template-columns: 1fr;
    }

    .lp-fav-card__media {
        width: 100%;
    }
}

/* --------------------------------------------------------------------------
   3. Сравнение: тот же компонент, что и избранное, только по названию —
   разметка своя (слайдер + таблица свойств). Здесь чиним то же, на что
   жаловался Андрей: воздух сверху и зоны нажатия у иконок.
   -------------------------------------------------------------------------- */
.tpl-component-netcat-module-netshop-compare #compare-page {
    padding-top: 22px;
}

.tpl-component-netcat-module-netshop-compare .compare-heading .delete-compares-wrapper {
    align-items: center;
    min-height: 44px;
    padding: 0 6px;
    border-radius: 12px;
}

.tpl-component-netcat-module-netshop-compare .compare-heading .delete-compares-wrapper:hover {
    background: #FCF4F2;
}

.tpl-component-netcat-module-netshop-compare .delete-product-btn,
.tpl-component-netcat-module-netshop-compare .favorite-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border-radius: 12px;
}

.tpl-component-netcat-module-netshop-compare .delete-product-btn:hover,
.tpl-component-netcat-module-netshop-compare .favorite-btn:hover {
    background: var(--lp-sand, #F6F1E7);
}

.tpl-component-netcat-module-netshop-compare .product .name a {
    font-weight: 600;
    line-height: 1.35;
}

.tpl-component-netcat-module-netshop-compare .product .prices-wrapper {
    margin-bottom: 6px;
}

/* пустое сравнение — такой же отступ, как у списка, иначе текст прилипает */
.tpl-component-netcat-module-netshop-compare > .tpl-text-default {
    padding: 26px 0 10px;
    color: var(--lp-muted, #6B6154);
}
