/*
 * Базовый слой новых публичных страниц.
 *
 * Публичные страницы платформы построены на brand.css. Раньше под ним лежал
 * тяжёлый бандл старой темы (bootstrap + select2 + sweetalert2 + toastr +
 * main.css + 13 файлов «спа»-стилей, около 116 КБ в gzip). Из этого бандла
 * новым страницам нужен был только сброс стилей браузера, каркас страницы
 * (шапка, контент, подвал во всю высоту) и пара служебных классов.
 *
 * Всё это собрано здесь — намеренно коротко и на токенах бренда.
 * Правило: если сюда начинает приезжать «ещё немного оформления», значит
 * страница всё ещё зависит от старой темы, и её место — в легаси-слое
 * (см. resources/views/front/app_styles.blade.php).
 */

/* --------------------------------------------------------------------------
   1. Сброс стилей браузера (минимум из bootstrap reboot)
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: var(--b-font, 'Manrope', system-ui, sans-serif);
    font-size: 16px;
    line-height: 1.5;
    background: var(--b-bg, #F8FAFC);
    color: var(--b-ink, #0B0F14);
}

/* Контент растягивается, подвал прижат к низу даже на короткой странице */
body > main,
main.site-content-shell {
    flex: 1 0 auto;
}

img,
svg,
video {
    vertical-align: middle;
    max-width: 100%;
    height: auto;
}

button,
input,
select,
textarea {
    font: inherit;
    color: inherit;
}

button {
    cursor: pointer;
}

a {
    color: var(--b-accent-text, #3F7A00);
    text-decoration: none;
}

/* --------------------------------------------------------------------------
   2. Каркас страницы
   -------------------------------------------------------------------------- */
.site-content-shell {
    padding: 28px 0 64px;
}

.site-content-shell > .container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

@media (max-width: 767px) {
    .site-content-shell {
        padding: 18px 0 40px;
    }

    .site-content-shell > .container {
        padding: 0 16px;
    }
}

/* --------------------------------------------------------------------------
   3. Служебные классы, которые ещё встречаются в общем каркасе
   -------------------------------------------------------------------------- */
.sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 767px) {
    .hide-m {
        display: none !important;
    }
}

/* --------------------------------------------------------------------------
   4. Мобильное меню (off-canvas)
   --------------------------------------------------------------------------
   Панель и подложка живут в общем каркасе страницы. Внутри панели — компоненты
   .sm__* из brand.css, а положение панели и затемнение раньше задавал main.css.
   Без этих правил меню открыто всегда и лежит в потоке поверх контента.
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .mobile-side-menu-overlay {
        position: fixed;
        inset: 0;
        z-index: 1098;
        background: rgba(17, 20, 24, .45);
        opacity: 0;
        pointer-events: none;
        transition: opacity .25s ease;
    }

    .mobile-side-menu-overlay.side-menu-open {
        opacity: 1;
        pointer-events: auto;
    }

    .boolkim-sidebar.sm {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 1099;
        display: flex;
        flex-direction: column;
        width: min(88vw, 380px);
        height: 100vh;
        overflow-y: auto;
        background: var(--b-surface, #fff);
        border-right: 1px solid var(--b-line, #E2E8F0);
        box-shadow: 24px 0 60px rgba(17, 20, 24, .18);
        transform: translateX(-105%);
        transition: transform .28s ease;
    }

    .boolkim-sidebar.sm.side-menu-open {
        transform: translateX(0);
    }

    body.side-menu-lock {
        overflow: hidden;
    }
}

/* Кнопка «наверх» */
.scroll-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--b-accent, #8FE01F);
    color: #F8FAFC;
    font-size: 1.25rem;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    box-shadow: 0 6px 20px rgba(143, 224, 31, .35);
    transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
}

.scroll-top.visible {
    opacity: 1;
    visibility: visible;
}

.scroll-top:hover {
    transform: translateY(-3px);
}

@media (max-width: 767px) {
    .scroll-top {
        right: 16px;
        bottom: 16px;
    }
}
