.vpw-grid {
	display: grid;
	grid-template-columns: repeat(var(--vpw-columns, 3), 1fr);
	gap: 24px;
}
@media (max-width: 780px) {
	.vpw-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.vpw-grid { grid-template-columns: 1fr; }
}

.vpw-card {
	display: flex;
	flex-direction: column;
	border: 1px solid #e5e2dc;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow .2s ease;
}
.vpw-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }

.vpw-image-link { display: block; aspect-ratio: 1/1; overflow: hidden; background: #f5f3ef; }
.vpw-image { width: 100%; height: 100%; object-fit: cover; display: block; }

.vpw-body { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.vpw-title { margin: 0; font-size: 16px; line-height: 1.3; }
.vpw-title a { color: inherit; text-decoration: none; }
.vpw-price { font-size: 15px; opacity: .8; }
.vpw-status { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #b23b3b; }

.vpw-button {
	margin-top: 8px;
	display: inline-block;
	text-align: center;
	padding: 10px 16px;
	border-radius: 4px;
	background: #1c1c1c;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
}
.vpw-sold-out .vpw-button { opacity: .5; pointer-events: none; }
