/* ============================================================
   ALL DA SMOKE
   NAVIGATION
   BOTTOM NAV + MORE SHEET
   ============================================================ */


/* ============================================================
   BOTTOM NAV
   ============================================================ */

.bottom-nav {
    position: fixed;
    z-index: 900;
    left: 10px;
    right: 10px;
    bottom: calc(9px + env(safe-area-inset-bottom, 0px));
    height: 74px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding: 6px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 24px;
    background: linear-gradient(
        135deg,
        rgba(25,30,37,.94),
        rgba(9,12,16,.94)
    );
    box-shadow:
        0 20px 60px rgba(0,0,0,.65),
        inset 0 1px 0 rgba(255,255,255,.045);
    backdrop-filter: blur(24px) saturate(140%);
    -webkit-backdrop-filter: blur(24px) saturate(140%);
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}


/* ============================================================
   NAV ITEMS
   ============================================================ */

.bottom-nav-item,
.nav-item {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    border-radius: 17px;
    background: transparent;
    color: #69717a;
    cursor: pointer;
    font-family: inherit;
    font-size: 8px;
    font-weight: 750;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
    transition:
        color .25s ease,
        transform .2s ease;
}


.bottom-nav-item:focus,
.nav-item:focus {
    outline: none;
}


.bottom-nav-item:focus-visible,
.nav-item:focus-visible {
    outline: 2px solid rgba(255,102,0,.7);
    outline-offset: -3px;
}


.bottom-nav-item:active,
.nav-item:active {
    transform: scale(.88);
}


/* ============================================================
   NAV ICON
   ============================================================ */

.bottom-nav-icon,
.nav-icon {
    position: relative;
    width: 29px;
    height: 29px;
    flex: 0 0 29px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    transition:
        background .25s ease,
        box-shadow .25s ease,
        color .25s ease,
        transform .25s ease;
}


.bottom-nav-icon svg,
.nav-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition:
        transform .25s ease,
        filter .25s ease;
}


/* ============================================================
   ACTIVE PAGE
   ============================================================ */

.nav-item.active {
    color: var(--orange) !important;
}


.nav-item.active .nav-icon {
    background: rgba(255,102,0,.10) !important;
    box-shadow:
        0 0 20px rgba(255,102,0,.11),
        0 0 34px rgba(255,102,0,.06) !important;
}


.nav-item.active .nav-icon svg {
    transform:
        translateY(-1px)
        scale(1.06);

    filter:
        drop-shadow(
            0 0 7px rgba(255,102,0,.45)
        );
}


.nav-item.active::after {
    content: "";
    position: absolute;
    bottom: 3px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--orange);
    box-shadow:
        0 0 8px rgba(255,102,0,.8);
}


/* ============================================================
   NAV LABEL
   ============================================================ */

.nav-label {
    transition:
        color .25s ease,
        text-shadow .25s ease;
}


.nav-item.active .nav-label {
    color: var(--orange);
    text-shadow:
        0 0 10px rgba(255,102,0,.28);
}


/* ============================================================
   CART BADGE
   ============================================================ */

.nav-cart-item {
    overflow: visible;
}


.nav-cart-item .nav-icon {
    overflow: visible;
}


.nav-cart-badge {
    position: absolute;
    top: -7px;
    right: -8px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #11161c;
    border-radius: 999px;
    background: var(--orange);
    color: #ffffff;
    font-size: 8px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
    box-shadow:
        0 3px 10px rgba(0,0,0,.45),
        0 0 10px rgba(255,102,0,.35);
    pointer-events: none;
}


.nav-cart-badge[hidden] {
    display: none !important;
}


.nav-cart-item.has-items .nav-cart-badge {
    display: flex;
}


/* ============================================================
   CART ACTIVE STATE
   ============================================================ */

.nav-cart-item.active {
    color: var(--orange) !important;
}


.nav-cart-item.active .nav-icon {
    background: rgba(255,102,0,.10) !important;
    box-shadow:
        0 0 20px rgba(255,102,0,.11),
        0 0 34px rgba(255,102,0,.06) !important;
}


.nav-cart-item.active .nav-icon svg {
    filter:
        drop-shadow(
            0 0 7px rgba(255,102,0,.45)
        );
}


/* ============================================================
   CART BADGE ANIMATION
   ============================================================ */

.nav-cart-badge.cart-badge-updated {
    animation: cartBadgePop .25s ease;
}


@keyframes cartBadgePop {

    0% {
        transform: scale(.72);
    }

    65% {
        transform: scale(1.14);
    }

    100% {
        transform: scale(1);
    }

}


/* ============================================================
   MORE BUTTON
   ============================================================ */

.nav-more-button {
    appearance: none;
    -webkit-appearance: none;
}


.nav-more-button.active {
    color: var(--orange) !important;
}


.nav-more-button.active .nav-icon {
    background: rgba(255,102,0,.10) !important;
    box-shadow:
        0 0 20px rgba(255,102,0,.11),
        0 0 34px rgba(255,102,0,.06) !important;
}


/* ============================================================
   MORE OVERLAY
   ============================================================ */

.more-overlay {
    position: fixed;
    z-index: 1000;
    inset: 0;
    background: rgba(0,0,0,.68);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    transition:
        opacity .3s ease,
        visibility .3s ease;
}


.more-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* ============================================================
   MORE SHEET
   ============================================================ */

.more-sheet {
    position: fixed;
    z-index: 1001;
    left: 10px;
    right: 10px;
    bottom: calc(
        74px +
        19px +
        env(safe-area-inset-bottom, 0px)
    );
    max-width: 650px;
    margin: 0 auto;
    padding: 9px 14px 14px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 25px;
    background: linear-gradient(
        145deg,
        rgba(23,28,34,.98),
        rgba(9,12,16,.98)
    );
    box-shadow:
        0 25px 80px rgba(0,0,0,.72);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform:
        translateY(18px)
        scale(.97);
    transition:
        opacity .25s ease,
        visibility .25s ease,
        transform .3s cubic-bezier(.2,.8,.2,1);
}


.more-overlay.is-open .more-sheet {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform:
        translateY(0)
        scale(1);
}


/* ============================================================
   SHEET HEADER
   ============================================================ */

.sheet-handle {
    width: 36px;
    height: 4px;
    margin: 1px auto 16px;
    border-radius: 99px;
    background: rgba(255,255,255,.14);
}


.sheet-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
}


.sheet-header h2 {
    font-size: 23px;
}


.sheet-eyebrow {
    display: block;
    margin-bottom: 3px;
    color: var(--orange);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}


.sheet-close {
    position: absolute;
    top: 10px;
    right: 14px;
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 11px;
    background: rgba(255,255,255,.05);
    color: var(--muted);
    font-size: 24px;
    appearance: none;
    -webkit-appearance: none;
}


/* ============================================================
   MORE MENU
   ============================================================ */

.more-menu {
    display: grid;
    gap: 7px;
}


.more-menu-item {
    min-height: 60px;
    display: grid;
    grid-template-columns: 42px 1fr 18px;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.045);
    border-radius: 15px;
    background: rgba(255,255,255,.025);
    color: #e8ebee;
    text-decoration: none;
    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease,
        color .2s ease;
}


.more-menu-item:active {
    transform: scale(.98);
}


.more-menu-item.active {
    border-color: rgba(255,102,0,.24);
    background: rgba(255,102,0,.075);
    color: var(--orange);
    box-shadow:
        0 0 20px rgba(255,102,0,.06);
}


.more-menu-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: var(--orange);
    background: rgba(255,102,0,.08);
    transition:
        background .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}


.more-menu-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.more-menu-item.active .more-menu-icon {
    background: rgba(255,102,0,.13);
    box-shadow:
        0 0 18px rgba(255,102,0,.14);
}


.more-menu-label {
    font-size: 12px;
    font-weight: 750;
}


.more-menu-arrow {
    color: var(--muted-dark);
    font-size: 21px;
    font-weight: 400;
    transition:
        color .2s ease,
        transform .2s ease;
}


.more-menu-item.active .more-menu-arrow {
    color: var(--orange);
    transform: translateX(2px);
}


/* ============================================================
   BODY LOCK
   ============================================================ */

body.more-menu-open {
    overflow: hidden;
}


/* ============================================================
   DESKTOP
   ============================================================ */

@media (min-width: 900px) {

    .bottom-nav {
        left: 50%;
        right: auto;
        width: min(
            calc(100% - 20px),
            650px
        );
        transform:
            translateX(-50%)
            translateZ(0);
    }

}


/* ============================================================
   SMALL PHONES
   ============================================================ */

@media (max-width: 380px) {

    .bottom-nav {
        left: 7px;
        right: 7px;
        height: 70px;
        border-radius: 21px;
    }


    .nav-cart-badge {
        top: -6px;
        right: -7px;
        min-width: 17px;
        height: 17px;
        font-size: 7px;
    }

}