.beads-filters {
    --filter-accent: #3f908c;
    --filter-accent-soft: #eaf5f3;
    --filter-border: #d7e2e1;
    margin: 0 0 22px;
    padding: 10px 14px;
    border: 1px solid var(--filter-border);
    border-radius: 16px;
    background: #f8fbfa;
    color: #17263a;
}

body.tax-product_cat .beads-filters {
    margin-top: -24px;
}

.beads-filters__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
}

.beads-filters__heading > div:first-child {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
}

.beads-filters__eyebrow {
    display: block;
    color: #397f7b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    line-height: 1.3;
    text-transform: uppercase;
}

.beads-filters h2 {
    margin: 0;
    font-size: 21px;
    line-height: 1.2;
}

.beads-filters__clear {
    color: #397f7b;
    font-size: 13px;
    font-weight: 700;
}

.beads-filters__heading-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.beads-filters__open,
.beads-filters__panel-head,
.beads-filters__backdrop {
    display: none;
}

.beads-filters__colors {
    min-width: 0;
    margin: 7px 0 0;
    padding: 0;
    border: 0;
}

.beads-filters__colors--metal {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid #e5eceb;
}

.beads-filters__colors legend,
.beads-filters__field > span {
    display: block;
    margin-bottom: 3px;
    color: #53616f;
    font-size: 12px;
    font-weight: 750;
}

.beads-filters__swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: thin;
}

.beads-filter-swatch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.beads-filter-swatch > span {
    display: inline-flex;
    min-height: 27px;
    align-items: center;
    gap: 4px;
    padding: 3px 6px;
    font-size: 11px;
    border: 1px solid var(--filter-border);
    border-radius: 999px;
    background: #fff;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
}

.beads-filter-swatch b {
    font-weight: 650;
}

.beads-filter-swatch small {
    display: inline-grid;
    min-width: 17px;
    height: 17px;
    place-items: center;
    padding-inline: 4px;
    border-radius: 999px;
    background: #edf3f2;
    color: #53616f;
    font-size: 9px;
    font-weight: 750;
}

.beads-filter-swatch i {
    width: 12px;
    height: 12px;
    border: 1px solid rgba(23, 38, 58, .18);
    border-radius: 50%;
    background: #b9c0c6;
}

.beads-filter-swatch[data-color="zwart"] i { background: #202225; }
.beads-filter-swatch[data-color="wit"] i { background: #fff; }
.beads-filter-swatch[data-color="blauw"] i { background: #3276d1; }
.beads-filter-swatch[data-color="bruin"] i { background: #79513c; }
.beads-filter-swatch[data-color="geel"] i { background: #f3ce27; }
.beads-filter-swatch[data-color="goud"] i { background: #c69a36; }
.beads-filter-swatch[data-color="groen"] i { background: #4c9a5d; }
.beads-filter-swatch[data-color="oranje"] i { background: #ed8128; }
.beads-filter-swatch[data-color="paars"] i { background: #8651ad; }
.beads-filter-swatch[data-color="rood"] i { background: #cf4050; }
.beads-filter-swatch[data-color="roze"] i { background: #e76ca1; }
.beads-filter-swatch[data-color="zilver"] i { background: #c8cdd2; }

.beads-filter-swatch[data-metal-color="zilver"] i {
    background: linear-gradient(135deg, #f8fafb, #aeb9bf);
}
.beads-filter-swatch[data-metal-color="rose-goud"] i { background: #c98e7c; }
.beads-filter-swatch[data-metal-color="zwart"] i { background: #202225; }
.beads-filter-swatch[data-metal-color="goud-messing"] i { background: #c3a14b; }
.beads-filter-swatch[data-metal-color="antiek-brons"] i { background: #806044; }
.beads-filter-swatch[data-metal-color="neo-chrome"] i {
    background: conic-gradient(from 45deg, #8f5bb7, #3aa8b8, #e7bc45, #d7688b, #8f5bb7);
}
.beads-filter-swatch[data-metal-color="rvs"] i {
    background: linear-gradient(135deg, #eef2f3, #909ba1);
}
.beads-filter-swatch[data-metal-color="grijs"] i { background: #737b80; }

.beads-filter-swatch input:checked + span {
    border-color: var(--filter-accent);
    background: var(--filter-accent-soft);
    box-shadow: 0 0 0 1px var(--filter-accent);
    color: #246c68;
    font-weight: 750;
}

.beads-filter-swatch input:focus-visible + span {
    outline: 2px solid var(--filter-accent);
    outline-offset: 2px;
}

.beads-filters__selects {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    align-items: end;
    gap: 10px;
    margin-top: 8px;
}

.beads-filters__form {
    transition: opacity .14s ease;
}

.beads-filters__form.is-submitting {
    pointer-events: none;
    opacity: .68;
}

.beads-filters__field select {
    width: 100%;
    min-height: 34px;
    padding-inline: 11px 34px;
    border-color: var(--filter-border);
    border-radius: 9px;
    background-color: #fff;
    font-size: 13px;
}

.beads-filters__check {
    display: flex;
    min-height: 34px;
    align-items: center;
    gap: 7px;
    padding: 9px 11px;
    border: 1px solid var(--filter-border);
    border-radius: 9px;
    background: #fff;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.beads-filters__check input {
    accent-color: var(--filter-accent);
}

.beads-filters__check--switch {
    min-width: 205px;
    justify-content: space-between;
    padding: 6px 8px 6px 12px;
    cursor: pointer;
}

.beads-filters__check--switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.beads-filters__switch-label {
    color: #17263a;
    font-weight: 750;
}

.beads-filters__switch-track {
    position: relative;
    width: 44px;
    height: 24px;
    flex: 0 0 44px;
    border: 1px solid #c9d6d4;
    border-radius: 999px;
    background: #e6edec;
    box-shadow: inset 0 1px 2px rgb(23 38 58 / 10%);
    transition: border-color .16s ease, background-color .16s ease;
}

.beads-filters__switch-track::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgb(23 38 58 / 24%);
    content: '';
    transition: transform .16s ease;
}

.beads-filters__check--switch input:checked + .beads-filters__switch-track {
    border-color: var(--filter-accent);
    background: var(--filter-accent);
}

.beads-filters__check--switch input:checked + .beads-filters__switch-track::after {
    transform: translateX(20px);
}

.beads-filters__check--switch input:focus-visible + .beads-filters__switch-track {
    outline: 2px solid var(--filter-accent);
    outline-offset: 2px;
}

.beads-filters__check--switch:hover .beads-filters__switch-track {
    border-color: var(--filter-accent);
}

.beads-filters__check--inline {
    min-width: auto;
    min-height: 27px;
    flex: 0 0 auto;
    margin-left: auto;
    padding: 2px 4px 2px 8px;
    gap: 8px;
    border-radius: 999px;
    background: #f2f7f6;
}

.beads-filters__check--inline .beads-filters__switch-label {
    font-size: 11px;
    white-space: nowrap;
}

.beads-filters__check--inline .beads-filters__switch-track {
    width: 36px;
    height: 20px;
    flex-basis: 36px;
}

.beads-filters__check--inline .beads-filters__switch-track::after {
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
}

.beads-filters__check--inline input:checked + .beads-filters__switch-track::after {
    transform: translateX(16px);
}

.beads-filters__submit {
    min-height: 34px;
    padding: 9px 16px;
    border: 0;
    border-radius: 9px;
    background: var(--filter-accent);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}

.beads-filters__submit:hover,
.beads-filters__submit:focus-visible {
    background: #2e7470;
}

@media (max-width: 1100px) {
    .beads-filters__selects {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .beads-filters {
        padding: 13px;
    }

    .beads-filters__heading {
        align-items: start;
        flex-direction: column;
        gap: 6px;
    }

    .beads-filters__swatches {
        flex-wrap: nowrap;
        margin-inline: -16px;
        padding: 2px 16px 5px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .beads-filter-swatch > span {
        white-space: nowrap;
    }

    .beads-filters__selects {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 900px) {
    .beads-filters {
        min-height: 74px;
    }

    .beads-filters__open {
        display: inline-flex;
        min-height: 42px;
        align-items: center;
        justify-content: center;
        padding: 9px 16px;
        border: 0;
        border-radius: 10px;
        background: var(--filter-accent);
        color: #fff;
        font-size: 13px;
        font-weight: 800;
    }

    .beads-filters__form.is-offcanvas {
        position: fixed;
        z-index: 100002;
        top: 0;
        right: 0;
        display: block;
        width: min(430px, calc(100vw - 28px));
        height: 100dvh;
        padding: 22px 18px 110px;
        overflow-y: auto;
        background: #fff;
        box-shadow: -18px 0 48px rgb(23 32 51 / 22%);
    }

    .beads-filters__form.is-offcanvas[hidden] {
        display: none;
    }

    .beads-filters__panel-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding-bottom: 15px;
        border-bottom: 1px solid var(--filter-border);
    }

    .beads-filters__panel-head strong {
        font-size: 19px;
    }

    .beads-filters__close {
        min-height: 38px;
        padding: 7px 12px;
        border: 1px solid var(--filter-border);
        border-radius: 9px;
        background: #fff;
        color: #17263a;
        font-weight: 750;
    }

    .beads-filters__form.is-offcanvas .beads-filters__swatches {
        flex-wrap: wrap;
        margin-inline: 0;
        padding-inline: 0;
        overflow: visible;
    }

    .beads-filters__form.is-offcanvas .beads-filters__selects {
        grid-template-columns: 1fr;
    }

    .beads-filters__backdrop:not([hidden]) {
        position: fixed;
        z-index: 100001;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        border: 0;
        background: rgb(17 30 45 / 48%);
    }

    body.beads-filters-open {
        overflow: hidden;
    }
}

@media (max-width: 460px) {
    .beads-filters__selects {
        grid-template-columns: 1fr;
    }
}
