.etheme-text-button {
    position: relative;
    overflow: hidden;
    -webkit-transition: all .12s linear;
    transition: all .12s linear;
    vertical-align: middle
}

.etheme-text-button .elementor-button-icon {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

.etheme-text-button>span {
    position: relative;
    -webkit-transition: inherit;
    transition: inherit;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center
}

.etheme-text-button>span>i,
.etheme-text-button>span>span,
.etheme-text-button>span>svg {
    z-index: 1
}

.etheme-text-button.has-fill:before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    top: 0;
    z-index: 1;
    -webkit-transition: all .25s
}

.etheme-text-button.has-fill:hover:before {
    background: var(--fill-color)
}

.etheme-text-button.fill-rtl:not(:hover):before {
    left: 100%
}

.etheme-text-button.fill-ltr:not(:hover):before {
    right: 100%
}

.etheme-text-button.fill-top:not(:hover):before {
    top: 100%
}

.etheme-text-button.fill-bottom:not(:hover):before {
    bottom: 100%
}

.etheme-text-button.fill-circle {
    --proportion: 2.5em
}

.etheme-text-button.fill-circle:before {
    height: var(--proportion);
    max-width: var(--proportion);
    border: .1em solid var(--fill-color);
    border-radius: 50%;
    margin: auto
}

.etheme-text-button.fill-circle:hover:before {
    border-radius: inherit;
    max-width: 100%;
    background-color: transparent
}

.etheme-text-button .button-line {
    border-bottom: .1em solid currentColor;
    min-width: 1.4em;
    -ms-flex-item-align: center;
    align-self: center;
    -webkit-transition: min-width .3s;
    transition: min-width .3s
}

.etheme-text-button:hover .button-line {
    min-width: 2.4em
}

.etheme-text-button.fill-overline:before,
.etheme-text-button.fill-underline:before {
    top: auto;
    right: 0;
    height: .1em;
    width: 0;
    left: auto;
    background: var(--fill-color)
}

.etheme-text-button.fill-overline:hover:before,
.etheme-text-button.fill-underline:hover:before {
    width: 100%;
    right: auto;
    left: 0
}

.etheme-text-button.fill-overline:before {
    top: 0;
    bottom: auto
}

.etheme-text-button:hover .elementor-button-icon.animation-background_ltr {
    -webkit-animation: toLeftFromRight .4s forwards;
    animation: toLeftFromRight .4s forwards
}

.etheme-text-button:hover .elementor-button-icon.animation-background_to_bottom {
    -webkit-animation: toBottomFromTop .4s forwards;
    animation: toBottomFromTop .4s forwards
}

.etheme-text-button:hover .elementor-button-icon.animation-background_rtl {
    -webkit-animation: toRightFromLeft .4s forwards;
    animation: toRightFromLeft .4s forwards
}

.etheme-text-button:hover .elementor-button-icon.animation-background_to_top {
    -webkit-animation: toTopFromBottom .4s forwards;
    animation: toTopFromBottom .4s forwards
}

.etheme-text-button:hover .elementor-button-icon.animation-switch_side:first-child {
    left: calc(100% + var(--icon-indent, 5px))
}

.etheme-text-button:hover .elementor-button-icon.animation-switch_side:last-child {
    right: calc(100% + var(--icon-indent, 5px))
}

.etheme-text-button .elementor-button-icon.animation-switch_side {
    position: absolute;
    -webkit-transition: left .5s cubic-bezier(.19, 1, .22, 1), right .5s cubic-bezier(.19, 1, .22, 1);
    transition: left .5s cubic-bezier(.19, 1, .22, 1), right .5s cubic-bezier(.19, 1, .22, 1)
}

.etheme-text-button .elementor-button-icon.animation-switch_side:first-child {
    left: calc(-1em - var(--icon-indent, 5px))
}

.etheme-text-button .elementor-button-icon.animation-switch_side:last-child {
    right: calc(-1em - var(--icon-indent, 5px))
}

@-webkit-keyframes toRightFromLeft {
    49% {
        -webkit-transform: translate(-100%);
        transform: translate(-100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translate(100%);
        transform: translate(100%)
    }
    51% {
        opacity: 1
    }
}

@keyframes toRightFromLeft {
    49% {
        -webkit-transform: translate(-100%);
        transform: translate(-100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translate(100%);
        transform: translate(100%)
    }
    51% {
        opacity: 1
    }
}

@-webkit-keyframes toLeftFromRight {
    49% {
        -webkit-transform: translate(100%);
        transform: translate(100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translate(-100%);
        transform: translate(-100%)
    }
    51% {
        opacity: 1
    }
}

@keyframes toLeftFromRight {
    49% {
        -webkit-transform: translate(100%);
        transform: translate(100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translate(-100%);
        transform: translate(-100%)
    }
    51% {
        opacity: 1
    }
}

@-webkit-keyframes toBottomFromTop {
    49% {
        -webkit-transform: translateY(100%);
        transform: translateY(100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translateY(-100%);
        transform: translateY(-100%)
    }
    51% {
        opacity: 1
    }
}

@keyframes toBottomFromTop {
    49% {
        -webkit-transform: translateY(100%);
        transform: translateY(100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translateY(-100%);
        transform: translateY(-100%)
    }
    51% {
        opacity: 1
    }
}

@-webkit-keyframes toTopFromBottom {
    49% {
        -webkit-transform: translateY(-100%);
        transform: translateY(-100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translateY(100%);
        transform: translateY(100%)
    }
    51% {
        opacity: 1
    }
}

@keyframes toTopFromBottom {
    49% {
        -webkit-transform: translateY(-100%);
        transform: translateY(-100%)
    }
    50% {
        opacity: 0;
        -webkit-transform: translateY(100%);
        transform: translateY(100%)
    }
    51% {
        opacity: 1
    }
}

@-webkit-keyframes etheme-zoom {
    0%,
    100% {
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1)
    }
    50% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1)
    }
}

@keyframes etheme-zoom {
    0%,
    100% {
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1)
    }
    50% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1)
    }
}

.etheme-animated:hover {
    -webkit-animation-play-state: paused;
    animation-play-state: paused
}

.etheme-animation-zoom {
    -webkit-animation-name: etheme-zoom;
    animation-name: etheme-zoom;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite
}

.etheme-animation-pulse {
    -webkit-animation-name: elementor-animation-pulse;
    animation-name: elementor-animation-pulse;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite
}

.etheme-animation-wobble-horizontal {
    -webkit-animation-name: elementor-animation-wobble-horizontal;
    animation-name: elementor-animation-wobble-horizontal;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite
}