/* CEMI Core v1.2.121 — Reorganización real debajo del hero
   Galería + datos en layout estable. Servicios debajo de características.
   Contacto como pestaña flotante: solo contacto se mueve, no comprime columnas. */

/* Base: el single completo no debe heredar contenedores angostos del theme */
body.single-cemi_property .site-content,
body.single-opalestate_property .site-content,
body.single-cemi_property .content-area,
body.single-opalestate_property .content-area,
body.single-cemi_property .ast-container,
body.single-opalestate_property .ast-container,
body.single-cemi_property .container,
body.single-opalestate_property .container{
  max-width:none!important;
  width:100%!important;
  padding-left:0!important;
  padding-right:0!important;
  margin-left:0!important;
  margin-right:0!important;
}

body.single-cemi_property .cemi-single-property,
body.single-opalestate_property .cemi-single-property{
  width:100%!important;
  max-width:none!important;
  overflow-x:hidden!important;
}

/* Hero: regresar a full width real y centrado */
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;
}
.cemi-single-property .cemi-single-hero-inner{
  width:min(1520px, calc(100vw - 72px))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Contenido bajo hero: 2 columnas estables. Nada de 3 columnas forzadas. */
.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, 1.72fr) minmax(380px, .82fr)!important;
  gap:34px!important;
  align-items:start!important;
  box-sizing:border-box!important;
  float:none!important;
  clear:both!important;
}

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

/* La columna derecha ya no debe comportarse como riel, sticky o grid lateral. */
.cemi-single-property .cemi-sticky-panel{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:none!important;
  align-items:stretch!important;
  gap:18px!important;
}

/* Galería y media, amplias */
.cemi-single-property .cemi-gallery,
.cemi-single-property .cemi-media-sections,
.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;
  min-width:0!important;
}
.cemi-single-property .cemi-gallery-main,
.cemi-single-property .cemi-gallery-track,
.cemi-single-property .cemi-gallery-slide{
  width:100%!important;
  max-width:none!important;
}
.cemi-single-property .cemi-gallery-img,
.cemi-single-property .cemi-gallery-main img{
  width:100%!important;
  max-width:100%!important;
  object-fit:cover!important;
}

/* Características y servicios: solo bloques normales dentro de columna derecha */
.cemi-single-property .cemi-card-title{
  display:none!important;
}
.cemi-single-property .cemi-card-property-summary,
.cemi-single-property .cemi-card-services{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  order:10!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  display:block!important;
  box-sizing:border-box!important;
}
.cemi-single-property .cemi-card-property-summary{
  order:1!important;
}
.cemi-single-property .cemi-card-services{
  order:2!important;
}

.cemi-single-property .cemi-card-services *,
.cemi-single-property .cemi-card-property-summary *{
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  transform:none!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}

.cemi-single-property .cemi-card-property-summary h3{
  font-size:clamp(24px, 1.8vw, 32px)!important;
  line-height:1.02!important;
  letter-spacing:-.04em!important;
  margin:0 0 18px!important;
}
.cemi-single-property .cemi-property-summary-section h4,
.cemi-single-property .cemi-card-services h3{
  font-size:clamp(15px, 1vw, 18px)!important;
  line-height:1.12!important;
  letter-spacing:.02em!important;
  margin:18px 0 12px!important;
}
.cemi-single-property .cemi-property-summary-grid,
.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-property-summary-item,
.cemi-single-property .cemi-service-item{
  width:100%!important;
  min-width:0!important;
  min-height:72px!important;
  padding:15px 16px!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  box-sizing:border-box!important;
  white-space:normal!important;
}
.cemi-single-property .cemi-property-summary-item strong,
.cemi-single-property .cemi-service-item strong{
  font-size:clamp(18px, 1.18vw, 23px)!important;
  line-height:1.06!important;
  letter-spacing:-.03em!important;
  white-space:normal!important;
}
.cemi-single-property .cemi-property-summary-item span:not(.cemi-summary-mark),
.cemi-single-property .cemi-service-item small{
  font-size:13px!important;
  line-height:1.12!important;
}
.cemi-single-property .cemi-summary-mark,
.cemi-single-property .cemi-pink-check{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:#D7266B!important;
  font-size:28px!important;
  width:auto!important;
  height:auto!important;
  min-width:24px!important;
  line-height:1!important;
}

/* Contacto: pestaña flotante. Solo este bloque se mueve; no afecta servicios ni características. */
@media (min-width:1180px){
  .cemi-single-property .cemi-card-contact{
    position:fixed!important;
    z-index:80!important;
    top:clamp(138px, 18vh, 210px)!important;
    right:0!important;
    width:310px!important;
    max-width:310px!important;
    max-height:calc(100vh - 160px)!important;
    overflow:auto!important;
    transform:translateX(calc(100% - 64px))!important;
    transition:transform .28s ease, box-shadow .28s ease!important;
    order:99!important;
    margin:0!important;
    border-radius:24px 0 0 24px!important;
    box-shadow:0 20px 60px rgba(0,0,0,.32)!important;
  }
  .admin-bar .cemi-single-property .cemi-card-contact{
    top:clamp(165px, 20vh, 232px)!important;
  }
  .cemi-single-property .cemi-card-contact:hover,
  .cemi-single-property .cemi-card-contact:focus-within{
    transform:translateX(0)!important;
  }
  .cemi-single-property .cemi-card-contact::before{
    content:'Contacto';
    position:absolute!important;
    left:16px!important;
    top:50%!important;
    transform:translateY(-50%) rotate(-90deg)!important;
    transform-origin:center!important;
    color:#fff!important;
    font-size:12px!important;
    font-weight:900!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    pointer-events:none!important;
  }
  .cemi-single-property .cemi-card-contact:hover::before,
  .cemi-single-property .cemi-card-contact:focus-within::before{
    opacity:0!important;
  }
  .cemi-single-property .cemi-card-contact > *{
    margin-left:52px!important;
  }
  .cemi-single-property .cemi-card-contact:hover > *,
  .cemi-single-property .cemi-card-contact:focus-within > *{
    margin-left:0!important;
  }
}

/* Pantallas medias: 2 columnas, contacto ya no flota para no tapar contenido */
@media (max-width:1179px){
  .cemi-single-property .cemi-property-wrap{
    width:min(1080px, calc(100vw - 32px))!important;
    grid-template-columns:minmax(0,1fr) minmax(330px,400px)!important;
    gap:22px!important;
    padding:54px 0 82px!important;
  }
  .cemi-single-property .cemi-card-contact{
    position:relative!important;
    transform:none!important;
    right:auto!important;
    top:auto!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    overflow:visible!important;
    order:3!important;
  }
}

/* Móvil: todo en una columna y contacto normal */
@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 72px!important;
  }
  .cemi-single-property .cemi-property-summary-grid,
  .cemi-single-property .cemi-services-grid{
    grid-template-columns:1fr!important;
  }
  .cemi-single-property .cemi-card-property-summary h3{
    font-size:24px!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,
  .cemi-single-property .cemi-service-item strong{
    font-size:21px!important;
  }
}
