/**
 * ESS WC Template Pack — shop layer.
 * Archive grid, product card, single product layout.
 */

.ess-wct-archive { padding-block: var(--ess-space-6); }
.ess-wct-archive__title { font: var(--ess-weight-bold) var(--ess-text-2xl)/1.2 var(--ess-font-heading); color: var(--ess-color-primary); margin: 0 0 var(--ess-space-5); }

.ess-wct-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: var(--ess-space-5);
	list-style: none;
	padding: 0;
	margin: 0;
}

.ess-wct-card {
	display: flex;
	flex-direction: column;
	background: var(--ess-color-bg);
	border: 1px solid var(--ess-color-border);
	border-radius: var(--ess-radius-md);
	overflow: hidden;
	transition: box-shadow .15s ease, transform .15s ease;
}
.ess-wct-card:hover { box-shadow: var(--ess-shadow-md); }
.ess-wct-card__image { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--ess-color-bg-sec); }
.ess-wct-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ess-wct-card__badge {
	position: absolute; top: var(--ess-space-2); left: var(--ess-space-2);
	padding: 4px 8px;
	font-size: var(--ess-text-xs);
	font-weight: var(--ess-weight-semibold);
	color: #fff;
	background: var(--ess-color-accent);
	border-radius: var(--ess-radius-sm);
}
.ess-wct-card__badge--outofstock { background: var(--ess-color-text-sec); }
.ess-wct-card__body { padding: var(--ess-space-4); display: flex; flex-direction: column; gap: var(--ess-space-2); flex: 1; }
.ess-wct-card__vendor { font-size: var(--ess-text-xs); color: var(--ess-color-text-sec); }
.ess-wct-card__title { font-size: var(--ess-text-base); font-weight: var(--ess-weight-semibold); margin: 0; line-height: 1.3; }
.ess-wct-card__title a { color: var(--ess-color-text); text-decoration: none; }
.ess-wct-card__title a:hover { color: var(--ess-color-primary); }
.ess-wct-card__price { font-size: var(--ess-text-lg); font-weight: var(--ess-weight-bold); color: var(--ess-color-primary); margin-top: auto; }
.ess-wct-card__actions { padding: 0 var(--ess-space-4) var(--ess-space-4); }
.ess-wct-card__actions .ess-btn { width: 100%; }

/* Single product */
.ess-wct-single { padding-block: var(--ess-space-6); }
.ess-wct-single__top { display: grid; gap: var(--ess-space-8); }
@media (min-width: 768px) { .ess-wct-single__top { grid-template-columns: 1fr 1fr; } }
.ess-wct-single__title { font: var(--ess-weight-bold) var(--ess-text-2xl)/1.2 var(--ess-font-heading); color: var(--ess-color-primary); margin: 0 0 var(--ess-space-4); }
.ess-wct-single__price { font-size: var(--ess-text-2xl); font-weight: var(--ess-weight-bold); color: var(--ess-color-primary); margin-bottom: var(--ess-space-4); }
