/* 列表及詳情推薦共用原型商品卡片。 */
.grid.cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid.cards > .panel { grid-column: 1 / -1; }
.product-card { overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-card); transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease; }
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); border-color: #e2c7b8; }
.product-card .image-tile { position: relative; overflow: hidden; background: #fff7f2; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; min-height: 0; }
.product-card .image-tile img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 220ms ease; }
.product-card:hover .image-tile img { transform: scale(1.04); }
.product-body { padding: 1rem; overflow-wrap: anywhere; }
.product-card h3 { margin: 0 0 0.3rem; line-height: 1.35; letter-spacing: -0.01em; }
.product-card .meta-row { margin-bottom: 0.5rem; }
.product-card .inline-meta { display: block; }
.price { color: var(--brand-dark); font-weight: 800; font-variant-numeric: tabular-nums; }
.meta-row { display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; }
@media (max-width: 1024px) { .grid.cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; } }
@media (prefers-reduced-motion: reduce) { .product-card, .product-card .image-tile img { transition: none; } }