.dcpf {
    --dcpf-red: #ce2138;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 24px;
    width: 100%;
    clear: both;
    padding: 16px 20px;
    margin: 0 0 24px;
    background: linear-gradient(110deg, #cf1935, #cb2c3c);
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
}
.dcpf *, .dcpf *::before, .dcpf *::after { box-sizing: border-box; }
.dcpf .dcpf__label { margin: 0 auto 0 0; color: #fff; font-size: 15px; font-weight: 700; white-space: nowrap; }
.dcpf__ranges { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-width: 0; }
.dcpf a.dcpf__range {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 16px;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 8px;
    background: transparent;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .15s, color .15s;
}
.dcpf a.dcpf__range:hover { color: #fff; background: rgba(255,255,255,.14); border-color: #fff; }
.dcpf a.dcpf__range.is-active { color: #b31930; background: #fff; border-color: #fff; }
.dcpf a:focus-visible, .dcpf summary:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.dcpf__sort { position: relative; flex: 0 0 auto; margin: 0; }
.dcpf__sort summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 49px;
    padding: 9px 16px;
    border: 2px solid rgba(255,255,255,.3);
    border-radius: 8px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    white-space: nowrap;
    user-select: none;
}
.dcpf__sort summary::-webkit-details-marker { display: none; }
.dcpf__sort summary::marker { content: ''; }
.dcpf__sort summary svg { display: block; flex-shrink: 0; }
.dcpf__sort summary:hover, .dcpf__sort[open] summary { background: rgba(255,255,255,.1); }
.dcpf__sort .dcpf__arrow { box-sizing: content-box; border-left: 1px solid rgba(255,255,255,.5); padding-left: 8px; }
.dcpf__sort-menu {
    position: absolute;
    z-index: 100;
    top: calc(100% + 8px);
    right: 0;
    min-width: 210px;
    padding: 6px;
    border: 1px solid #eee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,.16);
}
.dcpf .dcpf__sort-menu a { display: block; padding: 10px 12px; border-radius: 5px; color: #252525; font-size: 14px; text-decoration: none; }
.dcpf .dcpf__sort-menu a:hover, .dcpf .dcpf__sort-menu a[aria-current="true"] { background: #fff0f2; color: #b31930; }
.dcpf a.dcpf__clear { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-size: 13px; text-decoration: underline; white-space: nowrap; }
.dcpf__clear span { font-size: 21px; line-height: 1; }
body.tax-product_cat.dcpf-hide-ordering .woocommerce-ordering { display: none !important; }
@media (max-width: 1100px) {
    .dcpf { gap: 14px; }
    .dcpf .dcpf__label { flex: 1 1 auto; }
    .dcpf__sort { order: 1; }
    .dcpf__ranges { order: 2; flex: 0 0 100%; }
    .dcpf__clear { order: 3; }
}
@media (max-width: 549px) {
    .dcpf { padding: 14px; gap: 12px; }
    .dcpf .dcpf__label { font-size: 14px; }
    .dcpf__sort summary { min-height: 42px; padding: 8px 10px; font-size: 13px; }
    .dcpf__ranges { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .dcpf a.dcpf__range { min-height: 42px; padding: 9px 5px; font-size: 12px; white-space: normal; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    .dcpf a.dcpf__range { transition: none; }
}

/* Empty results: fills the existing category product area. */
.dcpf-empty-products {
    box-sizing: border-box;
    width: 100%;
    clear: both;
    padding: 35px 15px;
    margin-bottom: 20px;
    text-align: center;
    font-size: 16px;
    line-height: 1.6;
    color: #666;
}
