/* Elementor button right-to-left hover fill */
.button-hover-effect {
    --button-hover-duration: 900ms;
    --button-hover-easing: cubic-bezier(0.65, 0, 0.35, 1);

    isolation: isolate;
    overflow: hidden;
    position: relative;
    transition: border-color var(--button-hover-duration)
        var(--button-hover-easing);
}

.button-hover-effect-fill {
    bottom: 0;
    clip-path: inset(0 0 0 100%);
    display: block;
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}

.button-hover-effect > :not(.button-hover-effect-fill) {
    position: relative;
    z-index: 2;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .button-hover-effect:not(.elementor-element-edit-mode)
    .elementor-widget-icon
    .elementor-icon
    i,
body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .button-hover-effect:not(.elementor-element-edit-mode)
    .elementor-widget-icon
    .elementor-icon
    svg {
    color: inherit !important;
    fill: currentColor !important;
}

.elementor-editor-active .button-hover-effect:not(.alt),
.elementor-editor-preview .button-hover-effect:not(.alt),
.elementor-edit-mode .button-hover-effect:not(.alt),
.button-hover-effect.elementor-element-edit-mode:not(.alt) {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    outline: 0 !important;
    transition: none !important;
}

.elementor-editor-active .button-hover-effect-fill,
.elementor-editor-preview .button-hover-effect-fill,
.elementor-edit-mode .button-hover-effect-fill,
.button-hover-effect.elementor-element-edit-mode .button-hover-effect-fill,
.button-hover-effect .elementor-shape,
.button-hover-effect .ui-resizable-e {
    display: none !important;
}

.elementor-editor-active
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon,
.elementor-editor-preview
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon,
.elementor-edit-mode
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon,
.elementor-editor-active
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon
    i,
.elementor-editor-preview
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon
    i,
.elementor-edit-mode
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon
    i,
.elementor-editor-active
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon
    svg,
.elementor-editor-preview
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon
    svg,
.elementor-edit-mode
    .button-hover-effect
    .elementor-widget-icon
    .elementor-icon
    svg {
    transform: none !important;
}

/* Elementor service heading stack */
.service-stack {
    --service-stack-base-offset: 125px;
    --service-stack-item-gap: 0px;
    --service-stack-header-overlap: 1px;
    --service-stack-pinned-bg: var(--e-global-color-8bf446a);
    --service-stack-pinned-border: #3e4944;
    --service-stack-pinned-container-scale: 0.88;
    --service-stack-pinned-heading-scale: 0.75;
    --service-stack-number-size: 5.5em;
    --service-stack-number-center-adjust: -5px;
    --service-stack-number-right: 1rem;
    --service-stack-pinned-number-size: 3.41em;
    --service-stack-pinned-padding-reduction: 1rem;
    --service-stack-sticky-number-color: #3e4944;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack,
body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    > .e-con-inner {
    overflow: visible !important;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .single.elementor-sticky__spacer {
    display: none !important;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .single:not(.elementor-sticky__spacer) {
    inset-inline-start: auto !important;
    margin-bottom: 0 !important;
    margin-top: 0 !important;
    position: relative;
    width: auto !important;
    z-index: auto !important;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .single:not(.elementor-sticky__spacer):not(:last-child) {
    margin-bottom: var(--service-stack-item-gap) !important;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .service-stack-header-placeholder {
    display: none;
    height: var(--service-stack-placeholder-height, 0px);
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .single.is-stack-stuck
    .service-stack-header-placeholder {
    display: block;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .service-stack-header {
    background: var(--e-global-color-8bf446a);
    border-top: 10px solid #fafaf8;
    box-sizing: border-box;
    left: auto;
    position: relative;
    transition:
        background-color 350ms cubic-bezier(0.65, 0, 0.35, 1),
        border-color 350ms cubic-bezier(0.65, 0, 0.35, 1),
        padding 350ms cubic-bezier(0.65, 0, 0.35, 1);
    z-index: 20 !important;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .single.is-stack-stuck
    .service-stack-header {
    background: var(--service-stack-pinned-bg) !important;
    border-top-color: #fafaf8;
    left: var(--service-stack-header-left, auto) !important;
    position: fixed !important;
    padding-top: var(--service-stack-header-pinned-padding-top) !important;
    padding-right: var(--service-stack-header-pinned-padding-right) !important;
    padding-bottom: var(--service-stack-header-pinned-padding-bottom) !important;
    padding-left: var(--service-stack-header-pinned-padding-left) !important;
    top: var(
        --service-stack-header-top,
        var(--service-stack-base-offset)
    ) !important;
    width: var(--service-stack-header-width, auto) !important;
    box-shadow: 2px 2px 0 var(--e-global-color-6a5be85);
    transform: scale(var(--service-stack-header-scale, 1));
    transform-origin: top left;
    z-index: var(--service-stack-header-z, 80) !important;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .service-stack-header
    > .elementor-widget-heading
    .elementor-heading-title {
    transition:
        color 450ms cubic-bezier(0.65, 0, 0.35, 1),
        transform 350ms cubic-bezier(0.65, 0, 0.35, 1) !important;
    will-change: color, transform;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .services-stack-number
    .elementor-heading-title {
    transition:
        color 450ms cubic-bezier(0.65, 0, 0.35, 1),
        font-size 350ms cubic-bezier(0.65, 0, 0.35, 1) !important;
    will-change: color, font-size;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .service-stack-header
    > .elementor-widget-heading
    .elementor-heading-title {
    transform-origin: left center;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .services-stack-number
{
    margin: 0 !important;
    pointer-events: none;
    position: absolute !important;
    right: var(--service-stack-number-right, 0px) !important;
    top: calc(50% + var(--service-stack-number-center-adjust)) !important;
    transform: translateY(-50%) !important;
    z-index: 2;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .services-stack-number
    .elementor-heading-title {
    font-size: var(--service-stack-number-size) !important;
    line-height: 1 !important;
    transform: none !important;
    transform-origin: right center;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .single.is-stack-stuck
    .service-stack-header
    > .elementor-widget-heading
    .elementor-heading-title {
    transform: scale(var(--service-stack-pinned-heading-scale));
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .single.is-stack-stuck
    .services-stack-number
    .elementor-heading-title {
    font-size: var(--service-stack-pinned-number-size) !important;
    transform: none !important;
}

body:not(.elementor-editor-active):not(.elementor-editor-preview)
    .service-stack
    .service-stack-content {
    position: relative;
    z-index: 1;
}

.service-stack .single.is-stack-stuck .services-stack-number,
.service-stack
    .single.is-stack-stuck
    .services-stack-number
    .elementor-heading-title {
    color: var(--service-stack-sticky-number-color) !important;
}

@media screen and (max-width: 767px) {
    .service-stack {
        --service-stack-number-size: 3.5em;
        --service-stack-pinned-number-size: 3em;
    }

    body:not(.elementor-editor-active):not(.elementor-editor-preview)
        .service-stack
        .service-stack-header-placeholder {
        display: none !important;
    }

    body:not(.elementor-editor-active):not(.elementor-editor-preview)
        .service-stack
        .single.is-stack-stuck
        .service-stack-header {
        box-shadow: none !important;
        left: auto !important;
        padding: revert !important;
        position: relative !important;
        top: auto !important;
        transform: none !important;
        width: auto !important;
    }
}
