/* =========================================================
   Gerbs Home Merch — Shop by Category + Top Sellers
   inc/home-merch.php registers [gerbs_home_merch] and
   enqueues this file on is_front_page() only.

   Prefix: .gmerch-* (unique; no Divi global-scope collision)
   Tokens: inherits from gerbs-tokens.css (declared dep).
           Never redeclare --gerbs-* or --ff-* here.
   Breakpoints: 980px (Divi tablet), 620px (compact mobile)
   ========================================================= */

/* =========================================================
   Outer wrapper
   ========================================================= */
.gmerch {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px 56px;
}

/* =========================================================
   Section (category row or top-sellers row)
   ========================================================= */
.gmerch-section {
  margin-bottom: 48px;
}
.gmerch-section:last-child {
  margin-bottom: 0;
}

/* =========================================================
   Section header — title+sub left, CTA right
   ========================================================= */
.gmerch-sechead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
}

.gmerch-sechead__left {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.gmerch-sechead__title {
  font-family: var(--ff-display);
  font-size: var(--fs-24);
  font-weight: 700;
  color: var(--gerbs-ink);
  margin: 0;
  line-height: 1.2;
}

.gmerch-sechead__sub {
  font-family: var(--ff-body);
  font-size: var(--fs-14);
  color: var(--gerbs-ink-70);
  margin: 0;
  line-height: 1.4;
}

.gmerch-sechead__cta {
  font-family: var(--ff-body);
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--gerbs-blue);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color 0.15s ease;
}
.gmerch-sechead__cta:hover {
  color: var(--gerbs-blue-hover);
}
.gmerch-sechead__cta:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--radius-sm);
}

/* =========================================================
   A: Shop by category row — 6 circles
   ========================================================= */
.gmerch-catrow {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}

/* Each category link */
.gmerch-cat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--gerbs-ink);
  transition: transform 0.2s ease;
}
.gmerch-cat:hover {
  transform: translateY(-3px);
}
.gmerch-cat:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--radius-lg);
}

/* Circular ring container */
.gmerch-cat__ring {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
  background: var(--gerbs-fog);
  border: 2px solid var(--gerbs-hairline);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  min-width: 80px;
}
.gmerch-cat:hover .gmerch-cat__ring {
  border-color: var(--gerbs-yellow);
  box-shadow: 0 0 0 3px var(--gerbs-yellow-tint);
}

/* Image inside ring */
.gmerch-cat__thumb {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Tint-tile fallback (no broken-image icon) */
.gmerch-cat__thumb--tint {
  background: var(--gerbs-yellow-tint);
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

/* Category label */
.gmerch-cat__label {
  font-family: var(--ff-body);
  font-size: var(--fs-12);
  font-weight: 600;
  text-align: center;
  line-height: 1.3;
  color: var(--gerbs-ink);
}

/* =========================================================
   B: Top Sellers grid — up to 6 cards
   ========================================================= */
.gmerch-grid6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}

/* Product card */
.gmerch-pcard {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--gerbs-hairline);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.gmerch-pcard:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

/* Product image link */
.gmerch-pcard__img-link {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--gerbs-fog);
}

.gmerch-pcard__thumb {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s ease;
}
.gmerch-pcard:hover .gmerch-pcard__thumb {
  transform: scale(1.04);
}

/* Placeholder for missing image */
.gmerch-pcard__thumb--placeholder {
  width: 100%;
  height: 100%;
  background: var(--gerbs-yellow-tint);
}

/* Card body */
.gmerch-pcard__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  flex: 1;
}

/* ── Star rating (CSS clip technique, mirrors WooCommerce) ── */
.gmerch-pcard__stars {
  display: inline-block;
  position: relative;
  font-size: 13px;
  line-height: 1;
  color: var(--gerbs-ink-20); /* empty stars */
  width: fit-content;
  margin-bottom: 2px;
}
.gmerch-pcard__stars::before {
  content: "★★★★★";
  letter-spacing: 1px;
}
.gmerch-stars-bar {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  white-space: nowrap;
  color: var(--gerbs-gold);
  pointer-events: none;
}
.gmerch-stars-bar::before {
  content: "★★★★★";
  letter-spacing: 1px;
}

/* Product name — 2-line clamp */
.gmerch-pcard__name {
  font-family: var(--ff-body);
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--gerbs-ink);
  margin: 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* Pack size */
.gmerch-pcard__pack {
  font-family: var(--ff-body);
  font-size: var(--fs-12);
  color: var(--gerbs-ink-70);
  margin: 0;
}

/* Price — wc_price() HTML output */
.gmerch-pcard__price {
  font-family: var(--ff-body);
  font-size: var(--fs-14);
  font-weight: 700;
  color: var(--gerbs-ink);
  margin: 4px 0 auto; /* pushes btn to bottom */
}
.gmerch-pcard__price .woocommerce-Price-amount {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

/* Shop now pill */
.gmerch-pcard__btn {
  display: block;
  margin-top: 10px;
  padding: 8px 12px;
  min-height: 44px; /* T5 ≥44px touch target */
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gerbs-blue);
  color: #fff;
  font-family: var(--ff-body);
  font-size: var(--fs-14);
  font-weight: 600;
  border-radius: var(--radius-pill);
  text-decoration: none;
  text-align: center;
  transition: background 0.15s ease;
}
.gmerch-pcard__btn:hover {
  background: var(--gerbs-blue-hover);
}
.gmerch-pcard__btn:active {
  background: var(--gerbs-blue-press);
}
.gmerch-pcard__btn:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}

/* =========================================================
   Responsive — 980px tablet (Divi threshold)
   Circles: 6 → 3    Cards: 6 → 3
   ========================================================= */
@media (max-width: 980px) {
  .gmerch {
    padding: 0 16px 40px;
  }

  .gmerch-catrow {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }

  .gmerch-grid6 {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }

  .gmerch-sechead {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 20px;
  }
}

/* =========================================================
   Responsive — 620px mobile
   Circles: 3 → 2    Cards: 3 → 2
   ========================================================= */
@media (max-width: 620px) {
  .gmerch-catrow {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .gmerch-grid6 {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .gmerch-sechead__title {
    font-size: var(--fs-20);
  }

  .gmerch-section {
    margin-bottom: 36px;
  }
}
