/* Composition only: shared button, select, pill, input and surface recipes. */
.cd-catalog__toolbar { justify-content: flex-end; gap: var(--cd-space-3); }
.woocommerce .cd-catalog .woocommerce-result-count { margin-inline-end: auto; }
.cd-catalog__toolbar > [data-cd-filter-open], .cd-catalog__toolbar :is(.orderby, .cd-select__trigger) { height: var(--cd-control-size); min-height: var(--cd-control-size); padding-block: var(--cd-space-2); padding-inline: var(--cd-space-3); font-size: var(--cd-font-sm); }
.cd-catalog__toolbar .woocommerce-ordering { min-width: 0; max-width: 100%; }
.cd-catalog-filter-panel { position: static; color: var(--cd-color-text); width: 100%; box-sizing: border-box; padding: 0; }
.cd-catalog-filter-panel__heading { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--cd-space-3); padding: var(--cd-space-2) var(--cd-space-3); }
.cd-catalog-filter-panel__heading h2 { margin: 0; font-size: var(--cd-font-md); }
.cd-catalog-filter-panel__heading button { padding: var(--cd-space-2); width: var(--cd-control-size); height: var(--cd-control-size); flex-shrink: 0; }
.cd-catalog-filter-panel form { display: flex; flex-direction: column; min-height: 0; margin: 0; }
.cd-catalog-filter-panel__body { overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding-inline: var(--cd-space-3); }
.cd-filter-group { border-top: 1px solid var(--cd-border-soft); }
.cd-filter-group summary { display: flex; align-items: center; gap: var(--cd-space-2); padding-block: var(--cd-space-2); cursor: pointer; list-style: none; font-weight: var(--cd-weight-semibold); font-size: var(--cd-font-sm); }
.cd-filter-group summary::-webkit-details-marker { display: none; }
.cd-filter-group summary:focus-visible { outline: var(--cd-focus-width) solid var(--cd-focus-color); outline-offset: calc(-1 * var(--cd-focus-width)); }
.cd-catalog-filter-panel fieldset { border: 0; padding: 0 0 var(--cd-space-2); margin: 0; min-width: 0; }
.cd-filter-options { display: flex; flex-wrap: wrap; gap: var(--cd-space-1); padding: var(--cd-space-1); }
.cd-filter-options .cd-pill { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.cd-catalog-filter-panel__range { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cd-space-3); font-size: var(--cd-font-sm); }
.cd-catalog-filter-panel__range input { width: 100%; min-width: 0; margin-top: var(--cd-space-1); }
.cd-catalog-filter-panel__actions { flex-shrink: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--cd-space-2); padding: var(--cd-space-2) var(--cd-space-3); border-top: 1px solid var(--cd-border-soft); }
.cd-catalog-filter-panel__actions .cd-button { font-size: var(--cd-font-sm); padding-inline: var(--cd-space-3); }
.cd-filters-enhanced .cd-catalog-filter-panel:not([open]) { display: none; }
.cd-filters-enhanced .cd-catalog-filter-panel[open] { display: flex; flex-direction: column; position: fixed; inset: var(--cd-filter-top, 1rem) auto auto var(--cd-filter-left, 1rem); margin: 0; width: min(29rem, calc(100vw - 2rem)); max-width: 100%; max-height: min(70dvh, var(--cd-filter-height, 70dvh)); overflow: hidden; transform-origin: var(--cd-filter-origin, top right); animation: cd-filter-enter 180ms ease both; }
.cd-catalog-filter-panel::backdrop { background: rgb(0 0 0 / 6%); }
.cd-filters-enhanced .cd-catalog-filter-panel.is-closing { animation: cd-filter-exit 180ms ease both; }
@keyframes cd-filter-enter { from { opacity: 0; transform: translateY(-6px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes cd-filter-exit { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-6px) scale(.98); } }
.cd-filters-open { overflow: hidden; }
[data-cd-catalog-results][aria-busy="true"] { opacity: .65; }
.cd-catalog-filter-chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cd-space-2); margin-block: var(--cd-space-4); }
.cd-catalog-filter-chips .cd-pill { min-width: 0; overflow-wrap: anywhere; gap: var(--cd-space-2); }
@media (max-width: 40rem) {
 .cd-catalog__toolbar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--cd-space-2); }
 .cd-catalog__toolbar .woocommerce-result-count { grid-column: 1 / -1; }
 .cd-catalog__toolbar > [data-cd-filter-open], .cd-catalog__toolbar :is(.orderby, .cd-select__trigger) { width: 100%; min-width: 0; padding-inline: var(--cd-space-2); }
 .cd-catalog__toolbar:not(:has([data-cd-filter-open])) .woocommerce-ordering { grid-column: 1 / -1; }
 .cd-filters-enhanced .cd-catalog-filter-panel[open] { inset: 0; width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; }
 .cd-catalog-filter-panel form { flex: 1; }
 .cd-catalog-filter-panel__body { flex: 1; }
 .cd-catalog-filter-panel__actions { padding-bottom: max(var(--cd-space-2), env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
 .cd-filters-enhanced .cd-catalog-filter-panel[open], .cd-filters-enhanced .cd-catalog-filter-panel.is-closing { animation: none; }
}

.cd-catalog { padding-block: var(--cd-space-3); }
.cd-catalog .woocommerce-breadcrumb { margin-bottom: var(--cd-space-2); font-size: var(--cd-font-sm); }
.cd-catalog .woocommerce-products-header { margin-bottom: var(--cd-space-2); }
.cd-catalog--archive .woocommerce-products-header { margin-bottom: 0; }
.cd-catalog__categories { margin-bottom: var(--cd-space-2); }
.cd-catalog__toolbar { margin-bottom: var(--cd-space-3); }
.cd-catalog .woocommerce-result-count { font-size: var(--cd-font-sm); line-height: var(--cd-line-height-heading); }
.cd-catalog-filter-panel__actions .cd-button { padding-block: var(--cd-space-2); }
.cd-catalog__toolbar .cd-select__trigger { width: 100%; text-align: left; justify-content: space-between; }
.cd-catalog__toolbar .cd-select__trigger span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 40rem) {
 .cd-catalog__toolbar { row-gap: var(--cd-space-1); }
 .cd-catalog-filter-panel__heading button { min-height: calc(var(--cd-space-8) + var(--cd-space-2)); height: calc(var(--cd-space-8) + var(--cd-space-2)); }
}

.cd-filter-group summary .cd-nav-chevron { margin-left: auto; }
.cd-filter-group[open] > summary .cd-nav-chevron, .cd-select__trigger[aria-expanded="true"] .cd-nav-chevron { transform: rotate(180deg); }
