.shopping-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .7rem;
}
.shopping-filter-chip {
    border: 1px solid #c8ac68;
    border-radius: 1rem;
    padding: .2rem .65rem;
    background: #fff8e4;
    color: #423b28;
    font-size: .8rem;
}
.shopping-filter-chip:focus-visible {
    outline: 2px solid #71561c;
    outline-offset: 2px;
}
.shopping-view-controls {
    --shopping-ink: #193a3b;
    --shopping-muted: #657778;
    --shopping-brass: #b18b4b;
    --shopping-brass-light: #e9d8b6;
    --shopping-paper: #f7f5ef;
    --shopping-line: #d9ded8;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0 0 0.8rem;
    color: var(--shopping-ink);
    font-family: inherit;
}

.shopping-view-controls *,
.shopping-view-controls *::before,
.shopping-view-controls *::after {
    box-sizing: border-box;
}

.shopping-view-switch {
    position: relative;
    display: inline-grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    min-height: 2.25rem;
    padding: 0.15rem;
    overflow: hidden;
    border: 1px solid var(--shopping-line);
    border-radius: 999px;
    background: var(--shopping-paper);
    isolation: isolate;
}

.shopping-view-switch__indicator {
    position: absolute;
    z-index: -1;
    inset: 0.15rem auto 0.15rem 0.15rem;
    width: calc(50% - 0.15rem);
    border-radius: 999px;
    background: var(--shopping-ink);
    transform: translateX(0);
    transition: transform 220ms cubic-bezier(.2, .75, .25, 1);
}

.shopping-view-switch.is-product-list .shopping-view-switch__indicator {
    transform: translateX(100%);
}

.shopping-view-switch__link {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 0.34rem 0.7rem;
    border-radius: 999px;
    color: var(--shopping-muted);
    font-size: 0.875rem;
    font-weight: 650;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}

.shopping-view-switch__link[aria-current="page"] {
    color: #f8f5ed;
}

.shopping-view-switch__link:focus-visible,
.shopping-list-group__button:focus-visible {
    z-index: 2;
    outline: 3px solid var(--shopping-brass);
    outline-offset: 2px;
}

.shopping-list-group {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 2.25rem;
    padding: 0.14rem 0.22rem 0.14rem 0.55rem;
    border: 1px solid var(--shopping-line);
    border-radius: 999px;
    background: #fbfaf6;
}

.shopping-list-group__label {
    color: var(--shopping-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.shopping-list-group__switch {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: stretch;
    gap: 0.12rem;
    padding: 0.14rem;
    border-radius: 999px;
    background: #eeeee8;
}
.shopping-list-group__switch::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: .14rem auto .14rem .14rem;
    width: calc(50% - .14rem);
    border-radius: 999px;
    background: var(--shopping-brass-light);
    box-shadow: inset 0 0 0 1px rgb(177 139 75 / 36%);
    transition: transform 220ms ease;
}
.shopping-list-group__switch.is-weight::before {
    transform: translateX(100%);
}

.shopping-list-group__button {
    flex: 1 1 0;
    min-height: 1.65rem;
    padding: 0.24rem 0.58rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--shopping-muted);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.1;
    cursor: pointer;
}

.shopping-list-group__button[aria-pressed="true"] {
    color: var(--shopping-ink);
}

@media (max-width: 480px) {
    .shopping-view-controls {
        align-items: center;
        gap: 0.35rem;
        margin-bottom: 0.7rem;
    }

    .shopping-view-switch {
        flex: 0 0 auto;
        width: auto;
        grid-template-columns: 1fr 1fr;
    }

    .shopping-view-switch__link {
        padding-inline: 0.4rem;
        font-size: 0.84rem;
    }

    .shopping-list-group {
        flex: 0 0 auto;
        min-width: 0;
        gap: 0.28rem;
        padding-left: 0.25rem;
    }

    .shopping-list-group__button {
        padding-inline: 0.375rem;
    }
}

/* Product List owns a single compact toolbar; Store keeps its existing layout. */
#product-list-wrap .product-list-toolbar {
    display: flex;
    width: 100%;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.3rem;
    margin: 0 0 0.8rem;
}

#product-list-wrap .product-list-toolbar > .shopping-view-controls {
    flex: 0 1 auto;
    min-width: 0;
}

#product-list-wrap .product-list-toolbar .shopping-view-controls {
    flex-wrap: nowrap;
    gap: 0.25rem;
    margin: 0;
}

#product-list-wrap .product-list-toolbar .shopping-view-switch,
#product-list-wrap .product-list-toolbar .shopping-list-group {
    flex: 0 0 auto;
}

#product-list-wrap .product-list-toolbar .shopping-view-switch__link {
    padding-inline: 0.45rem;
    font-size: 0.82rem;
}

#product-list-wrap .product-list-toolbar .shopping-list-group {
    gap: 0.2rem;
    padding-inline: 0.3rem;
}

#product-list-wrap .product-list-toolbar .shopping-list-group__label {
    font-size: 0.64rem;
    letter-spacing: 0.04em;
}

#product-list-wrap .product-list-toolbar .shopping-list-group__button {
    padding-inline: 0.4rem;
    font-size: 0.78rem;
}

#product-list-wrap .product-list-filter-toggle {
    flex: 0 1 auto;
    min-width: 0;
    min-height: 36px;
    margin: 0;
    padding: 0.36rem 0.45rem;
    font-size: 0.8rem;
    line-height: 1.2;
    white-space: nowrap;
}

#product-list-wrap .product-list-toolbar .shopping-view-switch {
    overflow: visible;
}

#product-list-wrap .product-list-filter-toggle .fa-filter {
    margin-right: 0.25rem !important;
}

@media (max-width: 480px) {
    #product-list-wrap .product-list-toolbar {
        gap: 0.22rem;
        margin-bottom: 0.7rem;
    }

    #product-list-wrap .product-list-toolbar .shopping-view-switch__link {
        padding-inline: 0.36rem;
        font-size: 0.78rem;
    }

    #product-list-wrap .product-list-toolbar .shopping-list-group {
        gap: 0.12rem;
        padding-inline: 0.22rem;
    }

    #product-list-wrap .product-list-toolbar .shopping-list-group__label {
        font-size: 0.58rem;
        letter-spacing: 0.02em;
    }

    #product-list-wrap .product-list-toolbar .shopping-list-group__button {
        padding-inline: 0.3rem;
        font-size: 0.74rem;
    }

    #product-list-wrap .product-list-filter-toggle {
        padding: 0.34rem 0.3rem;
        font-size: 0.74rem;
    }
}

@media (max-width: 340px) {
    #product-list-wrap .product-list-toolbar {
        gap: 0.16rem;
    }

    #product-list-wrap .product-list-toolbar .shopping-view-switch__link {
        padding-inline: 0.28rem;
        font-size: 0.74rem;
    }

    #product-list-wrap .product-list-toolbar .shopping-list-group {
        gap: 0.08rem;
        padding-inline: 0.16rem;
    }

    #product-list-wrap .product-list-toolbar .shopping-list-group__label {
        font-size: 0.54rem;
    }

    #product-list-wrap .product-list-toolbar .shopping-list-group__button {
        padding-inline: 0.24rem;
        font-size: 0.7rem;
    }

    #product-list-wrap .product-list-filter-toggle {
        padding-inline: 0.22rem;
        font-size: 0.7rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .shopping-view-switch__indicator,
    .shopping-list-group__switch::before {
        transition: none;
    }
}