/* Shop archive, search results and filters: loaded only on product listing pages. */
/* ---------- Discover (shop archive) ---------- */
.zb-ui .zb-discover {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.zb-ui .zb-discover .zb-page-head {
  margin-bottom: 0;
}
.zb-ui .zb-need-chips {
  display: flex;
  gap: 8px;
  margin-inline: -20px;
  overflow-x: auto;
  padding: 2px 20px 6px;
  scrollbar-width: none;
}
.zb-ui .zb-need-chip {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--zb-color-text);
  display: inline-flex;
  flex: none;
  font-size: 0.85rem;
  font-weight: 700;
  gap: 8px;
  padding: 8px 14px 8px 10px;
  text-decoration: none;
}
.zb-ui .zb-need-chip__icon .zb-icon {
  height: 20px;
  width: 20px;
}
.zb-ui .zb-need-chip--lilac {
  background: #f1eafc;
  color: #4b2e8a;
}
.zb-ui .zb-need-chip--mint {
  background: #e4f4e7;
  color: #24603a;
}
.zb-ui .zb-need-chip--yellow {
  background: #fdf3d6;
  color: #73500a;
}
.zb-ui .zb-need-chip--blue {
  background: #e4eefc;
  color: #2a5596;
}
.zb-ui .zb-need-chip--pink {
  background: #fbe6ea;
  color: #8f2639;
}
.zb-ui .zb-need-chip.is-active {
  border-color: currentColor;
}
.zb-ui .zb-filters {
  background: var(--zb-color-glass);
  border: 1px solid var(--zb-color-glass-border);
  border-radius: 22px;
}
.zb-ui .zb-filters summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 800;
  justify-content: space-between;
  list-style: none;
  padding: 14px 16px;
}
.zb-ui .zb-filters summary::-webkit-details-marker {
  display: none;
}
.zb-ui .zb-filters summary > span {
  align-items: center;
  display: inline-flex;
  gap: 8px;
}
.zb-ui .zb-filters[open] summary > .zb-icon {
  transform: rotate(180deg);
}
.zb-ui .zb-filters__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 16px 16px;
}
.zb-ui .zb-filters__group h2 {
  font-size: 0.85rem;
  margin: 0 0 8px;
}
.zb-ui .zb-filters__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.zb-ui .zb-shop-tools {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: space-between;
}
.zb-ui .zb-shop-tools .woocommerce-result-count {
  color: var(--zb-color-text-secondary);
  float: none;
  font-size: 0.85rem;
  margin: 0;
}
.zb-ui .zb-shop-tools .woocommerce-ordering {
  float: none;
  margin: 0;
}
.zb-ui .zb-shop-tools .woocommerce-ordering select {
  background: var(--zb-color-glass);
  border: 1px solid var(--zb-color-glass-border);
  border-radius: 999px;
  font: 600 0.85rem var(--zb-font-family);
  min-height: 42px;
  padding: 0 14px;
}
.zb-ui .zb-discover .zb-product-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.zb-ui .zb-discover .woocommerce-pagination ul {
  border: 0;
  display: flex;
  gap: 6px;
  justify-content: center;
}
.zb-ui .zb-discover .woocommerce-pagination ul li {
  border: 0;
}
@media (min-width: 768px) {
  .zb-ui .zb-discover .zb-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .zb-ui .zb-need-chips {
    flex-wrap: wrap;
    margin-inline: 0;
    padding-inline: 0;
  }
}
@media (min-width: 1024px) {
  .zb-ui .zb-discover .zb-product-grid {
    gap: 20px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .zb-ui .zb-discover .zb-home-search {
    display: flex;
    max-width: 640px;
  }
}

/* Shop Discovery & Filters */
.zb-ui .zb-discover-bar {
  margin-bottom: var(--zb-space-4);
}
.zb-ui .zb-filter-status-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--zb-space-3);
  margin-bottom: var(--zb-space-4);
  flex-wrap: wrap;
}
.zb-ui .zb-filter-count {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--zb-color-text-secondary);
}
.zb-ui .zb-active-filters {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.zb-ui .zb-active-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--zb-color-peach-soft);
  color: var(--zb-color-text);
  border: 1px solid var(--zb-color-primary-action);
  padding: 3px 10px;
  border-radius: var(--zb-radius-pill);
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
}
.zb-ui .zb-active-filter-chip:hover {
  background: #fbd6bd;
}
.zb-ui .zb-active-filter-chip__remove {
  display: inline-flex;
  width: 12px;
  height: 12px;
}
.zb-ui .zb-clear-all-filters {
  font-size: 0.78rem;
  color: #8a3e05;
  text-decoration: underline;
  font-weight: 600;
}
.zb-ui .zb-filters__quick-toggles .zb-topic {
  font-weight: 600;
}

/* Shop filters: price inputs, count badge, phone drawer, desktop panel. */
.zb-ui .zb-filters__count {
  background: var(--zb-color-primary-action);
  border-radius: 999px;
  color: var(--zb-color-on-primary-action);
  font-size: 0.72rem;
  min-width: 20px;
  padding: 0 6px;
  text-align: center;
}
.zb-ui .zb-filters__price-row {
  align-items: end;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
}
.zb-ui .zb-filters__price-row label {
  display: flex;
  flex-direction: column;
  font-size: 0.78rem;
  font-weight: 700;
  gap: 4px;
}
.zb-ui .zb-filters__price-row input {
  background: var(--zb-color-white);
  border: 1px solid var(--zb-color-border);
  border-radius: 14px;
  font: 600 0.9rem var(--zb-font-family);
  min-height: 42px;
  padding: 0 10px;
  width: 100%;
}
.zb-ui .zb-filters__price-row input:focus {
  border-color: #f4a466;
  box-shadow: var(--zb-shadow-focus);
  outline: 0;
}
@media (max-width: 1023px) {
  /* Phone drawer: one fixed bottom sheet (header + scrolling body) over a dimmed page. */
  .zb-ui .zb-filters[open] {
    background: var(--zb-color-surface);
    border: 0;
    border-radius: 24px 24px 0 0;
    bottom: 0;
    box-shadow: 0 0 0 100vmax rgba(31, 31, 31, 0.32);
    display: flex;
    flex-direction: column;
    inset-inline: 0;
    max-height: min(80vh, 680px);
    position: fixed;
    z-index: 80;
  }
  .zb-ui .zb-filters[open] > summary {
    border-bottom: 1px solid var(--zb-color-border);
    flex: none;
  }
  .zb-ui .zb-filters[open] > .zb-filters__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: calc(20px + var(--zb-safe-bottom));
    padding-top: 12px;
  }
  html.zb-drawer-open,
  html.zb-drawer-open body {
    overflow: hidden;
  }
  html.zb-drawer-open .zb-bottom-nav {
    visibility: hidden;
  }
}
@media (min-width: 1024px) {
  .zb-ui .zb-discover-bar .zb-round-button {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .zb-ui .zb-filters[open] > .zb-filters__body {
    scroll-behavior: auto;
  }
}
