/* CEMI Core v1.2.120 — Single property layout limpio después de diagnóstico
   Objetivo: conservar hero full width, quitar líneas de referencia, ampliar galería/datos
   y convertir contacto en panel flotante sin robar ancho al contenido principal. */

/* Quitar diagnóstico visual de v1.2.119 aunque el CSS anterior quedara cacheado */
.cemi-single-property *{
  outline:0!important;
}
.cemi-single-property .cemi-single-hero,
.cemi-single-property .cemi-property-wrap,
.cemi-single-property .cemi-prop-left,
.cemi-single-property .cemi-prop-right,
.cemi-single-property .cemi-sticky-panel,
.cemi-single-property .cemi-gallery,
.cemi-single-property .cemi-card,
.cemi-single-property .cemi-card-property-summary,
.cemi-single-property .cemi-card-contact{
  box-shadow:inherit;
}

/* El hero debe seguir siendo full width y no heredar el ancho del contenido */
body.single-cemi_property .cemi-single-hero,
body.single-opalestate_property .cemi-single-hero,
.cemi-single-property .cemi-single-hero{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
}

/* Contenido bajo hero: ancho real, centrado y con reserva para panel flotante */
.cemi-single-property .cemi-property-wrap{
  width:min(1480px, calc(100vw - 72px))!important;
  max-width:none!important;
  margin:0 auto!important;
  padding:72px 0 96px!important;
  display:grid!important;
  grid-template-columns:minmax(620px, 1fr) minmax(360px, 430px)!important;
  gap:30px!important;
  align-items:start!important;
  box-sizing:border-box!important;
}

@media (min-width:1280px){
  .cemi-single-property .cemi-property-wrap{
    /* contacto flotante ocupa el lateral derecho; el contenido no debe meterse debajo */
    width:min(1320px, calc(100vw - 330px))!important;
    margin-left:max(48px, calc((100vw - min(1320px, calc(100vw - 330px))) / 2 - 110px))!important;
    margin-right:auto!important;
  }
}

.cemi-single-property .cemi-prop-left,
.cemi-single-property .cemi-prop-right{
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  float:none!important;
  clear:none!important;
}

.cemi-single-property .cemi-sticky-panel{
  position:relative!important;
  top:auto!important;
  width:100%!important;
  max-width:none!important;
  display:flex!important;
  flex-direction:column!important;
  gap:18px!important;
  min-width:0!important;
}

/* Galería amplia */
.cemi-single-property .cemi-gallery,
.cemi-single-property .cemi-media-card,
.cemi-single-property .cemi-card-nearby-front,
.cemi-single-property .cemi-card-nearby-under-map{
  width:100%!important;
  max-width:none!important;
}
.cemi-single-property .cemi-gallery-main{
  width:100%!important;
  max-width:none!important;
}
.cemi-single-property .cemi-gallery-main img,
.cemi-single-property .cemi-gallery-img{
  width:100%!important;
  object-fit:cover!important;
}

/* Características: una columna ancha, sin partir palabras ni hacerse vertical */
.cemi-single-property .cemi-card-property-summary{
  order:1!important;
  width:100%!important;
  max-width:none!important;
  overflow:hidden!important;
}
.cemi-single-property .cemi-card-property-summary h3{
  font-size:clamp(24px, 2vw, 34px)!important;
  line-height:1.02!important;
  letter-spacing:-.04em!important;
  max-width:100%!important;
}
.cemi-single-property .cemi-property-summary-section h4{
  font-size:15px!important;
  line-height:1.15!important;
  letter-spacing:.02em!important;
  margin:18px 0 10px!important;
}
.cemi-single-property .cemi-property-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(2, minmax(0,1fr))!important;
  gap:12px!important;
}
.cemi-single-property .cemi-property-summary-item{
  min-width:0!important;
  width:100%!important;
  min-height:74px!important;
  padding:16px 16px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  box-sizing:border-box!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.cemi-single-property .cemi-property-summary-item.is-yes,
.cemi-single-property .cemi-property-summary-item.is-text{
  justify-content:flex-start!important;
}
.cemi-single-property .cemi-property-summary-item span:not(.cemi-summary-mark){
  font-size:13px!important;
  line-height:1.08!important;
  letter-spacing:.02em!important;
  text-transform:uppercase!important;
  opacity:.9!important;
  min-width:0!important;
  max-width:65%!important;
  white-space:normal!important;
}
.cemi-single-property .cemi-property-summary-item strong{
  font-size:clamp(19px, 1.5vw, 25px)!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}
.cemi-single-property .cemi-property-summary-item .cemi-summary-mark{
  flex:0 0 auto!important;
  width:auto!important;
  height:auto!important;
  background:transparent!important;
  color:#D7266B!important;
  font-size:30px!important;
  line-height:1!important;
  box-shadow:none!important;
  border:0!important;
  margin-right:2px!important;
}

/* Servicios: debajo de características/equipamiento, nunca como riel vertical */
.cemi-single-property .cemi-card-services{
  order:2!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  overflow:hidden!important;
}
.cemi-single-property .cemi-card-services h3{
  font-size:clamp(22px,1.8vw,30px)!important;
  line-height:1.05!important;
  margin-bottom:16px!important;
}
.cemi-single-property .cemi-services-grid{
  display:grid!important;
  grid-template-columns:repeat(2, minmax(0,1fr))!important;
  gap:12px!important;
}
.cemi-single-property .cemi-service-item{
  min-height:76px!important;
  padding:16px!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  width:100%!important;
  box-sizing:border-box!important;
  white-space:normal!important;
}
.cemi-single-property .cemi-service-item strong{
  font-size:18px!important;
  line-height:1.1!important;
}
.cemi-single-property .cemi-service-item small{
  font-size:13px!important;
  line-height:1.15!important;
}

/* Contacto flotante en escritorio: acompaña navegación sin apretar los datos */
@media (min-width:1280px){
  .cemi-single-property .cemi-card-contact{
    position:fixed!important;
    right:24px!important;
    top:clamp(120px, 17vh, 190px)!important;
    width:260px!important;
    max-width:260px!important;
    max-height:calc(100vh - 150px)!important;
    overflow:auto!important;
    z-index:60!important;
    transform:none!important;
  }
  .admin-bar .cemi-single-property .cemi-card-contact{
    top:clamp(150px, 19vh, 220px)!important;
  }
  .cemi-single-property .cemi-card-contact .cemi-asesor-card{
    margin-bottom:18px!important;
  }
  .cemi-single-property .cemi-card-contact .cemi-btn{
    width:100%!important;
    min-height:48px!important;
  }
  .cemi-single-property .cemi-card-contact input,
  .cemi-single-property .cemi-card-contact select,
  .cemi-single-property .cemi-card-contact textarea{
    font-size:14px!important;
    min-height:40px!important;
  }
}

/* Evitar que formularios demasiado anchos rompan el panel */
.cemi-single-property .cemi-card-contact,
.cemi-single-property .cemi-card-contact *{
  box-sizing:border-box!important;
}
.cemi-single-property .cemi-card-contact form,
.cemi-single-property .cemi-card-contact .cemi-property-lead-form{
  width:100%!important;
  max-width:100%!important;
}

/* Tablet: dos columnas razonables, contacto vuelve a fluir para no tapar */
@media (max-width:1279px){
  .cemi-single-property .cemi-property-wrap{
    width:min(1120px, calc(100vw - 36px))!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(330px,400px)!important;
    gap:22px!important;
    margin:0 auto!important;
    padding:56px 0 86px!important;
  }
  .cemi-single-property .cemi-card-contact{
    position:relative!important;
    right:auto!important;
    top:auto!important;
    width:100%!important;
    max-width:none!important;
    order:4!important;
  }
}

/* Mobile: una sola columna, lectura amplia */
@media (max-width:900px){
  .cemi-single-property .cemi-property-wrap{
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    gap:18px!important;
    padding:28px 14px 74px!important;
  }
  .cemi-single-property .cemi-prop-left,
  .cemi-single-property .cemi-prop-right,
  .cemi-single-property .cemi-sticky-panel{
    width:100%!important;
  }
  .cemi-single-property .cemi-property-summary-grid,
  .cemi-single-property .cemi-services-grid{
    grid-template-columns:1fr!important;
  }
  .cemi-single-property .cemi-property-summary-item,
  .cemi-single-property .cemi-service-item{
    min-height:64px!important;
    padding:15px 16px!important;
  }
  .cemi-single-property .cemi-property-summary-item strong{
    font-size:22px!important;
  }
  .cemi-single-property .cemi-property-summary-item span:not(.cemi-summary-mark){
    font-size:13px!important;
  }
  .cemi-single-property .cemi-card-contact{
    position:relative!important;
    width:100%!important;
    max-height:none!important;
    overflow:visible!important;
  }
}
