.elementor-widget-floating_contact_widget,
.elementor-widget-floating_contact_widget.elementor-invisible,
.elementor-widget-floating_contact_widget .elementor-widget-container {
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
}

.mcw-float-contact,
.mcw-float-contact * {
    box-sizing: border-box;
}

.mcw-float-contact {
    --mcw-float-size: 58px;
    --mcw-float-bottom: 28px;
    --mcw-float-side: 24px;

    position: fixed !important;
    z-index: 999999 !important;
    display: flex !important;
    flex-direction: column;
    gap: 12px;

    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.mcw-float-right_bottom {
    right: var(--mcw-float-side) !important;
    bottom: var(--mcw-float-bottom) !important;
    align-items: flex-end;
}

.mcw-float-left_bottom {
    left: var(--mcw-float-side) !important;
    bottom: var(--mcw-float-bottom) !important;
    align-items: flex-start;
}

.mcw-float-right_center {
    right: var(--mcw-float-side) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    align-items: flex-end;
}

.mcw-float-left_center {
    left: var(--mcw-float-side) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    align-items: flex-start;
}

.mcw-float-list {
    display: flex !important;
    flex-direction: column;
    gap: 12px;
    visibility: visible !important;
}

.mcw-float-btn,
.mcw-float-toggle {
    width: var(--mcw-float-size);
    height: var(--mcw-float-size);

    border-radius: 999px;
    border: 0 !important;
    outline: none !important;
    padding: 0 !important;
    margin: 0 !important;

    text-decoration: none !important;
    cursor: pointer;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    position: relative;

    color: #ffffff;
    background: var(--mcw-float-color, #111111);

    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.22);

    visibility: visible !important;

    transition:
        transform .28s ease,
        box-shadow .28s ease,
        opacity .28s ease,
        background .28s ease;
}

.mcw-float-btn:hover,
.mcw-float-toggle:hover {
    transform: translateY(-4px) scale(1.05);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
}

.mcw-float-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    line-height: 1;
}

.mcw-float-icon i {
    font-size: 24px;
}

.mcw-float-icon svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.mcw-float-label {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    white-space: nowrap;

    height: 38px;
    padding: 0 14px;

    border-radius: 999px;

    display: inline-flex;
    align-items: center;

    background: #111111;
    color: #ffffff;

    font-size: 13px;
    font-weight: 800;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition: all .25s ease;
}

.mcw-float-right_bottom .mcw-float-label,
.mcw-float-right_center .mcw-float-label {
    right: calc(100% + 10px);
}

.mcw-float-left_bottom .mcw-float-label,
.mcw-float-left_center .mcw-float-label {
    left: calc(100% + 10px);
}

.mcw-float-btn:hover .mcw-float-label {
    opacity: 1;
    visibility: visible;
}

/* COLLAPSED STATE */

.mcw-float-contact.is-collapsed:not(.is-open) .mcw-float-list {
    pointer-events: none;
}

.mcw-float-contact.is-collapsed:not(.is-open) .mcw-float-btn {
    opacity: 0 !important;
    transform: translateY(12px) scale(.7);
    pointer-events: none !important;
}

.mcw-float-contact.is-collapsed.is-open .mcw-float-list,
.mcw-float-contact.is-static-open .mcw-float-list {
    pointer-events: auto;
}

.mcw-float-contact.is-collapsed.is-open .mcw-float-btn,
.mcw-float-contact.is-static-open .mcw-float-btn {
    opacity: 1 !important;
    transform: translateY(0) scale(1);
    pointer-events: auto !important;
}

.mcw-float-contact.is-collapsed .mcw-float-btn:nth-child(1) {
    transition-delay: .03s;
}

.mcw-float-contact.is-collapsed .mcw-float-btn:nth-child(2) {
    transition-delay: .07s;
}

.mcw-float-contact.is-collapsed .mcw-float-btn:nth-child(3) {
    transition-delay: .11s;
}

.mcw-float-contact.is-collapsed .mcw-float-btn:nth-child(4) {
    transition-delay: .15s;
}

.mcw-float-contact.is-collapsed .mcw-float-btn:nth-child(5) {
    transition-delay: .19s;
}

/* TOGGLE */

.mcw-float-toggle {
    color: #ffffff;
    background: #111111;
    font-size: 24px;
    overflow: hidden;
}

.mcw-float-toggle-open,
.mcw-float-toggle-close {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .25s ease;
}

.mcw-float-toggle-close {
    opacity: 0;
    transform: rotate(-90deg) scale(.5);
}

.mcw-float-contact.is-open .mcw-float-toggle-open {
    opacity: 0;
    transform: rotate(90deg) scale(.5);
}

.mcw-float-contact.is-open .mcw-float-toggle-close {
    opacity: 1;
    transform: rotate(0) scale(1);
}

/* ANIMATIONS */

.mcw-float-anim-pulse .mcw-float-toggle::before,
.mcw-float-anim-pulse .mcw-float-btn::before {
    content: "";
    position: absolute;
    inset: -7px;
    border-radius: inherit;
    background: inherit;
    opacity: .28;
    z-index: -1;
    animation: mcwFloatPulse 1.8s infinite;
}

@keyframes mcwFloatPulse {
    0% {
        transform: scale(.8);
        opacity: .4;
    }

    70% {
        transform: scale(1.35);
        opacity: 0;
    }

    100% {
        transform: scale(1.35);
        opacity: 0;
    }
}

.mcw-float-anim-bounce .mcw-float-toggle {
    animation: mcwFloatBounce 1.9s infinite;
}

@keyframes mcwFloatBounce {
    0%, 100% {
        transform: translateY(0);
    }

    45% {
        transform: translateY(-8px);
    }
}

.mcw-float-anim-shake .mcw-float-toggle {
    animation: mcwFloatShake 2.4s infinite;
}

@keyframes mcwFloatShake {
    0%, 84%, 100% {
        transform: rotate(0);
    }

    88% {
        transform: rotate(8deg);
    }

    92% {
        transform: rotate(-8deg);
    }

    96% {
        transform: rotate(5deg);
    }
}

.mcw-float-anim-wave .mcw-float-toggle {
    animation: mcwFloatWave 2.4s infinite;
}

@keyframes mcwFloatWave {
    0%, 100% {
        box-shadow: 0 14px 35px rgba(0,0,0,.22), 0 0 0 0 rgba(0,0,0,.18);
    }

    60% {
        box-shadow: 0 14px 35px rgba(0,0,0,.22), 0 0 0 22px rgba(0,0,0,0);
    }
}

/* MOBILE */

@media (max-width: 767px) {
    .mcw-float-contact {
        --mcw-float-size: 54px;
        --mcw-float-bottom: 92px;
        --mcw-float-side: 16px;
    }

    .mcw-float-label {
        display: none;
    }
}