/* LEON Flow Carousel Controls 1.8.4 - arrow center alignment hotfix */
.leon-flow-carousel {
  --leon-flow-gap: 24px;
  --leon-flow-visible-items: 3;
  --leon-flow-viewport-width: 100vw;
  --leon-flow-item-width: 360px;
  --leon-flow-calculated-item-width: calc((var(--leon-flow-viewport-width) - (var(--leon-flow-gap) * (var(--leon-flow-visible-items) - 1))) / var(--leon-flow-visible-items));
  --leon-flow-duration: 36s;
  --leon-flow-item-height: 360px;
  --leon-flow-nav-size: 44px;
  --leon-flow-nav-offset: 12px;
  --leon-flow-dot-size: 8px;
  --leon-flow-dot-gap: 20px;
  overflow: visible;
}

.leon-flow-carousel.leon-flow-ready { overflow: visible; }

.leon-flow-carousel-shell {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex: 0 0 100%;
  overflow: visible;
}

.leon-flow-carousel-viewport {
  width: 100%;
  position: relative;
  overflow: hidden;
  min-width: 0;
}

.leon-flow-overflow-hidden .leon-flow-carousel-viewport { overflow: hidden; }
.leon-flow-overflow-visible .leon-flow-carousel-viewport {
  overflow: visible;
  mask-image: none !important;
  -webkit-mask-image: none !important;
}

.leon-flow-edge-fade-yes.leon-flow-overflow-hidden .leon-flow-carousel-viewport {
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}

.leon-flow-carousel-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  max-width: none;
  will-change: transform;
}

.leon-flow-carousel-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  flex: 0 0 auto;
  gap: var(--leon-flow-gap);
}

.leon-flow-mode-flow .leon-flow-carousel-group { padding-right: var(--leon-flow-gap); }

.leon-flow-carousel-group > .elementor-element {
  min-width: 0;
  overflow: visible;
}

.leon-flow-sizing-visible .leon-flow-carousel-group > .elementor-element {
  flex: 0 0 var(--leon-flow-calculated-item-width);
  width: var(--leon-flow-calculated-item-width);
  max-width: var(--leon-flow-calculated-item-width);
}

.leon-flow-sizing-fixed .leon-flow-carousel-group > .elementor-element {
  flex: 0 0 var(--leon-flow-item-width);
  width: var(--leon-flow-item-width);
  max-width: var(--leon-flow-item-width);
}

.leon-flow-mode-flow .leon-flow-carousel-track {
  animation-duration: var(--leon-flow-duration);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.leon-flow-mode-flow.leon-flow-direction-left .leon-flow-carousel-track { animation-name: leon-flow-left; }
.leon-flow-mode-flow.leon-flow-direction-right .leon-flow-carousel-track { animation-name: leon-flow-right; }

.leon-flow-pause-yes.leon-flow-mode-flow .leon-flow-carousel-viewport:hover .leon-flow-carousel-track,
.leon-flow-pause-yes.leon-flow-mode-flow .leon-flow-carousel-viewport:focus-within .leon-flow-carousel-track {
  animation-play-state: paused;
}

.leon-flow-carousel-group.is-clone { pointer-events: none; }
.leon-flow-clone-pointer-yes .leon-flow-carousel-group.is-clone { pointer-events: auto; }

@keyframes leon-flow-left {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

@keyframes leon-flow-right {
  from { transform: translate3d(-50%, 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}

/* Normal carousel */
.leon-flow-mode-normal .leon-flow-carousel-track {
  animation: none !important;
  transform: translate3d(0, 0, 0);
  transition: transform .42s ease;
}

.leon-flow-mode-normal .leon-flow-carousel-track.is-immediate {
  transition: none !important;
}

.leon-flow-mode-normal .leon-flow-carousel-viewport {
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.leon-flow-mode-normal .leon-flow-carousel-viewport::-webkit-scrollbar { display: none; }

.leon-flow-mode-normal.leon-flow-overflow-visible .leon-flow-carousel-viewport {
  overflow: visible;
  mask-image: none !important;
  -webkit-mask-image: none !important;
}

.leon-flow-mode-normal.leon-flow-overflow-hidden .leon-flow-carousel-viewport {
  overflow: hidden;
}
.leon-flow-mode-normal .leon-flow-carousel-group > .elementor-element { scroll-snap-align: start; }

.leon-flow-grab-yes.leon-flow-mode-normal .leon-flow-carousel-viewport {
  cursor: grab;
  user-select: none;
}

.leon-flow-grab-yes.leon-flow-mode-normal .leon-flow-carousel-viewport.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  scroll-behavior: auto;
}

.leon-flow-grab-yes.leon-flow-mode-normal .leon-flow-carousel-viewport.is-dragging * {
  user-select: none;
  pointer-events: none;
}

/* Equal item height */
.leon-flow-equal-height-yes.leon-flow-ready .leon-flow-carousel-group > .elementor-element { height: var(--leon-flow-item-height); }

.leon-flow-equal-height-yes.leon-flow-stretch-child-yes.leon-flow-ready .leon-flow-carousel-group > .elementor-element > .e-con-inner,
.leon-flow-equal-height-yes.leon-flow-stretch-child-yes.leon-flow-ready .leon-flow-carousel-group > .elementor-element > .elementor-widget-container,
.leon-flow-equal-height-yes.leon-flow-stretch-child-yes.leon-flow-ready .leon-flow-carousel-group > .elementor-element > .elementor-container,
.leon-flow-equal-height-yes.leon-flow-stretch-child-yes.leon-flow-ready .leon-flow-carousel-group > .elementor-element > .elementor-widget-wrap {
  height: 100%;
}

.leon-flow-equal-height-yes.leon-flow-stretch-child-yes.leon-flow-ready .leon-flow-carousel-group > .elementor-element .elementor-widget-container > * { min-height: 100%; }

/* Navigation */
.leon-flow-nav.leon-flow-nav {
  appearance: none !important;
  -webkit-appearance: none !important;
  position: absolute !important;
  top: 50% !important;
  z-index: 50 !important;
  width: var(--leon-flow-nav-size) !important;
  min-width: var(--leon-flow-nav-size) !important;
  max-width: var(--leon-flow-nav-size) !important;
  height: var(--leon-flow-nav-size) !important;
  min-height: var(--leon-flow-nav-size) !important;
  max-height: var(--leon-flow-nav-size) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.94) !important;
  background-image: none !important;
  color: currentColor !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
  transform: translateY(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 0 !important;
  text-indent: 0 !important;
  cursor: pointer !important;
  overflow: hidden !important;
  transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease !important;
}

.leon-flow-nav.leon-flow-nav::before {
  content: '' !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  width: 9px !important;
  height: 9px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: 0 !important;
  box-sizing: border-box !important;
}

.leon-flow-nav-prev::before {
  border-left: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  transform: translate(-35%, -50%) rotate(45deg) !important;
}

.leon-flow-nav-next::before {
  border-right: 2px solid currentColor !important;
  border-top: 2px solid currentColor !important;
  transform: translate(-65%, -50%) rotate(45deg) !important;
}

.leon-flow-nav.leon-flow-nav:hover {
  transform: translateY(-50%) scale(1.04) !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16) !important;
}

.leon-flow-nav.leon-flow-nav:disabled,
.leon-flow-nav.leon-flow-nav[aria-disabled="true"] {
  opacity: .35 !important;
  cursor: default !important;
  pointer-events: none !important;
}

.leon-flow-nav-prev.leon-flow-nav-prev { left: var(--leon-flow-nav-offset) !important; }
.leon-flow-nav-next.leon-flow-nav-next { right: var(--leon-flow-nav-offset) !important; }
.leon-flow-nav svg { display: none !important; }

.leon-flow-dots-wrap {
  width: 100%;
  position: relative;
  z-index: 3;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--leon-flow-dot-gap);
  margin-top: 50px;
}

.leon-flow-dot {
  width: var(--leon-flow-dot-size);
  height: var(--leon-flow-dot-size);
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: currentColor;
  opacity: .28;
  cursor: pointer;
  transition: all .2s ease;
}

.leon-flow-dot.is-active {
  opacity: 1;
  transform: scale(1.25);
  width:30px;
}

.leon-flow-dot:focus-visible,
.leon-flow-nav:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .leon-flow-mobile-scroll .leon-flow-carousel-viewport {
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    mask-image: none !important;
    -webkit-mask-image: none !important;
  }

  .leon-flow-mobile-scroll .leon-flow-carousel-track {
    animation: none !important;
    width: auto;
  }

  .leon-flow-mobile-scroll .leon-flow-carousel-group { padding-right: 0; }
  .leon-flow-mobile-scroll .leon-flow-carousel-group.is-clone { display: none; }
  .leon-flow-mobile-scroll .leon-flow-carousel-group > .elementor-element { scroll-snap-align: start; }

  .leon-flow-mode-normal.leon-flow-mobile-scroll .leon-flow-carousel-viewport,
  .leon-flow-mode-normal.leon-flow-mobile-same .leon-flow-carousel-viewport {
    overflow: hidden;
  }

  .leon-flow-mode-normal.leon-flow-overflow-visible.leon-flow-mobile-scroll .leon-flow-carousel-viewport,
  .leon-flow-mode-normal.leon-flow-overflow-visible.leon-flow-mobile-same .leon-flow-carousel-viewport {
    overflow: visible;
  }

  .leon-flow-mode-normal.leon-flow-mobile-scroll .leon-flow-carousel-track,
  .leon-flow-mode-normal.leon-flow-mobile-same .leon-flow-carousel-track {
    transform: translate3d(0, 0, 0);
    transition: transform .42s ease;
  }

  .leon-flow-mode-normal.leon-flow-mobile-scroll .leon-flow-carousel-track.is-immediate,
  .leon-flow-mode-normal.leon-flow-mobile-same .leon-flow-carousel-track.is-immediate {
    transition: none !important;
  }

  .leon-flow-mobile-stack .leon-flow-carousel-viewport {
    overflow: visible;
    mask-image: none !important;
    -webkit-mask-image: none !important;
  }

  .leon-flow-mobile-stack .leon-flow-carousel-track,
  .leon-flow-mobile-stack .leon-flow-carousel-group {
    display: flex;
    flex-direction: column;
    width: 100%;
    animation: none !important;
    transform: none !important;
  }

  .leon-flow-mobile-stack .leon-flow-carousel-group {
    gap: var(--leon-flow-gap);
    padding-right: 0;
  }

  .leon-flow-mobile-stack .leon-flow-carousel-group.is-clone,
  .leon-flow-mobile-stack .leon-flow-nav,
  .leon-flow-mobile-stack .leon-flow-dots-wrap { display: none; }

  .leon-flow-mobile-stack .leon-flow-carousel-group > .elementor-element {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    height: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .leon-flow-carousel-track {
    animation: none !important;
  }

  .leon-flow-carousel-group.is-clone { display: none; }
  .leon-flow-carousel-viewport {
    overflow-x: auto;
    scroll-behavior: auto;
  }

  .leon-flow-mode-normal .leon-flow-carousel-track {
    transition: none !important;
  }

  .leon-flow-mode-normal.leon-flow-overflow-hidden .leon-flow-carousel-viewport {
    overflow: hidden;
  }

  .leon-flow-mode-normal.leon-flow-overflow-visible .leon-flow-carousel-viewport {
    overflow: visible;
  }
}
