/* ROXI / PRODUCTS — estilos específicos */
.tabs {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:0 0 25px
}
.tab {
  border:1px solid var(--swatch-f0e3e8);
  color:var(--swatch-73606c);
  border-radius:999px;
  background:var(--color-white);
  padding:10px 17px;
  font-size:var(--font-size-11);
  font-weight:850
}
.tab:hover {
  border-color:var(--swatch-f3aec7);
  color:var(--pink)
}
.tab.active {
  color:var(--color-white);
  background:var(--pink);
  border-color:var(--pink)
}
.product-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px
}
.product {
  min-width:0;
  border:1px solid var(--swatch-f4e7ed);
  border-radius:19px;
  overflow:hidden;
  background:var(--color-white);
  transition:transform .2s,box-shadow .2s
}
.product:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow)
}
.prod-media {
  height:260px;
  position:relative;
  overflow:hidden;
  background:var(--swatch-fff0f4)
}
.prod-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s
}
.product:hover .prod-media img {
  transform:scale(1.045)
}
.badge {
  position:absolute;
  top:13px;
  left:12px;
  background:white;
  color:var(--pink);
  font-size:var(--font-size-9);
  font-weight:900;
  border-radius:999px;
  padding:7px 10px;
  box-shadow:0 4px 14px var(--swatch-9e668515)
}
.heart {
  position:absolute;
  top:11px;
  right:11px;
  border:0;
  background:var(--color-white);
  border-radius:50%;
  width:33px;
  height:33px;
  display:grid;
  place-items:center;
  color:var(--swatch-b48b9c);
  box-shadow:0 4px 12px var(--swatch-aa769529)
}
.heart.active {
  color:var(--pink);
  background:var(--color-surface-pink)
}
.heart.active svg {
  fill:var(--pink)
}
.prod-info {
  padding:18px 16px 16px
}
.prod-type {
  font-size:var(--font-size-9);
  color:var(--swatch-b18a9b);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-weight:900
}
.prod-name {
  font:800 16px var(--font-heading);
  letter-spacing:-.25px;
  line-height:1.3;
  min-height:40px;
  margin:7px 0 6px;
  cursor:pointer
}
.prod-name:hover {
  color:var(--pink)
}
.prod-desc {
  font-size:var(--font-size-11);
  color:var(--muted);
  line-height:1.5;
  min-height:32px;
  margin:0 0 15px
}
.prod-buy {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px
}
.price {
  font:900 19px var(--font-heading);
  color:var(--pink);
  white-space:nowrap
}
.price small {
  font:600 9px var(--font-body);
  color:var(--swatch-aa99a4);
  display:block;
  margin-top:1px
}
.add {
  border:0;
  background:var(--pink-soft);
  color:var(--pink);
  font-size:var(--font-size-12);
  font-weight:900;
  padding:10px 12px;
  border-radius:11px;
  white-space:nowrap
}
.add:hover {
  color:white;
  background:var(--pink)
}
.no-results {
  background:var(--swatch-fff6f9);
  border:1px dashed var(--swatch-e9bdce);
  color:var(--swatch-8b6d7b);
  padding:30px;
  border-radius:16px;
  text-align:center;
  font-size:var(--font-size-13)
}
