/* ===================== Búsqueda de propiedades (diseño ejemplo-busqueda) ===================== */
body.buscar{ background:#fff; color:#20182d; }
.bq-app, .bq-app *{ box-sizing:border-box; }
.bq-app{ max-width:1400px; margin:44px auto 0; padding:0 28px 48px; font-family:Montserrat,Arial,sans-serif; font-size:12px; color:#20182d; }
.bq-app [hidden]{ display:none !important; }
.bq-app button, .bq-app input, .bq-app select{ font:inherit; }
.bq-app button, .bq-app a{ cursor:pointer; }
.bq-app button:focus-visible, .bq-app a:focus-visible, .bq-app input:focus-visible, .bq-app select:focus-visible{ outline:3px solid #ca3bc5; outline-offset:3px; }
.bq-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.bq-eyebrow{ font-size:10px; letter-spacing:.12em; color:#660066; font-weight:600; margin:0 0 14px; }
.bq-app h1{ font-size:30px; font-weight:600; letter-spacing:-.8px; margin:0 0 22px; color:#20182d; }

/* Buscador y orden */
.bq-toolbar{ display:flex; gap:18px; align-items:center; justify-content:space-between; }
.bq-search{ display:flex; align-items:center; border:1px solid #e6dce9; border-radius:99px; padding:5px 6px 5px 20px; max-width:650px; width:100%; background:#faf7fc; }
.bq-search input{ border:0; background:transparent; outline:none; width:100%; padding:11px 0; min-width:0; color:#20182d; }
.bq-search input:focus-visible{ outline:none; }
.bq-search:focus-within{ outline:3px solid #ca3bc5; outline-offset:3px; }
.bq-search button{ border:0; background:#660066; color:#fff; border-radius:50%; width:38px; height:38px; flex:none; font-size:20px; line-height:1; }
.bq-order{ display:flex; align-items:center; gap:8px; color:#827e99; white-space:nowrap; }
.bq-order select{ border:0; background:#fff; color:#20182d; font-weight:500; max-width:165px; padding:8px; }

/* Chips y ventanitas */
.bq-filters{ display:flex; gap:10px; flex-wrap:wrap; margin:20px 0 24px; align-items:center; }
.bq-filter{ position:relative; }
.bq-chip{ border:1px solid #e6dce9; background:#fff; border-radius:99px; padding:11px 15px; color:#20182d; font-weight:500; }
.bq-chip:hover{ border-color:#cba5cf; }
.bq-chip.active{ background:#f3dff3; border-color:#cba5cf; color:#660066; }
.bq-pop{ position:absolute; top:48px; left:0; z-index:10; background:#fff; border:1px solid #eadfea; border-radius:18px; padding:20px; width:260px; box-shadow:0 15px 45px -15px #bba8c4; }
.bq-pop > strong{ display:block; font-size:13px; margin-bottom:14px; }
.bq-options{ display:grid; gap:12px; }
.bq-options label{ display:flex; gap:8px; align-items:center; font-size:12px; cursor:pointer; }
.bq-scroll{ max-height:240px; overflow-y:auto; padding-right:6px; }
.bq-sub{ font-size:11px; font-weight:600; color:#827e99; margin:16px 0 10px; }
.bq-sub:first-of-type{ margin-top:0; }
.bq-app input[type=checkbox], .bq-app input[type=radio]{ accent-color:#660066; }
.bq-range{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.bq-range input, .bq-select{ width:100%; min-width:0; border:1px solid #eadfea; border-radius:10px; padding:10px; background:#fff; color:#20182d; }
.bq-primary{ border:0; border-radius:99px; padding:12px 20px; font-weight:600; background:#390042; color:#fff; width:100%; margin-top:18px; font-size:11px; }
.bq-primary:hover{ background:#660066; }
.bq-clear{ border:0; background:transparent; color:#660066; font-size:11px; padding:8px; text-decoration:none; }
.bq-clear:hover{ text-decoration:underline; }

.bq-status{ display:flex; justify-content:space-between; align-items:center; margin:0 0 18px; color:#827e99; }

/* Lista + mapa */
.bq-layout{ display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
.bq-results{ display:grid; grid-template-columns:1fr; gap:18px; }
.bq-card{ border:1px solid #eee5f0; border-radius:22px; overflow:hidden; background:#fff; transition:border-color .15s; }
.bq-card.resaltada{ border:2px solid #a3529e; }
.bq-foto{ position:relative; height:185px; background:#eee3f3; }
.bq-foto img{ width:100%; height:100%; display:block; object-fit:cover; }
.bq-foto a{ display:block; height:100%; }
.bq-sin-foto{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#a3529e; }
.bq-sin-foto svg{ width:38px; height:38px; }
.bq-insignia{ position:absolute; top:12px; left:12px; background:rgba(255,255,255,.96); color:#660066; font-size:9px; border-radius:99px; padding:7px 11px; }
.bq-corazon{ position:absolute; right:12px; top:12px; border:0; border-radius:50%; width:30px; height:30px; background:#fff; color:#660066; font-size:18px; line-height:1; padding:0; }
.bq-corazon[aria-pressed=true]{ background:#660066; color:#fff; }
.bq-corazon:disabled{ opacity:.6; cursor:wait; }
.bq-tc{ padding:17px; }
.bq-precio{ font-size:19px; font-weight:600; color:#390042; letter-spacing:-.5px; margin:0 0 10px; }
.bq-precio small{ font-size:9px; font-weight:400; letter-spacing:0; }
.bq-titulo{ font-size:13px; line-height:1.6; font-weight:600; margin:0 0 5px; color:#20182d; }
.bq-lugar{ color:#827e99; font-size:10px; margin:0 0 13px; }
.bq-datos{ display:flex; flex-wrap:wrap; gap:10px; color:#827e99; font-size:10px; }
.bq-acciones{ display:flex; justify-content:space-between; align-items:center; margin-top:16px; gap:10px; flex-wrap:wrap; }
.bq-ver{ display:flex; align-items:center; justify-content:center; gap:10px; flex:1; min-height:44px; padding:12px 18px; border-radius:99px; background:#390042; color:#fff; font-size:12px; font-weight:600; text-decoration:none; }
.bq-ver:hover{ background:#660066; }
.bq-ver-mapa{ background:#faf0fa; color:#660066; border:0; border-radius:99px; padding:10px 12px; font-size:9px; display:none; }
.bq-ver-mapa:hover{ background:#f3dff3; }

.bq-aviso-mapa{ display:flex; align-items:center; justify-content:space-between; gap:12px; background:#f3dff3; color:#660066; padding:10px 16px; border-radius:14px; font-size:11px; font-weight:600; margin-bottom:14px; }
.bq-aviso-mapa button{ border:0; background:#fff; color:#660066; font-size:10px; font-weight:600; padding:7px 14px; border-radius:99px; }
.bq-empty{ padding:48px 20px; border-radius:20px; background:#faf6fc; text-align:center; color:#827e99; line-height:1.8; }
.bq-empty h2{ color:#20182d; font-size:17px; margin:0 0 6px; }
.bq-empty p{ margin:0; }
.bq-paginas{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:24px; }
.bq-pag{ min-width:34px; height:34px; padding:0 6px; border:1px solid #e6dce9; border-radius:50%; background:#fff; color:#660066; display:flex; align-items:center; justify-content:center; font-weight:600; text-decoration:none; }
a.bq-pag:hover{ background:#faf0fa; }
.bq-pag.actual{ background:#660066; color:#fff; border-color:#660066; }
.bq-pag svg{ width:14px; height:14px; }
.bq-pag-puntos{ color:#827e99; align-self:center; }
.bq-mas-wrap{ display:flex; justify-content:center; margin-top:22px; }
.bq-ver-mas{ border:1px solid #e6dce9; background:#fff; color:#660066; font-size:11px; font-weight:600; padding:12px 26px; border-radius:99px; }
.bq-ver-mas:hover{ background:#faf0fa; }
.bq-ver-mas:disabled{ opacity:.6; cursor:wait; }

/* Mapa (solo escritorio) */
.bq-map-col{ display:none; position:sticky; top:20px; }
.bq-map{ height:590px; max-height:calc(100svh - 50px); min-height:380px; position:relative; background:#edf0e9; border-radius:24px; overflow:hidden; border:1px solid #e6dce9; }
#bq-mapa{ position:absolute; inset:0; z-index:1; }
.bq-map-top{ position:absolute; top:16px; left:16px; z-index:500; background:#fff; padding:10px 14px; border-radius:99px; font-size:10px; color:#660066; box-shadow:0 4px 16px #bdc4b940; }
.bq-map-tools{ position:absolute; top:16px; right:16px; z-index:500; display:grid; gap:7px; }
.bq-map-tools button{ width:34px; height:34px; border:0; background:#fff; color:#660066; border-radius:10px; font-size:20px; line-height:1; padding:0; box-shadow:0 4px 12px -4px rgba(57,0,66,.3); }
.bq-map-tools button:hover{ background:#faf0fa; }
.bq-mover{ position:absolute; left:12px; bottom:12px; z-index:500; display:flex; align-items:center; gap:7px; font-size:10px; background:#ffffffdf; padding:7px 10px; border-radius:8px; color:#827e99; cursor:pointer; }
.bq-mover input{ width:14px; height:14px; }
.bq-mapa-nota{ position:absolute; left:16px; right:16px; top:64px; z-index:500; margin:0; background:#fff; border-radius:12px; padding:12px 14px; font-size:11px; color:#827e99; text-align:center; box-shadow:0 4px 16px #bdc4b940; }
.bq-map-popup{ position:absolute; bottom:44px; left:16px; right:16px; z-index:600; border-radius:16px; background:#fff; padding:14px; box-shadow:0 8px 30px #acb6a980; display:flex; gap:13px; align-items:center; }
.bq-map-popup img, .bq-map-popup .bq-pp-sinfoto{ width:85px; height:65px; object-fit:cover; border-radius:10px; background:#eee3f3; flex:none; }
.bq-map-popup strong{ display:block; font-size:11px; margin-bottom:6px; padding-right:18px; }
.bq-map-popup .bq-pp-precio{ display:block; font-size:10px; color:#660066; }
.bq-map-popup a{ display:inline-block; font-size:10px; margin-top:7px; color:#660066; }
.bq-popup-close{ position:absolute; right:8px; top:5px; border:0; background:transparent; font-size:18px; color:#827e99; line-height:1; }
.leaflet-container{ font-family:Montserrat,Arial,sans-serif; background:#edf0e9; }
.leaflet-control-attribution{ font-size:9px; }
.bq-pin-wrap{ background:transparent; border:0; }
.bq-pin{ position:absolute; transform:translate(-50%,-50%); background:#fff; border:1px solid #e2d4e7; border-radius:99px; padding:9px 12px; box-shadow:0 3px 12px #bfc8bc80; color:#660066; font-size:10px; font-weight:600; white-space:nowrap; line-height:1; }
.bq-pin-wrap:hover .bq-pin, .bq-pin-wrap.selected .bq-pin, .bq-pin-wrap.activo .bq-pin{ background:#660066; color:#fff; border-color:#660066; }
.bq-pin-wrap:hover, .bq-pin-wrap.selected, .bq-pin-wrap.activo{ z-index:1000 !important; }

@media (min-width:1024px){
  .bq-layout{ grid-template-columns:minmax(0,1fr) minmax(0,.95fr); }
  .bq-map-col{ display:block; }
  .bq-ver-mapa{ display:inline-block; }
}
@media (min-width:1180px){ .bq-results{ grid-template-columns:1fr 1fr; } }
@media (max-width:1023px) and (min-width:640px){ .bq-results{ grid-template-columns:1fr 1fr; } .bq-foto{ height:210px; } }
@media (max-width:700px){
  .bq-app{ margin-top:28px; padding:0 18px 32px; }
  .bq-app h1{ font-size:26px; }
  .bq-toolbar{ flex-direction:column; align-items:stretch; gap:12px; }
  .bq-order{ justify-content:flex-end; }
  .bq-filters{ flex-wrap:nowrap; overflow-x:auto; margin-left:-4px; margin-right:-4px; padding:2px 4px 6px; scrollbar-width:none; }
  .bq-filters::-webkit-scrollbar{ display:none; }
  .bq-filter{ position:static; }
  .bq-chip{ white-space:nowrap; }
  .bq-pop{ position:fixed; left:18px; right:18px; bottom:20px; top:auto; width:auto; max-height:70svh; overflow:auto; z-index:200; box-shadow:0 -10px 60px -10px rgba(0,0,0,.45); }
  .bq-tc{ padding:13px; }
  .bq-precio{ font-size:16px; }
}
@media (prefers-reduced-motion:reduce){ .bq-app *{ transition:none !important; } }

/* Mapa estándar con los colores bajados para que combine con el diseño */
.mapa-suave .leaflet-tile-pane{ filter:grayscale(.75) saturate(.7) brightness(1.05) contrast(.92); }

/* Píldoras de precio cuando el mapa es de Google (se colocan solas sobre el mapa) */
.bq-pin-google{ position:absolute; width:0; height:0; cursor:pointer; background:transparent; border:0; }
.bq-pin-google:hover, .bq-pin-google.selected, .bq-pin-google.activo{ z-index:1000; }
.bq-pin-google:focus-visible .bq-pin{ outline:3px solid #ca3bc5; outline-offset:2px; }
#bq-mapa .gm-style{ font-family:Montserrat,Arial,sans-serif; }

/* Tarjetas compactas y selección vinculada al mapa. */
.bq-app{font-size:14px}.bq-eyebrow{font-size:12px}.bq-options label,.bq-sub,.bq-primary,.bq-clear{font-size:13px}
.bq-pop>strong{font-size:15px}.bq-card{font-size:12px;min-width:0;transition:border-color .18s,box-shadow .18s}
.bq-card.resaltada{border:1px solid #660066;box-shadow:0 0 0 2px #660066,0 8px 22px rgba(102,0,102,.12)}
.bq-card.resaltada .bq-tc{background:linear-gradient(135deg,#fff 10%,#f5e9f8 100%)}
.bq-map-popup{display:none!important}.bq-map-top,.bq-mover,.bq-mapa-nota{font-size:12px;line-height:1.5}
.bq-pin{font-size:12px;padding:10px 13px}.bq-zonas-fuente{font-size:11px;color:#655d74;margin-top:12px}
@media(prefers-reduced-motion:reduce){.bq-card{transition:none}}

#bq-pop-zona label{display:block;margin:12px 0 6px;font-size:13px}#bq-pop-zona select{width:100%;font-family:inherit;font-size:13px}.bq-zonas-fuente{position:absolute;right:8px;bottom:26px;z-index:2;max-width:calc(100% - 16px);margin:0!important;padding:3px 7px;border-radius:5px;background:rgba(255,255,255,.94);color:#6b5571;font-size:10px;line-height:1.4;text-align:right;pointer-events:none}
