/* Compact luxury catalog: product-first, calm, and easy to scan. */
.catalog-wrap {
  padding: 0 clamp(18px, 3.5vw, 56px) 72px;
}

.catalog-grid,
.products-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.6vw, 22px) !important;
}

.products-grid {
  padding: 20px clamp(18px, 3.5vw, 56px) 72px !important;
}

.page-hero,
.catalog-hero {
  padding-top: clamp(30px, 4.5vw, 62px) !important;
  padding-bottom: 24px !important;
}

.page-hero > p:not(.eyebrow),
.catalog-head > p {
  display: none !important;
}

.page-hero h1,
.catalog-hero .section-title {
  font-size: clamp(42px, 5.2vw, 70px) !important;
}

.category-buttons,
.filter-row {
  margin-top: 20px !important;
  gap: 8px !important;
}

.category-buttons .pill,
.filter-row a {
  padding: 10px 15px !important;
  font-size: 10px !important;
  letter-spacing: .14em !important;
}

.product-card {
  min-width: 0;
  border: 1px solid rgba(71, 47, 79, .13) !important;
  border-radius: 20px !important;
  background: rgba(255, 255, 255, .62) !important;
  box-shadow: 0 12px 34px rgba(62, 40, 73, .075) !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}

.product-card:hover {
  transform: translateY(-3px) !important;
  border-color: rgba(205, 164, 82, .42) !important;
  box-shadow: 0 20px 42px rgba(62, 40, 73, .12) !important;
}

.product-card:focus-visible {
  outline: 2px solid #cda452;
  outline-offset: 4px;
}

.product-card > img,
.product-card > figure,
.product-card > figure img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
}

.product-card > img,
.product-card > figure img {
  display: block;
  object-fit: cover !important;
  object-position: center !important;
  background: #f3eef4 !important;
}

.product-card img[src$="placeholder.svg"] {
  object-fit: contain !important;
  padding: 18%;
  background: linear-gradient(145deg, #f8f5f8, #eee8ef) !important;
}

.product-card-body {
  padding: 15px 16px 18px !important;
}

.product-card .cat,
.product-card .product-type {
  display: block;
  margin: 0 0 7px !important;
  color: #b98d36 !important;
  font-size: 9px !important;
  line-height: 1.2 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase;
}

.product-card h2,
.product-card h3 {
  display: -webkit-box;
  min-height: 2.32em;
  margin: 0 !important;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: clamp(18px, 1.45vw, 24px) !important;
  font-weight: 600 !important;
  line-height: 1.16 !important;
}

/* Catalog cards intentionally carry no promotional explanations. */
.product-card-body > p:not(.cat) {
  display: none !important;
}

.product-card .price,
.product-card-body > b {
  display: block;
  margin-top: 12px;
  color: #6d4e78 !important;
  font-family: Arial, sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
}

@media (max-width: 1100px) {
  .catalog-grid,
  .products-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .catalog-wrap,
  .products-grid {
    padding-inline: 12px !important;
    padding-bottom: 52px !important;
  }

  .catalog-grid,
  .products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .page-hero,
  .catalog-hero {
    padding: 28px 14px 18px !important;
  }

  .page-hero h1,
  .catalog-hero .section-title {
    font-size: clamp(38px, 13vw, 54px) !important;
  }

  .product-card {
    border-radius: 16px !important;
  }

  .product-card-body {
    padding: 11px 11px 14px !important;
  }

  .product-card h2,
  .product-card h3 {
    font-size: clamp(15px, 4.5vw, 18px) !important;
  }

  .product-card .price,
  .product-card-body > b {
    margin-top: 9px;
    font-size: 15px !important;
  }
}

@media (max-width: 380px) {
  .catalog-grid,
  .products-grid {
    gap: 9px !important;
  }

  .product-card-body {
    padding-inline: 9px !important;
  }

  .product-card .cat,
  .product-card .product-type {
    font-size: 8px !important;
    letter-spacing: .15em !important;
  }
}
