/* animations.css : apparitions au défilement, sobres (Corporate Premium) */
@keyframes fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .12s; }
.reveal[data-delay="2"] { transition-delay: .24s; }
.reveal[data-delay="3"] { transition-delay: .36s; }

.hero__content > * { animation: fade-up .7s ease both; }
.hero__content > :nth-child(2) { animation-delay: .1s; }
.hero__content > :nth-child(3) { animation-delay: .2s; }
.hero__content > :nth-child(4) { animation-delay: .3s; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .hero__content > * { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ===== v2 : animations supplémentaires ===== */
@keyframes kenburns { from { transform: scale(1) translate3d(0,0,0); } to { transform: scale(1.1) translate3d(-1.5%, -1%, 0); } }
@keyframes pulse-dot { 0%, 100% { box-shadow: 0 0 0 0 rgba(0,174,239,.7); } 70% { box-shadow: 0 0 0 10px rgba(0,174,239,0); } }
@keyframes shine { from { transform: translateX(-130%) skewX(-18deg); } to { transform: translateX(230%) skewX(-18deg); } }
@keyframes float-y { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes grow-x { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Héro : zoom lent + parallaxe (translateY posé par main.js) */
.hero--v2 .hero__img { will-change: transform; animation: kenburns 22s ease-in-out infinite alternate; }
.hero--v2 .hero__img.is-parallax { animation: none; transform: translate3d(0, var(--py, 0px), 0) scale(1.12); transition: none; }

/* Apparitions directionnelles */
.reveal--left { transform: translateX(-32px); }
.reveal--right { transform: translateX(32px); }
.reveal--zoom { transform: scale(.94); }
.reveal--left.is-visible, .reveal--right.is-visible, .reveal--zoom.is-visible { transform: none; }
.reveal { transition-duration: .75s; transition-timing-function: cubic-bezier(.2,.7,.2,1); }

/* Galerie : chaque photo apparaît l'une après l'autre */
[data-stagger="true"] > * { opacity: 0; transform: translateY(16px) scale(.98); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
[data-stagger="true"].is-visible > * { opacity: 1; transform: none; }
[data-stagger="true"].is-visible > :nth-child(2) { transition-delay: .08s; }
[data-stagger="true"].is-visible > :nth-child(3) { transition-delay: .16s; }
[data-stagger="true"].is-visible > :nth-child(4) { transition-delay: .24s; }
[data-stagger="true"].is-visible > :nth-child(5) { transition-delay: .32s; }
[data-stagger="true"].is-visible > :nth-child(6) { transition-delay: .40s; }
[data-stagger="true"].is-visible > :nth-child(7) { transition-delay: .48s; }
[data-stagger="true"].is-visible > :nth-child(8) { transition-delay: .56s; }

/* Survol des photos */
.card__img, .gallery img, .media-text__img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.card { overflow: hidden; }
.card:hover .card__img { transform: scale(1.05); }
.gallery a, .gallery img { display: block; overflow: hidden; }
.gallery img:hover { transform: scale(1.04); }

/* Boutons : reflet au survol */
.btn { position: relative; overflow: hidden; }
.btn::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent); transform: translateX(-130%) skewX(-18deg); pointer-events: none; }
.btn:hover::after { animation: shine .8s ease; }

/* Trait sous l'eyebrow qui se dessine */
.section__header .eyebrow { position: relative; padding-bottom: .35rem; }
.section__header .eyebrow::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--brand-accent); transform: scaleX(0); transform-origin: left; border-radius: 2px; }
.section__header.is-visible .eyebrow::after { animation: grow-x .7s .2s cubic-bezier(.2,.7,.2,1) forwards; }
.section__header--center .eyebrow::after { transform-origin: center; }

/* Icônes des avantages qui flottent */
.feature.is-visible .feature__icon { animation: float-y 4s ease-in-out infinite; }
.feature:nth-child(2).is-visible .feature__icon { animation-delay: .6s; }
.feature:nth-child(3).is-visible .feature__icon { animation-delay: 1.2s; }

/* Badge « disponible maintenant » */
.badge-live { display: inline-flex; align-items: center; gap: .55rem; margin-bottom: var(--space-sm); padding: .45rem .9rem .45rem .7rem; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(6px); font-size: .95rem; font-weight: 600; color: #fff; }
.badge-live__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--brand-accent); animation: pulse-dot 1.8s ease-out infinite; }

/* Compteurs du bandeau */
.stat.is-visible .stat__value { animation: fade-up .6s cubic-bezier(.2,.7,.2,1) both; }

/* En-tête qui se compacte */
.site-header { transition: box-shadow .25s ease; }
.site-header__logo img { transition: width .3s ease, height .3s ease; }
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(0,0,0,.08); }
.site-header.is-scrolled .site-header__logo img { width: 110px; height: 72px; }

/* Section Matterport (clic-pour-charger) */
.mp { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 16 / 9; background: #000; box-shadow: var(--shadow-lg); max-width: 1100px; margin-inline: auto; }
.mp__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; transition: transform 8s ease, opacity .4s ease; }
.mp:hover .mp__poster { transform: scale(1.04); opacity: .7; }
.mp__play { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .35rem; background: radial-gradient(ellipse at center, rgba(0,0,0,.15), rgba(0,0,0,.55)); border: 0; color: #fff; cursor: pointer; font: inherit; width: 100%; padding: 1rem; }
.mp__play-icon { width: 92px; height: 92px; border-radius: 50%; background: var(--brand-accent); color: #062A3A; display: grid; place-items: center; box-shadow: 0 0 0 0 rgba(0,174,239,.6); animation: pulse-dot 2.2s ease-out infinite; transition: transform .25s ease; }
.mp__play-icon svg { width: 44px; height: 44px; }
.mp__play:hover .mp__play-icon { transform: scale(1.08); }
.mp__play-label { font-family: var(--font-headings); font-size: clamp(1.6rem, 4vw, 2.4rem); margin-top: .5rem; text-shadow: 0 2px 12px rgba(0,0,0,.6); }
.mp__play-sub { font-size: .95rem; color: rgba(255,255,255,.8); }
.mp iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mp.is-loaded .mp__poster, .mp.is-loaded .mp__play { display: none; }
.mp__play--link { text-decoration: none; display: none; }
@media (max-width: 767px) { .mp--3d button.mp__play { display: none; } .mp--3d .mp__play--link { display: grid; } }
@media (max-width: 767px) { .mp { aspect-ratio: 4 / 3; border-radius: var(--radius-md); } .mp__play-icon { width: 72px; height: 72px; } .mp__play-icon svg { width: 34px; height: 34px; } }

@media (prefers-reduced-motion: reduce) {
  .hero--v2 .hero__img, .badge-live__dot, .mp__play-icon, .feature.is-visible .feature__icon, .btn:hover::after { animation: none !important; }
  .reveal--left, .reveal--right, .reveal--zoom, [data-stagger="true"] > * { opacity: 1 !important; transform: none !important; }
  .section__header .eyebrow::after { transform: scaleX(1); animation: none; }
}

/* Les apparitions latérales ne doivent jamais créer de défilement horizontal */
html, body { overflow-x: clip; }
@media (max-width: 767px) { .reveal--left { transform: translateX(-18px); } .reveal--right { transform: translateX(18px); } }

/* Témoignages vidéo YouTube : même façade cliquable que Matterport (aucun témoin YouTube avant le clic) */
.mp--video { aspect-ratio: 16 / 9; border-radius: var(--radius-md); box-shadow: none; margin: 0 0 1.25rem; }
.mp--video .mp__poster { opacity: .8; }
.mp--video .mp__play-icon { width: 64px; height: 64px; }
.mp--video .mp__play-icon svg { width: 26px; height: 26px; margin-left: 4px; }
.mp--video .mp__play-sub { font-weight: 700; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.6); }
@media (max-width: 767px) { .mp--video { aspect-ratio: 16 / 9; } .mp--video .mp__play-icon { width: 56px; height: 56px; } }
