/* =========================================================
   RON Listing Property — Archive / Search styles
   ========================================================= */

.ron-lp-archive-page-header { margin: 2rem auto 1rem; }
.ron-lp-archive-page-description { color: var(--ron-text-muted, #6b7280); margin-top: 0.5rem; }

.ron-lp-archive-wrap { max-width: 1200px; margin: 0 auto; padding: 0 1rem 3rem; }

/* ---------- Filter bar ---------- */
.ron-lp-archive-filter-bar {
	background: #fff; border: 1px solid var(--ron-border, #d8dde3); border-radius: 12px;
	padding: 1.5rem; margin-bottom: 2rem;
}
.ron-lp-filter-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-bottom: 1.25rem; }
@media (max-width: 900px) { .ron-lp-filter-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ron-lp-filter-row { grid-template-columns: 1fr; } }
.ron-lp-archive-filter-bar .ron-lp-field label { display: block; font-weight: 600; margin-bottom: 0.4rem; font-size: 0.9rem; }
.ron-lp-archive-filter-bar select,
.ron-lp-archive-filter-bar input[type="number"] {
	width: 100%; padding: 0.6rem 0.75rem; border: 1px solid var(--ron-border, #d8dde3); border-radius: 8px; font-size: 0.92rem;
}
.ron-lp-range-inputs { display: flex; gap: 0.6rem; }
.ron-lp-search-property-btn { margin-top: 0.5rem; }

/* ---------- Grid ---------- */
.ron-lp-archive-grid { display: grid; gap: 1.75rem; }
.ron-lp-archive-cols-1 { grid-template-columns: 1fr; }
.ron-lp-archive-cols-2 { grid-template-columns: repeat(2, 1fr); }
.ron-lp-archive-cols-3 { grid-template-columns: repeat(3, 1fr); }
.ron-lp-archive-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) {
	.ron-lp-archive-cols-2, .ron-lp-archive-cols-3, .ron-lp-archive-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.ron-lp-archive-cols-1, .ron-lp-archive-cols-2, .ron-lp-archive-cols-3, .ron-lp-archive-cols-4 { grid-template-columns: 1fr; }
}
.ron-lp-archive-empty { grid-column: 1 / -1; text-align: center; color: var(--ron-text-muted, #6b7280); padding: 2rem 0; }

.ron-lp-archive-load-more-wrap { text-align: center; margin-top: 2.5rem; }
.ron-lp-load-more-btn.is-loading { opacity: 0.6; pointer-events: none; }

/* ---------- Property card ---------- */
.ron-lp-card { background: #fff; border: 1px solid var(--ron-border, #d8dde3); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }

.ron-lp-card-media {
	position: relative; width: 100%; aspect-ratio: 4 / 3; background: #000; overflow: hidden; cursor: pointer;
}
.ron-lp-card-slides { position: relative; width: 100%; height: 100%; }
.ron-lp-card-slide { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: #000; }
/* object-fit: contain + black background = letterboxing when the media's aspect ratio
   doesn't match the card, instead of cropping (object-fit: cover would crop). */
.ron-lp-card-slide img,
.ron-lp-card-slide video { width: 100%; height: 100%; object-fit: contain; background: #000; }
.ron-lp-card-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #4a4a4a; font-size: 2.5rem; }

.ron-lp-card-embed-placeholder { position: relative; width: 100%; height: 100%; cursor: pointer; }
.ron-lp-card-embed-placeholder img { width: 100%; height: 100%; object-fit: cover; }
.ron-lp-card-embed { width: 100%; height: 100%; border: 0; display: block; background: #000; }
.ron-lp-card-play-btn {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,0.9);
	color: #d32f2f; display: flex; align-items: center; justify-content: center; font-size: 2rem;
}

.ron-lp-card-arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	background: rgba(0,0,0,0.45); color: #fff; border: none; width: 34px; height: 34px;
	border-radius: 50%; font-size: 1.3rem; line-height: 1; cursor: pointer;
}
.ron-lp-card-prev { left: 10px; }
.ron-lp-card-next { right: 10px; }
.ron-lp-card-dots { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 0.4rem; z-index: 5; }
.ron-lp-card-dot { width: 8px; height: 8px; border-radius: 50%; border: none; background: rgba(255,255,255,0.5); cursor: pointer; padding: 0; }
.ron-lp-card-dot.active { background: #fff; }

.ron-lp-card-body { padding: 1.1rem 1.25rem 1.4rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.ron-lp-card-author {
	display: inline-flex; align-items: center; gap: 0.3rem; align-self: flex-start;
	border: 1px solid var(--ron-border, #d8dde3); border-radius: 999px; padding: 0.2rem 0.75rem;
	font-size: 0.78rem; color: var(--ron-primary, #2e7d32);
}
.ron-lp-card-price { font-weight: 800; font-size: 1.15rem; color: var(--ron-primary, #2e7d32); margin: 0.2rem 0 0; }
.ron-lp-card-title { margin: 0; font-size: 1rem; }
.ron-lp-card-title a { color: var(--ron-text, #2b2f33); text-decoration: none; }
.ron-lp-card-desc { color: var(--ron-text-muted, #6b7280); font-size: 0.88rem; margin: 0; }

/* 2-line clamp for title/description, per spec ("rest word not show") */
.ron-lp-clamp-2 {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden; text-overflow: ellipsis;
}

.ron-lp-card-meta { display: flex; gap: 1rem; color: var(--ron-text-muted, #6b7280); font-size: 0.85rem; }
.ron-lp-card-meta .dashicons { font-size: 1rem; width: 1rem; height: 1rem; vertical-align: -2px; }
.ron-lp-card-added { color: var(--ron-text-muted, #6b7280); font-size: 0.82rem; margin: 0; }

.ron-lp-card-contact-row { display: flex; gap: 0.5rem; margin-top: 0.25rem; flex-wrap: wrap; }
.ron-lp-card-view-btn { margin-top: 0.5rem; }
