:root {
    --primary-color: #002147; /* Navy */
    --secondary-color: #C5A059; /* Gold */
    --text-color: #334155;
    --bg-light: #f8f9fa;
}

body { 
    font-family: 'Montserrat', sans-serif; 
    color: var(--text-color);
    background-color: var(--bg-light);
}

h1, h2, h3, h4, h5, h6, .font-serif { 
    font-family: 'Playfair Display', serif; 
}

.text-primary { color: var(--primary-color) !important; }
.text-secondary { color: var(--secondary-color) !important; }

.bg-navy { background-color: var(--primary-color) !important; }
.text-navy { color: var(--primary-color) !important; }
.bg-gold { background-color: var(--secondary-color) !important; }
.text-gold { color: var(--secondary-color) !important; }
.border-gold { border-color: var(--secondary-color) !important; border-width: 4px !important; }
.border-navy { border-color: var(--primary-color) !important; border-width: 4px !important; }

.btn-gold {
    background-color: var(--secondary-color);
    color: #fff;
    border: none;
    transition: 0.3s;
}
.btn-gold:hover {
    background-color: #b58d4a;
    color: #fff;
}

.hover-gold:hover {
    color: var(--secondary-color) !important;
    transition: 0.3s;
}

.section-padding { padding: 80px 0; }

/* Card Hover */
.hover-effect { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.hover-effect:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1) !important;
}

/* FAQ Details */
summary { 
    list-style: none; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    cursor: pointer; 
}
summary::-webkit-details-marker { display: none; }
details[open] summary { color: var(--secondary-color); }

/* Floating Buttons */
.floating-buttons {
    position: fixed;
    bottom: 100px;
    right: 30px;
    z-index: 1000;
}
.floating-btn {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
    transition: all 0.3s ease;
    text-decoration: none;
    position: relative;
}
.floating-btn.whatsapp { background: linear-gradient(135deg, #25D366, #128C7E); }
.floating-btn.back-to-top {
    background-color: var(--primary-color);
    color: #fff;
    border: 2px solid var(--secondary-color);
    box-shadow: 0 4px 15px rgba(0, 33, 71, 0.3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.3s ease;
}
.floating-btn.back-to-top::before {
    display: none; /* Disable pulse ring for Back to Top button */
}
.floating-btn.back-to-top:hover {
    background-color: var(--primary-color);
    border-color: var(--secondary-color);
    color: var(--secondary-color);
    transform: translateY(-5px) scale(1.05);
}
.floating-btn.back-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.floating-btn::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: rgba(37, 211, 102, 0.5);
    z-index: -1;
    animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}
.floating-btn:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 0 8px 25px rgba(37, 211, 102, 0.6);
    color: white;
}
@keyframes pulse-ring {
    0% { transform: scale(0.95); opacity: 1; }
    100% { transform: scale(1.6); opacity: 0; }
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 85px; /* Compensa a altura do cabeçalho fixo (sticky-top) nas âncoras */
}

/* Reset Global de Segurança contra Scroll Horizontal (Estouro de Layout) */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

/* ==========================================
   RESPONSIVIDADE MOBILE (AJUSTES FINOS)
   ========================================== */

/* Hero Avatar Responsivo */
.hero-avatar {
    width: 100%;
    max-width: 280px;
    aspect-ratio: 1/1;
    border: 4px solid var(--secondary-color) !important;
    overflow: hidden;
    border-radius: 50%;
}

@media (max-width: 767.98px) {
    /* Tipografia Responsiva */
    h1, .fs-1 {
        font-size: calc(1.5rem + 1.2vw) !important;
        line-height: 1.25 !important;
    }
    h2, .fs-2 {
        font-size: calc(1.3rem + 0.8vw) !important;
    }
    h3, .fs-3 {
        font-size: calc(1.1rem + 0.6vw) !important;
    }
    .text-2xl {
        font-size: 1.25rem !important; /* Reduz tamanho do logo no mobile */
    }
    
    .section-padding {
        padding: 50px 0;
    }
}

@media (max-width: 575.98px) {
    /* Otimizar aproveitamento de tela em celulares (Container com mais espaço) */
    .container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Ajustes para telas muito pequenas */
    .hero-avatar {
        max-width: 210px; /* Diâmetro mais proporcional para telas pequenas */
    }

    /* Redução de Paddings Excessivos em Cards e Depoimentos */
    .card {
        padding: 1.25rem !important;
    }
    
    .carousel-item > div {
        padding: 1.5rem !important;
    }

    /* FAQ e Acordeão no Mobile */
    summary.h5 {
        font-size: 1.05rem !important;
    }
    details p {
        font-size: 0.95rem;
    }

    /* Botão Flutuante do WhatsApp */
    .floating-buttons {
        bottom: 20px;
        right: 20px;
    }
    .floating-btn {
        width: 50px;
        height: 50px;
    }
    .floating-btn.whatsapp {
        font-size: 1.5rem !important;
    }
}

/* Consistência de Alinhamento no Rodapé / Contatos */
@media (max-width: 991.98px) {
    .footer-info-block {
        text-align: center !important;
    }
    .footer-info-block a {
        display: inline-block;
    }
}

