@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=IBM+Plex+Mono:wght@500;600&display=swap");
@import "../../shared/tokens.css";

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--color-fondo);
  color: var(--color-texto);
  font-family: var(--fuente-texto);
}

/* ---------- Header ---------- */
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  background: var(--color-superficie);
  border-bottom: 1px solid var(--color-borde);
  position: sticky;
  top: 0;
  z-index: 10;
}
.marca { display: flex; align-items: center; gap: 12px; }
.marca img { height: 44px; width: auto; }
.marca .nombre {
  font-family: var(--fuente-titulos);
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.marca .subtitulo {
  font-size: 0.78rem;
  color: var(--color-texto-suave);
  margin-top: -2px;
}
nav { display: flex; flex-wrap: wrap; column-gap: 28px; row-gap: 6px; justify-content: flex-end; }
nav a {
  color: var(--color-texto);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 500;
}
nav a.activo { color: var(--color-acento); border-bottom: 2px solid var(--color-acento); padding-bottom: 4px; }

@media (max-width: 640px) {
  .header { flex-direction: column; align-items: flex-start; gap: 14px; padding: 18px 20px; }
  nav { justify-content: flex-start; column-gap: 20px; width: 100%; }
}

/* Oculta visualmente sin quitarlo para lectores de pantalla — el H1 de
   la página ahora vive aquí porque el mensaje principal lo lleva el
   carrusel de bienvenida, no un titular de texto. */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ---------- Carrusel de bienvenida ----------
   5 piezas de campaña (imagen + copy ya incluido en cada una) que
   resumen la propuesta de valor de Provenza. Cada imagen tiene su
   propia proporción, así que se muestran completas con object-fit:
   contain sobre un fondo oscuro, en vez de recortarlas para forzarlas
   a un mismo marco — así nunca se corta el texto de la pieza. */
.hero-slider {
  position: relative;
  background: var(--color-primario);
  overflow: hidden;
}
.hero-slider-track {
  position: relative;
  height: min(56vw, 480px);
  min-height: 260px;
}
.hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 20px;
  box-sizing: border-box;
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
}
.hero-slide.activa { opacity: 1; pointer-events: auto; }
.hero-slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px; height: 40px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-primario);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  z-index: 2;
}
.hero-slider-arrow:hover { background: #fff; }
.hero-slider-arrow[hidden] { display: none; }
.hero-slider-prev { left: 14px; }
.hero-slider-next { right: 14px; }
.hero-slider-next svg { transform: scaleX(-1); }
.hero-slider-dots {
  position: absolute;
  bottom: 14px; left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
}
.hero-slider-dots button {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  padding: 0;
  transition: background 0.2s ease;
}
.hero-slider-dots button.activo { background: #fff; width: 22px; border-radius: 999px; }

/* ---------- Hero (franja de búsqueda, debajo del carrusel) ---------- */
.hero {
  padding: 32px 32px 24px;
  text-align: center;
}
.hero .eyebrow {
  font-family: var(--fuente-mono);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-acento);
  margin-bottom: 14px;
}
.hero h2 {
  font-family: var(--fuente-titulos);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 18px;
}

/* ---------- Video de campaña ----------
   Pieza real (familia mudándose a su nuevo hogar), no un fotograma
   estático: se reproduce en loop y sin audio como fondo ambiental de
   su propia sección, aparte del carrusel de imágenes de arriba. El
   fotograma de portada ya trae su propio mensaje, así que sirve de
   respaldo cuando el video no se auto-reproduce (prefers-reduced-motion
   o un navegador que bloquee el autoplay) hasta que se le da play. */
.historia-video {
  position: relative;
  max-width: 1280px;
  margin: 8px auto 40px;
  padding: 0 24px;
}
.historia-video-media {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radio);
  background: var(--color-primario);
}
.historia-video-control {
  position: absolute;
  z-index: 3;
  bottom: 20px;
  right: 44px;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-primario);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.historia-video-control:hover { background: #fff; }
.historia-video::after { position:absolute; z-index:1; inset:0 24px; border-radius:var(--radio); background:linear-gradient(90deg,rgba(20,20,18,.8),rgba(20,20,18,.18) 66%); content:""; pointer-events:none; }.historia-video-copy { position:absolute; z-index:2; bottom:58px; left:clamp(44px,7vw,104px); width:min(510px,calc(100% - 112px)); color:#fff; }.historia-video-copy h2 { max-width:14ch; margin:0; color:#fff; font-size:clamp(2rem,4vw,4.2rem); font-weight:500; letter-spacing:-.035em; line-height:1; text-wrap:balance; }.historia-video-copy p { max-width:47ch; margin:18px 0 24px; color:rgba(255,255,255,.88); line-height:1.6; }.historia-video-cta { display:inline-flex; min-height:44px; align-items:center; padding:0 18px; border-radius:999px; background:#fff; color:var(--pro-tinta); font-size:.87rem; font-weight:700; text-decoration:none; }.historia-video-cta:hover { background:#f1f0eb; }
@media (max-width: 640px) {
  .historia-video { display: grid; padding: 0 20px; margin-bottom: 32px; }
  .historia-video-media { grid-area: 1 / 1; height: 100%; min-height: 460px; aspect-ratio: auto; }
  .historia-video::after { inset:0 20px; background:linear-gradient(0deg,rgba(20,20,18,.82),rgba(20,20,18,.1) 78%); }
  .historia-video-copy { grid-area: 1 / 1; position: relative; align-self: end; bottom: auto; left: auto; width: auto; margin: 36px 22px 70px; }.historia-video-copy h2 { font-size:clamp(1.8rem,9vw,2.8rem); }.historia-video-copy p { margin:13px 0 17px; font-size:.9rem; }
  .historia-video-control { right: 34px; bottom: 14px; width: 40px; height: 40px; }
}

/* ---------- Mapa ---------- */
#mapa { isolation: isolate; z-index: 0; }
.mapa-section {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
#mapa {
  height: 380px;
  width: 100%;
  border-radius: 10px;
  border: 1px solid var(--color-borde);
}
.pin-precio {
  background: #fff;
  color: var(--color-primario);
  border: 1px solid var(--color-borde);
  border-radius: 999px;
  padding: 6px 12px;
  font-family: var(--fuente-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 0.78rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  white-space: nowrap;
  cursor: pointer;
  transform: translate(-50%, -50%);
}
.pin-precio.pin-activo {
  background: var(--color-primario);
  color: #fff;
  border-color: var(--color-primario);
}
.zona-activa-chip {
  max-width: 1280px;
  margin: 14px auto 0;
  padding: 0 32px;
  display: flex;
  justify-content: center;
}
.zona-activa-chip button {
  background: var(--color-acento-suave);
  border: 1px solid var(--color-acento);
  color: var(--color-primario);
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
}

/* ---------- Filtros (estilo pastillas, como Airbnb) ---------- */
.filtros {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 8px;
}
.filtros button {
  border: 1px solid var(--color-borde);
  background: var(--color-superficie);
  padding: 10px 20px;
  border-radius: 999px;
  font-family: var(--fuente-texto);
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s ease;
}
.filtros button:hover { border-color: var(--color-acento); }
.filtros button.activo {
  background: var(--color-primario);
  color: #fff;
  border-color: var(--color-primario);
}

/* ---------- Grid de propiedades ---------- */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 28px;
  padding: 32px;
  max-width: 1280px;
  margin: 0 auto;
}

.tarjeta {
  background: var(--color-superficie);
  border-radius: var(--radio);
  overflow: hidden;
  border: 1px solid var(--color-borde);
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  text-decoration: none;
  color: inherit;
  display: block;
}
.tarjeta:hover { transform: translateY(-4px); box-shadow: var(--sombra-hover); border-color: transparent; }

.tarjeta .foto-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, var(--color-acento-suave), var(--color-borde));
}
.tarjeta .foto-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tarjeta .foto-wrap .sin-foto {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-texto-suave);
  font-size: 0.82rem;
}
.badge-operacion {
  position: absolute;
  top: 12px; left: 12px;
  background: var(--color-primario);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
  letter-spacing: 0.02em;
}
.badge-codigo {
  position: absolute;
  top: 12px; right: 12px;
  background: rgba(255,255,255,0.92);
  color: var(--color-texto-suave);
  font-size: 0.68rem;
  font-family: var(--fuente-mono);
  letter-spacing: 0.02em;
  padding: 4px 9px;
  border-radius: 999px;
}

/* Reservado / Vendido / Arrendado: la tarjeta se atenúa y el sello queda
   centrado sobre la foto, igual que un "vendido" físico en una vitrina. */
.tarjeta-no-disponible .foto-wrap img { filter: grayscale(35%); opacity: 0.75; }
.sello-estado {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: rgba(31, 31, 31, 0.32);
  font-family: var(--fuente-mono);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.sello-estado::before,
.sello-estado::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,0.6); margin: 0 10px; max-width: 28px; }

.tarjeta .info { padding: 16px 18px 20px; }
.tarjeta .zona {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-texto-suave);
  margin-bottom: 4px;
}
.tarjeta h3 {
  font-family: var(--fuente-titulos);
  font-size: 1.08rem;
  margin: 0 0 8px;
  line-height: 1.3;
}
.tarjeta .specs {
  display: flex;
  gap: 14px;
  font-size: 0.84rem;
  color: var(--color-texto-suave);
  margin-bottom: 12px;
}
.tarjeta .specs span { display: inline-flex; align-items: center; gap: 5px; }
.tarjeta .specs svg { flex: none; opacity: 0.7; }
.tarjeta .precio {
  font-family: var(--fuente-titulos);
  font-size: 1.15rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--color-acento);
}
.tarjeta .precio small {
  font-family: var(--fuente-texto);
  font-weight: 500;
  color: var(--color-texto-suave);
  font-size: 0.76rem;
}

/* ---------- Detalle de propiedad ---------- */
.volver-wrap {
  max-width: 1000px;
  margin: 24px auto 0;
  padding: 0 32px;
}
.volver {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-texto-suave);
  text-decoration: none;
  font-size: 0.86rem;
  font-weight: 500;
}
.volver:hover { color: var(--color-acento); }
.volver svg { flex: none; }

.detalle-hero {
  max-width: 1000px;
  margin: 16px auto 32px;
  padding: 0 32px;
}
.detalle-hero .foto-grande {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: var(--radio);
  object-fit: cover;
  background: linear-gradient(135deg, var(--color-acento-suave), var(--color-borde));
}
.tira-galeria {
  display: flex;
  gap: 10px;
  margin-top: 10px;
  overflow-x: auto;
  padding-bottom: 2px;
}
.miniatura {
  flex: none;
  width: 84px;
  aspect-ratio: 4/3;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: var(--color-borde);
  opacity: 0.65;
  transition: opacity 0.15s ease, border-color 0.15s ease;
}
.miniatura img { width: 100%; height: 100%; object-fit: cover; display: block; }
.miniatura:hover { opacity: 0.9; }
.miniatura.activa { opacity: 1; border-color: var(--color-acento); }

.sello-estado-detalle {
  display: inline-block;
  position: static;
  background: var(--color-primario);
  color: #fff;
  font-family: var(--fuente-mono);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.sello-estado-detalle::before,
.sello-estado-detalle::after { content: none; }
.detalle-cuerpo {
  max-width: 1000px;
  margin: 0 auto 64px;
  padding: 0 32px;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 40px;
}
@media (max-width: 720px) {
  .detalle-cuerpo { grid-template-columns: 1fr; }
}
.detalle-cuerpo h1 { font-family: var(--fuente-titulos); font-size: 1.9rem; margin-bottom: 4px; }
.detalle-cuerpo .zona-detalle { color: var(--color-texto-suave); margin-bottom: 20px; }
.specs-grandes {
  display: flex;
  gap: 28px;
  padding: 20px 0;
  border-top: 1px solid var(--color-borde);
  border-bottom: 1px solid var(--color-borde);
  margin-bottom: 24px;
}
.specs-grandes div { text-align: center; }
.specs-grandes div svg { width: 20px; height: 20px; opacity: 0.6; margin-bottom: 4px; }
.specs-grandes strong { display: block; font-size: 1.3rem; font-family: var(--fuente-titulos); font-variant-numeric: tabular-nums; }
.specs-grandes span { font-size: 0.78rem; color: var(--color-texto-suave); text-transform: uppercase; letter-spacing: 0.04em; }
.descripcion-larga { line-height: 1.7; color: var(--color-texto); }

.panel-contacto {
  background: var(--color-superficie);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio);
  padding: 24px;
  height: fit-content;
  box-shadow: var(--sombra);
}
.panel-contacto .precio-grande {
  font-family: var(--fuente-titulos);
  font-size: 1.6rem;
  font-variant-numeric: tabular-nums;
  color: var(--color-acento);
  margin-bottom: 4px;
}
.panel-contacto .codigo-ref {
  font-family: var(--fuente-mono);
  letter-spacing: 0.02em;
  font-size: 0.75rem;
  color: var(--color-texto-suave);
  margin-bottom: 18px;
}
.boton-primario {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--color-primario);
  color: #fff;
  border: none;
  padding: 14px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.94rem;
  cursor: pointer;
  margin-bottom: 10px;
}
.boton-secundario {
  display: block;
  width: 100%;
  text-align: center;
  background: transparent;
  color: var(--color-primario);
  border: 1px solid var(--color-primario);
  padding: 13px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.94rem;
  cursor: pointer;
}

/* ---------- Blog / contenido informativo ---------- */
.blog-hero { padding: 48px 32px 24px; text-align: center; }
.blog-hero .eyebrow {
  font-family: var(--fuente-mono);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-acento);
  margin-bottom: 14px;
}
.blog-hero h1 {
  font-family: var(--fuente-titulos);
  font-size: 2.1rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  text-wrap: balance;
  margin: 0 0 10px;
}
.blog-hero p { color: var(--color-texto-suave); max-width: 560px; margin: 0 auto 24px; }

.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 28px;
  padding: 8px 32px 48px;
  max-width: 1280px;
  margin: 0 auto;
}
.tarjeta-blog {
  background: var(--color-superficie);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: block;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.tarjeta-blog:hover { transform: translateY(-4px); box-shadow: var(--sombra-hover); border-color: transparent; }
.blog-foto-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, var(--color-acento-suave), var(--color-borde));
}
.blog-foto-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-foto-wrap.sin-foto img { display: none; }
.blog-foto-wrap .sin-foto-texto {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-texto-suave);
  font-size: 0.82rem;
}
.blog-categoria-badge {
  position: absolute;
  top: 12px; left: 12px;
  background: var(--color-primario);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
  letter-spacing: 0.02em;
}
.blog-info { padding: 16px 18px 20px; }
.blog-fecha { font-size: 0.74rem; color: var(--color-texto-suave); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 6px; }
.tarjeta-blog h3 { font-family: var(--fuente-titulos); font-size: 1.08rem; margin: 0 0 8px; line-height: 1.35; }
.blog-resumen { font-size: 0.88rem; color: var(--color-texto-suave); line-height: 1.5; margin: 0 0 12px; }
.blog-leer-mas { font-size: 0.82rem; font-weight: 700; color: var(--color-acento); }

.blog-post { max-width: 720px; margin: 8px auto 0; padding: 0 32px; }
.blog-post-meta-top { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.blog-post-meta-top .blog-categoria-badge { position: static; }
.blog-post-fecha { font-size: 0.8rem; color: var(--color-texto-suave); }
.blog-post h1 { font-family: var(--fuente-titulos); font-size: 2rem; line-height: 1.25; margin: 0 0 10px; text-wrap: balance; }
.blog-post-autor { font-size: 0.84rem; color: var(--color-texto-suave); margin-bottom: 20px; }
.blog-post-portada {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radio);
  margin-bottom: 28px;
  background: linear-gradient(135deg, var(--color-acento-suave), var(--color-borde));
}
.blog-post-cuerpo p { line-height: 1.75; color: var(--color-texto); margin: 0 0 18px; font-size: 1rem; }

.blog-relacionados { max-width: 1000px; margin: 24px auto 56px; padding: 32px 32px 0; border-top: 1px solid var(--color-borde); }
.blog-relacionados h2 { font-family: var(--fuente-titulos); font-size: 1.3rem; margin: 24px 0 20px; }
.blog-grid-relacionados { padding: 0; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* ---------- Chatbox flotante — asistente de atención ----------
   Lógica basada en reglas (coincidencia de intención/zona/presupuesto
   contra el inventario real), sin backend ni modelo generativo — ver
   README, sección "Asistente de atención". */
.chat-burbuja {
  border: 0;
  padding: 0;
  position: fixed;
  bottom: 24px; right: 24px;
  width: 58px; height: 58px;
  border-radius: 50%;
  background: var(--color-acento);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 20px rgba(20, 20, 18, 0.18);
  cursor: pointer;
  z-index: 20;
  transition: transform 0.15s ease;
}
.chat-burbuja:hover { transform: scale(1.05); }
.chat-ventana {
  position: fixed;
  bottom: 96px; right: 24px;
  width: 340px;
  max-width: calc(100vw - 48px);
  max-height: min(560px, calc(100vh - 132px));
  background: var(--color-superficie);
  border-radius: var(--radio);
  box-shadow: var(--sombra-hover);
  overflow: hidden;
  z-index: 20;
  display: none;
  flex-direction: column;
}
.chat-ventana.abierta { display: flex; }
.chat-ventana .chat-header {
  background: var(--color-primario);
  color: #fff;
  padding: 14px 16px;
  font-size: 0.88rem;
  font-weight: 600;
  flex: none;
}
.chat-ventana .chat-header small { display: block; font-weight: 400; opacity: 0.85; font-size: 0.74rem; margin-top: 2px; }

.chat-mensajes {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.msg {
  max-width: 86%;
  font-size: 0.83rem;
  line-height: 1.45;
  padding: 9px 12px;
  border-radius: 12px;
}
.msg p { margin: 0 0 6px; }
.msg p:last-child { margin-bottom: 0; }
.msg-bot {
  align-self: flex-start;
  background: var(--color-fondo);
  color: var(--color-texto);
  border-bottom-left-radius: 3px;
}
.msg-usuario {
  align-self: flex-end;
  background: var(--color-primario);
  color: #fff;
  border-bottom-right-radius: 3px;
}

.msg-typing { display: flex; align-items: center; gap: 4px; padding: 12px; }
.msg-typing span {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--color-texto-suave);
  opacity: 0.5;
  animation: none;
}

.chat-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-self: stretch;
}
.chat-chips button {
  border: 1px solid var(--color-acento);
  background: var(--color-acento-suave);
  color: var(--color-acento-oscuro);
  padding: 6px 12px;
  border-radius: 999px;
  font-family: var(--fuente-texto);
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease;
}
.chat-chips button:hover { background: var(--color-acento); color: #fff; }
.chat-canales { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 12px; }
.chat-canales li { display: grid; gap: 5px; padding-bottom: 12px; border-bottom: 1px solid var(--color-borde, #dededb); }
.chat-canales li:last-child { border-bottom: 0; padding-bottom: 0; }
.chat-canales span { font-size: .85rem; }
.chat-canales a { display: block; padding: 8px 10px; border-radius: 8px; color: #fff; background: #147c43; font-weight: 600; text-decoration: none; }
.chat-canales a:hover { background: #0d6535; }
.chat-canales-acceso { flex: none; padding: 10px 14px; border: 0; border-top: 1px solid #dededb; background: #fff; color: var(--color-acento); text-align: left; font: inherit; font-weight: 600; cursor: pointer; }
.chat-canales a:focus-visible, .chat-canales-acceso:focus-visible { outline: 3px solid var(--color-acento); outline-offset: 2px; }

.chat-prop-lista { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.chat-prop-card {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 10px;
  background: var(--color-superficie);
  border: 1px solid var(--color-borde);
  border-radius: 10px;
  padding: 8px;
}
.chat-prop-foto {
  width: 48px; height: 48px;
  border-radius: 7px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--color-acento-suave), var(--color-borde));
  flex: none;
}
.chat-prop-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chat-prop-foto.sin-foto img { display: none; }
.chat-prop-info { min-width: 0; }
.chat-prop-titulo {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-texto);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chat-prop-meta { font-size: 0.7rem; color: var(--color-texto-suave); margin: 2px 0; }
.chat-prop-precio { font-size: 0.78rem; font-weight: 700; color: var(--color-acento); font-variant-numeric: tabular-nums; }
.chat-prop-link {
  font-size: 0.72rem;
  font-weight: 600;
  color: #fff;
  background: var(--color-primario);
  padding: 6px 10px;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
}
.chat-prop-link:hover { background: #000; }

.chat-form {
  flex: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid var(--color-borde);
  background: var(--color-superficie);
}
.chat-form input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--color-borde);
  background: var(--color-fondo);
  border-radius: 999px;
  padding: 9px 14px;
  font-family: var(--fuente-texto);
  font-size: 0.83rem;
  color: var(--color-texto);
}
.chat-form button {
  flex: none;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: none;
  background: var(--color-acento);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.chat-form button:hover { background: var(--color-acento-oscuro); }
.chat-aviso { flex: none; margin: 0; padding: 0 14px 10px; background: var(--color-superficie); color: #6a6a66; font-size: .68rem; line-height: 1.45; }
.chat-aviso a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.chat-aviso a:hover { color: var(--color-acento); }
.chat-form { border-bottom: 0; }

footer {
  text-align: center;
  padding: 32px;
  color: var(--color-texto-suave);
  font-size: 0.82rem;
}

/* Dirección editorial: fotografía real, tipografía expresiva y rojo reservado
   para acciones. Se evita el catálogo de tarjetas pesadas y la campaña AI. */
:root { --pro-lienzo:#efefed; --pro-tinta:#1d1d1b; --pro-rojo:#cf2936; --pro-rojo-oscuro:#a91c28; --pro-linea:rgba(29,29,27,.16); }
html { background:var(--pro-lienzo); }
body { min-width:320px; background:var(--pro-lienzo); color:var(--pro-tinta); font-family:var(--fuente-texto); line-height:1.5; }
::selection { background:var(--pro-rojo); color:#fff; }
body::-webkit-scrollbar { width:12px; }
body::-webkit-scrollbar-track { background:var(--pro-lienzo); }
body::-webkit-scrollbar-thumb { background:#a5a49f; border:3px solid var(--pro-lienzo); border-radius:99px; }

/* Navegación editorial: marca, orientación y acción; no una cápsula genérica. */
.header { position:relative; z-index:20; display:flex; align-items:center; width:min(calc(100% - 48px),1280px); min-height:78px; margin:24px auto 42px; padding:0 26px; border:1px solid rgba(255,255,255,.52); border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 14px 36px rgba(28,28,24,.12); }
.marca { position:static; display:grid; justify-items:start; min-width:174px; margin-right:auto; transform:none; }
.marca img { height:42px; max-width:158px; object-fit:contain; }
.marca > div { text-align:center; }
.marca .nombre { color:#626262; font-size:1.55rem; font-weight:600; line-height:1; letter-spacing:-.035em; }
.marca .subtitulo { margin:2px 0 0; color:#626262; font-size:.7rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
nav { width:auto; justify-content:flex-end; gap:clamp(14px,2vw,28px); padding-right:0; }
nav a { position:relative; padding:12px 0; color:var(--pro-tinta); font-size:.92rem; font-weight:500; transition:color 160ms ease; }
nav a::after { position:absolute; right:0; bottom:6px; left:0; height:1.5px; background:var(--pro-rojo); content:""; opacity:0; transform:scaleX(.3); transition:opacity 160ms ease,transform 160ms ease; }
nav a:hover,nav a.activo { color:var(--pro-rojo); }
nav a:hover::after,nav a.activo::after { opacity:1; transform:scaleX(1); }
nav a.activo { border:0; padding-bottom:12px; }
nav a:last-child { min-height:42px; padding:0 15px; border-radius:999px; background:var(--pro-rojo); color:#fff; display:inline-flex; align-items:center; }.header nav a:last-child::after { display:none; }.header nav a:last-child:hover { background:var(--pro-rojo-oscuro); color:#fff; }.pagina-propiedades .header { position:absolute; top:0; left:50%; width:min(calc(100% - 48px),1380px); min-height:92px; margin:24px 0 0; padding:0; border:0; border-radius:26px 26px 0 0; background:linear-gradient(180deg,rgba(18,18,16,.72),rgba(18,18,16,.38)); box-shadow:none; transform:translateX(-50%); }.pagina-propiedades .marca { align-self:stretch; width:184px; min-width:184px; margin:0; padding:0 22px; background:#fff; border-radius:26px 0 18px 0; }.pagina-propiedades .marca img { height:44px; }.pagina-propiedades nav { padding-right:30px; }.pagina-propiedades nav a { color:#fff; }.pagina-propiedades nav a:hover,.pagina-propiedades nav a.activo { color:#fff; }.pagina-propiedades nav a.activo::after { background:var(--pro-rojo); opacity:1; transform:scaleX(1); }
.pagina-propiedades #contenido { display:contents; }

/* Hero: una fotografía de inventario, no una lámina de campaña. */
.hero-slider { width:min(calc(100% - 48px),1380px); min-height:700px; margin:24px auto 0; border-radius:26px; background:#252525; isolation:isolate; }
.hero-slider::after { position:absolute; z-index:1; inset:0; border-radius:inherit; background:linear-gradient(90deg,rgba(18,18,16,.76),rgba(18,18,16,.4) 48%,rgba(18,18,16,.16)); content:""; pointer-events:none; }
.hero-slider-track { height:700px; min-height:0; background: #252525 url("../img/video-mudanza-poster.jpg") center / cover no-repeat; }
.hero-slide { padding:0; object-fit:cover; filter:saturate(.78) contrast(.98) brightness(.72); }
.hero-contenido { position:absolute; z-index:3; bottom:84px; left:clamp(28px,6vw,82px); width:min(600px,calc(100% - 56px)); color:#fff; }
.hero-contenido h2 { max-width:9ch; margin:0; color:#fff; font-size:clamp(2.8rem,6vw,5.9rem); font-weight:500; letter-spacing:-.035em; line-height:.92; text-wrap:balance; }
.hero-resumen { max-width:46ch; margin:20px 0 22px; color:rgba(255,255,255,.89); font-size:.98rem; }
.hero-inventario { margin:-10px 0 18px; color:rgba(255,255,255,.72); font-size:.78rem; font-weight:600; letter-spacing:.03em; }
.hero-acciones { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:20px; }.hero-cta,.hero-enlace { display:inline-flex; align-items:center; justify-content:center; min-height:46px; font-size:.88rem; font-weight:700; text-decoration:none; }.hero-cta { padding:0 20px; border-radius:999px; background:#fff; color:var(--pro-tinta); }.hero-cta:hover { background:#f1f0eb; }.hero-enlace { color:#fff; text-decoration:underline; text-underline-offset:5px; }.hero-enlace:hover { color:#fff; }
.hero-slider-arrow { z-index:4; width:48px; height:48px; border:1px solid rgba(255,255,255,.42); background:rgba(25,25,24,.44); color:#fff; backdrop-filter:blur(8px); }
.hero-slider-arrow:hover { background:#fff; color:var(--pro-tinta); }
.hero-slider-prev { left:24px; } .hero-slider-next { right:24px; }
.hero-slider-dots { z-index:4; bottom:28px; }
.hero-slider-dots button { width:7px; height:7px; background:rgba(255,255,255,.55); }
.hero-slider-dots button.activo { width:28px; background:#fff; }
.filtros-hero { justify-content:flex-start; margin:0; }
.filtros button { min-height:44px; padding:10px 18px; border:1px solid rgba(255,255,255,.5); background:rgba(255,255,255,.12); color:#fff; font-size:.84rem; font-weight:600; backdrop-filter:blur(8px); transition:background 160ms ease,border-color 160ms ease,color 160ms ease,transform 160ms ease; }
.filtros button:hover { border-color:#fff; background:rgba(255,255,255,.25); } .filtros button:active { transform:translateY(1px); }
.filtros button.activo { border-color:#fff; background:#fff; color:var(--pro-tinta); }
.zona-activa-chip { max-width:1280px; justify-content:flex-start; margin:34px auto 0; padding:0 24px; }
.zona-activa-chip button { min-height:42px; border-color:var(--pro-linea); background:#fff; color:var(--pro-tinta); }

/* Contenido: información primero; cada inmueble se lee como una pieza editorial. */
.propiedades-seccion,.mapa-section { width:min(calc(100% - 48px),1280px); padding:0; }
.propiedades-seccion { margin:108px auto 112px; } .mapa-section { margin:0 auto 112px; }
.provenza-manifiesto { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); gap:72px; width:min(calc(100% - 48px),1280px); margin:106px auto 0; padding:52px 0; border-top:1px solid var(--pro-linea); border-bottom:1px solid var(--pro-linea); }.provenza-manifiesto h2,.home-blog h2 { max-width:14ch; margin:0; color:var(--pro-tinta); font-size:clamp(2.1rem,3.7vw,4rem); font-weight:500; letter-spacing:-.035em; line-height:1; text-wrap:balance; }.manifiesto-destacado { max-width:35ch; margin:20px 0 0; color:#3e3e39; font-family:var(--fuente-editorial); font-size:clamp(1.25rem,2vw,1.65rem); font-style:italic; line-height:1.25; }.manifiesto-detalle { align-self:end; }.manifiesto-detalle>p { max-width:49ch; margin:0; color:#565650; line-height:1.7; }.servicios-en-linea { display:flex; flex-wrap:wrap; gap:9px 16px; margin:23px 0 25px; padding:0; color:var(--pro-tinta); font-size:.85rem; font-weight:700; list-style:none; }.servicios-en-linea li:not(:last-child)::after { margin-left:16px; color:var(--pro-rojo); content:"/"; }.enlace-editorial { color:var(--pro-rojo); font-size:.9rem; font-weight:700; text-decoration:none; }.enlace-editorial::after { margin-left:7px; content:"→"; }.enlace-editorial:hover { text-decoration:underline; text-underline-offset:4px; }
.seccion-cabecera,.mapa-cabecera { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr); gap:48px; align-items:end; padding-bottom:34px; border-bottom:1px solid var(--pro-linea); }
.seccion-marca { margin:0 0 12px; color:var(--pro-rojo); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.seccion-cabecera h2,.mapa-cabecera h2 { max-width:15ch; margin:0; color:var(--pro-tinta); font-size:clamp(2.3rem,4.2vw,4.45rem); font-weight:500; letter-spacing:-.035em; line-height:.98; text-wrap:balance; }
.seccion-cabecera>p,.mapa-cabecera>p { max-width:34ch; margin:0 0 3px; color:#5d5d59; font-size:1rem; line-height:1.6; }
.grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 24px; max-width:none; margin:0; padding:36px 0 0; }
.home-blog { width:min(calc(100% - 48px),1280px); margin:0 auto 112px; }.home-blog-cabecera { display:flex; align-items:end; justify-content:space-between; gap:32px; padding-bottom:34px; border-bottom:1px solid var(--pro-linea); }.home-blog-cabecera p { max-width:45ch; margin:16px 0 0; color:#5d5d59; line-height:1.6; }.home-blog .blog-grid { width:auto; padding:36px 0 0; }
.tarjeta { min-width:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; color:var(--pro-tinta); transition:none; }
.tarjeta:hover { border-color:transparent; box-shadow:none; transform:none; }
.tarjeta .foto-wrap { border-radius:14px; background:#dad9d5; overflow:hidden; }
.tarjeta .foto-wrap::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.38)); content:""; opacity:0; transition:opacity 220ms ease; }
.tarjeta:hover .foto-wrap::after,.tarjeta:focus-visible .foto-wrap::after { opacity:1; }
.tarjeta .foto-wrap img { transition:transform 500ms cubic-bezier(.2,.75,.25,1); }
.tarjeta:hover .foto-wrap img,.tarjeta:focus-visible .foto-wrap img { transform:scale(1.035); }
.badge-operacion,.badge-codigo { z-index:2; top:14px; font-size:.68rem; }.badge-operacion { left:14px; background:rgba(28,28,26,.92); color:#fff; }.badge-codigo { right:14px; color:#50504c; }
.tarjeta .info { padding:18px 2px 0; }.tarjeta .zona { margin:0 0 6px; color:var(--pro-rojo); font-size:.7rem; font-weight:700; letter-spacing:.11em; }
.tarjeta h3 { margin:0 0 12px; font-size:1.16rem; font-weight:600; letter-spacing:-.035em; }.tarjeta .specs { gap:12px; margin:0 0 13px; color:#5a5a55; font-size:.78rem; }
.tarjeta .specs svg { width:15px; height:15px; opacity:.7; }.tarjeta .precio { color:var(--pro-tinta); font-size:1.08rem; font-weight:700; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }.tarjeta .precio small { color:#6a6a64; font-size:.76rem; }
.mapa-cabecera { padding-bottom:32px; } #mapa { height:480px; border:0; border-radius:16px; box-shadow:0 18px 46px rgba(30,30,26,.1); }.pin-precio.pin-activo { background:var(--pro-rojo); }

/* Ficha, blog y asistencia comparten la misma voz, sin cambiar su copy ni flujo. */
.detalle-hero,.volver-wrap { max-width:1280px; }.volver-wrap { margin-top:0; padding:0 24px; }.volver { min-height:44px; color:#555550; font-size:.88rem; }.detalle-hero { margin-top:16px; padding:0 24px; }.detalle-hero .foto-grande { border-radius:18px; box-shadow:0 18px 48px rgba(30,30,26,.12); }
.detalle-cuerpo { max-width:1280px; grid-template-columns:minmax(0,1fr) 330px; gap:76px; padding:0 24px; }.detalle-cuerpo h1 { max-width:16ch; font-size:clamp(2.2rem,4vw,4rem); font-weight:500; letter-spacing:-.035em; line-height:1; }.detalle-cuerpo .zona-detalle { color:var(--pro-rojo); font-size:.84rem; font-weight:600; letter-spacing:.04em; }.specs-grandes { padding:22px 0; border-top:1px solid var(--pro-linea); border-bottom:1px solid var(--pro-linea); }.specs-grandes strong { color:var(--pro-tinta); }.descripcion-larga { max-width:65ch; line-height:1.7; }.panel-contacto { align-self:start; border:0; border-radius:16px; background:#fff; box-shadow:0 16px 42px rgba(28,28,24,.1); }.precio-grande { color:var(--pro-tinta); font-size:1.58rem; }.boton-primario,.boton-secundario { min-height:46px; border-radius:999px; font-weight:700; }.boton-primario { background:var(--pro-rojo); }.boton-primario:hover { background:var(--pro-rojo-oscuro); }.boton-secundario { border-color:var(--pro-linea); color:var(--pro-tinta); }
.blog-hero { width:min(calc(100% - 48px),1280px); margin:0 auto; padding:32px 0 24px; text-align:left; }.blog-hero .eyebrow { margin:0 0 12px; color:var(--pro-rojo); font-family:var(--fuente-texto); font-size:.72rem; letter-spacing:.12em; }.blog-hero h1 { max-width:14ch; margin:0 0 14px; font-size:clamp(2.6rem,5vw,5rem); font-weight:500; letter-spacing:-.035em; line-height:.95; }.blog-hero p { margin:0 0 25px; font-size:1rem; }.blog-hero .filtros { justify-content:flex-start; }.blog-hero .filtros button { border-color:var(--pro-linea); background:#fff; color:var(--pro-tinta); }.blog-hero .filtros button.activo { border-color:var(--pro-tinta); background:var(--pro-tinta); color:#fff; }
.blog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 24px; width:min(calc(100% - 48px),1280px); padding:28px 0 96px; }.tarjeta-blog { border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }.tarjeta-blog:hover { border-color:transparent; box-shadow:none; transform:none; }.blog-foto-wrap { border-radius:14px; background:#dad9d5; overflow:hidden; }.blog-foto-wrap img { transition:transform 500ms cubic-bezier(.2,.75,.25,1); }.tarjeta-blog:hover .blog-foto-wrap img,.tarjeta-blog:focus-visible .blog-foto-wrap img { transform:scale(1.035); }.blog-categoria-badge { top:14px; left:14px; background:rgba(28,28,26,.9); }.blog-info { padding:18px 2px 0; }.blog-fecha,.blog-leer-mas { color:var(--pro-rojo); }.blog-fecha { font-weight:700; }.tarjeta-blog h3 { font-size:1.16rem; letter-spacing:-.035em; }.blog-post { max-width:800px; padding:0 24px; }.blog-post h1 { max-width:14ch; font-size:clamp(2.5rem,5vw,4.8rem); font-weight:500; letter-spacing:-.065em; line-height:.98; }.blog-post-portada { border-radius:16px; }.blog-post-cuerpo p { max-width:68ch; color:#363632; font-size:1.05rem; }.blog-relacionados { max-width:1280px; padding-right:24px; padding-left:24px; }
.chat-burbuja { width:56px; height:56px; right:26px; bottom:26px; background:var(--pro-rojo); box-shadow:0 12px 24px rgba(20,20,18,.22); }.chat-burbuja:hover { background:var(--pro-rojo-oscuro); transform:translateY(-2px); }.chat-ventana { right:26px; bottom:96px; border-radius:16px; box-shadow:0 20px 50px rgba(0,0,0,.19); }.chat-ventana .chat-header { background:var(--pro-tinta); }.chat-chips button { border-color:var(--pro-rojo); color:var(--pro-rojo); background:#fff; }.chat-chips button:hover { background:var(--pro-rojo); }.chat-form button { background:var(--pro-rojo); }
footer { margin-top:0; padding:42px 24px; background:var(--pro-tinta); color:rgba(255,255,255,.72); font-size:.78rem; letter-spacing:.03em; }

@media (max-width:860px) { .header { min-height:82px; width:min(calc(100% - 32px),720px); margin-top:16px; padding:12px 22px; }.marca { position:static; transform:none; min-width:0; }.marca img { height:38px; } nav { justify-content:flex-end; padding-right:0; } nav a { font-size:.82rem; }.pagina-propiedades .header { position:relative; top:auto; left:auto; margin:16px auto 0; transform:none; }.hero-slider { width:min(calc(100% - 32px),720px); min-height:610px; margin-top:16px; }.hero-slider-track { height:610px; }.hero-contenido { bottom:76px; left:34px; }.seccion-cabecera,.mapa-cabecera,.provenza-manifiesto { grid-template-columns:1fr; gap:24px; }.seccion-cabecera h2,.mapa-cabecera h2 { max-width:19ch; }.grid,.blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.home-blog-cabecera { align-items:flex-start; flex-direction:column; }.detalle-cuerpo { grid-template-columns:1fr; gap:36px; }.panel-contacto { max-width:520px; } }
@media (max-width:560px) { .header { align-items:flex-start; min-height:0; border-radius:22px; }.marca { justify-items:start; }.marca > div { text-align:left; }.marca img { height:34px; max-width:142px; } nav { justify-content:flex-start; gap:6px 18px; } nav a { padding:4px 0; } nav a::after { bottom:0; } nav a.activo { padding-bottom:4px; }.hero-slider { min-height:620px; border-radius:18px; }.hero-slider-track { height:620px; }.hero-slider::after { background:linear-gradient(0deg,rgba(18,18,16,.78),rgba(18,18,16,.12) 76%); }.hero-contenido { bottom:68px; left:24px; width:calc(100% - 48px); }.hero-contenido h2 { max-width:11ch; font-size:clamp(2.65rem,13vw,4rem); }.hero-resumen { margin:15px 0 13px; font-size:.9rem; }.hero-inventario { margin:0 0 16px; }.hero-acciones { gap:13px; margin-top:16px; }.hero-slider-arrow { top:28%; width:42px; height:42px; }.hero-slider-prev { left:12px; }.hero-slider-next { right:12px; }.hero-slider-dots { bottom:25px; }.filtros { gap:8px; }.filtros button { min-height:42px; padding:8px 14px; }.propiedades-seccion,.mapa-section,.blog-hero,.blog-grid,.provenza-manifiesto,.home-blog { width:calc(100% - 32px); }.provenza-manifiesto { margin-top:74px; padding:38px 0; }.manifiesto-destacado { font-size:1.25rem; }.servicios-en-linea { gap:8px 12px; }.servicios-en-linea li:not(:last-child)::after { margin-left:12px; }.home-blog { margin-bottom:76px; }.home-blog-cabecera { gap:18px; padding-bottom:24px; }.propiedades-seccion { margin-top:74px; margin-bottom:76px; }.mapa-section { margin-bottom:76px; }.seccion-cabecera,.mapa-cabecera { padding-bottom:24px; }.seccion-cabecera h2,.mapa-cabecera h2 { font-size:clamp(2.35rem,12vw,3.4rem); }.grid,.blog-grid { grid-template-columns:1fr; gap:38px; padding-top:28px; } #mapa { height:350px; border-radius:12px; }.volver-wrap,.detalle-hero,.detalle-cuerpo { padding-right:16px; padding-left:16px; }.detalle-cuerpo { margin-bottom:48px; }.blog-hero { padding-top:8px; }.blog-hero h1,.blog-post h1 { font-size:clamp(2.5rem,13vw,3.7rem); }.blog-post { padding:0 16px; }.chat-burbuja { right:18px; bottom:18px; }.chat-ventana { right:12px; bottom:86px; width:min(calc(100vw - 24px),360px); } }

/* Los puntos del carrusel conservan su lectura visual compacta, pero cada
   control dispone de una zona táctil completa. */
.hero-slider-dots { gap:0; align-items:center; }
.hero-slider-dots button,.hero-slider-dots button.activo { position:relative; width:36px; min-width:36px; height:36px; min-height:36px; border-radius:50%; background:transparent; }
.hero-slider-dots button::before { position:absolute; top:50%; left:50%; width:7px; height:7px; border-radius:99px; background:rgba(255,255,255,.55); content:""; transform:translate(-50%,-50%) scaleX(1); transition:transform .2s ease,background .2s ease; }
.hero-slider-dots button.activo::before { background:#fff; transform:translate(-50%,-50%) scaleX(4); }
@media (max-width:560px) { .hero-slider-arrow { width:44px; height:44px; }.filtros button { min-height:44px; } }

/* Exploración tipo mapa/listado y galería de la ficha. */
.mapa-experiencia { display:grid; grid-template-columns:minmax(0,1fr) 320px; min-height:480px; border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 18px 46px rgba(30,30,26,.1); }
.mapa-experiencia #mapa { height:100%; border-radius:0; box-shadow:none; }.mapa-lista { padding:22px; overflow:auto; }.mapa-lista-etiqueta { margin:0 0 16px; color:var(--pro-rojo); font-size:.75rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.mapa-lista .tarjeta { display:block; }.mapa-lista .tarjeta .foto-wrap { aspect-ratio:4/3; }.mapa-lista .tarjeta .info { padding-top:14px; }
.mapa-experiencia #mapa,.mapa-experiencia .leaflet-container { cursor:zoom-in; }.mapa-experiencia .leaflet-tile { filter:saturate(.46) brightness(1.08) contrast(.87); }.mapa-instruccion { max-width:27ch; margin:0; color:#5d5d59; line-height:1.6; }.marker-miniatura-wrap { background:transparent; border:0; }.mapa-miniatura { display:block; width:86px; height:82px; padding:0; border:0; background:transparent; cursor:zoom-in; outline:0; transform:scale(var(--escala-miniaturas,1)); transform-origin:center; }.mapa-miniatura-cuerpo { position:relative; display:block; width:86px; height:82px; transition:transform 180ms cubic-bezier(.2,.75,.25,1); }.mapa-miniatura img { display:block; width:64px; height:64px; margin:0 auto; border:3px solid #fff; border-radius:14px; object-fit:cover; box-shadow:0 7px 18px rgba(24,24,21,.24); transition:filter 180ms ease,box-shadow 180ms ease; }.mapa-miniatura-precio { position:absolute; right:0; bottom:0; min-width:44px; padding:4px 7px; border-radius:999px; background:var(--pro-tinta); color:#fff; font:700 .67rem/1 var(--fuente-texto); font-variant-numeric:tabular-nums; box-shadow:0 4px 10px rgba(24,24,21,.2); }.mapa-miniatura-lupa { position:absolute; top:3px; left:11px; display:grid; width:42px; height:42px; place-items:center; border-radius:12px; background:rgba(28,28,26,.68); color:#fff; opacity:0; transform:scale(.88); transition:opacity 160ms ease,transform 160ms ease; }.mapa-miniatura-lupa svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:2; }.mapa-miniatura:hover .mapa-miniatura-cuerpo,.mapa-miniatura:focus-visible .mapa-miniatura-cuerpo,.mapa-miniatura.seleccionada .mapa-miniatura-cuerpo { transform:translateY(-4px) scale(1.12); }.mapa-miniatura:hover img,.mapa-miniatura:focus-visible img,.mapa-miniatura.seleccionada img { filter:brightness(.8); box-shadow:0 12px 25px rgba(24,24,21,.28); }.mapa-miniatura:hover .mapa-miniatura-lupa,.mapa-miniatura:focus-visible .mapa-miniatura-lupa,.mapa-miniatura.seleccionada .mapa-miniatura-lupa { opacity:1; transform:scale(1); }.mapa-miniatura.seleccionada .mapa-miniatura-precio { background:var(--pro-rojo); }.mapa-miniatura:focus-visible img { outline:3px solid var(--pro-rojo); outline-offset:3px; }
/* Imagen muy compacta, con una zona interactiva que sigue siendo utilizable
   en mouse y táctil. */
.marker-miniatura-wrap { width:44px !important; height:44px !important; margin:-22px 0 0 -22px !important; }
.mapa-miniatura { position:relative; width:44px; height:44px; transform:none; }
.mapa-miniatura-cuerpo { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(var(--escala-miniaturas,.1)); transform-origin:center; }
.mapa-miniatura:hover .mapa-miniatura-cuerpo,.mapa-miniatura:focus-visible .mapa-miniatura-cuerpo,.mapa-miniatura.seleccionada .mapa-miniatura-cuerpo { transform:translate(-50%,calc(-50% - 4px)) scale(var(--escala-miniaturas-hover,.112)); }
.galeria-principal { position:relative; }.galeria-ampliar { position:absolute; right:18px; bottom:18px; min-height:44px; padding:10px 16px; border:0; border-radius:999px; background:#fff; color:var(--pro-tinta); font:600 .82rem var(--fuente-texto); cursor:pointer; }.galeria-datos { margin:10px 0 0; color:#5d5d59; font-size:.84rem; }.lightbox-galeria { width:min(1100px,calc(100vw - 32px)); max-width:none; padding:24px; border:0; border-radius:16px; background:#1d1d1b; color:#fff; }.lightbox-galeria::backdrop { background:rgba(0,0,0,.75); }.lightbox-galeria img { display:block; width:100%; max-height:75vh; object-fit:contain; }.lightbox-galeria p { margin:14px 56px 0; text-align:center; }.lightbox-cerrar,.lightbox-nav { position:absolute; z-index:1; width:44px; height:44px; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:rgba(20,20,20,.7); color:#fff; cursor:pointer; }.lightbox-cerrar { top:16px; right:16px; font-size:1.7rem; }.lightbox-nav { top:50%; transform:translateY(-50%); }.lightbox-anterior { left:16px; }.lightbox-siguiente { right:16px; }.lightbox-anterior::after { content:"‹"; font-size:1.7rem; }.lightbox-siguiente::after { content:"›"; font-size:1.7rem; }
.datos-interes { margin-top:32px; padding-top:28px; border-top:1px solid var(--pro-linea); }.datos-interes h2 { margin:0 0 20px; font-size:1.2rem; letter-spacing:-.02em; }.datos-interes dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0; }.datos-interes div { min-width:0; }.datos-interes dt { color:#696963; font-size:.78rem; }.datos-interes dd { margin:2px 0 0; font-size:.96rem; font-weight:600; }
@media (max-width:860px) { .mapa-experiencia { grid-template-columns:1fr; }.mapa-experiencia #mapa { height:390px; }.mapa-lista { padding:18px; }.mapa-lista .tarjeta { display:grid; grid-template-columns:140px 1fr; gap:14px; align-items:start; }.mapa-lista .tarjeta .info { padding:0; }.datos-interes dl { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .mapa-experiencia #mapa { height:330px; }.mapa-lista .tarjeta { grid-template-columns:1fr; }.datos-interes dl { grid-template-columns:1fr 1fr; gap:16px; }.lightbox-galeria { padding:12px; }.lightbox-galeria p { margin-right:44px; margin-left:44px; font-size:.8rem; } }
@media (prefers-reduced-motion:reduce) { .mapa-miniatura,.mapa-miniatura img,.mapa-miniatura-lupa { transition:none; } }

/* En móvil la marca y el menú siguen siendo parte del hero: nunca una franja
   previa que rompa la fotografía ni cambie la primera impresión de la página. */
@media (max-width:860px) {
  .pagina-propiedades .header {
    position:absolute;
    top:0;
    left:50%;
    width:min(calc(100% - 32px),720px);
    min-height:86px;
    margin:16px 0 0;
    padding:0;
    transform:translateX(-50%);
  }
  .pagina-propiedades .marca { width:150px; min-width:150px; padding:0 16px; }
  .pagina-propiedades .marca img { height:38px; max-width:122px; }
  .pagina-propiedades nav { gap:clamp(12px,2vw,20px); padding-right:20px; }
}
@media (max-width:560px) {
  .pagina-propiedades .header { min-height:108px; border-radius:18px 18px 0 0; }
  .pagina-propiedades .marca {
    align-self:flex-start;
    width:132px;
    min-width:132px;
    height:58px;
    padding:0 12px;
    border-radius:18px 0 14px 0;
  }
  .pagina-propiedades .marca img { height:31px; max-width:106px; }
  .pagina-propiedades nav {
    position:absolute;
    top:10px;
    right:14px;
    width:calc(100% - 160px);
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px 13px;
    padding:0;
  }
  .pagina-propiedades nav a { min-height:28px; padding:2px 0; font-size:.74rem; }
  .pagina-propiedades nav a.activo { padding-bottom:2px; }
  .pagina-propiedades nav a:last-child { min-height:34px; padding:0 12px; margin-left:auto; }

  /* La marca ya vive en el bloque blanco del encabezado. Repetirla dentro
     del hero comprimía el contenido hasta invadir esa misma zona. */
  .pagina-propiedades .hero-inventario { display:none; }
  .pagina-propiedades .hero-contenido { bottom:64px; }
  .pagina-propiedades .hero-slider-dots { bottom:16px; }
}

.busqueda-avanzada,.pagina-informativa { width:min(calc(100% - 48px),1120px); min-height:60vh; margin:0 auto 96px; }.busqueda-avanzada h1,.pagina-informativa h1 { max-width:15ch; margin:0 0 16px; font-size:clamp(2.6rem,5vw,5rem); font-weight:500; letter-spacing:-.035em; line-height:.98; }.busqueda-avanzada>p,.pagina-informativa>p { max-width:62ch; color:#5d5d59; font-size:1.04rem; }.form-busqueda { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:38px 0 22px; padding:24px; border-radius:16px; background:#fff; box-shadow:0 16px 42px rgba(28,28,24,.08); }.form-busqueda label { display:grid; gap:7px; color:#4e4e49; font-size:.82rem; font-weight:700; }.form-busqueda input,.form-busqueda select { min-height:44px; border:1px solid var(--pro-linea); border-radius:8px; padding:9px 11px; background:#fff; color:var(--pro-tinta); font:400 .94rem var(--fuente-texto); }.form-busqueda .boton-primario { align-self:end; border:0; cursor:pointer; }.texto-original,.contacto-datos { max-width:720px; margin:46px 0 30px; padding:30px 0; border-top:1px solid var(--pro-linea); border-bottom:1px solid var(--pro-linea); }.texto-original h2 { margin:0 0 14px; font-size:1.5rem; }.texto-original p,.contacto-datos p { max-width:65ch; color:#4f4f4a; line-height:1.7; }.contacto-datos { display:grid; gap:12px; }.contacto-datos a { color:var(--pro-rojo); font-size:1.15rem; font-weight:700; text-decoration:none; }.enlace-boton { display:inline-flex; align-items:center; justify-content:center; width:auto; padding:0 22px; color:#fff; text-decoration:none; }
@media (max-width:760px) { .form-busqueda { grid-template-columns:1fr; }.busqueda-avanzada,.pagina-informativa { width:calc(100% - 32px); } }

/* Reserva permanente para el asistente de Netlify en la esquina inferior.
   Mantiene este acceso táctil libre, incluso cuando el host añade su capa. */
.chat-burbuja { bottom:max(104px,calc(24px + env(safe-area-inset-bottom))); }
.chat-ventana { bottom:max(176px,calc(96px + env(safe-area-inset-bottom))); }
@media (max-width:560px) {
  .chat-burbuja { right:18px; bottom:max(96px,calc(18px + env(safe-area-inset-bottom))); }
  .chat-ventana { right:12px; bottom:max(168px,calc(86px + env(safe-area-inset-bottom))); }
}

/* Marcador cuando un inmueble aún no tiene fotos */
.foto-marcador { object-fit: contain !important; padding: 18% !important; background: #f3f3f3; }
.tarjeta img.foto-marcador { padding: 22% !important; }

/* ===== Consentimiento de cookies ===== */
.cookies-banner { position: fixed; z-index: 60; left: 16px; bottom: max(16px, env(safe-area-inset-bottom)); display: grid; gap: 14px; width: min(760px, calc(100vw - 420px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 18px 20px; border-radius: 14px; background: #fff; color: #272724; box-shadow: 0 18px 50px rgba(20,20,18,.18); font-family: var(--fuente-texto); }
.cookies-banner[hidden] { display: none; }
.cookies-texto strong { display: block; margin-bottom: 4px; font-size: .95rem; }
.cookies-texto p { margin: 0; color: #55554f; font-size: .84rem; line-height: 1.5; }
.cookies-texto a { color: var(--color-acento); }
.cookies-detalle { margin-top: 10px; font-size: .82rem; }
.cookies-detalle summary { cursor: pointer; color: #55554f; }
.cookies-detalle label { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.cookies-detalle small { color: #60605b; }
.cookies-acciones { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.cookies-boton { min-height: 40px; padding: 0 16px; border: 0; border-radius: 8px; background: var(--color-acento); color: #fff; font: 600 .84rem var(--fuente-texto); cursor: pointer; }
.cookies-boton:hover { background: var(--color-acento-oscuro); }
.cookies-boton.secundario { border: 1px solid #cfcdc6; background: #fff; color: #30302d; }
.cookies-boton.secundario:hover { background: #f1f0ec; }
@media (max-width: 1000px) {
  .cookies-banner { width: calc(100% - 32px); }
  .chat-burbuja { bottom: max(104px, var(--cookies-espacio, 0px), calc(24px + env(safe-area-inset-bottom))); }
  .chat-ventana { bottom: max(176px, calc(var(--cookies-espacio, 0px) + 72px)); max-height: max(0px, calc(100dvh - max(176px, calc(var(--cookies-espacio, 0px) + 72px)) - 16px)); }
}
@media (max-width: 560px) { .cookies-banner { padding: 14px; } .cookies-acciones { justify-content: stretch; } .cookies-boton { flex: 1 1 auto; } .cookies-detalle label { flex-wrap: wrap; } }

/* ===== Pie de página ===== */
.pie-sitio { margin-top: 56px; padding: 40px 24px 24px; background: var(--pro-tinta); color: #cfcdc6; font-size: .84rem; text-align: left; letter-spacing: normal; }
.pie-columnas { display: grid; gap: 28px 48px; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); max-width: 1120px; margin: 0 auto; }
.pie-col { min-width: 0; }
.pie-col h3 { margin: 0 0 10px; color: #fff; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.pie-col p { margin: 10px 0 0; line-height: 1.7; }
.pie-col ul { margin: 0; padding: 0; list-style: none; line-height: 1.9; }
.pie-col a { color: #e9e8e3; text-decoration: none; overflow-wrap: anywhere; }
.pie-col a:hover { color: #fff; text-decoration: underline; }
.pie-redes a { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; }
.pie-redes svg { flex: none; }
.pie-logo { height: 44px; width: auto; filter: brightness(0) invert(1); opacity: .9; }
.pie-legal { max-width: 1120px; margin: 28px auto 0; padding-top: 16px; border-top: 1px solid #3a3a38; color: #b8b7b1; font-size: .74rem; line-height: 1.6; }
@media (max-width: 760px) { .pie-columnas { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pie-col:first-child { grid-column: 1 / -1; } }
@media (max-width: 400px) { .pie-columnas { grid-template-columns: minmax(0, 1fr); } }

/* ===== Página legal ===== */
.pagina-legal { max-width: 820px; margin: 0 auto; padding: 32px 20px 48px; line-height: 1.65; }
.pagina-legal .eyebrow { color: var(--color-acento); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pagina-legal h1 { margin: 6px 0 14px; font-size: 1.9rem; line-height: 1.15; }
.pagina-legal .intro { color: #45443f; }
.indice-legal { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 28px; }
.indice-legal a { padding: 6px 10px; border: 1px solid #e3e1dc; border-radius: 999px; color: #45443f; font-size: .78rem; text-decoration: none; }
.indice-legal a:hover { border-color: var(--color-acento); color: var(--color-acento); }
.pagina-legal h2 { margin: 30px 0 10px; font-size: 1.15rem; }
.pagina-legal ul { padding-left: 20px; }
.pagina-legal li { margin-bottom: 6px; }
.tabla-legal { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: .84rem; }
.tabla-legal th, .tabla-legal td { padding: 10px 8px; border-top: 1px solid #e3e1dc; text-align: left; vertical-align: top; }
.tabla-legal th { color: #77756f; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.nota-legal { margin-top: 24px; color: #8a8882; font-size: .78rem; }

/* ===== Contacto ===== */
.pagina-contacto { max-width: 1080px; margin: 0 auto; padding: 32px 20px 48px; }
.contacto-grid { display: grid; gap: 36px; grid-template-columns: 1fr 1fr; align-items: start; }
.formulario-contacto { padding: 26px; border: 1px solid #e3e1dc; border-radius: 14px; background: #fff; }
.formulario-contacto h2 { margin: 0 0 16px; font-size: 1.15rem; }
.formulario-contacto .campo { margin-bottom: 14px; }
.formulario-contacto .fila-2 { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.formulario-contacto label { display: block; margin-bottom: 6px; color: #55554f; font-size: .78rem; font-weight: 600; }
.formulario-contacto input, .formulario-contacto textarea { width: 100%; padding: 11px 12px; border: 1px solid #d9d6cf; border-radius: 9px; font: inherit; font-size: .9rem; }
.formulario-contacto input:focus, .formulario-contacto textarea:focus { outline: none; border-color: var(--color-acento); box-shadow: 0 0 0 3px rgba(216,42,52,.14); }
.autorizacion { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0 14px; color: #45443f; font-size: .8rem; line-height: 1.5; font-weight: 400 !important; }
.autorizacion input { width: auto !important; margin-top: 3px; }
.autorizacion a { color: var(--color-acento); }
.form-error { margin: 0 0 12px; padding: 10px 12px; border-radius: 8px; background: #fdecec; color: #ad231e; font-size: .84rem; }
.form-ok { margin: 14px 0 0; padding: 12px; border-radius: 8px; background: #e1f0e6; color: #29734d; font-weight: 600; }
.formulario-contacto .boton-primario { width: 100%; }
@media (max-width: 760px) { .contacto-grid, .formulario-contacto .fila-2 { grid-template-columns: 1fr; } }

/* ===== Autorización en el asistente ===== */
.chat-autorizacion { margin-top: 6px; color: #55554f; font-size: .76rem; line-height: 1.45; }
.chat-autorizacion a { color: var(--color-acento); }

/* ===== Propietarios ===== */
.pagina-propietarios { max-width: 1120px; margin: 0 auto; padding: 32px 20px 48px; display: grid; gap: 40px; grid-template-columns: 1.05fr 1fr; align-items: start; }
.propietarios-hero .eyebrow { color: var(--color-acento); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.propietarios-hero h1 { margin: 6px 0 14px; font-size: 2.1rem; line-height: 1.1; letter-spacing: -.01em; }
.propietarios-hero .intro { color: #45443f; font-size: 1.02rem; line-height: 1.6; }
.propietarios-beneficios { margin: 22px 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.propietarios-beneficios li { position: relative; padding: 14px 16px 14px 44px; border: 1px solid #e3e1dc; border-radius: 12px; background: #fff; color: #45443f; line-height: 1.5; font-size: .92rem; }
.propietarios-beneficios li::before { content: "✓"; position: absolute; left: 15px; top: 13px; width: 20px; height: 20px; border-radius: 50%; background: var(--color-acento); color: #fff; font-size: .72rem; font-weight: 700; text-align: center; line-height: 20px; }
.propietarios-beneficios strong { color: #1f1f1f; }
.propietarios-paso { color: #55554f; font-size: .9rem; }
.formulario-propietario fieldset { margin: 0 0 14px; padding: 0; border: 0; }
.formulario-propietario legend { margin-bottom: 10px; color: var(--color-acento); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.formulario-propietario .fila-3 { display: grid; gap: 12px; grid-template-columns: 1fr 1fr 1fr; }
.formulario-propietario select { width: 100%; padding: 11px 12px; border: 1px solid #d9d6cf; border-radius: 9px; font: inherit; font-size: .9rem; background: #fff; }
@media (max-width: 860px) { .pagina-propietarios { grid-template-columns: 1fr; } }

/* Estados de carga: error de la API (con reintento) y ficha inexistente */
.estado-error-carga { grid-column:1 / -1; max-width:560px; margin:24px auto; padding:24px; border:1px solid #e6c9cb; border-radius:14px; background:#fdf6f6; text-align:center; color:var(--color-texto, #1e1e1a); }
.estado-error-carga p { margin:0 0 14px; }
.ficha-no-disponible { grid-column:1 / -1; max-width:620px; margin:32px auto 64px; text-align:center; }
.ficha-no-disponible h1 { margin:0 auto 8px; }
.chat-reintentar-nota { font-size:.85rem; color:var(--color-texto-suave, #666); }

/* ===== Fase 1 — catálogo que permite decidir: buscador, favoritos, comparación, costos ===== */
.tarjeta { position:relative; }
.tarjeta-enlace { display:block; color:inherit; text-decoration:none; }
.tarjeta.resaltada .foto-wrap { outline:3px solid var(--pro-rojo); outline-offset:2px; }
.tarjeta .specs { flex-wrap:wrap; }
.tarjeta .precio .nota-admin { display:block; margin-top:3px; color:#5d5d59; font-size:.78rem; font-weight:500; }
.sin-dato, .tarjeta .precio .nota-admin.sin-dato { color:#8a8a84; font-style:italic; }
.fav-boton { position:absolute; top:12px; right:12px; z-index:2; display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border:0; border-radius:999px; background:rgba(255,255,255,.92); color:var(--pro-tinta); box-shadow:0 2px 10px rgba(0,0,0,.18); cursor:pointer; transition:transform 120ms ease, background 120ms ease; }
.fav-boton svg { fill:none; stroke:currentColor; stroke-width:1.9; stroke-linejoin:round; }
.fav-boton:hover { transform:scale(1.08); }
.fav-boton.activo { color:var(--pro-rojo); }
.fav-boton.activo svg { fill:var(--pro-rojo); stroke:var(--pro-rojo); }
.fav-boton.fav-boton-texto { position:static; width:auto; height:42px; gap:8px; padding:0 16px; border:1px solid var(--pro-linea); border-radius:999px; background:#fff; box-shadow:none; font:600 .85rem var(--fuente-texto); }
.fav-boton.fav-boton-texto::after { content:"Guardar"; }
.fav-boton.fav-boton-texto.activo::after { content:"Guardada"; }
.comparar-boton { min-height:42px; padding:0 16px; border:1px solid var(--pro-linea); border-radius:999px; background:#fff; color:var(--pro-tinta); font:600 .85rem var(--fuente-texto); cursor:pointer; }
.comparar-boton.activo { border-color:var(--pro-rojo); color:var(--pro-rojo); }
.acciones-guardar { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.nav-favoritos .nav-favoritos-n { display:inline-block; min-width:18px; margin-left:4px; padding:0 5px; border-radius:999px; background:var(--pro-rojo); color:#fff; font-size:.7rem; line-height:18px; text-align:center; }
.nav-favoritos:not(.con-favoritos) .nav-favoritos-n { display:none; }
.fav-aviso { position:fixed; bottom:84px; left:50%; z-index:60; padding:12px 18px; border-radius:999px; background:var(--pro-tinta); color:#fff; font-size:.88rem; opacity:0; transform:translate(-50%,8px); transition:opacity 160ms ease, transform 160ms ease; pointer-events:none; }
.fav-aviso.mostrar { opacity:1; transform:translate(-50%,0); }
.barra-comparar { position:fixed; right:0; bottom:0; left:0; z-index:55; padding:0 16px 16px; pointer-events:none; }
.barra-comparar-cuerpo { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; width:min(100%,920px); margin:0 auto; padding:12px 16px; border-radius:16px; background:#fff; box-shadow:0 14px 40px rgba(28,28,24,.22); pointer-events:auto; }
.barra-comparar-texto { color:#4e4e49; font-size:.88rem; }
.barra-comparar-codigos { display:flex; flex-wrap:wrap; gap:6px; flex:1; }
.barra-chip { display:inline-flex; align-items:center; gap:4px; padding:4px 6px 4px 10px; border-radius:999px; background:#f1f0eb; font-size:.8rem; font-weight:600; }
.barra-chip button { width:20px; height:20px; border:0; border-radius:999px; background:transparent; color:#5d5d59; font-size:1rem; line-height:1; cursor:pointer; }
.barra-comparar-ir { display:inline-flex; align-items:center; min-height:42px; padding:0 18px; border-radius:999px; background:var(--pro-rojo); color:#fff; font-size:.88rem; font-weight:700; text-decoration:none; }
.barra-comparar-ir.deshabilitado { background:#c9c8c2; pointer-events:none; }
/* buscador */
.form-busqueda-f1 { grid-template-columns:repeat(3,1fr); }
.form-busqueda-f1 .filtros-mas { grid-column:1 / -1; }
.form-busqueda-f1 .filtros-mas summary { cursor:pointer; color:var(--pro-rojo); font-size:.86rem; font-weight:700; list-style:none; }
.form-busqueda-f1 .filtros-mas summary::-webkit-details-marker { display:none; }
.form-busqueda-f1 .filtros-mas summary::before { content:"+ "; }
.form-busqueda-f1 .filtros-mas[open] summary::before { content:"− "; }
.filtros-mas-cuerpo { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:16px; }
.form-busqueda-f1 .filtro-check { display:flex; flex-direction:row; align-items:center; gap:10px; align-self:end; min-height:44px; font-weight:600; }
.form-busqueda-f1 .filtro-check input { width:20px; height:20px; min-height:0; accent-color:var(--pro-rojo); }
.form-busqueda-acciones { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.form-busqueda-acciones .boton-primario { width:auto; min-width:220px; margin:0; }
.boton-texto { padding:8px 0; border:0; background:transparent; color:var(--pro-rojo); font:700 .86rem var(--fuente-texto); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.resultados-barra { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; margin:8px 0 12px; }
.resultados-barra p { margin:0; color:#4e4e49; font-weight:600; }
.resultados-controles { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.resultados-controles .orden { display:flex; align-items:center; gap:8px; color:#4e4e49; font-size:.84rem; font-weight:700; }
.resultados-controles select { min-height:40px; border:1px solid var(--pro-linea); border-radius:8px; padding:6px 10px; background:#fff; font:400 .9rem var(--fuente-texto); }
.chips-filtros { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.chips-filtros[hidden] { display:none; }
.chip-filtro { padding:7px 12px; border:1px solid var(--pro-linea); border-radius:999px; background:#fff; color:var(--pro-tinta); font:600 .8rem var(--fuente-texto); cursor:pointer; }
.chip-filtro:hover { border-color:var(--pro-rojo); color:var(--pro-rojo); }
.resultados-layout { display:grid; grid-template-columns:1fr; gap:24px; align-items:start; }
.resultados-layout.con-mapa { grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); }
.grid-busqueda { padding:0; margin:0; max-width:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 24px; }
.resultados-layout.con-mapa .grid-busqueda { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mapa-busqueda { position:sticky; top:24px; }
.mapa-busqueda[hidden] { display:none; }
.mapa-busqueda-lienzo { height:min(70vh,640px); border-radius:16px; background:#dad9d5; overflow:hidden; }
.mapa-busqueda-nota { margin:8px 0 0; color:#6a6a65; font-size:.78rem; }
.pin-precio-wrap { background:transparent; border:0; }
.pin-precio { transform:translate(-50%,-100%); padding:5px 9px; border:0; border-radius:999px; background:var(--pro-tinta); color:#fff; font:700 .76rem var(--fuente-texto); white-space:nowrap; box-shadow:0 2px 8px rgba(0,0,0,.25); cursor:pointer; }
.pin-precio.aproximado { background:#fff; color:var(--pro-tinta); border:1.5px dashed var(--pro-tinta); }
.pin-precio:hover { background:var(--pro-rojo); color:#fff; border-color:var(--pro-rojo); }
.alternativas { margin:48px 0 0; padding-top:32px; border-top:1px solid var(--pro-linea); }
.alternativas[hidden] { display:none; }
.alternativas h2 { margin:0 0 8px; font-size:1.5rem; font-weight:600; letter-spacing:-.02em; }
.alternativas > p { max-width:70ch; margin:0 0 24px; color:#5d5d59; }
.nota-diferencia { margin:8px 0 0; color:var(--pro-rojo); font-size:.82rem; font-weight:600; }
.paginacion { display:flex; align-items:center; justify-content:center; gap:18px; margin:40px 0 0; }
.paginacion[hidden] { display:none; }
.paginacion .boton-secundario { width:auto; min-width:120px; margin:0; }
.paginacion .boton-secundario:disabled { opacity:.4; cursor:default; }
.paginacion span { color:#4e4e49; font-size:.9rem; font-weight:600; }
.estado-vacio-favoritos { max-width:560px; margin:40px auto 60px; text-align:center; }
.estado-vacio-favoritos h2 { margin:0 0 8px; font-size:1.6rem; font-weight:600; }
.estado-vacio-favoritos p { color:#5d5d59; margin:0 0 20px; }
.favorito-acciones { margin-top:10px; }
/* ficha: costos y verificación */
.costos-desglose { display:grid; gap:6px; margin:10px 0 14px; padding:12px 14px; border-radius:12px; background:#f6f5f1; font-size:.88rem; }
.costos-desglose div { display:flex; justify-content:space-between; gap:12px; }
.costos-desglose dt { color:#5d5d59; }
.costos-desglose dd { margin:0; font-weight:600; text-align:right; }
.costos-desglose .total { padding-top:6px; border-top:1px solid var(--pro-linea); }
.costos-nota { margin:4px 0 12px; color:#5d5d59; font-size:.85rem; }
.verificacion { margin:0 0 24px; padding:12px 14px; border-left:3px solid #2e8b57; border-radius:0 10px 10px 0; background:#eef7f1; color:#2f4f3a; font-size:.9rem; }
.verificacion.antigua { border-color:#c9922a; background:#fbf4e6; color:#5a4414; }
.verificacion.pendiente { border-color:#9a9a94; background:#f1f0eb; color:#4e4e49; }
.datos-interes dd small { color:#8a8a84; font-weight:400; }
/* comparación */
.tabla-comparar-wrap { overflow-x:auto; margin:8px 0 24px; }
.tabla-comparar { width:100%; min-width:640px; border-collapse:separate; border-spacing:0; background:#fff; border-radius:16px; box-shadow:0 16px 42px rgba(28,28,24,.08); }
.tabla-comparar th, .tabla-comparar td { padding:12px 16px; border-bottom:1px solid var(--pro-linea); text-align:left; vertical-align:top; font-size:.92rem; }
.tabla-comparar thead th { vertical-align:bottom; }
.tabla-comparar thead th a { display:block; color:inherit; text-decoration:none; }
.tabla-comparar thead th img, .tabla-comparar thead th .sin-foto { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; margin-bottom:10px; background:#dad9d5; }
.tabla-comparar thead th .sin-foto { display:grid; place-items:center; color:#8a8a84; font-size:.8rem; }
.comparar-titulo { display:block; font-weight:600; line-height:1.3; }
.tabla-comparar thead th .codigo-ref { display:block; margin:4px 0 6px; color:#8a8a84; font-size:.78rem; }
.tabla-comparar tbody th { width:180px; color:#5d5d59; font-weight:600; background:#faf9f6; }
.tabla-comparar tbody tr:last-child th, .tabla-comparar tbody tr:last-child td { border-bottom:0; }
.tabla-comparar td small { color:#8a8a84; }
.comparar-nota { color:#6a6a65; font-size:.8rem; }
@media (max-width:900px) { .resultados-layout.con-mapa { grid-template-columns:1fr; } .resultados-layout.con-mapa .grid-busqueda, .grid-busqueda { grid-template-columns:repeat(2,minmax(0,1fr)); } .mapa-busqueda { position:static; } .mapa-busqueda-lienzo { height:52vh; } }
@media (max-width:760px) { .form-busqueda-f1, .filtros-mas-cuerpo { grid-template-columns:1fr; } .grid-busqueda, .resultados-layout.con-mapa .grid-busqueda { grid-template-columns:1fr; } .tabla-comparar tbody th { width:120px; } .barra-comparar-cuerpo { border-radius:12px; } }

/* ===== Conversión (handoff UX): hero con buscador, prueba social, caminos, etiquetas, cabecera fija, barras, formularios ===== */
.hero-contenido-buscador { width:min(860px,calc(100% - 56px)); bottom:48px; }
.hero-contenido-buscador h2 { max-width:16ch; font-size:clamp(2.2rem,4.6vw,4.4rem); }
.hero-buscador { margin-top:22px; padding:16px; border-radius:16px; background:rgba(255,255,255,.96); color:var(--pro-tinta); box-shadow:0 18px 44px rgba(0,0,0,.28); }
.hero-operacion { display:inline-flex; margin-bottom:12px; padding:3px; border-radius:999px; background:#efefed; }
.hero-operacion label { position:relative; cursor:pointer; }
.hero-operacion input { position:absolute; opacity:0; pointer-events:none; }
.hero-operacion span { display:inline-block; padding:8px 18px; border-radius:999px; font-size:.86rem; font-weight:700; color:#4e4e49; }
.hero-operacion input:checked + span { background:var(--pro-tinta); color:#fff; }
.hero-operacion input:focus-visible + span { outline:2px solid var(--pro-rojo); outline-offset:2px; }
.hero-campos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:10px; align-items:end; }
.hero-campos label { display:grid; gap:5px; min-width:0; font-size:.74rem; font-weight:700; color:#4e4e49; }
.hero-campos select, .hero-campos input { box-sizing:border-box; width:100%; min-width:0; max-width:100%; margin:0; text-overflow:ellipsis; min-height:44px; border:1px solid var(--pro-linea); border-radius:9px; padding:8px 10px; background:#fff; font:400 .92rem var(--fuente-texto); color:var(--pro-tinta); }
.hero-buscar { min-height:44px; padding:0 20px; border:0; border-radius:999px; background:var(--pro-rojo); color:#fff; font-weight:700; cursor:pointer; }
.hero-buscar:hover { background:var(--pro-rojo-oscuro); }
.hero-ia { display:block; width:100%; margin-top:12px; padding:10px 12px; border:1px dashed var(--pro-linea); border-radius:10px; background:#faf9f6; color:var(--pro-tinta); font:700 .86rem var(--fuente-texto); text-align:left; cursor:pointer; }
.hero-ia small { display:block; margin-top:2px; color:#6a6a65; font-weight:400; font-style:italic; }
.hero-ia:hover { border-color:var(--pro-rojo); }
@media (max-width:900px) { .hero-slider { min-height:auto; } .hero-contenido-buscador { position:relative; bottom:auto; left:auto; width:auto; margin:0; padding:220px 20px 24px; } .hero-campos { grid-template-columns:1fr 1fr; } .hero-buscar { grid-column:1 / -1; } .hero-slider-arrow, .hero-slider-dots { display:none; } }
.prueba-social { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px 24px; width:min(calc(100% - 48px),1280px); margin:28px auto 0; padding:18px 24px; border:1px solid var(--pro-linea); border-radius:16px; background:#fff; }
.prueba-social[hidden] { display:none; }
.prueba-item { display:flex; align-items:baseline; gap:8px; font-size:.9rem; color:#4e4e49; }
.prueba-item strong { font-size:1.35rem; color:var(--pro-tinta); letter-spacing:-.02em; }
.caminos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; width:min(calc(100% - 48px),1280px); margin:40px auto 0; }
.camino { display:flex; flex-direction:column; gap:8px; padding:22px 20px 20px; border:1px solid var(--pro-linea); border-radius:16px; background:#fff; color:var(--pro-tinta); text-decoration:none; transition:transform 140ms ease, box-shadow 140ms ease; }
.camino:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(28,28,24,.12); }
.camino-num { color:var(--pro-rojo); font-size:.74rem; font-weight:700; letter-spacing:.12em; }
.camino h3 { margin:0; font-size:1.3rem; font-weight:600; letter-spacing:-.02em; }
.camino p { margin:0; color:#5d5d59; font-size:.92rem; line-height:1.55; flex:1; }
.camino-cta { margin-top:4px; color:var(--pro-rojo); font-size:.88rem; font-weight:700; }
@media (max-width:980px) { .caminos { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .caminos { grid-template-columns:1fr; } }
.seccion-pie { margin:20px 0 0; text-align:right; }
.etiquetas-tarjeta { position:absolute; left:12px; bottom:12px; display:flex; flex-wrap:wrap; gap:6px; z-index:2; }
.etiqueta { padding:4px 9px; border-radius:999px; background:rgba(255,255,255,.94); color:var(--pro-tinta); font-size:.7rem; font-weight:700; letter-spacing:.02em; }
.etiqueta.nuevo { background:var(--pro-rojo); color:#fff; }
.etiqueta.verificado { background:#e4f0e8; color:#2c7049; }
.etiqueta.admin { background:#eef1f7; color:#2b4a7a; }
.tarjeta-cta { display:inline-block; margin-top:10px; color:var(--pro-rojo); font-size:.84rem; font-weight:700; }
.testimonios, .faq { width:min(calc(100% - 48px),1280px); margin:88px auto 0; }
.testimonios[hidden], .faq[hidden] { display:none; }
.testimonios-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; padding-top:32px; }
.testimonio { margin:0; padding:22px; border:1px solid var(--pro-linea); border-radius:16px; background:#fff; }
.testimonio .estrellas { margin:0 0 8px; color:#d9a21b; letter-spacing:.1em; }
.testimonio blockquote { margin:0 0 14px; font-family:var(--fuente-editorial); font-size:1.08rem; font-style:italic; line-height:1.5; }
.testimonio figcaption { display:grid; font-size:.86rem; }
.testimonio figcaption span { color:#6a6a65; }
.faq-lista { display:grid; gap:10px; padding-top:28px; max-width:860px; }
.faq-item { padding:4px 18px; border:1px solid var(--pro-linea); border-radius:12px; background:#fff; }
.faq-item summary { padding:12px 0; font-weight:600; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:12px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; color:var(--pro-rojo); font-size:1.3rem; line-height:1; }
.faq-item[open] summary::after { content:"−"; }
.faq-item p { margin:0 0 14px; color:#4f4f4a; line-height:1.65; }
/* navegación */
.nav-cta { min-height:42px; padding:0 15px; border-radius:999px; background:var(--pro-rojo); color:#fff !important; display:inline-flex; align-items:center; }
.nav-cta::after { display:none !important; }
.nav-cta:hover { background:var(--pro-rojo-oscuro); }
.header nav a.nav-cta, .header-fijo-cta { max-width:220px; text-align:center; justify-content:center; line-height:1.3; white-space:normal; }
nav .nav-favoritos { font-size:1.1rem; }
.header-fijo { position:fixed; top:0; right:0; left:0; z-index:70; display:flex; align-items:center; gap:18px; padding:8px 20px; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); box-shadow:0 6px 24px rgba(28,28,24,.12); transform:translateY(-110%); transition:transform 200ms ease; }
.header-fijo.visible { transform:translateY(0); }
.header-fijo-marca img { height:34px; display:block; }
.header-fijo nav { display:flex; gap:16px; flex:1; }
.header-fijo nav a { color:var(--pro-tinta); font-size:.86rem; font-weight:500; text-decoration:none; }
.header-fijo nav a:hover { color:var(--pro-rojo); }
.header-fijo-cta { padding:9px 14px; border-radius:999px; background:var(--pro-rojo); color:#fff; font-size:.84rem; font-weight:700; text-decoration:none; }
.header-fijo-wa { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:999px; background:#25d366; color:#fff; }
@media (max-width:860px) { .header-fijo nav, .header-fijo-cta { display:none; } .header-fijo { gap:10px; } .header-fijo-marca { flex:1; } }
.wa-flotante { position:fixed; right:26px; bottom:94px; z-index:49; display:inline-flex; align-items:center; justify-content:center; width:50px; height:50px; border-radius:999px; background:#25d366; color:#fff; box-shadow:0 10px 22px rgba(20,20,18,.22); }
.wa-flotante svg { width:26px; height:26px; }
.barra-movil { display:none; }
@media (max-width:760px) {
  .wa-flotante { display:none; }
  .barra-movil { position:fixed; right:0; bottom:0; left:0; z-index:60; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--pro-linea); background:#fff; padding-bottom:env(safe-area-inset-bottom); }
  .barra-movil a { display:grid; justify-items:center; gap:2px; padding:8px 4px 6px; color:var(--pro-tinta); font-size:.7rem; font-weight:600; text-decoration:none; }
  .barra-movil a span { display:inline-flex; align-items:center; justify-content:center; height:22px; font-size:1.05rem; }
  .barra-movil a span svg { width:22px; height:22px; color:#25d366; }
  body { padding-bottom:64px; }
  .chat-burbuja { bottom:76px; }
  .barra-comparar { bottom:62px; }
  .fav-aviso { bottom:140px; }
  body.con-barra-ficha .barra-movil { display:none; }
  body.con-barra-ficha .barra-ficha { display:flex; }
}
.barra-ficha { display:none; position:fixed; right:0; bottom:0; left:0; z-index:60; gap:8px; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--pro-linea); background:#fff; box-shadow:0 -8px 24px rgba(28,28,24,.1); }
.barra-ficha .boton-primario, .barra-ficha .boton-secundario { flex:1; margin:0; padding:12px 8px; font-size:.86rem; }
.barra-ficha .fav-boton-barra { position:static; flex:none; width:46px; height:46px; box-shadow:none; border:1px solid var(--pro-linea); }
.boton-wa { display:flex; align-items:center; justify-content:center; gap:8px; border-color:#25d366; color:#1a8f47; text-decoration:none; }
.boton-wa:hover { background:#eafaf0; }
.panel-contacto .boton-texto { display:block; width:100%; margin-top:8px; text-align:center; }
@media (min-width:1000px) { .panel-contacto { position:sticky; top:84px; } }
.similares { width:min(calc(100% - 48px),1280px); margin:56px auto 0; }
.similares[hidden] { display:none; }
.similares .grid { padding-top:28px; }
/* diálogos de captura */
.dlg-lead { width:min(560px,calc(100% - 24px)); max-height:92dvh; overflow:auto; padding:0; border:0; border-radius:18px; color:var(--pro-tinta); }
.dlg-lead::backdrop { background:rgba(0,0,0,.5); }
.dlg-lead-form { position:relative; padding:24px; }
.dlg-cabecera { display:flex; justify-content:space-between; align-items:start; gap:12px; margin-bottom:16px; }
.dlg-cabecera h2 { margin:2px 0 4px; font-size:1.35rem; font-weight:600; letter-spacing:-.02em; }
.dlg-sub { margin:0; color:#5d5d59; font-size:.88rem; }
.dlg-cerrar { width:36px; height:36px; border:0; border-radius:999px; background:#f1f0eb; font-size:1.3rem; line-height:1; cursor:pointer; }
.dlg-lead .campo { margin-bottom:12px; }
.dlg-lead .campo label, .formulario-propietario .campo label { display:block; margin-bottom:5px; font-size:.8rem; font-weight:700; color:#4e4e49; }
.dlg-lead .campo input, .dlg-lead .campo select { width:100%; min-height:44px; border:1px solid var(--pro-linea); border-radius:9px; padding:8px 11px; font:400 .94rem var(--fuente-texto); }
.dlg-lead .fila-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dlg-lead .autorizacion { display:flex; gap:8px; align-items:start; margin:6px 0 12px; font-size:.82rem; color:#4e4e49; }
.dlg-acciones { display:grid; gap:8px; }
.dlg-acciones .boton-primario { margin:0; }
.dlg-nota { margin:0; color:#6a6a65; font-size:.78rem; }
.sobretitulo { margin:0; color:var(--pro-rojo); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
@media (max-width:560px) { .dlg-lead .fila-2 { grid-template-columns:1fr; } }
.guardar-busqueda { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin:36px 0 0; padding:18px 22px; border:1px solid var(--pro-linea); border-radius:16px; background:#fff; }
.guardar-busqueda[hidden] { display:none; }
.guardar-busqueda p { margin:4px 0 0; color:#5d5d59; font-size:.9rem; }
.guardar-busqueda .boton-primario { width:auto; margin:0; padding:12px 18px; }
/* propietarios por pasos */
.pasos { display:flex; gap:8px; margin-bottom:18px; }
.paso-chip { padding:6px 12px; border-radius:999px; background:#f1f0eb; color:#6a6a65; font-size:.78rem; font-weight:700; }
.paso-chip.activo { background:var(--pro-tinta); color:#fff; }
.formulario-propietario fieldset[hidden] { display:none; }
.formulario-propietario legend h2 { margin:0 0 4px; }
.formulario-propietario legend p { margin:0 0 14px; color:#5d5d59; }
.formulario-propietario .boton-texto { display:block; margin:10px auto 0; }

/* Logo enlazado al inicio */
a.marca { color:inherit; text-decoration:none; cursor:pointer; }
a.marca:focus-visible { outline:2px solid var(--pro-rojo); outline-offset:4px; border-radius:8px; }

/* ===== Búsqueda fase 2: popup del mapa, alertas, favoritos ===== */
.popup-provenza .leaflet-popup-content { margin:0; width:220px !important; }
.popup-provenza .leaflet-popup-content-wrapper { padding:0; overflow:hidden; border-radius:14px; }
.popup-inmueble { display:grid; gap:2px; padding:0 0 10px; color:var(--pro-tinta); text-decoration:none; font-size:.82rem; }
.popup-inmueble img { width:100%; height:120px; object-fit:cover; margin-bottom:6px; background:#eee; }
.popup-inmueble strong, .popup-inmueble span { padding:0 12px; }
.popup-inmueble strong { font-size:1rem; }
.popup-inmueble span { color:#5d5d57; }
.popup-inmueble .popup-cta { margin-top:4px; color:var(--pro-rojo); font-weight:700; }
.pagina-favoritos .guardar-busqueda { margin:22px 0 0; }

/* ===== Móvil: menú hamburguesa y barra inferior ===== */
.nav-menu-boton { display:none; }
@media (max-width:860px) {
  .header nav { position:static; }
  .header .nav-menu-boton { display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 14px; border:1px solid currentColor; border-radius:999px; background:transparent; color:inherit; font:600 .86rem var(--fuente-texto); cursor:pointer; }
  .pagina-propiedades .header .nav-menu-boton { color:#fff; border-color:rgba(255,255,255,.6); }
  .header nav > a:not(.nav-cta) { display:none; }
  .header { flex-direction:row; flex-wrap:nowrap; align-items:center; }
  .header .marca { flex:0 1 auto; min-width:0; }
  .header .marca img { max-width:min(142px,40vw); }
  .header nav { display:flex; flex-wrap:nowrap; align-items:center; justify-content:flex-end; gap:10px; width:auto; margin-left:auto; }
  .pagina-propiedades .header nav { position:absolute; top:50%; right:14px; width:auto; transform:translateY(-50%); flex-wrap:nowrap; }
  .pagina-propiedades .header { min-height:72px; }
  .header nav a.nav-cta { min-height:40px; padding:8px 14px; font-size:.82rem; white-space:normal; }
  .header.menu-abierto { z-index:90; }
  .header.menu-abierto nav { position:absolute; top:calc(100% + 8px); right:0; left:0; width:auto; transform:none; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:10px 18px 16px; border:1px solid var(--pro-linea); border-radius:16px; background:#fff; box-shadow:0 18px 40px rgba(0,0,0,.18); }
  .header.menu-abierto nav > a { display:flex; align-items:center; min-height:46px; padding:0 4px; border-bottom:1px solid var(--pro-linea); color:var(--pro-tinta); font-size:1rem; }
  .header.menu-abierto nav > a::after { display:none; }
  .header.menu-abierto nav > a.activo { color:var(--pro-rojo); }
  .header.menu-abierto nav > a.nav-cta { justify-content:center; margin-top:12px; border-bottom:0; color:#fff; }
  .header.menu-abierto .nav-menu-boton { align-self:flex-end; margin-bottom:4px; color:var(--pro-tinta); border-color:var(--pro-linea); }
}
/* En teléfonos el CTA "Publicar propiedad" pasa al menú (no cabe junto a la marca) */
@media (max-width:520px) { .header:not(.menu-abierto) nav > a.nav-cta { display:none; } }
.nav-favoritos-texto { display:none; }
@media (max-width:860px) { .header.menu-abierto .nav-favoritos-texto { display:inline; margin-left:8px; } }
@media (max-width:760px) {
  body > .barra-movil { position:fixed; top:auto; right:0; bottom:0; left:0; width:auto; height:auto; transform:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0; padding:0 0 env(safe-area-inset-bottom); border-radius:0; box-shadow:0 -6px 18px rgba(0,0,0,.06); }
  body > .barra-movil a, body > .barra-movil a:last-child { min-height:56px; padding:7px 4px 6px; border-radius:0; background:#fff; color:var(--pro-tinta); display:grid; justify-items:center; align-content:center; gap:2px; font-size:.72rem; }
  body > .barra-movil a span { font-size:1.15rem; line-height:1; }
}

/* ===== Carrusel: destacadas del administrador, sin puntos ===== */
.hero-slider-dots { display:none !important; }
.hero-slide { transition:opacity .9s ease; }
.hero-pie { position:absolute; right:28px; bottom:28px; z-index:5; display:grid; gap:2px; max-width:300px; padding:12px 16px; border-radius:14px; background:rgba(18,18,16,.62); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); color:#fff; text-decoration:none; box-shadow:0 10px 26px rgba(0,0,0,.25); }
.hero-pie[hidden] { display:none; }
.hero-pie:hover { background:rgba(18,18,16,.78); }
.hero-pie-etiqueta { font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#ffb3b7; }
.hero-pie-titulo { font-weight:600; line-height:1.25; }
.hero-pie-precio { font-size:.9rem; opacity:.9; }
.hero-pie-cta { margin-top:4px; font-size:.82rem; font-weight:700; }
@media (max-width:1180px) { .hero-pie { top:96px; right:20px; bottom:auto; max-width:240px; padding:10px 13px; } .hero-pie-precio { display:none; } }
@media (max-width:560px) { .hero-pie { top:86px; right:12px; left:auto; max-width:200px; font-size:.84rem; } }

/* ===== Manifiesto como banner compacto al final del inicio ===== */
.provenza-manifiesto.manifiesto-banner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 32px; width:min(calc(100% - 48px),1280px); margin:48px auto 40px; padding:22px 28px; border:0; border-radius:16px; background:#fff; box-shadow:0 10px 30px rgba(28,28,24,.06); }
.manifiesto-banner h2 { margin:0; font-size:clamp(1.15rem,1.8vw,1.5rem); line-height:1.2; letter-spacing:-.01em; max-width:none; }
.manifiesto-banner .servicios-en-linea { margin:0; }
.manifiesto-banner .enlace-editorial { margin:0; white-space:nowrap; }
@media (max-width:860px) { .provenza-manifiesto.manifiesto-banner { flex-direction:column; align-items:flex-start; width:calc(100% - 32px); margin:32px auto; padding:18px 20px; } }
/* Módulo Pagos */
.pie-col ul + h3 { margin-top:22px; }
.pagos-modulo { max-width:720px; margin:0 auto; }
.pago-tarjeta { display:flex; flex-direction:column; align-items:center; gap:18px; margin-top:28px; padding:40px 28px; background:#fff; border:1px solid var(--pro-linea); border-radius:24px; text-align:center; box-shadow:0 10px 30px rgba(0,0,0,.06); }
.pago-logo { height:64px; width:auto; max-width:200px; object-fit:contain; }
.pago-logo-texto { display:none; font:800 2rem/1 var(--fuente-texto); letter-spacing:.04em; color:var(--pro-tinta); }
.pago-tarjeta h2 { margin:0; font-size:1.5rem; }
.pago-tarjeta p { margin:0; max-width:46ch; color:var(--color-texto-suave); }
.pago-boton { display:inline-flex; align-items:center; gap:10px; min-height:52px; padding:0 28px; border-radius:999px; background:var(--pro-rojo); color:#fff; font-weight:700; text-decoration:none; }
.pago-boton:hover { background:var(--pro-rojo-oscuro); color:#fff; }
.pago-nota { font-size:.82rem; }
.pago-nota a { color:var(--pro-rojo); font-weight:600; }
.pago-logo { height:120px; width:120px; max-width:none; border-radius:50%; }
.nav-pse { width:22px; height:22px; margin-left:6px; border-radius:50%; vertical-align:middle; }
.header nav a:has(.nav-pse) { display:inline-flex; align-items:center; }
/* Cintillo ajustado */
@media (min-width:861px){
.header .marca img{height:54px;width:auto;max-width:150px}
.pagina-propiedades .marca img{height:66px;max-width:148px}
.header nav a{display:inline-flex;align-items:center;white-space:nowrap}
.header nav{justify-content:space-between;gap:clamp(8px,1.4vw,24px);padding-left:clamp(16px,2.4vw,40px)}
.header nav a.nav-cta{white-space:normal;max-width:200px}
}
@media (min-width:861px) and (max-width:1180px){
.header nav a{font-size:.86rem}
.header nav a.nav-cta{max-width:150px;font-size:.78rem;padding:6px 12px}
}
/* Cabecera fija igual a la principal */
.header-fijo-marca img { height:46px; width:auto; max-width:140px; }
.header-fijo { gap:clamp(10px,1.4vw,22px); padding:8px clamp(14px,2vw,28px); }
.header-fijo nav { justify-content:space-between; gap:clamp(8px,1.4vw,24px); }
.header-fijo nav a, .header-fijo nav a:last-child { display:inline-flex; align-items:center; min-height:0; padding:0; border-radius:0; background:none; color:var(--pro-tinta); white-space:nowrap; font-size:.9rem; font-weight:500; }
.header-fijo nav a:hover, .header-fijo nav a:last-child:hover { color:var(--pro-rojo); background:none; }
.header-fijo nav a::after { display:none !important; }
.header-fijo-cta { max-width:200px; }
@media (min-width:861px) and (max-width:1180px) { .header-fijo nav a, .header-fijo nav a:last-child { font-size:.82rem; } .header-fijo-cta { max-width:150px; font-size:.76rem; padding:6px 12px; } }
