/* =========================================================
   AIVITA Floating Buttons
   Unified desktop + mobile square rounded style.
   Fixes Book Now popup and icon vertical alignment.
========================================================= */

.booking-container,
.taiwan-site-container,
#backToTopBtn,
#bookingBtn,
#taiwanSiteBtn,
.booking-popup,
.booking-option {
    box-sizing: border-box !important;
}

/* ---------- Desktop / Default ---------- */

.booking-container,
.taiwan-site-container {
    position: fixed !important;
    right: 30px !important;
    left: auto !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 99 !important;
    display: grid !important;
    place-items: center !important;
    overflow: visible !important;
    line-height: 0 !important;
    transform: none !important;
}

.booking-container {
    bottom: 240px !important;
}

.taiwan-site-container {
    bottom: 170px !important;
}

#backToTopBtn {
    position: fixed !important;
    right: 30px !important;
    left: auto !important;
    bottom: 100px !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 99 !important;
    border-radius: 10px !important;
    display: grid !important;
    place-items: center !important;
    line-height: 1 !important;
    text-align: center !important;
    transform: none !important;
}

#bookingBtn,
#taiwanSiteBtn {
    position: relative !important;
    inset: auto !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: none !important;
    border-radius: 10px !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
    line-height: 0 !important;
    vertical-align: top !important;
}

#bookingBtn:hover,
#taiwanSiteBtn:hover,
#backToTopBtn:hover {
    background-color: rgba(0, 0, 0, 0.8) !important;
}

#bookingBtn img,
#taiwanSiteBtn img {
    position: static !important;
    width: 30px !important;
    height: 30px !important;
    max-width: 30px !important;
    max-height: 30px !important;
    display: block !important;
    object-fit: contain !important;
    object-position: center !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    vertical-align: middle !important;
}

/* booking icon visually appears slightly high, so nudge it down */
#bookingBtn img {
    transform: translateY(1.5px) !important;
}

/* Taiwan flag should remain geometrically centered */
#taiwanSiteBtn img {
    transform: none !important;
}

/* Book Now popup: align to the vertical center of the icon button */
.booking-popup {
    position: absolute !important;
    right: 60px !important;
    left: auto !important;
    top: 50% !important;
    bottom: auto !important;
    min-width: 150px !important;
    height: 50px !important;
    width: 150px !important;
    max-width: calc(100vw - 100px) !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 100 !important;
    transform: translateY(-50%) translateX(20px) !important;
    white-space: nowrap !important;
    opacity: 0 !important;
    visibility: hidden !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: center !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    border-radius: 0 !important;
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease !important;
}

.booking-container:hover .booking-popup {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(-50%) translateX(0) !important;
}

.booking-option {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border-radius: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    text-decoration: none !important;
}

/* ---------- Mobile ---------- */

@media (max-width: 768px) {
    .booking-container,
    .taiwan-site-container {
        right: 16px !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
        z-index: 4200 !important;
    }

    .booking-container {
        bottom: 138px !important;
    }

    .taiwan-site-container {
        bottom: 78px !important;
    }

    #backToTopBtn {
        right: 16px !important;
        bottom: 18px !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
        z-index: 4200 !important;
        border-radius: 10px !important;
    }

    #bookingBtn,
    #taiwanSiteBtn {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
        border-radius: 10px !important;
    }

    #bookingBtn img,
    #taiwanSiteBtn img {
        width: 28px !important;
        height: 28px !important;
        max-width: 28px !important;
        max-height: 28px !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #bookingBtn img {
        transform: translateY(1.5px) !important;
    }

    .booking-popup {
        right: 56px !important;
        top: 50% !important;
        bottom: auto !important;
        height: 48px !important;
        width: 140px !important;
        min-width: 140px !important;
        max-width: calc(100vw - 92px) !important;
        transform: translateY(-50%) translateX(20px) !important;
    }

    .booking-container:hover .booking-popup,
    .booking-container:focus-within .booking-popup {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(-50%) translateX(0) !important;
    }

    body.mobile-nav-open .booking-container,
    body.mobile-nav-open .taiwan-site-container,
    body.mobile-nav-open #backToTopBtn {
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

@media (max-width: 480px) {
    .booking-container,
    .taiwan-site-container {
        right: 12px !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        max-width: 44px !important;
        max-height: 44px !important;
    }

    .booking-container {
        bottom: 124px !important;
    }

    .taiwan-site-container {
        bottom: 70px !important;
    }

    #backToTopBtn {
        right: 12px !important;
        bottom: 16px !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        max-width: 44px !important;
        max-height: 44px !important;
        border-radius: 9px !important;
    }

    #bookingBtn,
    #taiwanSiteBtn {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        max-width: 44px !important;
        max-height: 44px !important;
        border-radius: 9px !important;
    }

    #bookingBtn img,
    #taiwanSiteBtn img {
        width: 24px !important;
        height: 24px !important;
        max-width: 24px !important;
        max-height: 24px !important;
    }

    #bookingBtn img {
        transform: translateY(1.5px) !important;
    }

    .booking-popup {
        right: 52px !important;
        top: 50% !important;
        bottom: auto !important;
        height: 44px !important;
        width: 132px !important;
        min-width: 132px !important;
        max-width: calc(100vw - 82px) !important;
        transform: translateY(-50%) translateX(18px) !important;
    }

    .booking-container:hover .booking-popup,
    .booking-container:focus-within .booking-popup {
        transform: translateY(-50%) translateX(0) !important;
    }
}
