/* ==========================================================================
   GUESTLY APP SHELL (Step 2)
   Glass navbar (hooks the theme's existing .fixed-header scroll class),
   mobile bottom navigation, layout utilities. Consumes --g-* tokens.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Navbar: floating glass once the page scrolls (theme adds .fixed-header)
-------------------------------------------------------------------------- */
.main-header .header-lower {
    transition: background var(--g-normal, .3s) var(--g-ease, ease),
                box-shadow var(--g-normal, .3s) var(--g-ease, ease),
                padding var(--g-normal, .3s) var(--g-ease, ease);
}
.main-header.fixed-header .header-lower {
    background: rgba(255, 255, 255, .78) !important;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    box-shadow: 0 6px 24px rgba(0, 0, 0, .08);
    border-bottom: 1px solid rgba(0, 0, 0, .05);
}
.main-header.fixed-header .logo img {
    max-height: 40px;
    transition: max-height var(--g-normal, .3s) var(--g-ease, ease);
}

/* --------------------------------------------------------------------------
   Mobile bottom navigation (guest/public shell)
-------------------------------------------------------------------------- */
.gx-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--g-z-sticky, 100);
    display: none;
    background: rgba(255, 255, 255, .88);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    border-top: 1px solid var(--g-border, #e9e9ec);
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
}
@media (max-width: 991px) {
    .gx-bottom-nav { display: flex; }
    /* Keep page content clear of the nav */
    body:has(.gx-bottom-nav) { padding-bottom: 64px; }
    /* The theme's own host bottom-nav pages don't include this component. */
}

.gx-bottom-nav a {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-height: 48px;
    color: var(--g-text-soft, #6f6f76);
    text-decoration: none;
    font-size: 10.5px;
    font-weight: 700;
    border-radius: 12px;
    -webkit-tap-highlight-color: transparent;
    transition: color var(--g-fast, .15s) ease, transform var(--g-fast, .15s) ease;
}
.gx-bottom-nav a:active { transform: scale(.92); }
.gx-bottom-nav a i { font-size: 19px; }
.gx-bottom-nav a.active { color: var(--g-primary, #FF3131); }
.gx-bottom-nav a.active i { font-weight: 900; }
.gx-bottom-nav a:focus-visible { outline: 2px solid var(--g-primary, #FF3131); outline-offset: -2px; }

/* --------------------------------------------------------------------------
   Layout utilities
-------------------------------------------------------------------------- */
.g-container {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: var(--g-s4, 16px);
}
@media (min-width: 768px) { .g-container { padding-inline: var(--g-s5, 24px); } }
@media (min-width: 1440px) { .g-container { max-width: 1360px; } }

.g-grid {
    display: grid;
    gap: var(--g-s4, 16px);
    grid-template-columns: 1fr;
}
@media (min-width: 650px)  { .g-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .g-grid { grid-template-columns: repeat(3, 1fr); gap: var(--g-s5, 24px); } }
@media (min-width: 1440px) { .g-grid { grid-template-columns: repeat(4, 1fr); } }
