.elementor-89 .elementor-element.elementor-element-b77b087{--display:flex;--justify-content:center;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--margin-top:20vh;--margin-bottom:80px;--margin-left:0;--margin-right:0;}.elementor-89 .elementor-element.elementor-element-db42156{--display:flex;--justify-content:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--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-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-primary );}.elementor-89 .elementor-element.elementor-element-58499c3b{text-align:center;}.elementor-89 .elementor-element.elementor-element-58499c3b .elementor-heading-title{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-89 .elementor-element.elementor-element-63d76a39{text-align:center;}.elementor-89 .elementor-element.elementor-element-63d76a39 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}body.elementor-page-89:not(.elementor-motion-effects-element-type-background), body.elementor-page-89 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-secondary );}:root{--page-title-display:none;}body.elementor-page-89{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}@media(max-width:1024px){.elementor-89 .elementor-element.elementor-element-b77b087{--margin-top:15vh;--margin-bottom:64px;--margin-left:0;--margin-right:0;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-89 .elementor-element.elementor-element-58499c3b .elementor-heading-title{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-89 .elementor-element.elementor-element-63d76a39 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}}@media(min-width:768px){.elementor-89 .elementor-element.elementor-element-b77b087{--content-width:50%;}}@media(max-width:1024px) and (min-width:768px){.elementor-89 .elementor-element.elementor-element-b77b087{--content-width:70%;}}@media(max-width:767px){.elementor-89 .elementor-element.elementor-element-b77b087{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-89 .elementor-element.elementor-element-db42156{--width:80%;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-89 .elementor-element.elementor-element-58499c3b .elementor-heading-title{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-89 .elementor-element.elementor-element-63d76a39 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}}/* Start custom CSS *//* ============================================
   CAROUSEL — Opacité slides actives/inactives
   ============================================ */
.elementor-widget-n-carousel .swiper-slide {
  opacity: 0.4;
  transition: opacity 0.4s ease;
}
.elementor-widget-n-carousel .swiper-slide-active,
.elementor-widget-n-carousel .swiper-slide-duplicate-active {
  opacity: 1 !important;
}

/* ============================================
   CAROUSEL — Chargement / transition d'apparition
   ============================================ */
.elementor-widget-n-carousel .swiper:not(.swiper-initialized) {
  opacity: 0;
}
.elementor-widget-n-carousel .swiper.swiper-initialized {
  opacity: 1;
  transition: opacity 0.3s ease;
}

/* ============================================
   CAROUSEL — Texte/CTA visibles uniquement sur slide active
   ============================================ */
.elementor-widget-n-carousel .swiper-slide .e-image-link-base ~ div {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.elementor-widget-n-carousel .swiper-slide-active .e-image-link-base ~ div,
.elementor-widget-n-carousel .swiper-slide-duplicate-active .e-image-link-base ~ div {
  opacity: 1;
  pointer-events: auto;
}

/* ============================================
   CAROUSEL — Proportions naturelles des images
   ============================================ */
.elementor-widget-n-carousel .e-image-base {
  width: 100% !important;
  height: unset !important;
  max-height: unset !important;
  aspect-ratio: auto !important;
  object-fit: unset !important;
}

/* ============================================
   CAROUSEL — Pagination (bullets en traits fins)
   ============================================ */
.elementor-widget-n-carousel .swiper-pagination {
  display: flex;
  gap: 0;
  width: 8%;
  left: 50%;
  transform: translateX(-50%);
  bottom: -25px;
}
.elementor-widget-n-carousel .swiper-pagination-bullet {
  flex: 1;
  height: 1px;
  border-radius: 0;
  background-color: rgba(0, 0, 0, 0.2);
  opacity: 1;
  margin: 0 !important;
}
.elementor-widget-n-carousel .swiper-pagination-bullet-active {
  background-color: #161111;
}

/* ============================================
   HERO VIDEO — Plein écran + comportement responsive
   ============================================ */
#hero-video {
  position: relative !important;
  width: 100% !important;
  height: 100vh !important;
  overflow: hidden !important;
}
#hero-video .elementor-wrapper {
  height: 100% !important;
  width: 100% !important;
}
#hero-video iframe {
  pointer-events: none;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) scale(1.05) !important;
  width: 177.78vh !important;
  height: 56.25vw !important;
  min-width: 120vw !important;
  min-height: 120vh !important;
  max-height: none !important;
  max-width: none !important;
}

/* ============================================
   ACCORDÉON — Animation d'ouverture/fermeture
   ============================================ */
.e-n-accordion-item [role="region"] {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.15);
  padding-bottom: 20px;
  margin-bottom: -1px;
}
.e-n-accordion-item[open] [role="region"] {
  grid-template-rows: 1fr;
}
.e-n-accordion-item [role="region"] > * {
  min-height: 0;
  overflow: hidden;
}
.e-n-accordion-item [role="region"] p {
  text-wrap: pretty;
}
.e-n-accordion-item-title-icon svg path {
  fill: #D4CBC9 !important;
}

/* ============================================
   ANIMATIONS — Keyframes
   ============================================ */
@keyframes fillProgress {
  from { width: 0%; }
  to { width: 100%; }
}

/* ============================================
   RESPONSIVE — Mobile (≤768px)
   ============================================ */

@media (max-width: 768px) {
  #hero-video {
    height: 95dvh !important;
  }
  #hero-video .elementor-wrapper {
    height: 100% !important;
  }
  
  .elementor-widget-n-carousel .swiper-pagination {
    width: 33%;
    left: 50%;
  }
}/* End custom CSS */