/* Modern shop UI for product listing */
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 70px;
}

.product-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
  overflow: hidden;
  position: relative;
  transition: transform .2s ease, box-shadow .2s ease;
}
.product-card:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(0,0,0,.12); }

.product-thumb { width: 100%; height: 120px; object-fit: cover; }
.product-body { padding: 10px; }
.product-title { font-size: 14px; font-weight: 600; color: #2D2A6E; }
.product-desc { font-size: 11px; color: #79819C; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 28px; }
.product-price { font-size: 14px; color: #025709; font-weight: 700; }
.price-del { color: #d91212; font-size: 11px; margin-left: 6px; }

.badge-promo, .badge-esgotado { position: absolute; top: 8px; right: 8px; border-radius: 8px; padding: 4px 8px; font-size: 10px; font-weight: 700; }
.badge-promo { background: #ffbc14; color: #000; }
.badge-esgotado { background: #d91212; color: #fff; right: auto; left: 8px; }

.search-toolbar { position: sticky; top: 60px; z-index: 100; background: #fff; padding: 10px 0; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.search-input { width: 100%; border: 1px solid #E6EBF0; border-radius: 10px; padding: 10px 12px; font-size: 14px; }
.sort-select { border: 1px solid #E6EBF0; border-radius: 10px; padding: 8px; font-size: 13px; }

.card-footer-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }

@media (min-width: 992px) {
  .product-thumb { height: 150px; }
}