.elementor-element.elementor-widget-advanced-button {
    line-height: 0;
}
.elementor-button-content-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
}
.elementor-button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.elementor-widget-advanced-button:not(.elementor-button-icon-overflow-yes) .elementor-button {
    overflow: hidden;
}

/*** ICON HOVER ANIMATIONS ***/

/* --- Jello --- */
@keyframes icon-jello {
    0%   { 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); }
    100% { transform: scale3d(1, 1, 1); }
}
.elementor-button-icon-hover-jello .elementor-button:hover .elementor-button-icon {
    animation: icon-jello 0.6s ease both;
}

/* --- Pop --- */
@keyframes icon-pop {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.3); }
    100% { transform: scale(1); }
}
.elementor-button-icon-hover-pop .elementor-button:hover .elementor-button-icon {
    animation: icon-pop 0.6s ease both;
}

/* --- Explode --- */
@keyframes icon-explode {
    0%   { transform: scale(2); filter: blur(4px); opacity: 0; }
    100% { transform: scale(1); filter: blur(0px); opacity: 1; }
}
.elementor-button-icon-hover-explode .elementor-button:hover .elementor-button-icon {
    animation: icon-explode 0.4s cubic-bezier(0.470, 0.000, 0.745, 0.715) both;
}

/* --- Swirl --- */
@keyframes icon-swirl {
    0% { transform: rotate(-540deg) scale(0); opacity: 0; }
    100% { transform: rotate(0) scale(1); opacity: 1; }
}
.elementor-button-icon-hover-swirl .elementor-button:hover .elementor-button-icon{
	animation: icon-swirl 0.6s ease-out both;
}

/* --- Slide in Back right --- */
@keyframes slide-in-back-right {
    0% { transform: scale(0); }
    20% { transform: scale(1.4); }
    48% { transform: scale(1); }
    50% { transform: translateZ(700px) translateX(400px); opacity: 0; }
    100% { transform: translateZ(0) translateX(0); opacity: 1; }
}
.elementor-button-icon-hover-slide-in-back-right .elementor-button:hover .elementor-button-icon{
	animation: slide-in-back-right 0.9s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

/* --- Slide in Back left --- */
@keyframes slide-in-back-left {
    0% { transform: scale(0); }
    20% { transform: scale(1.4); }
    48% { transform: scale(1); }
    50% { transform: translateZ(-700px) translateX(-400px); opacity: 0; }
    100% { transform: translateZ(0) translateX(0); opacity: 1; }
}
.elementor-button-icon-hover-slide-in-back-left .elementor-button:hover .elementor-button-icon{
	animation: slide-in-back-left 0.9s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}