.gn-espo-idx{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;}
.gn-espo-idx__loading{padding:16px;opacity:.8}
.gn-espo-idx__wrap{max-width:1200px;margin:0 auto;padding:12px}
.gn-espo-idx__filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:10px 0 14px}
.gn-espo-idx__filters label{display:flex;flex-direction:column;gap:6px;font-size:13px;opacity:.9}
.gn-espo-idx__filters input,.gn-espo-idx__filters select{min-width:160px;padding:8px 10px;border:1px solid rgba(0,0,0,.15);border-radius:10px;background:rgba(255,255,255,.8)}
.gn-espo-idx__btn{padding:9px 12px;border:1px solid rgba(0,0,0,.15);border-radius:12px;background:rgba(255,255,255,.85);cursor:pointer}
.gn-espo-idx__grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:12px}
@media (min-width:640px){.gn-espo-idx__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:980px){.gn-espo-idx__grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.gn-espo-idx__card{position:relative;border:1px solid rgba(0,0,0,.12);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.82);box-shadow:0 4px 16px rgba(0,0,0,.06)}
.gn-espo-idx__img{width:100%;aspect-ratio:16/10;object-fit:cover;background:rgba(0,0,0,.04)}
.gn-espo-idx__body{padding:12px 12px 14px}
.gn-espo-idx__title{font-size:16px;font-weight:700;line-height:1.25;margin:0 0 6px}
.gn-espo-idx__meta{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;opacity:.9}
.gn-espo-idx__price{font-size:15px;font-weight:800;margin:10px 0 0}
.gn-espo-idx__pager{display:flex;gap:10px;align-items:center;justify-content:center;margin:16px 0}
.gn-espo-idx__detail{max-width:1100px;margin:0 auto;padding:12px}
.gn-espo-idx__hero{position:relative;border:1px solid rgba(0,0,0,.12);border-radius:22px;overflow:hidden;background:rgba(255,255,255,.82);box-shadow:0 6px 22px rgba(0,0,0,.06)}

/* ==========================================================
 * Status Badge (ACTIVE / SOLD / PENDING) — Card & Detail Hero
 * ========================================================== */
.gn-espo-idx__statusBadge{position:absolute;top:12px;left:12px;z-index:5;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;font-size:12px;font-weight:900;letter-spacing:.08em;line-height:1;color:#fff;text-transform:uppercase;border:1px solid rgba(255,255,255,.22);box-shadow:0 6px 18px rgba(0,0,0,.18);background:rgba(17,17,17,.75);backdrop-filter:blur(6px)}
.gn-espo-idx__statusBadge--active{background:rgba(22,163,74,.92)}
.gn-espo-idx__statusBadge--pending{background:rgba(249,115,22,.92)}
.gn-espo-idx__statusBadge--sold{background:rgba(107,114,128,.92)}
.gn-espo-idx__statusBadge--other{background:rgba(10,125,140,.92)}
.gn-espo-idx__hero img{width:100%;aspect-ratio:16/9;object-fit:cover;background:rgba(0,0,0,.04)}
.gn-espo-idx__heroBody{padding:14px 14px 18px}
.gn-espo-idx__h1{margin:0 0 6px;font-size:22px;font-weight:900;line-height:1.2}
.gn-espo-idx__sub{opacity:.9;margin:0 0 10px}
.gn-espo-idx__desc{margin:10px 0 0;white-space:pre-wrap;opacity:.95}

/* ==========================================================
 * Listings (Properties) — Map + Split Layout (Screenshot parity)
 * ========================================================== */
.gn-espo-idx__layout{display:flex;gap:0;align-items:stretch;width:100%;min-height:520px}
.gn-espo-idx__left{flex:0 0 52%;min-width:320px;background:transparent}
.gn-espo-idx__right{flex:1;min-width:300px;position:relative}

.gn-espo-idx__wrap--left{max-width:none;margin:0;padding:14px 16px}

.gn-espo-idx__header{margin:0 0 12px}
.gn-espo-idx__headerTop{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:space-between}
.gn-espo-idx__h2{font-size:20px;font-weight:800;line-height:1.2;margin:0}
.gn-espo-idx__note{margin:8px 0 12px;color:#0a6b7a;font-weight:700;opacity:.95}

.gn-espo-idx__chips{display:flex;flex-wrap:wrap;gap:8px}
.gn-espo-idx__chip{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.08);font-size:12px;opacity:.9}

.gn-espo-idx__searchRow{display:flex;gap:10px;align-items:center}
.gn-espo-idx__searchInput{flex:1;min-width:220px;padding:11px 12px;border:1px solid rgba(0,0,0,.15);border-radius:12px;background:rgba(255,255,255,.9)}
.gn-espo-idx__btn--search{padding:10px 14px;border-radius:12px;background:#0a7d8c;color:#fff;border:1px solid rgba(0,0,0,.12)}
.gn-espo-idx__btn--save{padding:10px 14px;border-radius:12px;background:#f3b42f;color:#111;border:1px solid rgba(0,0,0,.12);opacity:.95}
.gn-espo-idx__btnIcon{font-size:16px;line-height:1}

.gn-espo-idx__toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:12px 0 6px}
.gn-espo-idx__sort{display:flex;gap:8px;align-items:center}
.gn-espo-idx__sortLabel{font-weight:700;opacity:.85}
.gn-espo-idx__sortSelect{padding:9px 10px;border:1px solid rgba(0,0,0,.15);border-radius:12px;background:rgba(255,255,255,.9)}
.gn-espo-idx__btn--filters{padding:10px 14px;border-radius:12px;background:#0a7d8c;color:#fff;border:1px solid rgba(0,0,0,.12)}

.gn-espo-idx__mapWrap{position:sticky;top:88px;height:calc(100vh - 118px);min-height:520px;border-left:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.9)}
.gn-espo-idx__map{width:100%;height:100%}

.gn-espo-idx__card--active{outline:3px solid rgba(10,125,140,.35);outline-offset:2px}

/* Google Maps infowindow content */
.gn-espo-idx__mapInfo{display:flex;gap:10px;max-width:320px}
.gn-espo-idx__mapInfoImg img{width:92px;height:70px;object-fit:cover;border-radius:10px;border:1px solid rgba(0,0,0,.12)}
.gn-espo-idx__mapInfoBody{display:flex;flex-direction:column;gap:4px}
.gn-espo-idx__mapInfoPrice{font-weight:900}
.gn-espo-idx__mapInfoAddr{font-size:12px;opacity:.9}
.gn-espo-idx__mapInfoLink a{font-size:12px;font-weight:800;color:#0a7d8c;text-decoration:none}

/* ==========================================================
 * Google Maps — Advanced Marker "Count" Style (Cluster-like)
 * - Numbers = # of properties near that area (grid clustering)
 * ========================================================== */
.gn-espo-idx__gmCluster{width:var(--gn-gm-size,42px);height:var(--gn-gm-size,42px);border-radius:999px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.82);border:2px solid rgba(0,0,0,.22);box-shadow:0 8px 18px rgba(0,0,0,.12);backdrop-filter:blur(6px);user-select:none;cursor:pointer;line-height:1}
.gn-espo-idx__gmClusterCount{font-weight:900;font-size:14px;color:rgba(0,0,0,.82);letter-spacing:.02em}

@media (max-width: 980px){
  .gn-espo-idx__layout{flex-direction:column}
  .gn-espo-idx__left{flex:1 1 auto;min-width:0}
  .gn-espo-idx__right{flex:0 0 auto}
  .gn-espo-idx__mapWrap{position:relative;top:auto;height:420px;min-height:420px;border-left:none;border-top:1px solid rgba(0,0,0,.08)}
}
