/*
Theme Name: Base Divi – Shoo Fab
Description: Thème enfant Divi optimisé avec polices locales
Author: Shoo Fab
Template: Divi
Version: 1.0.1
*/

/* ========== POLICES LOCALES ========== */
@font-face {
  font-family: 'Frank Ruhl Libre';
  src: url('fonts/FrankRuhlLibre-Regular.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'Lora';
  src: url('fonts/Lora-Regular.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: 'Lato';
  src: url('fonts/Lato-Regular.woff2') format('woff2');
  font-display: swap;
}

/* ========== TYPOGRAPHIE GLOBALE ========== */
body { font-family: 'Lato', sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family: 'Frank Ruhl Libre', serif; }
.subtitle { font-family: 'Lora', serif; font-size: 1.2em; font-style: italic; }


/* =========================================================
   VIP VOYAGES — HEADER GLOBAL (Theme Builder V22)
   Version stable — Sticky géré par Divi (sans margin-top)
   Dernière MAJ : 02/10/2025
   ========================================================= */

/* --- Priorités de calques --- */
.et_pb_section_0_tb_header{
  position: relative !important;
  z-index: 2147483000 !important; /* top par défaut */
}
#et-main-area > .et_pb_section:first-child,
#et-main-area > .et_pb_fullwidth_section:first-child{
  position: relative !important;
  z-index: 1 !important;
}
/* Sticky abaissé (héritage modales) — sera surchargé sur la home */
.et_pb_section_0_tb_header.et_pb_sticky_module{ z-index:100 !important; }

/* =========================================================
   MENU DESKTOP
   ========================================================= */
.header_v22 .custom_menu.et_pb_menu .et-menu>li{ padding: 0 18px !important; }

.et_pb_menu .et-menu>li.menu-item-has-children>a::after{
  content:"\33"; font-family:"ETModules"; font-size:18px; margin-left:8px;
  vertical-align: middle; display:inline-block;
  transition: transform .3s ease, color .3s ease; color:#fff;
}
.et_pb_menu .et-menu>li.menu-item-has-children:hover>a::after,
.et_pb_menu .et-menu>li.menu-item-has-children.focus>a::after{
  transform: rotate(180deg); color:#F0C75E;
}

/* Dropdown desktop */
.is-vip-menu,
.is-vip-menu nav,
.is-vip-menu .et_pb_menu__wrap{ overflow: visible !important; }

.is-vip-menu .et-menu>li.menu-item-has-children{ position: relative !important; }

.is-vip-menu .et-menu>li.menu-item-has-children>ul.sub-menu{
  position:absolute !important; top:100% !important; left:0 !important;
  margin:0 !important; padding:0 !important; min-width:220px;
  background:#fff; border:1px solid #e0e0e0;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  display:block !important; opacity:0; visibility:hidden;
  transform:translateY(8px); transition:all .22s ease;
  z-index:2147483647 !important;
}
.is-vip-menu .et-menu>li.menu-item-has-children:hover>ul.sub-menu,
.is-vip-menu .et-menu>li.menu-item-has-children:focus-within>ul.sub-menu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.is-vip-menu .et-menu>li.menu-item-has-children>ul.sub-menu li a{
  display:block; padding:12px 18px; font-size:14px; line-height:1.4;
  color:#343f2f; white-space:nowrap;
}
.is-vip-menu .et-menu>li.menu-item-has-children>ul.sub-menu li a:hover{
  background:rgba(0,122,83,.07); color:#007A53;
}

/* =========================================================
   MENU MOBILE — structure & styles
   ========================================================= */
ul.et_mobile_menu li.menu-item-has-children .mobile-toggle-icon::after,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle-icon::after{
  color:#fff; background:#007B54; box-shadow:0 0 0 2px #fff inset;
  content:'\33'; font-family:"ETModules"; border-radius:50%; padding:3px;
  top:10px; position:relative; transition:all .3s ease-in-out;
}
ul.et_mobile_menu li.menu-item-has-children.mobile-toggle-open > .mobile-toggle-icon::after,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children.mobile-toggle-open > .mobile-toggle-icon::after{
  content:'\32'; transform:rotate(180deg);
}
ul.et_mobile_menu li.menu-item-has-children .mobile-toggle-icon{
  width:44px; height:100%; max-height:44px;
  position:absolute; right:0; top:0; z-index:999; background:transparent; text-align:center;
}
ul.et_mobile_menu .menu-item-has-children .sub-menu{ display:none; visibility:hidden; transition:all .3s ease-in-out; }
ul.et_mobile_menu .menu-item-has-children .sub-menu.visible{ display:block !important; visibility:visible; }
.et_mobile_menu{ padding:0; margin:0; }
.et_mobile_menu li{ margin:0; padding:0; border-bottom:1px solid #e0e0e0; }
.et_mobile_menu li a{
  display:flex; align-items:center; padding:10px 16px !important;
  font-size:14px !important; line-height:1.3; color:#4b4b4a;
}
.et_mobile_menu li.current-menu-item > a{
  background-color:rgba(0,123,84,.05); font-weight:600; color:#007B54 !important;
}
.et_mobile_menu li a:hover{ background-color:rgba(0,123,84,.04); color:#007B54; }

/* =========================================================
   LOGO — Position verticale (desktop + sticky)
   ========================================================= */
:root{
  --vip-logo-offset: 8px;
  --vip-logo-offset-sticky: 8px;
}
@media (min-width:981px){
  .header_v22_top_row{ align-items:center !important; }
  .header_v22_column_1{ display:flex !important; align-items:center !important; }
  .header_v22_column_1 img,
  .et_pb_section_0_tb_header .et_pb_row .et_pb_column:first-child img{
    display:block; max-height:56px !important; height:auto;
    transform: translateY(var(--vip-logo-offset));
  }
  .et_pb_section_0_tb_header.et_pb_sticky--active .header_v22_column_1 img,
  .et_pb_section_0_tb_header.et_pb_sticky--active .et_pb_row .et_pb_column:first-child img{
    transform: translateY(var(--vip-logo-offset-sticky));
  }
}

/* =========================================================
   HOME — Header masqué au chargement + correctifs
   ========================================================= */
/* Masqué au départ (stacking sans impact car invisible) */
body.home .et_pb_section_0_tb_header{
  opacity:0; visibility:hidden;
  transform: translateY(-18px) translateZ(0); /* anti-jitter GPU */
  transition: opacity .35s ease, transform .35s ease, visibility .35s ease;
  will-change: opacity, transform;
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
}
/* Visible : plus de transform → pas de stacking-context, z-index effectif */
body.home.vip-scrolled .et_pb_section_0_tb_header{
  opacity:1; visibility:visible; transform:none !important; transition-delay:0s;
}
/* Neutralisation placeholders Divi quand masqué */
body.home:not(.vip-scrolled) .et-l--header,
body.home:not(.vip-scrolled) .et-l--header .et_builder_inner_content,
body.home:not(.vip-scrolled) .et_pb_sticky_placeholder{
  height:0 !important; min-height:0 !important; margin:0 !important; padding:0 !important;
  overflow:visible !important; pointer-events:none;
}
body.home.vip-scrolled .et_pb_sticky_placeholder{
  height:auto !important; min-height:inherit !important; overflow:visible !important;
}
/* Priorité une fois sticky actif sur la home */
body.home.vip-scrolled .et_pb_section_0_tb_header.et_pb_sticky_module{
  z-index: 2147483000 !important;
}
/* Si PhotoSwipe (v5) est ouvert, le header repasse sous la modale */
body.pswp--open .et_pb_section_0_tb_header,
.pswp--open body .et_pb_section_0_tb_header{ z-index:100 !important; }
/* Sécurité : aucun container du header ne coupe le dropdown */
body.home .et_pb_section_0_tb_header,
body.home .et_pb_section_0_tb_header .et_pb_row,
body.home .et_pb_section_0_tb_header .et_pb_menu__wrap{
  overflow: visible !important; pointer-events: auto !important;
}

/* =========================================================
   PATCH MOBILE — header masqué sans bandeau blanc
   + parents sans URL non "actifs"
   (à garder en bas du fichier)
   ========================================================= */
@media (max-width:980px){

  /* Sortir le header du flux quand il est masqué */
  body.home:not(.vip-scrolled) .et_pb_section_0_tb_header{
    position: fixed !important;
    top: -300px !important;
    left: 0; right: 0;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important; /* pas de stacking-context inutile */
  }

  /* Neutraliser tout espace réservé par Divi */
  body.home:not(.vip-scrolled) .et-l--header,
  body.home:not(.vip-scrolled) .et-l--header .et_builder_inner_content,
  body.home:not(.vip-scrolled) .et_pb_sticky_placeholder,
  body.home:not(.vip-scrolled) .et-l--header .et_pb_section,
  body.home:not(.vip-scrolled) .et-l--header .et_pb_row{
    height: 0 !important; min-height: 0 !important;
    margin: 0 !important; padding: 0 !important;
    overflow: hidden !important; pointer-events: none !important;
  }

  /* Pas de padding/marge top parasite sur le conteneur principal */
  body.home:not(.vip-scrolled) #page-container,
  body.home:not(.vip-scrolled) #et-main-area{
    padding-top: 0 !important; margin-top: 0 !important;
  }

  /* Empêcher le wrapper du menu mobile de réserver de la place */
  body.home:not(.vip-scrolled) .et_pb_menu__wrap,
  body.home:not(.vip-scrolled) .et_mobile_nav_menu,
  body.home:not(.vip-scrolled) .et_mobile_menu{
    display: none !important;
  }

  /* Coller le premier fullwidth header en haut */
  body.home #et-main-area > .et_pb_fullwidth_section:first-child,
  body.home #et-main-area > .et_pb_section:first-child{
    margin-top: 0 !important;
  }

  /* Parents SANS URL : non cliquables et visuellement neutres */
  .et_mobile_menu li.menu-item-has-children > a[href=""],
  .et_mobile_menu li.menu-item-has-children > a[href="#"],
  .et_mobile_menu li.menu-item-has-children > a:not([href]){
    cursor: default !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    background-color: transparent !important;
    color: inherit !important;
    text-decoration: none !important;
    outline: none !important;
    user-select: none;
  }
  /* Neutraliser :hover / :active / :focus sur ces parents */
  .et_mobile_menu li.menu-item-has-children > a[href=""]:hover,
  .et_mobile_menu li.menu-item-has-children > a[href=""]:active,
  .et_mobile_menu li.menu-item-has-children > a[href=""]:focus,
  .et_mobile_menu li.menu-item-has-children > a[href="#"]:hover,
  .et_mobile_menu li.menu-item-has-children > a[href="#"]:active,
  .et_mobile_menu li.menu-item-has-children > a[href="#"]:focus,
  .et_mobile_menu li.menu-item-has-children > a:not([href]):hover,
  .et_mobile_menu li.menu-item-has-children > a:not([href]):active,
  .et_mobile_menu li.menu-item-has-children > a:not([href]):focus{
    background-color: transparent !important;
    color: inherit !important;
    outline: none !important;
  }
  /* Si une classe "current" arrive par erreur, l’annuler */
  .et_mobile_menu li.menu-item-has-children.current-menu-item > a[href=""],
  .et_mobile_menu li.menu-item-has-children.current-menu-item > a[href="#"],
  .et_mobile_menu li.menu-item-has-children.current-menu-item > a:not([href]){
    background-color: transparent !important;
    font-weight: 400 !important;
    color: inherit !important;
  }
  /* Parent ouvert : garder fond neutre */
  .et_mobile_menu li.menu-item-has-children.mobile-toggle-open > a[href=""],
  .et_mobile_menu li.menu-item-has-children.mobile-toggle-open > a[href="#"],
  .et_mobile_menu li.menu-item-has-children.mobile-toggle-open > a:not([href]){
    background-color: transparent !important;
  }
}





/* =========================================================
   FULLWIDTH HEADER – HERO VIDÉO (Desktop + Mobile)
   Page d’accueil — v2025-09-30.2
   ========================================================= */

/* ---------- Variables globales (dégradé + réglages) ---------- */
body.home .home-hero-video{
  /* ↓ Dégradé blanc réduit */
  --hero-fade-height: 160px;        /* Desktop (av. 220px)  */
  --hero-fade-height-m: 110px;      /* Mobile  (av. 140px)  */
  --fade-top-stop: 14%;             /* démarre un peu plus bas */
  --fade-mid-stop: 58%;             /* transition plus courte */
  --fade-mid-color:   rgba(250,248,242,0.52); /* moins opaque */
  --fade-mid-color-m: rgba(250,248,242,0.56);
  --fade-bottom-color:#faf8f2;
}

/* Hauteur supplémentaire mobile (au-delà de l’écran) */
:root{ --hero-mobile-extra: 20vh; } /* ajuste 10–24vh si besoin */

/* =========================================================
   DESKTOP + TABLETTE
   ========================================================= */
@media (min-width: 768px){
  /* IMPORTANT : la classe est sur le MODULE lui-même */
  body.home .et_pb_fullwidth_header.home-hero-video{
    position: relative;
    min-height: 90vh;
    background:#000;
    overflow: hidden;
    display: grid;
    align-content: center;
    justify-items: center;
    padding: 0 40px;
    text-align: center;
  }

  body.home .et_pb_fullwidth_header.home-hero-video video{
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover !important;
    object-position: center var(--vip-focus-y-desktop, 66%) !important;
    pointer-events: none;
    z-index: 1;
  }

  /* Contenu devant la vidéo */
  body.home .et_pb_fullwidth_header.home-hero-video .et_pb_fullwidth_header_container{
    position: relative; z-index:2;
    width: 100%; max-width: 1200px;
  }

  /* ===== Overlay bas — VERSION VALIDÉE (mask-image) ===== */
  /* Couvre à la fois .home-hero-video et .hero-desktop */
  body.home .et_pb_fullwidth_header.home-hero-video::after,
  body.home .et_pb_fullwidth_header.hero-desktop::after{
    content:"";
    position:absolute; left:0; right:0; bottom:0;
    height: var(--hero-fade-height);
    background: #faf8f2;                 /* couleur de la section suivante */
    z-index: 3; pointer-events: none;

    /* fondu progressif (aucune “ligne”) */
    -webkit-mask-image: linear-gradient(
      to bottom,
      rgba(0,0,0,0.00)  0%,
      rgba(0,0,0,0.04) 24%,
      rgba(0,0,0,0.18) 52%,
      rgba(0,0,0,0.45) 78%,
      rgba(0,0,0,0.78) 94%,
      #000              100%
    );
            mask-image: linear-gradient(
      to bottom,
      rgba(0,0,0,0.00)  0%,
      rgba(0,0,0,0.04) 24%,
      rgba(0,0,0,0.18) 52%,
      rgba(0,0,0,0.45) 78%,
      rgba(0,0,0,0.78) 94%,
      #000              100%
    );
    -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
    will-change: mask-image;
  }

  /* Fallback (navigateurs sans mask-image) */
  @supports not ((-webkit-mask-image: linear-gradient(#000,#000))){
    body.home .et_pb_fullwidth_header.home-hero-video::after,
    body.home .et_pb_fullwidth_header.hero-desktop::after{
      background: linear-gradient(
        to bottom,
        rgba(250,248,242,0.00) 10%,
        rgba(250,248,242,0.10) 40%,
        rgba(250,248,242,0.24) 70%,
        rgba(250,248,242,0.36) 88%,
        #faf8f2 100%
      ) !important;
    }
  }
}

/* =========================================================
   MOBILE — Plein écran fiable + centrage parfait
   ========================================================= */
@media (max-width: 767px){
  /* Le MODULE (pas un descendant) */
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero{
    /* vrai plein écran + surplus de hauteur */
    min-height: calc(100svh + var(--hero-mobile-extra)) !important;
    height:     calc(100svh + var(--hero-mobile-extra)) !important;
    min-height: calc(100dvh + var(--hero-mobile-extra)) !important;
    height:     calc(100dvh + var(--hero-mobile-extra)) !important;

    position: relative;
    background:#000;
    overflow: hidden !important;

    /* centrage 2 axes */
    display: grid !important;
    place-items: center !important;

    padding: 0 8%;
    text-align: center;
  }

  /* Fallback iOS (-webkit-fill-available ne gère pas calc()) */
  @supports (-webkit-touch-callout: none){
    body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero{
      height: -webkit-fill-available !important;
      min-height: -webkit-fill-available !important;
      padding-bottom: var(--hero-mobile-extra) !important;
    }
  }

  /* Vidéo : neutralise MediaElement + couvre toute la zone */
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero .mejs-container,
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero .mejs-inner,
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero .mejs-mediaelement,
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero mediaelementwrapper,
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero video{
    position:absolute !important;
    top:0 !important; left:0 !important;
    width:100% !important; height:100% !important;
    min-width:100% !important; min-height:100% !important;
    max-width:100% !important; max-height:100% !important;
    margin:0 !important;
    object-fit: cover !important;
    object-position: center var(--vip-focus-y-mobile, 50%) !important;
    pointer-events: none;
    z-index: 1;
  }

  /* Dégradé bas (allégé) */
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero::after{
    content:"";
    position:absolute; left:0; right:0; bottom:0;
    height: var(--hero-fade-height-m);
    background: linear-gradient(
      to bottom,
      rgba(255,255,255,0) var(--fade-top-stop),
      var(--fade-mid-color-m) var(--fade-mid-stop),
      var(--fade-bottom-color) 100%
    );
    z-index:3; pointer-events:none;
  }

  /* Conteneurs internes : centrage + gap régulier */
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero .et_pb_fullwidth_header_container{
    position: relative; z-index: 2;
    display: grid !important;
    place-items: center !important;
    justify-items: center !important;
    align-content: center !important;
    gap: 14px;
    width: 100%; max-width: 90%; margin: 0 auto;
  }
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero .header-content,
  body.home .et_pb_fullwidth_header.home-hero-video.mobile-hero .header-content-container{
    display: grid !important; place-items: center !important; gap: 12px; width: 100%;
  }

  /* Titres & sous-titre : supprime les marges parasites */
  body.home .home-hero-video.mobile-hero .et_pb_module_header{ margin:0 !important; }
  body.home .home-hero-video.mobile-hero .et_pb_fullwidth_header_subhead{ margin:0 !important; }

  /* Boutons */
  body.home .home-hero-video.mobile-hero .et_pb_button_wrapper{
    display:block !important; margin:6px 0 0 !important; text-align:center !important;
  }
  body.home .home-hero-video.mobile-hero .et_pb_button{
    display:inline-block !important; width:auto !important; min-width:220px; max-width:90%;
  }

  /* Sécurité globale */
  html, body { height: 100%; }
}

/* =========================================================
   LISIBILITÉ (Titres + Sous-titres + Boutons)
   ========================================================= */
body.home .home-hero-video .et_pb_module_header,
body.home .home-hero-video .et_pb_fullwidth_header_subhead{
  text-shadow:
    0 1px 2px rgba(0,0,0,.28),
    0 3px 10px rgba(0,0,0,.33),
    0 10px 26px rgba(0,0,0,.30);
}
body.home .home-hero-video .et_pb_button{ box-shadow:0 3px 14px rgba(0,0,0,.25); }

/* =========================================================
   CLASSES UTILITAIRES – Focus vertical vidéo (desktop & mobile)
   ========================================================= */
@media (min-width: 981px){
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-32 video{ object-position:center 32% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-35 video{ object-position:center 35% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-38 video{ object-position:center 38% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-40 video{ object-position:center 40% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-42 video{ object-position:center 42% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-50 video{ object-position:center 50% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-60 video{ object-position:center 60% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-up-70 video{ object-position:center 70% !important; }
}
@media (max-width: 767px){
  body.home .home-hero-video .et_pb_fullwidth_header.video-m-up-40 video{ object-position:center 40% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-m-up-45 video{ object-position:center 45% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-m-up-50 video{ object-position:center 50% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-m-up-55 video{ object-position:center 55% !important; }
  body.home .home-hero-video .et_pb_fullwidth_header.video-m-up-60 video{ object-position:center 60% !important; }
}






/* ========== FOOTER ========== */
footer, .et-l--footer { font-family: 'Lato', sans-serif; font-size: 14px; color: #E5E5E5; line-height: 1.6; }
footer p { margin: 0 0 10px; }
footer strong { font-size: 15px; }
footer ul { list-style: none; padding: 0; margin: 0; }
footer ul li { margin-bottom: 8px; }
footer a { color: #C7A148; text-decoration: none; }
footer a:hover { color: #fff !important; }
footer .fa-phone-alt, footer .fa-envelope, footer .fa-clock {
  color: #C7A148; font-size: 14px; width: 18px; display: inline-block; text-align: center;
}
.footer-coordonnees p { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 8px; }
.footer-coordonnees span { display: block; }
.footer-description { max-width: 280px; color: #E5E5E5; font-size: 13px; margin-top: 6px; }
.footer-bottom { text-align: center; font-size: 12px; color: #DAD7D2; margin-top: 20px; }
.footer-bottom a { color: #C7A148; }
.footer-bottom a:hover { color: #fff; }

/* Responsive Mobile Footer */
@media (max-width: 980px) {
  .et-l--footer .et_pb_column { margin-bottom: 30px; text-align: center; }
  .footer-coordonnees { text-align: left !important; justify-content: flex-start !important; align-items: flex-start !important; }
  .footer-coordonnees p { justify-content: flex-start !important; }
}

/* =========================
   UTILITAIRES RESPONSIVE & LAYOUT
   ========================= */

/* Mobile : inversion simple */
@media (max-width: 767px) {
  .inverser-mobile {
    display: flex;
    flex-direction: column-reverse;
  }
}

/* Desktop & tablette : aligne verticalement les colonnes */
@media (min-width: 768px) {
  .ma-ligne-flex {
    display: flex;
    align-items: center;
  }
}

.ma-ligne-flex .et_pb_image img{
width: 100%;
height: 100%;
object-fit: cover;
}

/* Mobile : inversion optionnelle sur .ma-ligne-flex */
@media (max-width: 767px) {
  .ma-ligne-flex.inverser-mobile {
    display: flex;
    flex-direction: column-reverse;
  }
}

/* =========================================================
   IMAGE MODULE — FULL HEIGHT COLUMN (cover)
   Classe appliquée directement sur le module Image
   Exemple : pa-full-height-image-column
   ---------------------------------------------------------
   - Desktop : image remplit toute la colonne, recadrée cover
   - Mobile  : image redevient fluide (hauteur auto)
   ========================================================= */

.pa-full-height-image-column {
  height: 100%;
}

.pa-full-height-image-column .et_pb_image_wrap {
  height: 100%;
}

.pa-full-height-image-column img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* recadrage façon background cover */
}

/* -------- Responsive -------- */
@media (max-width: 980px) {
  .pa-full-height-image-column,
  .pa-full-height-image-column .et_pb_image_wrap {
    height: auto; /* image reprend sa hauteur naturelle */
  }
  .pa-full-height-image-column img {
    height: auto;
    object-fit: contain; /* ou "cover" si tu veux garder le recadrage même en mobile */
  }
}


/* =========================
   GALERIE VIP
   ========================= */

.vip-gallery-wrapper {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 20px;
  margin-bottom: 30px;
}

.vip-gallery-wrapper > a {
  display: block;
  height: 100%;
}

.vip-gallery-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}

.vip-gallery-small-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  height: 100%;
}

/* Mobile : passage en pile verticale */
@media (max-width: 767px) {
  .vip-gallery-wrapper {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .vip-gallery-wrapper > a,
  .vip-gallery-small-grid {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
  }

  .vip-gallery-small-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .vip-gallery-small-grid a img {
    aspect-ratio: 1 / 1;
    border-radius: 12px;
  }
}

/* =========================================================
   ICÔNES AVANTAGES — v2025-09-30.5
   Uniformisation des espacements (mobile/tablette)
   ========================================================= */

/* --------- Desktop / tablette par défaut --------- */
.vip-offer-icons{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  align-items:flex-start;
  column-gap:2.5rem;
  row-gap:1.25rem;
  margin-top:1.25rem;
}

.vip-offer-icons .icon-block{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:0.9rem;
  margin:0;
  padding:0;
}

.vip-offer-icons .icon-block img{
  width:40px;
  height:auto;
  display:block;
}

/* --------- Mobile & tablette (≤ 980px) --------- */
@media (max-width:980px){

  /* 1) Conteneur en GRID → row-gap uniforme et insensible au collapse */
  .vip-offer-icons{
    display:grid !important;
    grid-auto-rows:auto;
    row-gap:14px !important;            /* ← écart identique 1↔2 et 2↔3 */
    column-gap:0 !important;
    gap:14px 0 !important;
    margin-top:0 !important;            /* supprime le 12px vu en devtools */
  }

  /* 2) Purge des marges/paddings sur TOUT enfant direct éventuel (wrappers Divi) */
  .vip-offer-icons > *{
    margin:0 !important;
    padding:0 !important;
  }

  /* 3) Mise en forme des lignes (si l’enfant est bien .icon-block) */
  .vip-offer-icons .icon-block{
    display:flex !important;
    align-items:center;
    gap:0.65rem !important;             /* espace icône/texte */
  }

  .vip-offer-icons .icon-block img{
    width:28px !important;
  }

  /* 4) Neutralise les marges typographiques internes (p, h*, etc.) */
  .vip-offer-icons .icon-block *{
    margin:0 !important;
    line-height:1.3 !important;
  }
}

/* =========================================================
   SECTION 3 — Colonne gauche (texte + liste)
   v2025-09-30.3
   Cible : .vip-left-column (+ .vip-hotels-list)
   ========================================================= */

/* ---------- Variables locales ---------- */
.vip-left-column{
  --vip-heading:#127257;   /* vert titres */
  --vip-text:#4b4b4a;      /* texte courant */
  --vip-bullet:#c7a148;    /* puce or */
}

/* ---------- Titre H2 ---------- */
.vip-left-column h2{
  margin:0 0 12px 0;
  color:var(--vip-heading);
  line-height:1.25;
  /* Desktop capé à 32px max (validé) */
  font-size:clamp(24px, 1.2vw + 18px, 32px);
  letter-spacing:0;
}

/* ---------- Paragraphes ---------- */
.vip-left-column p{
  margin:0 0 12px 0;
  color:var(--vip-text);
  line-height:1.7;
}

.vip-left-column strong{
  color:#2b2b2a;
  font-weight:700;
}

/* ---------- Bloc "Les atouts" ---------- */
.vip-left-column .vip-hotels-list{
  margin-top:18px;
  padding-top:12px;
  border-top:1px solid rgba(0,0,0,0.08);
}

.vip-left-column .vip-hotels-list h3{
  margin:0 0 10px 0;
  font-size:20px;
  line-height:1.3;
  color:var(--vip-heading);
}

.vip-left-column .vip-hotels-list ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  row-gap:6px;
}

.vip-left-column .vip-hotels-list li{
  position:relative;
  padding-left:1.4rem;
  line-height:1.6;
  color:var(--vip-text);
}

.vip-left-column .vip-hotels-list li::before{
  content:"";
  position:absolute;
  left:0; top:0.72em;
  width:0.5rem; height:0.5rem;
  border-radius:999px;
  background:var(--vip-bullet);
  box-shadow:0 0 0 2px rgba(199,161,72,0.22);
}

/* ---------- Responsive (≤ 980px) ---------- */
@media (max-width:980px){
  .vip-left-column h2{
    margin-bottom:10px;
    font-size:clamp(24px, 3.6vw + 10px, 30px); /* mobile/tablette */
    line-height:1.25;
  }
  .vip-left-column p{
    margin-bottom:10px;
    line-height:1.65;
  }
  .vip-left-column .vip-hotels-list{
    margin-top:14px;
    padding-top:10px;
  }
  .vip-left-column .vip-hotels-list h3{
    font-size:18px;
    margin-bottom:8px;
  }
  .vip-left-column .vip-hotels-list ul{ row-gap:5px; }
  .vip-left-column .vip-hotels-list li{
    padding-left:1.2rem;
    line-height:1.55;
  }
  .vip-left-column .vip-hotels-list li::before{
    top:0.7em; width:0.45rem; height:0.45rem;
  }
}

/* Empêche les symboles d’étoiles d’augmenter l’interligne si présents */
.vip-left-column h2 .star,
.vip-left-column h2 .etoile{ font-size:0.92em; vertical-align:baseline; }


/* =========================================================
   SECTION 3 — Enchaînement de deux blocs .vip-left-column
   v2025-09-30.4
   Objectif : aérer le 2e H2 (éviter qu'il colle à la liste précédente)
   ========================================================= */

/* Desktop / tablette */
.vip-left-column + .vip-left-column{
  margin-top: 28px;                         /* espace entre les deux blocs */
  padding-top: 14px;                        /* petit souffle avant le H2 */
  border-top: 1px solid rgba(0,0,0,0.08);   /* séparation subtile */
}

/* Si un H2 arrive directement en tête du second bloc,
   on garantit aussi sa marge haute pour éviter tout collage */
.vip-left-column + .vip-left-column h2{
  margin-top: 6px;                          /* léger écart interne */
}

/* Mobile (≤ 980px Divi) : un peu plus compact */
@media (max-width:980px){
  .vip-left-column + .vip-left-column{
    margin-top: 20px;
    padding-top: 10px;
    border-top: 1px solid rgba(0,0,0,0.08);
  }
  .vip-left-column + .vip-left-column h2{
    margin-top: 4px;
  }
}

/* =========================================================
   OFFRES – COLONNE DROITE (avantages, prix, contact)
   v2025-09-30.11 — titres/liens 400 + contact aligné
   ========================================================= */

.vip-sidebar-column{
  --vip-green:#007a53;
  --vip-gold:#c7a148;
  --vip-cream:#faf8f2;
  --vip-text:#4b4b4a;
  --radius:18px;
  --shadow:0 2px 8px rgba(0,0,0,.06);
}

/* Wrapper colonne */
.vip-sidebar-column{
  display:flex;
  flex-direction:column;
  gap:24px;
  margin-top:0;
}

/* ===== Avantages ===== */
.vip-benefits-box{
  background:var(--vip-cream);
  color:var(--vip-text);
  padding:24px;
  border-radius:var(--radius);
  font:400 17px/1.65 'Lora',serif;
  box-shadow:var(--shadow);
}
.vip-benefits-title{
  display:block;
  margin:0 0 10px 0;
  font:400 22px/1.25 'Frank Ruhl Libre',serif;
  color:var(--vip-text);
}
.vip-benefits-box ul{
  list-style:none; margin:0; padding:0;
  display:grid; row-gap:6px;
}
.vip-benefits-box li{
  position:relative; padding-left:1.35rem; line-height:1.6;
}
.vip-benefits-box li::before{
  content:""; position:absolute; left:0; top:.72em;
  width:.5rem; height:.5rem; border-radius:999px;
  background:var(--vip-gold); box-shadow:0 0 0 2px rgba(199,161,72,.22);
}
.vip-benefits-box p{ margin:12px 0 0 0; font-size:.92em; color:#565656; }

/* ===== Prix / infos pratiques ===== */
.vip-price-box{
  background:var(--vip-green);
  color:#fff;
  padding:24px;
  border-radius:var(--radius);
  font:400 17px/1.65 'Lora',serif;
  box-shadow:var(--shadow);
}
.vip-price{
  margin:0 0 8px 0;
  font:400 30px/1.2 'Frank Ruhl Libre',serif;
}
.vip-price-details{ margin:0 0 16px 0; }
.vip-price-box a{
  display:inline-flex; align-items:center; gap:8px;
  color:#fff; font-weight:400; text-decoration:none;
  margin:0 0 8px 0; transition:color .25s ease, opacity .25s ease;
}
.vip-price-box a:hover{ color:var(--vip-gold); }
.vip-price-box a:focus-visible{ outline:2px solid var(--vip-gold); outline-offset:2px; border-radius:6px; }

/* ===== Contact (aligné tailles) ===== */
.vip-contact-box{
  background:var(--vip-cream);
  color:var(--vip-text);
  padding:24px;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  font:400 17px/1.65 'Lora',serif;
}
.vip-contact-title-wrapper{
  display:flex; align-items:center; gap:10px; margin:0 0 10px 0;
}
.vip-contact-title-wrapper i,
.vip-contact-title-wrapper svg{
  color:var(--vip-green); font-size:22px; width:22px; height:22px;
}
.vip-contact-title{
  margin:0; color:var(--vip-text);
  font:400 22px/1.25 'Frank Ruhl Libre',serif;
}
.vip-contact-button{
  display:inline-block; margin-top:14px; padding:10px 20px;
  background:var(--vip-green); color:#fff !important; border-radius:8px;
  font:700 14px/1 'Lato',sans-serif; text-transform:uppercase; letter-spacing:.5px;
  text-decoration:none !important;
  transition:background-color .25s ease, color .25s ease, transform .08s ease;
  cursor:pointer;
}
.vip-contact-button:hover,
.vip-contact-button:focus{ background-color:#0a8b60; color:#fff !important; }
.vip-contact-button:active{ transform:scale(.98); }

/* ====================== Responsive ====================== */
@media (max-width:980px){
  .vip-sidebar-column{ gap:20px; margin-top:32px; }

  .vip-price-box, .vip-benefits-box, .vip-contact-box{
    font-size:16px; padding:22px; border-radius:16px;
  }
  .vip-price{ font:400 clamp(24px,2vw + 18px,28px)/1.2 'Frank Ruhl Libre',serif; }
  .vip-benefits-title, .vip-contact-title{ font-weight:400; font-size:20px; }
  .vip-contact-title-wrapper i, .vip-contact-title-wrapper svg{ font-size:20px; width:20px; height:20px; }
  .vip-contact-button{ font-size:13.5px; padding:10px 18px; }
}

@media (max-width:767px){
  .vip-sidebar-column{ gap:16px; margin-top:28px; }

  .vip-price-box, .vip-benefits-box, .vip-contact-box{
    font-size:15px; padding:18px; border-radius:14px;
  }
  .vip-price{ font:400 24px/1.2 'Frank Ruhl Libre',serif; }
  .vip-benefits-title, .vip-contact-title{ font-weight:400; font-size:18px; }
  .vip-contact-title-wrapper i, .vip-contact-title-wrapper svg{ font-size:18px; width:18px; height:18px; }

  .vip-contact-button{
    width:100%; text-align:center; font-size:13.5px; padding:10px 16px;
  }
}




/* =========================================================
   PAGE CONTACT
   ========================================================= */

.contact-intro p {
  margin-bottom: 5px;
}

/* ===== Encadré Assistance – Contact ===== */
.vip-contact-box-contact {
  background-color: #f8f6f1;
  border: 1px solid #c7a148;
  border-radius: 6px;
  padding: 24px;
  margin-top: 24px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
  font-size: 16px;
  line-height: 1.6;
  color: #4b4b4a;
}

.vip-contact-box-contact a {
  color: #4b4b4a;
  text-decoration: underline;
}

.vip-contact-box-contact em {
  font-style: italic;
  color: #8b8d94;
  font-size: 15px;
}

@media (max-width: 767px) {
  .vip-contact-box-contact {
    padding: 18px;
    font-size: 15px;
  }
}

/* ===== Bloc assistance générale ===== */
.vip-assistance-box {
  background-color: #ffffff;
  border: 1px solid #e4e4e4;
  border-radius: 12px;
  padding: 32px 40px;
  margin: 60px auto 0;
  max-width: 720px;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.vip-assistance-icon {
  margin-bottom: 16px;
}

.vip-assistance-icon i {
  color: #c7a148;
  font-size: 36px;
}

.vip-assistance-text {
  font-size: 17px;
  color: #4b4b4a;
  line-height: 1.7;
  font-family: 'Lato', sans-serif;
  margin: 0;
}

.vip-assistance-text a {
  color: #2f3a28;
  text-decoration: none;
  font-weight: 600;
}

.vip-assistance-text em {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  color: #8b8d94;
}

/* =========================================================
   V.I.P. Voyages — WPForms (v2025-10-02.r4)
   Fix bouton (force styles) + largeur raisonnable
   ========================================================= */

/* Wrapper (module/colonne/contener) */
.et_pb_module.vip-contact-form .wpforms-container,
.et_pb_column.vip-contact-form .wpforms-container,
.vip-contact-form.wpforms-container{
  --vip-bg:#007a53; --vip-pane:#fff; --vip-text:#4b4b4a; --vip-line:#e5e1d8;
  --vip-gold:#c7a148; --vip-radius-lg:18px; --vip-radius:14px; --vip-shadow:0 10px 28px rgba(0,0,0,.15);
  --vip-max: 720px;               /* ← largeur max carte (ajuste 660–760px selon ton goût) */
  background:var(--vip-bg); padding:28px; border-radius:var(--vip-radius-lg); box-shadow:var(--vip-shadow);
}

/* Limiter la largeur sur desktop, full width sur mobile */
@media (min-width:981px){
  .et_pb_module.vip-contact-form .wpforms-container,
  .et_pb_column.vip-contact-form .wpforms-container,
  .vip-contact-form.wpforms-container{
    max-width: var(--vip-max);
    margin-left:auto;  /* plaque à droite de la colonne */
    margin-right:0;
  }
}

/* Grille 2 colonnes */
.et_pb_module.vip-contact-form .wpforms-field-container,
.et_pb_column.vip-contact-form .wpforms-field-container,
.vip-contact-form.wpforms-container .wpforms-field-container{
  display:grid; grid-template-columns:1fr 1fr; gap:14px 18px;
}
.et_pb_module.vip-contact-form .wpforms-field,
.et_pb_column.vip-contact-form .wpforms-field,
.vip-contact-form.wpforms-container .wpforms-field{ margin:0; }
.et_pb_module.vip-contact-form .wpforms-field.half,
.et_pb_column.vip-contact-form .wpforms-field.half,
.vip-contact-form.wpforms-container .wpforms-field.half{ grid-column:auto; }
.et_pb_module.vip-contact-form .wpforms-field.full,
.et_pb_column.vip-contact-form .wpforms-field.full,
.vip-contact-form.wpforms-container .wpforms-field.full{ grid-column:1 / -1; }

/* Labels */
.et_pb_module.vip-contact-form .wpforms-field-label,
.et_pb_column.vip-contact-form .wpforms-field-label,
.vip-contact-form.wpforms-container .wpforms-field-label{
  font-weight:400; font-size:16px; color:#f7f5ef; margin:2px 0 6px;
}

/* Inputs / Textarea */
.et_pb_module.vip-contact-form input[type="text"],
.et_pb_module.vip-contact-form input[type="email"],
.et_pb_module.vip-contact-form input[type="tel"],
.et_pb_module.vip-contact-form textarea,
.et_pb_column.vip-contact-form input[type="text"],
.et_pb_column.vip-contact-form input[type="email"],
.et_pb_column.vip-contact-form input[type="tel"],
.et_pb_column.vip-contact-form textarea,
.vip-contact-form.wpforms-container input[type="text"],
.vip-contact-form.wpforms-container input[type="email"],
.vip-contact-form.wpforms-container input[type="tel"],
.vip-contact-form.wpforms-container textarea{
  width:100%; background:var(--vip-pane); border:1px solid var(--vip-line);
  border-radius:var(--vip-radius); padding:12px 14px; font-size:16px; color:var(--vip-text);
  transition:border-color .2s, box-shadow .2s, background .2s;
}

/* Select (placeholder lisible) */
.et_pb_module.vip-contact-form select,
.et_pb_column.vip-contact-form select,
.vip-contact-form.wpforms-container select{
  -webkit-appearance:none; appearance:none; display:block; width:100%;
  background:var(--vip-pane);
  border:1px solid var(--vip-line); border-radius:var(--vip-radius);
  min-height:46px; line-height:1.35;
  padding:10px 46px 10px 14px;
  font-size:16px; color:var(--vip-text);
  outline:none !important; box-shadow:none;
  background-image:
    linear-gradient(45deg, transparent 50%, #9a9994 50%),
    linear-gradient(135deg, #9a9994 50%, transparent 50%),
    linear-gradient(to right, transparent, transparent);
  background-position: calc(100% - 22px) 52%, calc(100% - 16px) 52%, 100% 0;
  background-size:6px 6px,6px 6px,2.5em 100%; background-repeat:no-repeat;
}
.et_pb_module.vip-contact-form select:focus,
.et_pb_column.vip-contact-form select:focus,
.vip-contact-form.wpforms-container select:focus{
  border-color:#dfe8e2; box-shadow:0 0 0 3px rgba(255,255,255,.25);
}
.et_pb_module.vip-contact-form ::placeholder,
.et_pb_column.vip-contact-form ::placeholder,
.vip-contact-form.wpforms-container ::placeholder{ color:#9a9994; }

/* Consentement */
.et_pb_module.vip-contact-form .wpforms-field-checkbox li,
.et_pb_column.vip-contact-form .wpforms-field-checkbox li,
.vip-contact-form.wpforms-container .wpforms-field-checkbox li{ display:flex; gap:10px; align-items:flex-start; }
.et_pb_module.vip-contact-form .wpforms-field-checkbox label,
.et_pb_column.vip-contact-form .wpforms-field-checkbox label,
.vip-contact-form.wpforms-container .wpforms-field-checkbox label{ color:#f7f5ef; line-height:1.5; }
.et_pb_module.vip-contact-form .wpforms-field-description,
.et_pb_column.vip-contact-form .wpforms-field-description,
.vip-contact-form.wpforms-container .wpforms-field-description{ color:#e8e5dc; }
.et_pb_module.vip-contact-form .wpforms-field-checkbox a,
.et_pb_column.vip-contact-form .wpforms-field-checkbox a,
.vip-contact-form.wpforms-container .wpforms-field-checkbox a{ color:#fff; text-decoration:underline; }

/* === BOUTON — force styles (Divi peut écraser) === */
.et_pb_module.vip-contact-form .wpforms-submit-container,
.et_pb_column.vip-contact-form .wpforms-submit-container,
.vip-contact-form.wpforms-container .wpforms-submit-container{
  grid-column:1 / -1; display:flex; justify-content:center; margin-top:6px;
}
.et_pb_module.vip-contact-form .wpforms-submit,
.et_pb_column.vip-contact-form .wpforms-submit,
.vip-contact-form.wpforms-container .wpforms-submit{
  appearance:none !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  background:var(--vip-gold) !important;
  background-image:none !important;
  border:0 !important; color:#fff !important;
  border-radius:999px !important; height:48px !important;
  padding:0 24px !important; font-size:16px !important; line-height:1 !important;
  text-decoration:none !important; box-shadow:0 6px 14px rgba(199,161,72,.25) !important;
  transition:transform .1s, filter .2s, box-shadow .2s !important;
}
.et_pb_module.vip-contact-form .wpforms-submit:hover,
.et_pb_column.vip-contact-form .wpforms-submit:hover,
.vip-contact-form.wpforms-container .wpforms-submit:hover{ filter:brightness(.95) !important; }
.et_pb_module.vip-contact-form .wpforms-submit:active,
.et_pb_column.vip-contact-form .wpforms-submit:active,
.vip-contact-form.wpforms-container .wpforms-submit:active{ transform:translateY(1px) !important; }

/* États d'erreur / succès */
.et_pb_module.vip-contact-form .wpforms-error,
.et_pb_column.vip-contact-form .wpforms-error,
.vip-contact-form.wpforms-container .wpforms-error{
  border-color:#cc2b2b !important; box-shadow:0 0 0 3px rgba(204,43,43,.12) !important;
}
.et_pb_module.vip-contact-form .wpforms-form-errors,
.et_pb_column.vip-contact-form .wpforms-form-errors,
.vip-contact-form.wpforms-container .wpforms-form-errors,
.et_pb_module.vip-contact-form .wpforms-error-container,
.et_pb_column.vip-contact-form .wpforms-error-container,
.vip-contact-form.wpforms-container .wpforms-error-container{
  background:#fff5f5; color:#7a1f1f; border:1px solid #f0c7c7;
  padding:10px 14px; border-radius:12px; margin:6px 0 12px;
}
.et_pb_module.vip-contact-form .wpforms-confirmation-container,
.et_pb_column.vip-contact-form .wpforms-confirmation-container,
.vip-contact-form.wpforms-container .wpforms-confirmation-container{
  background:#f0fbf6; color:#114b36; border:1px solid #cde7db;
  padding:12px 14px; border-radius:12px;
}

/* Mobile */
@media (max-width:767px){
  .et_pb_module.vip-contact-form .wpforms-container,
  .et_pb_column.vip-contact-form .wpforms-container,
  .vip-contact-form.wpforms-container{ padding:22px; max-width:none; }
  .et_pb_module.vip-contact-form .wpforms-field-container,
  .et_pb_column.vip-contact-form .wpforms-field-container,
  .vip-contact-form.wpforms-container .wpforms-field-container{ grid-template-columns:1fr; gap:12px; }
}

/* === Ajustes fins – V.I.P. Voyages (patch) === */

/* 1) Carte un peu plus compacte sur desktop */
@media (min-width:981px){
  .et_pb_module.vip-contact-form .wpforms-container,
  .et_pb_column.vip-contact-form .wpforms-container,
  .vip-contact-form.wpforms-container{
    --vip-max: 680px;          /* ← passe à 700/720 si tu veux un poil plus large */
    padding: 26px 28px;        /* haut/bas un chouïa réduits */
  }
}

/* 2) Gaps un peu plus aérés entre lignes */
.et_pb_module.vip-contact-form .wpforms-field-container,
.et_pb_column.vip-contact-form .wpforms-field-container,
.vip-contact-form.wpforms-container .wpforms-field-container{
  row-gap: 16px;               /* ↑ vertical */
  column-gap: 18px;            /* → horizontal (inchangé) */
}

/* 3) Bouton : ombre plus dorée (moins “halo vert”) + petit espace au-dessus */
.et_pb_module.vip-contact-form .wpforms-submit-container,
.et_pb_column.vip-contact-form .wpforms-submit-container,
.vip-contact-form.wpforms-container .wpforms-submit-container{
  margin-top: 10px;
}
.et_pb_module.vip-contact-form .wpforms-submit,
.et_pb_column.vip-contact-form .wpforms-submit,
.vip-contact-form.wpforms-container .wpforms-submit{
  box-shadow: 0 8px 18px rgba(199,161,72,.22) !important; /* ombre plus neutre */
}

/* 4) Consentement : alignement et lisibilité */
.et_pb_module.vip-contact-form .wpforms-field-checkbox li,
.et_pb_column.vip-contact-form .wpforms-field-checkbox li,
.vip-contact-form.wpforms-container .wpforms-field-checkbox li{
  align-items: center;          /* coche verticalement centrée */
}
.et_pb_module.vip-contact-form .wpforms-field-description,
.et_pb_column.vip-contact-form .wpforms-field-description,
.vip-contact-form.wpforms-container .wpforms-field-description{
  margin-top: 6px;
  font-size: 14px;
  opacity: .9;
}

/* 5) Focus des champs : liseré clair + lueur douce (plus premium) */
.et_pb_module.vip-contact-form input:focus,
.et_pb_module.vip-contact-form select:focus,
.et_pb_module.vip-contact-form textarea:focus,
.et_pb_column.vip-contact-form input:focus,
.et_pb_column.vip-contact-form select:focus,
.et_pb_column.vip-contact-form textarea:focus,
.vip-contact-form.wpforms-container input:focus,
.vip-contact-form.wpforms-container select:focus,
.vip-contact-form.wpforms-container textarea:focus{
  border-color: #dfe8e2 !important;
  box-shadow: 0 0 0 3px rgba(255,255,255,.22) !important;
}


/* =========================================================
   COLONNE GAUCHE – INFOS PRATIQUES (Contact)
   ========================================================= */

/* Bloc coordonnées (texte global) */
.contact-infos {
  background-color: #ffffff;
  padding: 30px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  margin-bottom: 25px;
}

/* Titre colonne gauche (Nos coordonnées) */
.contact-infos h2 {
  font-family: 'Frank Ruhl Libre', serif;
  font-size: 26px;
  font-weight: 400 !important; /* Poids normal */
  color: #343f2f;
  margin-bottom: 20px;
}

/* Texte */
.contact-infos p {
  font-family: 'Lato', sans-serif;
  font-size: 17px;
  color: #4b4b4a;
  line-height: 1.7em;
  margin-bottom: 15px;
}

/* Liens dans le texte */
.contact-infos a {
  color: #c7a148;
  text-decoration: none;
}
.contact-infos a:hover {
  text-decoration: underline;
}

/* Bloc assistance */
.contact-assistance {
  background-color: #faf8f2;
  border: 1px solid #e1d5b9;
  padding: 20px;
  border-radius: 10px;
  font-family: 'Lato', sans-serif;
  font-size: 15px;
  color: #4b4b4a;
  margin-top: 20px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.contact-assistance strong {
  font-weight: 600;
  color: #343f2f;
}

/* =========================================================
   GLOBAL FOOTER – NEWSLETTER
   ========================================================= */

/* ===== Titres ===== */
.newsletter-title {
  font-family: 'Frank Ruhl Libre', serif;
  font-size: 34px;
  text-align: center;
  color: #2b2b2b;
  margin-bottom: 12px;
  font-weight: 500; /* corrigé */
}

.newsletter-subtitle {
  text-align: center;
  font-family: 'Lora', serif;
  font-size: 16px;
  color: #6c6c6c;
  margin-bottom: 24px;
  font-style: italic;
}

/* ===== Wrapper ===== */
.newsletter-wrapper {
  max-width: 600px;
  margin: 0 auto;
  font-family: 'Lato', sans-serif;
  box-sizing: border-box;
}

/* ===== Ligne email + bouton ===== */
.newsletter-row {
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
}

.newsletter-row input[type="email"] {
  flex: 1;
  padding: 14px 16px;
  border: 1px solid #dad7d2;
  border-radius: 18px; /* cohérent avec le site */
  font-size: 15px;
  box-sizing: border-box;
  transition: border 0.3s ease;
}

.newsletter-row input[type="email"]:focus {
  border-color: #c7a148;
  outline: none;
}

.newsletter-row button {
  background: #c7a148;
  color: #ffffff;
  border: none;
  padding: 14px 28px;
  border-radius: 18px; /* cohérent avec le site */
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.newsletter-row button:hover {
  background: #007a53; /* vert foncé VIP */
  color: #ffffff;
}

/* ===== Consentement ===== */
.newsletter-consent {
  font-size: 14px;
  color: #2b2b2b;
  line-height: 1.6em;
  margin: 6px 0 0 0;
  display: flex;
  align-items: flex-start;
}

.newsletter-consent input[type="checkbox"] {
  margin-right: 8px;
  margin-top: 3px;
  flex-shrink: 0;
}

.newsletter-consent span {
  display: inline;
}

.newsletter-consent a {
  color: #007a53 !important;
  text-decoration: underline;
  margin-left: 4px;
  white-space: nowrap;
}

.newsletter-consent a:hover {
  color: #c7a148 !important;
}

/* ===== Responsive mobile ===== */
@media (max-width: 767px) {
  .newsletter-row {
    flex-direction: column;
  }
  
  .newsletter-row button {
    width: 100%;
    text-align: center;
  }
}

/* ===== SINGLE ARTICLE — V.I.P. Voyages (reset final) ===== */

/* Page sur fond blanc */
body{ background:#ffffff; }

/* ---------- SECTION 1 : HERO (breadcrumb + image + titre/meta) ---------- */
.single-hero.light{
  background:#ffffff;
  color:#343f2f;
  text-align:center;   /* centre uniquement les éléments du HERO */
  padding:56px 16px 32px;
  /* border-bottom supprimé */
}

/* Breadcrumb sobre, aligné GAUCHE et calé sur la largeur du hero */
.vip-breadcrumb--light{
  max-width:960px;                   /* même largeur visuelle que l’image */
  margin:0 auto 1rem;
  text-align:left;
  color:#343f2f;
  line-height:1.1;
}
.vip-breadcrumb--light,
.vip-breadcrumb--light .rank-math-breadcrumb,
.vip-breadcrumb--light .wp-block-rank-math-breadcrumb{
  display:block;                     /* bloc simple, pas de pilule */
  padding:0;
  background:transparent;
  border-radius:0;
  font-size:.9rem;
}
.vip-breadcrumb--light .separator,
.vip-breadcrumb--light .sep{         /* compatible avec 2 notations */
  opacity:.55; margin:0 .35rem;
}
.vip-breadcrumb--light a{
  color:#343f2f; text-decoration:none; border-bottom:1px solid transparent;
}
.vip-breadcrumb--light a:hover{ border-color:#c7a148; }

/* ===== HERO image robuste (Divi Image module) ===== */
/* Ajouter la classe 'hero-thumb' sur le MODULE IMAGE (pas ailleurs) */
.hero-thumb{
  width:960px;
  max-width:90vw;
  margin:0 auto 1.5rem;

  /* Hauteur stable (anti-flottement) */
  aspect-ratio:16/9;

  /* Style visuel */
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,.08);
  display:block;
}

/* Wrappers internes Divi */
.hero-thumb .et_pb_image_wrap,
.hero-thumb picture{ display:block; width:100%; height:100%; }

/* L'image remplit le conteneur */
.hero-thumb img{
  display:block; width:100%; height:100%; object-fit:cover;
}

/* Responsive */
@media (max-width:980px){
  .hero-thumb{ width:100%; max-width:94vw; }
}

/* Titre & méta (module “Titre de la publication”) */
.single-hero.light .et_pb_post_title .et_pb_module_header{
  margin-bottom:.4rem; font-weight:700; color:#1f2225;
}
.single-hero.light .et_pb_post_title .et_pb_title_meta_container{
  opacity:1; font-size:.95rem; color:#8b8d94;
}

/* ---------- SECTION 2 : CONTENU ---------- */
.et_pb_post_content{
  text-align:left;
  max-width:820px;                   /* largeur confortable */
  margin:1.5rem auto;                /* marge réduite */
  font-size:17px;
  line-height:1.7;
  color:#4b4b4a;
}
.et_pb_post_content h2,
.et_pb_post_content h3{ color:#343f2f; margin-top:1.6em; }
.et_pb_post_content figure{ margin:1.2em 0; }
.et_pb_post_content figcaption{ color:#8b8d94; font-size:.92rem; margin-top:.35em; text-align:center; }
.et_pb_post_content a{ color:#c7a148; }
.et_pb_post_content a:hover{ text-decoration:underline; }

/* ---------- SECTION 3 : "Découvrez également" (cartes Blog) ---------- */
.related-posts{ background:#fafafa; padding:60px 0; }
.related-posts h2{
  text-align:center; margin-bottom:2rem; font-size:1.8rem; color:#1f2225;
}

/* Carte */
.related-posts .et_pb_blog_grid .et_pb_post{
  border:1px solid #eee;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  transition:transform .2s ease, box-shadow .2s ease;
}
.related-posts .et_pb_blog_grid .et_pb_post:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(0,0,0,.08);
}

/* Vignette 16:9 anti-CLS + radius 6px (alignée au hero) */
.related-posts .entry-featured-image-url{
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:6px;
}
.related-posts .entry-featured-image-url img,
.related-posts .entry-featured-image-url picture{
  width:100%; height:100%;
  object-fit:cover; display:block;
}

/* Titres + méta */
.related-posts .entry-title{
  font-size:1.1rem; line-height:1.3;
  margin:.65rem .85rem .2rem;
  color:#1f2225;
  font-weight:500;                   /* renforcé pour lisibilité */
}
.related-posts .entry-title a{
  color:#1f2225;
  text-decoration:none;       /* pas de souligné */
  border-bottom:none;         /* pas de ligne */
  transition:color .2s ease;
}
.related-posts .entry-title a:hover{
  color:#c7a148;              /* accent au hover */
  text-decoration:none;       /* reste sans souligné */
}
.related-posts .post-meta{
  margin:0 .85rem .85rem;
  font-size:.85rem;
  color:#8b8d94;
}

/* Lien "Découvrir" en texte simple (global modules Blog) */
.et_pb_blog_grid .more-link,
.et_pb_posts .more-link{
  display:inline-block;
  margin:.5rem .85rem 1rem;
  padding:0;                  /* pas de padding bouton */
  border:none;                /* pas de bordure ni pilule */
  border-radius:0;
  background:none;
  color:#c7a148;              /* couleur accent au repos */
  font-size:.95rem;
  font-weight:600;
  text-decoration:none;
  transition:color .2s ease;
}
.et_pb_blog_grid .more-link:hover,
.et_pb_posts .more-link:hover{
  color:#1f2225;              /* passe en noir au hover */
  text-decoration:underline;  /* souligné discret au hover */
}

/* Gap gracieux entre colonnes (selon Salvattore) */
.related-posts .et_pb_salvattore_content[data-columns] .column{ gap:18px; }

/* Bloc "Exemples de séjours Beachcomber" */
.vip-hotels-list {
  margin-top: 24px;   /* espace avant le titre */
}

.vip-hotels-list p {
  margin: 12px 0;     /* espace vertical entre chaque hôtel */
}

/* ===== Bloc Projets similaires (Base commune) ===== */
.vip-related-wrapper {
  padding: 40px 0;
  margin-top: 60px;
}

.vip-related-title {
  text-align: center;
  font-size: 32px;
  line-height: 1.2;
  margin: 0 0 40px;
  color: #343f2f;
  font-family: "Frank Ruhl Libre", serif;
  font-weight: 500;
}

/* Grille responsive */
.vip-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
@media (max-width: 980px) {
  .vip-related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .vip-related-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== VARIANTE 1 : Classic ===== */
.vip-related-grid.classic .vip-related-card {
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  transition: box-shadow .3s ease;
}
.vip-related-grid.classic .vip-related-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}
.vip-related-grid.classic .vip-related-thumb img {
  width: 100%;
  height: auto;
  display: block;
}
.vip-related-grid.classic .vip-related-h3 {
  font-size: 18px;
  font-weight: 500;
  margin: 14px 12px 18px;
  text-align: center;
  font-family: "Frank Ruhl Libre", serif;
}
.vip-related-grid.classic .vip-related-h3 a {
  color: #222;
  text-decoration: none;
  transition: color .3s ease;
}
.vip-related-grid.classic .vip-related-h3 a:hover {
  color: #007a53; /* Vert VIP Voyages */
}

/* ===== VARIANTE 2 : Overlay ===== */
.vip-related-grid.overlay .vip-related-card {
  position: relative; /* essentiel pour que le titre se plaque sur l’image */
  border-radius: 6px;
  overflow: hidden;
  background: #000;
}
.vip-related-grid.overlay .vip-related-thumb img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .4s ease;
}
.vip-related-grid.overlay .vip-related-card:hover .vip-related-thumb img {
  transform: scale(1.05);
}
.vip-related-grid.overlay .vip-related-h3 {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 16px;
  font-size: 18px;
  font-family: "Frank Ruhl Libre", serif;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,0.6), rgba(0,0,0,0));
  text-align: left;
  transition: color .3s ease;
}
.vip-related-grid.overlay .vip-related-h3 a {
  color: #fff;
  text-decoration: none;
}
.vip-related-grid.overlay .vip-related-h3 a:hover {
  color: #c7a148; /* Doré VIP Voyages */
}

/* ============================
   FIL D'ARIANE Rank Math (V.I.P. Voyages)
   ============================ */
.rank-math-breadcrumb {
  font-size: 14.5px;       /* plus petit et élégant */
  line-height: 1.6;
  color: #555;
  font-family: "Lato", sans-serif;
  margin: 0 0 20px;
}

.rank-math-breadcrumb a {
  color: #c7a148;          /* doré VIP Voyages */
  text-decoration: none;
  font-weight: 400;
  transition: color 0.2s ease-in-out;
}

.rank-math-breadcrumb a:hover {
  color: #007a53;          /* vert VIP en hover */
}

.rank-math-breadcrumb .separator {
  margin: 0 8px;
  color: #aaa;
  font-size: 13px;
  content: "›";            /* chevron fin */
}

/* ============================
   Responsive (mobile < 767px)
   ============================ */
@media (max-width: 767px) {
  .rank-math-breadcrumb {
    font-size: 13px;       /* encore plus discret */
    line-height: 1.4;
  }
  .rank-math-breadcrumb .separator {
    margin: 0 6px;
    font-size: 12px;
  }
}


/* ============================================================
   CARTES FILTERGRID — VERSION OPTIMISÉE (VIP Voyages)
   ============================================================ */

/* === Image : confinement et zoom === */
.dp-dfg-image {
  overflow: hidden; /* empêche l’image de déborder */
}

.dp-dfg-featured-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0 !important;  /* pas d’arrondi direct sur l’image */
  transition: transform 0.35s ease-in-out !important;
  transform-origin: center center;
}

/* Zoom au survol */
.dp-dfg-image:hover .dp-dfg-featured-image {
  transform: scale(1.05) !important; /* zoom doux et maîtrisé */
}

/* === Carte homogène (image + texte) === */
.dp-dfg-item { 
  border-radius: 12px;                        /* arrondis globaux */
  overflow: hidden;                           /* coupe ce qui dépasse */
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);    /* ombre discrète */
  background: #fff;                           /* fond uni derrière le texte */
  transition: box-shadow 0.3s ease;           /* animation uniquement sur l’ombre */
}

/* Ombre renforcée au survol (élégant, sans rebond) */
.dp-dfg-item:hover {
  box-shadow: 0 6px 18px rgba(0,0,0,0.1);
}

/* === Contenu texte === */
.dp-dfg-content {
  padding: 16px 18px; /* respiration confortable */
}

/* ============================================================
   RESPONSIVE ADAPTATIONS
   ============================================================ */

/* Tablette (768px–980px) : ombre plus discrète */
@media (max-width: 980px) and (min-width: 768px) {
  .dp-dfg-item {
    border-radius: 10px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.05);
  }
  .dp-dfg-item:hover {
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  }
}

/* Mobile (<767px) : flat design + espacement */
@media (max-width: 767px) {
  .dp-dfg-item {
    border-radius: 8px;
    box-shadow: none;
    background: #fff;
  }
  .dp-dfg-item:hover {
    box-shadow: none;
  }

  /* Forcer l’espacement vertical */
  .dp-dfg-items {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;  /* espace entre les cartes */
  }
}

/* ============================================================
   FILTERGRID — Ombres identiques aux blurbs (sans rebond)
   ============================================================ */

/* Carte : ombre par défaut identique aux blurbs */
.dp-dfg-item{
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.06) !important;
  transition:box-shadow .25s ease;   /* uniquement l’ombre, pas de transform */
}

/* Hover : même ombre qu’un blurb, sans translate */
.dp-dfg-item:hover{
  box-shadow:0 12px 30px rgba(0,0,0,.10) !important;
}

/* L’image reprend les coins supérieurs de la carte (radius d’origine respecté) */
.dp-dfg-image{
  overflow:hidden;
  border-top-left-radius:inherit !important;
  border-top-right-radius:inherit !important;
}
.dp-dfg-featured-image{ border-radius:0 !important; }


/* =========================================================
   TITRES AVEC ICÔNE
   ========================================================= */

.vip-heading-with-icon {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: "Frank Ruhl Libre", serif;
  font-size: 32px;
  line-height: 1.3;
  color: #007a53;
  margin: 0 0 20px;
}

.vip-heading-with-icon .vip-heading-icon {
  width: 48px;
  height: auto;
  flex-shrink: 0;
  display: block;
  position: relative;
  top: 8px; /* ajusté pour un meilleur calage visuel */
}

/* ===== Tablette (≤980px) ===== */
@media (max-width: 980px) {
  .vip-heading-with-icon {
    font-size: 28px;
    gap: 14px;
  }
  .vip-heading-with-icon .vip-heading-icon {
    width: 40px;
    top: 5px;
  }
}

/* ===== Mobile (≤767px) ===== */
@media (max-width: 767px) {
  .vip-heading-with-icon {
    font-size: 24px;
    gap: 10px;
  }
  .vip-heading-with-icon .vip-heading-icon {
    width: 32px;
    top: 3px;
  }
}


/* =========================================================
   VIP Team — cartes identiques, images carrées visibles
   Scope: .vip-team
   v2025-09-30.safe-square.clean
   ========================================================= */

/* ---------- Variables (desktop par défaut) ---------- */
.vip-team{
  --card-radius: 10px;
  --shadow: 0 8px 24px rgba(0,0,0,.06);
  --shadow-h: 0 12px 30px rgba(0,0,0,.10);
  --text:#4b4b4a;
  --muted:#8b8d94;
  --border:#e6e2d8;

  /* Espacements carte / icône */
  --gap-role-icon: 18px;   /* espace entre fonction & icône */
  --card-pad-bottom: 38px; /* air sous l’icône */

  /* Mobile tweaks (redéfinis plus bas dans les @media) */
  --mobile-row-pad: 16px;
  --mobile-card-max: 560px;
}

/* ---------- Carte ---------- */
.vip-team .et_pb_blurb.vip-team-card{
  background:#fff;
  border-radius:var(--card-radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:0 0 var(--card-pad-bottom) 0;
  transition:.25s transform,.25s box-shadow;
}
.vip-team .et_pb_blurb.vip-team-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-h);
}

/* ---------- Image (sources carrées) ---------- */
/* Annule toute ancienne logique de ratio-box/absolute */
.vip-team .vip-team-card .et_pb_main_blurb_image{
  margin:0 !important;
  line-height:0 !important;
  position:static !important;
  height:auto !important;
  overflow:hidden;
}
.vip-team .vip-team-card .et_pb_main_blurb_image::before{
  content:none !important;
  display:none !important;
}
.vip-team .vip-team-card .et_pb_main_blurb_image .et_pb_image_wrap{
  position:static !important;
  width:100% !important;
  height:auto !important;
}
.vip-team .vip-team-card .et_pb_main_blurb_image > img,
.vip-team .vip-team-card .et_pb_main_blurb_image .et_pb_image_wrap > img,
.vip-team .vip-team-card .et_pb_main_blurb_image picture,
.vip-team .vip-team-card .et_pb_main_blurb_image picture > img{
  position:static !important;
  display:block !important;
  width:100% !important;
  height:auto !important;     /* sources 800x800 => rendu carré naturel */
  max-width:100% !important;
  aspect-ratio:1/1;           /* ceinture + bretelles si Divi injecte des styles */
  object-fit:cover;
  object-position:center 20%;
}

/* ---------- Typo & contenus ---------- */
.vip-team .vip-team-card .et_pb_module_header{
  margin:14px 16px 6px;
  text-align:center;
  font-family:'Frank Ruhl Libre','Lora',serif;
  font-weight:500;
  font-size:20px;
  line-height:1.2;
  color:var(--text);
}
.vip-team .vip-team-card .et_pb_blurb_description{
  margin:0;
  padding:0 16px 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  flex:1;
}
.vip-team .vip-team-role{
  margin:0 0 var(--gap-role-icon);
  font-family:'Lato',sans-serif;
  font-size:15px;
  line-height:1.6;
  color:var(--muted);
}

/* ---------- Icône e-mail ---------- */
.vip-team .vip-team-actions{ margin-top:auto; }
.vip-team .vip-team-mail{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid var(--border);
  text-decoration:none;
  margin-bottom:4px; /* évite le contact avec le bord bas */
}
.vip-team .vip-mail-ico{
  display:block;
  width:22px;
  height:22px;
  background-repeat:no-repeat;
  background-size:contain;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23007a53' d='M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6zm2 .4V6h16v.4l-8 5.2-8-5.2zM20 18V9.3l-7.4 4.8a1.5 1.5 0 0 1-1.6 0L4 9.3V18h16z'/></svg>");
}
.vip-team .vip-team-mail:hover .vip-mail-ico{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23c7a148' d='M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6zm2 .4V6h16v.4l-8 5.2-8-5.2zM20 18V9.3l-7.4 4.8a1.5 1.5 0 0 1-1.6 0L4 9.3V18h16z'/></svg>");
}

/* ---------- Ligne 2 centrée, même largeur que ligne 1 ---------- */
@media (min-width:981px){
  .vip-team .vip-team-row--center{
    display:flex;
    gap:32px;                /* aligne le "gutter" visuel */
    justify-content:center;
    align-items:stretch;
  }
  .vip-team .vip-team-row--center .et_pb_column{
    padding:0 !important;
    margin:0 !important;
    flex:0 0 33.333%;
  }
  .vip-team .vip-team-row--center .et_pb_column:nth-child(1),
  .vip-team .vip-team-row--center .et_pb_column:nth-child(4){
    flex:0 0 0 !important;
    width:0 !important;
    display:none !important;
  }
}

/* ---------- Mobile / Tablet polish ---------- */
@media (max-width:980px){
  .vip-team .et_pb_row{
    padding-left:var(--mobile-row-pad) !important;
    padding-right:var(--mobile-row-pad) !important;
  }
  .vip-team .et_pb_blurb.vip-team-card{
    max-width:var(--mobile-card-max);
    width:100%;
    margin:0 auto 18px;
    border-radius:18px;
  }
  .vip-team .et_pb_row + .et_pb_row{ margin-top:24px !important; }

  /* Icône plus grande sur mobile */
  .vip-team .vip-team-mail{
    width:44px; height:44px; border-width:2px;
  }
  .vip-team .vip-mail-ico{ width:26px; height:26px; }

  /* Ajuste l’air quand l’icône grandit */
  .vip-team{
    --gap-role-icon: 18px;
    --card-pad-bottom: 36px;
  }

  /* Ligne 2 : retour au layout Divi */
  .vip-team .vip-team-row--center{ display:block; }
}

/* ---------- Mobile étroit (≤ 480px) ---------- */
@media (max-width:480px){
  .vip-team{
    --mobile-row-pad: 18px;
    --mobile-card-max: 480px;
    --gap-role-icon: 20px;
    --card-pad-bottom: 40px;
  }
  .vip-team .vip-team-mail{ width:48px; height:48px; }
  .vip-team .vip-mail-ico{ width:28px; height:28px; }
}

/* =========================================================
   VIP Offers — 2 × 3 cartes, images 4:3 visibles
   Scope: .vip-offers
   v2025-09-30.offers.safe
   ========================================================= */

/* Variables */
.vip-offers{
  --card-radius: 10px;
  --shadow: 0 8px 24px rgba(0,0,0,.06);
  --shadow-h: 0 12px 30px rgba(0,0,0,.10);
  --text:#4b4b4a; --muted:#8b8d94; --border:#e6e2d8;

  --gap-title: 10px;      /* espace titre/texte */
  --row-gap: 28px;        /* espace entre les 2 lignes */
  --mobile-row-pad: 16px; /* padding latéral rows mobile */
  --mobile-card-max: 560px;
}

/* Carte */
.vip-offers .et_pb_blurb.offer-card{
  background:#fff; border-radius:var(--card-radius);
  box-shadow:var(--shadow);
  overflow:hidden; display:flex; flex-direction:column;
  padding:0 0 18px 0;
  transition:.25s transform,.25s box-shadow;
}
.vip-offers .et_pb_blurb.offer-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-h); }

/* --------- IMAGE (safe : pas d’absolute, pas de ::before) --------- */
.vip-offers .offer-card .et_pb_main_blurb_image{
  margin:0 !important; line-height:0 !important;
  position:static !important; height:auto !important; overflow:hidden;
}
.vip-offers .offer-card .et_pb_main_blurb_image::before{ content:none !important; display:none !important; }
.vip-offers .offer-card .et_pb_main_blurb_image .et_pb_image_wrap{
  position:static !important; width:100% !important; height:auto !important;
}
.vip-offers .offer-card .et_pb_main_blurb_image > img,
.vip-offers .offer-card .et_pb_main_blurb_image .et_pb_image_wrap > img,
.vip-offers .offer-card .et_pb_main_blurb_image picture,
.vip-offers .offer-card .et_pb_main_blurb_image picture > img{
  position:static !important; display:block !important;
  width:100% !important; height:auto !important; max-width:100% !important;

  /* ratio 4:3 assuré + recadrage propre */
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 50%;
}

/* Titre & texte */
.vip-offers .offer-card .et_pb_module_header{
  margin:14px 16px var(--gap-title); text-align:center;
  font-family:'Frank Ruhl Libre','Lora',serif;
  font-weight:600; font-size:20px; line-height:1.25; color:var(--text);
}
.vip-offers .offer-card .et_pb_blurb_description{
  margin:0; padding:0 18px 0;
  text-align:center; color:var(--muted); line-height:1.65;
  flex:1; display:flex; align-items:flex-start; justify-content:center;
}

/* Espace entre les 2 rows en desktop */
@media (min-width:981px){
  .vip-offers .et_pb_row + .et_pb_row{ margin-top:var(--row-gap) !important; }
}

/* Mobile / Tablet polish */
@media (max-width:980px){
  .vip-offers .et_pb_row{ padding-left:var(--mobile-row-pad) !important; padding-right:var(--mobile-row-pad) !important; }
  .vip-offers .et_pb_blurb.offer-card{
    max-width:var(--mobile-card-max); width:100%;
    margin:0 auto 18px; border-radius:18px;
  }
  .vip-offers .et_pb_row + .et_pb_row{ margin-top:22px !important; }
}
@media (max-width:480px){
  .vip-offers{ --mobile-row-pad: 18px; --mobile-card-max: 480px; }
  .vip-offers .et_pb_blurb.offer-card{ margin:0 auto 20px; }
}

/* ==== OFFERS — titrage non gras + hauteurs homogènes ==== */
.vip-offers{
  /* ajuste ces 2 valeurs selon ton contenu */
  --offers-desc-min: 160px;   /* hauteur mini du bloc texte (desktop) */
  --offers-card-h: 400px;     /* (optionnel) hauteur totale de la carte (desktop) */
}

/* 1) Titre NON gras */
.vip-offers .offer-card .et_pb_module_header{
  font-weight:500;            /* 500 = medium, visuellement non “gras” */
}

/* 2) Bloc texte avec hauteur commune (type grid) */
@media (min-width:981px){
  .vip-offers .offer-card .et_pb_blurb_description{
    min-height: var(--offers-desc-min);
    display:flex; align-items:flex-start; justify-content:center;
  }
}

/* 3) (Optionnel) mêmes HAUTEURS DE CARTES pour toutes (desktop) */
@media (min-width:981px){
  .vip-offers .et_pb_blurb.offer-card{
    min-height: var(--offers-card-h);
  }
}

/* Mobile : un peu plus souple */
@media (max-width:980px){
  .vip-offers{
    --offers-desc-min: 0px;    /* on libère le texte en mobile */
    /* on ne fixe pas la hauteur carte pour respirer */
  }
}

/* Couleurs VIP (au cas où) */
.vip-offers{
  --vip-green:#007a53;
  --vip-gold:#c7a148;
}

/* Empilage propre du texte + lien */
.vip-offers .offer-card .et_pb_blurb_description{
  display:flex;
  flex-direction:column;   /* le lien passe sous le texte */
  align-items:center;
  justify-content:flex-start;
  text-align:center;
}

/* Paragraphe (tu voulais 5px) */
.vip-offers .offer-card .et_pb_blurb_description p{
  margin:0 0 5px;
}

/* Lien : vert VIP, non souligné ; hover/focus doré */
.vip-offers .offer-card .et_pb_blurb_description a{
  display:inline-block;
  margin-top:8px;                /* petit espace sous le texte */
  color:var(--vip-green);
  text-decoration:none;          /* jamais souligné */
  transition:color .2s ease;
}
.vip-offers .offer-card .et_pb_blurb_description a:hover,
.vip-offers .offer-card .et_pb_blurb_description a:focus{
  color:var(--vip-gold);
  text-decoration:none;          /* reste non souligné */
}
/* Option accessibilité : focus visible mais discret */
.vip-offers .offer-card .et_pb_blurb_description a:focus-visible{
  outline:2px solid var(--vip-gold);
  outline-offset:2px;
}


/* =========================================================
   ANTI-ELASTIC SCROLL (Desktop) — v2025-09-30
   Neutralise le “rubber-band” vertical + le scroll latéral
   Conserve 100% des comportements d’origine de tes modules
   ========================================================= */

@media (min-width:981px){

  /* 1) Stoppe l’overscroll et les sauts latéraux */
  html, body{
    margin:0 !important;
    width:100% !important;
    max-width:100% !important;
    overflow-x: clip !important;            /* évite la barre horizontale */
    overscroll-behavior: none !important;   /* bloque le rebond haut/bas */
    -webkit-overflow-scrolling: auto !important;
  }

  /* 2) Empêche la propagation d’overscroll dans les gros conteneurs */
  #page-container,
  .et_pb_section,
  .et_pb_row,
  .et_pb_module{
    overscroll-behavior: contain !important;
  }

  /* 3) Garde 100% largeur (au lieu de 100vw qui peut créer un débordement) */
  [style*="100vw"],
  .et_pb_fullwidth_header,
  .et_pb_slider,
  .et_pb_section_video_bg{
    width:100% !important;
    max-width:100% !important;
  }

  /* 4) Coupe tout débordement horizontal résiduel des sections */
  #page-container,
  .et_pb_section{
    overflow-x: clip !important;
  }

  /* 5) Stabilise le sticky (évite micro-jumps lors du scroll) */
  .et_fixed_nav #main-header,
  .et-fixed-header{
    transform: translateZ(0);
    will-change: transform;
  }
}

/* Optionnel : si tu veux aussi neutraliser sur tablette paysage, descends le seuil :
@media (min-width:768px){ ... mêmes règles ... }
*/

/* =========================================================
   MOBILE — Sous-menu : alignement exact + couleur
   ========================================================= */
@media (max-width:980px){
  :root{ --vip-green:#007B54; --m-pad:16px; }

  /* Niveau 1 (rappel) */
  .et_mobile_menu li a{
    display:flex; align-items:center;
    padding:10px var(--m-pad) !important;
  }
  .et_mobile_menu li.current-menu-item > a{ color:var(--vip-green) !important; }

  /* RESET du sous-menu pour enlever l'indentation Divi en % */
  .et_mobile_menu .menu-item-has-children .sub-menu{
    margin:0 !important; padding:0 !important; border:0 !important;
  }
  .et_mobile_menu .menu-item-has-children .sub-menu li{
    margin:0 !important; padding:0 !important; list-style:none !important;
  }

  /* Liens du sous-menu : même axe X que le parent */
  .et_mobile_menu .menu-item-has-children .sub-menu li a{
    display:flex; align-items:center;
    padding:10px var(--m-pad) !important;   /* ← même padding que le parent */
    text-indent:0 !important; margin-left:0 !important;
    color:var(--vip-green) !important;
    background:transparent !important;
  }
  .et_mobile_menu .menu-item-has-children .sub-menu li a:hover{
    color:var(--vip-green) !important; background:transparent !important;
  }
}

/* VIP — Mentions légales (v2025-10-02.d) */
.vip-legal{
  max-width:860px;margin:0 auto;padding:0;text-align:left;
  color:#4b4b4a;line-height:1.7;
}
.vip-legal *{box-sizing:border-box}
.vip-legal p{margin:0 0 .8rem}
.vip-legal section{margin:0}
.vip-legal section + section{margin-top:2rem}

/* Titres — poids normal */
.vip-legal h1{margin:0 0 .8rem;font-size:2rem;line-height:1.25;font-weight:400}
.vip-legal h2{margin:1.2rem 0 .6rem;font-size:1.25rem;line-height:1.3;font-weight:400}

/* Listes de définition — poids normal */
.vip-legal dl{margin:0}
.vip-legal dt{margin:1rem 0 .1rem;font-size:.92rem;letter-spacing:.02em;font-weight:400;color:#343f2f}
.vip-legal dd{margin:0 0 .6rem}
.vip-legal address{margin:0;font-style:normal}

/* Liens couleur or (charte) */
.vip-legal a{
  color:#c7a148 !important;
  text-decoration:underline;
  text-underline-offset:2px;
  font-weight:400;
}
.vip-legal a:visited{color:#c7a148 !important}
.vip-legal a:hover,
.vip-legal a:focus-visible{
  color:#b8933a !important;           /* or légèrement plus sombre au survol */
  text-decoration:underline;
}
.vip-legal a:active{color:#a88430 !important}

/* Mobile */
@media (max-width:640px){
  .vip-legal{padding:0 10px}
  .vip-legal h1{font-size:1.7rem}
  .vip-legal h2{font-size:1.125rem}
}

.vip-contact-form .vip-privacy-note{
  margin: 8px 0 10px;
  font-size: 14.5px;
  line-height: 1.5;
  color: #e8e5dc; /* lisible sur fond vert */
}
.vip-contact-form .vip-privacy-note a{ color:#fff; text-decoration:underline; }


/* =========================================================
   MC4WP Newsletter VIP Voyages — FORCE FOOTER
   ========================================================= */

/* Wrapper grille */
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  margin-top: 10px !important;
}

/* Champ email */
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="email"] {
  width: 100% !important;
  height: 52px !important;
  padding: 0 16px !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  background: #fff !important;
  border: 1px solid #e5e1d8 !important;
  border-radius: 10px !important;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.05) !important;
}
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="email"]::placeholder {
  font-size: 16px !important;
  color: #9a9994 !important;
}

/* Bouton (button + input[type=submit]) */
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter button,
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="submit"] {
  height: 52px !important;
  padding: 0 20px !important;
  font-size: 16px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #c7a148 !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(199,161,72,.18) !important;
  transition: filter .2s, transform .1s !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter button:hover,
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="submit"]:hover {
  filter: brightness(.95) !important;
}
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter button:active,
#mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="submit"]:active {
  transform: translateY(1px) !important;
}

/* Consentement */
#mc4wp-form-1 .vip-consent {
  margin-top: 4px !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  color: #4b4b4a !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}
#mc4wp-form-1 .vip-consent a {
  color: #c7a148 !important;
  text-decoration: underline !important;
  font-size: 15px !important;
}

/* Messages */
#mc4wp-form-1 .mc4wp-response {
  margin-top: 10px !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  color: inherit !important;
}

/* Desktop : input + bouton côte à côte */
@media (min-width: 640px) {
  #mc4wp-form-1 .mc4wp-form-fields.vip-newsletter {
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
  }
  #mc4wp-form-1 .mc4wp-form-fields.vip-newsletter .vip-consent {
    grid-column: 1 / -1 !important;
  }
}

/* Mobile */
@media (max-width: 767px) {
  #mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="email"],
  #mc4wp-form-1 .mc4wp-form-fields.vip-newsletter button,
  #mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="submit"] {
    height: 48px !important;
    font-size: 15.5px !important;
    width: 100% !important;
  }
  #mc4wp-form-1 .mc4wp-form-fields.vip-newsletter input[type="email"]::placeholder {
    font-size: 15.5px !important;
  }
  #mc4wp-form-1 .mc4wp-form-fields.vip-newsletter .vip-consent {
    font-size: 14.5px !important;
  }
}

/* =========================================================
   Newsletter VIP Voyages — Formulaire ID 1095211
   ========================================================= */

/* Wrapper grille */
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  margin-top: 10px !important;
}

/* Champ email */
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="email"] {
  width: 100% !important;
  height: 52px !important;
  padding: 0 16px !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  background: #fff !important;
  border: 1px solid #e5e1d8 !important;
  border-radius: 10px !important;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.05) !important;
}
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="email"]::placeholder {
  font-size: 16px !important;
  color: #9a9994 !important;
}

/* Bouton */
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter button,
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="submit"] {
  height: 52px !important;
  padding: 0 20px !important;
  font-size: 16px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #c7a148 !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(199,161,72,.18) !important;
  transition: filter .2s, transform .1s !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter button:hover,
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="submit"]:hover {
  filter: brightness(.95) !important;
}
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter button:active,
.mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="submit"]:active {
  transform: translateY(1px) !important;
}

/* Consentement */
.mc4wp-form-1095211 .vip-consent {
  margin-top: 4px !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  color: #4b4b4a !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}
.mc4wp-form-1095211 .vip-consent a {
  color: #c7a148 !important;
  text-decoration: underline !important;
  font-size: 15px !important;
}

/* Messages */
.mc4wp-form-1095211 .mc4wp-response {
  margin-top: 10px !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
}

/* Desktop : input + bouton côte à côte */
@media (min-width: 640px) {
  .mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter {
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
  }
  .mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter .vip-consent {
    grid-column: 1 / -1 !important;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="email"],
  .mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter button,
  .mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="submit"] {
    height: 48px !important;
    font-size: 15.5px !important;
    width: 100% !important;
  }
  .mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter input[type="email"]::placeholder {
    font-size: 15.5px !important;
  }
  .mc4wp-form-1095211 .mc4wp-form-fields.vip-newsletter .vip-consent {
    font-size: 14.5px !important;
  }
}


.mc4wp-form-1095211 .mc4wp-alert p{
color: #007b55 !important;
}

.mc4wp-form-1095211 .mc4wp-notice p{
color: #007b55 !important;
}

#cookieyes-footer {
  opacity: 0.5 !important;
  font-size: 12px !important;
}
#cookieyes-footer:hover {
  opacity: 0.8 !important;
}

/* =========================================================
   VIP Voyages — Ajustement visuel de la bannière CookieYes
   (version gratuite sans Custom CSS interne)
   ========================================================= */

/* Conteneur iframe de CookieYes */
#cookieyes {
  max-width: 460px !important;  /* largeur du panneau */
  margin: 24px auto !important; /* centrage */
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1) !important;
}

/* Sur mobile : largeur quasi complète */
@media (max-width: 768px) {
  #cookieyes {
    max-width: 94% !important;
    margin: 10px auto !important;
  }
}
