/*!*************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./extensions/animations/scss/frontend.scss ***!
  \*************************************************************************************************************************************************************************************************************************************/
/**
 * Animation Styles for Front End
 */
/* Make sure animations work in all cases */
.animation-initialized {
  will-change: opacity, transform;
  backface-visibility: hidden;
}

/* Elements with completed animations should be fully visible */
.animation-completed {
  opacity: 1 !important;
  transition: opacity 0.3s ease-out;
}

/* Base class to hide elements before animation - initially visible for no-js environments */
.umbrellas-animate {
  opacity: 0;
  will-change: opacity, transform;
  transition: opacity 0.5s ease-out;
  backface-visibility: hidden;
  /* Make visible if JS fails to initialize */
  /* Debugging aid - add outline in debug mode */
}
.umbrellas-animate:not(.is-initialized) {
  animation: none !important;
  opacity: 1 !important;
}
body.wp-debug .umbrellas-animate {
  outline: 2px dashed rgba(255, 0, 0, 0.3);
}

/* Animation delay classes - for no-js/fallback scenarios */
[class*=has-animation-delay-] {
  --animation-delay: 0s;
}

.has-animation-delay-0-1 {
  --animation-delay: 0.1s;
}

.has-animation-delay-0-2 {
  --animation-delay: 0.2s;
}

.has-animation-delay-0-3 {
  --animation-delay: 0.3s;
}

.has-animation-delay-0-4 {
  --animation-delay: 0.4s;
}

.has-animation-delay-0-5 {
  --animation-delay: 0.5s;
}

.has-animation-delay-0-6 {
  --animation-delay: 0.6s;
}

.has-animation-delay-0-7 {
  --animation-delay: 0.7s;
}

.has-animation-delay-0-8 {
  --animation-delay: 0.8s;
}

.has-animation-delay-0-9 {
  --animation-delay: 0.9s;
}

.has-animation-delay-1 {
  --animation-delay: 1s;
}

.has-animation-delay-1-5 {
  --animation-delay: 1.5s;
}

.has-animation-delay-2 {
  --animation-delay: 2s;
}

.has-animation-delay-2-5 {
  --animation-delay: 2.5s;
}

.has-animation-delay-3 {
  --animation-delay: 3s;
}

/* Animation duration classes - for no-js/fallback scenarios */
[class*=has-animation-duration-] {
  --animation-duration: 1s;
}

.has-animation-duration-fast {
  --animation-duration: 0.5s;
}

.has-animation-duration-slow {
  --animation-duration: 2s;
}

.has-animation-duration-slower {
  --animation-duration: 3s;
}

.has-animation-duration-infinite {
  animation-iteration-count: infinite !important;
}

/* Use the CSS variables for delay when JS is disabled */
[class*=has-animation-]:not(.animate__animated) {
  animation-delay: var(--animation-delay) !important;
  animation-duration: var(--animation-duration) !important;
}

/* Force visibility after animation fails to apply - as a safety measure */
.umbrellas-animate.is-initialized {
  transition: opacity 0.5s ease-out;
  /* Important - ensure elements eventually become visible via CSS if JS fails */
  animation-fill-mode: forwards !important;
  /* Force visibility after 3s as a fallback if animation class wasn't added */
  animation: forceVisible 0.1s 3s forwards;
}

/* Ensure all animation types are visible by default when class is applied directly */
[class*=fadeIn],
[class*=zoomIn],
[class*=slideIn],
.pulse,
.bounce,
.flash,
.rubberBand,
.shake,
.headShake,
.swing,
.tada,
.wobble,
.jello,
.heartBeat,
.spin {
  opacity: 1;
  animation-fill-mode: both;
}

/* Animation selectors - direct class application */
/* Fade animations */
.fadeIn {
  animation: fadeIn 1s ease forwards;
}

.fadeInUp {
  animation: fadeInUp 1s ease forwards;
}

.fadeInDown {
  animation: fadeInDown 1s ease forwards;
}

.fadeInLeft {
  animation: fadeInLeft 1s ease forwards;
}

.fadeInRight {
  animation: fadeInRight 1s ease forwards;
}

/* Zoom animations */
.zoomIn {
  animation: zoomIn 1s ease forwards;
}

/* Slide animations */
.slideInUp {
  animation: slideInUp 1s ease forwards;
}

.slideInDown {
  animation: slideInDown 1s ease forwards;
}

.slideInLeft {
  animation: slideInLeft 1s ease forwards;
}

.slideInRight {
  animation: slideInRight 1s ease forwards;
}

/* Infinite-friendly animations */
.pulse {
  animation: pulse 1s ease infinite;
}

.bounce {
  animation: bounce 1s ease infinite;
}

.flash {
  animation: flash 1s ease infinite;
}

.rubberBand {
  animation: rubberBand 1s ease infinite;
}

.shake {
  animation: shake 1s ease infinite;
}

.headShake {
  animation: headShake 1s ease infinite;
}

.swing {
  animation: swing 1s ease infinite;
}

.tada {
  animation: tada 1s ease infinite;
}

.wobble {
  animation: wobble 1s ease infinite;
}

.jello {
  animation: jello 1s ease infinite;
}

.heartBeat {
  animation: heartBeat 1s ease infinite;
}

.spin {
  animation: spin 1s linear infinite;
}

/* For all animations, apply delay if specified */
[data-animation][data-animation-delay]:not([data-animation-delay="0"]) {
  animation-delay: var(--animation-delay) !important;
}

/* For all animations, apply duration if specified */
[data-animation][data-animation-duration]:not([data-animation-duration=default])[data-animation-duration=fast] {
  animation-duration: 0.5s !important;
}
[data-animation][data-animation-duration]:not([data-animation-duration=default])[data-animation-duration=slow] {
  animation-duration: 2s !important;
}
[data-animation][data-animation-duration]:not([data-animation-duration=default])[data-animation-duration=slower] {
  animation-duration: 3s !important;
}
[data-animation][data-animation-duration]:not([data-animation-duration=default])[data-animation-duration=infinite] {
  animation-iteration-count: infinite !important;
}

/* Force visible fallback animation */
@keyframes forceVisible {
  to {
    opacity: 1;
  }
}
/* Animation keyframes */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -30px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-30px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(30px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.8, 0.8, 0.8);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}
@keyframes slideInUp {
  from {
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes slideInLeft {
  from {
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes slideInRight {
  from {
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
/* New infinite-friendly animations */
@keyframes pulse {
  from {
    transform: scale3d(1, 1, 1);
  }
  50% {
    transform: scale3d(1.05, 1.05, 1.05);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
@keyframes bounce {
  from, 20%, 53%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -30px, 0) scaleY(1.1);
  }
  70% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -15px, 0) scaleY(1.05);
  }
  80% {
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0) scaleY(0.95);
  }
  90% {
    transform: translate3d(0, -4px, 0) scaleY(1.02);
  }
}
@keyframes flash {
  from, 50%, to {
    opacity: 1;
  }
  25%, 75% {
    opacity: 0;
  }
}
@keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }
  30% {
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    transform: scale3d(1.05, 0.95, 1);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
@keyframes shake {
  from, to {
    transform: translate3d(0, 0, 0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translate3d(-10px, 0, 0);
  }
  20%, 40%, 60%, 80% {
    transform: translate3d(10px, 0, 0);
  }
}
@keyframes headShake {
  0% {
    transform: translateX(0);
  }
  6.5% {
    transform: translateX(-6px) rotateY(-9deg);
  }
  18.5% {
    transform: translateX(5px) rotateY(7deg);
  }
  31.5% {
    transform: translateX(-3px) rotateY(-5deg);
  }
  43.5% {
    transform: translateX(2px) rotateY(3deg);
  }
  50% {
    transform: translateX(0);
  }
}
@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }
  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}
@keyframes tada {
  from {
    transform: scale3d(1, 1, 1);
  }
  10%, 20% {
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%, 50%, 70%, 90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%, 60%, 80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
@keyframes wobble {
  from {
    transform: translate3d(0, 0, 0);
  }
  15% {
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }
  30% {
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }
  45% {
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }
  60% {
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }
  75% {
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes jello {
  from, 11.1%, to {
    transform: translate3d(0, 0, 0);
  }
  22.2% {
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }
  33.3% {
    transform: skewX(6.25deg) skewY(6.25deg);
  }
  44.4% {
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }
  55.5% {
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }
  66.6% {
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }
  77.7% {
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }
  88.8% {
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}
@keyframes heartBeat {
  0% {
    transform: scale(1);
  }
  14% {
    transform: scale(1.3);
  }
  28% {
    transform: scale(1);
  }
  42% {
    transform: scale(1.3);
  }
  70% {
    transform: scale(1);
  }
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/*# sourceMappingURL=animations-frontend.css.map*/