/**
 * Sticky Filters CSS
 * Ensures filter column stretches to footer and becomes sticky on scroll
 */
/* Main filter container styling */
.sticky-filters-container {
    position: relative;
    min-height: 100vh; /* Container defines height */
    transition: all 0.3s ease;
    display: flex;       /* Make children respect height */
    flex-direction: column;
}
/* Filter column wrapper */
.sticky-filters-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;             /* Fill the container */
}
/* The actual filter content */
.sticky-filters-content {
    flex: 1;             /* Fill the wrapper */
    min-height: 600px;   /* Default minimum height */
    transition: all 0.3s ease;
    padding: 15px;
}
/* When sticky is active (normal fixed positioning) */
.sticky-filters-content.is-sticky {
    position: fixed;
    top: 20px;           /* Default offset from top */
    left: auto;          /* Will be set by JavaScript */
    z-index: 999;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 15px;
    /* Hide scrollbar but keep scrolling functionality */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

/* Hide scrollbar for WebKit browsers (Chrome, Safari) */
.sticky-filters-content.is-sticky::-webkit-scrollbar {
    display: none;
}
/* When bottom-bound (absolute positioning at container bottom) */
.sticky-filters-content.is-sticky.is-bottom-bound {
    position: absolute;
    top: auto;
    bottom: 0;
    max-height: none; /* Remove viewport constraint when bottom-bound */
}
/* Placeholder to maintain layout when sticky */
.sticky-filters-placeholder {
    display: none;
    visibility: hidden;
}
.sticky-filters-placeholder.is-active {
    display: block;
    visibility: visible;
}
/* Ensure filter blocks have proper spacing */
.block-categories,
.faceted-search-container,
.filter-block {
    margin-bottom: 20px;
}