/* =========================================================================
   HOMEPAGE — dimuat HANYA di front page (conditional, lihat inc/enqueue.php).
   File ini SENGAJA mandiri (tidak bergantung assets/elementor/widgets.css
   milik plugin) — beberapa class (.rep-elementor-grid, .rep-logo-carousel__item,
   .rep-location-card) memang overlap nama dengan yang dipakai widget
   Elementor Prompt 10, tapi definisi CSS-nya diduplikasi di sini secara
   sengaja supaya homepage tetap tampil benar walau Elementor tidak aktif
   sama sekali (requirement: "Tidak bergantung penuh pada Elementor").
   Duplikasi properti CSS antara file ini dan widgets.css tidak masalah
   (idempotent, tidak saling konflik) jika kebetulan keduanya sama-sama load.
   ========================================================================= */

.rep-homepage-section__title { font-size: 1.75rem; margin-bottom: var(--rep-space-4); }
.rep-homepage-section__title--center { text-align: center; }
.rep-homepage-section__header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: var(--rep-space-4); flex-wrap: wrap; gap: 8px; }
.rep-homepage-section__header .rep-homepage-section__title { margin-bottom: 0; }
.rep-homepage-section__more { font-size: .9rem; font-weight: 600; color: var(--rep-color-accent); white-space: nowrap; }

/* ---------- HERO (duplikat minimal dari widgets.css plugin, lihat catatan atas) ---------- */
.rep-hero-slideshow { position: relative; overflow: hidden; }
.rep-hero-slideshow--full { height: 100vh; min-height: 520px; }
.rep-hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; }
.rep-hero-slide.is-active { opacity: 1; position: relative; }
.rep-hero-slide__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rep-hero-slide__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.rep-hero-slide__content { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; max-width: 640px; padding: 40px; color: #fff; }
.rep-hero-slide__label { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; opacity: .85; margin-bottom: 12px; }
.rep-hero-slide__heading { font-family: var(--rep-font-display); font-size: 3rem; line-height: 1.1; margin: 0 0 16px; color: #fff; }
.rep-hero-slide__desc { font-size: 1.05rem; margin-bottom: 24px; opacity: .9; }
.rep-hero-slide__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.rep-btn--on-dark { color: #fff !important; border-color: rgba(255,255,255,.6) !important; }
.rep-hero-slideshow__dots { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 3; }
.rep-hero-slideshow__dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.5); border: none; cursor: pointer; padding: 0; }
.rep-hero-slideshow__dot.is-active { background: #fff; }

/* ---------- PROPERTY SEARCH WIDGET (duplikat minimal, lihat catatan atas) ---------- */
.rep-homepage-search-section { margin-top: -60px; position: relative; z-index: 5; padding-bottom: var(--rep-space-4); }
.rep-search-widget { background: var(--rep-color-white, #fff); border-radius: var(--rep-radius-card); padding: 20px; box-shadow: 0 16px 40px rgba(0,0,0,.12); }
.rep-search-widget__tabs { display: flex; gap: 4px; margin-bottom: 16px; flex-wrap: wrap; }
.rep-search-widget__tab { padding: 8px 16px; border-radius: 6px 6px 0 0; cursor: pointer; font-size: .9rem; }
.rep-search-widget__tab input { margin-right: 6px; }
.rep-search-widget__form { display: flex; gap: 10px; flex-wrap: wrap; }
.rep-search-widget__form select { flex: 1; min-width: 140px; padding: 10px 12px; border: 1px solid var(--rep-color-border); border-radius: var(--rep-radius-input); font-family: inherit; }

@media (max-width: 720px) {
	.rep-homepage-search-section { margin-top: 0; }
	.rep-hero-slideshow--full { height: 80vh; }
	.rep-hero-slide__heading { font-size: 2rem; }
}

/* ---------- EXPLORE BY TYPE ---------- */
.rep-explore-types-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--rep-space-3); }
.rep-explore-type-card {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px;
	padding: var(--rep-space-4) var(--rep-space-2); border: 1px solid var(--rep-color-border); border-radius: var(--rep-radius-card);
	transition: box-shadow .2s ease, transform .2s ease;
}
.rep-explore-type-card:hover { box-shadow: 0 12px 28px rgba(0,0,0,.08); transform: translateY(-2px); }
.rep-explore-type-card__icon { font-size: 2.25rem; }
.rep-explore-type-card__name { font-weight: 600; }
.rep-explore-type-card__count { font-size: .8rem; color: var(--rep-color-muted); }

/* ---------- EXPLORE BY LOCATION / LOGO CAROUSEL (duplikat minimal, lihat catatan atas) ---------- */
.rep-elementor-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.rep-location-grid-cols { grid-template-columns: repeat(4, 1fr); }
.rep-location-card { position: relative; display: block; aspect-ratio: 4/3; border-radius: var(--rep-radius-card); overflow: hidden; background: var(--rep-color-surface-alt); }
.rep-location-card__body { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 16px; background: linear-gradient(to top, rgba(0,0,0,.55), transparent 60%); }
.rep-location-card__name { color: #fff; font-size: 1.1rem; margin: 0; }
.rep-location-card__count { color: rgba(255,255,255,.85); font-size: .8rem; }

.rep-elementor-carousel { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
.rep-elementor-carousel > * { flex: 0 0 auto; scroll-snap-align: start; }
.rep-logo-carousel__item { display: flex; align-items: center; justify-content: center; flex: 0 0 160px; padding: 12px; filter: grayscale(1); opacity: .7; transition: filter .2s, opacity .2s; }
.rep-logo-carousel__item:hover { filter: grayscale(0); opacity: 1; }
.rep-logo-carousel__item img { max-width: 100%; max-height: 60px; object-fit: contain; }

/* ---------- WHY CHOOSE US ---------- */
.rep-why-choose-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--rep-space-4); }
.rep-why-choose-card { text-align: center; padding: var(--rep-space-3); }
.rep-why-choose-card__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
	border-radius: 50%; background: var(--rep-color-accent); color: #fff; font-weight: 700; margin-bottom: 12px;
}
.rep-why-choose-card__title { font-size: 1.05rem; margin-bottom: 6px; }
.rep-why-choose-card__desc { font-size: .875rem; color: var(--rep-color-muted); }

/* ---------- FEATURED PROPERTIES FILTER TABS ---------- */
.rep-featured-filter-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: var(--rep-space-4); }
.rep-featured-filter-tabs__item {
	padding: 8px 18px; border-radius: 999px; border: 1px solid var(--rep-color-border); background: transparent;
	font-size: .875rem; cursor: pointer;
}
.rep-featured-filter-tabs__item.is-active { background: var(--rep-color-primary); color: #fff; border-color: var(--rep-color-primary); }
.rep-js-featured-item.is-hidden-by-filter { display: none; }

/* ---------- SEARCH CTA ---------- */
.rep-homepage-search-cta { background: var(--rep-color-surface-alt); }
.rep-homepage-search-cta__inner { display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--rep-space-5); align-items: center; }
.rep-homepage-search-cta__text h2 { margin-bottom: 8px; }
.rep-homepage-search-cta__text p { color: var(--rep-color-muted); }
.rep-search-cta-form { background: var(--rep-color-white, #fff); padding: var(--rep-space-4); border-radius: var(--rep-radius-card); }
.rep-search-cta-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.rep-search-cta-form input, .rep-search-cta-form select, .rep-search-cta-form textarea {
	width: 100%; padding: .7em .9em; border: 1px solid var(--rep-color-border); border-radius: var(--rep-radius-input); font-family: inherit;
}
.rep-search-cta-form textarea { margin-bottom: 12px; }

@media (max-width: 900px) {
	.rep-homepage-search-cta__inner { grid-template-columns: 1fr; }
	.rep-search-cta-form__row { grid-template-columns: 1fr; }
	.rep-elementor-grid, .rep-location-grid-cols { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- INSIGHTS ---------- */
.rep-insights-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rep-space-4); }
.rep-insight-card__thumb { display: block; aspect-ratio: 16/10; border-radius: var(--rep-radius-card); overflow: hidden; margin-bottom: 10px; }
.rep-insight-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rep-insight-card__date { font-size: .75rem; color: var(--rep-color-muted); }
.rep-insight-card__title { font-size: 1.05rem; margin: 4px 0 6px; }
.rep-insight-card__excerpt { font-size: .875rem; color: var(--rep-color-muted); }

@media (max-width: 720px) {
	.rep-insights-grid { grid-template-columns: 1fr; }
}
