
/* =====================================================================
   V9.6.13 SAFE — GALLERY MOTION + MOBILE FIX
   ===================================================================== */

/* ---------------------------------------------------------------------
   GALERIE : scène sticky moderne.
   La section dure ~2,2 écrans mais la grille reste collée pendant le scroll.
   Les cadres ne bougent pas les uns sur les autres : seules les images
   se déplacent/zoom dans leurs cadres.
   --------------------------------------------------------------------- */
.v969-gallery-full{
  position:relative!important;
  width:100%!important;
  height:220svh!important;
  min-height:1500px!important;
  max-height:none!important;
  overflow:visible!important;
  background:var(--v9-paper)!important;
  isolation:isolate;
}
.v969-gallery-link{
  position:sticky!important;
  inset:auto!important;
  top:0!important;
  width:100%!important;
  height:100svh!important;
  min-height:620px!important;
  display:grid!important;
  grid-template-columns:repeat(12,1fr)!important;
  grid-template-rows:repeat(12,1fr)!important;
  gap:var(--v913-gap,12px)!important;
  padding:var(--v913-pad,12px)!important;
  overflow:hidden!important;
  text-decoration:none!important;
  background:var(--v9-paper)!important;
}

/* Cadres toujours dans la grille : zéro position flottante */
.v969-gallery-tile{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  border:0!important;
  overflow:hidden!important;
  box-shadow:0 10px 30px rgba(74,58,47,.08)!important;
  transform:none!important;
  z-index:1!important;
  background:#ded4cb!important;
}
.v969-g1{grid-column:1 / 8!important;grid-row:1 / 9!important}
.v969-g2{grid-column:8 / 13!important;grid-row:1 / 5!important}
.v969-g3{grid-column:8 / 10!important;grid-row:5 / 9!important}
.v969-g4{grid-column:10 / 13!important;grid-row:5 / 9!important}
.v969-g5{grid-column:1 / 13!important;grid-row:9 / 13!important}

/* Mouvement uniquement à l'intérieur du cadre */
.v969-gallery-tile img{
  width:calc(100% + 90px)!important;
  height:calc(100% + 90px)!important;
  max-width:none!important;
  margin:-45px!important;
  object-fit:cover!important;
  display:block!important;
  transform:
    translate3d(var(--v913-x,0px),var(--v913-y,0px),0)
    scale(var(--v913-scale,1.08))!important;
  transform-origin:center center!important;
  transition:filter .45s ease!important;
  will-change:transform!important;
}
.v969-gallery-link:hover .v969-gallery-tile img{
  filter:saturate(1.04) contrast(1.02);
}

/* petite respiration lumineuse discrète */
.v969-gallery-link:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:5;
  background:linear-gradient(
    180deg,
    rgba(255,255,255,var(--v913-light,0)),
    transparent 26%,
    transparent 74%,
    rgba(50,28,18,var(--v913-dark,0))
  );
}

/* ---------------------------------------------------------------------
   TELEPHONE / TABLETTE : sécurisation générale des blocs éditoriaux
   --------------------------------------------------------------------- */
@media(max-width:1019px){
  /* Points clés : chaque carte reste dans SON article et ne mord jamais
     sur la suivante. Le chevauchement photo/carte interne reste volontaire. */
  .v912-keypoints{
    overflow:visible!important;
    padding-bottom:100px!important;
  }
  .v912-keypoints-stack{
    gap:58px!important;
  }
  .v912-keypoint,
  .v912-keypoint-reverse{
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:0 0 20px!important;
    overflow:visible!important;
    isolation:isolate;
  }
  .v912-keypoint figure,
  .v912-keypoint-reverse figure{
    position:relative!important;
    width:100%!important;
    height:390px!important;
    margin:0!important;
    z-index:1!important;
  }
  .v912-keypoint .v9-activity-card,
  .v912-keypoint-reverse .v9-activity-card{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:86%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:-58px 0 0 auto!important;
    padding:34px 30px!important;
    box-sizing:border-box!important;
    z-index:3!important;
  }
  .v912-keypoint-reverse .v9-activity-card{
    margin:-58px auto 0 0!important;
  }

  /* Saisons : on garde la présentation du CSS maître mais on donne
     assez de hauteur au contenu pour que les 3 points soient SOUS la carte. */
  .v912-seasons-master{
    min-height:950px!important;
    height:auto!important;
    padding-bottom:70px!important;
    margin-bottom:85px!important;
    overflow:visible!important;
  }
  .v912-seasons-master .v9-activities-bg{
    height:700px!important;
  }
  .v912-seasons-master .v9-activities-carousel{
    height:835px!important;
    padding-top:130px!important;
    overflow:visible!important;
  }
  .v912-seasons-master .v9-activity-slide{
    left:20px!important;
    right:20px!important;
    top:130px!important;
    width:auto!important;
    height:auto!important;
  }
  .v912-seasons-master .v9-activity-slide figure{
    width:100%!important;
    height:390px!important;
  }
  .v912-seasons-master .v9-activity-card{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    width:86%!important;
    min-height:0!important;
    height:auto!important;
    margin:-58px 0 0 auto!important;
    padding:34px 30px!important;
    box-sizing:border-box!important;
  }
  .v912-seasons-master .v9-dots{
    left:50%!important;
    right:auto!important;
    bottom:12px!important;
    transform:translateX(-50%)!important;
    z-index:20!important;
    display:flex!important;
    gap:8px!important;
    padding:9px 12px!important;
    border-radius:999px!important;
    background:rgba(246,245,243,.92)!important;
    box-shadow:0 6px 18px rgba(74,58,47,.08)!important;
  }
  .v912-seasons-master .v9-dots button{
    width:8px!important;
    height:8px!important;
    flex:0 0 8px!important;
  }
  .v912-seasons-master .v9-stage-arrow{
    top:300px!important;
    z-index:22!important;
  }
  .v912-seasons-master .v9-block-button{
    position:relative!important;
    z-index:5!important;
    margin-top:8px!important;
  }

  /* Famille / séjours : borne claire entre les sections */
  .v9-family{
    position:relative!important;
    height:auto!important;
    margin-bottom:110px!important;
    overflow:visible!important;
    isolation:isolate;
  }

  /* Journal : aucune carte ne peut mordre sur FAQ */
  .v965-journal{
    position:relative!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    margin-bottom:105px!important;
    isolation:isolate;
  }
  .v965-journal-card{
    box-sizing:border-box!important;
    z-index:3!important;
  }
}

/* ---------------------------------------------------------------------
   MOBILE : galerie verticale sticky + dimensions corrigées
   --------------------------------------------------------------------- */
@media(max-width:760px){
  .v969-gallery-full{
    height:225svh!important;
    min-height:1450px!important;
  }
  .v969-gallery-link{
    height:100svh!important;
    min-height:620px!important;
    grid-template-columns:repeat(6,1fr)!important;
    grid-template-rows:repeat(14,1fr)!important;
    gap:var(--v913-gap,6px)!important;
    padding:var(--v913-pad,6px)!important;
  }
  .v969-g1{grid-column:1 / 7!important;grid-row:1 / 7!important}
  .v969-g2{grid-column:1 / 4!important;grid-row:7 / 10!important}
  .v969-g3{grid-column:4 / 7!important;grid-row:7 / 10!important}
  .v969-g4{grid-column:1 / 3!important;grid-row:10 / 15!important}
  .v969-g5{grid-column:3 / 7!important;grid-row:10 / 15!important}
  .v969-gallery-tile img{
    width:calc(100% + 56px)!important;
    height:calc(100% + 56px)!important;
    margin:-28px!important;
  }

  .v912-keypoints-heading{
    min-height:145px!important;
    margin-bottom:30px!important;
  }
  .v912-keypoints-stack{
    width:calc(100% - 28px)!important;
    gap:52px!important;
  }
  .v912-keypoint figure,
  .v912-keypoint-reverse figure{
    height:335px!important;
  }
  .v912-keypoint .v9-activity-card,
  .v912-keypoint-reverse .v9-activity-card{
    width:calc(100% - 24px)!important;
    margin:-48px 0 0 auto!important;
    padding:28px 24px!important;
  }
  .v912-keypoint-reverse .v9-activity-card{
    margin:-48px auto 0 0!important;
  }

  .v912-seasons-master{
    min-height:900px!important;
    margin-bottom:75px!important;
  }
  .v912-seasons-master .v9-activities-bg{
    height:650px!important;
  }
  .v912-seasons-master .v9-activities-carousel{
    height:790px!important;
  }
  .v912-seasons-master .v9-activity-slide figure{
    height:330px!important;
  }
  .v912-seasons-master .v9-activity-card{
    width:calc(100% - 28px)!important;
    margin:-48px 0 0 auto!important;
    padding:28px 24px!important;
  }
  .v912-seasons-master .v9-stage-arrow{
    top:270px!important;
  }

  .v965-journal-photo{
    height:320px!important;
  }
  .v965-journal-card{
    width:calc(100% - 24px)!important;
    margin:-42px auto 0!important;
    padding:28px 24px!important;
  }
}

/* Très petits écrans */
@media(max-width:390px){
  .v912-keypoints-stack{width:calc(100% - 20px)!important}
  .v912-keypoint figure,
  .v912-keypoint-reverse figure{height:305px!important}

  .v912-seasons-master{
    min-height:930px!important;
  }
  .v912-seasons-master .v9-activities-carousel{
    height:820px!important;
  }
  .v912-seasons-master .v9-activity-card{
    width:calc(100% - 20px)!important;
  }
}

/* Réduction d'animation */
@media(prefers-reduced-motion:reduce){
  .v969-gallery-full{
    height:115svh!important;
    min-height:720px!important;
  }
  .v969-gallery-link{
    position:relative!important;
    top:auto!important;
  }
  .v969-gallery-tile img{
    transform:scale(1.02)!important;
    transition:none!important;
  }
}
