/* HERO GEF */
.gef-hero{
  position: relative;
  height: 450px;
  color: #fff;
}

/* Background image */
.gef-hero-bg{
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
}

/* Overlay pour lisibilité */
.gef-hero-bg::before{
  content:"";
  position:absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 50%;

  background: linear-gradient(
    90deg,
    rgba(0,0,0,.62) 0%,
    rgba(0,0,0,.35) 70%,
    rgba(0,0,0,0) 100%
  );

  pointer-events: none;
}

/* Contenu */
.gef-hero-content{
  position: relative;
  z-index: 2;
  max-width: 45%;
  padding: 40px 0 170px;
}

.gef-hero-kicker{
  font-weight: 700;
  opacity: .92;
}

.gef-hero-title{
  font-weight: 900;
  letter-spacing: .2px;
  line-height: 1.05;
  font-size: clamp(2rem, 3.2vw, 2.5rem);
}

.gef-hero-sub{
  opacity: .95;
  font-size: 1.05rem;
  max-width: 520px;
}

 .destinations-section{
  padding-top: 200px !important;
  }

/* CTA */
.btn-gef-primary{
  background: #2f8f55;
  border: 1px solid #2f8f55;
  color: #fff;
  font-weight: 900;
  border-radius: 999px;
  padding: .8rem 1.25rem;
}

.btn-gef-primary:hover{
  color:#fff;
  filter: brightness(.95);
}

.btn-gef-primary:focus-visible{
  outline: 2px solid #fff;
  outline-offset: 3px;
}

/* Booking overlap */
.gef-booking-wrap{
  position: absolute;
  left: 0;
  right: 0;
  bottom: -350px;
  z-index: 5;
}

/* Réserve sous le hero pour laisser la place au module */
.gef-hero + *{
  padding-top: 95px;
}

/* Card + iframe */
.gef-booking-card{
  border-radius: 14px;
  overflow: visible;
}

.gef-booking-frame{
  width: 100%;
  height: 430px;
  border-radius: 14px;
  overflow: visible;
}

.gef-booking-frame iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  border-radius: 14px;
}

/* Carousel controls plus discrets */
.gef-hero .carousel-control-prev,
.gef-hero .carousel-control-next{
  width: 10%;
}

.gef-hero .carousel-indicators{
  margin-bottom: 110px; /* au-dessus du module */
}

/* Responsive */
@media (max-width: 991.98px){
  .gef-hero{
    min-height: 520px;
  }

  .gef-hero-content{
    padding: 90px 0 160px;
    max-width: 100%;
  }

  .gef-booking-wrap{
    bottom: -500px;
  }

  .gef-booking-frame{
    height: 560px;
  }

  .gef-hero + *{
    padding-top: 75px;
  }

  .gef-hero-bg::before{
    background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 65%, rgba(0,0,0,.10) 100%);
  }
}

@media (max-width: 575.98px){
  .gef-booking-frame{
    height: 600px;
  }
  .destinations-section{
  padding-top: 350px !important;
  }

  .gef-hero-bg::before{
  content:"";
  position:absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;

  background: linear-gradient(
    90deg,
    rgba(0,0,0,.62) 0%,
    rgba(0,0,0,.35) 70%,
    rgba(0,0,0,0) 100%
  );

  pointer-events: none;
}
}
