.plp-wrapper { width: 100%; }

.plp-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 24px;
	border-bottom: 1px solid #e2e2e2;
	padding-bottom: 12px;
}

.plp-tab {
	background: #f4f4f4;
	border: 1px solid #ddd;
	border-radius: 999px;
	padding: 8px 18px;
	font-size: 14px;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}

.plp-tab:hover { background: #e9e9e9; }

.plp-tab.active {
	background: #1a1a1a;
	color: #fff;
	border-color: #1a1a1a;
}

.plp-grid.plp-loading { opacity: .5; pointer-events: none; }

.plp-grid-inner {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, 1fr);
}

.plp-cols-1 { grid-template-columns: repeat(1, 1fr); }
.plp-cols-2 { grid-template-columns: repeat(2, 1fr); }
.plp-cols-3 { grid-template-columns: repeat(3, 1fr); }
.plp-cols-4 { grid-template-columns: repeat(4, 1fr); }
.plp-cols-5 { grid-template-columns: repeat(5, 1fr); }
.plp-cols-6 { grid-template-columns: repeat(6, 1fr); }

@media (max-width: 900px) {
	.plp-grid-inner { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
	.plp-grid-inner { grid-template-columns: 1fr !important; }
}

.plp-card {
	border: 1px solid #e5e5e5;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow .2s ease, transform .2s ease;
}

.plp-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); transform: translateY(-2px); }

.plp-card-link { display: block; color: inherit; text-decoration: none; }

.plp-card-thumb { position: relative; }
.plp-card-thumb img { width: 100%; height: 220px; object-fit: cover; display: block; }

.plp-card-body { padding: 16px; position: relative; }

.plp-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: #d4a017;
	color: #fff;
	font-size: 12px;
	padding: 4px 10px;
	border-radius: 4px;
	z-index: 2;
}

.plp-card-title { margin: 0 0 6px; font-size: 18px; }
.plp-card-location { margin: 0 0 8px; color: #777; font-size: 13px; }
.plp-card-price { margin: 0 0 10px; font-weight: 700; font-size: 17px; }
.plp-card-meta { display: flex; gap: 12px; font-size: 13px; color: #555; margin: 0; }

.plp-no-results { text-align: center; padding: 40px 0; color: #777; }

/* Loading state + empty-thumb helpers */
.plp-grid { position: relative; min-height: 60px; }
.plp-grid.plp-loading { opacity: .5; pointer-events: none; }
.plp-grid.plp-loading::after {
	content: "";
	position: absolute;
	top: 50%; left: 50%;
	width: 28px; height: 28px;
	margin: -14px 0 0 -14px;
	border: 3px solid #ddd;
	border-top-color: #1a1a1a;
	border-radius: 50%;
	animation: plp-spin .8s linear infinite;
}
@keyframes plp-spin { to { transform: rotate(360deg); } }
.plp-card-thumb--empty { padding: 12px; }
.plp-badge--inline { position: static; display: inline-block; }
