/* Slide-in animations for headings, text and buttons */
/* Elements targeted: headings and paragraphs inside .et_pb_text, and anchor buttons (.et_pb_button) */

/* Base hidden state — only apply to elements marked for animation */
.animate-slide,
.animate-slide .et_pb_text .et_pb_text_inner h2,
.animate-slide .et_pb_text .et_pb_text_inner p,
.animate-slide a.et_pb_button {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 900ms cubic-bezier(.2, .9, .2, 1), transform 900ms cubic-bezier(.2, .9, .2, 1);
  will-change: transform, opacity;
}

/* When element becomes visible */
.in-view {
  opacity: 1 !important;
  transform: translateX(0) !important;
}

/* Slightly stronger effect for buttons when inside animate container */
.animate-slide a.et_pb_button {
  transform: translateX(-40px);
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {

  .animate-slide,
  .animate-slide .et_pb_text .et_pb_text_inner h2,
  .animate-slide .et_pb_text .et_pb_text_inner p,
  .animate-slide a.et_pb_button {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* Preloader UI */
.video-preloader {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #464646;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0s ease, visibility 0s ease;
}

.video-preloader.hide {
  opacity: 0;
  visibility: hidden;
}

.video-preloader img {
  width: 64px;
  height: 64px;
}

/* Zoom In Animation for Hero Text */
.zoom-in-text {
  opacity: 0;
  transform: scale(0.2);
  transition: opacity 0.3s cubic-bezier(0.2, 0.9, 0.2, 1), transform 0.3s cubic-bezier(0.2, 0.9, 0.2, 1);
  will-change: transform, opacity;
}

.zoom-in-text.in-view {
  opacity: 1 !important;
  transform: scale(1) !important;
}