        /* ==============================
   BACK TO TOP
================================ */

.back-to-top {
    position: fixed;

    right: 25px;
    bottom: 20px;

    width: 52px;
    height: 52px;

    padding: 0 !important;

    display: none;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #222;
    border: none;

    color: #fff;

    font-size: 18px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.20);

    z-index: 9998;

    transition:
        transform 0.3s ease,
        background 0.3s ease,
        box-shadow 0.3s ease;
}


.back-to-top:hover {
    background: #7AB730;
    color: #fff;

    transform: translateY(-4px);

    box-shadow:
        0 12px 30px rgba(0, 0, 0, 0.25);
}


/* Arrow animation */

.back-to-top i {
    transition: transform 0.3s ease;
}


.back-to-top:hover i {
    transform: translateY(-3px);
}


/* ==============================
   MOBILE
================================ */

@media (max-width: 576px) {

    .back-to-top {
        right: 14px;
        bottom: 15px;

        width: 46px;
        height: 46px;

        font-size: 16px;
    }

}
/* =========================================
   FLOATING SOCIAL / BOOKING BUTTONS
========================================= */

.floating-social-buttons {
    position: fixed;

    right: 25px;
    bottom: 90px;

    display: flex;
    flex-direction: column;
    align-items: flex-end;

    gap: 12px;

    z-index: 9999;
}


/* BUTTON */

.floating-btn {
    position: relative;

    height: 54px;

    display: flex;
    align-items: center;

    border-radius: 50px;

    text-decoration: none !important;

    color: #ffffff !important;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.18);

    overflow: hidden;

    width: 54px;

    transition:
        width 0.35s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


/* ICON */

.floating-icon {
    width: 54px;
    height: 54px;

    min-width: 54px;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 25px;
}


/* TEXT */

.floating-label {
    white-space: nowrap;

    padding-right: 22px;

    font-size: 13px;
    font-weight: 600;

    letter-spacing: 0.3px;

    opacity: 0;

    transform: translateX(8px);

    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}


/* HOVER */

.floating-btn:hover {
    width: 155px;

    transform: translateY(-3px);

    box-shadow:
        0 12px 30px rgba(0, 0, 0, 0.25);
}


.floating-btn:hover .floating-label {
    opacity: 1;
    transform: translateX(0);
}



/* =========================================
   WHATSAPP
========================================= */

.whatsapp-btn {
    background:
        linear-gradient(
            135deg,
            #25D366,
            #128C7E
        );
}



/* =========================================
   TRIPADVISOR
========================================= */

.tripadvisor-btn {
    background:
        linear-gradient(
            135deg,
            #34E0A1,
            #00AA6C
        );

    color: #111111 !important;
}



/* =========================================
   VIATOR
========================================= */

.viator-btn {
    background:
        linear-gradient(
            135deg,
            #00A878,
            #008F73
        );
}


.viator-icon {
    color: #ffffff;
    font-weight: 700;
}



/* =========================================
   HOVER ICON EFFECT
========================================= */

.floating-btn .floating-icon {
    transition: transform 0.3s ease;
}


.floating-btn:hover .floating-icon {
    transform: scale(1.08);
}



/* =========================================
   SMALL GLOW
========================================= */

.whatsapp-btn::after,
.tripadvisor-btn::after,
.viator-btn::after {
    content: "";

    position: absolute;

    inset: 0;

    border-radius: inherit;

    background:
        linear-gradient(
            120deg,
            transparent,
            rgba(255,255,255,0.22),
            transparent
        );

    transform: translateX(-120%);

    transition: transform 0.6s ease;

    pointer-events: none;
}


.floating-btn:hover::after {
    transform: translateX(120%);
}



/* =========================================
   TABLET
========================================= */

@media (max-width: 991px) {

    .floating-social-buttons {
        right: 18px;
        bottom: 80px;
    }

}



/* =========================================
   MOBILE
========================================= */

@media (max-width: 576px) {

    .floating-social-buttons {
        right: 14px;
        bottom: 70px;

        gap: 9px;
    }


    .floating-btn {
        width: 46px;
        height: 46px;

        border-radius: 50%;
    }


    .floating-icon {
        width: 46px;
        height: 46px;

        min-width: 46px;

        font-size: 21px;
    }


    /*
       On mobile we keep only icons.
       No expansion because hover isn't useful
       on touch screens.
    */

    .floating-btn:hover {
        width: 46px;

        transform: scale(1.06);
    }


    .floating-label {
        display: none;
    }


    .viator-icon {
        font-size: 19px;
    }

}



/* =========================================
   VERY SMALL PHONES
========================================= */

@media (max-width: 380px) {

    .floating-social-buttons {
        right: 10px;
        bottom: 65px;
    }


    .floating-btn,
    .floating-icon {
        width: 43px;
        height: 43px;

        min-width: 43px;
    }

}
