/* Stretch Left */
.stretchLeft{
	animation-name: stretchLeft;
    transform-origin: 100% 0%;
}
@keyframes stretchLeft {
	0% {transform: scaleX(0);}
	100% {transform: scaleX(1);}										
}
/* Stretch Right */
.stretchRight{
	animation-name: stretchRight;
    transform-origin: 0% 0%;		
}
@keyframes stretchRight {
	0% {transform: scaleX(0);}
	100% {transform: scaleX(1);}			
}
/* Stretch Down */
.stretchDown{
	animation-name: stretchDown;
    transform-origin: 50% 0%;
}
@keyframes stretchDown {
	0% {transform: scaleY(0);}
	100% {transform: scaleY(1);}		
}
/* Stretch Up */
.stretchUp{
	animation-name: stretchUp;
    transform-origin: 50% 100%;		
}
@keyframes stretchUp {
    0% {transform: scaleY(0);}
    100% {transform: scaleY(1);}			
}

/* Slide In*/

.slideInUpFade{
	animation-name: slideInUpFade;
}

@keyframes slideInUpFade {
    from {transform: translateY(50%);
        opacity: 0;
    }
    to {transform: translateY(0);
		opacity: 1;
    }
}

.slideInDownFade{
	animation-name: slideInDownFade;
}

@keyframes slideInDownFade {
    from {transform: translateY(-50%);
		opacity: 0;}
    to {transform: translateY(0);
		opacity: 1;
    }
}

.slideInRightFade{
	animation-name: slideInRightFade;
}

@keyframes slideInRightFade {
    from {transform: translateX(-50%);
        opacity: 0;
    }
    to {transform: translateX(0);
		opacity: 1;
    }
}

.slideInLeftFade{
	animation-name: slideInLeftFade;
}

@keyframes slideInLeftFade {
    from {transform: translateX(50%);
        opacity: 0;
    }
    to {transform: translateX(0);
    opacity: 1;
    }
}

/* Reveal */

.reveal{
	overflow: hidden !important;
	animation-name: reveal;
}

@keyframes reveal {
    from {max-height: 0; !important;}
    to {max-height: 100%; !important;};
}

/* Scale */

.scale{
	animation-name: scale;
}

@keyframes scale {
    from {transform: scale(0,0)}
    to {transform: scale(1,1);}
}

.scaleX{
	animation-name: scaleX;
}
@keyframes scaleX {
    from {transform: scaleX(0);}
    to {transform: scaleX(1);}
}

.scaleY{
	animation-name: scaleY;
}

@keyframes scaleY {
    from {transform: scaleY(0);}
    to {transform: scaleY(1);}
}

.scaleDown{
	overflow: hidden !important;
	animation-name: scaleDown;
}

@keyframes scaleDown {
    from {transform: scale(1.5, 1.5);}
    to {transform: scale(1, 1);}
}

/* Rotate */

div:has(.rotateY) {
	perspective: 150rem;
}

.rotateY{
	perspective: 150rem;
	animation-name: rotateY;
}

@keyframes rotateY {
    from {transform: rotateY(-360deg);}
    to {transform: rotateY(0deg);}
}

/* Black & White */

.greyToColor {
	animation-name: greyToColor;
}
	
@keyframes greyToColor {
	from {filter: grayscale(100%);}
	to {filter: grayscale(0);}
}

.blurOut {
	animation-name: blurOut;
}
	
@keyframes blurOut {
	from {filter: blur(10px);}
	to {filter: blur(0px));}
}


/* Button Radial Out */
.elementor-animation-btn_radial_out {
    position: relative;
    overflow: hidden;
    transform: perspective(1px) translateZ(0);
}
.elementor-animation-btn_radial_out:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--e-global-color-secondary);
    border-radius: 100%;
    transform: scale(0);
    transition: transform 0.3s ease-out;
}
.elementor-animation-btn_radial_out:hover:before, .elementor-animation-btn_radial_out:focus:before, .elementor-animation-btn_radial_out:active:before {
    transform: scale(2);
}
/* Button Background Color Slide Right */
.elementor-animation-btn_slide_right {
    position: relative;
    overflow: hidden;
    transform: perspective(1px) translateZ(0);
}
.elementor-animation-btn_slide_right:before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    background: var(--e-global-color-secondary);
    transform: translateX(-101%);
    transition: transform 0.3s ease-in-out;
}
.elementor-animation-btn_slide_right:hover:before {
    transform: translateX(0);
}
/* Button Swipe Diagonal */
.elementor-animation-btn_diagonal_swipe {
    position: relative;
    overflow: hidden;
    transform: perspective(1px) translateZ(0);
}
.elementor-animation-btn_diagonal_swipe:before, .elementor-animation-btn_diagonal_swipe:after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    transition: transform 0.3s ease-in-out;
}
.elementor-animation-btn_diagonal_swipe:before {
    right: -50px;
    border-right: 50px solid transparent;
    border-bottom: 80px solid var(--e-global-color-secondary);
    transform: translateX(-100%);
}
.elementor-animation-btn_diagonal_swipe:after {
    left: -50px;
    border-left: 50px solid transparent;
    border-top: 80px solid var(--e-global-color-secondary);
    transform: translateX(100%);
}
.elementor-animation-btn_diagonal_swipe:hover:before {
    transform: translateX(-49%);
}
.elementor-animation-btn_diagonal_swipe:hover:after {
    transform: translateX(49%);
}
/* Button Circle Colission */
.elementor-animation-btn_circle_collision {
    position: relative;
    overflow: hidden;
    transform: perspective(1px) translateZ(0);
}
.elementor-animation-btn_circle_collision:before, .elementor-animation-btn_circle_collision:after {
    position: absolute;
    top: 50%;
    content: '';
    width: 20px;
    height: 20px;
    background: var(--e-global-color-secondary);
    border-radius: 50%;
    z-index: -1;
}
.elementor-animation-btn_circle_collision:before {
    left: -20px;
    transform: translate(-50%, -50%);
}
.elementor-animation-btn_circle_collision:after {
    right: -20px;
    transform: translate(50%, -50%);
}
.elementor-animation-btn_circle_collision:hover:before {
    animation: circle-collision-left 0.8s alternate both;
}
.elementor-animation-btn_circle_collision:hover:after {
    animation: circle-collision-right 0.8s alternate both;
}
@keyframes circle-collision-left {
    0% {left: -20px;}
    50% {
        left: 50%;
        width: 20px;
        height: 20px;
    }
    100% {
        left: 50%;
        width: 375px;
        height: 375px;
    }
}
@keyframes circle-collision-right {
    0% { right: -20px;}
    50% {
        right: 50%;
        width: 20px;
        height: 20px;
    }
    100% {
        right: 50%;
        width: 375px;
        height: 375px;
    }
}

.hidden {
    overflow: hidden !important;
}