.catalog-card{
  --catalog-card-radius:18px;
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--catalog-card-radius);
  transition:transform .24s cubic-bezier(.22,1,.36,1),border-color .2s,box-shadow .24s;
}
.catalog-card:hover{
  transform:translateY(-3px);
  border-color:var(--border-2);
  box-shadow:0 24px 48px -34px oklch(20% .02 50 / .58);
}
.catalog-card .catalog-card__media{
  position:relative;
  display:grid;
  place-items:center;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--cream);
}
.catalog-card .catalog-card__media img{
  width:100%;
  height:100%;
  object-fit:contain;
  mix-blend-mode:multiply;
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.catalog-card .catalog-card__media--cover{background:var(--espresso)}
.catalog-card .catalog-card__media--cover img{object-fit:cover;mix-blend-mode:normal}
.catalog-card:hover .catalog-card__media img{transform:scale(1.025)}
.catalog-card .catalog-card__body{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:0;
  padding:clamp(17px,2vw,22px);
}
.catalog-card .catalog-card__eyebrow{
  overflow:hidden;
  color:var(--accent-ink);
  font:700 11px var(--font-display);
  letter-spacing:.075em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}
.catalog-card .catalog-card__title{
  display:-webkit-box;
  overflow:hidden;
  margin:9px 0 0;
  color:var(--fg);
  font-family:var(--font-display);
  font-size:19px;
  font-weight:750;
  letter-spacing:-.02em;
  line-height:1.2;
  text-wrap:pretty;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.catalog-card .catalog-card__title a{color:inherit}
.catalog-card .catalog-card__title a:hover{color:var(--accent-ink)}
.catalog-card .catalog-card__description{
  display:-webkit-box;
  min-height:calc(1.55em * 3);
  overflow:hidden;
  margin-top:12px;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.55;
  text-wrap:pretty;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.catalog-card .catalog-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:15px;
}
.catalog-card .catalog-card__meta>span,.catalog-card .catalog-card__meta>b{
  max-width:100%;
  overflow:hidden;
  padding:5px 8px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--cream);
  color:var(--muted);
  font:600 12.5px var(--font-display);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalog-card .catalog-card__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:auto;
  padding-top:20px;
}
.catalog-card .catalog-card__price{
  color:var(--fg);
  font:750 17px var(--font-display);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.catalog-card .catalog-card__action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:10px 16px;
  border:1px solid oklch(100% 0 0 / .08);
  border-radius:999px;
  background:var(--espresso-2);
  color:oklch(97% .006 70);
  font:700 13.5px var(--font-display);
  line-height:1;
  box-shadow:0 10px 24px -16px oklch(18% .025 50 / .8);
  transition:background .2s,transform .2s,box-shadow .2s;
}
.catalog-card .catalog-card__action:hover{
  background:var(--espresso);
  color:oklch(98% .006 70);
  transform:translateY(-1px);
  box-shadow:0 14px 28px -18px oklch(18% .025 50 / .9);
}
.catalog-card .catalog-card__action svg{width:15px;height:15px;transition:transform .2s}
.catalog-card .catalog-card__action:hover svg{transform:translateX(3px)}

@media(max-width:680px){
  .catalog-card .catalog-card__body{padding:16px}
  .catalog-card .catalog-card__title{font-size:17px}
  .catalog-card .catalog-card__description{font-size:14px}
  .catalog-card .catalog-card__footer{padding-top:16px}
}
@media(max-width:360px){
  .catalog-card .catalog-card__footer{align-items:stretch;flex-direction:column}
  .catalog-card .catalog-card__action{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .catalog-card,.catalog-card .catalog-card__media img,.catalog-card .catalog-card__action{transition:none}
  .catalog-card:hover,.catalog-card .catalog-card__action:hover{transform:none}
}
