/* =========================================================
   PRODUCT LISTING PAGE
   ========================================================= */

.plp-head{
  padding-block:2.25rem 1.75rem;
  background:var(--cream-100);
  border-bottom:1px solid var(--stone-200);
}
.plp-head .eyebrow{color:var(--gold-600);}
.plp-head h1{
  font-family:var(--font-display);
  font-size:clamp(1.9rem,3.4vw,2.6rem);
  color:var(--navy-900);
  margin-top:.4rem;
}
.plp-head p{color:var(--ink-500);margin-top:.5rem;max-width:56ch;}

.plp-layout{
  display:grid;
  grid-template-columns:264px 1fr;
  gap:2.5rem;
  padding-block:2.5rem 4rem;
  align-items:flex-start;
}

/* ---- Filters ---- */
.filters{
  border:1px solid var(--stone-200);
  border-radius:var(--radius-lg);
  background:var(--white);
  position:sticky;
  top:calc(var(--gutter) + 6.5rem);
}
.filters-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem 1.25rem;
  border-bottom:1px solid var(--stone-200);
}
.filters-head h3{font-family:var(--font-display);font-size:1.05rem;color:var(--navy-900);}
.filters-head button{background:none;border:none;font-size:.78rem;color:var(--ink-500);font-weight:700;}
.filters-head button:hover{color:var(--wine-700);}

.filter-group{border-bottom:1px solid var(--stone-200);}
.filter-group summary{
  list-style:none;
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.25rem;
  font-weight:700;
  font-size:.88rem;
  color:var(--navy-900);
  cursor:pointer;
}
.filter-group summary::-webkit-details-marker{display:none;}
.filter-group summary svg{transition:transform .18s var(--ease);flex:none;color:var(--ink-500);}
.filter-group[open] summary svg{transform:rotate(180deg);}
.filter-body{padding:0 1.25rem 1.1rem;display:flex;flex-direction:column;gap:.7rem;}
.check-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.85rem;color:var(--ink-700);}
.check-row label{display:flex;align-items:center;gap:.6rem;}
.check-row input[type="checkbox"]{
  width:1.05rem;height:1.05rem;accent-color:var(--navy-900);
}
.check-row .count{color:var(--ink-300);font-size:.76rem;}

.price-range{display:flex;flex-direction:column;gap:.6rem;}
.price-range input[type="range"]{width:100%;accent-color:var(--gold-500);}
.price-values{display:flex;justify-content:space-between;font-size:.82rem;color:var(--ink-700);font-weight:700;}

.swatch-row{display:flex;flex-wrap:wrap;gap:.5rem;}
.swatch{
  border:1px solid var(--stone-200);
  border-radius:999px;
  padding:.4rem .85rem;
  font-size:.78rem;
  color:var(--ink-700);
  background:var(--white);
}
.swatch:hover{border-color:var(--gold-500);}
.swatch.is-active{background:var(--navy-900);color:var(--cream-50);border-color:var(--navy-900);}

.filter-apply{padding:1.1rem 1.25rem;}

.filters-mobile-close{display:none;}

/* ---- Toolbar ---- */
.plp-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
  margin-bottom:1.5rem;
}
.plp-toolbar .result-count{font-size:.86rem;color:var(--ink-500);}
.plp-toolbar .result-count strong{color:var(--navy-900);}
.toolbar-controls{display:flex;align-items:center;gap:.9rem;}
.select-wrap{position:relative;}
.select-wrap select{
  appearance:none;
  padding:.6rem 2.2rem .6rem .9rem;
  border:1px solid var(--stone-200);
  border-radius:var(--radius-sm);
  background:var(--white);
  font-size:.84rem;
  color:var(--navy-900);
  font-weight:600;
}
.select-wrap svg{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-500);}
.view-toggle{display:flex;border:1px solid var(--stone-200);border-radius:var(--radius-sm);overflow:hidden;}
.view-toggle button{
  padding:.55rem .7rem;background:var(--white);border:none;color:var(--ink-500);
}
.view-toggle button.is-active{background:var(--navy-900);color:var(--gold-300);}
.filters-open-btn{
  display:none;
  align-items:center;gap:.5rem;
  border:1px solid var(--stone-200);
  border-radius:var(--radius-sm);
  padding:.6rem .95rem;
  font-size:.84rem;font-weight:700;
  background:var(--white);
  color:var(--navy-900);
}

.active-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.25rem;}
.active-filters .chip{
  display:flex;align-items:center;gap:.45rem;
  background:var(--cream-100);
  border:1px solid var(--stone-200);
  border-radius:999px;
  padding:.35rem .5rem .35rem .85rem;
  font-size:.78rem;color:var(--navy-900);
}
.active-filters .chip button{background:none;border:none;color:var(--ink-500);display:flex;}
.active-filters .chip button:hover{color:var(--wine-700);}

/* ---- List view variant ---- */
.product-grid.is-list{grid-template-columns:1fr;}
.product-grid.is-list .product-card{
  flex-direction:row;
  align-items:stretch;
}
.product-grid.is-list .product-media{
  width:180px;flex:none;aspect-ratio:auto;
  border-radius:var(--radius-md) 0 0 var(--radius-md);
}
.product-grid.is-list .product-body{
  flex-direction:row;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
}
.product-grid.is-list .product-name{min-height:0;-webkit-line-clamp:1;flex:1 1 220px;}
.product-grid.is-list .product-price{margin-top:0;}
.product-grid.is-list .product-info{display:flex;flex-direction:column;gap:.4rem;flex:2;min-width:180px;}
.product-grid.is-list .btn{margin-top:0;}

/* ---- Pagination ---- */
.pagination{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  margin-top:2.75rem;
}
.pagination button, .pagination span{
  min-width:2.4rem;height:2.4rem;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--stone-200);
  border-radius:var(--radius-sm);
  font-size:.85rem;font-weight:700;
  color:var(--navy-900);
  background:var(--white);
}
.pagination button:hover{border-color:var(--gold-500);}
.pagination button.is-active{background:var(--navy-900);color:var(--gold-300);border-color:var(--navy-900);}
.pagination .dots{border:none;background:none;color:var(--ink-300);}

@media (max-width:1080px){
  .plp-layout{grid-template-columns:230px 1fr;gap:1.75rem;}
}
@media (max-width:900px){
  .plp-layout{grid-template-columns:1fr;}
  .filters{
    position:fixed; inset:0 0 0 auto;
    width:min(340px,88vw);
    top:0; height:100vh;
    border-radius:0;
    transform:translateX(100%);
    transition:transform .3s var(--ease);
    z-index:150;
    overflow-y:auto;
  }
  .filters.is-open{transform:translateX(0);}
  .filters-mobile-close{display:flex;background:none;border:none;color:var(--navy-900);}
  .filters-open-btn{display:inline-flex;}
}
@media (max-width:640px){
  .toolbar-controls{width:100%;justify-content:space-between;}
}
