/*
  Alterra VR / Birthday / Animation v3
  Scope: real-photo gallery, ratings, reviews and photo lightbox only.
  The original HTML, card sizes, layout, copy, photography, links and
  click behavior are untouched. Uses the already-approved reveal observer.
  Disabled by the existing bp-motion-v1 preference toggle.
*/
@keyframes bp-v3-gallery-photo-in {
  from { opacity: .28; }
  to   { opacity: 1; }
}
@keyframes bp-v3-trust-in {
  from { opacity: .5; }
  to   { opacity: 1; }
}
@keyframes bp-v3-lightbox-in {
  from { opacity: .35; transform: scale(.985); }
  to   { opacity: 1; transform: scale(1); }
}

/* Bring gallery frames in smoothly. Keep the original hover lift intact. */
html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo.bp-reveal {
  transition:
    opacity 640ms cubic-bezier(.2,.73,.25,1),
    transform 380ms cubic-bezier(.2,.7,.25,1),
    border-color 220ms ease,
    box-shadow 220ms ease;
}
html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo:nth-child(1) { --bp-v3-photo-delay: 0ms; }
html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo:nth-child(2) { --bp-v3-photo-delay: 75ms; }
html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo:nth-child(3) { --bp-v3-photo-delay: 150ms; }
html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo:nth-child(4) { --bp-v3-photo-delay: 225ms; }
html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo:nth-child(5) { --bp-v3-photo-delay: 300ms; }
html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo.bp-reveal.is-in img {
  animation: bp-v3-gallery-photo-in 630ms ease-out both;
  animation-delay: var(--bp-v3-photo-delay, 0ms);
}

/* Trust panels: very subtle, no positional or sizing changes. */
html.bp-motion-v1 .bp-proof-live-trust.bp-reveal.is-in > :nth-child(1) {
  animation: bp-v3-trust-in 530ms ease-out both;
}
html.bp-motion-v1 .bp-proof-live-trust.bp-reveal.is-in > :nth-child(2) {
  animation: bp-v3-trust-in 530ms 90ms ease-out both;
}
html.bp-motion-v1 .bp-proof-live-trust.bp-reveal.is-in > :nth-child(3) {
  animation: bp-v3-trust-in 530ms 180ms ease-out both;
}

/* Reviews already have bp-reveal; add small in-row stagger and discreet hover. */
html.bp-motion-v1 .bp-proof-live-reviews .bp-proof-live-review.bp-reveal {
  transition:
    opacity 690ms cubic-bezier(.2,.73,.25,1),
    transform 690ms cubic-bezier(.2,.73,.25,1),
    border-color 250ms ease,
    box-shadow 250ms ease;
}
html.bp-motion-v1 .bp-proof-live-review:nth-child(1) { --bp-v3-review-delay: 0ms; }
html.bp-motion-v1 .bp-proof-live-review:nth-child(2) { --bp-v3-review-delay: 90ms; }
html.bp-motion-v1 .bp-proof-live-review:nth-child(3) { --bp-v3-review-delay: 180ms; }
html.bp-motion-v1 .bp-proof-live-review:nth-child(4) { --bp-v3-review-delay: 55ms; }
html.bp-motion-v1 .bp-proof-live-review:nth-child(5) { --bp-v3-review-delay: 145ms; }
html.bp-motion-v1 .bp-proof-live-reviews .bp-proof-live-review.bp-reveal.is-in {
  transition-delay: var(--bp-v3-review-delay, 0ms), var(--bp-v3-review-delay, 0ms), 0ms, 0ms;
}

/* Hover effects exist only for real mouse pointers. Touch stays unchanged. */
@media (hover: hover) and (pointer: fine) {
  html.bp-motion-v1 .bp-proof-live-gallery .bp-proof-live-photo.is-in img {
    transition: transform 420ms cubic-bezier(.2,.7,.25,1), filter 350ms ease;
  }
  html.bp-motion-v1 .bp-proof-live-gallery .bp-proof-live-photo.is-in:hover img {
    transform: scale(1.045);
  }
  html.bp-motion-v1 .bp-proof-live-reviews .bp-proof-live-review.is-in:hover {
    transform: translateY(-3px);
    border-color: rgba(78,228,245,.44);
    box-shadow: 0 17px 34px rgba(0,0,0,.22), 0 0 16px rgba(42,211,235,.06);
    transition-delay: 0ms;
  }
}

html.bp-motion-v1 .bp-proof-live-gallery .bp-proof-live-photo:focus-visible {
  outline: 2px solid #8cf4ff;
  outline-offset: 3px;
}

/* Enlarged photo: a one-time gentle arrival without touching modal behavior. */
html.bp-motion-v1 .bp-proof-live-lightbox:not([hidden]) img {
  animation: bp-v3-lightbox-in 280ms cubic-bezier(.2,.73,.25,1) both;
}

/* Phones and tablets: reduce durations and row staggering. */
@media (max-width: 1100px) {
  html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo.bp-reveal {
    transition-duration: 450ms, 280ms, 220ms, 220ms;
  }
  html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo:nth-child(n) {
    --bp-v3-photo-delay: 0ms;
  }
  html.bp-motion-v1 .bp-proof-live-gallery > .bp-proof-live-photo.bp-reveal.is-in img {
    animation-duration: 440ms;
  }
  html.bp-motion-v1 .bp-proof-live-reviews .bp-proof-live-review.bp-reveal {
    transition-duration: 460ms, 460ms, 220ms, 220ms;
  }
  html.bp-motion-v1 .bp-proof-live-review:nth-child(n) {
    --bp-v3-review-delay: 0ms;
  }
  html.bp-motion-v1 .bp-proof-live-trust.bp-reveal.is-in > * {
    animation-duration: 380ms;
    animation-delay: 0ms;
  }
}

/* Applies even if a user changes the OS preference while the page is open. */
@media (prefers-reduced-motion: reduce) {
  .bp-proof-live-gallery > .bp-proof-live-photo.bp-reveal,
  .bp-proof-live-reviews .bp-proof-live-review.bp-reveal,
  .bp-proof-live-gallery .bp-proof-live-photo img {
    transition: none !important;
    transition-delay: 0ms !important;
  }
  .bp-proof-live-gallery > .bp-proof-live-photo img,
  .bp-proof-live-trust > *,
  .bp-proof-live-lightbox img {
    animation: none !important;
    opacity: 1 !important;
  }
  .bp-proof-live-reviews .bp-proof-live-review {
    transform: none !important;
  }
}
