@charset "UTF-8";
/* =====================================
   COMMON BASE TARGET
===================================== */
[class*=wcf-starter-animations-] .elementor-widget-container > *,
[class*=wcf-starter-animations-] > *,
.wcf-target-self[class*=wcf-starter-animations-] {
  will-change: transform, opacity, clip-path;
}

/* =====================================
   COMMON ANIMATION SETTINGS
===================================== */
.wcf-animate[class*=wcf-starter-animations-] .elementor-widget-container > *,
.wcf-animate[class*=wcf-starter-animations-] > *,
.wcf-animate.wcf-target-self[class*=wcf-starter-animations-] {
  animation-duration: var(--wcf-duration, 700ms);
  animation-delay: var(--wcf-delay, 0ms);
  animation-timing-function: var(--wcf-ease, ease);
  animation-fill-mode: forwards;
}

/* =====================================
   REVEAL ENGINE (FIXED TARGET)
===================================== */
/* Initial Hidden State */
.wcf-starter-animations-reveal .elementor-widget-container > *,
.wcf-starter-animations-reveal > *,
.wcf-starter-animations-reveal.wcf-target-self {
  opacity: 0;
}

/* Bottom */
.wcf-reveal-bottom.wcf-starter-animations-reveal .elementor-widget-container > *,
.wcf-reveal-bottom.wcf-starter-animations-reveal > *,
.wcf-reveal-bottom.wcf-starter-animations-reveal.wcf-target-self {
  clip-path: inset(100% 0 0 0);
}

/* Top */
.wcf-reveal-top.wcf-starter-animations-reveal .elementor-widget-container > *,
.wcf-reveal-top.wcf-starter-animations-reveal > *,
.wcf-reveal-top.wcf-starter-animations-reveal.wcf-target-self {
  clip-path: inset(0 0 100% 0);
}

/* Left */
.wcf-reveal-left.wcf-starter-animations-reveal .elementor-widget-container > *,
.wcf-reveal-left.wcf-starter-animations-reveal > *,
.wcf-reveal-left.wcf-starter-animations-reveal.wcf-target-self {
  clip-path: inset(0 100% 0 0);
}

/* Right */
.wcf-reveal-right.wcf-starter-animations-reveal .elementor-widget-container > *,
.wcf-reveal-right.wcf-starter-animations-reveal > *,
.wcf-reveal-right.wcf-starter-animations-reveal.wcf-target-self {
  clip-path: inset(0 0 0 100%);
}

/* Center */
.wcf-reveal-center.wcf-starter-animations-reveal .elementor-widget-container > *,
.wcf-reveal-center.wcf-starter-animations-reveal > *,
.wcf-reveal-center.wcf-starter-animations-reveal.wcf-target-self {
  clip-path: inset(0 50% 0 50%);
}

/* Animate */
.wcf-animate.wcf-starter-animations-reveal .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-reveal > *,
.wcf-animate.wcf-starter-animations-reveal.wcf-target-self {
  animation: wcf-reveal-anim var(--wcf-duration, 700ms) var(--wcf-ease, ease) forwards;
}

@keyframes wcf-reveal-anim {
  to {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
/* =====================================
   TRANSFORM ANIMATIONS
===================================== */
/* Scale Up */
.wcf-starter-animations-scale-up .elementor-widget-container > *,
.wcf-starter-animations-scale-up > *,
.wcf-starter-animations-scale-up.wcf-target-self {
  transform: scale(var(--wcf-scale-start, 0.6));
  opacity: var(--wcf-scale-opacity, 0);
  transform-origin: var(--wcf-scale-origin, center);
}

.wcf-animate.wcf-starter-animations-scale-up .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-scale-up > *,
.wcf-animate.wcf-starter-animations-scale-up.wcf-target-self {
  animation-name: wcf-scale-up;
}

@keyframes wcf-scale-up {
  to {
    transform: scale(var(--wcf-scale-end, 1));
    opacity: 1;
  }
}
/* Rotate In */
.wcf-starter-animations-rotate-in .elementor-widget-container > *,
.wcf-starter-animations-rotate-in > *,
.wcf-starter-animations-rotate-in.wcf-target-self {
  transform: rotate(-45deg);
  opacity: 0;
}

.wcf-animate.wcf-starter-animations-rotate-in .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-rotate-in > *,
.wcf-animate.wcf-starter-animations-rotate-in.wcf-target-self {
  animation-name: wcf-rotate-in;
}

@keyframes wcf-rotate-in {
  to {
    transform: rotate(0);
    opacity: 1;
  }
}
/* Slide Up */
/* Base Slide State */
.wcf-starter-animations-slide .elementor-widget-container > *,
.wcf-starter-animations-slide > *,
.wcf-starter-animations-slide.wcf-target-self {
  opacity: 0;
}

/* Bottom → Top */
.wcf-slide-bottom.wcf-starter-animations-slide .elementor-widget-container > *,
.wcf-slide-bottom.wcf-starter-animations-slide > *,
.wcf-slide-bottom.wcf-starter-animations-slide.wcf-target-self {
  transform: translateY(var(--wcf-slide-distance, 60px));
}

/* Top → Bottom */
.wcf-slide-top.wcf-starter-animations-slide .elementor-widget-container > *,
.wcf-slide-top.wcf-starter-animations-slide > *,
.wcf-slide-top.wcf-starter-animations-slide.wcf-target-self {
  transform: translateY(calc(var(--wcf-slide-distance, 60px) * -1));
}

/* Left → Right */
.wcf-slide-left.wcf-starter-animations-slide .elementor-widget-container > *,
.wcf-slide-left.wcf-starter-animations-slide > *,
.wcf-slide-left.wcf-starter-animations-slide.wcf-target-self {
  transform: translateX(calc(var(--wcf-slide-distance, 60px) * -1));
}

/* Right → Left */
.wcf-slide-right.wcf-starter-animations-slide .elementor-widget-container > *,
.wcf-slide-right.wcf-starter-animations-slide > *,
.wcf-slide-right.wcf-starter-animations-slide.wcf-target-self {
  transform: translateX(var(--wcf-slide-distance, 60px));
}

/* Animate */
.wcf-animate.wcf-starter-animations-slide .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-slide > *,
.wcf-animate.wcf-starter-animations-slide.wcf-target-self {
  animation: wcf-slide var(--wcf-duration, 700ms) var(--wcf-ease, ease) forwards;
}

@keyframes wcf-slide {
  to {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
}
/* =========================================
   Skew Reveal (Variable Driven)
========================================= */
.wcf-starter-animations-skew-reveal .elementor-widget-container > *,
.wcf-starter-animations-skew-reveal > *,
.wcf-starter-animations-skew-reveal.wcf-target-self {
  transform: skewX(var(--wcf-skew-angle, 18deg)) translateX(var(--wcf-skew-distance, -40px));
  opacity: var(--wcf-skew-opacity-start, 0);
  animation-duration: var(--wcf-duration, 0.6s);
  animation-delay: var(--wcf-skew-delay, 0s);
  animation-timing-function: var(--wcf-skew-ease, ease);
  animation-fill-mode: forwards;
  will-change: transform, opacity;
}

/* Trigger */
.wcf-animate.wcf-starter-animations-skew-reveal .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-skew-reveal > *,
.wcf-animate.wcf-starter-animations-skew-reveal.wcf-target-self {
  animation-name: wcf-skew-reveal;
}

/* Keyframes */
@keyframes wcf-skew-reveal {
  to {
    transform: skewX(0deg) translateX(0);
    opacity: 1;
  }
}
/* Flip Animation Base */
.wcf-starter-animations-flip .elementor-widget-container > *,
.wcf-starter-animations-flip > *,
.wcf-starter-animations-flip.wcf-target-self {
  opacity: 0;
  transform-style: preserve-3d;
  perspective: var(--wcf-flip-perspective, 800px);
  animation-duration: var(--wcf-flip-duration, 0.6s);
  animation-delay: var(--wcf-flip-delay, 0s);
  animation-timing-function: var(--wcf-flip-ease, ease);
  animation-fill-mode: forwards;
  will-change: transform, opacity;
}

/* X Axis */
.wcf-flip-axis-x.wcf-starter-animations-flip .elementor-widget-container > *,
.wcf-flip-axis-x.wcf-starter-animations-flip > *,
.wcf-flip-axis-x.wcf-starter-animations-flip.wcf-target-self {
  transform: rotateX(var(--wcf-flip-angle, 90deg));
}

/* Y Axis */
.wcf-flip-axis-y.wcf-starter-animations-flip .elementor-widget-container > *,
.wcf-flip-axis-y.wcf-starter-animations-flip > *,
.wcf-flip-axis-y.wcf-starter-animations-flip.wcf-target-self {
  transform: rotateY(var(--wcf-flip-angle, 90deg));
}

/* Trigger */
.wcf-animate.wcf-starter-animations-flip .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-flip > *,
.wcf-animate.wcf-starter-animations-flip.wcf-target-self {
  animation-name: wcf-flip;
}

/* Keyframes */
@keyframes wcf-flip {
  to {
    transform: rotateX(0deg) rotateY(0deg);
    opacity: 1;
  }
}
/* Zoom In */
.wcf-starter-animations-zoom-in .elementor-widget-container > *,
.wcf-starter-animations-zoom-in > *,
.wcf-starter-animations-zoom-in.wcf-target-self {
  transform: scale(1.3);
  opacity: 0;
}

.wcf-animate.wcf-starter-animations-zoom-in .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-zoom-in > *,
.wcf-animate.wcf-starter-animations-zoom-in.wcf-target-self {
  animation-name: wcf-zoom-in;
}

@keyframes wcf-zoom-in {
  to {
    transform: scale(1);
    opacity: 1;
  }
}
/* Combo Reveal */
.wcf-starter-animations-combo-reveal .elementor-widget-container > *,
.wcf-starter-animations-combo-reveal > *,
.wcf-starter-animations-combo-reveal.wcf-target-self {
  transform: translateY(40px) scale(0.9);
  opacity: 0;
}

.wcf-animate.wcf-starter-animations-combo-reveal .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-combo-reveal > *,
.wcf-animate.wcf-starter-animations-combo-reveal.wcf-target-self {
  animation-name: wcf-combo-reveal;
}

@keyframes wcf-combo-reveal {
  to {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}
/* Glow Pulse */
.wcf-animate.wcf-starter-animations-text-glow {
  animation: wcf-glow var(--wcf-duration, 2s) var(--wcf-ease, ease-in-out) alternate;
  animation-iteration-count: var(--wcf-iteration, infinite);
}

@keyframes wcf-glow {
  from {
    text-shadow: 0 0 5px var(--wcf-glow-color, #fff);
  }
  to {
    text-shadow: 0 0 var(--wcf-glow-size, 20px) var(--wcf-glow-color, #00f);
  }
}
/* Pop Scale */
.wcf-starter-animations-text-pop {
  transform: scale(0.6);
  opacity: 0;
}

.wcf-animate.wcf-starter-animations-text-pop {
  animation: wcf-text-pop 0.6s ease forwards;
}

@keyframes wcf-text-pop {
  70% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.wcf-starter-animations-text-typewriter .elementor-widget-container > *,
.wcf-starter-animations-text-typewriter > *,
.wcf-target-self.wcf-starter-animations-text-typewriter {
  overflow: hidden;
  white-space: nowrap;
  width: 0;
}

.wcf-animate.wcf-starter-animations-text-typewriter .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-text-typewriter > *,
.wcf-animate.wcf-target-self.wcf-starter-animations-text-typewriter {
  animation: wcf-typewriter var(--wcf-duration, 2s) steps(30) forwards, wcf-caret 1s step-end;
}

@keyframes wcf-typewriter {
  to {
    width: 100%;
  }
}
@keyframes wcf-caret {
  50% {
    border-color: transparent;
  }
}
/* =====================================
   Cinematic Mask Wipe
===================================== */
.wcf-starter-animations-text-mask-wipe .elementor-widget-container > *,
.wcf-starter-animations-text-mask-wipe > *,
.wcf-target-self.wcf-starter-animations-text-mask-wipe {
  position: relative;
  display: inline-block;
  overflow: hidden;
}

/* Mask layer */
.wcf-starter-animations-text-mask-wipe .elementor-widget-container > *::after,
.wcf-starter-animations-text-mask-wipe > *::after,
.wcf-target-self.wcf-starter-animations-text-mask-wipe::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--wcf-mask-bg, #000);
  transform: translateX(0%);
  z-index: 2;
}

/* Animate */
.wcf-animate.wcf-starter-animations-text-mask-wipe .elementor-widget-container > *::after,
.wcf-animate.wcf-starter-animations-text-mask-wipe > *::after,
.wcf-animate.wcf-target-self.wcf-starter-animations-text-mask-wipe::after {
  animation: wcf-mask-wipe var(--wcf-duration, 1000ms) var(--wcf-ease, cubic-bezier(0.77, 0, 0.18, 1)) var(--wcf-delay, 0ms) forwards;
}

@keyframes wcf-mask-wipe {
  to {
    transform: translateX(100%);
  }
}
/* Scrollable Select2 Dropdown */
.wcf-select-scroll .select2-results__options {
  max-height: 150px !important;
  overflow-y: auto !important;
}

/* =====================================
   TEXT WAVE (Water Stroke Effect)
===================================== */
.wcf-starter-animations-text-wave .elementor-widget-container > *,
.wcf-starter-animations-text-wave > *,
.wcf-target-self.wcf-starter-animations-text-wave {
  position: relative;
  color: transparent;
}

/* Animated layer */
.wcf-starter-animations-text-wave .elementor-widget-container > *::after,
.wcf-starter-animations-text-wave > *::after,
.wcf-target-self.wcf-starter-animations-text-wave::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  color: var(--wcf-wave-fill, #03a9f4);
  animation: wcf-wave 4s ease-in-out infinite;
}

@keyframes wcf-wave {
  0%, 100% {
    clip-path: polygon(0% 45%, 16% 44%, 33% 50%, 54% 60%, 70% 61%, 84% 59%, 100% 52%, 100% 100%, 0% 100%);
  }
  50% {
    clip-path: polygon(0% 60%, 15% 65%, 34% 66%, 51% 62%, 67% 50%, 84% 45%, 100% 46%, 100% 100%, 0% 100%);
  }
}
/* =====================================
   BACKGROUND CLIP TEXT ANIMATION
===================================== */
.wcf-starter-animations-text-bg-clip .elementor-widget-container > *,
.wcf-starter-animations-text-bg-clip > *,
.wcf-target-self.wcf-starter-animations-text-bg-clip {
  position: relative;
  color: var(--wcf-bg-text-color, rgba(255, 0, 0, 0.1));
  background-image: var(--wcf-bg-text-image);
  background-size: var(--wcf-bg-text-size, cover);
  background-repeat: repeat;
  background-position: left 0 top 50%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Animate only when triggered */
.wcf-animate.wcf-starter-animations-text-bg-clip .elementor-widget-container > *,
.wcf-animate.wcf-starter-animations-text-bg-clip > *,
.wcf-animate.wcf-target-self.wcf-starter-animations-text-bg-clip {
  animation: wcf-bg-text-animation var(--wcf-bg-speed, 15s) linear infinite;
}

@keyframes wcf-bg-text-animation {
  0% {
    background-position: left 0 top 50%;
  }
  50% {
    background-position: left 1500px top 50%;
  }
  100% {
    background-position: left 0 top 50%;
  }
}
/* =====================================
   CHARACTER ANIMATION ENGINE (CLEAN)
===================================== */
/* ===============================
   PRESET DEFAULT VALUES
================================ */
/* Revolve */
.wcf-char-preset-revolve {
  --wcf-char-x: -150px;
  --wcf-char-y: -50px;
  --wcf-char-rotate: -180deg;
  --wcf-char-scale: 2;
}

/* Ball Drop */
.wcf-char-preset-ball {
  --wcf-char-x: 0px;
  --wcf-char-y: -200px;
  --wcf-char-rotate: 0deg;
  --wcf-char-scale: 1;
}

/* Slide */
.wcf-char-preset-slide {
  --wcf-char-x: -100px;
  --wcf-char-y: 0px;
  --wcf-char-rotate: 0deg;
  --wcf-char-scale: 1;
}

/* Revolve Drop */
.wcf-char-preset-revolve_drop {
  --wcf-char-x: 0px;
  --wcf-char-y: -150px;
  --wcf-char-rotate: -360deg;
  --wcf-char-scale: 1.5;
}

/* Drop Vanish */
.wcf-char-preset-drop_vanish {
  --wcf-char-x: 0px;
  --wcf-char-y: -250px;
  --wcf-char-rotate: 0deg;
  --wcf-char-scale: 0.3;
}

/* Twister */
.wcf-char-preset-twister {
  --wcf-char-x: 0px;
  --wcf-char-y: 0px;
  --wcf-char-rotate: -720deg;
  --wcf-char-scale: 1;
}

/* Parent Fix */
[class*=wcf-starter-animations-text-char] .elementor-widget-container > *,
[class*=wcf-starter-animations-text-char] > *,
.wcf-target-self[class*=wcf-starter-animations-text-char] {
  display: inline-block;
}

/* Initial State */
[class*=wcf-starter-animations-text-char] .elementor-widget-container > * span,
[class*=wcf-starter-animations-text-char] > * span,
.wcf-target-self[class*=wcf-starter-animations-text-char] span {
  display: inline-block;
  opacity: 0;
  transform: translate(var(--wcf-char-x, -150px), var(--wcf-char-y, 0)) rotate(var(--wcf-char-rotate, -180deg)) scale(var(--wcf-char-scale, 2));
  animation-delay: calc(var(--wcf-stagger, 0.05s) * var(--i));
  will-change: transform, opacity;
}

/* Animate State */
.wcf-animate[class*=wcf-starter-animations-text-char] .elementor-widget-container > * span,
.wcf-animate[class*=wcf-starter-animations-text-char] > * span,
.wcf-animate.wcf-target-self[class*=wcf-starter-animations-text-char] span {
  animation-name: wcf-char;
  animation-duration: var(--wcf-duration, 0.5s);
  animation-timing-function: var(--wcf-ease, ease);
  animation-fill-mode: forwards;
}

/* Keyframe */
@keyframes wcf-char {
  to {
    opacity: 1;
    transform: translate(0, 0) rotate(0deg) scale(1);
  }
}
/* =========================================
   Container Slide Animation (Stable)
========================================= */
/* Initial */
.wcf-starter-animations-slide.e-con {
  opacity: 0;
  animation-duration: var(--wcf-slide-duration, 600ms);
  animation-delay: var(--wcf-slide-delay, 0ms);
  animation-timing-function: var(--wcf-slide-ease, ease);
  animation-fill-mode: forwards;
  will-change: transform, opacity;
}

/* Direction */
.wcf-slide-bottom.wcf-starter-animations-slide.e-con {
  transform: translateY(var(--wcf-slide-distance, 40px));
}

.wcf-slide-top.wcf-starter-animations-slide.e-con {
  transform: translateY(calc(-1 * var(--wcf-slide-distance, 40px)));
}

.wcf-slide-left.wcf-starter-animations-slide.e-con {
  transform: translateX(calc(-1 * var(--wcf-slide-distance, 40px)));
}

.wcf-slide-right.wcf-starter-animations-slide.e-con {
  transform: translateX(var(--wcf-slide-distance, 40px));
}

/* Trigger */
.wcf-animate.wcf-starter-animations-slide.e-con {
  animation-name: wcf-container-slide;
}

@keyframes wcf-container-slide {
  to {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
}
/* =========================================
   CONTAINER FLIP ANIMATION (SELF ONLY)
========================================= */
/* Initial State */
.wcf-starter-animations-flip.e-con {
  opacity: 0;
  transform-style: preserve-3d;
  perspective: var(--wcf-flip-perspective-container, 800px);
  animation-duration: var(--wcf-duration, 700ms);
  animation-delay: var(--wcf-delay, 0ms);
  animation-timing-function: var(--wcf-ease, ease);
  animation-fill-mode: forwards;
  will-change: transform, opacity;
}

/* Axis X */
.wcf-flip-axis-container-x.wcf-starter-animations-flip.e-con {
  transform: rotateX(var(--wcf-flip-angle-container, 90deg));
}

/* Axis Y */
.wcf-flip-axis-container-y.wcf-starter-animations-flip.e-con {
  transform: rotateY(var(--wcf-flip-angle-container, 90deg));
}

/* Trigger */
.wcf-animate.wcf-starter-animations-flip.e-con {
  animation-name: wcf-container-flip;
}

/* Keyframes */
@keyframes wcf-container-flip {
  to {
    transform: rotateX(0deg) rotateY(0deg);
    opacity: 1;
  }
}