.merch-catalog {
  display: grid;
  gap: 18px;
  margin: 28px 0 36px;
  scroll-margin-top: 110px;
}

.merch-catalog-heading,
.merch-catalog-product-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
}

.merch-catalog-heading h3,
.merch-catalog-card h4 {
  font-size: clamp(1.35rem, 2.7vw, 2rem);
  line-height: 1.2;
  margin: 6px 0 8px;
}

.merch-catalog-heading p,
.merch-catalog-card p {
  color: var(--muted);
  margin: 8px 0 14px;
}

.merch-catalog-heading p {
  max-width: 58ch;
}

.merch-catalog-card {
  min-width: 0;
  padding: clamp(14px, 2.5vw, 24px);
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel);
  scroll-margin-top: 110px;
}

.merch-catalog-card .merch-price {
  color: var(--gold);
  font-weight: 800;
  margin: 6px 0 12px;
}

.merch-catalog-colors,
.merch-catalog-accessories,
.merch-catalog-accessory-photos,
.merch-catalog-slogans,
.merch-catalog-art {
  display: grid;
  gap: 12px;
}

.merch-catalog-colors {
  grid-template-columns: repeat(auto-fit, minmax(136px, 1fr));
  margin: 10px 0 18px;
}

.merch-catalog-accessories,
.merch-catalog-slogans,
.merch-catalog-art {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.merch-catalog-accessory-photos {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.merch-catalog-colors figure,
.merch-catalog-art figure {
  margin: 0;
  min-width: 0;
}

.merch-catalog-colors img,
.merch-catalog-accessory-photos img,
.merch-catalog-keychain-photo img,
.merch-catalog-art img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 9px;
  background: #f8f4ed;
}

.merch-catalog-accessory-photos img:last-child {
  object-fit: cover;
  object-position: 55% center;
}

.merch-catalog-keychain-photo img {
  width: min(100%, 235px);
}

.merch-catalog figcaption {
  padding: 6px 0;
  color: var(--silver);
  font-size: .88rem;
  font-weight: 700;
}

.merch-catalog-price-list {
  margin: 0;
}

.merch-catalog-price-list > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
}

.merch-catalog-price-list dd {
  margin: 0;
  color: var(--gold);
  font-weight: 800;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .merch-catalog-accessories,
  .merch-catalog-slogans {
    grid-template-columns: 1fr;
  }
}
