/* ==========================================================================
   MZF Store — Product card (shared: home, archive, related, search)
   Loaded on every page so cards never render unstyled.
   ========================================================================== */

.mzf-pcard {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  list-style: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.mzf-pcard:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--line-strong); }

.mzf-pcard__media {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1 / 1;
  background: var(--surface);
  overflow: hidden;
}
.mzf-pcard__media .mzf-pcard__img,
.mzf-pcard__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 10px;
  transition: transform .3s ease;
}
.mzf-pcard:hover .mzf-pcard__img,
.mzf-pcard:hover .mzf-pcard__media img { transform: scale(1.05); }
.mzf-pcard__noimg { color: var(--line-strong); }

.mzf-pcard__badge {
  position: absolute;
  top: 10px; inset-inline-start: 10px;
  font-size: .7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--r-pill);
  color: #fff;
  z-index: 2;
}
.mzf-pcard__badge--sale { background: var(--brand); }
.mzf-pcard__badge--out { background: var(--ink-muted); inset-inline-start: auto; inset-inline-end: 10px; }

.mzf-pcard__body { display: flex; flex-direction: column; gap: 10px; padding: 14px; flex: 1; }
.mzf-pcard__title { margin: 0; font-size: .92rem; font-weight: 600; line-height: 1.55; }
.mzf-pcard__title a {
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.9em;
}
.mzf-pcard__title a:hover { color: var(--brand); }
.mzf-pcard__price { margin-top: auto; font-weight: 800; color: var(--brand); font-size: 1.25rem; }
.mzf-pcard__price del { color: var(--ink-muted); font-weight: 500; font-size: .85rem; margin-inline-start: 6px; }
.mzf-pcard__price ins { text-decoration: none; color: var(--brand); }
.mzf-pcard__ask { color: var(--ink-muted); font-weight: 600; font-size: .9rem; }
.mzf-pcard__cart {
  width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
  line-height: 1.4;
  font-size: .9rem;
  padding: .7em 1em;
}
/* WooCommerce sometimes appends state classes; keep the button on-brand. */
.mzf-pcard__cart.added,
.mzf-pcard__cart.loading { opacity: .8; }
.mzf-pcard .added_to_cart {
  display: block;
  text-align: center;
  margin-top: 6px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--brand);
}
