/* custom.css — мигрирован в SCSS-тему (_overrides.scss → main.css). Тонкий слой для ручных правок. */

/* ===== Многоуровневое меню навигации (hover-флайауты) =====
   Разметка — src/Web/Layout/Partials/_nav.php:
   li.nav-item.dropdown > ul.dropdown-menu, вложенные li.dropdown-submenu.
   Открытие — чистый CSS, без Bootstrap dropdown-JS (клик по пункту ведёт
   по ссылке). Поведение повторяет старое Yii2-меню NavigatorWidget. */

/* Десктоп: открытие по наведению, подменю выпадают сбоку */
@media (min-width: 992px) {
    .sns-navbar .nav-item.dropdown > .dropdown-menu {
        margin-top: 0; /* без зазора — меню не схлопывается на пути курсора */
    }

    .sns-navbar .nav-item.dropdown:hover > .dropdown-menu,
    .sns-navbar .nav-item.dropdown:focus-within > .dropdown-menu {
        display: block;
    }

    .sns-navbar .dropdown-submenu {
        position: relative;
    }

    .sns-navbar .dropdown-submenu > .dropdown-menu {
        position: absolute;
        top: 0;
        left: 100%;
        margin: 0;
        display: none;
    }

    .sns-navbar .dropdown-submenu:hover > .dropdown-menu,
    .sns-navbar .dropdown-submenu:focus-within > .dropdown-menu {
        display: block;
    }

    /* Стрелка вправо у пунктов с подменю — прижата к ВЕРХНЕЙ строке
       названия. `float: right` (было раньше) «уезжает» вниз при переносе
       длинного названия раздела на 2-3 строки: float пристыковывается к
       той строке текста, на которой браузер обработал ::after (в конце
       контента — то есть к последней строке), а не к первой. Flex с
       align-items:flex-start фиксирует стрелку на верхней строке всегда,
       независимо от того, сколько строк займёт название. */
    .sns-navbar .dropdown-submenu > .dropdown-toggle {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0.5rem;
    }

    .sns-navbar .dropdown-submenu > .dropdown-toggle::after {
        transform: rotate(-90deg);
        flex-shrink: 0;
        margin-top: 0.35em; /* оптическая центровка каретки по высоте первой строки */
    }

    /* Длинное название раздела — переносится на несколько строк вместо
       того, чтобы вылезать за край экрана у глубоко вложенных флайаутов
       (Bootstrap по умолчанию держит .dropdown-item на одной строке —
       white-space:nowrap — у растянутого дерева ivecom.ru это уводит
       текст за пределы viewport). Ширина меню ограничена, чтобы перенос
       вообще случался, а не растягивал строку до бесконечности. */
    .sns-navbar .dropdown-menu {
        max-width: 260px;
    }

    .sns-navbar .dropdown-item {
        white-space: normal;
    }

    /* Флайаут, не помещающийся вправо на экране (на любой глубине, в
       любом дропдауне навбара) — разворачивается влево. Класс ставит
       js/nav-flyout.js при mouseenter/focus, измеряя реальную ширину
       подменю (заменяет прежний хардкод по фиксированной глубине
       вложенности, который решал только конкретный случай «Фургон» в
       «Каталоге» и не спас бы, например, «Инфо», если там когда-нибудь
       появятся вложенные пункты — см. CLAUDE-IVECOM-DESIGN.md). */
    .sns-navbar .dropdown-submenu > .dropdown-menu.dropdown-menu-flip-left {
        left: auto;
        right: 100%;
        top: 1.5rem;
    }
}

/* Мобильный offcanvas: всё дерево показано статично с отступами */
@media (max-width: 991.98px) {
    .sns-navbar .dropdown-menu {
        display: block;
        position: static;
        border: 0;
        box-shadow: none;
        padding-left: 1rem;
        margin: 0;
    }

    .sns-navbar .nav-link.dropdown-toggle::after {
        display: none;
    }
}

/* ===== Сайдбар: collapse-дерево разделов/страниц (_aside.php) ===== */

/* ⚠️ 2026-09-17: `sticky-top` полностью отключён (прямое ТЗ владельца:
   «сайдбар привязан к низу, убери все фиксы, пусть прокручивается
   вместе с текстом, как на обычном сайте»). Разметка (Razdel/Category/
   Tag/Group/Section View/view.php) несёт класс `.sticky-top` — вместо
   правки пяти файлов гасим поведение здесь одним правилом: обычный
   `position: static`, сайдбар — рядовая колонка, скроллится вместе со
   страницей, никакого прилипания к верху/низу.
   (Более ранняя правка того же дня — снятие internal overflow-скролла —
   потеряла смысл сама по себе вместе со sticky, но оставила полезный
   побочный эффект: карточка «Вопросы и обсуждение» (.sns-ask-or-discuss,
   AOS fade-up) была невидима — opacity:0 навсегда, — пока анимация
   слушала скролл ОКНА, а сайдбар скроллился сам в себе отдельным
   overflow-контейнером. Без sticky/overflow эта ловушка не воспроизводится
   в принципе.) */
.service-sidebar.sticky-top {
    position: static;
    top: auto;
}

/* Блоки сайдбара (Каталог/Информация/...) — светло-серые плашки-карточки
   с отступом между собой (2026-09-17, по ТЗ владельца), вместо прежней
   тонкой разделительной линии снизу. */
.main-aside .main-aside__widget {
    background: #f5f6f8;
    border-radius: 10px;
    padding: 1.25rem;
    margin-bottom: 1rem;
}

.main-aside .main-aside__widget:last-of-type {
    margin-bottom: 1rem;
}

.main-aside .aside-widget__header {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--bs-secondary-color);
    margin-bottom: 0.75rem;
}

.main-aside .aside-widget__header a {
    color: inherit;
    text-decoration: none;
}

.main-aside .aside-widget__list .aside-widget__list {
    padding-left: 1rem; /* отступ вложенного уровня */
}

.main-aside .aside-toggle {
    border: 0;
    background: none;
    padding: 0 0.35rem;
    color: var(--bs-secondary-color);
    line-height: 1;
}

.main-aside .aside-toggle .bi {
    display: inline-block;
    font-size: 0.75rem;
    transition: transform 0.2s ease;
}

.main-aside .aside-toggle:not(.collapsed) .bi {
    transform: rotate(90deg);
}

.main-aside .aside-widget__list .nav-link.active {
    font-weight: 600;
}

/* ===== Логотип в навбаре перед названием сайта (2026-09-17, хардкод) =====
   /img/logo_square.webp — public/img/, не asset-пайплайн. */
.navbar-brand-logo {
    height: 40px;
    width: auto;
    margin-right: .5rem;
    vertical-align: middle;
}
