/* ==========================================================================
   Arcopet v2 · کارت محصول (.v2-pcard)
   مشترک بین آرشیو محصولات و «محصولات مشابه» صفحه‌ی محصول.
   ساختار: parts/archive/product-card.php و buildCard در v2-archive.js. فقط var(--v2-*).
   ========================================================================== */

/* کارت محصول */
.v2-pcard{
  position:relative; display:flex; flex-direction:column; min-width:0;
  border:1px solid var(--v2-border); border-radius:var(--v2-radius-l); background:var(--v2-surface);
  transition:box-shadow .2s, border-color .2s;
}
@media (hover:hover){
  .v2-pcard:hover{ border-color:transparent; box-shadow:var(--v2-shadow-card); }
}
.v2-pcard-link{ display:flex; flex-direction:column; flex:1; padding:8px 8px 12px; color:inherit; }
.v2-pcard-media{
  position:relative; display:block; aspect-ratio:1; overflow:hidden; border-radius:var(--v2-radius-m);
  background:var(--v2-white);
}
.v2-pcard-media img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:6px;
  transition:opacity .25s;
}
.v2-pcard-img2{ opacity:0; }
@media (hover:hover){
  .v2-pcard:hover .v2-pcard-img2{ opacity:1; }
  .v2-pcard:hover .v2-pcard-img:has(+ .v2-pcard-img2){ opacity:0; }
}
/* ناموجود: فقط کمی کمرنگ‌تر از موجودها */
.v2-pcard.outofstock .v2-pcard-media img{ filter:opacity(.55); }

/* اسکلت تصویر: تا عکس لود نشده جایش افکت اسکلت دارد (کلاس is-loaded را onload خود تصویر می‌دهد) */
.v2-js .v2-pcard-img:not(.is-loaded){ opacity:0; }
.v2-js .v2-pcard-media:has(> .v2-pcard-img:not(.is-loaded)){
  background:linear-gradient(90deg, var(--v2-skel-base) 25%, var(--v2-skel-shine) 50%, var(--v2-skel-base) 75%);
  background-size:200% 100%; animation:v2-shimmer 1.2s linear infinite;
}
.v2-js .v2-pcard-img.is-broken{ opacity:0; }
.v2-js .v2-pcard-media:has(> .v2-pcard-img.is-broken){ background:var(--v2-skel-base); animation:none; }
@media (prefers-reduced-motion:reduce){ .v2-js .v2-pcard-media{ animation:none!important; } }

/* نشان‌ها روی تصویر */
.v2-pcard-badges{ position:absolute; top:6px; inset-inline-start:6px; display:flex; flex-wrap:wrap; gap:4px; max-width:calc(100% - 60px); }
.v2-pcard-badge, .v2-pcard-pack, .v2-pcard-expire, .v2-pcard-weight, .v2-pcard-oos{
  display:inline-flex; align-items:center; min-height:22px; padding:0 8px; border-radius:999px;
  font-size:11px; font-weight:700; line-height:1; white-space:nowrap;
}
.v2-pcard-badge{ background:var(--v2-brand); color:var(--v2-on-brand); }
.v2-pcard-badge.is-black{ background:var(--v2-text); color:var(--v2-page); }
.v2-pcard-badge.is-pack{ background:var(--v2-pack); color:var(--v2-on-brand); }
.v2-pcard-pack{ background:var(--v2-pack-soft); color:var(--v2-pack); }
.v2-pcard-expire{
  position:absolute; top:6px; inset-inline-end:6px;
  background:var(--v2-surface-subtle); color:var(--v2-text-subtle); font-weight:500; letter-spacing:.02em;
}
.v2-pcard-weight{
  position:absolute; bottom:6px; inset-inline-end:6px;
  background:var(--v2-overlay); color:var(--v2-white); backdrop-filter:blur(2px);
}
.v2-pcard-oos{
  position:absolute; bottom:6px; inset-inline-start:6px;
  background:var(--v2-text); color:var(--v2-page);
}

/* عنوان، امتیاز، قیمت */
.v2-pcard-title{
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
  min-height:calc(2 * 1.8em); margin:10px 2px 0;
  font-size:var(--v2-fs-14); font-weight:500; line-height:1.8; color:var(--v2-text);
}
.v2-pcard-packdot{ display:inline-block; width:8px; height:8px; margin-inline-start:2px; border-radius:50%; background:var(--v2-pack); vertical-align:middle; }
.v2-pcard-rating{
  display:inline-flex; align-items:center; gap:2px; margin:4px 2px 0;
  font-size:12px; color:var(--v2-text-muted);
}
.v2-pcard-rating .v2-icon{ width:14px; height:14px; color:var(--v2-brand); }
.v2-pcard-price{
  display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:2px;
  margin-top:auto; min-height:52px; padding-top:10px; padding-inline:2px 48px;
}
.v2-pcard-was{ display:inline-flex; align-items:center; gap:6px; }
.v2-pcard-was del{ font-size:12px; color:var(--v2-text-muted); }
.v2-pcard-off{
  display:inline-grid; place-items:center; min-width:34px; height:20px; padding:0 6px; border-radius:999px;
  background:var(--v2-brand); color:var(--v2-on-brand); font-size:11px; font-weight:700;
}
.v2-pcard-now{ font-size:var(--v2-fs-16); font-weight:800; color:var(--v2-text); white-space:nowrap; }
.v2-pcard-now small{ font-size:11px; font-weight:500; color:var(--v2-text-muted); }
.v2-pcard.outofstock .v2-pcard-now{ color:var(--v2-text-muted); }

/* دکمه‌ی افزودن به سبد (سبد سریع flowrand) — گوشه‌ی پایین کارت، کنار قیمت.
   !important فقط برای غلبه بر CSS عمومی پلاگین سبد سریع روی .flowrand-fc-button. */
.v2-pcard .v2-pcard-add{
  position:absolute; bottom:12px; inset-inline-end:10px; z-index:1;
  display:inline-grid !important; place-items:center; width:40px !important; height:40px !important;
  min-height:0 !important; margin:0 !important; padding:0 !important; border-radius:12px !important;
  border:1px solid var(--v2-border) !important; background:var(--v2-surface) !important; color:var(--v2-brand) !important;
  box-shadow:var(--v2-shadow-float) !important; text-decoration:none !important;
  transition:background-color .15s, color .15s, transform .1s;
}
.v2-pcard .v2-pcard-add:hover{ background:var(--v2-brand) !important; color:var(--v2-on-brand) !important; border-color:var(--v2-brand) !important; }
.v2-pcard .v2-pcard-add:active{ transform:scale(.94); }
.v2-pcard .v2-pcard-add .flowrand-fc-button__text{
  position:static !important; display:block !important; width:auto !important; height:auto !important;
  margin:0 !important; padding:0 !important; background:none !important; box-shadow:none !important; color:inherit !important;
  font-family:inherit !important; font-size:26px !important; font-weight:400 !important; line-height:1 !important;
}
.v2-pcard .v2-pcard-add.is-loading .flowrand-fc-button__text{ visibility:hidden; }
.v2-pcard .v2-pcard-add .flowrand-fc-button__spinner{ position:absolute; }

/* اسکلت بارگذاری */
.v2-pcard-skel{ padding:8px 8px 14px; pointer-events:none; }
.v2-pcard-skel .v2-pcard-media, .v2-skel-line{
  background:linear-gradient(90deg, var(--v2-skel-base) 25%, var(--v2-skel-shine) 50%, var(--v2-skel-base) 75%);
  background-size:200% 100%; animation:v2-shimmer 1.2s linear infinite;
}
.v2-skel-line{ display:block; height:12px; margin:14px 2px 0; border-radius:999px; }
.v2-skel-line.is-short{ width:55%; margin-top:10px; }
@keyframes v2-shimmer{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }
@media (prefers-reduced-motion:reduce){ .v2-pcard-skel .v2-pcard-media, .v2-skel-line{ animation:none; } }
