.shop-hero{
  background:var(--cream-100); text-align:center; padding:52px 0 36px;
}
.shop-hero .eyebrow{justify-content:center;}
.shop-hero p{max-width:520px; margin:0 auto;}

.shop-layout{display:grid; grid-template-columns:260px 1fr; gap:36px; align-items:start; padding-top:44px;}

.filters{
  background:var(--white); border:1px solid var(--cream-200); border-radius:var(--r-md); padding:22px; position:sticky; top:96px;
}
.filters-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px;}
.filters-head h4{margin:0; font-family:var(--font-body); font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; color:var(--maroon-900);}
.filters-head button{background:none; border:none; color:var(--gold-600); font-size:.78rem; cursor:pointer; text-decoration:underline;}
.filter-group{border-top:1px solid var(--cream-100); padding:16px 0;}
.filter-group:first-of-type{border-top:none; padding-top:0;}
.filter-group summary{font-weight:600; font-size:.9rem; color:var(--ink-900); cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;}
.filter-group summary::-webkit-details-marker{display:none;}
.filter-group summary::after{content:"+"; color:var(--gold-600); font-size:1.1rem;}
.filter-group[open] summary::after{content:"−";}
.filter-opt{display:flex; align-items:center; gap:9px; padding:8px 0; font-size:.88rem; color:var(--ink-700); cursor:pointer;}
.filter-opt input{accent-color:var(--maroon-800); width:15px; height:15px;}
.price-range{margin-top:10px;}
.price-range input[type=range]{width:100%; accent-color:var(--gold-500);}
.price-range-val{display:flex; justify-content:space-between; font-size:.8rem; color:var(--ink-500);}
.custom-kit-card{
  margin-top:20px; background:var(--maroon-900); color:#fff; border-radius:var(--r-md); padding:20px; text-align:center;
}
.custom-kit-card p{color:var(--cream-200); font-size:.84rem;}

.shop-toolbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; gap:16px; flex-wrap:wrap;}
.shop-toolbar select{
  padding:9px 14px; border-radius:8px; border:1px solid var(--cream-200); background:var(--white); font-family:var(--font-body); font-size:.86rem;
}
.result-count{color:var(--ink-500); font-size:.9rem;}

.product-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.product-card{
  background:var(--white); border:1px solid var(--cream-200); border-radius:var(--r-md); overflow:hidden;
  display:flex; flex-direction:column; transition:box-shadow .25s ease, transform .25s ease;
}
.product-card:hover{box-shadow:var(--shadow-md); transform:translateY(-4px);}
.product-card-img{position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--cream-100);}
.product-card-img img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.product-card:hover .product-card-img img{transform:scale(1.07);}
.product-tag{
  position:absolute; top:12px; left:12px; background:var(--gold-500); color:var(--maroon-900);
  font-size:.68rem; font-weight:700; padding:5px 10px; border-radius:999px; text-transform:uppercase; letter-spacing:.04em;
}
.product-wish{
  position:absolute; top:10px; right:10px; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.9);
  display:flex; align-items:center; justify-content:center; border:none; cursor:pointer; color:var(--maroon-800);
}
.product-card-body{padding:16px 16px 18px; display:flex; flex-direction:column; gap:6px; flex:1;}
.product-card-body .cat{font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--green-700); font-weight:600;}
.product-card-body h3{font-size:1rem; margin:0; font-family:var(--font-body); font-weight:600; color:var(--ink-900);}
.product-stars{font-size:.78rem; color:var(--gold-600);}
.product-stars span{color:var(--ink-500); font-weight:400;}
.product-card-foot{display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:8px;}
.price-block strong{font-family:var(--font-display); font-size:1.15rem; color:var(--maroon-800);}
.price-block del{font-size:.8rem; color:var(--ink-300); margin-left:6px;}

.pagination{display:flex; justify-content:center; gap:8px; margin-top:44px;}
.pagination button{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--cream-200); background:#fff; cursor:pointer; font-size:.85rem;
}
.pagination button.active{background:var(--maroon-800); color:#fff; border-color:var(--maroon-800);}

.empty-state{text-align:center; padding:60px 20px; color:var(--ink-500);}

@media (max-width:960px){
  .shop-layout{grid-template-columns:1fr;}
  .filters{position:static;}
  .product-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .product-grid{grid-template-columns:1fr;}
}
