/* Floating WhatsApp button (module olibursite) */
.tv-wa-float {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 90;               /* below modals, cookie banner and the mobile menu */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25d366;
    color: #fff !important;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .22);
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease, bottom .25s ease;
    animation: tv-wa-in .4s ease-out .6s both;
}
.tv-wa-float:hover,
.tv-wa-float:focus-visible {
    transform: scale(1.07);
    box-shadow: 0 12px 30px rgba(16, 24, 40, .28);
    color: #fff !important;
}
.tv-wa-float:focus-visible {
    outline: 3px solid #077f99;
    outline-offset: 3px;
}
@keyframes tv-wa-in {
    from { opacity: 0; transform: translateY(12px) scale(.9); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .tv-wa-float { animation: none; transition: none; }
}

/* keep the theme's "back to top" button above it */
.tvbottom-to-top {
    right: 28px !important;
    bottom: 92px !important;
}

/* product page: move up while the sticky "add to cart" bar is shown (desktop) */
body:has(.tvfooter-product-sticky-bottom.sticky) .tv-wa-float {
    bottom: 124px;
}
body:has(.tvfooter-product-sticky-bottom.sticky) .tvbottom-to-top {
    bottom: 192px !important;
}

/* hide while a modal or the mobile menu is open */
body.modal-open .tv-wa-float,
body.mobile-menu-open .tv-wa-float {
    opacity: 0;
    pointer-events: none;
}

@media (max-width: 575px) {
    .tv-wa-float {
        right: 16px;
        bottom: 16px;
        width: 52px;
        height: 52px;
    }
    .tv-wa-float svg {
        width: 28px;
        height: 28px;
    }
    .tvbottom-to-top {
        right: 18px !important;
        bottom: 80px !important;
    }
}
