/**
 * Product card component.
 */

.dc-product-card {
	display: flex;
	flex-direction: column;
	background: var(--dc-colour-surface);
	border: 1px solid var(--dc-colour-border);
	border-radius: var(--dc-radius-lg);
	overflow: hidden;
	height: 100%;
	transition: box-shadow var(--dc-transition);
}

.dc-product-card:hover {
	box-shadow: var(--dc-shadow-md);
}

.dc-product-card__media {
	position: relative;
	aspect-ratio: 1;
	background: var(--dc-colour-bg);
}

.dc-product-card__image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: var(--dc-space-4);
}

.dc-product-card__badge {
	position: absolute;
	top: var(--dc-space-3);
	left: var(--dc-space-3);
	padding: var(--dc-space-1) var(--dc-space-3);
	font-size: var(--dc-font-size-xs);
	font-weight: 700;
	text-transform: uppercase;
	border-radius: var(--dc-radius-sm);
	background: var(--dc-colour-accent);
	color: #fff;
}

.dc-product-card__badge--sale {
	background: var(--dc-colour-error);
}

.dc-product-card__badge--low_stock {
	background: var(--dc-colour-warning);
}

.dc-product-card__badge--new {
	background: var(--dc-colour-brand);
}

.dc-product-card__badge--bestseller {
	background: var(--dc-colour-success);
}

.dc-product-card__favourite {
	position: absolute;
	top: var(--dc-space-3);
	right: var(--dc-space-3);
	width: var(--dc-touch-target);
	height: var(--dc-touch-target);
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--dc-colour-surface);
	border-radius: var(--dc-radius-full);
	box-shadow: var(--dc-shadow-sm);
	color: var(--dc-colour-muted);
}

.dc-product-card__favourite[aria-pressed="true"] {
	color: var(--dc-colour-error);
}

.dc-product-card__body {
	padding: var(--dc-space-4);
	display: flex;
	flex-direction: column;
	gap: var(--dc-space-2);
	flex: 1;
}

.dc-product-card__brand {
	font-size: var(--dc-font-size-xs);
	color: var(--dc-colour-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.dc-product-card__title {
	font-family: var(--dc-font-body);
	font-size: var(--dc-font-size-base);
	font-weight: 600;
	line-height: var(--dc-line-height-tight);
}

.dc-product-card__title a {
	text-decoration: none;
}

.dc-product-card__title a:hover {
	color: var(--dc-colour-brand);
}

.dc-product-card__price {
	font-weight: 700;
	margin-top: auto;
}

.dc-product-card__price del {
	color: var(--dc-colour-muted);
	font-weight: 400;
	font-size: var(--dc-font-size-sm);
}

.dc-product-card__stock {
	font-size: var(--dc-font-size-sm);
}

.dc-product-card__stock--in-stock {
	color: var(--dc-colour-success);
}

.dc-product-card__stock--out-of-stock {
	color: var(--dc-colour-error);
}

.dc-product-card__script {
	position: absolute;
	bottom: var(--dc-space-3);
	left: var(--dc-space-3);
	padding: var(--dc-space-1) var(--dc-space-3);
	font-size: var(--dc-font-size-xs);
	font-weight: 600;
	border-radius: var(--dc-radius-sm);
	background: var(--dc-colour-bg);
	border: 1px solid var(--dc-colour-border);
	color: var(--dc-colour-muted);
}

.dc-product-card__quick-add {
	margin-top: var(--dc-space-2);
	width: 100%;
}

.dc-product-card__quick-add.is-loading {
	opacity: 0.7;
	pointer-events: none;
}
