.zg-page-hero { padding: clamp(3rem,7vw,6rem) 0 2.5rem; background: linear-gradient(180deg, var(--zg-cream-100), transparent); }
.zg-page-hero__grid { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2rem; }
.zg-page-hero h1 { max-width: 760px; margin-bottom: .8rem; font-size: clamp(2.6rem,6vw,5rem); }
.zg-page-hero p { max-width: 45rem; margin-bottom: 0; color: var(--zg-muted); }
.zg-catalog-toolbar { position: sticky; top: calc(var(--zg-header-h) + 34px); z-index: 20; padding-block: .75rem; background: rgba(255,253,247,.9); backdrop-filter: blur(16px); }
.zg-toolbar-inner { display: grid; grid-template-columns: minmax(200px,1fr) auto auto; gap: .75rem; align-items: center; }
.zg-input, .zg-select { width: 100%; min-height: 46px; padding: .7rem .9rem; border: 1px solid var(--zg-border); border-radius: 14px; background: #fff; color: var(--zg-ink); }
.zg-filter-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0; }
.zg-chip { min-height: 38px; padding: .55rem .85rem; border: 1px solid var(--zg-border); border-radius: var(--zg-radius-pill); background: rgba(255,255,255,.75); color: var(--zg-forest-900); font-size: .78rem; font-weight: 800; cursor: pointer; }
.zg-chip[aria-pressed='true'] { border-color: var(--zg-forest-800); background: var(--zg-forest-800); color: #fff; }
.zg-results-meta { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; color: var(--zg-muted); font-size: .82rem; }
.zg-catalog { padding-bottom: 7rem; }
@media (max-width: 760px) {
  .zg-page-hero__grid { grid-template-columns: 1fr; }
  .zg-toolbar-inner { grid-template-columns: 1fr 1fr; }
  .zg-toolbar-inner .zg-search { grid-column: 1 / -1; }
  .zg-catalog-toolbar { top: var(--zg-header-h); }
}

/* Phase 17: equal-width catalogue geometry with centred incomplete rows. */
.zg-catalog .zg-product-grid {
  grid-auto-rows: 1fr;
}
.zg-catalog .zg-product-grid > * { min-width: 0; }

@media (min-width: 1120px) {
  .zg-catalog .zg-product-grid { grid-template-columns: repeat(24,minmax(0,1fr)); }
  .zg-catalog .zg-product-grid > * { grid-column: span 6; }
  .zg-catalog .zg-product-grid[data-balance-4="3"] > :nth-last-child(3) { grid-column: 4 / span 6; }
  .zg-catalog .zg-product-grid[data-balance-4="3"] > :nth-last-child(2) { grid-column: 10 / span 6; }
  .zg-catalog .zg-product-grid[data-balance-4="3"] > :last-child { grid-column: 16 / span 6; }
  .zg-catalog .zg-product-grid[data-balance-4="2"] > :nth-last-child(2) { grid-column: 7 / span 6; }
  .zg-catalog .zg-product-grid[data-balance-4="2"] > :last-child { grid-column: 13 / span 6; }
  .zg-catalog .zg-product-grid[data-balance-4="1"] > :last-child { grid-column: 10 / span 6; }
}

@media (min-width: 820px) and (max-width: 1119px) {
  .zg-catalog .zg-product-grid { grid-template-columns: repeat(18,minmax(0,1fr)); }
  .zg-catalog .zg-product-grid > * { grid-column: span 6; }
  .zg-catalog .zg-product-grid[data-balance-3="2"] > :nth-last-child(2) { grid-column: 4 / span 6; }
  .zg-catalog .zg-product-grid[data-balance-3="2"] > :last-child { grid-column: 10 / span 6; }
  .zg-catalog .zg-product-grid[data-balance-3="1"] > :last-child { grid-column: 7 / span 6; }
}

@media (min-width: 700px) and (max-width: 819px) {
  .zg-catalog .zg-product-grid { grid-template-columns: repeat(12,minmax(0,1fr)); }
  .zg-catalog .zg-product-grid > * { grid-column: span 6; }
  .zg-catalog .zg-product-grid[data-balance-2="1"] > :last-child { grid-column: 4 / span 6; }
}

@media (max-width: 699px) {
  .zg-page-hero { padding-top: 2.5rem; }
  .zg-toolbar-inner { grid-template-columns: 1fr; }
  .zg-toolbar-inner .zg-search { grid-column: auto; }
  .zg-catalog .zg-product-grid { grid-template-columns: minmax(0,1fr); }
  .zg-catalog .zg-product-grid > * { grid-column: 1; }
  .zg-filter-chips { flex-wrap: nowrap; margin-inline: -.625rem; padding-inline: .625rem; overflow-x: auto; scrollbar-width: none; }
  .zg-filter-chips::-webkit-scrollbar { display: none; }
  .zg-chip { flex: 0 0 auto; }
}

@media (min-width: 1600px) {
  .zg-catalog .zg-product-grid { gap: 1.55rem; }
}


/* Phase 18: robust centred flex grid; removes fragile column-span balancing. */
.zg-catalog .zg-product-grid {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 1.35rem;
}
.zg-catalog .zg-product-grid > * {
  grid-column: auto !important;
  width: auto;
  max-width: none;
}
.zg-catalog .zg-product-card {
  flex: 0 1 calc(25% - 1.02rem);
}

@media (max-width:1279px) {
  .zg-catalog .zg-product-grid { gap: 1.2rem; }
  .zg-catalog .zg-product-card { flex-basis: calc(33.333% - .8rem); }
}
@media (max-width:899px) {
  .zg-catalog .zg-product-grid { gap: 1rem; }
  .zg-catalog .zg-product-card { flex-basis: calc(50% - .5rem); }
}
@media (max-width:639px) {
  .zg-page-hero { padding: 2.25rem 0 1.35rem; }
  .zg-page-hero h1 { font-size: clamp(2.35rem,12vw,3.5rem); }
  .zg-catalog-toolbar {
    position: relative;
    top: auto;
    padding-block: .8rem 1rem;
    background: rgba(255,253,247,.97);
    backdrop-filter: none;
  }
  .zg-toolbar-inner { gap: .7rem; }
  .zg-input, .zg-select { min-height: 52px; border-radius: 17px; }
  .zg-filter-chips { margin-top: .9rem; margin-bottom: 1.15rem; }
  .zg-results-meta { margin-bottom: .9rem; }
  .zg-catalog .zg-product-grid { display: flex !important; gap: 1.15rem; }
  .zg-catalog .zg-product-card {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }
}
@media (min-width:1680px) {
  .zg-catalog .zg-product-grid { gap: 1.55rem; }
  .zg-catalog .zg-product-card { flex-basis: calc(25% - 1.17rem); }
}
