.product-list__side {
    opacity: 0;
    transition-delay: .1s;
    transition-property: opacity;
    transition-duration: .1s;
}

.category-filter {
    padding: .8rem 0 0;
    background-color: var(--color-secondary);
    position: relative;
    border-top: 1px solid white;

    h3 {
        margin: 0;
    }

    .checkbox {
        input {
            appearance: none;
            background-color: #fff;
            margin: 0 10px 0 0;
            font: inherit;
            color: currentColor;
            width: 17px;
            height: 17px;
            border: 1px solid currentColor;
            border-radius: 0.15em;
            transform: translateY(-0.075em);
            display: grid;
            place-content: center;
            min-width: 17px;
        }
        input[type="checkbox"]::before {
            content: "";
            width: 12px;
            height: 12px;
            transform: scale(0);
            transition: 120ms transform ease-in-out;
            box-shadow: inset 1em 1em white;
            transform-origin: bottom left;
            clip-path: polygon(14% 45%, 0 44%, 38% 93%, 91% 18%, 88% 0%, 37% 71%)
        }

        input[type="checkbox"]:checked {
            background: var(--color-primary);
        }

        input[type="checkbox"]:checked::before {
            transform: scale(1);
        }
    }

    .category-filter__heading {
        display: flex;
        align-items: center;
        justify-content: space-between;
        font-weight: bold;
        font-size: .875rem;
        cursor: pointer;
        padding: 0 1.5rem .8rem;
        .chevron-icon {
            display: flex;
            align-items: center;
            transition: transform 0.1s ease-in-out;
        }

        &.collapsed {
            .chevron-icon {
                transform: rotate(90deg);
            }
        }
    }

    .category-filter__list {
        padding: 0 1.5rem;

        label.checkbox {
            margin: 0;
            cursor: pointer;
            font-size: .875rem;
            padding: .2rem 0;
            display: flex;
            align-items: center;
        }
        label.checkbox:first-child {
            padding-top: 1px;
        }
        label.checkbox:last-child {
            padding-bottom: .8rem;
        }

        &.range-filter {
            padding: 0 2rem
        }
    }
}

.category-filter-clear {
    text-decoration: underline;
    padding: 0 0 1rem;
    display: block;
    font-size: 1rem;
}

.filter-anchor {
    display: block;
    position: relative;
    top: -75px;
    visibility: hidden;
}

.category-filter-form {
    position: relative;
    .loader-wrapper {
        display: none;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #ffffff7d;
        z-index: 9;

        .loader {
            position: absolute;
            top: 50%;
            left: 50%;
            margin: -15px 0 0 -18px;
        }
    }
}

@media (min-width: 1024px) {
    .category-filter-form {
        margin-bottom: 1rem;
    }
    .filter-is-mobile {
        display: none;
    }
}

@media (max-width: 1023px) {
    .filter-is-desktop {
        display: none;
    }

    .filter-anchor {
        top: -125px;
    }

    .category-filter-form {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 99;
        background-color: white;
        height: 100%;
        padding: 1.5rem 1.5rem 0;
        overflow: auto;
    }

    .filter-mobile-heading {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: .5rem;
    }

    .filter-mobile-heading__left {
        display: flex;
        align-items: center;
    }

    .close-filter {
        width: 30px;
        height: 30px;

        svg {
            width: 30px;
            height: 30px;
        }
    }

    .category-filter-clear {
        padding: 0;
        font-size: 1rem;
        margin-right: 1rem;
    }

    .filter-submit {
        bottom: 0;
        position: sticky;
        padding: 1rem;
        z-index: 9;

        button {
            width: 100%;
        }
    }

    .filter-trigger {
        scroll-margin-top: 140px;
        margin: 2rem 0 1rem;
        button {
            max-width: 50%;
            min-width: 180px;
        }
    }

}
