/* Sidebar */
.torba-sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.torba-sidebar-section {
    background: var(--torba-neutral-100);
    border: 1px solid var(--torba-neutral-500);
    border-radius: var(--torba-border-radius-large);
    padding: 24px;
    box-shadow: var(--torba-shadow-elegant);
    position: relative;
    overflow: visible;
}

.torba-sidebar-title {
    font-family: var(--torba-font-serif);
    font-size: 20px;
    font-weight: 600;
    color: var(--torba-neutral-800);
    margin-bottom: 20px;
    letter-spacing: -0.3px;
}

/* Catalog Navigation */
.torba-catalog-nav {
    list-style: none;
    padding-left: 5px;
}

    .torba-catalog-nav > li {
        margin-bottom: 5px;
        position: relative;
    }

    .torba-catalog-nav a {
        color: var(--torba-neutral-700);
        text-decoration: none;
        font-size: 15px;
        font-weight: 400;
        transition: var(--torba-transition);
        display: flex;
        align-items: center;
        padding: 8px 12px;
        border-radius: var(--torba-border-radius);
        position: relative;
    }

        .torba-catalog-nav a::before {
            content: '';
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            width: 3px;
            height: 0;
            background: var(--torba-primary-light);
            transition: var(--torba-transition);
        }

        .torba-catalog-nav a:hover,
        .torba-catalog-nav a:focus-visible,
        .torba-catalog-nav a.active {
            color: var(--torba-primary);
            background: var(--torba-neutral-200);
            padding-left: 20px;
        }

            .torba-catalog-nav a:hover::before,
            .torba-catalog-nav a:focus-visible::before,
            .torba-catalog-nav a.active::before {
                height: 24px;
            }

/* Has Subcategories Indicator */
.has-subcategories > a::after {
    content: '›';
    margin-left: auto;
    font-size: 18px;
    color: var(--torba-neutral-600);
    transition: var(--torba-transition);
}

.has-subcategories:hover > a::after,
.has-subcategories:focus-within > a::after {
    color: var(--torba-primary);
    transform: translateX(3px);
}

/* Subcategory Panel */
.torba-subcategory-panel {
    position: absolute;
    left: calc(100% + 10px);
    top: 0;
    background: var(--torba-neutral-100);
    border: 1px solid var(--torba-neutral-500);
    border-radius: var(--torba-border-radius-large);
    padding: 20px;
    min-width: 250px;
    max-width: 350px;
    box-shadow: var(--torba-shadow-elegant);
    opacity: 0;
    visibility: hidden;
    transform: translateX(-10px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0.3s;
    z-index: 1000;
}

/* Show subcategory panel on hover, and on keyboard focus so the links inside
   are reachable by tab - visibility: hidden takes them out of the tab order. */
.has-subcategories:hover .torba-subcategory-panel,
.has-subcategories:focus-within .torba-subcategory-panel {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear;
}

/* Subcategory List */
.torba-subcategory-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

    .torba-subcategory-list li {
        margin-bottom: 8px;
    }

    .torba-subcategory-list a {
        color: var(--torba-neutral-700);
        text-decoration: none;
        font-size: 14px;
        font-weight: 400;
        display: flex;
        align-items: center;
        padding: 8px 12px;
        border-radius: var(--torba-border-radius);
        transition: var(--torba-transition);
    }

        .torba-subcategory-list a:hover,
        .torba-subcategory-list a:focus-visible {
            background: var(--torba-neutral-200);
            color: var(--torba-primary);
            padding-left: 16px;
        }

/* Subcategory Title */
.torba-subcategory-title {
    font-family: var(--torba-font-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--torba-neutral-800);
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--torba-neutral-400);
}

/* Arrow for connection */
.torba-subcategory-panel::before {
    content: '';
    position: absolute;
    left: -8px;
    top: 20px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 8px 8px 0;
    border-color: transparent var(--torba-neutral-500) transparent transparent;
}

.torba-subcategory-panel::after {
    content: '';
    position: absolute;
    left: -7px;
    top: 20px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 8px 8px 0;
    border-color: transparent var(--torba-neutral-100) transparent transparent;
}

/* Mobile Styles
   Hidden below 992px, where .torba-catalog-container drops to a single track and
   FilterProductsMobile's trigger takes over. All three breakpoints have to agree:
   the old 1024px value left 992-1024px with no category nav and no filter button. */
@media (max-width: 991px) {
    .torba-sidebar {
        display: none;
    }
}

/* The sidebar track is 240px from 992 to 1199px — give the padding back to the
   category names there. */
@media (max-width: 1199px) {
    .torba-sidebar {
        gap: 16px;
    }

    .torba-sidebar-section {
        padding: 16px;
    }
}

/* Optional: Add delay to prevent accidental closing */
.has-subcategories::after {
    content: '';
    position: absolute;
    left: 100%;
    top: 0;
    width: 20px;
    height: 100%;
    display: block;
}
