/* ==========================================================================
   1. ESTILOS GERAIS E RESET
   ========================================================================== */
body, h1, h2, h3, h4, p, ul, details, summary {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: #333;
}
a { text-decoration: none; color: inherit; }
main { min-height: 60vh; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* ==========================================================================
   2. CABEÇALHO E NAVEGAÇÃO
   ========================================================================== */
.main-header {
    background-color: #fff;
    padding: 10px 5%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
    position: sticky;
    top: 0;
    z-index: 1000;
}
.main-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}
.main-nav .logo img { height: 90px; }

/* Menu Principal */
.nav-links {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 25px;
}
.nav-links .nav-button { background-color: #f0f0f0; padding: 8px 16px; border-radius: 5px; }
.nav-links li a:not(.nav-button) {
    position: relative;
    padding: 8px 0;
    color: #555;
    font-weight: bold;
    transition: color 0.3s ease;
}
.nav-links li a:not(.nav-button)::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #536dc5;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.4s ease;
}
.nav-links li a:not(.nav-button):hover::after { transform: scaleX(1); }
.nav-links li a:not(.nav-button):hover { color: #333; }

/* Regra para a página ativa */
.nav-links li.active-page a:not(.nav-button)::after {
    transform: scaleX(1);
}

/* Ícones Sociais no Header */
.header-social { display: flex; align-items: center; gap: 10px; }
.social-icon { display: flex; justify-content: center; align-items: center; width: 36px; height: 36px; border-radius: 50%; transition: transform 0.3s ease; font-size: 16px; color: white; }
.social-icon:hover { transform: scale(1.1) translateY(-2px); }
.icon-instagram { background-color: #333333; }
.icon-facebook  { background-color: #3b5998; }
.icon-twitter   { background-color: #1da1f2; }
.icon-google    { background-color: #dd4b39; }

/* Menu Hamburger (escondido por padrão) */
.hamburger-menu { display: none; cursor: pointer; background: none; border: none; padding: 0; }
.hamburger-menu .bar { display: block; width: 25px; height: 3px; margin: 5px auto; transition: all 0.3s ease-in-out; background-color: #333; }
.hamburger-menu.active .bar:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger-menu.active .bar:nth-child(2) { opacity: 0; }
.hamburger-menu.active .bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ==========================================================================
   3. SEÇÃO HERO
   ========================================================================== */
.hero-section {
    position: relative;
    padding: 60px 20px;
    color: #fff;
    background-image: url('/site/images/hero-background.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(192, 139, 73, 0.85);
    z-index: 1;
}
.hero-content {
    position: relative;
    z-index: 2;
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}
.hero-content h1 { font-size: 2.8em; color: #fff; margin-bottom: 10px; line-height: 1.2; }
.hero-content > p { font-size: 1.2em; color: #f0f0f0; margin-bottom: 40px; }
.hero-main-content { display: flex; align-items: center; gap: 50px; margin-bottom: 40px; }
.hero-text { flex: 1; text-align: left; font-size: 1.1em; line-height: 1.6; }
.hero-text p { margin-bottom: 20px; }
.hero-text a { color: #fff; font-weight: bold; text-decoration: underline; }
.hero-main-content img { flex: 1; max-width: 400px; width: 100%; height: auto; border-radius: 12px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); }

/* Estilos dos Botões */
.btn-primary,
.btn-secondary,
.btn-success {
    display: inline-block;
    padding: 14px 30px;
    border-radius: 50px;
    font-size: 1.1em;
    font-weight: bold;
    color: #fff !important;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease, opacity 0.3s ease;
}
.btn-primary:hover,
.btn-secondary:hover,
.btn-success:hover {
    transform: translateY(-2px);
    opacity: 0.9;
}
.btn-primary, .btn-secondary { background-color: #007BFF; }
.btn-success { background-color: #28a745; }

/* ==========================================================================
   4. SEÇÃO DE BENEFÍCIOS (PÁGINA INICIAL)
   ========================================================================== */
.benefits-section { padding: 80px 0; text-align: center; background-color: #f9f9f9; }
.benefits-section h2 { font-size: 2.5em; color: #40c4ff; margin-bottom: 60px; }
.benefits-grid { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; max-width: 1200px; margin: 0 auto; }
.benefit-item { flex-basis: 300px; }
.benefit-item i { font-size: 3em; color: #40c4ff; }
.benefit-item h3 { margin: 15px 0 10px; font-size: 1.5em; }
.benefit-item p { color: #666; line-height: 1.6; }
.coming-soon { margin-top: 50px; font-style: italic; color: #777; }

/* ==========================================================================
   5. SEÇÃO COMO SOLICITAR
   ========================================================================== */
.how-to-apply { padding: 80px 0; text-align: center; background-color: #fff; }
.how-to-apply h2 { font-size: 2.5em; color: #40c4ff; margin-bottom: 70px; font-weight: bold; }
.steps-container { display: flex; justify-content: center; align-items: flex-start; flex-wrap: wrap; gap: 80px; }
.step { flex: 1; min-width: 180px; max-width: 240px; text-align: center; position: relative; }
.step + .step::before { content: '>'; font-size: 2.5em; font-weight: bold; color: #40c4ff; position: absolute; top: 65px; left: -40px; transform: translate(-50%, -50%); }
.step-icon { width: 130px; height: 130px; border: 3px solid #40c4ff; border-radius: 50%; display: flex; justify-content: center; align-items: center; margin: 0 auto 20px; transition: background-color 0.3s ease; }
.step-icon:hover { background-color: #eaf9ff; }
.step-icon i { font-size: 50px; color: #40c4ff; }
.step p { font-size: 1.1em; color: #555; font-weight: 500; line-height: 1.4; padding: 0 10px; }
.action-buttons { margin-top: 60px; display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; }

/* ==========================================================================
   6. SEÇÃO DE PERGUNTAS FREQUENTES (FAQ)
   ========================================================================== */
.faq-section { 
    padding: 80px 0; /* CORREÇÃO FINAL E DEFINITIVA */
    background-color: #f9f9f9; 
}
.faq-section h2 { 
    text-align: center; 
    font-size: 2.5em; 
    color: #40c4ff; 
    margin-bottom: 50px; 
}
.faq-item details { border-bottom: 1px solid #ddd; }
.faq-item summary { 
    font-weight: bold; 
    color: #333; 
    font-size: 1.1em; 
    cursor: pointer; 
    list-style: none; 
    display: flex; 
    justify-content: space-between; 
    gap: 15px;
    padding: 20px 0;
    align-items: center;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { 
    content: '+';
    color: #40c4ff;
    font-size: 1.5em;
    font-weight: bold;
    line-height: 1;
    transition: transform 0.3s ease;
    flex-shrink: 0;
}
.faq-item details[open] summary::after { transform: rotate(45deg); }
.faq-item p { margin-top: 0; padding: 0 0 20px 10px; line-height: 1.7; color: #666; }

/* ==========================================================================
   7. ESTILOS PARA PÁGINAS INTERNAS (BENEFÍCIOS, CONTATO, ETC.)
   ========================================================================== */
.page-title-section {
    background-color: #f8f9fa;
    padding: 50px 20px;
    text-align: center;
    border-bottom: 1px solid #e0e6ed;
}
.page-title-section h1 { font-size: 2.5em; color: #40c4ff; margin-bottom: 5px; }
.page-title-section .subtitle { font-size: 1.5em; color: #555; font-weight: 300; }
.benefits-page-content { padding: 80px 20px; background-color: #fff; text-align: center; }
.benefits-page-content h2 { font-size: 2.5em; color: #40c4ff; margin-bottom: 60px; }
.benefits-grid-container { display: flex; flex-direction: column; align-items: center; gap: 30px; max-width: 850px; margin: 0 auto; }
.benefit-card { width: 100%; max-width: 700px; background-color: #fff; border-radius: 8px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); overflow: hidden; }
.benefit-card img { width: 100%; height: auto; display: block; }
.page-content { padding: 80px 20px; text-align: center; }
.page-content h2 { font-size: 2.8em; color: #555; font-weight: bold; margin-bottom: 40px; }
.info-block { font-size: 1.2em; color: #666; line-height: 1.6; max-width: 700px; margin: 0 auto; }
.info-block p { margin-bottom: 10px; }
.info-block a { color: #666; }
.info-block a:hover { text-decoration: underline; }
.page-image-container { margin: 40px auto; }
.page-image-container img { max-width: 450px; width: 100%; height: auto; border-radius: 12px; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); }

/* ==========================================================================
   8. RODAPÉ (FOOTER)
   ========================================================================== */
.main-footer { background-color: #343a40; color: #f8f9fa; padding: 50px 5%; }
.footer-content { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 40px; padding-bottom: 30px; border-bottom: 1px solid #495057; }
.footer-column { flex: 1; min-width: 220px; }
.footer-column h4 { color: #fff; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1px; }
.footer-column ul { list-style: none; }
.footer-column ul li a { color: #ced4da; line-height: 2.2; transition: color 0.3s ease; }
.footer-column ul li a:hover { color: #fff; }
.payment-logos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; align-items: center; }
.payment-logos img { width: 100%; height: 45px; object-fit: contain; background-color: #fff; border-radius: 5px; padding: 5px; box-sizing: border-box; }
.footer-social { padding-top: 30px; display: flex; justify-content: center; gap: 15px; }
.footer-copyright { text-align: center; padding-top: 30px; margin-top: 30px; border-top: 1px solid #495057; color: #ced4da; font-size: 0.9em; }


/******************************************************************************
 * 9. RESPONSIVIDADE (MEDIA QUERIES)
 ******************************************************************************/

/* ESTÁGIO 1: Telas médias (Tablets e Laptops pequenos) - até 1024px */
@media (max-width: 1024px) {
    .header-social { display: none; }
    .nav-links { gap: 20px; }
}

/* ESTÁGIO 2: Telas pequenas (Celulares e Tablets em modo retrato) - até 768px */
@media (max-width: 768px) {
    /* AJUSTES NO MENU */
    .nav-links { display: none; position: absolute; top: 80px; left: 0; width: 100%; background-color: white; flex-direction: column; gap: 0; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
    .nav-links.active { display: flex; }
    .nav-links li { width: 100%; text-align: center; }
    .nav-links a { padding: 15px; display: block; width: 100%; border-bottom: 1px solid #f0f0f0; }
    .hamburger-menu { display: block; }
    li.header-social { display: none; }

    /* AJUSTES NA SEÇÃO HERO */
    .hero-section { padding: 40px 20px; }
    .hero-main-content { flex-direction: column; gap: 30px; }
    .hero-text { text-align: center; }
    .hero-content h1 { font-size: 2.2em; }
    .hero-content > p { font-size: 1.1em; margin-bottom: 30px; }

    /* AJUSTES NA SEÇÃO COMO SOLICITAR */
    .how-to-apply { padding: 60px 20px; }
    .how-to-apply h2 { font-size: 2em; margin-bottom: 50px; }
    .steps-container { flex-direction: column; align-items: center; gap: 50px; }
    .step + .step::before { display: none; }

    /* AJUSTES NA SEÇÃO DE BENEFÍCIOS (PÁGINA INICIAL) */
    .benefits-section { padding: 60px 20px; }
    .benefits-grid { flex-direction: column; align-items: center; }

    /* AJUSTES NAS PÁGINAS INTERNAS */
    .page-title-section { padding: 40px 20px; }
    .page-title-section h1 { font-size: 2em; }
    .page-title-section .subtitle { font-size: 1.2em; }
    .benefits-page-content, .page-content { padding: 60px 20px; }
    .benefits-page-content h2, .page-content h2 { font-size: 2em; }

    /* AJUSTES NA SEÇÃO FAQ */
    .faq-section { padding: 60px 5%; }
    .faq-section h2 { font-size: 2em; }

    /* AJUSTES NO RODAPÉ */
    .footer-content { flex-direction: column; align-items: center; text-align: center; }
    .payment-logos { grid-template-columns: repeat(3, 1fr); max-width: 300px; margin: 0 auto; }
}