/* Integration layer. Upstream CSS provides timing and easing; local variables compose transforms. */
.elementor-element[class*="tooto-aos--"] {
  --tooto-aos-css-ready: 1;
  --tooto-aos-distance: 20px;
  --tooto-aos-zoom-in: .6;
  --tooto-aos-zoom-out: 1.2;
  --tooto-aos-start-opacity: 0;
  --tooto-aos-base-transform: translateZ(0);
  --tooto-aos-from: translateZ(0);
  --tooto-aos-to: translateZ(0);
  /* Suppress native entrance keyframes/invisibility only on configured elements. */
  animation-name: none;
  visibility: visible;
}

.elementor-element.e-con.e-transform[class*="tooto-aos--"] {
  --tooto-aos-base-transform: perspective(var(--e-con-transform-perspective, 0)) rotateZ(var(--e-con-transform-rotateZ, 0)) rotateX(var(--e-con-transform-rotateX, 0)) rotateY(var(--e-con-transform-rotateY, 0)) translate(var(--e-con-transform-translate, 0)) translateX(var(--e-con-transform-translateX, 0)) translateY(var(--e-con-transform-translateY, 0)) scaleX(calc(var(--e-con-transform-flipX, 1) * var(--e-con-transform-scaleX, var(--e-con-transform-scale, 1)))) scaleY(calc(var(--e-con-transform-flipY, 1) * var(--e-con-transform-scaleY, var(--e-con-transform-scale, 1)))) skewX(var(--e-con-transform-skewX, 0)) skewY(var(--e-con-transform-skewY, 0));
}

.elementor-element.e-transform:not(.e-con):not(:has(.elementor-widget-container))[class*="tooto-aos--"] {
  --tooto-aos-base-transform: perspective(var(--e-transform-perspective, 0)) rotateZ(var(--e-transform-rotateZ, 0)) rotateX(var(--e-transform-rotateX, 0)) rotateY(var(--e-transform-rotateY, 0)) translate(var(--e-transform-translate, 0)) translateX(var(--e-transform-translateX, 0)) translateY(var(--e-transform-translateY, 0)) scaleX(calc(var(--e-transform-flipX, 1) * var(--e-transform-scaleX, var(--e-transform-scale, 1)))) scaleY(calc(var(--e-transform-flipY, 1) * var(--e-transform-scaleY, var(--e-transform-scale, 1)))) skewX(var(--e-transform-skewX, 0)) skewY(var(--e-transform-skewY, 0));
}

.elementor-element[data-tooto-aos-active][data-aos] {
  transform: var(--tooto-aos-base-transform) var(--tooto-aos-from);
}
.elementor-element[data-tooto-aos-active][data-aos].aos-animate {
  transform: var(--tooto-aos-base-transform) var(--tooto-aos-to);
}
.elementor-element[data-tooto-aos-active][data-aos^="fade"]:not(.aos-animate),
.elementor-element[data-tooto-aos-active][data-aos^="zoom"]:not(.aos-animate) {
  opacity: var(--tooto-aos-start-opacity);
}

.elementor-element[data-aos="fade"] {
  --tooto-aos-from: translateZ(0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-up"] {
  --tooto-aos-from: translate3d(0, var(--tooto-aos-distance), 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-down"] {
  --tooto-aos-from: translate3d(0, calc(-1 * var(--tooto-aos-distance)), 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-left"] {
  --tooto-aos-from: translate3d(var(--tooto-aos-distance), 0, 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-right"] {
  --tooto-aos-from: translate3d(calc(-1 * var(--tooto-aos-distance)), 0, 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-up-right"] {
  --tooto-aos-from: translate3d(calc(-1 * var(--tooto-aos-distance)), var(--tooto-aos-distance), 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-up-left"] {
  --tooto-aos-from: translate3d(var(--tooto-aos-distance), var(--tooto-aos-distance), 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-down-right"] {
  --tooto-aos-from: translate3d(calc(-1 * var(--tooto-aos-distance)), calc(-1 * var(--tooto-aos-distance)), 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="fade-down-left"] {
  --tooto-aos-from: translate3d(var(--tooto-aos-distance), calc(-1 * var(--tooto-aos-distance)), 0);
  --tooto-aos-to: translateZ(0);
}

.elementor-element[data-aos="zoom-in"] {
  --tooto-aos-from: translate3d(0, 0, 0) scale(var(--tooto-aos-zoom-in));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-in-up"] {
  --tooto-aos-from: translate3d(0, var(--tooto-aos-distance), 0) scale(var(--tooto-aos-zoom-in));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-in-down"] {
  --tooto-aos-from: translate3d(0, calc(-1 * var(--tooto-aos-distance)), 0) scale(var(--tooto-aos-zoom-in));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-in-left"] {
  --tooto-aos-from: translate3d(var(--tooto-aos-distance), 0, 0) scale(var(--tooto-aos-zoom-in));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-in-right"] {
  --tooto-aos-from: translate3d(calc(-1 * var(--tooto-aos-distance)), 0, 0) scale(var(--tooto-aos-zoom-in));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-out"] {
  --tooto-aos-from: translate3d(0, 0, 0) scale(var(--tooto-aos-zoom-out));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-out-up"] {
  --tooto-aos-from: translate3d(0, var(--tooto-aos-distance), 0) scale(var(--tooto-aos-zoom-out));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-out-down"] {
  --tooto-aos-from: translate3d(0, calc(-1 * var(--tooto-aos-distance)), 0) scale(var(--tooto-aos-zoom-out));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-out-left"] {
  --tooto-aos-from: translate3d(var(--tooto-aos-distance), 0, 0) scale(var(--tooto-aos-zoom-out));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="zoom-out-right"] {
  --tooto-aos-from: translate3d(calc(-1 * var(--tooto-aos-distance)), 0, 0) scale(var(--tooto-aos-zoom-out));
  --tooto-aos-to: translate3d(0, 0, 0) scale(1);
}

.elementor-element[data-aos="slide-up"] {
  --tooto-aos-from: translate3d(0, 100%, 0);
  --tooto-aos-to: translate3d(0, 0, 0);
}

.elementor-element[data-aos="slide-down"] {
  --tooto-aos-from: translate3d(0, -100%, 0);
  --tooto-aos-to: translate3d(0, 0, 0);
}

.elementor-element[data-aos="slide-left"] {
  --tooto-aos-from: translate3d(100%, 0, 0);
  --tooto-aos-to: translate3d(0, 0, 0);
}

.elementor-element[data-aos="slide-right"] {
  --tooto-aos-from: translate3d(-100%, 0, 0);
  --tooto-aos-to: translate3d(0, 0, 0);
}

.elementor-element[data-aos="flip-up"] {
  --tooto-aos-from: perspective(2500px) rotateX(-100deg);
  --tooto-aos-to: perspective(2500px) rotateX(0deg);
}

.elementor-element[data-aos="flip-down"] {
  --tooto-aos-from: perspective(2500px) rotateX(100deg);
  --tooto-aos-to: perspective(2500px) rotateX(0deg);
}

.elementor-element[data-aos="flip-left"] {
  --tooto-aos-from: perspective(2500px) rotateY(-100deg);
  --tooto-aos-to: perspective(2500px) rotateY(0deg);
}

.elementor-element[data-aos="flip-right"] {
  --tooto-aos-from: perspective(2500px) rotateY(100deg);
  --tooto-aos-to: perspective(2500px) rotateY(0deg);
}

/* Focus and reduced motion must reveal content immediately, including mid-transition. */
.elementor-element[data-tooto-aos-active][data-aos][data-tooto-aos-reset] {
  transition: none;
}
.elementor-element[data-tooto-aos-active][data-aos][data-tooto-aos-focus] {
  transform: var(--tooto-aos-base-transform);
  opacity: 1;
  visibility: visible;
  transition-duration: 0s;
  transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
  .elementor-element[data-tooto-aos-active][data-aos] {
    transform: var(--tooto-aos-base-transform);
    opacity: 1;
    visibility: visible;
    transition-duration: 0s;
    transition-delay: 0s;
  }
}
