.elementor-860 .elementor-element.elementor-element-445f45d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:-220px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-860 .elementor-element.elementor-element-0ac7fb3{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-860 .elementor-element.elementor-element-b0baeb1{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-860 .elementor-element.elementor-element-b0baeb1.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-860 .elementor-element.elementor-element-b5cd27f{--display:flex;}.elementor-860 .elementor-element.elementor-element-e50d958 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-860 .elementor-element.elementor-element-ffc91f0{--display:flex;}.elementor-860 .elementor-element.elementor-element-d46239e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-860 .elementor-element.elementor-element-b06f783 .e-gallery-item:hover .elementor-gallery-item__overlay, .elementor-860 .elementor-element.elementor-element-b06f783 .e-gallery-item:focus .elementor-gallery-item__overlay{background-color:rgba(0,0,0,0.5);}.elementor-860 .elementor-element.elementor-element-b06f783{--image-transition-duration:800ms;--overlay-transition-duration:800ms;--content-text-align:center;--content-padding:20px;--content-transition-duration:800ms;--content-transition-delay:800ms;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-860 .elementor-element.elementor-element-b0baeb1{--width:70%;}}@media(max-width:767px){.elementor-860 .elementor-element.elementor-element-dec782a > .elementor-widget-container{margin:65px 0px 0px 0px;}}/* Start custom CSS for html, class: .elementor-element-dec782a */.hero-slider{
  height:90vh;
}
.hero-slide{
  height:100%;
  background-size:cover;
  background-position:center;
  position:relative;
}
.hero-slide .overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:40px;
  max-width:700px;
}
.hero-slide h1{
  font-size:42px;
  margin-bottom:15px;
}
.hero-slide p{
  font-size:18px;
  margin-bottom:25px;
}
.hero-cta{
  display:flex;
  gap:15px;
  flex-wrap:wrap;
}
.btn{
  padding:14px 22px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
}
.btn.primary{background:#fff;color:#111}
.btn.secondary{border:1px solid #fff;color:#fff}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-5dacab5 */.intro-card{
  background:#ffffff;
  border:1px solid #e5e7eb;
  border-radius:20px;
  padding:36px 40px;
  max-width:820px;
}

.intro-card h2{
  margin-top:0;
  margin-bottom:16px;
  font-size:26px;
  color:#111827;
}

.intro-card p{
  font-size:15px;
  line-height:1.65;
  color:#374151;
  margin-bottom:14px;
}

.intro-card p.lead{
  font-size:17px;
  color:#111827;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-3d38039 */.atouts{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.atout{
  display:flex;
  align-items:flex-start;
  gap:16px;
  background:#ffffff;
  padding:18px 20px;
  border-radius:16px;
  border:1px solid #e5e7eb;
}

.atout-icon{
  width:40px;
  height:40px;
  border-radius:12px;
  background:#f3f4f6;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  flex-shrink:0;
}

.atout-text strong{
  display:block;
  font-size:15px;
  margin-bottom:4px;
  color:#111827;
}

.atout-text p{
  margin:0;
  font-size:14px;
  color:#6b7280;
  line-height:1.4;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-e50d958 */.story{
  max-width: 820px;
  margin: 40px auto 60px;
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.story-card{
  position: relative;
  background: #ffffff;
  padding: 28px 32px;
  border-radius: 20px;
  border: 1px solid #e5e7eb;
}

.story-icon{
  position: absolute;
  top: -18px;
  left: 32px;
  background: #f3f4f6;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.story-card h3{
  margin-top: 12px;
  margin-bottom: 12px;
  font-size: 18px;
}

.story-card p{
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.6;
  color: #374151;
}

.story-card p.muted{
  color: #6b7280;
  font-size: 14px;
}

/* Base: caché avant apparition */
.reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}

/* Variantes */
.reveal-left{ transform: translateX(-18px); }
.reveal-right{ transform: translateX(18px); }
.reveal-up{ transform: translateY(18px); }

/* Visible */
.reveal.is-visible{
  opacity: 1;
  transform: translate(0,0);
}

/* Respect “reduce motion” */
@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

.story{
  width: 100%;
  max-width: none;      /* enlève toute limite */
  margin: 40px 0 60px;  /* pas de centrage horizontal */
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.story-card{
  width: 100%;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-3348ed8 */.resa{
  max-width:600px;
  margin:80px auto;
  background:#fff;
  padding:40px;
  border-radius:18px;
}
.resa h2{
  text-align:center;
  margin-bottom:25px;
}
.resa form{
  display:flex;
  flex-direction:column;
  gap:15px;
}
.resa input, .resa textarea{
  padding:14px;
  border-radius:12px;
  border:1px solid #ddd;
  font-size:14px;
}
.resa textarea{min-height:120px}
.resa .row{
  display:flex;
  gap:10px;
}
.resa button{
  padding:14px;
  border:none;
  border-radius:999px;
  background:#111827;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}



/* SECTION FORM : fond + rythme */
#reservation{
  padding: 70px 16px;
  background: #f6f7f9;
}

/* Carte autour du formulaire */
#reservation .elementor-form{
  max-width: 680px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  padding: 28px;
  box-shadow: 0 10px 30px rgba(17,24,39,.08);
}



/* Champs plus modernes */
#reservation input,
#reservation textarea,
#reservation select{
  border-radius: 12px !important;
  border: 1px solid #e5e7eb !important;
  padding: 12px 14px !important;
  font-size: 14px !important;
}

/* Focus clean */
#reservation input:focus,
#reservation textarea:focus,
#reservation select:focus{
  outline: none !important;
  border-color: #2563eb !important;
  box-shadow: 0 0 0 4px rgba(37,99,235,.12) !important;
}



/* Bouton CTA */
#reservation .elementor-button{
  width: 100%;
  border-radius: 999px !important;
  padding: 14px 18px !important;
  font-weight: 800 !important;
  background: #111827 !important;
  border: none !important;
}

#reservation .elementor-button:hover{
  filter: brightness(.95);
}/* End custom CSS */