/* Verino – clean template (desktop + mobile) */

[hidden]{display:none !important;}

:root{
  --bg:#fff;
  --text:#111;
  --muted:#666;
  --line:#e6e6e6;
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.12);
  --shadow-soft:0 2px 10px rgba(0,0,0,.06);
  /* Brand (default) – keep consistent with theme override below */
  /* Primary: calm, serious blue (v117 style) */
  --blue:#1E3A8A;
  --red:#B91C1C;  /* selected marker */
  --green:#16a34a;
  --purple:#7c3aed;

  --topbarH:0px;
  --filterbarH:0px;
  --safeTop: env(safe-area-inset-top, 0px);

  --chipH:40px;
  --chipPadX:12px;
}

*{box-sizing:border-box;}
html,body{height:100%;overflow-x:hidden;}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);}
img{max-width:100%;display:block;}
a{color:inherit;}

/* ===== Topbar ===== */
.topbar{border-bottom:1px solid var(--line);background:#fff;}
.topbar-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:12px 22px;}

.svcMobBtn{display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;box-shadow:var(--shadow-soft);}
.bars{display:inline-flex;flex-direction:column;gap:4px;}
.bars span{width:18px;height:2px;background:#111;border-radius:999px;}

/* Mobile services button inside sticky filterbar */
#mServicesBtn{display:none;}


.brand{display:flex;align-items:center;gap:12px;min-width:260px;}
.brand-logo{width:132px;height:132px;object-fit:contain;border-radius:16px;}
.brand-text{min-width:0;}
.brand-name{font-weight:900;font-size:18px;line-height:1.15;white-space:nowrap;}
.brand-slogan{color:var(--muted);font-size:13px;margin-top:2px;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;text-overflow:ellipsis;}

.top-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.contact-pill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;color:#111;text-decoration:none;font-size:13px;background:#fff;}
.contact-pill:hover{box-shadow:var(--shadow-soft);}
.mail-icon,.wa-icon{width:18px;height:18px;}


/* ===== v137 Desktop header spacing + services position ===== */
@media (min-width: 900px){
  .topbar-inner{align-items:flex-end;padding-top:10px;padding-bottom:6px;}
  .services-inner{align-items:flex-end;padding-bottom:0;margin-bottom:-2px;}
  .brand-logo{width:150px;height:150px;}
}

/* ===== Services (desktop bar + mega panel) ===== */
.services{flex:1 1 auto;min-width:0;position:relative;}
.services-inner{display:flex;gap:10px;align-items:flex-end;flex-wrap:nowrap;
  white-space:nowrap;
  overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
.svc-btn{height:36px;padding:0 10px;border:0;background:transparent;border-bottom:2px solid transparent;cursor:pointer;font-weight:900;color:#111;}
.svc-btn:hover{border-bottom-color:#111;}
.svc-btn.is{border-bottom-color:#111;}

.svc-panel{width:100%;}
.svc-panel[hidden]{display:none !important;}

/* Desktop mega panel */
#svcPanel{position:fixed;left:0;right:0;top:calc(var(--topbarH) + var(--safeTop));width:100vw;background:#fff;border-top:1px solid rgba(0,0,0,.08);box-shadow:0 18px 45px rgba(0,0,0,.12);padding:16px 18px 20px;z-index:900;max-height:calc(100dvh - (var(--topbarH) + var(--safeTop)));overflow:auto;}

/* Inline panel (kept for compatibility; not used in the clean JS) */
#svcInline{position:relative;margin-top:10px;}
.svc-panel-inner{max-width:1400px;margin:0 auto;}
.svc-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.svc-panel-title{font-weight:950;font-size:15px;letter-spacing:.02em;}
.svc-close{width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;}
.svc-panel-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
#svcPanelBody{max-width:1400px;margin:0 auto;}
.svc-col{min-width:0;}
.svc-col h4{margin:0 0 8px;font-size:14px;font-weight:950;}
.svc-col p{margin:0 0 10px;color:#555;line-height:1.45;font-size:13px;}
.svc-col ul{margin:0;padding-left:18px;color:#555;}
.svc-col li{margin:0 0 6px;}
@media (max-width:900px){
  .svc-panel-body{grid-template-columns:1fr;}
}

/* Desktop dropdown: match the same content blocks used in mobile detail view */
#svcPanelBody{display:block;max-width:none;margin:0;}
.svcDeskTitle{font-weight:950;letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px;}
.svcDeskWrap{max-width:none;width:100%;margin:0;}

/* ===== v137 Desktop services dropdown: 3 columns to reduce height ===== */
@media (min-width: 900px){
  .svcDeskLong{
    display:grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap:18px;
    line-height:1.65;
  }
  .svcDeskBlock{
    padding:0;
    border-bottom:0;
  }
  .svcDeskH{margin:0 0 8px;}
  .svcDeskP{margin:0;color:#3a3f46;}
}
@media (max-width: 900px){
  .svcDeskLong{display:block;}
  .svcDeskBlock{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.06);}
}

.svcDeskLong{max-width:none;width:100%;margin:0;line-height:1.75;font-size:15px;color:#222;}
.svcDeskBlock{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.06);}
.svcDeskBlock:last-child{border-bottom:0;}
.svcDeskH{margin:0 0 6px;font-size:15px;font-weight:950;}
.svcDeskP{margin:0;color:#444;}
.svcDeskDetail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.svcDeskDetail .svcMobText{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.03);}
.svcDeskDetail .svcMobText ul{margin:0;padding-left:18px;color:#555;}
.svcDeskDetail .svcMobText li{margin:0 0 6px;}
@media (max-width:900px){
  .svcDeskDetail{grid-template-columns:1fr;}
}

/* ===== Filterbar ===== */
.filterbar{position:sticky;top:var(--safeTop);z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(170%) blur(10px);border-bottom:1px solid var(--line);}
.filterbar-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 22px;flex-wrap:wrap;}

.chip{display:inline-flex;align-items:center;gap:10px;height:var(--chipH);padding:0 var(--chipPadX);background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:0 1px 0 rgba(0,0,0,.03);}
.filter-item{display:flex;align-items:center;gap:8px;}
.fcap{font-size:13px;color:#111;opacity:.92;white-space:nowrap;font-weight:800;}

.chip select{height:calc(var(--chipH) - 2px);border:0;background:transparent;font-size:14px;font-weight:800;color:#111;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:0 10px 0 0;}
.chip select::-ms-expand{display:none;}

.btn-reset{height:var(--chipH);padding:0 16px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:950;}
.btn-reset:hover{box-shadow:var(--shadow-soft);}

.spacer{flex:1 1 auto;}
.view-toggle{display:inline-flex;background:#f3f3f3;border-radius:999px;padding:4px;}
.toggle-btn{height:32px;padding:0 14px;border-radius:999px;border:0;background:transparent;cursor:pointer;font-weight:950;}
.toggle-btn.is{background:#fff;box-shadow:var(--shadow-soft);}

/* ===== Mobile filterbar (compact toolbar + collapsible panel) ===== */
.mFilterToolbar{display:none;align-items:center;justify-content:space-between;gap:10px;width:100%;}
.mFilterLeft{display:flex;align-items:center;gap:10px;}
.mFilterRight{display:flex;align-items:center;gap:10px;}

#mFiltersBtn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;box-shadow:var(--shadow-soft);}
#mFiltersBtn svg{width:18px;height:18px;opacity:.85;}

.mFilterPanel{display:none;width:100%;padding-top:10px;}
body.mFiltersOpen .mFilterPanel{display:block;}
.mFilterPanel .chip{width:100%;justify-content:space-between;}
.mFilterPanel .chip select{max-width:50vw;}
.mFilterPanel .btn-reset{width:100%;border-radius:14px;height:40px;}

@media (max-width:720px){
  :root{ --chipH:36px; --chipPadX:10px; }
  .topbar-inner,.filterbar-inner{padding-left:14px;padding-right:14px;}
  .services-inner{display:none;}
  /* Mobile: show Services button anchored to the header/logo frame */
  .topbar-inner{position:relative;}
  .svcMobBtn{display:inline-flex !important;position:absolute;left:14px;top:calc(14px + var(--safeTop));z-index:90;}

  /* Mobile: keep filters clean: no services button inside filterbar */
  #mServicesBtn{display:none !important;}
  #mServicesBtn .bars{width:16px;height:11px;display:grid;gap:3px;}
  #mServicesBtn .bars span{display:block;height:2px;border-radius:99px;background:rgba(0,0,0,.72);}

  /* Mobile: keep full filter bar (no compact toolbar) */
  .filterbar-inner{flex-wrap:wrap;}
  /* No extra left padding needed */
  .chip{height:var(--chipH);}
  .chip select{max-width:52vw;}
  .btn-reset{height:var(--chipH);}

  /* Mobile header layout: logo centered, then name, then slogan; contacts row below */
  .topbar-inner{flex-direction:column;align-items:stretch;gap:10px;}
  .brand{min-width:0;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:10px;}
  /* Logo: 3x larger (keeps aspect ratio) */
  .brand-logo{width:162px;height:162px;}
  .brand-text{width:100%;}
  .brand-name,.brand-slogan{white-space:normal;text-align:center;}
  .brand-slogan{overflow:visible;text-overflow:clip;}

  .top-actions{margin-left:0;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;}
  .top-actions .contact-pill{min-width:0;max-width:100%;}
  .top-actions .contact-pill .lbl{min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;text-overflow:ellipsis;white-space:nowrap;}
  .top-actions a:nth-child(1){justify-self:start;}
  .top-actions a:nth-child(2){justify-self:end;}
}

/* Mobile map mode: only filterbar + map (hide topbar and any side card) */
@media (max-width:720px){
  body.is-map .topbar{display:none;}
  body.is-map #viewMap{top:calc(var(--filterbarH) + var(--safeTop));padding:0;}
  body.is-map #viewMap .maplayout{gap:0;flex-direction:column;}
  body.is-map #viewMap .mapside{display:none !important;}
  body.is-map #viewMap .map{border-radius:0;border:0;flex:1 1 auto;min-height:0;}

  /* Mobile map mode: mini details card OUTSIDE the map (no vertical scroll) */
  body.is-map #mapMini.map-mini{
    position:relative;
    left:auto;right:auto;bottom:auto;
    margin:12px 12px calc(12px + env(safe-area-inset-bottom, 0px));
  }
}


/* ===== Page + Cards ===== */
.page{max-width:1400px;margin:0 auto;padding:14px 22px 40px;}
.results-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0 14px;}
.results-count{color:var(--muted);font-weight:800;}

.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
@media (max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:720px){.grid{grid-template-columns:1fr;}.page{padding-left:14px;padding-right:14px;}}

.card{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:#fff;box-shadow:var(--shadow-soft);transition:box-shadow .18s ease, transform .18s ease;}
.card:hover{box-shadow:var(--shadow);transform:translateY(-1px);}
.card.hl{outline:2px solid rgba(0,0,0,.18);}

.card-media{position:relative;background:#fafafa;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;height:286px;}
.card-media img{width:100%;height:100%;object-fit:cover;cursor:pointer;transition:transform .22s ease, filter .22s ease;}
.card:hover .card-media img{transform:scale(1.02);}

.badge360{position:absolute;top:12px;right:12px;min-width:52px;height:30px;padding:0 10px;border-radius:999px;background:rgba(30,58,138,.55);backdrop-filter:blur(6px);color:#fff;font-weight:950;font-size:12px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;}
.badge360::before{content:'360º';}

/* Leaflet markers (no border) */
.dot-marker{background:transparent !important;border:0 !important;}
.dot-marker .dot{width:18px;height:18px;border-radius:999px;box-shadow:0 6px 16px rgba(0,0,0,.18);}
.dot-marker.dot-blue .dot{background:var(--blue);}
.dot-marker.dot-red .dot{background:var(--red);}

.card-body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:8px;}
.card-tagrow{display:flex;align-items:center;gap:10px;}
.dot{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto;}
.dot-venta{background:var(--green);}
.dot-alquiler{background:var(--blue);}
.dot-temporario{background:var(--purple);}
.dot-otros{background:#111;}
.tagtext{font-weight:950;font-size:12px;letter-spacing:.02em;text-transform:uppercase;}

.card-price{font-size:20px;font-weight:950;letter-spacing:-.02em;}
.card-meta{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;color:var(--muted);font-weight:800;font-size:14px;}
.card-meta > span{display:flex;gap:6px;align-items:baseline;}
.card-meta .num{font-size:16px;font-weight:950;color:#111;}
.card-meta .lbl{font-size:14px;font-weight:800;opacity:.9;margin-left:6px;}

.card-bottom{display:flex;align-items:flex-end;gap:14px;margin-top:2px;}
.card-loccity{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;}
.card-loc{white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;color:#333;font-size:14px;}
.card-loc .marquee{display:inline-block;white-space:nowrap;will-change:transform;padding-right:24px;}
.card:hover .card-loc .marquee{animation:addrScroll 8s linear infinite;}
@keyframes addrScroll{0%{transform:translateX(0)}100%{transform:translateX(-35%)}}
.card-city{color:var(--muted);font-weight:800;font-size:14px;}

.card-actions{flex:0 0 auto;display:flex;justify-content:flex-end;}
.btn-details{background:var(--blue);color:#fff;border:0;padding:12px 22px;border-radius:999px;font-weight:950;cursor:pointer;}
.btn-details:hover{filter:brightness(.95);}

/* ===== Map view ===== */
.mapwrap{margin-top:10px;}
.maplayout{display:flex;gap:18px;align-items:stretch;height:100%;position:relative;}
.mapside{flex:0 0 420px;max-width:420px;overflow:auto;}
.map{flex:1 1 auto;min-height:520px;border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}

/* ===== v139 Desktop map mode: single visible card matches map height (no vertical scroll) ===== */
@media (min-width: 981px){
  /* Map mode already pins the layout to the viewport; here we ensure the side card never overflows */
  body.is-map #viewMap .mapside{height:100%;overflow:hidden;}
  body.is-map #viewMap .mapside > .card{
    height:100%;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  /* Reduce image height to keep the full card within the map height */
  body.is-map #viewMap .mapside > .card .card-media{height:200px;flex:0 0 auto;}
  /* Keep the rest compact without introducing scrollbars */
  body.is-map #viewMap .mapside > .card .card-body{flex:1 1 auto;min-height:0;overflow:hidden;}
  body.is-map #viewMap .mapside > .card .card-bottom{margin-top:auto;}
  body.is-map #viewMap .mapside > .card .card-loc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
}

/* Let Leaflet fully capture gestures (pinch-zoom / pan) inside the map, while the page itself stays non-zoomable via viewport meta */
.leaflet-container{touch-action:none;}

@media (max-width:980px){
  .maplayout{flex-direction:column;}
  .mapside{flex:0 0 auto;max-width:100%;}
  .map{min-height:420px;}
}

/* Map interaction overlay (mobile) */
.map-interaction-overlay{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:12px;pointer-events:none;}
.map-interaction-pill{margin-top:12px;background:rgba(0,0,0,.55);color:#fff;padding:10px 12px;border-radius:999px;font-weight:900;font-size:12px;backdrop-filter:blur(6px);;pointer-events:auto;}

/* Map mini card (mobile map mode) */
.map-mini{position:absolute;left:14px;right:14px;bottom:14px;z-index:650;pointer-events:auto;}
.map-mini-btn{width:100%;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.96);backdrop-filter:saturate(160%) blur(10px);border-radius:18px;box-shadow:0 14px 40px rgba(0,0,0,.18);padding:12px 12px;display:flex;flex-direction:column;gap:8px;cursor:pointer;text-align:left;}
.map-mini-row{display:flex;gap:10px;align-items:stretch;}
.map-mini-img{width:92px;height:68px;flex:0 0 auto;object-fit:cover;border-radius:14px;border:1px solid rgba(0,0,0,.10);background:#f3f3f3;}
.map-mini-col{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px;}
.map-mini-top{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;}
.map-mini-title{font-weight:950;font-size:14px;line-height:1.25;min-width:0;flex:1;}
.map-mini-price{font-weight:950;font-size:16px;white-space:nowrap;}
.map-mini-loc{color:var(--muted);font-weight:800;font-size:13px;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;text-overflow:ellipsis;}
.map-mini-facts{display:flex;gap:10px;flex-wrap:wrap;color:#111;font-weight:900;font-size:12px;}
.map-mini-facts span{display:inline-flex;gap:6px;align-items:baseline;}
.map-mini-facts .n{font-weight:950;}

@media (max-width:720px){
  body.is-map .map-mini{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));}
}

/* Map-only mode: no page scroll, map fills viewport under bars */
body.is-map{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
body.is-map .results-head,
body.is-map .footer{display:none;}
body.is-map .page{padding-bottom:0;}
body.is-map #viewList{display:none !important;}
body.is-map #viewMap{display:block !important;position:fixed;left:0;right:0;top:calc(var(--topbarH) + var(--filterbarH) + var(--safeTop));bottom:0;padding:14px 22px;box-sizing:border-box;}
body.is-map #viewMap .maplayout{height:100%;}
body.is-map #viewMap .map{height:100%;min-height:0;}
@media (max-width:720px){
  body.is-map #viewMap{padding-left:14px;padding-right:14px;}
}

/* ===== Footer ===== */
.footer{margin-top:28px;border-top:1px solid var(--line);padding-top:14px;}
.footer-inner{max-width:1400px;margin:0 auto;padding:0 22px;}
.footer-row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;}
.footer-brand{display:flex;align-items:center;gap:10px;}
.footer-logo{width:44px;height:44px;object-fit:contain;border-radius:10px;}
.footer-name{font-weight:950;}
.footer-addr{color:var(--muted);font-weight:700;line-height:1.35;min-width:min(520px,100%);}
.footer-label{color:#111;font-weight:950;}
.footer-hours{display:block;margin-top:6px;}
.footer-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;}
@media (max-width:720px){.footer-inner{padding-left:14px;padding-right:14px;}}

/* ===== Modal ===== */
.modal{position:fixed;inset:0;z-index:99999;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.modal-dialog{position:relative;margin:0 auto;width:min(1280px, 96vw);max-width:100vw;height:100dvh;background:#fff;border-radius:0 0 22px 22px;box-shadow:var(--shadow);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;}

.modal-head{position:sticky;top:0;z-index:7;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 54px 12px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.98);backdrop-filter:saturate(150%) blur(8px);}
.modal-x{position:absolute;right:12px;top:12px;width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;z-index:8;}
.modal-title{font-weight:950;font-size:20px;overflow-wrap:anywhere;}
.modal-sub{display:flex;gap:14px;flex-wrap:wrap;align-items:baseline;margin-top:6px;}
.modal-price{font-weight:950;font-size:26px;}
.modal-loc{color:var(--muted);font-weight:900;overflow-wrap:anywhere;}

.modal-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:18px;padding:16px 18px 20px;align-items:start;}
@media (min-width:981px){
  /* Desktop detail page: widen right column so text fits comfortably */
  .modal-grid{grid-template-columns:minmax(0,1fr) 600px;}
}
@media (max-width:980px){
  /* Mobile: modal must never exceed the viewport (no horizontal overflow) */
  /* Use 100% instead of 100vw to avoid the classic "vw includes scrollbar" overflow on some browsers */
  .modal-dialog{position:fixed;inset:0;margin:0;width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;overflow-x:hidden;}
  .modal-head,.modal-grid,.modal-media,.modal-mapcol{max-width:100%;min-width:0;}
  .modal-grid{grid-template-columns:1fr;gap:12px;padding:14px 12px 18px;}
  /* Mobile details: full width + centered information blocks */
  .modal-headtext{width:100%;text-align:center;}
  .modal-sub{justify-content:center;}
  .modal-facts{justify-content:center;}
  .modal-section-title{text-align:center;}
  .modal-desc{text-align:center;overflow-wrap:anywhere;word-break:break-word;}
  /* Let content truly use the screen width on mobile (no artificial max widths) */
  .modal-kv{max-width:none;margin:0;}
  .modal-mapcol{max-width:none;margin:0;width:100%;}
  /* Hard safety-net: never allow a child to exceed the viewport */
  .modal-dialog *{max-width:100%;}
}

/* Gallery */
.pgallery{position:relative;}
.pgallery-main{position:relative;}
.pgallery-img{width:100%;height:360px;object-fit:cover;border-radius:18px;background:#f6f6f6;}
@media (max-width:980px){.pgallery-img{height:280px;}}

.pgallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:rgba(0,0,0,.35);color:#fff;font-size:22px;font-weight:950;cursor:pointer;backdrop-filter:blur(8px);}
.pgallery-prev{left:10px;}
.pgallery-next{right:10px;}
.pgallery-counter{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.45);color:#fff;padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px;backdrop-filter:blur(8px);}

.media-actions{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:10px;z-index:6;}
.media-btn{height:40px;padding:0 14px;border-radius:999px;border:0;cursor:pointer;font-weight:950;box-shadow:var(--shadow-soft);backdrop-filter:saturate(140%) blur(6px);}
.media-btn-primary{background:var(--blue);color:#fff;}

.pgallery-thumbs{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:10px 2px 2px;}
.pgallery-thumbs::-webkit-scrollbar{height:10px;}
.pgallery-thumbs::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:999px;}
.pgallery-thumbs img{width:112px;height:78px;object-fit:cover;border-radius:14px;border:1px solid var(--line);cursor:pointer;scroll-snap-align:start;flex:0 0 auto;}
.pgallery-thumbs img.is{outline:2px solid rgba(30,58,138,.55);}

.modal-facts{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;}
.m-fact{border:1px solid var(--line);border-radius:999px;padding:8px 12px;display:flex;gap:8px;align-items:center;}
.m-fk{color:var(--muted);font-weight:950;font-size:12px;}
.m-fv{font-weight:950;font-size:12px;}

.modal-section{margin-top:12px;}
.modal-section-title{font-weight:950;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#111;margin-bottom:8px;}
.modal-desc{color:#333;line-height:1.65;font-size:15px;white-space:pre-line;}

.modal-kv{color:var(--muted);line-height:1.35;}
.kv-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;padding:8px 0;border-top:1px dashed rgba(0,0,0,.08);}
.kv-row:first-child{border-top:0;}
.kv-k{font-weight:950;color:#111;}
.kv-v{text-align:right;color:var(--muted);font-weight:900;overflow-wrap:anywhere;}

/* Right column (map + nearby + contact) */
.modal-mapcol{border:1px solid var(--line);border-radius:18px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:#fff;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;padding:12px;gap:12px;}
.modal-map{width:100%;height:360px;position:relative;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:#eef0f4;border-radius:14px;}
@media (max-width:980px){.modal-map{height:280px;}}
.gmap-iframe{position:absolute;inset:0;border:0;width:100%;height:100%;}

.map-btn{width:100%;height:40px;padding:0 14px;border-radius:999px;border:0;cursor:pointer;font-weight:950;box-shadow:var(--shadow-soft);background:var(--blue);color:#fff;}

.modal-nearby-title{font-weight:950;font-size:13px;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:baseline;gap:10px;}
.nearby-radius{color:var(--muted);font-weight:800;text-transform:none;letter-spacing:0;white-space:nowrap;}
.nearby-row{display:flex;gap:12px;align-items:baseline;margin-top:10px;}
.nearby-k{flex:0 0 150px;color:#111;font-weight:950;}
.nearby-v{flex:1 1 auto;color:var(--muted);font-weight:800;display:flex;gap:8px;flex-wrap:wrap;}

.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.10);text-decoration:none;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.02);}
.pill:hover{box-shadow:var(--shadow-soft);}
.pill .nm{font-weight:900;color:#111;}
.pill .dist{color:var(--muted);font-weight:800;white-space:nowrap;}

/* Desktop contact form: phone field full width so placeholder fits */
 (min-width:981px){
  #mQPhone{grid-column:1/-1;}
}


.modal-contact-title{font-weight:950;font-size:13px;letter-spacing:.04em;text-transform:uppercase;}
.modal-contact-sub{color:var(--muted);font-weight:700;line-height:1.35;margin-top:6px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.form-grid .in{height:38px;border-radius:12px;border:1px solid var(--line);padding:0 12px;font-weight:700;}
.form-grid .ta{grid-column:1/-1;border-radius:12px;border:1px solid var(--line);padding:10px 12px;font-weight:700;resize:vertical;min-height:88px;}
@media (max-width:980px){.form-grid{grid-template-columns:1fr;}}
.form-actions{display:flex;gap:10px;margin-top:10px;}
.btn-send{flex:1;height:40px;border-radius:999px;border:0;cursor:pointer;font-weight:950;box-shadow:var(--shadow-soft);background:#111;color:#fff;}
.btn-send.btn-wa{background:#16a34a;}
.form-hint{margin-top:8px;color:var(--muted);font-weight:700;}

/* ===== VR overlay (360) ===== */
.vr{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.82);display:flex;align-items:stretch;justify-content:center;padding:18px;box-sizing:border-box;}
.vr[hidden]{display:none !important;}
.vr-backdrop{position:absolute;inset:0;}
.vr-panel{position:relative;width:min(1400px,100%);height:100%;background:#000;border-radius:18px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;box-shadow:0 24px 60px rgba(0,0,0,.35);z-index:1;}
.vr-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;gap:10px;z-index:2;padding-left:44px;}
.vr-title{color:#fff;font-weight:950;text-shadow:0 2px 14px rgba(0,0,0,.55);}
.vr-actions{margin-left:auto;display:flex;gap:10px;}
.vr-link{height:38px;display:inline-flex;align-items:center;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;text-decoration:none;font-weight:900;backdrop-filter:blur(8px);}
.vr-close{position:absolute;top:12px;left:12px;z-index:3;width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;cursor:pointer;font-weight:950;backdrop-filter:blur(8px);}
.vr-frame{position:absolute;inset:0;border:0;width:100%;height:100%;}

body.svc-mob-open{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}

/* ===== Mobile services overlay ===== */
#svcMobOverlay{position:fixed;inset:0;z-index:100001;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;padding:14px;box-sizing:border-box;}
#svcMobOverlay[hidden]{display:none !important;}
#svcMobPanel{width:min(720px,100%);background:#fff;border-radius:18px;overflow:auto;box-shadow:var(--shadow);max-height:calc(100dvh - 28px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));}
/* Keep close button always at the top-right on mobile */
#svcMobHdr{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;column-gap:12px;padding:12px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;background:#fff;}
#svcMobBack{justify-self:start;}
#svcMobTitle{font-weight:950;letter-spacing:.06em;text-align:center;justify-self:center;}
#svcMobClose{justify-self:end;}
.svcMobIconBtn{width:40px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:950;}
#svcMobBody{padding:12px;}
.svcMobList{display:grid;gap:10px;}
.svcMobItem{border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;box-shadow:0 1px 0 rgba(0,0,0,.03);}
.svcMobItem .t{font-weight:950;margin-bottom:6px;}
.svcMobItem .d{color:var(--muted);font-weight:700;line-height:1.35;}
.svcMobText p{margin:0 0 10px;color:#333;line-height:1.55;}

/* ===== Image lightbox (desktop) ===== */
#imgLightbox{position:fixed;inset:0;z-index:100002;background:rgba(0,0,0,.82);display:flex;flex-direction:column;}
#imgLightbox[hidden]{display:none !important;}
#imgLbTop{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:#fff;}
#imgLbClose{width:40px;height:36px;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.25);color:#fff;cursor:pointer;font-weight:950;}
#imgLbMain{position:relative;flex:1;display:flex;align-items:center;justify-content:center;}
#imgLbMainImg{max-width:96vw;max-height:70vh;object-fit:contain;}
.imgLbNav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.25);color:#fff;cursor:pointer;font-size:26px;font-weight:950;}
#imgLbPrev{left:14px;}
#imgLbNext{right:14px;}
#imgLbThumbs{display:flex;gap:10px;overflow-x:auto;padding:12px 14px 16px;}
.imgLbThumb{border:0;background:transparent;padding:0;cursor:pointer;opacity:.85;}
.imgLbThumb.is{opacity:1;}
.imgLbThumb img{width:100px;height:70px;object-fit:cover;border-radius:12px;border:1px solid rgba(255,255,255,.2);}


/* (Zoom controls enabled on mobile and desktop) */


@media (min-width:721px){
  .modal-x{left:auto;right:12px;top:10px;}
  .modal-head{padding:16px 54px 12px 18px;}
}


/* ===== v129: Recorrido virtual button under thumbnails + mobile right-align facts ===== */
.thumb-actions{margin-top:10px;}
.thumb-btn{width:100%;height:42px;border-radius:999px;border:0;cursor:pointer;font-weight:950;box-shadow:var(--shadow-soft);background:var(--blue);color:#fff;}
.thumb-btn:hover{filter:brightness(.96);}

/* Mobile: header left, facts + descripción left (updated) */
@media (max-width:980px){
  /* Header (Casa en Venta / Precio / Dirección) aligned LEFT */
  .modal-headtext{ text-align:left; }
  .modal-title,.modal-price,.modal-loc{ text-align:left; }
  .modal-sub{ justify-content:flex-start; }

  /* Facts (Amb / Dorm / Baños) + descripción aligned LEFT */
  .modal-facts{ justify-content:flex-start; text-align:left; }
  .m-fact{ justify-content:flex-start; text-align:left; }
  .modal-desc{ text-align:left; }

  /* Keep everything single-column and within viewport */
  .modal-dialog, .modal-grid, .modal-media, .modal-mapcol{ max-width:100%; }
}
/* Mobile map mini facts right-aligned (keeps size) */
@media (max-width:720px){
  .map-mini-facts{ justify-content:flex-end; }
}

/* ===== v130: Modern polish (no layout changes) ===== */
    :root{
      /* Softer, more modern elevation */
      --shadow-soft: 0 2px 14px rgba(0,0,0,.07);
      --shadow: 0 14px 42px rgba(0,0,0,.14);

      /* Interaction */
      --ease-ui: cubic-bezier(.2,.8,.2,1);
      --dur-ui: 160ms;
      --ring: 0 0 0 3px rgba(30,58,138,.28);
    }

    body{
      line-height: 1.45;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-rendering: optimizeLegibility;
    }

    /* Normalize form typography */
    button, input, select, textarea{
      font: inherit;
      color: inherit;
    }

    /* Crisp, professional focus */
    :where(a,button,input,select,textarea,[role="button"],[tabindex]):focus-visible{
      outline: none;
      box-shadow: var(--ring);
      border-radius: 12px;
    }

    /* Subtle, consistent motion */
    :where(.btn-reset,.toggle-btn,.svcMobBtn,.modal-x,.btn-details,.btn-send,.thumb-btn,.chip){
      transition:
        background-color var(--dur-ui) var(--ease-ui),
        border-color var(--dur-ui) var(--ease-ui),
        box-shadow var(--dur-ui) var(--ease-ui),
        transform var(--dur-ui) var(--ease-ui),
        filter var(--dur-ui) var(--ease-ui);
      will-change: transform;
    }

    :where(.btn-reset,.toggle-btn,.svcMobBtn,.modal-x,.btn-details,.btn-send,.thumb-btn){
      user-select: none;
      -webkit-tap-highlight-color: transparent;
    }

    :where(.btn-reset,.toggle-btn,.svcMobBtn,.modal-x,.btn-details,.btn-send,.thumb-btn):active{
      transform: translateY(0px) scale(.99);
      filter: brightness(.98);
    }

    /* Cleaner links on hover without changing layout */
    a{
      text-decoration-thickness: from-font;
      text-underline-offset: 2px;
    }
    a:hover{
      text-decoration: underline;
    }

    /* Respect reduced-motion preferences */
    @media (prefers-reduced-motion: reduce){
      *{
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
      }
    }

/* ===== v135: Professional theme (colors + micro-UX) =====
   - No structural/layout changes
   - Unified color system + calmer, premium palette
*/

:root{
  /* Neutrals */
  --bg: #f8fafc;            /* page background */
  --text: #0f172a;          /* slate-900 */
  --muted: #475569;         /* slate-600 */
  --line: rgba(15,23,42,.12);

  /* Brand / actions (v117 style) */
  --blue: #1E3A8A;          /* primary (calm blue) */
  --red: #B91C1C;           /* selected marker / alert */
  --green: #16a34a;         /* WhatsApp + success */
  --purple: #6d28d9;        /* accent */

  /* Elevation + focus */
  --shadow-soft: 0 2px 18px rgba(15,23,42,.08);
  --shadow: 0 18px 56px rgba(15,23,42,.18);
  --ring: 0 0 0 3px rgba(30,58,138,.22);
}

body{background:var(--bg);}

/* Make surfaces feel “premium” */
.topbar,
.filterbar,
.card,
.modal-dialog,
#svcPanel,
#svcMobPanel{background:#fff;}

/* Header / filter bar separators */
.topbar{border-bottom:1px solid var(--line);}
.filterbar{border-bottom:1px solid var(--line); box-shadow:0 10px 28px rgba(15,23,42,.06);}

/* Chips: slightly softer */
.chip{border-color:var(--line);}
.chip:hover{box-shadow:var(--shadow-soft);}

/* Toggle: clearer state */
.view-toggle{background:rgba(15,23,42,.06);}
.toggle-btn{color:rgba(15,23,42,.85);}
.toggle-btn.is{color:var(--text);}

/* Primary CTAs */
.btn-details,
.thumb-btn,
.map-btn,
.media-btn-primary,
.btn-send{background:var(--blue);color:#fff;}

/* Keep WhatsApp green */
.btn-send.btn-wa{background:var(--green);}

/* CTA hover/active polish */
.btn-details:hover,
.thumb-btn:hover,
.map-btn:hover,
.media-btn-primary:hover,
.btn-send:hover{filter:brightness(.96);}

/* Secondary buttons (reset / close) */
.btn-reset,
.modal-x,
.svc-close,
.svcMobIconBtn,
#imgLbClose{border-color:var(--line);background:#fff;}

/* 360 badge color to match primary */
.badge360{background:rgba(30,58,138,.58);}

/* Thumbs active outline uses primary */
.pgallery-thumbs img.is{outline:2px solid rgba(30,58,138,.55);}

/* Links: calmer */
a{text-decoration:none;}
a:hover{text-decoration:underline;}

/* Contact pills: slightly stronger affordance */
.contact-pill{border-color:var(--line);}
.contact-pill:hover{box-shadow:var(--shadow-soft);}

/* Map mini card: more contrast */
.map-mini-btn{border-color:rgba(15,23,42,.14);}
