/* CEMI Core v1.2.57 — Desktop / widescreen layout
   Objetivo: que los shortcodes no queden encerrados en el ancho angosto de Gutenberg. */
:root{
  --cemi-wide-max: 1760px;
  --cemi-wide-pad: clamp(24px, 4vw, 72px);
  --cemi-home-wide-max: 1680px;
}

@media (min-width: 1024px){
  /* Evita barra horizontal cuando un shortcode se abre a todo el viewport. */
  body:has(.cemi-home),
  body:has(.cemi-sc-wrap),
  body:has(.cemi-bus-wrap),
  body:has(.cemi-featured-section),
  body:has(.cemi-favorites-page),
  body:has(.cemi-compare-page){
    overflow-x: clip;
  }

  /* Home: debe sentirse como landing page, no como un bloque angosto del editor. */
  .entry-content > .cemi-home,
  .wp-block-post-content > .cemi-home,
  .site-main .cemi-home,
  main .cemi-home{
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
  }

  .cemi-home .cemi-home-container{
    width: min(calc(100vw - var(--cemi-wide-pad) * 2), var(--cemi-home-wide-max)) !important;
    max-width: var(--cemi-home-wide-max) !important;
  }

  .cemi-home .cemi-home-hero-grid{
    grid-template-columns: minmax(560px, 1fr) minmax(420px, 520px) !important;
    gap: clamp(40px, 6vw, 110px) !important;
  }

  .cemi-home .cemi-home-hero h1{
    font-size: clamp(52px, 4.35vw, 82px) !important;
    max-width: 980px !important;
  }

  .cemi-home .cemi-home-hero p{
    max-width: 720px !important;
    font-size: clamp(18px, 1.15vw, 22px) !important;
  }

  .cemi-home .cemi-home-quick{
    gap: clamp(18px, 1.6vw, 30px) !important;
  }

  .cemi-home .cemi-home-quick-card{
    min-height: 210px !important;
    padding: clamp(24px, 1.8vw, 34px) !important;
  }

  .cemi-home .cemi-home-property-row{
    grid-auto-columns: calc((100% - 96px) / 5) !important;
    gap: 24px !important;
  }

  .cemi-home .cemi-home-trust-grid{
    grid-template-columns: minmax(460px, .9fr) minmax(620px, 1.1fr) !important;
    gap: clamp(50px, 6vw, 110px) !important;
  }

  .cemi-home .cemi-home-tools{
    grid-template-columns: minmax(430px, .8fr) minmax(720px, 1.2fr) !important;
    gap: clamp(34px, 5vw, 90px) !important;
  }

  /* Shortcodes de propiedades / buscador / destacadas / favoritos / comparador. */
  .entry-content > .cemi-sc-wrap,
  .entry-content > .cemi-bus-wrap,
  .entry-content > .cemi-featured-section,
  .entry-content > .cemi-favorites-page,
  .entry-content > .cemi-compare-page,
  .wp-block-post-content > .cemi-sc-wrap,
  .wp-block-post-content > .cemi-bus-wrap,
  .wp-block-post-content > .cemi-featured-section,
  .wp-block-post-content > .cemi-favorites-page,
  .wp-block-post-content > .cemi-compare-page,
  .site-main .cemi-sc-wrap,
  .site-main .cemi-bus-wrap,
  .site-main .cemi-featured-section,
  .site-main .cemi-favorites-page,
  .site-main .cemi-compare-page{
    width: min(calc(100vw - var(--cemi-wide-pad) * 2), var(--cemi-wide-max)) !important;
    max-width: var(--cemi-wide-max) !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
  }

  .cemi-sc-wrap{
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr) !important;
    gap: clamp(20px, 2vw, 36px) !important;
  }

  .cemi-prop-grid,
  .cemi-featured-grid,
  .cemi-favorites-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: clamp(18px, 1.45vw, 28px) !important;
  }

  .cemi-bus-wrap .cemi-prop-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .cemi-compare-wrap{
    max-width: 100% !important;
  }
}

@media (min-width: 1600px){
  .cemi-prop-grid,
  .cemi-featured-grid,
  .cemi-favorites-grid,
  .cemi-bus-wrap .cemi-prop-grid{
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }

  .cemi-home .cemi-home-property-row{
    grid-auto-columns: calc((100% - 112px) / 5) !important;
    gap: 28px !important;
  }
}

@media (min-width: 1024px) and (max-width: 1279px){
  .cemi-prop-grid,
  .cemi-featured-grid,
  .cemi-favorites-grid,
  .cemi-bus-wrap .cemi-prop-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .cemi-home .cemi-home-property-row{
    grid-auto-columns: calc((100% - 48px) / 3) !important;
  }
}

/* CEMI Core v1.2.59 — Single Property corregido
   Reversión del full-bleed agresivo de v1.2.58: evita que la ficha se cargue a la derecha.
   Mantiene más aire en escritorio sin sacar el contenido del flujo normal del theme. */
@media (min-width: 1024px){
  body.single-cemi_property,
  body.single-opalestate_property,
  body:has(.cemi-single-property){
    overflow-x: hidden;
  }

  .site-main > .cemi-single-property,
  main > .cemi-single-property,
  .entry-content > .cemi-single-property,
  .wp-block-post-content > .cemi-single-property,
  .cemi-single-property{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
  }

  .cemi-single-property .cemi-property-wrap{
    width: min(100%, 1480px) !important;
    max-width: 1480px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: clamp(16px, 2.5vw, 38px) !important;
    padding-right: clamp(16px, 2.5vw, 38px) !important;
    box-sizing: border-box !important;
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr) !important;
    gap: clamp(22px, 2vw, 38px) !important;
  }

  .cemi-single-property .cemi-card{
    padding: clamp(18px, 1.25vw, 24px) !important;
  }

  .cemi-single-property .cemi-gallery-main,
  .cemi-single-property .cemi-main-photo,
  .cemi-single-property [class*="gallery"] img{
    max-width: 100% !important;
  }

  .cemi-single-property .cemi-seo-links-wrap,
  .cemi-single-property .cemi-related-wrap,
  .cemi-single-property .cemi-nearby-full-wrap{
    width: min(100%, 1480px) !important;
    max-width: 1480px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: clamp(16px, 2.5vw, 38px) !important;
    padding-right: clamp(16px, 2.5vw, 38px) !important;
    box-sizing: border-box !important;
  }

  .cemi-single-property .cemi-nearby-full-wrap .cemi-nearby-slide{
    flex-basis: 25% !important;
    min-width: 25% !important;
    width: 25% !important;
    max-width: 25% !important;
  }
}

@media (min-width: 1600px){
  .cemi-single-property .cemi-property-wrap,
  .cemi-single-property .cemi-seo-links-wrap,
  .cemi-single-property .cemi-related-wrap,
  .cemi-single-property .cemi-nearby-full-wrap{
    width: min(100%, 1560px) !important;
    max-width: 1560px !important;
  }

  .cemi-single-property .cemi-property-wrap{
    grid-template-columns: minmax(0, 1.42fr) minmax(360px, .58fr) !important;
    gap: clamp(28px, 2.2vw, 48px) !important;
  }

  .cemi-single-property .cemi-nearby-full-wrap .cemi-nearby-slide{
    flex-basis: 20% !important;
    min-width: 20% !important;
    width: 20% !important;
    max-width: 20% !important;
  }
}

@media (min-width: 1024px) and (max-width: 1279px){
  .cemi-single-property .cemi-property-wrap{
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr) !important;
  }

  .cemi-single-property .cemi-nearby-full-wrap .cemi-nearby-slide{
    flex-basis: 33.333333% !important;
    min-width: 33.333333% !important;
    width: 33.333333% !important;
    max-width: 33.333333% !important;
  }
}
