/**
 * product-card.css
 * ----------------
 * Product card: media, title, price, rating, badges, add-to-cart.
 * Prefer `.wrb-product-card*` classes; avoid Gutenberg-generated hashes.
 */

/* ==========================================================================
   Card shell
   ========================================================================== */

.wrb-product-card {
	display: flex;
	flex-direction: column;
	gap: var(--wrb-spacing-sm);
	height: 100%;
	padding: 0;
	overflow: hidden;
	background-color: var(--wrb-color-background);
	border: var(--wrb-product-card-border-width) solid var(--wrb-color-border);
	border-radius: var(--wrb-radius-md);
	transition:
		border-color var(--wrb-transition),
		box-shadow var(--wrb-transition);
}

.wrb-product-card:hover {
	border-color: var(--wrb-color-secondary);
	box-shadow: var(--wrb-product-card-hover-lift);
}

/* ==========================================================================
   Media / image
   ========================================================================== */

.wrb-product-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: var(--wrb-product-image-ratio);
	overflow: hidden;
	background-color: var(--wrb-color-surface);
}

.wrb-product-card__image {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
}

.wrb-product-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition:
		opacity var(--wrb-transition),
		transform var(--wrb-transition);
}

/* Hover second-image slot (structure only; enable with .has-hover-image later) */
.wrb-product-card__image-hover {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0;
	transition: opacity var(--wrb-transition);
}

.wrb-product-card__image-hover:empty {
	display: none;
}

.wrb-product-card.has-hover-image:hover .wrb-product-card__image-hover {
	opacity: 1;
}

.wrb-product-card.has-hover-image:hover .wrb-product-card__image--primary img {
	opacity: 0;
}

/* ==========================================================================
   Badges / wishlist
   ========================================================================== */

.wrb-product-card__sale-badge {
	position: relative;
	z-index: 2;
	border-radius: var(--wrb-radius-sm);
	font-size: var(--wp--preset--font-size--xs);
}

.wrb-product-card__wishlist {
	position: absolute;
	top: var(--wrb-spacing-xs);
	right: var(--wrb-spacing-xs);
	z-index: 3;
}

.wrb-product-card__wishlist:empty {
	display: none;
}

/* ==========================================================================
   Body: title, price, rating
   ========================================================================== */

.wrb-product-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: var(--wrb-spacing-xs);
	padding: var(--wrb-spacing-sm);
}

.wrb-product-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.3;
}

.wrb-product-card__title a {
	color: inherit;
	text-decoration: none;
}

.wrb-product-card__title a:hover {
	color: var(--wrb-color-primary);
}

.wrb-product-card__price {
	color: var(--wrb-color-foreground);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--sm);
}

.wrb-product-card__rating {
	color: var(--wrb-color-muted);
	font-size: var(--wp--preset--font-size--sm);
}

/* Variation / swatch slot */
.wrb-product-card__variants:empty {
	display: none;
}

.wrb-product-card__variants:not(:empty) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	min-height: 1.25rem;
}

.wrb-product-card__stock {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wrb-color-error);
}

.wrb-product-card__stock:empty {
	display: none;
}

/* ==========================================================================
   Add to cart button
   ========================================================================== */

.wrb-product-card__add-to-cart {
	margin-top: auto;
	padding-top: var(--wrb-spacing-xs);
}

.wrb-product-card__add-to-cart .wp-element-button {
	width: 100%;
	justify-content: center;
	border-radius: var(--wrb-radius-md);
}

/* Soften disabled / out-of-stock CTA without fighting Woo markup */
.wrb-product-card.outofstock .wrb-product-card__add-to-cart .wp-element-button {
	opacity: 0.55;
	cursor: not-allowed;
}
