/* Réserve l’espace above-the-fold pour limiter le CLS (desktop GSC). */
body h1,
body h2,
.cr-home-hero__title,
.cr-listing-hero__title {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  max-width: none !important;
}

.cr-home-hero {
  min-height: 320px;
  contain: layout;
}

@media (min-width: 992px) {
  .cr-home-hero {
    min-height: 380px;
  }
}

.cr-home-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Empêche common.css (height:100%) d’écraser la hauteur critique de la carte. */
.map-wrapper,
.casecarousel.map-wrapper,
section.mapsec .map-wrapper {
  height: 400px !important;
  min-height: 400px !important;
  max-height: 400px !important;
  contain: layout size;
}

#gmap,
div#gmap {
  height: 100% !important;
  min-height: 400px !important;
}

.map-wrapper.w-100.h-100,
.banniere-pub .map-wrapper {
  height: 600px !important;
  min-height: 600px !important;
  max-height: 600px !important;
}

.banniere-pub #gmap,
.banniere-pub div#gmap {
  min-height: 600px !important;
}

@media (max-width: 767px) {
  .map-wrapper,
  .casecarousel.map-wrapper,
  section.mapsec .map-wrapper {
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
  }

  #gmap,
  div#gmap {
    min-height: 280px !important;
  }

  .map-wrapper.w-100.h-100,
  .banniere-pub .map-wrapper {
    height: 320px !important;
    min-height: 320px !important;
    max-height: 320px !important;
  }

  .banniere-pub #gmap,
  .banniere-pub div#gmap {
    min-height: 320px !important;
  }
}

.ulo-section,
.ulo-grid,
#promos-locales {
  contain: layout;
}

.ulo-card img,
.carrousel-offers img,
.offer-box img {
  aspect-ratio: 5 / 3;
  object-fit: cover;
  height: auto;
  max-width: 100%;
}

img[width][height] {
  height: auto;
}
