/* ===== Search IDX — rediseño v3.0 =====
   Todo bajo #searchIdxMap para no chocar con el theme de WordPress de cada
   realtor (cada uno de los 6 sitios trae su propio theme). Prefijo
   "searchidx-" en las clases nuevas por la misma razón. */

#searchIdxMap {
    --searchidx-accent: #E2653F;
    --searchidx-rent: #3D8FA6;
    --searchidx-bg: #FAF8F5;
    --searchidx-border: #E8E3DC;
    --searchidx-border-strong: #D8D2C8;
    --searchidx-ink: #211F1D;
    --searchidx-ink-2: #6B6660;
    --searchidx-ink-3: #9C958D;
    font-family: 'Manrope', 'Roboto', sans-serif;
    color: var(--searchidx-ink);
    background: var(--searchidx-bg);
    padding: 20px 0;
}

#searchIdxMap * { box-sizing: border-box; }
#searchIdxMap a.btn-secondary { text-decoration: none; }

/* -- búsqueda en lenguaje natural + voz -------------------------------- */
#searchIdxMap .searchidx-smartbar {
    background: #fff;
    border: 1.5px solid var(--searchidx-accent);
    border-radius: 16px;
    padding: 10px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(33,31,29,0.05);
}
#searchIdxMap .searchidx-smartbar-icon { color: var(--searchidx-accent); flex-shrink: 0; display: flex; }
#searchIdxMap .searchidx-smart-input {
    border: 0;
    background: transparent;
    font-size: 14px;
    font-weight: 500;
    color: var(--searchidx-ink);
    flex: 1;
    min-width: 100px;
    outline: none;
    font-family: inherit;
}
#searchIdxMap .searchidx-smart-mic,
#searchIdxMap .searchidx-smart-go {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 0 !important;
    cursor: pointer;
    box-shadow: none !important;
    padding: 0 !important;
}
#searchIdxMap .searchidx-smart-mic { background: #F1EEE9 !important; color: var(--searchidx-ink-2) !important; }
#searchIdxMap .searchidx-smart-mic.listening { background: var(--searchidx-accent) !important; color: #fff !important; animation: searchidx-pulse 1.2s infinite; }
#searchIdxMap .searchidx-smart-go { background: var(--searchidx-accent) !important; color: #fff !important; }
#searchIdxMap .searchidx-smartbar-hint {
    font-size: 12px;
    color: var(--searchidx-ink-3);
    text-align: center;
    margin: 6px 4px 12px;
}

@keyframes searchidx-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(226,101,63,0.45); }
    50% { box-shadow: 0 0 0 8px rgba(226,101,63,0); }
}

/* -- "pregunta sobre esta propiedad" (detalle) — reusa el look de la barra
   de búsqueda inteligente, mismas clases, otro contexto ------------------ */
#searchIdxMap #askPropertyBar { margin-top: 22px; }
#searchIdxMap .searchidx-ask-chips {
    display: flex; flex-wrap: wrap; gap: 8px;
    margin: 12px 0 6px;
}
#searchIdxMap .searchidx-ask-chip {
    background: #fff !important; border: 1.5px solid var(--searchidx-border-strong) !important;
    color: var(--searchidx-ink) !important; border-radius: 999px !important;
    padding: 8px 14px !important; font-size: 13px !important; font-weight: 700 !important;
    cursor: pointer; box-shadow: none !important; text-transform: none !important;
}
#searchIdxMap .searchidx-ask-chip:hover { border-color: var(--searchidx-accent) !important; color: var(--searchidx-accent) !important; }
#searchIdxMap .searchidx-ask-answer {
    background: #fff; border: 1px solid var(--searchidx-border); border-radius: 14px;
    padding: 14px 16px; font-size: 14px; font-weight: 600; color: var(--searchidx-ink);
    margin: 6px 0 18px;
}

/* -- barra de filtros ------------------------------------------------- */
#searchIdxMap .searchidx-filterbar {
    background: #fff;
    border: 1px solid var(--searchidx-border);
    border-radius: 16px;
    padding: 10px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    box-shadow: 0 1px 3px rgba(33,31,29,0.05);
}

#searchIdxMap .searchidx-toggle {
    display: flex;
    background: #F1EEE9;
    border-radius: 999px;
    padding: 4px;
    gap: 2px;
    flex-shrink: 0;
}
#searchIdxMap .searchidx-toggle button {
    border: 0 !important;
    background: transparent !important;
    padding: 9px 20px !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: var(--searchidx-ink-2) !important;
    cursor: pointer;
    font-family: inherit;
    box-shadow: none !important;
    text-transform: none !important;
}
#searchIdxMap .searchidx-toggle button.active.sale { background: var(--searchidx-accent) !important; color: #fff !important; }
#searchIdxMap .searchidx-toggle button.active.rent { background: var(--searchidx-rent) !important; color: #fff !important; }

#searchIdxMap .searchidx-locationbox {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #F7F5F2;
    border-radius: 12px;
    padding: 6px 14px;
    flex: 1;
    min-width: 180px;
}
#searchIdxMap .searchidx-locationbox input {
    border: 0;
    background: transparent;
    font-size: 14px;
    font-weight: 500;
    color: var(--searchidx-ink);
    width: 100%;
    outline: none;
}

#searchIdxMap .searchidx-searchbtn {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    border-radius: 12px !important;
    background: var(--searchidx-accent) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 0 !important;
    cursor: pointer;
    box-shadow: none !important;
    padding: 0 !important;
}

#searchIdxMap .searchidx-sharebtn {
    display: flex !important;
    align-items: center;
    gap: 6px;
    background: #fff !important;
    border: 1.5px solid var(--searchidx-border-strong) !important;
    color: var(--searchidx-ink) !important;
    border-radius: 12px !important;
    padding: 10px 14px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    cursor: pointer;
    flex-shrink: 0;
    box-shadow: none !important;
    text-transform: none !important;
}
#searchIdxMap .searchidx-sharebtn:hover { border-color: var(--searchidx-accent) !important; color: var(--searchidx-accent) !important; }

/* -- guardar búsqueda + alertas por email/futuro SMS ------------------- */
#searchIdxMap .searchidx-savesearch-panel {
    background: #fff; border: 1.5px solid var(--searchidx-border-strong); border-radius: 16px;
    padding: 16px 18px; margin: 12px 0 4px; max-width: 420px;
}
#searchIdxMap .searchidx-savesearch-title { font-weight: 800; font-size: 14px; margin-bottom: 10px; }
#searchIdxMap .searchidx-savesearch-input {
    display: block; width: 100%; border: 1.5px solid var(--searchidx-border) !important; border-radius: 10px !important;
    padding: 9px 12px !important; font-size: 13px !important; margin-bottom: 8px !important; font-family: inherit;
    background: #fff !important; color: var(--searchidx-ink) !important;
}
#searchIdxMap .searchidx-savesearch-freq { display: flex; flex-wrap: wrap; gap: 10px; font-size: 12.5px; color: var(--searchidx-ink-2); margin: 4px 0 12px; }
#searchIdxMap .searchidx-savesearch-freq label { display: flex; align-items: center; gap: 5px; cursor: pointer; font-weight: 600; }
#searchIdxMap .searchidx-savesearch-submit {
    width: 100% !important; background: var(--searchidx-accent) !important; color: #fff !important; border: 0 !important;
    border-radius: 10px !important; padding: 11px !important; font-weight: 800 !important; font-size: 13.5px !important;
    cursor: pointer; box-shadow: none !important; text-transform: none !important;
}
#searchIdxMap .searchidx-savesearch-submit:disabled { opacity: .6; cursor: default; }
#searchIdxMap .searchidx-savesearch-hint { font-size: 11.5px; color: var(--searchidx-ink-3); text-align: center; margin-top: 8px; }

/* -- tarjetas de propiedad --------------------------------------------- */
#searchIdxMap .searchidx-card {
    background: #fff;
    border: 1px solid var(--searchidx-border);
    border-radius: 16px;
    overflow: hidden;
    height: 100%;
}
#searchIdxMap .searchidx-card-media { position: relative; height: 158px; background: linear-gradient(135deg,#EDE8E0,#E2DCD2); }
#searchIdxMap .searchidx-card-img.property-img { height: 158px; width: 100%; object-fit: cover; cursor: pointer; display: block; }
#searchIdxMap .searchidx-badge {
    position: absolute; top: 10px; left: 10px;
    color: #fff; font-weight: 700; font-size: 10.5px; letter-spacing: .03em;
    padding: 5px 9px; border-radius: 999px;
}
#searchIdxMap .searchidx-badge-sale { background: var(--searchidx-accent); }
#searchIdxMap .searchidx-badge-rent { background: var(--searchidx-rent); }
#searchIdxMap .searchidx-card-body { padding: 13px 15px 15px; }
#searchIdxMap .searchidx-card-price { font-weight: 800; font-size: 18px; color: var(--searchidx-ink); }
#searchIdxMap .searchidx-card-address { font-size: 12.5px; color: var(--searchidx-ink-2); margin-top: 2px; }
#searchIdxMap .searchidx-card-specs { display: flex; gap: 12px; margin-top: 9px; }
#searchIdxMap .searchidx-card-specs span { display: flex; align-items: center; gap: 4px; color: var(--searchidx-ink-2); font-size: 12px; font-weight: 700; }

/* -- meta / sort row ----------------------------------------------------- */
#searchIdxMap .searchidx-meta { display: flex; align-items: baseline; justify-content: space-between; margin-top: 16px; flex-wrap: wrap; gap: 10px; }
#searchIdxMap .searchidx-meta-title { font-weight: 800; font-size: 20px; }
#searchIdxMap .searchidx-meta-sub { font-size: 13px; color: var(--searchidx-ink-2); margin-left: 8px; }

/* -- mapa ----------------------------------------------------------------- */
#searchIdxMap #map {
    position: relative !important;
    border-radius: 20px;
    height: 838px;
    width: 100%;
}
@media only screen and (max-width: 768px) { #searchIdxMap #map { height: 420px; } }

#searchIdxMap .leaflet-popup-content img { width: 100%; height: 100px; object-fit: cover; margin-top: .5rem; cursor: pointer; }
#searchIdxMap .leaflet-popup-content { width: 200px !important; margin-left: 10px; margin-right: 10px; }

/* -- paginación ------------------------------------------------------------ */
#searchIdxMap .page-link, #searchIdxMap .page-link:hover { color: var(--searchidx-ink-2); text-decoration: none !important; border-radius: 999px !important; }
#searchIdxMap .page-link:active, #searchIdxMap .page-link.active,
#searchIdxMap .page-item.active .page-link { color: #fff; background-color: var(--searchidx-accent); border-color: var(--searchidx-accent); }

/* -- vista de detalle (página completa, ya no modal) ----------------------- */
#searchIdxMap .searchidx-detail { background: var(--searchidx-bg); padding: 10px 0 30px; }
#searchIdxMap .searchidx-detail-back { display: flex; align-items: center; gap: 8px; color: var(--searchidx-ink-2); font-size: 13px; font-weight: 700; margin-bottom: 16px; cursor: pointer; width: fit-content; }
#searchIdxMap .searchidx-gallery-main { position: relative; border-radius: 20px; overflow: hidden; height: 420px; background: linear-gradient(135deg,#E7E1D6,#D8D0C1); }
#searchIdxMap .searchidx-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
#searchIdxMap .searchidx-gallery-thumbs { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; margin-top: 10px; }
#searchIdxMap .searchidx-gallery-thumbs img { width: 100%; height: 80px; object-fit: cover; border-radius: 12px; cursor: pointer; }

#searchIdxMap .searchidx-detail-header { display: flex; align-items: flex-start; justify-content: space-between; margin-top: 24px; flex-wrap: wrap; gap: 18px; }
#searchIdxMap .searchidx-detail-price { font-weight: 800; font-size: 30px; }
#searchIdxMap .searchidx-price-check {
    display: inline-block; font-size: 12.5px; font-weight: 700;
    margin-top: 6px; padding: 4px 11px; border-radius: 999px;
}
#searchIdxMap .searchidx-price-check.good { background: #E7F4EC; color: #1F7A45; }
#searchIdxMap .searchidx-price-check.avg  { background: #F1EEE9; color: var(--searchidx-ink-2); }
#searchIdxMap .searchidx-price-check.high { background: #FBEAE3; color: var(--searchidx-accent); }
#searchIdxMap .searchidx-detail-address { font-size: 15px; color: var(--searchidx-ink-2); margin-top: 4px; font-weight: 600; }
#searchIdxMap .searchidx-detail-specs { display: flex; gap: 18px; margin-top: 12px; flex-wrap: wrap; }
#searchIdxMap .searchidx-detail-specs span { display: flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700; }

#searchIdxMap .searchidx-share-row { display: flex; gap: 10px; }
#searchIdxMap .searchidx-share-circle {
    width: 44px !important; height: 44px !important; min-width: 44px !important; border-radius: 999px !important; display: flex !important; align-items: center;
    justify-content: center; cursor: pointer; border: 1.5px solid var(--searchidx-border-strong) !important; color: var(--searchidx-ink) !important;
    background: #fff !important; box-shadow: none !important; padding: 0 !important; text-decoration: none !important;
}
#searchIdxMap .searchidx-share-circle svg { display: block; pointer-events: none; }
#searchIdxMap .searchidx-share-circle.whatsapp { background: #25D366 !important; color: #fff !important; border: 0 !important; }
#searchIdxMap .searchidx-share-circle.facebook { background: #1877F2 !important; color: #fff !important; border: 0 !important; }
#searchIdxMap .searchidx-share-toast {
    position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
    background: var(--searchidx-ink); color: #fff; padding: 10px 18px; border-radius: 14px;
    font-size: 13px; font-weight: 700; z-index: 99999; opacity: 0; pointer-events: none; transition: opacity .2s;
    max-width: min(92vw, 420px); text-align: center;
}
#searchIdxMap .searchidx-share-toast.show { opacity: 1; }

#searchIdxMap .searchidx-detail-body { display: grid; grid-template-columns: 1.7fr 1fr; gap: 30px; margin-top: 26px; }
@media only screen and (max-width: 992px) { #searchIdxMap .searchidx-detail-body { grid-template-columns: 1fr; } }
#searchIdxMap .searchidx-comparables { margin-top: 30px; }
#searchIdxMap .searchidx-section-title { font-weight: 800; font-size: 17px; margin: 22px 0 10px; }
#searchIdxMap .searchidx-detail-body > div:first-child .searchidx-section-title:first-child { margin-top: 0; }
#searchIdxMap .searchidx-chip { background: #F1EEE9; font-size: 13px; font-weight: 700; padding: 7px 13px; border-radius: 999px; display: inline-block; margin: 0 8px 8px 0; }
#searchIdxMap .searchidx-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; background: #fff; border: 1px solid var(--searchidx-border); border-radius: 16px; padding: 16px 18px; }
#searchIdxMap .searchidx-details-grid > div { display: flex; justify-content: space-between; font-size: 13px; padding: 5px 0; border-bottom: 1px solid var(--searchidx-border); }
#searchIdxMap .searchidx-details-grid > div span:first-child { color: var(--searchidx-ink-2); }
#searchIdxMap .searchidx-details-grid > div span:last-child { font-weight: 700; }

#searchIdxMap .searchidx-contact-card { background: #fff; border: 1px solid var(--searchidx-border); border-radius: 18px; padding: 20px; box-shadow: 0 4px 16px rgba(33,31,29,0.06); position: sticky; top: 20px; }
#searchIdxMap .searchidx-contact-card .wpforms-field { padding: 6px 0 !important; }

/* -- pie publicitario en propiedades compartidas --------------------------- */
#searchIdxMap .searchidx-ad-footer {
    margin-top: 26px; text-align: center; font-size: 11.5px; color: var(--searchidx-ink-3);
    border-top: 1px dashed var(--searchidx-border-strong); padding-top: 12px;
}
#searchIdxMap .searchidx-ad-footer a { color: #1DA851; font-weight: 700; text-decoration: underline; }
#searchIdxMap .searchidx-ad-footer a:hover { color: #128C3E; }

/* -- toggle Lista/Mapa (solo visible/activo por debajo de 992px) ------------ */
#searchIdxMap .searchidx-viewtoggle {
    display: flex;
    gap: 8px;
    margin-top: 14px;
}
#searchIdxMap .searchidx-viewtoggle button {
    flex: 1;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid var(--searchidx-border-strong) !important;
    background: #fff !important;
    color: var(--searchidx-ink-2) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 10px !important;
    border-radius: 12px !important;
    cursor: pointer;
    box-shadow: none !important;
    text-transform: none !important;
}
#searchIdxMap .searchidx-viewtoggle button.active { background: var(--searchidx-ink) !important; color: #fff !important; border-color: var(--searchidx-ink) !important; }

@media only screen and (max-width: 991.98px) {
    #searchIdxResultsRow.mode-list .searchidx-map-col { display: none; }
    #searchIdxResultsRow.mode-map .searchidx-list-col { display: none; }
    #searchIdxResultsRow.mode-map .searchidx-map-col #map { height: calc(100vh - 260px); min-height: 360px; }
}

/* -- responsive (mobile) ---------------------------------------------------- */
@media only screen and (max-width: 767px) {
    #searchIdxMap { padding: 14px 0; }

    #searchIdxMap .searchidx-filterbar {
        flex-direction: column;
        align-items: stretch;
        border-radius: 18px;
        padding: 12px;
    }
    #searchIdxMap .searchidx-toggle,
    #searchIdxMap .searchidx-locationbox { width: 100%; }
    #searchIdxMap .searchidx-toggle button { flex: 1; text-align: center; }
    #searchIdxMap .searchidx-filterbar > div.btn-group { width: 100%; }
    #searchIdxMap .searchidx-filterbar > div.btn-group > button.dropdown-toggle { width: 100%; }
    #searchIdxMap .searchidx-filterbar > .searchidx-sharebtn,
    #searchIdxMap .searchidx-filterbar > .searchidx-searchbtn { width: 100%; border-radius: 12px; }
    #searchIdxMap .searchidx-filterbar hr.searchidx-divider { display: none; }

    #searchIdxMap .searchidx-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
    #searchIdxMap .searchidx-meta .d-flex { width: 100%; justify-content: space-between; }

    #searchIdxMap .searchidx-gallery-main { height: 260px; }
    #searchIdxMap .searchidx-gallery-thumbs { grid-template-columns: repeat(3,1fr); }
    #searchIdxMap .searchidx-detail-price { font-size: 24px; }
    #searchIdxMap .searchidx-detail-header { flex-direction: column; }
    #searchIdxMap .searchidx-contact-card { position: static; }
}

/* -- lo que se sigue usando de la versión anterior -------------------------- */
#searchIdxMap .typeahead.dropdown-menu { width: 100%; text-align: left; z-index: 9999; }
#searchIdxMap .typeahead .dropdown-item:hover, #searchIdxMap .typeahead .dropdown-item:focus, #searchIdxMap .typeahead .dropdown-item.active { background-color: #e9ecef; }
#searchIdxMap .autocomplete-suggestions { border: 1px solid var(--searchidx-border-strong); background: #FFF; overflow: auto; border-radius: 10px; }
#searchIdxMap .autocomplete-suggestion { padding: 8px 12px; white-space: nowrap; overflow: hidden; font-size: 13px; }
#searchIdxMap .autocomplete-selected { background: #F7F5F2; }
#searchIdxMap .autocomplete-suggestions strong { font-weight: 700; color: var(--searchidx-accent); }
#searchIdxMap .wpforms-field { padding: 8px 0 !important; }
#searchIdxMap .wpforms-field-label { font-weight: 700 !important; color: var(--searchidx-ink-2); }
#searchIdxMap .dropdown-menu { z-index: 9999; }
