/*==============================================================================
  TMC FADE-IN ANIMATIONS
  Simple keyframe fade-in with directional offset. Uses Elementor's animation
  duration / delay controls directly.
==============================================================================*/

@keyframes tmcAnimationFadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.tmcFadeInUp {
  animation-name: tmcAnimationFadeInUp;
}

.tmcFadeInUp.animated {
  animation-duration: 1s;
}

/*==============================================================================
  TMC SLIDE-IN ANIMATIONS  (4 directions × Primary & Secondary)

  Uses CSS keyframe animations (not transitions) so the initial offset state is
  guaranteed via animation-fill-mode: both — works correctly even for elements
  that are in the viewport on page load (above the fold).

  "Normal" speed:  content 0.6s / 0.2s delay,  overlay 0.8s / 0.65s delay
  "Fast" speed:    content 0.3s / 0.1s delay,  overlay 0.4s / 0.33s delay
  "Slow" speed:    content 1.2s / 0.4s delay,  overlay 1.6s / 1.3s delay

  Elementor adds .animated-fast or .animated-slow based on the Animation Duration control.
  Elementor adds .animated when the element enters the viewport.

  Supports both legacy Elementor sections (.elementor-section-boxed /
  .elementor-container) and Flexbox Containers (.e-con-boxed / .e-con-inner).
==============================================================================*/

/* ── Keyframes ─────────────────────────────────────────────────────────────── */

/* Content slide keyframes */
@keyframes tmcSlideInUpContent   { from { transform: translate3d(0,  100%, 0); } to { transform: none; } }
@keyframes tmcSlideInDownContent  { from { transform: translate3d(0, -100%, 0); } to { transform: none; } }
@keyframes tmcSlideInLeftContent  { from { transform: translate3d( 100%, 0, 0); } to { transform: none; } }
@keyframes tmcSlideInRightContent { from { transform: translate3d(-100%, 0, 0); } to { transform: none; } }

/* Overlay sweep keyframes */
@keyframes tmcSlideInUpOverlay    { from { transform: scaleY(1); } to { transform: scaleY(0); } }
@keyframes tmcSlideInDownOverlay  { from { transform: scaleY(1); } to { transform: scaleY(0); } }
@keyframes tmcSlideInLeftOverlay  { from { transform: scaleX(1); } to { transform: scaleX(0); } }
@keyframes tmcSlideInRightOverlay { from { transform: scaleX(1); } to { transform: scaleX(0); } }

/* ── 1. Colour — primary vs secondary ─────────────────────────────────────── */
.tmcSlideInUp,
.tmcSlideInDown,
.tmcSlideInLeft,
.tmcSlideInRight {
  --tmc-slide-color: var(--e-global-color-primary);
}
.tmcSlideInUpSecondary,
.tmcSlideInDownSecondary,
.tmcSlideInLeftSecondary,
.tmcSlideInRightSecondary {
  --tmc-slide-color: var(--e-global-color-secondary);
}

/* ── 2. Override Elementor's pre-animation visibility:hidden ─────────────── */
.tmcSlideInUp.elementor-invisible,
.tmcSlideInDown.elementor-invisible,
.tmcSlideInLeft.elementor-invisible,
.tmcSlideInRight.elementor-invisible,
.tmcSlideInUpSecondary.elementor-invisible,
.tmcSlideInDownSecondary.elementor-invisible,
.tmcSlideInLeftSecondary.elementor-invisible,
.tmcSlideInRightSecondary.elementor-invisible {
  visibility: visible !important;
}

/* ── 3. Parent overflow clipping ───────────────────────────────────────────── */
.tmcSlideInUp,
.tmcSlideInDown,
.tmcSlideInLeft,
.tmcSlideInRight,
.tmcSlideInUpSecondary,
.tmcSlideInDownSecondary,
.tmcSlideInLeftSecondary,
.tmcSlideInRightSecondary {
  overflow: hidden;
}

/*==============================================================================
  NON-BOXED VARIANT  (widgets + non-boxed sections / non-boxed containers)
==============================================================================*/

/* ── 4. Direct child: base overlay setup ──────────────────────────────────── */
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container {
  position: relative;
  overflow: hidden;
}

/* ── 5. Overlay pseudo-element ─────────────────────────────────────────────── */
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  content: '';
  background-color: var(--tmc-slide-color);
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

/* ── 6. Direction-specific overlay transform-origin ───────────────────────── */
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUp:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUpSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  transform-origin: left top;
}
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDown:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDownSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  transform-origin: left bottom;
}
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeft:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeftSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  transform-origin: left center;
}
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRight:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRightSecondary:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  transform-origin: right center;
}

/* ── 7. Animated — non-boxed content ──────────────────────────────────────── */
.tmcSlideInUp.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUp.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUp.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInUpSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUpSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUpSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container {
  animation: tmcSlideInUpContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}
.tmcSlideInDown.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDown.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDown.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInDownSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDownSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDownSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container {
  animation: tmcSlideInDownContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}
.tmcSlideInLeft.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeft.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeft.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInLeftSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeftSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeftSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container {
  animation: tmcSlideInLeftContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}
.tmcSlideInRight.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRight.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRight.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInRightSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRightSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRightSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container {
  animation: tmcSlideInRightContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}

/* ── 8. Animated — non-boxed overlay ──────────────────────────────────────── */
.tmcSlideInUp.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUp.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUp.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInUpSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUpSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUpSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  animation: tmcSlideInUpOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}
.tmcSlideInDown.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDown.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDown.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDownSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDownSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDownSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  animation: tmcSlideInDownOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}
.tmcSlideInLeft.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeft.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeft.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeftSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeftSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeftSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  animation: tmcSlideInLeftOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}
.tmcSlideInRight.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRight.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRight.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRightSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRightSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRightSecondary.animated:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  animation: tmcSlideInRightOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}

/*==============================================================================
  BOXED VARIANT  (.elementor-section-boxed / .e-con-boxed)
  Overlay is on the outer element; content child (.elementor-container /
  .e-con-inner) slides in.
==============================================================================*/

/* ── 9. Outer element: relative position for overlay ─────────────────────── */
.tmcSlideInUp.elementor-section-boxed,
.tmcSlideInDown.elementor-section-boxed,
.tmcSlideInLeft.elementor-section-boxed,
.tmcSlideInRight.elementor-section-boxed,
.tmcSlideInUpSecondary.elementor-section-boxed,
.tmcSlideInDownSecondary.elementor-section-boxed,
.tmcSlideInLeftSecondary.elementor-section-boxed,
.tmcSlideInRightSecondary.elementor-section-boxed,
.tmcSlideInUp.e-con-boxed,
.tmcSlideInDown.e-con-boxed,
.tmcSlideInLeft.e-con-boxed,
.tmcSlideInRight.e-con-boxed,
.tmcSlideInUpSecondary.e-con-boxed,
.tmcSlideInDownSecondary.e-con-boxed,
.tmcSlideInLeftSecondary.e-con-boxed,
.tmcSlideInRightSecondary.e-con-boxed {
  position: relative;
  overflow: hidden;
}

/* ── 10. Overlay pseudo-element ────────────────────────────────────────────── */
.tmcSlideInUp.elementor-section-boxed::after,
.tmcSlideInDown.elementor-section-boxed::after,
.tmcSlideInLeft.elementor-section-boxed::after,
.tmcSlideInRight.elementor-section-boxed::after,
.tmcSlideInUpSecondary.elementor-section-boxed::after,
.tmcSlideInDownSecondary.elementor-section-boxed::after,
.tmcSlideInLeftSecondary.elementor-section-boxed::after,
.tmcSlideInRightSecondary.elementor-section-boxed::after,
.tmcSlideInUp.e-con-boxed::after,
.tmcSlideInDown.e-con-boxed::after,
.tmcSlideInLeft.e-con-boxed::after,
.tmcSlideInRight.e-con-boxed::after,
.tmcSlideInUpSecondary.e-con-boxed::after,
.tmcSlideInDownSecondary.e-con-boxed::after,
.tmcSlideInLeftSecondary.e-con-boxed::after,
.tmcSlideInRightSecondary.e-con-boxed::after {
  content: '';
  background-color: var(--tmc-slide-color);
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

/* ── 11. Direction-specific overlay transform-origin ──────────────────────── */
.tmcSlideInUp.elementor-section-boxed::after,
.tmcSlideInUpSecondary.elementor-section-boxed::after,
.tmcSlideInUp.e-con-boxed::after,
.tmcSlideInUpSecondary.e-con-boxed::after {
  transform-origin: left top;
}
.tmcSlideInDown.elementor-section-boxed::after,
.tmcSlideInDownSecondary.elementor-section-boxed::after,
.tmcSlideInDown.e-con-boxed::after,
.tmcSlideInDownSecondary.e-con-boxed::after {
  transform-origin: left bottom;
}
.tmcSlideInLeft.elementor-section-boxed::after,
.tmcSlideInLeftSecondary.elementor-section-boxed::after,
.tmcSlideInLeft.e-con-boxed::after,
.tmcSlideInLeftSecondary.e-con-boxed::after {
  transform-origin: left center;
}
.tmcSlideInRight.elementor-section-boxed::after,
.tmcSlideInRightSecondary.elementor-section-boxed::after,
.tmcSlideInRight.e-con-boxed::after,
.tmcSlideInRightSecondary.e-con-boxed::after {
  transform-origin: right center;
}

/* ── 12. Animated — boxed content ─────────────────────────────────────────── */
.tmcSlideInUp.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInUpSecondary.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInUp.animated.e-con-boxed > .e-con-inner,
.tmcSlideInUpSecondary.animated.e-con-boxed > .e-con-inner {
  animation: tmcSlideInUpContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}
.tmcSlideInDown.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInDownSecondary.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInDown.animated.e-con-boxed > .e-con-inner,
.tmcSlideInDownSecondary.animated.e-con-boxed > .e-con-inner {
  animation: tmcSlideInDownContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}
.tmcSlideInLeft.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInLeftSecondary.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInLeft.animated.e-con-boxed > .e-con-inner,
.tmcSlideInLeftSecondary.animated.e-con-boxed > .e-con-inner {
  animation: tmcSlideInLeftContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}
.tmcSlideInRight.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInRightSecondary.animated.elementor-section-boxed > .elementor-container,
.tmcSlideInRight.animated.e-con-boxed > .e-con-inner,
.tmcSlideInRightSecondary.animated.e-con-boxed > .e-con-inner {
  animation: tmcSlideInRightContent .6s cubic-bezier(.565,.43,.24,.92) .2s both;
}

/* ── 13. Animated — boxed overlay ─────────────────────────────────────────── */
.tmcSlideInUp.animated.elementor-section-boxed::after,
.tmcSlideInUpSecondary.animated.elementor-section-boxed::after,
.tmcSlideInUp.animated.e-con-boxed::after,
.tmcSlideInUpSecondary.animated.e-con-boxed::after {
  animation: tmcSlideInUpOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}
.tmcSlideInDown.animated.elementor-section-boxed::after,
.tmcSlideInDownSecondary.animated.elementor-section-boxed::after,
.tmcSlideInDown.animated.e-con-boxed::after,
.tmcSlideInDownSecondary.animated.e-con-boxed::after {
  animation: tmcSlideInDownOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}
.tmcSlideInLeft.animated.elementor-section-boxed::after,
.tmcSlideInLeftSecondary.animated.elementor-section-boxed::after,
.tmcSlideInLeft.animated.e-con-boxed::after,
.tmcSlideInLeftSecondary.animated.e-con-boxed::after {
  animation: tmcSlideInLeftOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}
.tmcSlideInRight.animated.elementor-section-boxed::after,
.tmcSlideInRightSecondary.animated.elementor-section-boxed::after,
.tmcSlideInRight.animated.e-con-boxed::after,
.tmcSlideInRightSecondary.animated.e-con-boxed::after {
  animation: tmcSlideInRightOverlay .8s cubic-bezier(.565,.43,.24,.92) .65s both;
}

/*==============================================================================
  SPEED VARIANTS  (.fast = 2x speed, .slow = 1/2 speed)
  Elementor adds .animated-fast or .animated-slow based on the Animation Duration control.
  We override animation-duration and animation-delay on the content and overlay.
==============================================================================*/

/* ── FAST — non-boxed ──────────────────────────────────────────────────────── */
.tmcSlideInUp.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUp.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUp.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInDown.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDown.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDown.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInLeft.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeft.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeft.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInRight.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRight.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRight.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInUpSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUpSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUpSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInDownSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDownSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDownSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInLeftSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeftSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeftSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInRightSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRightSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRightSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container {
  animation-duration: .3s;
  animation-delay: .1s;
}
.tmcSlideInUp.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUp.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUp.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDown.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDown.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDown.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeft.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeft.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeft.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRight.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRight.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRight.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInUpSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUpSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUpSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDownSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDownSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDownSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeftSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeftSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeftSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRightSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRightSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRightSecondary.animated-fast:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  animation-duration: .4s;
  animation-delay: .33s;
}

/* ── SLOW — non-boxed ──────────────────────────────────────────────────────── */
.tmcSlideInUp.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUp.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUp.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInDown.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDown.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDown.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInLeft.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeft.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeft.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInRight.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRight.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRight.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInUpSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInUpSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInUpSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInDownSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInDownSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInDownSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInLeftSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInLeftSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInLeftSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container,
.tmcSlideInRightSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container,
.tmcSlideInRightSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap,
.tmcSlideInRightSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container {
  animation-duration: 1.2s;
  animation-delay: .4s;
}
.tmcSlideInUp.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUp.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUp.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDown.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDown.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDown.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeft.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeft.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeft.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRight.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRight.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRight.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInUpSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInUpSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInUpSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInDownSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInDownSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInDownSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInLeftSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInLeftSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInLeftSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after,
.tmcSlideInRightSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-container::after,
.tmcSlideInRightSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-widget-wrap::after,
.tmcSlideInRightSecondary.animated-slow:not(.elementor-section-boxed):not(.e-con-boxed) > .elementor-container::after {
  animation-duration: 1.6s;
  animation-delay: 1.3s;
}

/* ── FAST — boxed ──────────────────────────────────────────────────────────── */
.tmcSlideInUp.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInDown.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInLeft.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInRight.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInUpSecondary.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInDownSecondary.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInLeftSecondary.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInRightSecondary.animated-fast.elementor-section-boxed > .elementor-container,
.tmcSlideInUp.animated-fast.e-con-boxed > .e-con-inner,
.tmcSlideInDown.animated-fast.e-con-boxed > .e-con-inner,
.tmcSlideInLeft.animated-fast.e-con-boxed > .e-con-inner,
.tmcSlideInRight.animated-fast.e-con-boxed > .e-con-inner,
.tmcSlideInUpSecondary.animated-fast.e-con-boxed > .e-con-inner,
.tmcSlideInDownSecondary.animated-fast.e-con-boxed > .e-con-inner,
.tmcSlideInLeftSecondary.animated-fast.e-con-boxed > .e-con-inner,
.tmcSlideInRightSecondary.animated-fast.e-con-boxed > .e-con-inner {
  animation-duration: .3s;
  animation-delay: .1s;
}
.tmcSlideInUp.animated-fast.elementor-section-boxed::after,
.tmcSlideInDown.animated-fast.elementor-section-boxed::after,
.tmcSlideInLeft.animated-fast.elementor-section-boxed::after,
.tmcSlideInRight.animated-fast.elementor-section-boxed::after,
.tmcSlideInUpSecondary.animated-fast.elementor-section-boxed::after,
.tmcSlideInDownSecondary.animated-fast.elementor-section-boxed::after,
.tmcSlideInLeftSecondary.animated-fast.elementor-section-boxed::after,
.tmcSlideInRightSecondary.animated-fast.elementor-section-boxed::after,
.tmcSlideInUp.animated-fast.e-con-boxed::after,
.tmcSlideInDown.animated-fast.e-con-boxed::after,
.tmcSlideInLeft.animated-fast.e-con-boxed::after,
.tmcSlideInRight.animated-fast.e-con-boxed::after,
.tmcSlideInUpSecondary.animated-fast.e-con-boxed::after,
.tmcSlideInDownSecondary.animated-fast.e-con-boxed::after,
.tmcSlideInLeftSecondary.animated-fast.e-con-boxed::after,
.tmcSlideInRightSecondary.animated-fast.e-con-boxed::after {
  animation-duration: .4s;
  animation-delay: .33s;
}

/* ── SLOW — boxed ──────────────────────────────────────────────────────────── */
.tmcSlideInUp.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInDown.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInLeft.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInRight.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInUpSecondary.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInDownSecondary.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInLeftSecondary.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInRightSecondary.animated-slow.elementor-section-boxed > .elementor-container,
.tmcSlideInUp.animated-slow.e-con-boxed > .e-con-inner,
.tmcSlideInDown.animated-slow.e-con-boxed > .e-con-inner,
.tmcSlideInLeft.animated-slow.e-con-boxed > .e-con-inner,
.tmcSlideInRight.animated-slow.e-con-boxed > .e-con-inner,
.tmcSlideInUpSecondary.animated-slow.e-con-boxed > .e-con-inner,
.tmcSlideInDownSecondary.animated-slow.e-con-boxed > .e-con-inner,
.tmcSlideInLeftSecondary.animated-slow.e-con-boxed > .e-con-inner,
.tmcSlideInRightSecondary.animated-slow.e-con-boxed > .e-con-inner {
  animation-duration: 1.2s;
  animation-delay: .4s;
}
.tmcSlideInUp.animated-slow.elementor-section-boxed::after,
.tmcSlideInDown.animated-slow.elementor-section-boxed::after,
.tmcSlideInLeft.animated-slow.elementor-section-boxed::after,
.tmcSlideInRight.animated-slow.elementor-section-boxed::after,
.tmcSlideInUpSecondary.animated-slow.elementor-section-boxed::after,
.tmcSlideInDownSecondary.animated-slow.elementor-section-boxed::after,
.tmcSlideInLeftSecondary.animated-slow.elementor-section-boxed::after,
.tmcSlideInRightSecondary.animated-slow.elementor-section-boxed::after,
.tmcSlideInUp.animated-slow.e-con-boxed::after,
.tmcSlideInDown.animated-slow.e-con-boxed::after,
.tmcSlideInLeft.animated-slow.e-con-boxed::after,
.tmcSlideInRight.animated-slow.e-con-boxed::after,
.tmcSlideInUpSecondary.animated-slow.e-con-boxed::after,
.tmcSlideInDownSecondary.animated-slow.e-con-boxed::after,
.tmcSlideInLeftSecondary.animated-slow.e-con-boxed::after,
.tmcSlideInRightSecondary.animated-slow.e-con-boxed::after {
  animation-duration: 1.6s;
  animation-delay: 1.3s;
}
