:root {
	--vpl-accent: #136c62;
	--vpl-border: #dfe5e3;
	--vpl-surface: #fff;
	--vpl-text: #18322f;
}

.vpl-site-main {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 1240px;
	padding: clamp(24px, 5vw, 72px) 20px;
}

.vpl-kicker,
.vpl-card__eyebrow {
	color: var(--vpl-accent);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.vpl-filters {
	align-items: end;
	background: #f5f8f7;
	border: 1px solid var(--vpl-border);
	border-radius: 14px;
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
	margin-block: 28px 36px;
	padding: 18px;
}

.vpl-filters label span {
	display: block;
	font-size: .85rem;
	font-weight: 650;
	margin-bottom: 6px;
}

.vpl-filters input,
.vpl-filters select,
.vpl-filters button {
	box-sizing: border-box;
	min-height: 44px;
	width: 100%;
}

.vpl-filters button {
	background: var(--vpl-accent);
	border: 0;
	border-radius: 6px;
	color: #fff;
	cursor: pointer;
	font-weight: 700;
	padding-inline: 20px;
}

.vpl-listing-grid {
	display: grid;
	gap: clamp(18px, 3vw, 32px);
	grid-template-columns: repeat(var(--vpl-columns, 3), minmax(0, 1fr));
}

.vpl-card {
	background: var(--vpl-surface);
	border: 1px solid var(--vpl-border);
	border-radius: 14px;
	box-shadow: 0 12px 32px rgb(18 49 44 / 7%);
	overflow: hidden;
}

.vpl-card__image,
.vpl-card__placeholder {
	aspect-ratio: 3 / 2;
	background: #e8eeec;
	display: block;
}

.vpl-card__image img {
	height: 100%;
	object-fit: cover;
	transition: transform .25s ease;
	width: 100%;
}

.vpl-card:hover .vpl-card__image img {
	transform: scale(1.025);
}

.vpl-card__body {
	padding: 18px;
}

.vpl-card__eyebrow {
	margin: 0 0 8px;
}

.vpl-card__title {
	font-size: 1.2rem;
	line-height: 1.3;
	margin: 0;
}

.vpl-card__title a {
	color: var(--vpl-text);
	text-decoration: none;
}

.vpl-card__footer {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-top: 18px;
}

.vpl-single__header {
	align-items: end;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-bottom: 28px;
}

.vpl-single__price {
	display: grid;
	font-size: 1.1rem;
	text-align: right;
}

.vpl-single__price strong {
	color: var(--vpl-accent);
	font-size: 1.8rem;
}

.vpl-gallery {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(4, 1fr);
	margin-block: 28px;
}

.vpl-gallery__item {
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	overflow: hidden;
}

.vpl-gallery__item.is-primary {
	grid-column: span 2;
	grid-row: span 2;
}

.vpl-gallery__item img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.vpl-gallery--legacy img {
	height: auto;
	max-width: 100%;
}

.vpl-single__layout {
	display: grid;
	gap: clamp(28px, 5vw, 64px);
	grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
}

.vpl-facts {
	background: #f5f8f7;
	border-radius: 14px;
	padding: 22px;
}

.vpl-facts dl {
	margin: 0;
}

.vpl-facts dl div {
	border-bottom: 1px solid var(--vpl-border);
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 10px 0;
}

.vpl-facts dd {
	font-weight: 700;
	margin: 0;
}

@media (max-width: 900px) {
	.vpl-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vpl-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vpl-single__layout { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
	.vpl-filters,
	.vpl-listing-grid { grid-template-columns: 1fr; }
	.vpl-single__header { align-items: start; flex-direction: column; }
	.vpl-single__price { text-align: left; }
	.vpl-gallery { grid-template-columns: repeat(2, 1fr); }
}
