/**
 * Glowbox Motion tokens & systems
 * Easing measured from dior.com: cubic-bezier(0.31, 0, 0.13, 1)
 */

:root {
  --gb-ease-both: cubic-bezier(0.31, 0, 0.13, 1);
  --gb-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --gb-dur-xs: 0.18s;
  --gb-dur-sm: 0.36s;
  --gb-dur-md: 0.5s;
  --gb-dur-lg: 0.7s;
  --gb-dur-xl: 1s;
  --gb-dur-hero-fade: 1.05s;
  --gb-dur-ken: 12s;
  --gb-reveal-y: 1.75rem;
}

/* ── Page enter (Dior header-fade-in / content settle) ── */
html.gb-smooth-scroll {
  scroll-behavior: smooth;
}

body:not(.gb-motion-ready) .glowbox-header-root {
  opacity: 0;
}

body.gb-motion-ready .glowbox-header-root {
  opacity: 1;
  transition: opacity var(--gb-dur-md) var(--gb-ease-both) 0.15s;
}

body:not(.gb-motion-ready) main#main {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
}

body.gb-motion-ready main#main {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    opacity var(--gb-dur-lg) var(--gb-ease-both) 0.08s,
    transform var(--gb-dur-lg) var(--gb-ease-both) 0.08s;
}

/* ── Scroll reveal ── */
.gb-reveal {
  opacity: 0;
  transform: translate3d(0, var(--gb-reveal-y), 0);
  transition:
    opacity var(--gb-dur-lg) var(--gb-ease-both),
    transform var(--gb-dur-lg) var(--gb-ease-both);
  will-change: opacity, transform;
}

.gb-reveal.is-inview {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
}

/* ── Image load settle ── */
.gb-img-reveal {
  opacity: 0;
  transform: scale(1.04);
  transition:
    opacity 0.6s ease-in-out,
    transform 0.9s var(--gb-ease-both);
  will-change: opacity, transform;
}

.gb-img-reveal.is-loaded {
  opacity: 1;
  transform: scale(1);
  will-change: auto;
}

/* Product card hover — media scale 1.05 @ 0.45s (product image only) */
[data-product-card] .product-card__media img {
  transition: transform 0.45s var(--gb-ease-both);
}

[data-product-card]:hover .product-card__media img {
  transform: scale(1.05);
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  html.gb-smooth-scroll {
    scroll-behavior: auto;
  }

  body:not(.gb-motion-ready) .glowbox-header-root,
  body:not(.gb-motion-ready) main#main,
  body.gb-motion-ready .glowbox-header-root,
  body.gb-motion-ready main#main {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .gb-reveal,
  .gb-reveal.is-inview,
  .gb-img-reveal,
  .gb-img-reveal.is-loaded {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  [data-product-card]:hover .product-card__media img {
    transform: none !important;
  }

  .glowbox-slider *,
  .glowbox-slider *::before,
  .glowbox-slider *::after {
    animation: none !important;
    transition: none !important;
  }

  .glowbox-slider__slide .glowbox-slider__title,
  .glowbox-slider__slide .glowbox-slider__desc,
  .glowbox-slider__slide .glowbox-slider__content {
    opacity: 1 !important;
    transform: none !important;
  }

  .glowbox-slider__media-inner {
    transform: none !important;
  }
}
