/**
 * ===================================
 * FLOATING BUTTONS MODULE - NUNTIUS THEME
 * ===================================
 * 
 * Módulo dedicado para botões flutuantes de navegação
 * - Botão "Fale Conosco" (rola para seção contato)
 * - Botão "Voltar ao Topo" (rola para o topo)
 * 
 * @package Nuntius Theme
 * @module Floating Buttons
 * @version 1.0.0
 */

/* ===================================
 * BOTÃO FALE CONOSCO
 * ================================== */
.nuntius-floating-contact {
    position: fixed !important;
    bottom: 30px !important;
    right: 30px !important;
    z-index: 99999 !important;
    
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 15px 20px !important;
    
    background: linear-gradient(135deg, 
        rgba(88, 101, 242, 0.95) 0%, 
        rgba(67, 181, 129, 0.95) 100%) !important;
    
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 50px !important;
    backdrop-filter: blur(15px) !important;
    -webkit-backdrop-filter: blur(15px) !important;
    
    color: white !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-family: 'Inter', sans-serif !important;
    text-decoration: none !important;
    letter-spacing: 0.5px !important;
    
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    transform: translateY(0) !important;
    
    /* Visibilidade controlada por JavaScript */
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    
    box-shadow: 
        0 10px 40px rgba(88, 101, 242, 0.4),
        0 4px 15px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
}

.nuntius-floating-contact.show {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

.nuntius-floating-contact:hover {
    transform: translateY(-3px) !important;
    box-shadow: 
        0 15px 50px rgba(88, 101, 242, 0.6),
        0 8px 25px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
    
    background: linear-gradient(135deg, 
        rgba(88, 101, 242, 1) 0%, 
        rgba(67, 181, 129, 1) 100%) !important;
}

.nuntius-floating-contact i {
    font-size: 18px !important;
    animation: pulseIcon 2s infinite ease-in-out !important;
}

.nuntius-floating-contact .btn-text {
    white-space: nowrap !important;
    font-weight: 600 !important;
}

/* ===================================
 * BOTÃO VOLTAR AO TOPO
 * ================================== */
.nuntius-back-to-top {
    position: fixed !important;
    bottom: 30px !important;
    right: 30px !important;
    z-index: 99999 !important;
    
    width: 55px !important;
    height: 55px !important;
    
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    
    background: linear-gradient(135deg, 
        rgba(88, 101, 242, 0.95) 0%, 
        rgba(67, 181, 129, 0.95) 100%) !important;
    
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 50% !important;
    backdrop-filter: blur(15px) !important;
    -webkit-backdrop-filter: blur(15px) !important;
    
    color: white !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    transform: translateY(0) !important;
    
    /* Visibilidade controlada por JavaScript */
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    
    box-shadow: 
        0 10px 40px rgba(88, 101, 242, 0.4),
        0 4px 15px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
}

.nuntius-back-to-top.show {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

.nuntius-back-to-top:hover {
    transform: translateY(-3px) !important;
    box-shadow: 
        0 15px 50px rgba(88, 101, 242, 0.6),
        0 8px 25px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
    
    background: linear-gradient(135deg, 
        rgba(88, 101, 242, 1) 0%, 
        rgba(67, 181, 129, 1) 100%) !important;
}

.nuntius-back-to-top i {
    font-size: 20px !important;
    transition: transform 0.3s ease !important;
}

.nuntius-back-to-top:hover i {
    transform: translateY(-2px) !important;
}

/* ===================================
 * ANIMAÇÕES
 * ================================== */
@keyframes pulseIcon {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.1);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.nuntius-floating-contact.show,
.nuntius-back-to-top.show {
    animation: fadeInUp 0.3s ease !important;
}

/* ===================================
 * RESPONSIVIDADE MOBILE
 * ================================== */
@media (max-width: 768px) {
    .nuntius-floating-contact {
        bottom: 20px !important;
        right: 20px !important;
        padding: 12px 16px !important;
        font-size: 12px !important;
    }
    
    .nuntius-floating-contact i {
        font-size: 16px !important;
    }
    
    .nuntius-back-to-top {
        bottom: 20px !important;
        right: 20px !important;
        width: 50px !important;
        height: 50px !important;
    }
    
    .nuntius-back-to-top i {
        font-size: 18px !important;
    }
}

@media (max-width: 480px) {
    .nuntius-floating-contact {
        padding: 10px 14px !important;
        font-size: 11px !important;
    }
    
    .nuntius-floating-contact .btn-text {
        display: none !important;
    }
    
    .nuntius-back-to-top {
        width: 45px !important;
        height: 45px !important;
    }
}

/* ===================================
 * ESTADOS ESPECIAIS
 * ================================== */
.nuntius-floating-contact:active,
.nuntius-back-to-top:active {
    transform: translateY(0) scale(0.95) !important;
}

/* Garantia de que os botões fiquem sempre visíveis quando ativados */
body .nuntius-floating-contact.show,
body .nuntius-back-to-top.show {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}