.elementor-widget-ws-ripple-button .ws-ripple-button {
    display: flex;
    justify-content: center;
    width: fit-content;
    white-space: nowrap;
    overflow: hidden;
    position: relative;
    transition: var(--transition-duration, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-font-smoothing: subpixel-antialiased;
    -webkit-perspective: 1000;
    will-change: transform;
}

.elementor-widget-ws-ripple-button .ws-ripple-button:not(:has(> a)),
.elementor-widget-ws-ripple-button .ws-ripple-button > a {
    cursor: pointer;
}

.elementor-widget-ws-ripple-button .ws-ripple-button .ws-ripple-button__anchor {
    display: flex;
    width: fit-content;
    height: fit-content;
    color: currentColor !important;
    text-decoration: unset;
}

.elementor-widget-ws-ripple-button .ws-ripple-button .ws-ripple-button__text {
    opacity: 0;
    will-change: transform;
}

.elementor-widget-ws-ripple-button .ws-ripple-button .ws-ripple-button__pseudo {
    position: relative;
    overflow: hidden;
    will-change: transform;
}

.elementor-widget-ws-ripple-button .ws-ripple-button .ws-ripple-button__pseudo::before {
    content: attr(data-content);
    position: absolute;
    top: 0;
    transform: skewY(0);
    transition: var(--transition-duration, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
    will-change: transform;
}

.elementor-widget-ws-ripple-button .ws-ripple-button .ws-ripple-button__pseudo::after {
    content: attr(data-content);
    position: absolute;
    top: 300%;
    left: 0;
    transform: skewY(var(--skew-text, 10deg));
    z-index: 5;
    transition: var(--transition-duration, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
    will-change: transform;
}

.elementor-widget-ws-ripple-button .ws-ripple-button .ws-ripple-button__hover-fill {
    position: absolute;
    top: -155%;
    left: calc(var(--amplitude, 0%) * -1);
    height: 150%;
    width: calc(100% + var(--amplitude, 0%) * 2);
    z-index: -5;
    border-radius: 0 0 50% 50%;
    transition: var(--transition-duration, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button:hover .ws-ripple-button__pseudo::before,
.elementor-widget-ws-ripple-button .ws-ripple-button:focus .ws-ripple-button__pseudo::before {
    transform: skewY(var(--skew-text, 10deg));
    top: -300%;
    will-change: transform;
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-bottom"] .ws-ripple-button__pseudo::after {
    top: -300%;
}

.elementor-widget-ws-ripple-button .ws-ripple-button:hover .ws-ripple-button__pseudo::after,
.elementor-widget-ws-ripple-button .ws-ripple-button:focus .ws-ripple-button__pseudo::after {
    transform: skewY(0);
    top: 0;
    will-change: transform;
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button:hover .ws-ripple-button__hover-fill, 
.elementor-widget-ws-ripple-button .ws-ripple-button:focus .ws-ripple-button__hover-fill {
    transform: translateY(100%);
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-bottom"] .ws-ripple-button__hover-fill {
    border-radius: 50% 50% 0 0;
    top: 105%;
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-bottom"]:hover .ws-ripple-button__pseudo::before, 
.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-bottom"]:focus .ws-ripple-button__pseudo::before {
    top: 300%;
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-bottom"]:hover .ws-ripple-button__hover-fill,
.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-bottom"]:focus .ws-ripple-button__hover-fill {
    transform: translateY(-100%);
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-left"] .ws-ripple-button__hover-fill {
    border-radius: 0 0 0 0;
    top: -25%;
    left: -155%;
    width: 150%;
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-left"]:hover .ws-ripple-button__pseudo::before,
.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-left"]:focus .ws-ripple-button__pseudo::before {
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-left"]:hover .ws-ripple-button__hover-fill, 
.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-left"]:focus .ws-ripple-button__hover-fill {
    transform: translateX(100%);
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-right"] .ws-ripple-button__hover-fill {
    border-radius: 0 0 0 0;
    top: -25%;
    left: 105%;
    width: 150%;
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-right"]:hover .ws-ripple-button__pseudo::before,
.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-right"]:focus .ws-ripple-button__pseudo::before {
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-right"]:hover .ws-ripple-button__hover-fill,
.elementor-widget-ws-ripple-button .ws-ripple-button[data-type="ws-ripple-button--from-right"]:focus .ws-ripple-button__hover-fill {
    transform: translateX(-100%);
    transition: var(--transition-duration-in, 0.8s) var(--transition-ease, cubic-bezier(0.22, 1, 0.36, 1));
}