.vrp-filter .filter__grid {
    /* these vars are used to calculate the dropdown__content's offset */
    --filter-grid-nb-cols: 1; 
    --filter-grid-width: 100%; /* hardcoded width asuming it is inside bootstrap .container */
    --filter-grid-gap: 0.5rem;

    display: grid;
    gap: var(--filter-grid-gap);
    grid-template-columns: repeat( var(--filter-grid-nb-cols), 1fr );
}

@media screen and (min-width: 768px){
    .vrp-filter .filter__grid {
        --filter-grid-nb-cols: 3;
        --filter-grid-width: 690px;
    }
    
    /* set dropdown__content offset based on 3 col layout */
    .vrp-filter .filter__grid>*:nth-child(3n+1) { --filter-dropdown-content-offset: 0}
    .vrp-filter .filter__grid>*:nth-child(3n+2) { --filter-dropdown-content-offset: 1}
    .vrp-filter .filter__grid>*:nth-child(3n+3) { --filter-dropdown-content-offset: 2}
}

@media screen and (min-width: 992px){
    .vrp-filter .filter__grid {
        --filter-grid-width: 930px;
    }    
}

@media screen and (min-width: 1200px){
    .vrp-filter .filter__grid {
        --filter-grid-nb-cols: 6;
        --filter-grid-width: 1110px;
    }   

    /* set dropdown__content offset based on 6 col layout */
    .vrp-filter .filter__grid>*:nth-child(6n+1) { --filter-dropdown-content-offset: 0}
    .vrp-filter .filter__grid>*:nth-child(6n+2) { --filter-dropdown-content-offset: 1}
    .vrp-filter .filter__grid>*:nth-child(6n+3) { --filter-dropdown-content-offset: 2}
    .vrp-filter .filter__grid>*:nth-child(6n+4) { --filter-dropdown-content-offset: 3}
    .vrp-filter .filter__grid>*:nth-child(6n+5) { --filter-dropdown-content-offset: 4}
    .vrp-filter .filter__grid>*:nth-child(6n+6) { --filter-dropdown-content-offset: 5} 
}

.vrp-filter .filterDropdown__btn {
    border: 1px solid var(--border-color);
    display: flex;
    align-items: baseline;
}

.vrp-filter .filterDropdown__btn::after {
    content: '';
    display: inline-block;
    border: .25rem solid transparent;
    border-top-color: var(--primary, black);
    margin-left: auto;
}

.vrp-filter .filterDropdown__content {
    --dropdown-padding: 1rem;
    
    position: fixed;
    inset: 0;
    background-color: var(--bg-color, white);
    color: var(--text-color, black);
    z-index: 1040;

    max-height: 100vh;

    display: none;
}

.vrp-filter .filterDropdown__header,
.vrp-filter .filterDropdown__body {
    padding: var(--dropdown-padding);
}

.vrp-filter .filterDropdown__header {
    border-bottom: 1px solid var(--border-color, #dadada)
}

.vrp-filter .filterDropdown__body {
    overflow: auto;
    flex-grow: 1;
}

.vrp-filter .filterDropdown__content.filterDropdown__content--opened {
    display: flex;
    flex-direction: column;
}

@media screen and (min-width: 768px) {
    .vrp-filter .filterDropdown {
        position: relative;
    }

    .vrp-filter .filterDropdown__header {
        /*display: none;*/
    }
    
    .vrp-filter .filterDropdown__content {
        --offset-value-per-col: (var(--filter-grid-width) + var(--filter-grid-gap)) / var(--filter-grid-nb-cols);

        position: absolute;
        top: 100%;
        /* left align this with the grid */
        left: calc( -1 * var(--filter-dropdown-content-offset, 0) * var(--offset-value-per-col) );
        bottom: auto;
        z-index: 1000;
        
        border-radius: var(--border-radius, .25rem);
        border: 1px solid var(--border-color, #dadada);
        margin-top: .25rem;
        overflow: auto;
        width: var(--filter-grid-width, 100%);
    }
}

/* prevent body scroll when modal is open (mobile) */
@media screen and (max-width: 767px) {
    .vrp-filter body.filterDropdown-isOpen {
        position: fixed;
        inset: 0;
        overflow: hidden;
    }
}

.vrp-filter .filterColor {
    text-align: center;
    display: block;
}

.vrp-filter .filterColor__grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat( auto-fit, 125px );
}

.vrp-filter .filterColor__input {
    display: none;
}

.vrp-filter .filterColor__circle {
    --circle-size: 2rem;
    line-height: var(--circle-size);
    height: var(--circle-size);
    width: var(--circle-size);
    border-radius: 50%;
    display: inline-block;
    border: 1px solid var(--border-color, #dadada);
}

.vrp-filter .filterColor__label {
    display: block;
}

.vrp-filter .filterColor__input:checked~.filterColor__circle {
    outline: 2px solid white;
    outline-offset: -3px;
    border-color: var(--primary);
}

.vrp-filter .filterColor__input:checked~.filterColor__label {
    color: var(--primary);
}

.vrp-filter .range-input {
    width: 150px;
    max-width: 100%; 
}

.vrp-filter .checkbox-list-4,
.vrp-filter .checkbox-list-2 {
    column-count: 2;
    column-gap: 1rem;
}

@media screen and (min-width: 768px) {
    .vrp-filter .checkbox-list-4 {
        column-count: 4;
    }
}

.vrp-filter .switch {
    display: inline-flex;
    align-items: center;
}

.vrp-filter .switch__checkbox {
    display: none;
}

.vrp-filter .switch__toggle {
    border-radius: 999px;
    width: calc((1em + 2px) * 2);
    background-color: white;
    border: 1px solid currentcolor;
    padding: 2px;
    transition: all .2s ease-in-out;
    display: inline-block;
}

.vrp-filter .switch__toggle::before {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    border-radius: 999px;
    background-color: currentcolor;
    transition: all .2s ease-in-out;
}

.vrp-filter .switch__checkbox:checked~.switch__toggle {
    border-color: var(--primary);
}

.vrp-filter .switch__checkbox:checked~.switch__toggle::before{
    background-color: var(--primary);
    margin-left: calc(1em - 2px);
}



/* Assume 768px is the breakpoint between mobile and desktop. Adjust as necessary. */
@media (max-width: 767px) {
    .mobile_toggle {
        display: block; /* show the toggle button on mobile */
    }
    .search_bar_container {
        display: none; /* default hide on mobile */
    }
}

@media (min-width: 768px) {
    .mobile_toggle {
        display: none; /* hide the toggle button on desktop */
    }
    .search_bar_container {
        display: block; /* show on desktop */
    }
}