/* ── allproducts.html ────────────────────────────────────── */
#product-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .8rem; }

.product-card {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  padding: .6rem;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: transform .2s, border-color .2s, box-shadow .2s;
  position: relative;
  overflow: hidden;
}

.product-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,212,255,.05), transparent);
  opacity: 0;
  transition: opacity .3s;
}
.product-card:hover::before { opacity: 1; }
.product-card:hover { transform: translateY(-4px); }

.product-card--coming-soon { opacity: .6; cursor: default; pointer-events: none; }
.product-card--coming-soon:hover { transform: none; }

.product-card__thumb { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.product-card__img   { width: 96px; height: 96px; object-fit: contain; }
.product-card__icon  { font-size: 4rem; line-height: 1; }

/* Mobile: enlarge the product-group image to fill the full card width. */
@media (max-width: 768px) {
  .product-card__thumb { width: 100%; display: flex; }
  .product-card__img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: var(--radius);
  }
}
.product-card__flags { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: center; gap: .25rem; }
.product-card__flag  { font-size: .85rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: rgba(0,0,0,.55); backdrop-filter: blur(4px); box-shadow: 0 1px 4px rgba(0,0,0,.4); animation: flag-bounce 1.8s ease-in-out infinite; transition: opacity .2s ease; }

@keyframes flag-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  40%       { transform: translateY(-4px) scale(1.2); }
  60%       { transform: translateY(-2px) scale(1.1); }
}
/* Caption + price share one line under the image */
.product-card__meta { display: flex; align-items: baseline; justify-content: space-between; gap: .4rem; }
.product-card__title { font-family: var(--font-display); font-size: .9rem; color: var(--clr-primary); min-width: 0; }
.product-card__price { font-size: .8rem; color: var(--clr-text-muted); margin: 0; flex-shrink: 0; white-space: nowrap; }
.product-card__badge { align-self: flex-start; font-size: .75rem; }

.site-footer {
  text-align: center;
  padding: 2rem;
  color: var(--clr-text-muted);
  font-size: .85rem;
  border-top: 1px solid var(--clr-border);
}

/* Scan-line animation overlay */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    0deg,
    rgba(0,0,0,0) 0px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,.03) 2px,
    rgba(0,0,0,.03) 4px
  );
  z-index: 9998;
}
