/* Creative Storefront product card — one canonical component for Home, catalog and recommendations. */
.cps-product-card {
  position:relative;
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--cps-border,#e5e7eb);
  border-radius:var(--cps-card-radius,18px);
  background:var(--cps-surface,#fff);
  box-shadow:none;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease
}
.cps-product-card:hover {
  transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--cps-primary,#d4af37) 42%,var(--cps-border,#e5e7eb));
  box-shadow:0 10px 28px color-mix(in srgb,var(--cps-text,#17171a) 8%,transparent)
}
.cps-product-card__media {
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  background:#fff
}
.cps-product-card__media-link {
  position:relative;
  display:grid;
  width:100%;
  height:100%;
  min-block-size:100%;
  place-items:center;
  text-decoration:none;
  background:#fff
}
.cps-product-card__media img {
  width:100%;
  height:100%;
  object-fit:contain;
  padding:clamp(14px,2vw,24px);
  background:#fff;
  transition:opacity .2s ease,transform .22s ease
}
.cps-product-card:hover .cps-product-card__media img {
  transform:scale(1.025)
}
.cps-product-card__placeholder {
  display:grid;
  place-items:center;
  gap:8px;
  width:100%;
  height:100%;
  min-block-size:180px;
  color:var(--cps-muted-text,#6b7280);
  text-align:center
}
.cps-product-card__placeholder svg {
  inline-size:54px;
  block-size:54px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  opacity:.55
}
.cps-product-card__placeholder small {
  font-size:11px;
  font-weight:800
}
.cps-product-card__badges {
  position:absolute;
  inset-block-start:10px;
  inset-inline-start:10px;
  z-index:2;
  display:flex;
  max-width:calc(100% - 58px);
  gap:6px;
  flex-wrap:wrap
}
.cps-product-card__badge {
  display:inline-flex;
  min-height:25px;
  align-items:center;
  padding:4px 9px;
  border-radius:999px;
  font-size:10px;
  font-weight:850;
  line-height:1
}
.cps-product-card__badge.is-deal {
  background:var(--cps-danger,#dc2626);
  color:#fff
}
.cps-product-card__badge.is-neutral {
  border:1px solid var(--cps-border,#e5e7eb);
  background:rgba(255,255,255,.94);
  color:var(--cps-text,#17171a)
}
.cps-product-card__wish {
  position:absolute;
  inset-block-start:10px;
  inset-inline-end:10px;
  z-index:3;
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border:1px solid var(--cps-border,#e5e7eb);
  border-radius:50%;
  background:color-mix(in srgb,var(--cps-surface,#fff) 92%,transparent);
  color:var(--cps-text,#17171a);
  cursor:pointer;
  backdrop-filter:blur(8px)
}
.cps-product-card__wish:hover {
  color:var(--cps-primary-dark,#9a7416);
  border-color:color-mix(in srgb,var(--cps-primary,#d4af37) 45%,transparent)
}
.cps-product-card__rank {
  position:absolute;
  z-index:4;
  inset-block-start:9px;
  inset-inline-end:9px;
  display:grid;
  inline-size:25px;
  block-size:25px;
  place-items:center;
  border-radius:50%;
  background:var(--cps-primary,#d4af37);
  color:var(--cps-text,#17171a);
  font-size:10px;
  font-weight:900;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--cps-surface,#fff) 88%,transparent)
}
.cps-product-card:has(.cps-product-card__rank) .cps-product-card__wish {
  inset-block-start:42px
}
.cps-product-card__body {
  display:flex;
  flex:1;
  flex-direction:column;
  gap:7px;
  padding:12px
}
.cps-product-card__eyebrow {
  margin:0;
  color:var(--cps-primary-dark,#9a7416);
  font-size:10px;
  font-weight:850;
  letter-spacing:.05em
}
.cps-product-card__title {
  min-height:2.75em;
  overflow:hidden;
  color:var(--cps-text,#17171a);
  font-family:var(--cps-font-active,inherit);
  font-size:12.5px;
  font-weight:750;
  line-height:1.38;
  text-decoration:none;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical
}
.cps-product-card__title:hover {
  color:var(--cps-primary-dark,#9a7416)
}
.cps-product-card__summary {
  display:-webkit-box;
  min-height:2.7em;
  margin:-2px 0 0;
  overflow:hidden;
  color:var(--cps-muted-text,#6b7280);
  font-size:11.5px;
  line-height:1.45;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical
}
.cps-product-card__rating {
  display:flex;
  min-height:18px;
  align-items:center;
  gap:4px;
  color:var(--cps-muted-text,#6b7280);
  font-size:11px
}
.cps-product-card__rating>span:first-child {
  color:var(--cps-primary-dark,#9a7416)
}
.cps-product-card__commercial {
  display:grid;
  gap:5px;
  margin-top:auto;
  padding-top:2px
}
.cps-product-card__price {
  display:flex;
  min-height:24px;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap
}
.cps-product-card__price strong {
  color:var(--cps-text,#17171a);
  font-size:clamp(15px,1.35vw,18px);
  font-weight:900;
  letter-spacing:-.02em
}
.cps-product-card__price del {
  color:var(--cps-muted-text,#6b7280);
  font-size:11px
}
.cps-product-card__price>span {
  color:var(--cps-muted-text,#6b7280);
  font-size:12px;
  font-weight:700
}
.cps-product-card__availability {
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--cps-muted-text,#6b7280);
  font-size:10.5px;
  font-weight:700
}
.cps-product-card__availability i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#9ca3af
}
.cps-product-card__availability.is-available i {
  background:var(--cps-success,#16a34a)
}
.cps-product-card__actions {
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px;
  gap:8px;
  padding-top:3px
}
.cps-product-card__primary,.cps-product-card__quick {
  min-height:42px;
  border-radius:var(--cps-button-radius,12px);
  font:inherit;
  cursor:pointer
}
.cps-product-card__primary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  overflow:hidden;
  border:0;
  background:var(--cps-primary,#d4af37);
  color:#171717;
  font-size:11.5px;
  font-weight:850;
  text-decoration:none
}
.cps-product-card__primary svg {
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  flex:0 0 18px!important
}
.cps-product-card__primary:hover {
  background:var(--cps-primary-light,#f7e7a9);
  filter:brightness(.99);
  color:var(--cps-text,#17171a)
}
.cps-product-card__primary.is-secondary {
  border:1px solid var(--cps-border,#e5e7eb);
  background:transparent;
  color:var(--cps-text,#17171a)
}
.cps-product-card__quick {
  display:grid;
  width:42px;
  place-items:center;
  border:1px solid var(--cps-border,#e5e7eb);
  background:transparent;
  color:var(--cps-text,#17171a)
}
.cps-product-card__quick:hover {
  border-color:var(--cps-primary,#d4af37);
  background:color-mix(in srgb,var(--cps-primary,#d4af37) 9%,transparent)
}
.cps-product-card a:focus-visible,.cps-product-card button:focus-visible {
  outline:3px solid color-mix(in srgb,var(--cps-focus-ring,var(--cps-primary,#d4af37)) 55%,transparent);
  outline-offset:2px
}
.cps-product-card.is-featured {
  grid-column:span 2;
  grid-row:span 2
}
.cps-product-card.is-featured .cps-product-card__media {
  aspect-ratio:16/10
}
.cps-product-card.is-featured .cps-product-card__title {
  min-height:0;
  font-size:clamp(18px,2vw,25px);
  -webkit-line-clamp:2
}
.cps-product-card.is-featured .cps-product-card__summary {
  font-size:13px
}
.cps-product-card.is-featured .cps-product-card__body {
  padding:clamp(16px,2vw,22px)
}
@media(max-width:720px) {
  .cps-product-card:hover {
    transform:none
  }
  .cps-product-card__body {
    gap:7px;
    padding:11px
  }
  .cps-product-card__title {
    min-height:2.65em;
    font-size:12.5px
  }
  .cps-product-card__summary,.cps-product-card__quick {
    display:none
  }
  .cps-product-card__actions {
    grid-template-columns:1fr
  }
  .cps-product-card__primary {
    min-height:39px;
    padding-inline:7px;
    font-size:10.5px
  }
  .cps-product-card__price strong {
    font-size:14px
  }
  .cps-product-card__availability {
    font-size:9.5px
  }
  .cps-product-card.is-featured {
    grid-column:span 2;
    grid-row:auto
  }
  .cps-product-card.is-featured .cps-product-card__media {
    aspect-ratio:16/9
  }
}
@media(prefers-reduced-motion:reduce) {
  .cps-product-card,.cps-product-card__media img {
    transition:none!important
  }
}
