/* =====================================================================
 * АДАПТИВНОСТЬ
 * ===================================================================== */

/* Широкие экраны: контейнер растёт ступенями — контент «дышит»,
   но не растягивается на всю ширину монитора */
@media (min-width: 1600px) {
    :root {
        --ho-container: 1440px;
        --ho-gutter: 32px;
    }
}

@media (min-width: 1920px) {
    :root {
        --ho-container: 1560px;
    }
}

/* До 1600px: кнопка «Каталог» становится иконкой, пункты и поиск компактнее */
@media (max-width: 1599px) {
    .ho-catalog-btn { width: 44px; padding: 0; }
    .ho-catalog-btn__text { display: none; }
    .ho-nav__list > li > a { padding: 9px 10px; font-size: 14px; }
    .ho-search--bar { flex-basis: 215px; max-width: 215px; }
    .ho-trust { gap: 8px 16px; }
    .ho-trust li { font-size: 12px; }
}

/* 1440–1599: места хватает на подпись «Каталог» — ужимаем поиск и отступы
   пунктов, чтобы закупщик не угадывал значение иконки.
   Идёт после правила ≤1599px, чтобы вернуть подпись. */
@media (min-width: 1440px) and (max-width: 1599px) {
    .ho-catalog-btn { width: auto; padding: 0 14px; }
    .ho-catalog-btn__text { display: inline; }
    .ho-nav__list > li > a { padding: 9px 8px; }
    .ho-search--bar { flex-basis: 190px; max-width: 190px; }
    .ho-header__price { padding: 10px 16px; }
}

/* До 1400px: третий маркер доверия уступает место контактам и поиску */
@media (max-width: 1399px) {
    .ho-trust li:nth-child(3) { display: none; }
    .ho-search--bar { flex-basis: 200px; max-width: 200px; }
}

/* До 1280px: меню уходит в бургер — в полосе остаются инструменты
   (поиск, заявка, кнопка цен), а разделы открываются в мобильной панели */
@media (max-width: 1279px) {
    .ho-burger { display: inline-flex; }
    .ho-nav { display: none; }
    .ho-search--bar { flex-basis: 190px; max-width: 190px; }
    .ho-header__catalog { display: none; }
}

/* Планшеты: полоса шапки становится ярко-синей (#4514FF), как в макете.
   Маркеры доверия уходят — строка отдаётся контактам и прайсу */
@media (max-width: 1200px) {
    .ho-mm__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ho-footer__grid { grid-template-columns: 1fr 1fr; gap: 28px; }
    ul.products.ho-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    .ho-header__bar { background: var(--ho-bar-bg-alt); }
    .ho-utility { background: linear-gradient(180deg, #5a2bff 0%, #4a1bea 100%); }

    .ho-catalog-panel__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .ho-trust { display: none; }
}

@media (max-width: 1024px) {
    :root { --ho-gutter: 16px; }

    .ho-header__bar { padding: 6px 0; }
    .ho-header__inner { min-height: 58px; gap: 8px; }
    .ho-header__logo { max-width: 180px; padding-left: 0; }
    .ho-utility__mail { display: none; }

    .ho-hero__inner,
    .ho-cta__inner,
    .ho-about,
    .ho-lead-section { grid-template-columns: 1fr; gap: 28px; }

    .ho-shop { grid-template-columns: 1fr; }
    .ho-shop__aside { display: none; }
    .ho-shop__aside.is-open { display: block; }
    .ho-shop__filters-toggle { display: inline-flex; }

    .single-product div.product { grid-template-columns: 1fr; gap: 28px; }

    .ho-grid--3,
    .ho-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Мобильные: бургер + логотип + заявка в полосе, поиск во всю ширину,
   главные кнопки — в липкой полосе внизу экрана */
@media (max-width: 782px) {
    .ho-header__bar { padding: 10px 0; }
    .ho-header__inner { flex-wrap: wrap; justify-content: flex-start; gap: 8px; }
    .ho-header__logo { flex: 1 1 auto; max-width: none; padding: 0; }
    .ho-header__logo .custom-logo { max-height: 40px; }
    .ho-logo__text { display: none; }
    .ho-burger { order: 0; }

    .ho-header__cart { margin-left: auto; }
    .ho-header__actions { display: none; }

    .ho-search--bar {
        order: 5;
        flex: 1 1 100%;
        max-width: none;
        margin: 2px 0 0;
    }

    .ho-search--bar input[type="search"] { height: 42px; font-size: 14px; }

    .ho-utility { padding: 8px 0; }
    .ho-trust,
    .ho-utility__price,
    .ho-utility__link,
    .ho-utility__mail { display: none; }
    .ho-utility__inner { justify-content: center; }
    .ho-utility__contacts { margin-left: 0; width: 100%; justify-content: center; }

    /* Липкая полоса действий: «Запросить цены» и «Позвонить» всегда под рукой */
    .ho-mobile-cta {
        display: flex;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 60;
        gap: 10px;
        padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
        background: rgba(255, 255, 255, .97);
        border-top: 1px solid var(--ho-border-light);
        box-shadow: 0 -8px 24px rgba(8, 45, 100, .12);
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
    }

    .ho-mobile-cta__lead {
        flex: 1 1 auto;
        min-height: 46px;
        border-radius: 10px;
        background-color: var(--ho-accent-strong);
        background-image: linear-gradient(180deg, rgba(255, 255, 255, .14), rgba(0, 0, 0, .12));
        font-size: 14px;
        box-shadow: 0 6px 16px rgba(238, 89, 31, .28);
    }

    .ho-mobile-cta__call {
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        min-height: 46px;
        padding: 0 16px;
        border: 1px solid var(--ho-blue);
        border-radius: 10px;
        color: var(--ho-blue);
        font-size: 14px;
        font-weight: 700;
        text-decoration: none;
    }

    .ho-mobile-cta__call:hover { background: rgba(1, 63, 141, .07); color: var(--ho-blue); }

    /* Полоса не перекрывает контент и плашку cookie */
    body { padding-bottom: 70px; }

    .ho-hero { padding: 28px 0; }
    .ho-hero__aside { padding: 20px; }
    .ho-hero__actions .ho-btn { width: 100%; }

    .ho-cat-card { grid-template-columns: 64px 1fr; padding: 14px; }
    .ho-cat-card__media { width: 64px; height: 64px; }
    .ho-cat-card > svg { display: none; }

    .ho-grid--2,
    .ho-grid--3,
    .ho-grid--4,
    ul.products.ho-products { grid-template-columns: 1fr; }

    .ho-about__list { grid-template-columns: 1fr; }
    .ho-lead-form__row { grid-template-columns: 1fr; }
    .ho-cta__form,
    .ho-about__card,
    .ho-lead-section__form { padding: 20px; }

    .ho-footer__grid { grid-template-columns: 1fr; }
    .ho-footer__extra { margin-left: 0; }
    .ho-footer__bottom-inner { flex-direction: column; align-items: flex-start; }

    .ho-cookie {
        left: 12px;
        right: 12px;
        bottom: 78px;
        width: auto;
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
        padding: 18px;
    }

    .ho-modal__dialog { padding: 24px 20px; }

    .ho-single__nav { flex-direction: column; gap: 10px; }
    .ho-single__nav-item--next { margin-left: 0; text-align: left; }

    .ho-cats-grid { gap: 12px; }
    .ho-post-card__image { height: 180px; }
}

/* Печать карточки товара */
/* Таблица каталога: адаптивность фильтров и панели */
@media (max-width: 1200px) {
    .ho-table__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .ho-table__filters { grid-template-columns: 1fr; padding: 14px; }
    .ho-table__actions { grid-column: auto; }
    .ho-table__foot { flex-direction: column; align-items: stretch; }
    .ho-table__status { text-align: center; }
    .ho-suggest { max-height: 320px; }
}

@media print {
    .ho-hero__aside,
    .ho-mobile-cta,
    .ho-cookie { display: none !important; }
}

/* Уважаем системную настройку «уменьшить движение» */
@media (prefers-reduced-motion: reduce) {
    .ho-header *,
    .ho-mobile,
    .ho-mobile *,
    .ho-nav__list .sub-menu {
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
    }
}
