/* === Apparitions cohérentes et discrètes === */
html.premium-motion-ready .premium-reveal{
  opacity:0;
  transform:translate3d(0,24px,0);
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1),
    transform .72s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--premium-delay,0ms);
  will-change:opacity,transform;
}
html.premium-motion-ready .premium-reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}
html.premium-motion-ready .premium-reveal[data-premium-direction="left"]{
  transform:translate3d(-24px,0,0);
}
html.premium-motion-ready .premium-reveal[data-premium-direction="right"]{
  transform:translate3d(24px,0,0);
}
html.premium-motion-ready .premium-reveal.is-visible[data-premium-direction]{
  transform:translate3d(0,0,0);
}

/* === Galerie immersive === */
.gallery-modal{
  isolation:isolate;
  overflow:hidden;
}
.gallery-modal::before{
  content:"";
  position:absolute;
  inset:-45px;
  z-index:-2;
  background-image:var(--gallery-ambient-image,none);
  background-size:cover;
  background-position:center;
  filter:blur(34px) saturate(1.08);
  opacity:.32;
  transform:scale(1.09);
  transition:background-image .35s ease,opacity .35s ease;
}
.gallery-modal::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at 50% 45%,rgba(10,24,34,.18),rgba(3,10,16,.9) 72%),
    linear-gradient(180deg,rgba(3,10,16,.55),rgba(3,10,16,.92));
}
.gallery-modal__top{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  background:rgba(5,15,23,.42)!important;
}
.gallery-modal__counter{
  min-width:72px;
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(4,13,20,.42);
  font-variant-numeric:tabular-nums;
  letter-spacing:.08em;
}
.gallery-modal__slide{
  opacity:.36;
  transform:scale(.965);
  transition:
    opacity .48s cubic-bezier(.22,.61,.36,1),
    transform .58s cubic-bezier(.22,.61,.36,1);
}
.gallery-modal__slide.premium-active{
  opacity:1;
  transform:scale(1);
}
.gallery-modal__slide img{
  filter:saturate(.96) contrast(1.02);
  transition:filter .45s ease,transform 7s ease;
}
.gallery-modal__slide.premium-active img{
  filter:saturate(1.04) contrast(1.035);
  transform:scale(1.018);
}
.gallery-modal__nav{
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 14px 40px rgba(0,0,0,.28);
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.gallery-modal__nav:hover{
  transform:translateY(-50%) scale(1.06);
  box-shadow:0 18px 46px rgba(0,0,0,.38);
}

/* === Aperçu interactif des pièces du plan === */
.plan-stage{
  overflow:visible!important;
}
.plan-room-preview{
  position:absolute;
  z-index:15;
  left:18px;
  bottom:18px;
  width:min(280px,42%);
  border-radius:15px;
  overflow:hidden;
  color:#fff;
  background:rgba(5,17,25,.94);
  border:1px solid rgba(224,182,101,.5);
  box-shadow:0 20px 50px rgba(0,0,0,.32);
  opacity:0;
  visibility:hidden;
  transform:translateY(12px) scale(.98);
  transition:
    opacity .25s ease,
    visibility .25s ease,
    transform .28s cubic-bezier(.22,.61,.36,1);
  pointer-events:none;
}
.plan-room-preview.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.plan-room-preview img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}
.plan-room-preview__body{
  padding:12px 14px 13px;
}
.plan-room-preview__title{
  display:block;
  margin-bottom:4px;
  font-weight:800;
  letter-spacing:.02em;
}
.plan-room-preview__hint{
  color:rgba(255,255,255,.68);
  font-size:.78rem;
}
#planHotspots .hotspot{
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    background .2s ease,
    color .2s ease;
}
#planHotspots .hotspot:hover,
#planHotspots .hotspot:focus-visible,
#planHotspots .hotspot.premium-hotspot-active{
  transform:translate(-50%,-50%) scale(1.16)!important;
  box-shadow:
    0 0 0 7px rgba(224,182,101,.16),
    0 12px 28px rgba(0,0,0,.32)!important;
  background:linear-gradient(135deg,var(--gold2),var(--gold))!important;
  color:#fff!important;
}

@media(max-width:767px){
  html.premium-motion-ready .premium-reveal{
    transform:translate3d(0,16px,0);
    transition-duration:.58s;
  }
  .plan-room-preview{
    left:12px;
    right:12px;
    bottom:12px;
    width:auto;
  }
  .plan-room-preview img{
    aspect-ratio:2.2/1;
  }
  .gallery-modal__slide{
    opacity:.55;
    transform:scale(.985);
  }
}

@media(prefers-reduced-motion:reduce){
  .premium-reveal,
  .gallery-modal__slide,
  .gallery-modal__slide img,
  .plan-room-preview,
  #planHotspots .hotspot{
    transition:none!important;
    animation:none!important;
    transform:none!important;
  }
}
