:root {
    --gb-public-header-height: 118px;
    --gb-admin-topbar-height: 72px;
    --gb-sticky-z: 2147482000;
    --gb-panel-sticky-z: 2147481000;
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

body:not(.admin-body) .bv-site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: var(--gb-sticky-z) !important;
    background: #fff !important;
    overflow: visible !important;
    transform: none !important;
    -webkit-transform: none !important;
    will-change: auto !important;
}

body:not(.admin-body) .bv-page {
    padding-top: var(--gb-public-header-height) !important;
}

body:not(.admin-body).gb-scrolled .bv-site-header,
body:not(.admin-body) .bv-site-header.is-stuck {
    box-shadow: 0 12px 32px rgba(50, 0, 18, .16) !important;
}

.bv-site-header .bv-topbar,
.bv-site-header .bv-navbar,
.bv-site-header .navbar-collapse,
.bv-site-header .dropdown-menu {
    position: relative !important;
    z-index: calc(var(--gb-sticky-z) + 1) !important;
}

.admin-body .admin-topbar,
.admin-body .member-topbar,
.admin-body .gb-admin-topbar {
    position: fixed !important;
    top: 0 !important;
    left: var(--gb-sidebar-width, 280px) !important;
    right: 0 !important;
    width: auto !important;
    z-index: var(--gb-panel-sticky-z) !important;
    background: #fff !important;
    transform: none !important;
    -webkit-transform: none !important;
    min-height: var(--gb-admin-topbar-height) !important;
}

.admin-body .admin-main,
.admin-body .member-main,
.admin-body .gb-admin-main {
    padding-top: var(--gb-admin-topbar-height) !important;
}

.admin-sidebar,
.member-sidebar,
.gb-admin-sidebar {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    height: 100dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: calc(var(--gb-panel-sticky-z) + 1) !important;
}

.gb-panel-nav,
.member-nav { padding-bottom: 96px !important; }

@media (max-width: 1199.98px) {
    .bv-site-header .navbar-collapse.show,
    .bv-site-header .navbar-collapse.collapsing {
        max-height: calc(100dvh - var(--gb-public-header-height)) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        background: #fff !important;
        border-top: 1px solid rgba(136, 0, 27, .10) !important;
        padding-bottom: 18px !important;
    }
}

@media (max-width: 991.98px) {
    .admin-body .admin-topbar,
    .admin-body .member-topbar,
    .admin-body .gb-admin-topbar {
        left: 0 !important;
        width: 100% !important;
    }

    .admin-main,
    .member-main,
    .gb-admin-main { margin-left: 0 !important; }

    .sidebar-open .sidebar-backdrop {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: var(--gb-panel-sticky-z) !important;
        background: rgba(16, 8, 12, .42) !important;
    }

    .sidebar-open .admin-sidebar,
    .sidebar-open .member-sidebar,
    .sidebar-open .gb-admin-sidebar {
        transform: translateX(0) !important;
    }
}

@media (max-width: 575.98px) {
    :root { --gb-admin-topbar-height: 66px; }
    .admin-topbar,
    .member-topbar,
    .gb-admin-topbar { min-height: 66px !important; }
}
