/* ============================================================
   NSR — ventana Finder-style de propiedades (San Pancho / North Shore)
   Hoja de estilos separada: no se toca style.css existente.
   ============================================================ */

.app-window-nsr{
  width:min(96vw, 1180px);
  height:min(88vh, 820px);
}
.app-window-nsr .app-window-body{
  padding:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.nsr-root{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:0;
  font-family:var(--sans);
  color:var(--ink);
}

/* ---------- barra de herramientas ---------- */
.nsr-toolbar{
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:.7rem .9rem;
  border-bottom:1px solid var(--line);
  background:#fbfaf7;
  flex-wrap:wrap;
  flex-shrink:0;
}
.nsr-search{
  display:flex;
  align-items:center;
  gap:.4rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:.4rem .6rem;
  flex:1 1 180px;
  min-width:140px;
}
.nsr-search svg{ color:var(--ink-soft); flex-shrink:0; }
.nsr-search input{
  border:none;
  outline:none;
  font-family:var(--sans);
  font-size:.85rem;
  width:100%;
  background:transparent;
  color:var(--ink);
}
.nsr-filters{
  display:flex;
  gap:.35rem;
  flex-wrap:wrap;
}
.nsr-filter-pill{
  border:1px solid var(--line);
  background:#fff;
  border-radius:20px;
  padding:.35rem .8rem;
  font-size:.72rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  cursor:pointer;
  color:var(--ink-soft);
  font-family:var(--sans);
  white-space:nowrap;
}
.nsr-filter-pill:hover{ background:var(--line); }
.nsr-filter-pill-active{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.nsr-sort{
  border:1px solid var(--line);
  background:#fff;
  border-radius:8px;
  padding:.4rem .5rem;
  font-size:.75rem;
  font-family:var(--sans);
  color:var(--ink-soft);
  cursor:pointer;
}
.nsr-shuffle-btn{
  display:flex;
  align-items:center;
  gap:.3rem;
  border:1px solid var(--line);
  background:#fff;
  border-radius:8px;
  padding:.4rem .7rem;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer;
  color:var(--ink-soft);
  font-family:var(--sans);
}
.nsr-shuffle-btn:hover{ background:var(--line); color:var(--ink); }
.nsr-shuffle-btn svg{ flex-shrink:0; }

/* ---------- cuerpo scrolleable ---------- */
.nsr-scroll{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}

/* ---------- grilla principal ---------- */
.nsr-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
  gap:1.1rem;
  padding:1.1rem;
}
.nsr-empty{
  padding:3rem 1rem;
  text-align:center;
  color:var(--ink-soft);
  font-size:.9rem;
}

.nsr-card{
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  transition:box-shadow .2s ease, transform .2s ease;
}
.nsr-card:hover{
  box-shadow:0 14px 30px rgba(20,20,15,0.12);
  transform:translateY(-2px);
}
.nsr-card-media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#eee7d8;
}
.nsr-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s ease;
}
.nsr-card:hover .nsr-card-media img{ transform:scale(1.06); }
.nsr-card-badge{
  position:absolute;
  top:.5rem;
  left:.5rem;
  background:rgba(20,19,17,0.72);
  color:#fff;
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:.25rem .55rem;
  border-radius:20px;
}
.nsr-card-reveal{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:.5rem .7rem;
  background:linear-gradient(0deg, rgba(0,0,0,0.72), rgba(0,0,0,0));
  color:#fff;
  font-size:.72rem;
  display:flex;
  gap:.7rem;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .25s ease, transform .25s ease;
}
.nsr-card:hover .nsr-card-reveal{ opacity:1; transform:translateY(0); }
.nsr-card-body{
  padding:.7rem .8rem .85rem;
  display:flex;
  flex-direction:column;
  gap:.15rem;
}
.nsr-card-title{
  font-family:var(--serif);
  font-size:1rem;
  line-height:1.25;
}
.nsr-card-loc{
  font-size:.72rem;
  color:var(--ink-soft);
}
.nsr-card-price{
  margin-top:.3rem;
  font-size:.9rem;
  font-weight:600;
}
.nsr-card-units{
  font-size:.68rem;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-top:.15rem;
}

/* siempre visible en touch: sin hover disponible */
@media (hover:none){
  .nsr-card-reveal{
    position:static;
    opacity:1;
    transform:none;
    background:none;
    color:var(--ink-soft);
    padding:.15rem .8rem 0;
  }
  .nsr-card:hover .nsr-card-media img{ transform:none; }
}

/* ---------- vista de detalle ---------- */
.nsr-detail{
  padding:1rem 1.2rem 2rem;
  max-width:920px;
  margin:0 auto;
}
.nsr-detail-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.8rem;
  gap:.6rem;
  flex-wrap:wrap;
}
.nsr-back-btn, .nsr-nav-btn{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  border:1px solid var(--line);
  background:#fff;
  border-radius:8px;
  padding:.4rem .7rem;
  font-size:.75rem;
  cursor:pointer;
  color:var(--ink-soft);
  font-family:var(--sans);
}
.nsr-back-btn:hover, .nsr-nav-btn:hover{ background:var(--line); color:var(--ink); }
.nsr-nav-group{ display:flex; align-items:center; gap:.5rem; }
.nsr-nav-count{ font-size:.72rem; color:var(--ink-soft); }

.nsr-gallery-main{
  position:relative;
  width:100%;
  aspect-ratio:16/10;
  background:#eee7d8;
  border-radius:12px;
  overflow:hidden;
  margin-bottom:.5rem;
}
.nsr-gallery-main img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#eee7d8;
  display:block;
}
.nsr-gallery-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:36px; height:36px;
  border-radius:50%;
  background:rgba(255,255,255,0.85);
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--ink);
}
.nsr-gallery-arrow:hover{ background:#fff; }
.nsr-gallery-arrow-prev{ left:.6rem; }
.nsr-gallery-arrow-next{ right:.6rem; }
.nsr-gallery-count{
  position:absolute;
  bottom:.5rem;
  right:.6rem;
  background:rgba(20,19,17,0.65);
  color:#fff;
  font-size:.7rem;
  padding:.2rem .55rem;
  border-radius:20px;
}
.nsr-thumbs{
  display:flex;
  gap:.4rem;
  overflow-x:auto;
  padding-bottom:.6rem;
  margin-bottom:1rem;
}
.nsr-thumb{
  flex-shrink:0;
  width:64px; height:48px;
  border-radius:6px;
  overflow:hidden;
  cursor:pointer;
  border:2px solid transparent;
  opacity:.7;
}
.nsr-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.nsr-thumb-active{ border-color:var(--accent); opacity:1; }

.nsr-detail-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:.5rem;
}
.nsr-detail-title{
  font-family:var(--serif);
  font-size:1.6rem;
  line-height:1.2;
}
.nsr-detail-loc{ color:var(--ink-soft); font-size:.85rem; margin-top:.2rem; }
.nsr-detail-price{ font-size:1.3rem; font-weight:600; white-space:nowrap; }

.nsr-specs{
  display:flex;
  gap:1.4rem;
  flex-wrap:wrap;
  margin:1rem 0;
  padding:.8rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.nsr-spec{ display:flex; flex-direction:column; }
.nsr-spec-val{ font-size:1.05rem; font-weight:600; }
.nsr-spec-label{ font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); }

.nsr-desc{
  font-size:.92rem;
  line-height:1.65;
  color:var(--ink);
  margin-bottom:1.1rem;
  white-space:pre-line;
}
.nsr-amenities{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin-bottom:1.3rem;
}
.nsr-amenity-tag{
  font-size:.72rem;
  background:#f7f5f0;
  border:1px solid var(--line);
  border-radius:20px;
  padding:.25rem .65rem;
  color:var(--ink-soft);
}

.nsr-actions{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
  margin-bottom:1.6rem;
}
.nsr-action-btn{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  border-radius:8px;
  padding:.6rem 1rem;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  font-family:var(--sans);
}
.nsr-action-whatsapp{ background:#25d366; border-color:#25d366; color:#fff; }
.nsr-action-whatsapp:hover{ filter:brightness(0.95); }
.nsr-action-btn:not(.nsr-action-whatsapp):hover{ background:var(--line); }

/* ---------- unidades disponibles (desarrollo) ---------- */
.nsr-units-heading{
  font-family:var(--serif);
  font-size:1.15rem;
  margin:0 0 .7rem;
}
.nsr-units-list{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:.7rem;
  margin-bottom:1rem;
}
.nsr-unit-card{
  border:1px solid var(--line);
  border-radius:10px;
  padding:.7rem .8rem;
  cursor:pointer;
  background:#fff;
}
.nsr-unit-card:hover{ background:#f7f5f0; }
.nsr-unit-card-active{ border-color:var(--accent); background:#fdf3ef; }
.nsr-unit-title{ font-weight:600; font-size:.88rem; margin-bottom:.15rem; }
.nsr-unit-meta{ font-size:.75rem; color:var(--ink-soft); }
.nsr-unit-price{ font-size:.85rem; font-weight:600; margin-top:.25rem; }

.nsr-share-toast{
  position:fixed;
  bottom:1.2rem;
  left:50%;
  transform:translateX(-50%);
  background:rgba(20,19,17,0.88);
  color:#fff;
  font-size:.78rem;
  padding:.5rem 1rem;
  border-radius:20px;
  z-index:9999;
  pointer-events:none;
  opacity:0;
  transition:opacity .25s ease;
}
.nsr-share-toast-show{ opacity:1; }

/* ---------- responsive ----------
   Mismo mecanismo de ventana que el resto del sitio (centrada, flotante,
   arrastrable): no se le da a NSR una posición o comportamiento propio,
   solo un tamaño que se adapta mejor a una grilla en pantallas chicas. */
@media (max-width:700px){
  .app-window-nsr{ width:96vw; height:min(86vh, 720px); }
  .nsr-toolbar{ padding:.55rem .6rem; }
  .nsr-grid{ grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); gap:.6rem; padding:.7rem; }
  .nsr-detail{ padding:.8rem .8rem 2rem; }
  .nsr-detail-title{ font-size:1.3rem; }
  .nsr-detail-price{ font-size:1.1rem; }
}
