/*
 * celeris-overrides.css
 * Небольшие Joomla/JoomShopping-специфичные правки поверх 1:1-копии темы.
 * (Оригинальный custom-styles.css/theme.css держим нетронутыми.)
 */

/* Скрыть GPL-кредит free-версии JoomShopping ("Copyright MAXXmarketing GmbH"),
   которого нет в оригинале. По согласованию с заказчиком. */
#mxcpr {
    display: none !important;
}

/* Слик-лоадер: theme.css ссылается на мёртвый /wp-content/.../ajax-loader.gif (404).
   Переопределяем путь на локальную копию рядом с этим файлом. */
.slick-loading .slick-list {
    background-image: url(ajax-loader.gif);
}

/* Карусель «Вдохновитесь» на главной — фикс растянутых фото.
   1) Ссылка-ячейка должна быть блоком, чтобы её фикс-высота (height:240px)
      применилась (в оригинале блочность даёт CSS, которого нет в нашей копии
      custom-styles.css; без него <a> остаётся inline → height игнорируется).
   2) figure имеет padding-bottom:3.7% — проценты верт. padding считаются от
      ШИРИНЫ контейнера, а slick-track с нашими 167 слайдами ~47000px → padding
      раздувается до ~1748px, фото вытягивается (object-fit по умолчанию = fill).
      Высоту ячейки и так задаёт <a> (240px), поэтому обнуляем padding-bottom.
   Оба правила обязаны действовать ДО init slick. */
.home-gallery-template .my-gallery figure a {
    display: block;
}
.home-gallery-template .my-gallery figure {
    padding-bottom: 0;
}

/* ФИКС: страница не прокручивается на мобильных (≤425px).
   custom-styles.css содержит `@media (max-width:425px){ .template-index{ overflow-y:hidden } }`
   (.template-index = класс <body>). Поскольку <html> имеет overflow:visible, браузер
   по правилу propagation переносит overflow тела на ВЬЮПОРТ → весь экран становится
   неприкручиваемым по вертикали (наследие исходной Shopify→WP темы; на проде та же тема).
   Возвращаем вертикальную прокрутку. overflow-x:hidden на body сохраняется (антигоризонт-скролл),
   поэтому overflow-y:visible эффективно даёт auto. Не трогаем 1:1-копию custom-styles.css. */
@media screen and (max-width: 425px) {
    body.template-index {
        overflow-y: visible;
    }
}

/* ПДн/ТГП (152-ФЗ): фон-иконка <select> переведена на локальную копию (ico-select.png рядом,
   19×43 стрелка). Прежние ссылки на внешний CDN (cdn.shopify.com, США) убраны из theme.css и
   custom-styles.css 2026-06-26. Это правило-страховка перебивает любые остаточные фоны. */
select,
.select {
    background-image: url(ico-select.png) !important;
}

/* Подвал, нижний ряд: слева — копирайт сайта, по центру — меню юр.документов
   (модуль mod_menu, menutype celeris-legal, позиция footer-legal; layout footer_legal),
   справа — копирайт разработчика. Разделители «·», приглушённый цвет, золотой ховер. */
.site-footer__legal-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .12);
}
.site-footer__copy {
    flex: 0 0 auto;
    font-size: 12px;
    color: rgba(255, 255, 255, .6);
    white-space: nowrap;
}
.site-footer__copy a {
    color: inherit;
    text-decoration: none;
}
.site-footer__copy a:hover {
    color: #947647;
}
.site-footer__legal-list {
    flex: 1 1 0;
    text-align: center;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 12px;
    line-height: 1.9;
}
.site-footer__legal-list li {
    display: inline;
}
.site-footer__legal-list a {
    display: inline-block;
    margin: 0 12px;
    color: rgba(255, 255, 255, .6);
    text-decoration: none;
}
.site-footer__legal-list li:not(:last-child)::after {
    content: "·";
    color: rgba(255, 255, 255, .3);
}
.site-footer__legal-list a:hover {
    color: #947647;
}

/* Подвал — корректный «липкий» футер на flexbox.
   Исходная тема (custom-styles.css) делала липкий футер так:
     body{position:relative; min-height:100vh; padding-bottom:102px}
     #shopify-section-footer{position:absolute; bottom:0; width:100%}
   Абсолютный футер ломал прокрутку на мобильном, поэтому ранее мы вернули его в поток
   (position:static). Но парный `padding-bottom:102px` на body остался — он резервировал
   место под АБСОЛЮТНЫЙ футер, а теперь футер в потоке → эти 102px превращаются в ПУСТОТУ
   ПОД футером на длинных страницах (контент выше экрана).
   Решение: body — flex-колонка, #PageContainer растягивается (flex:1) и прижимает футер
   к низу. Без зазора и при длинном контенте (футер сразу после контента), и при коротком
   (контент дотягивается до низа экрана). Резерв padding-bottom снимаем. В потоке только
   header/PageContainer/footer; skip-link (absolute) и #SearchDrawer (fixed) во flex не
   участвуют. 1:1-копию custom-styles.css не трогаем. */
body {
    display: flex;
    flex-direction: column;
    padding-bottom: 0 !important;
}
#PageContainer {
    flex: 1 0 auto;
}
#shopify-section-footer {
    position: static !important;
    flex-shrink: 0;
}
@media screen and (max-width: 749px) {
    #PageContainer {
        padding-bottom: 0 !important;
    }
}

/* Подвал: иконки соцсетей в один ряд (по умолчанию <li> были блочными → в столбик). */
.site-footer__social-icons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    padding: 0;
    margin: 0;
    list-style: none;
}
.site-footer__social-icons > li {
    display: inline-flex;
    margin: 0;
}

/* Мобильный подвал (≤425px): верхние колонки (соцсети/оплата) — по центру;
   нижний ряд (© сайта / юр.ссылки / разработчик) — в столбик по центру. */
@media screen and (max-width: 425px) {
    .social-icons-small,
    .site-footer-small {
        width: 100%;
        float: none;
        text-align: center;
    }
    .site-footer__social-icons,
    .site-footer .payment-icons {
        justify-content: center;
    }
    .site-footer__legal-row {
        justify-content: center;
        text-align: center;
        gap: 8px;
    }
    .site-footer__copy,
    .site-footer__legal-list {
        flex: 1 0 100%;
        white-space: normal;
    }
    /* Порядок в столбик: © сайта → ссылки → разработчик. */
    .site-footer__copy--site  { order: 1; }
    .site-footer__legal-list  { order: 2; }
    .site-footer__copy--dev   { order: 3; }
    .site-footer__legal-list a {
        margin: 0 10px;
    }
}

/* Поиск: выезжающая сверху панель (#SearchDrawer). Оригинальный тогл жил в theme.js
   (в Joomla-порте не подключался → иконка-лупа не открывала панель). Задаём
   собственное состояние открытия, не зависящее от Shopify-структуры .drawer-page-content;
   переключает его celeris-search.js (класс .cel-search-open на <html>). theme.css задаёт
   .drawer{display:none;position:absolute} — перебиваем по специфичности (id+class). */
#SearchDrawer.drawer--top {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    display: block;
    transform: translateY(-100%);
    transition: transform .35s cubic-bezier(.29, .63, .44, 1);
    z-index: 1001;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .22);
    padding: 0;                 /* перебиваем .search-bar{padding:0 27.5px}; отступы — на __table */
}

/* Содержимое панели поиска центрируем по активной области (.page-width = 1200px) и делаем
   крупным: на 4K/широких экранах исходная полоса ~40px с полем у левого края почти не
   читалась — теперь это заметный высокий блок с полем по центру. */
#SearchDrawer .search-bar__table {
    max-width: 1200px;
    margin: 0 auto;
    height: auto;
    padding: 30px 22px;
}
#SearchDrawer .search-bar__form-wrapper {
    height: auto;
}
/* Форму делаем flex: поле слева растёт, кнопка запуска — справа. Исходный submit был
   магнифайером absolute слева (выглядел декоративно → неочевидно, что кликабелен; на мобиле
   Enter недоступен). Выносим его вправо явной золотой кнопкой с иконкой и подписью «Найти». */
#SearchDrawer .search-bar__form {
    display: flex !important;
    align-items: center;
    gap: 12px;
    height: auto;
    border: 0;
}
#SearchDrawer .search-bar__input {
    flex: 1 1 auto;
    order: 1;
    height: 58px;
    font-size: 26px;
    padding-left: 4px;
    border: 0;
    border-bottom: 2px solid #9e7d47;   /* золотая линия — поле видно сразу */
    border-radius: 0;
}
#SearchDrawer .search-bar__submit {
    position: static !important;
    order: 2;
    flex: 0 0 auto;
    height: 58px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff;                         /* лупа (fill:currentColor) → белая */
    background: #9e7d47;
    border: 0;
    border-radius: 2px;
    cursor: pointer;
    transition: background .2s ease;
}
#SearchDrawer .search-bar__submit:hover {
    background: #7d6238;
}
#SearchDrawer .search-bar__submit .icon {
    height: 22px;
    width: 22px;
    margin: 0;
    top: 0;
}
/* Показываем подпись «Найти» (в теме она visually-hidden через clip). */
#SearchDrawer .search-bar__submit .icon__fallback-text {
    position: static !important;
    overflow: visible;
    clip: auto;
    width: auto;
    height: auto;
    margin: 0;
    font-size: 15px;
    line-height: 1;
    color: #fff;
    white-space: nowrap;
}
#SearchDrawer .search-bar__close .icon {
    height: 26px;
    color: #3d4246;
}
#SearchDrawer .search-bar__close:hover .icon {
    color: #9e7d47;
}
/* На планшете/десктопе боковые отступы — как у .page-width (55px), чтобы поле совпадало
   по ширине с шапкой/контентом. */
@media screen and (min-width: 750px) {
    #SearchDrawer .search-bar__table {
        padding: 44px 55px;
    }
    #SearchDrawer .search-bar__input {
        height: 64px;
        font-size: 30px;
    }
    #SearchDrawer .search-bar__submit {
        height: 64px;
        padding: 0 28px;
    }
}
html.cel-search-open #SearchDrawer.drawer--top {
    transform: translateY(0);
}
html.cel-search-open {
    overflow: hidden;
}
.cel-search-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .45);
    z-index: 1000;
    opacity: 0;
    transition: opacity .35s ease;
}
html.cel-search-open .cel-search-backdrop {
    opacity: 1;
}

/* Единый паттерн поиска на ВСЕХ разрешениях: «иконка-лупа → выезжающая панель».
   В оригинале на десктопе (medium-up) показывалось узкое инлайн-поле .site-header__search
   (~55px, без рамки, на тёмном фоне почти невидимо → выглядело как одна иконка и казалось
   нерабочим), а кнопка-тогл была скрыта (.medium-up--hide). Скрываем инлайн-поле везде и
   показываем тогл везде — он открывает #SearchDrawer (celeris-search.js) с нормальным полем.
   1:1-копии custom-styles.css/theme.css не трогаем. */
.site-header__search {
    display: none !important;
}
.site-header__search-toggle {
    display: inline-block !important;
    vertical-align: middle;
    position: relative;
    z-index: 2;
}
/* На medium-up (≥750px) корзина .site-header__cart позиционирована absolute right:0 и
   перекрывала бы тогл — отводим тоглу место слева от корзины. На мобиле корзина в потоке,
   наложения нет, поэтому правим только десктоп/планшет. */
@media screen and (min-width: 750px) {
    .site-header__search-toggle {
        margin-right: 52px;
    }
}

/* Страница результатов поиска JoomShopping (#comjshop): заголовок + панель
   «Сортировка/Количество». Разметка использует BS5-классы (d-flex / mt-2 / control-group),
   которых нет в 1:1-теме (Shopify/BS3) → они no-op, и подписи с селектами разъезжались
   слева вразнобой («оторвано»). Приводим к аккуратной центрированной строке-тулбару. */
#comjshop {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 15px;
}
#comjshop > h1 {
    text-align: center;
    margin: 18px 0 4px;
}
.block_sorting_count_to_page {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 26px;
    margin: 0 0 28px;
    padding: 12px 0 18px;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}
.block_sorting_count_to_page .control-group {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.block_sorting_count_to_page .control-label {
    margin: 0;
    padding: 0;
    font-size: 14px;
    color: rgba(61, 66, 70, .65);
    white-space: nowrap;
}
.block_sorting_count_to_page .controls,
.block_sorting_count_to_page .input-group {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
}
.block_sorting_count_to_page select.form-control {
    height: 38px;
    min-width: 124px;
    padding: 4px 30px 4px 12px;
    font-size: 14px;
    color: #3d4246;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, .18);
    border-radius: 2px;
}
.block_sorting_count_to_page .icon-arrow {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    color: #9e7d47;
}
/* Узкие экраны: две компактные колонки «подпись над селектом» в один ряд по центру —
   вместо разорванных строк. */
@media screen and (max-width: 480px) {
    .block_sorting_count_to_page {
        gap: 0 16px;
        flex-wrap: nowrap;
    }
    .block_sorting_count_to_page .control-group {
        flex-direction: column;
        align-items: stretch;
        gap: 5px;
        flex: 0 1 auto;
    }
    .block_sorting_count_to_page .control-label {
        font-size: 13px;
    }
    .block_sorting_count_to_page select.form-control {
        min-width: 0;
        width: 100%;
    }
}
