/*
 * preloved-bazaar — listing-card.css
 *
 * Shared listing-card surface. Used wherever pb_listings render:
 *   - Home page "new in" rail (Marketplace\Shortcodes::recent_listings)
 *   - /catalog grid + filtered catalog (Catalog/Views/archive.php)
 *   - Seller profile pages (TODO)
 *   - "More from seller" + "Similar items" rails on PDP (TODO)
 *
 * Rule (banked: feedback_plugin-not-theme): plugin-owned tokens only,
 * never `var(--wp--preset--*)`. Resolves through tokens.css (--pb-*).
 *
 * Spec ref: prelovedbazaar-rebuild-spec.md §8 (cards) + §4.2 (catalog).
 *
 * No discount badges, no "X% OFF" — deliberate departure from the Motta
 * live site (community-first, not discount-shouting).
 */

.pb-listing-card {
	position: relative;
	display: block;
	background: var(--pb-surface);
	border: 1px solid var(--pb-subtle);
	border-radius: var(--pb-radius-md);
	overflow: hidden;
	transition: transform 200ms ease-in-out, box-shadow 200ms ease-in-out, border-color 200ms ease-in-out;
}

.pb-listing-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--pb-shadow-md);
	border-color: var(--pb-brand-green-mid);
}

.pb-listing-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.pb-listing-card__link:focus-visible {
	outline: 2px solid var(--pb-brand-blue);
	outline-offset: 2px;
}

.pb-listing-card__media {
	position: relative;
	aspect-ratio: 4 / 5;
	background: var(--pb-subtle);
	overflow: hidden;
}

.pb-listing-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 300ms ease-in-out;
}

.pb-listing-card:hover .pb-listing-card__img {
	transform: scale(1.03);
}

.pb-listing-card__img--placeholder {
	background:
		linear-gradient(135deg, var(--pb-brand-green-soft) 0%, var(--pb-brand-pink-soft) 100%);
}

.pb-listing-card__body {
	padding: 12px 14px 14px;
}

.pb-listing-card__title {
	margin: 0;
	font-family: var(--pb-font-inter);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--pb-contrast);
	line-height: 1.35;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pb-listing-card__price {
	margin: 6px 0 0;
	font-family: var(--pb-font-inter);
	font-size: 1rem;
	font-weight: 600;
	color: var(--pb-brand-green);
}

@media (prefers-reduced-motion: reduce) {
	.pb-listing-card,
	.pb-listing-card__img {
		transition: none;
	}
	.pb-listing-card:hover {
		transform: none;
	}
	.pb-listing-card:hover .pb-listing-card__img {
		transform: none;
	}
}
