/*
 * Float Contact v1.3
 * Chỉ có 2 nút: Zalo trái + Điện thoại phải.
 */
.float-contact-wrapper {
    position: fixed;
    inset: 0;
    z-index: 999999 !important;
    pointer-events: none;
}

.float-contact-wrapper .float-contact-zalo,
.float-contact-wrapper .float-contact-phone {
    position: fixed !important;
    bottom: max(20px, env(safe-area-inset-bottom)) !important;
    z-index: 999999 !important;
    pointer-events: auto;
    text-decoration: none !important;
    box-sizing: border-box !important;
}

/* Zalo - góc trái */
.float-contact-wrapper .float-contact-zalo {
    left: max(20px, env(safe-area-inset-left)) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.float-contact-wrapper .float-contact-zalo img {
    display: block !important;
    width: 60px !important;
    height: 60px !important;
    max-width: 60px !important;
    max-height: 60px !important;
    object-fit: contain !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.float-contact-wrapper .float-contact-zalo-text {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 60px !important;
    height: 60px !important;
    padding: 0 16px !important;
    border-radius: 999px !important;
    background: #0068ff !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18) !important;
}

/* Điện thoại - góc phải */
.float-contact-wrapper .float-contact-phone {
    right: max(20px, env(safe-area-inset-right)) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 50px !important;
    padding: 11px 16px !important;
    border-radius: 999px !important;
    background: #18a558 !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18) !important;
}

.float-contact-wrapper .float-contact-phone:hover,
.float-contact-wrapper .float-contact-phone:focus,
.float-contact-wrapper .float-contact-phone:visited {
    color: #fff !important;
    text-decoration: none !important;
}

.float-contact-wrapper .float-contact-phone-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: 22px !important;
    height: 22px !important;
    color: currentColor !important;
}

.float-contact-wrapper .float-contact-phone-icon svg {
    display: block !important;
    width: 22px !important;
    height: 22px !important;
}

.float-contact-wrapper .float-contact-phone-number {
    display: inline-block !important;
}

/* Animation thu hút chú ý cho nút Call: rung theo nhịp, có khoảng nghỉ */
.float-contact-wrapper .float-contact-phone {
    transform-origin: 85% 50% !important;
    animation: float-contact-call-shake 4.2s ease-in-out infinite !important;
    will-change: transform;
}

.float-contact-wrapper .float-contact-phone:hover,
.float-contact-wrapper .float-contact-phone:focus-visible {
    animation-play-state: paused !important;
    transform: scale(1.03) !important;
}

@keyframes float-contact-call-shake {
    0%, 68%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
    70% { transform: translate3d(-2px, 0, 0) rotate(-3deg); }
    72% { transform: translate3d(3px, 0, 0) rotate(3deg); }
    74% { transform: translate3d(-3px, 0, 0) rotate(-4deg); }
    76% { transform: translate3d(3px, 0, 0) rotate(4deg); }
    78% { transform: translate3d(-2px, 0, 0) rotate(-3deg); }
    80% { transform: translate3d(2px, 0, 0) rotate(3deg); }
    82% { transform: translate3d(-1px, 0, 0) rotate(-2deg); }
    84% { transform: translate3d(1px, 0, 0) rotate(2deg); }
    86%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
}

@media (prefers-reduced-motion: reduce) {
    .float-contact-wrapper .float-contact-phone {
        animation: none !important;
        will-change: auto;
    }
}

@media only screen and (max-width: 48em) {
    .float-contact-wrapper .float-contact-zalo,
    .float-contact-wrapper .float-contact-phone {
        bottom: max(12px, env(safe-area-inset-bottom)) !important;
    }

    .float-contact-wrapper .float-contact-zalo {
        left: max(10px, env(safe-area-inset-left)) !important;
    }

    .float-contact-wrapper .float-contact-zalo img {
        width: 52px !important;
        height: 52px !important;
        max-width: 52px !important;
        max-height: 52px !important;
    }

    .float-contact-wrapper .float-contact-zalo-text {
        min-width: 52px !important;
        height: 52px !important;
        padding: 0 14px !important;
        font-size: 14px !important;
    }

    .float-contact-wrapper .float-contact-phone {
        right: max(10px, env(safe-area-inset-right)) !important;
        min-height: 48px !important;
        padding: 10px 13px !important;
        gap: 7px !important;
        font-size: 14px !important;
    }

    .float-contact-wrapper .float-contact-phone-icon,
    .float-contact-wrapper .float-contact-phone-icon svg {
        width: 20px !important;
        height: 20px !important;
    }
}

@media only screen and (max-width: 360px) {
    .float-contact-wrapper .float-contact-phone {
        padding-left: 11px !important;
        padding-right: 11px !important;
        font-size: 13px !important;
    }
}
