/* ============================================================
   ESCAPE ROOM OUIDAH — V2 UX / Conversion / Mobile
   ============================================================ */

.hero-v2 { min-height: min(860px, 94vh) !important; }
.hero-v2-copy { max-width: 760px !important; }
.hero-v2-kicker { display:inline-flex; align-items:center; gap:8px; padding:7px 13px; border:1px solid rgba(201,168,76,.28); background:rgba(6,6,10,.42); backdrop-filter:blur(10px); border-radius:999px; color:var(--gold-bright); font-size:11px; letter-spacing:1.8px; text-transform:uppercase; }
.hero-v2-title { text-shadow:0 10px 40px rgba(0,0,0,.5); }
.hero-v2-lead { max-width:650px !important; font-size:clamp(15px,2vw,19px) !important; }
.hero-v2-proof { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:24px; }
.hero-v2-proof span { padding:7px 11px; border-radius:999px; border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.28); color:rgba(255,255,255,.82); font-size:11px; }

.signature-section { position:relative; overflow:hidden; background:linear-gradient(135deg,#0d0d13 0%,#161208 52%,#0d0d13 100%); }
.signature-section:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 18% 30%,rgba(201,168,76,.12),transparent 38%),radial-gradient(circle at 82% 70%,rgba(201,168,76,.07),transparent 34%); pointer-events:none; }
.signature-wrap { position:relative; z-index:1; }
.signature-card { display:grid; grid-template-columns:1.05fr .95fr; gap:46px; align-items:center; padding:24px; border:1px solid var(--gold-border2); background:rgba(255,255,255,.025); border-radius:28px; box-shadow:0 24px 80px rgba(0,0,0,.28); }
.signature-image { min-height:470px; border-radius:20px; overflow:hidden; position:relative; }
.signature-image img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.signature-image:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.68)); }
.signature-badge { position:absolute; left:20px; bottom:18px; z-index:2; padding:8px 12px; border-radius:999px; background:rgba(6,6,10,.76); border:1px solid rgba(201,168,76,.35); color:var(--gold-bright); font-size:10px; letter-spacing:1.4px; text-transform:uppercase; }
.signature-copy { padding:14px 18px 14px 4px; }
.signature-copy p { color:var(--text-2); line-height:1.85; }
.signature-meta { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:24px 0; }
.signature-meta div { padding:12px 10px; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.025); text-align:center; }
.signature-meta strong { display:block; color:var(--gold); font-family:'Cinzel',serif; font-size:14px; }
.signature-meta small { color:var(--text-3); font-size:9px; text-transform:uppercase; letter-spacing:1px; }

.challenge-strip { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:30px 34px; border:1px solid var(--gold-border2); border-radius:20px; background:linear-gradient(100deg,rgba(201,168,76,.09),rgba(255,255,255,.02)); }
.challenge-number { font-family:'Cinzel',serif; font-weight:900; font-size:clamp(46px,7vw,76px); color:var(--gold); line-height:1; }

.activity-v2-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.activity-v2-card { position:relative; min-height:370px; overflow:hidden; border:1px solid var(--border); border-radius:20px; background:var(--surface-2); }
.activity-v2-card img { width:100%; height:210px; object-fit:cover; transition:transform .5s ease; }
.activity-v2-card:hover img { transform:scale(1.045); }
.activity-v2-card-body { padding:20px; }
.activity-v2-card .activity-label { color:var(--gold); font-size:9px; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:8px; }
.activity-v2-card h3 { font-family:'Cinzel',serif; font-size:17px; color:var(--text-1); margin-bottom:9px; }
.activity-v2-card p { color:var(--text-2); font-size:13px; line-height:1.7; margin-bottom:16px; }
.activity-v2-card.featured { border-color:rgba(201,168,76,.35); box-shadow:0 16px 50px rgba(0,0,0,.2); }
.activity-v2-card.featured:before { content:"EXPÉRIENCE SIGNATURE"; position:absolute; top:14px; left:14px; z-index:2; background:var(--gold); color:#080808; padding:6px 9px; border-radius:999px; font-size:8px; font-weight:800; letter-spacing:1px; }
.activity-badges { display:flex; gap:6px; flex-wrap:wrap; }
.activity-badges span { font-size:10px; color:var(--gold); padding:4px 8px; border-radius:999px; background:rgba(201,168,76,.07); border:1px solid rgba(201,168,76,.15); }

.tarifs-highlight { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:920px; margin:auto; }
.tarif-highlight-card { border:1px solid var(--border); border-radius:18px; padding:22px; background:var(--surface-2); }
.tarif-highlight-card h3 { font-family:'Cinzel',serif; color:var(--gold); font-size:13px; margin-bottom:4px; }
.tarif-highlight-card .tarif-price { font-family:'Cinzel',serif; color:var(--text-1); font-size:25px; font-weight:700; margin:10px 0 3px; }
.tarif-highlight-card small { color:var(--text-3); font-size:10px; }

/* Réservation */
.resa-progress { display:flex; align-items:center; gap:7px; margin:0 auto 26px; max-width:860px; }
.resa-progress span { flex:1; height:3px; border-radius:999px; background:var(--surface-3); }
.resa-progress span.active { background:var(--gold); }
.resa-note { padding:12px 14px; border-radius:12px; border:1px solid var(--gold-border); background:rgba(201,168,76,.05); color:var(--text-2); font-size:12px; line-height:1.6; }
.resa-summary-sticky { top:calc(var(--nav-h) + 18px); }
.slot:after { content:"Libre"; display:block; margin-top:3px; font-size:8px; font-weight:500; color:var(--text-3); }
.slot.selected:after { color:rgba(0,0,0,.65); }
.mobile-booking-bar { display:none; }

/* Accessibilité / mouvement */
:focus-visible { outline:2px solid var(--gold-bright); outline-offset:3px; }
@media(prefers-reduced-motion:reduce){ .activity-v2-card img { transition:none; } }

@media(max-width:900px){
  .signature-card { grid-template-columns:1fr; gap:28px; }
  .signature-image { min-height:380px; }
  .activity-v2-grid { grid-template-columns:repeat(2,1fr); }
  .tarifs-highlight { grid-template-columns:1fr; max-width:520px; }
}

@media(max-width:768px){
  .hero-v2 { min-height:calc(100svh - 10px) !important; }
  .hero-v2-copy { padding-top:70px !important; }
  .hero-v2-lead { font-size:15px !important; }
  .hero-v2-proof { gap:6px; }
  .hero-v2-proof span { font-size:10px; }
  .signature-card { padding:12px; border-radius:22px; }
  .signature-image { min-height:300px; }
  .signature-copy { padding:8px 8px 16px; }
  .signature-meta { grid-template-columns:repeat(2,1fr); }
  .challenge-strip { align-items:flex-start; flex-direction:column; padding:24px; }
  .activity-v2-grid { grid-template-columns:1fr; }
  .activity-v2-card { min-height:auto; }
  .activity-v2-card img { height:220px; }
  .resa-summary-sticky { position:static !important; }
  .mobile-booking-bar { position:fixed; left:0; right:0; bottom:0; z-index:9999; display:grid; grid-template-columns:.8fr 1.5fr; gap:7px; padding:8px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); background:rgba(6,6,10,.94); border-top:1px solid rgba(201,168,76,.25); backdrop-filter:blur(16px); }
  .mobile-booking-bar a { min-height:46px; display:flex; align-items:center; justify-content:center; gap:7px; border-radius:12px; text-decoration:none; font-size:11px; font-weight:700; }
  .mobile-booking-wa { border:1px solid rgba(255,255,255,.12); color:var(--text-1); }
  .mobile-booking-main { background:var(--gold); color:#070707; }
  body { padding-bottom:66px; }
}

/* ============================================================
   V2.1 — FIX AFFICHAGE / MOBILE / NAVIGATION / GALERIE
   ============================================================ */
html, body {
  max-width: 100%;
  overflow-x: hidden !important;
}

/* Navigation toujours accessible */
#navbar {
  z-index: 1300 !important;
  width: 100%;
}
.wa-float {
  z-index: 1250 !important;
  bottom: 24px;
  right: 24px;
}

/* Les sections ne doivent jamais créer de scrollbars horizontales */
main#main-content,
main#main-content > section,
main#main-content > div,
.section-inner,
.signature-wrap,
.signature-card,
.activity-v2-grid,
.luxury-cards-grid,
.luxury-stats,
.testi-wrapper,
.testi-track,
.gallery-masonry {
  max-width: 100%;
}

.section,
.signature-section,
.testi-wrapper,
.marquee-wrap {
  overflow-x: clip !important;
}

/* Témoignages : aucun débordement visuel hors de la section */
.testi-wrapper { overflow: hidden !important; }
.testi-track { will-change: transform; }

/* Menu mobile : les premières options sont immédiatement visibles */
.mobile-menu {
  z-index: 1200 !important;
  top: var(--nav-h) !important;
  bottom: 0 !important;
  min-height: calc(100dvh - var(--nav-h));
  height: calc(100dvh - var(--nav-h));
  justify-content: flex-start !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 22px 20px 32px !important;
  gap: 12px !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.mobile-menu img {
  flex: 0 0 auto;
  margin-bottom: 6px !important;
}
.mobile-menu a {
  flex: 0 0 auto;
}
.mobile-menu .btn-wa {
  margin-top: 8px !important;
}

/* Le menu reste indépendant du contenu de la page */
body.menu-open {
  overflow: hidden !important;
  touch-action: none;
}

/* Lightbox galerie : plein écran, sans défilement préalable */
#lightbox {
  overflow: hidden !important;
  overscroll-behavior: contain;
  padding: 76px 64px 62px;
  box-sizing: border-box;
}
#lb-content {
  width: min(92vw, 1200px);
  height: min(78vh, 820px);
  max-width: 100%;
  max-height: 100%;
  overflow: hidden;
}
#lb-content img,
#lb-content video {
  display: block;
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto;
  height: auto;
  object-fit: contain;
}
#lb-caption {
  max-width: calc(100vw - 40px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 768px) {
  /* Le bouton flottant reste visible pendant le scroll, sans barre basse */
  .wa-float {
    display: flex !important;
    right: 14px;
    bottom: 16px;
    width: 48px;
    height: 48px;
    z-index: 1250 !important;
  }
  .mobile-booking-bar {
    display: none !important;
  }
  body {
    padding-bottom: 0 !important;
  }

  /* Évite les cartes trop larges / débordements sur petits écrans */
  .signature-card,
  .activity-v2-card,
  .luxury-stat-item,
  .card-luxury {
    min-width: 0 !important;
  }
  .signature-copy,
  .signature-image {
    max-width: 100%;
  }
  .signature-meta {
    width: 100%;
  }

  /* Galerie */
  .gallery-masonry {
    columns: 1 !important;
    column-gap: 0 !important;
  }
  .gallery-item {
    width: 100%;
    max-width: 100%;
  }
  .gallery-filters {
    justify-content: center;
  }

  /* Lightbox mobile : rien ne doit nécessiter un scroll */
  #lightbox {
    top: 0 !important;
    inset: 0 !important;
    padding: 74px 14px 54px !important;
    align-items: center !important;
  }
  #lb-content {
    width: 100%;
    height: 72vh;
    max-width: 100%;
    max-height: 72vh;
  }
  #lightbox > button[aria-label="Précédent"],
  #lightbox > button[aria-label="Suivant"] {
    width: 40px !important;
    height: 40px !important;
    top: auto !important;
    bottom: 16px !important;
    transform: none !important;
  }
  #lightbox > button[aria-label="Précédent"] { left: 18px !important; }
  #lightbox > button[aria-label="Suivant"] { right: 18px !important; }
  #lightbox > button[aria-label="Fermer"] {
    top: 16px !important;
    right: 16px !important;
  }
  #lb-caption {
    bottom: 22px !important;
    max-width: 58vw;
    font-size: 9px !important;
  }
  #lb-counter {
    bottom: 7px !important;
  }
}

@media (max-width: 380px) {
  .mobile-menu { padding-left: 14px !important; padding-right: 14px !important; }
  .mobile-menu a { font-size: 13px !important; letter-spacing: 1.5px !important; }
  #lb-content { height: 68vh; max-height: 68vh; }
}
body.lightbox-open { overflow: hidden !important; }

/* ============================================================
   V3.1 — MOBILE LAYOUT / SCROLLBAR CLEANUP
   ============================================================ */
/* Les barres de défilement natives ne sont pas nécessaires visuellement.
   Le défilement reste actif, mais l'interface reste propre. */
html {
  scrollbar-width: none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}

/* Empêche les grilles internes de dépasser la largeur du téléphone. */
.luxury-cards-grid,
.testi-form-grid,
.testi-form-grid > *,
.testi-form-grid form,
.testi-form-grid .form-row,
.testi-form-grid .form-group,
.testi-form-grid input,
.testi-form-grid textarea,
.testi-form-grid select {
  min-width: 0 !important;
  max-width: 100% !important;
}

@media (max-width: 768px) {
  /* Les 3 cartes de la section "Une expérience exceptionnelle"
     passent en une seule colonne : aucun texte écrasé ou coupé. */
  .luxury-cards-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .luxury-cards-grid .card-luxury {
    width: 100% !important;
    min-height: 0 !important;
    padding: 28px 22px !important;
  }
  .luxury-cards-grid .card-luxury h3,
  .luxury-cards-grid .card-luxury p {
    max-width: 100% !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  /* Formulaire "Votre avis" : une vraie colonne sur téléphone. */
  .testi-form-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .testi-form-grid > * {
    width: 100% !important;
  }
  .testi-form-grid .form-row {
    grid-template-columns: 1fr !important;
  }
  .testi-form-grid .form-input,
  .testi-form-grid .form-textarea,
  .testi-form-grid textarea,
  .testi-form-grid input,
  .testi-form-grid select {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Le bloc témoignage ne doit jamais dépasser l'écran. */
  .reveal-dramatic:has(.testi-form-grid) {
    width: 100% !important;
    max-width: 100% !important;
    padding: 26px 20px !important;
  }

  /* Navigation mobile : panneau indépendant, contenu immédiatement visible. */
  .mobile-menu {
    top: var(--nav-h) !important;
    height: calc(100dvh - var(--nav-h)) !important;
    min-height: 0 !important;
    padding: 14px 18px 24px !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
  .mobile-menu img {
    width: 48px !important;
    height: 48px !important;
    margin: 0 0 5px !important;
  }
  .mobile-menu a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 34px;
    padding: 5px 0 !important;
    flex: 0 0 auto;
  }
  .mobile-menu .btn-wa {
    width: auto !important;
    min-height: 42px;
    padding: 10px 22px !important;
    margin-top: 5px !important;
  }

  /* Lightbox : contenu réellement contenu dans le viewport. */
  #lightbox {
    width: 100vw !important;
    height: 100dvh !important;
    padding: 66px 12px 58px !important;
    overflow: hidden !important;
  }
  #lb-content {
    width: 100% !important;
    height: calc(100dvh - 138px) !important;
    max-height: calc(100dvh - 138px) !important;
    overflow: hidden !important;
  }
  #lb-content img,
  #lb-content video {
    max-width: 100% !important;
    max-height: calc(100dvh - 150px) !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }
}

@media (max-width: 480px) {
  .luxury-cards-grid .card-luxury {
    padding: 24px 18px !important;
  }
  .testi-form-grid .form-input,
  .testi-form-grid .form-textarea {
    font-size: 14px !important;
  }
  .reveal-dramatic:has(.testi-form-grid) {
    padding: 24px 16px !important;
    border-radius: 22px !important;
  }
}


/* ============================================================
   V4 — NAV FIXE / SCROLLBAR / GALERIE IMMERSIVE / CRÉNEAUX
   ============================================================ */
/* Les pages publiques ne doivent pas afficher de barres internes
   simplement parce qu'un composant a reçu une hauteur contrainte. */
html, body { overflow-x:hidden !important; }
main#main-content { overflow:visible !important; }
main#main-content > section,
main#main-content > div { overflow-y:visible !important; }

/* Navigation réellement fixe au viewport, toujours au-dessus du contenu. */
#navbar {
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  height:var(--nav-h) !important;
  z-index:99990 !important;
  isolation:isolate;
}
@media (max-width:1024px){
  #navbar {
    background:rgba(6,6,10,.94) !important;
    backdrop-filter:blur(18px) saturate(1.4) !important;
    -webkit-backdrop-filter:blur(18px) saturate(1.4) !important;
    border-bottom:1px solid rgba(201,168,76,.18) !important;
  }
}

/* WhatsApp flottant : toujours attaché au viewport. */
.wa-float {
  position:fixed !important;
  right:18px !important;
  bottom:18px !important;
  z-index:99980 !important;
  transform:translateZ(0);
}

/* Aucun statut répétitif sous chaque heure. */
.slots-grid .slot::after,
.slots-grid .slot:after,
.slots-grid .slot .slot-status { display:none !important; content:none !important; }
.slots-grid .slot { min-height:46px; display:flex; align-items:center; justify-content:center; }

/* Menu mobile : couche indépendante du document. */
@media (max-width:768px){
  .mobile-menu {
    position:fixed !important;
    top:var(--nav-h) !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:100vw !important;
    height:calc(100dvh - var(--nav-h)) !important;
    min-height:0 !important;
    max-height:none !important;
    z-index:99989 !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    justify-content:flex-start !important;
    padding-top:18px !important;
  }
  .wa-float { width:50px !important; height:50px !important; right:14px !important; bottom:14px !important; }
}

/* Lightbox : véritable écran plein, opaque. La page située dessous
   ne peut jamais être visible. Le track permet le swipe horizontal. */
#lightbox {
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100dvh !important;
  min-height:100vh !important;
  padding:0 !important;
  margin:0 !important;
  background:#050507 !important;
  z-index:999999 !important;
  display:block !important;
  overflow:hidden !important;
}
#lightbox .lb-close {
  position:fixed !important;
  top:max(16px, env(safe-area-inset-top)) !important;
  right:16px !important;
  z-index:1000005 !important;
  width:46px !important;
  height:46px !important;
  border-radius:50% !important;
  background:rgba(12,12,16,.92) !important;
  border:1px solid rgba(201,168,76,.45) !important;
  color:#fff !important;
  font-size:20px !important;
}
#lb-content {
  width:100vw !important;
  height:100dvh !important;
  max-width:none !important;
  max-height:none !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  scroll-snap-type:x mandatory !important;
  scroll-behavior:smooth !important;
  -webkit-overflow-scrolling:touch !important;
  scrollbar-width:none !important;
}
#lb-content::-webkit-scrollbar { display:none !important; }
#lb-content .lb-slide {
  flex:0 0 100vw !important;
  width:100vw !important;
  height:100dvh !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:70px 20px 72px !important;
  box-sizing:border-box !important;
  scroll-snap-align:center !important;
}
#lb-content .lb-slide img,
#lb-content .lb-slide video {
  display:block !important;
  max-width:calc(100vw - 40px) !important;
  max-height:calc(100dvh - 142px) !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
  border-radius:10px !important;
  background:#000 !important;
}
#lb-caption { z-index:1000002 !important; bottom:38px !important; }
#lb-counter { z-index:1000002 !important; bottom:14px !important; }

@media(max-width:768px){
  #lightbox > button[aria-label="Précédent"],
  #lightbox > button[aria-label="Suivant"] { display:none !important; }
  #lb-content .lb-slide { padding:72px 10px 68px !important; }
  #lb-content .lb-slide img,
  #lb-content .lb-slide video {
    max-width:calc(100vw - 20px) !important;
    max-height:calc(100dvh - 140px) !important;
  }
}


/* ============================================================
   V4.1 — FINITION MOBILE / AUCUNE BARRE INTERNE PUBLIQUE
   ============================================================ */
/* La page publique doit avoir une seule zone de défilement : le document.
   On masque les barres natives sur tous les éléments sans désactiver le scroll. */
html, body, body * {
  scrollbar-width:none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
body *::-webkit-scrollbar {
  width:0 !important;
  height:0 !important;
}

/* Évite les scrollbars verticales artificielles provoquées par des wrappers. */
main#main-content,
main#main-content section,
main#main-content > div,
.section-inner,
.section-fullbg,
.section-with-bg,
.testi-wrapper,
.gallery-masonry,
.gallery-strip-track {
  overflow-y:visible !important;
  max-height:none !important;
}

/* Le navbar et WhatsApp restent ancrés au viewport même pendant le scroll. */
#navbar {
  position:fixed !important;
  transform:translate3d(0,0,0) !important;
  will-change:transform;
}
.wa-float {
  position:fixed !important;
  transform:translate3d(0,0,0) !important;
  will-change:transform;
}

@media(max-width:768px){
  body { overflow-x:hidden !important; }
  #navbar {
    position:fixed !important;
    top:0 !important;
    bottom:auto !important;
    height:var(--nav-h) !important;
  }
  .mobile-menu {
    position:fixed !important;
    top:var(--nav-h) !important;
    bottom:0 !important;
    height:calc(100dvh - var(--nav-h)) !important;
    max-height:calc(100dvh - var(--nav-h)) !important;
    overflow-y:auto !important;
  }
  .wa-float {
    position:fixed !important;
    right:14px !important;
    bottom:14px !important;
    z-index:999999 !important;
  }
}

/* ============================================================
   V5 — STABILITÉ DU SCROLL + NAVIGATION RÉELLEMENT FIXE
   ============================================================ */
/* Une seule zone de défilement sur les pages publiques. */
html {
  scroll-behavior: auto !important;
  scroll-snap-type: none !important;
}
body {
  animation: none !important;
  transform: none !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  scroll-snap-type: none !important;
}
body.menu-open,
body.lightbox-open { overflow:hidden !important; }

/* Aucun composant de l'accueil ne doit devenir un mini-document scrollable. */
main#main-content,
main#main-content > section,
main#main-content > div,
main#main-content .section,
main#main-content .section-inner,
main#main-content .signature-wrap,
main#main-content .signature-card,
main#main-content .activity-v2-grid,
main#main-content .luxury-cards-grid,
main#main-content .luxury-stats,
main#main-content .card-luxury,
main#main-content .testi-wrapper,
main#main-content .gallery-strip-track {
  overflow-y: visible !important;
  max-height: none !important;
  scroll-snap-type: none !important;
}

/* Les animations d'apparition ne doivent pas transformer le body/sections en viewport. */
main#main-content .reveal,
main#main-content .reveal-left,
main#main-content .reveal-right,
main#main-content .reveal-scale,
main#main-content .reveal-up2,
main#main-content .reveal-dramatic {
  max-height: none !important;
}

/* Navbar et WhatsApp : fixed par rapport au viewport. */
#navbar {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  width: 100vw !important;
  z-index: 2147483000 !important;
  transform: none !important;
}
.wa-float {
  position: fixed !important;
  right: max(14px, env(safe-area-inset-right)) !important;
  bottom: max(14px, env(safe-area-inset-bottom)) !important;
  z-index: 2147482999 !important;
  transform: translateZ(0) !important;
}

/* Menu mobile : sous la navbar, mais toujours dans le viewport. */
@media (max-width:768px) {
  .mobile-menu {
    position: fixed !important;
    top: var(--nav-h) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: calc(100dvh - var(--nav-h)) !important;
    max-height: calc(100dvh - var(--nav-h)) !important;
    z-index: 2147482998 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }
}

/* Le seul défilement horizontal autorisé est celui de la lightbox. */
#lightbox #lb-content {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory !important;
}

/* ============================================================
   V5.1 — CORRECTION DÉFILEMENT : UNE SEULE PAGE SCROLLABLE
   ============================================================ */
/*
 * Important : main.css contenait `overflow:hidden` sur les sections.
 * Avec `overflow-x:hidden` + `overflow-y:visible`, certains navigateurs
 * transforment le Y visible en zone de défilement automatique.
 * Résultat : le doigt/la molette "accroche" sur certaines sections.
 * `overflow:clip` conserve le masquage horizontal sans créer de scroll
 * container vertical. Le document reste donc l'unique zone de scroll.
 */
main#main-content > section,
main#main-content > .hero-v2,
main#main-content > div.section-fullbg,
main#main-content .section,
main#main-content .section-fullbg,
main#main-content .signature-section,
main#main-content .section-gold-luxury {
  overflow: clip !important;
  max-height: none !important;
  scroll-snap-type: none !important;
}

/* Les wrappers de contenu ne doivent pas devenir des scroll containers. */
main#main-content .section-inner,
main#main-content .signature-wrap,
main#main-content .signature-card,
main#main-content .luxury-cards-grid,
main#main-content .luxury-stats,
main#main-content .activity-v2-grid,
main#main-content .pour-qui-grid,
main#main-content .reveal-dramatic {
  max-height: none !important;
  overflow-y: visible !important;
  scroll-snap-type: none !important;
}

/* Les deux défilements horizontaux automatiques restent internes,
   sans créer de défilement vertical parasite. */
main#main-content .gallery-strip-wrap,
main#main-content .gallery-strip-track,
main#main-content .testi-wrapper,
main#main-content .testi-track {
  overflow-y: visible !important;
}
