/* Hold the original carousel until the first centre-out outline is drawn. */
html.jj-vortex-loading .elementor-element-4e6c51b .e-n-carousel {
  visibility: hidden !important;
  opacity: 0 !important;
}

html.jj-vortex-loading .elementor-element-4e6c51b {
  position: relative !important;
  isolation: isolate;
  min-height: 100vh !important;
  min-height: 100svh !important;
}

/* Keep the hero full-screen on every slide, including mobile slides with shorter content. */
.elementor-element-4e6c51b.jj-vortex-ready {
  position: relative !important;
  isolation: isolate;
  min-height: 100vh !important;
  min-height: 100svh !important;
}

.elementor-element-4e6c51b.jj-vortex-ready .e-n-carousel.jj-vortex-source {
  min-height: 100vh !important;
  min-height: 100svh !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: none !important;
}

/* The source carousel is hidden; its native fade must not dim the visible transition layer. */
.elementor-element-4e6c51b.jj-vortex-ready .e-n-carousel.jj-vortex-source .swiper-wrapper {
  transition-duration: 0ms !important;
}

.elementor-element-4e6c51b > .jj-vortex-stage {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  background: #fff;
  perspective: 1500px;
  pointer-events: auto;
}

.elementor-element-4e6c51b .jj-vortex-copy {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  pointer-events: none;
  transform-origin: 50% 50%;
  opacity: 1 !important;
  filter: none !important;
}

/* Keep a newly cloned slide hidden until its shader has drawn the centre-out starting frame. */
.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-preparing {
  opacity: 0 !important;
  pointer-events: none !important;
}

.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-current {
  pointer-events: auto;
  z-index: 1;
}

.elementor-element-4e6c51b .jj-vortex-copy .swiper-slide {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100vh !important;
  min-height: 100svh !important;
  margin: 0 !important;
  transform-origin: 50% 50%;
  opacity: 1 !important;
  filter: none !important;
  transition: none !important;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 0, #000 max(0px, calc(var(--jj-vortex-reveal-radius, 200vmax) - var(--jj-vortex-reveal-feather, 0px))), transparent calc(var(--jj-vortex-reveal-radius, 200vmax) + var(--jj-vortex-reveal-feather, 0px)));
  mask-image: radial-gradient(circle at 50% 50%, #000 0, #000 max(0px, calc(var(--jj-vortex-reveal-radius, 200vmax) - var(--jj-vortex-reveal-feather, 0px))), transparent calc(var(--jj-vortex-reveal-radius, 200vmax) + var(--jj-vortex-reveal-feather, 0px)));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.elementor-element-4e6c51b .jj-vortex-copy .swiper-slide > .e-con {
  position: relative !important;
  min-height: 100vh !important;
  min-height: 100svh !important;
}

/* WebGL replaces just the slide background. Elementor headings and buttons remain above it. */
.elementor-element-4e6c51b .jj-vortex-image.jj-vortex-webgl-active,
.elementor-element-4e6c51b .jj-vortex-image.jj-vortex-webgl-pending {
  background-image: none !important;
}

.elementor-element-4e6c51b .jj-vortex-image > .jj-vortex-canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.elementor-element-4e6c51b .jj-vortex-image > .e-con-inner {
  position: relative;
  z-index: 2;
  min-height: inherit;
}

.elementor-element-4e6c51b .jj-vortex-image > .elementor-absolute {
  z-index: 3 !important;
}

.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-enter {
  z-index: 3;
  animation: none;
  pointer-events: auto;
}

.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-leave {
  z-index: 2;
  animation: none;
  opacity: 1 !important;
  filter: none !important;
  transition: none !important;
  visibility: visible !important;
  mix-blend-mode: normal !important;
}

/* Keep the finished outgoing slide at full strength during the next centre-out reveal. */
.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-leave .swiper-slide,
.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-leave .e-con-inner,
.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-leave .elementor-widget,
.elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-leave .elementor-absolute {
  opacity: 1 !important;
  filter: none !important;
  transition: none !important;
  animation: none !important;
  visibility: visible !important;
}

@media (prefers-reduced-motion: reduce) {
  .elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-enter,
  .elementor-element-4e6c51b .jj-vortex-copy.jj-vortex-leave {
    animation: none !important;
  }
}
