/* Motion & apparitions — Youna & Max
   Discret, élégant, désactivé si l'utilisateur préfère moins d'animations. */

/* ── Carrousel du header : une seule photo visible à la fois (pour tous) ── */
.hero-slide{opacity:0}
.hero-slide.is-active{opacity:1}
.hero-dots{position:absolute;right:28px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:13px;z-index:2}
.hero-dots button{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid var(--gold,#f7dca8);background:transparent;cursor:pointer;opacity:.7;transition:background .35s,opacity .35s,transform .35s}
.hero-dots button[aria-selected="true"]{background:var(--gold,#f7dca8);opacity:1;transform:scale(1.3)}
.hero-dots button:hover{opacity:1}
.hero-dots button:focus-visible{outline:2px solid var(--gold,#f7dca8);outline-offset:4px}
@media (max-width:700px){.hero-dots{right:14px;gap:11px}}

@media (prefers-reduced-motion: no-preference){

  /* ── Titres de header : montée en cascade au chargement (sans clignotement grâce à fill:both) ── */
  .hero-title-overlay > *,
  .wedding-title > *{
    animation: ymRise 1.05s cubic-bezier(.22,.61,.36,1) both;
  }
  .hero-title-overlay .eyebrow,.wedding-title .eyebrow{animation-delay:.15s}
  .hero-title-overlay .hero-name,.wedding-title h1{animation-delay:.32s}
  .hero-title-overlay .hero-sub,.wedding-title .married{animation-delay:.5s}
  .wedding-title .button{animation-delay:.66s}
  @keyframes ymRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

  /* ── Ken Burns : lente dérive/zoom sur les photos de header ── */
  .wedding-hero-photo:not(.hero-slide),
  .activities-hero .activity-photo img,
  .reference-hero .reference-crop img{
    animation: ymKenburns 24s ease-out both;
  }
  @keyframes ymKenburns{from{transform:scale(1.09)}to{transform:scale(1.005)}}

  /* ── Carrousel : fondu enchaîné + zoom lent sur la photo active ── */
  .hero-slide{transform:scale(1.08);transition:opacity 1.8s ease,transform 9s cubic-bezier(.22,.61,.36,1)}
  .hero-slide.is-active{transform:scale(1)}

  /* ── Apparition au défilement (éléments marqués par anim.js) ── */
  [data-anim]{
    opacity:0;transform:translateY(26px);
    transition:opacity .85s cubic-bezier(.22,.61,.36,1),
               transform .85s cubic-bezier(.22,.61,.36,1);
  }
  [data-anim].anim-in{opacity:1;transform:none}

  /* ── Léger zoom sur les images au survol (dans leurs cadres qui rognent) ── */
  .activity-photo img,.reference-crop img,.gallery-cards figure img{
    transition:transform 1.3s cubic-bezier(.22,.61,.36,1);
  }
  .gallery-cards figure{overflow:hidden}
  .castle-polaroid:hover .activity-photo img,
  .nyons-gallery figure:hover .activity-photo img,
  .regional-panorama:hover .activity-photo img,
  .moodboard figure:hover .reference-crop img,
  .gallery-cards figure:hover img{transform:scale(1.06)}

  /* ── Boutons & liens : léger soulèvement ── */
  .button{transition:transform .3s ease,box-shadow .35s ease,background .3s ease}
  .button:hover{transform:translateY(-2px)}
  .text-link,.activity-nav a,.category-nav a{transition:color .25s ease,opacity .25s ease}
}
