/* Detalle de propiedad. */
.single-propiedad__header { background: var(--color-surface); padding-block: var(--sp-l); border-bottom: 1px solid var(--color-line); }
.single-propiedad__title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-m); flex-wrap: wrap; }
.single-propiedad__title { font-size: var(--fs-xlarge); margin: var(--sp-xs) 0; }
.single-propiedad__location { color: var(--color-muted); margin: 0; }
.single-propiedad__price { font-family: var(--font-heading); font-size: var(--fs-xlarge); color: var(--color-primary); white-space: nowrap; }

/* Galería */
.galeria-propiedad { padding-block: var(--sp-m); background: var(--color-surface); }
.galeria-propiedad__main { margin: 0; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3 / 2; background: var(--color-bg); }
.galeria-propiedad__img { width: 100%; height: 100%; object-fit: contain; cursor: zoom-in; }
.galeria-propiedad__thumbs { display: flex; gap: var(--sp-xs); list-style: none; padding: 0; margin: var(--sp-s) 0 0; overflow-x: auto; }
.galeria-thumb { width: 90px; height: 64px; border-radius: var(--radius-sm); overflow: hidden; border: 2px solid transparent; flex: 0 0 auto; }
.galeria-thumb img { width: 100%; height: 100%; object-fit: cover; }
.galeria-thumb.is-active { border-color: var(--color-primary); }

/* Cuerpo: contenido + sidebar */
.single-propiedad__body { display: grid; grid-template-columns: 1fr; gap: var(--sp-l); padding-block: var(--sp-l); }
@media (min-width: 960px) { .single-propiedad__body { grid-template-columns: 1fr 340px; align-items: start; } }

.prop-specs { display: flex; flex-wrap: wrap; gap: var(--sp-s); list-style: none; padding: 0; margin: 0 0 var(--sp-l); }
.prop-specs li { background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-sm); padding: var(--sp-s); color: var(--color-muted); }
.prop-specs strong { color: var(--color-ink); font-size: var(--fs-medium); }

.prop-descripcion { margin-bottom: var(--sp-l); }
.prop-descripcion h2, .prop-mapa h2 { margin-bottom: var(--sp-s); }

/* Caja de contacto (sidebar sticky) */
.prop-contacto-box {
  background: var(--color-surface); border: 1px solid var(--color-line);
  border-radius: var(--radius); padding: var(--sp-m);
  position: sticky; top: calc(var(--header-h) + var(--sp-s));
  display: grid; gap: var(--sp-s);
}
.prop-contacto-box__price { font-family: var(--font-heading); font-size: var(--fs-large); color: var(--color-primary); margin: 0; }
.prop-contacto-box__op { color: var(--color-muted); margin: 0; }
.prop-resumen { display: grid; grid-template-columns: auto 1fr; gap: .35rem var(--sp-s); margin: var(--sp-s) 0 0; font-size: var(--fs-small); }
.prop-resumen dt { color: var(--color-muted); }
.prop-resumen dd { margin: 0; text-align: right; font-weight: 600; }
.prop-contacto-box__nota { font-size: var(--fs-small); color: var(--color-muted); margin: 0; }

.section--similares { background: var(--color-surface); }

/* Tour 360° (Pannellum) */
.tf-tour-360 { padding-block: var(--sp-l); background: var(--color-surface); }
.tf-tour-360__title { margin-bottom: var(--sp-s); }
.tf-tour-360__escenas { display: flex; flex-wrap: wrap; gap: var(--sp-xs); margin-bottom: var(--sp-s); }
.tf-tour-360__escena {
  padding: .45rem .9rem; border: 1px solid var(--color-line);
  border-radius: 999px; background: var(--color-surface);
  color: var(--color-ink); font-size: var(--fs-small); font-weight: 600;
  transition: var(--transition);
}
.tf-tour-360__escena:hover { border-color: var(--color-primary); }
.tf-tour-360__escena.is-active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.tf-tour-360__viewer {
  width: 100%; aspect-ratio: 16 / 9; min-height: 320px;
  border-radius: var(--radius); overflow: hidden; background: #0c1310;
}
.tf-tour-360__hint { font-size: var(--fs-small); color: var(--color-muted); margin: var(--sp-xs) 0 0; }
