.categories-menu-offcanvas {
    --bs-offcanvas-width: var(--offcanvas-panel-width);
}

.categories-menu {
    position: relative;
    overflow: hidden;
    height: 100%;
}

.categories-menu__flyout {
    display: contents;
}

.categories-menu__level {
    display: flex !important;
    position: absolute;
    inset: 0;
    transform: translateX(100%);
    transition: transform 0.3s ease-in-out;
    background-color: var(--color-bg-primary);
}

.categories-menu__level.is-prev {
    transform: translateX(-100%);
}

.categories-menu__level.is-active {
    transform: translateX(0);
}

/* Desktop + Tabletă (md ≥768px, cerut explicit — Tabletă se comportă identic
   cu Desktop, nu mai are tratament separat): nivel 1 rămâne mereu vizibil ca o
   coloană fixă; nivel 2 apare ca flyout lângă el (fără back); nivel 3 înlocuiește
   nivel 2 în același flyout (cu back). Doar sub md (<768px) rămâne stack-ul
   complet (bottom-sheet, vezi media query-ul de mai jos). */
@media (min-width: 768px) {
    .categories-menu-offcanvas {
        top: 10px !important;
        bottom: 10px !important;
        left: 10px !important;
        background-color: transparent;
        box-shadow: none;
    }

    .categories-menu {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        gap: 5px;
        overflow: visible;
    }

    .categories-menu__level[data-menu-level="1"] {
        position: relative;
        inset: auto;
        transform: none !important;
        transition: none;
        width: var(--offcanvas-panel-width);
        flex-shrink: 0;
        border-radius: var(--radius-lg);
        overflow: hidden;
        box-shadow: 0 20px 40px rgba(16, 24, 40, 0.15);
    }

    .categories-menu__flyout {
        display: block;
        position: relative;
        width: 0;
        flex-shrink: 0;
        overflow: hidden;
        border-radius: var(--radius-lg);
        box-shadow: 0 20px 40px rgba(16, 24, 40, 0.15);
        transition: width 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
    }

    .categories-menu-offcanvas[data-current-level="2"] .categories-menu__flyout,
    .categories-menu-offcanvas[data-current-level="3"] .categories-menu__flyout {
        width: var(--offcanvas-panel-width);
    }

    .categories-menu-offcanvas[data-current-level="1"] .categories-menu__flyout {
        box-shadow: none;
    }

    .categories-menu__flyout .categories-menu__level[data-menu-level="2"] .categories-menu__back {
        display: none !important;
    }

    .categories-menu-offcanvas {
        transition: transform 0.3s ease-in-out, width 0.3s ease-in-out;
    }

    .categories-menu-offcanvas[data-current-level="2"],
    .categories-menu-offcanvas[data-current-level="3"] {
        --bs-offcanvas-width: calc(var(--offcanvas-panel-width) * 2 + 5px);
    }
}

/* Mobil (<768px): panoul vine de jos în sus, full width, dar nu ajunge
   până la marginea de sus a ecranului — rămâne un spațiu de ~30vh. */
@media (max-width: 767.98px) {
    .categories-menu-offcanvas {
        top: 30vh !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        transform: translateY(100%) !important;
        border-top-left-radius: var(--radius-lg);
        border-top-right-radius: var(--radius-lg);
        overflow: hidden;
    }

    .categories-menu-offcanvas.show:not(.hiding) {
        transform: translateY(0) !important;
    }
}

.categories-menu__title {
    font-family: var(--font-family-secondary);
    font-weight: var(--font-weight-semibold);
    font-size: var(--heading-xs-size);
    color: var(--color-content-primary);
}

.categories-menu__close {
    width: 2.5rem;
    height: 2.5rem;
    background-color: var(--color-bg-secondary);
    border: none;
}

.categories-menu__back {
    background-color: var(--color-bg-secondary);
    border: none;
    color: var(--color-content-primary);
    font-weight: var(--font-weight-medium);
    align-self: flex-start;
}

.categories-menu__banner {
    background-color: var(--color-bg-inverse);
}

.categories-menu__banner-content {
    inset: 0;
    padding: 1.5rem;
    color: var(--color-content-inverse);
}

.categories-menu__banner-title {
    font-family: var(--font-family-secondary);
    font-weight: var(--font-weight-semibold);
    font-size: var(--heading-xs-size);
}

.categories-menu__banner-subtitle {
    font-size: var(--text-s-size);
    opacity: 0.85;
    max-width: 12rem;
}

.categories-menu__banner-cta {
    background-color: var(--color-bg-discount);
    color: var(--color-content-inverse);
    font-weight: var(--font-weight-semibold);
    padding: 0.625rem 1.25rem;
    margin-top: 0.5rem;
}

.categories-menu__item {
    border: 1px solid var(--color-border-primary);
    color: var(--color-content-primary);
    transition: background-color var(--transition-fast);
}

.categories-menu__item:hover {
    background-color: var(--color-bg-secondary);
}

.categories-menu__item--cta {
    border-style: dashed;
}

.categories-menu__item-image {
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    background-color: var(--color-bg-secondary);
    flex-shrink: 0;
}

.categories-menu__item-title {
    font-weight: var(--font-weight-semibold);
    color: var(--color-content-primary);
}

.categories-menu__item-subtitle {
    font-size: var(--text-s-size);
    color: var(--color-content-tertiary);
}
