* { margin: 0; padding: 0; box-sizing: border-box; }
:root { 
    --primary-color: #D4AF37; 
    --primary-hover: #B5952F;
    --secondary-color: #718096; 
    --dark-bg: #111827; 
    --light-bg: #FAF9F6; 
    --text-dark: #1F2937;
    --text-light: #4B5563;
    --border-color: #E5E7EB;
    --error-color: #EF4444;
    --success-color: #10B981;
}

html { scroll-behavior: smooth; }
body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; color: var(--text-dark); line-height: 1.6; background-color: var(--light-bg); }
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* NAVBAR */
header { background: rgba(17, 24, 39, 0.95); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 1000; border-bottom: 2px solid var(--primary-color); }
.navbar { padding: 15px 0; }
.navbar .container { display: flex; justify-content: space-between; align-items: center; }
.logo { display: flex; align-items: center; gap: 12px; font-size: 24px; font-weight: 800; color: var(--primary-color); text-decoration: none; letter-spacing: 1px; }
.logo-img { width: 50px; height: 50px; object-fit: cover; border-radius: 50%; border: 2px solid var(--primary-color); }
.nav-menu { display: flex; list-style: none; gap: 15px; align-items: center; }
.nav-menu li { position: relative; }
.nav-menu a { color: #F3F4F6; text-decoration: none; font-weight: 500; padding: 8px 16px; position: relative; z-index: 2; transition: color 0.3s ease; }
.nav-menu a::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: var(--primary-color); transform: translate(-50%, -50%) skew(-15deg); z-index: -1; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; border-radius: 4px; }
.nav-menu a:hover::before { width: 100%; height: 100%; opacity: 0.15; }
.nav-menu a:hover { color: var(--primary-color); }
.nav-menu .btn-login { border: 1px solid var(--primary-color); border-radius: 20px; }
.nav-menu .btn-login:hover { background-color: var(--primary-color); color: var(--dark-bg); }
.nav-menu .btn-login:hover::before { display: none; }

/* BUTTONS */
.btn { display: inline-block; padding: 12px 32px; border-radius: 6px; text-decoration: none; font-weight: 600; transition: all 0.3s ease; border: none; cursor: pointer; font-size: 16px; text-align: center; }
.btn-primary { background-color: var(--primary-color); color: var(--dark-bg); }
.btn-primary:hover { background-color: var(--primary-hover); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3); }
.btn-secondary { background-color: transparent; color: var(--primary-color); border: 2px solid var(--primary-color); }
.btn-secondary:hover { background-color: var(--primary-color); color: var(--dark-bg); }

/* GLOBALS & HEADERS */
main { min-height: calc(100vh - 200px); }
section { padding: 80px 0; }
.text-center { text-align: center; }
.section-title { font-size: 36px; color: var(--dark-bg); margin-bottom: 20px; font-weight: 800; }
.section-subtitle { font-size: 18px; color: var(--text-light); margin-bottom: 50px; }

/* HERO */
.hero { background: linear-gradient(135deg, var(--dark-bg) 0%, #1F2937 100%); color: white; padding: 120px 0; text-align: center; position: relative; overflow: hidden; }
.hero h1 { font-size: 56px; margin-bottom: 24px; font-weight: 800; letter-spacing: -1px; }
.hero h1 span { color: var(--primary-color); }
.hero p { font-size: 20px; margin-bottom: 40px; color: #D1D5DB; max-width: 800px; margin-left: auto; margin-right: auto; }
.page-header { background: var(--dark-bg); color: white; padding: 80px 0; text-align: center; border-bottom: 4px solid var(--primary-color); }
.page-header h1 { font-size: 44px; margin-bottom: 16px; }

/* GRIDS & CARDS */
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.card { background-color: white; padding: 40px 30px; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); transition: all 0.3s ease; border: 1px solid var(--border-color); }
.card:hover { transform: translateY(-10px); box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1); border-color: var(--primary-color); }
.card-icon { font-size: 40px; margin-bottom: 20px; display: inline-block; }
.card h3 { font-size: 22px; color: var(--dark-bg); margin-bottom: 15px; }

/* SOBRE.PHP - TIMELINE HORIZONTAL */
.timeline-horizontal { display: flex; justify-content: space-between; gap: 20px; margin: 40px 0; position: relative; }
.timeline-horizontal::before { content: ''; position: absolute; top: 20px; left: 0; width: 100%; height: 4px; background-color: var(--primary-color); z-index: 0; }
.timeline-item-h { flex: 1; position: relative; z-index: 1; padding-top: 50px; text-align: center; }
.timeline-item-h::before { content: ''; position: absolute; top: 10px; left: 50%; transform: translateX(-50%); width: 24px; height: 24px; background-color: white; border: 4px solid var(--primary-color); border-radius: 50%; z-index: 2; }
.timeline-content-h { background-color: white; padding: 20px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); border: 1px solid var(--border-color); }

/* SOBRE.PHP - EQUIPE */
.equipe-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 30px; margin: 40px 0; }
.membro { background-color: white; padding: 35px 25px; border-radius: 12px; text-align: center; box-shadow: 0 4px 6px rgba(0,0,0,0.05); border: 1px solid var(--border-color); }
.foto-placeholder { width: 120px; height: 120px; background-color: #F3F4F6; border-radius: 50%; margin: 0 auto 20px auto; border: 3px solid var(--primary-color); display: flex; align-items: center; justify-content: center; color: #9CA3AF; font-weight: bold; }
.membro-info { margin-top: 20px; text-align: left; font-size: 14px; }
.membro-info p { margin-bottom: 10px; color: var(--text-light); }
.membro-info strong { color: var(--dark-bg); }

/* SWOT */
.swot-grid-fixed { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; margin: 40px 0; }
.swot-box { background-color: white; padding: 35px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-top: 5px solid; }
.swot-box h3 { font-size: 22px; color: var(--dark-bg); margin-bottom: 20px; }
.swot-box ul { margin-left: 20px; color: var(--text-light); }
.swot-box li { margin-bottom: 12px; }
.fortalezas { border-top-color: var(--success-color); }
.fraquezas { border-top-color: var(--error-color); }
.oportunidades { border-top-color: #3B82F6; } 
.ameacas { border-top-color: #F59E0B; } 
.swot-individual { border-top-color: var(--secondary-color) !important; }

/* =========================================
   CARDS DE DIFERENCIAIS (COM HOVER)
========================================= */
.diferencial-card {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: white;
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    border: 1px solid var(--border-color);
    border-top: 4px solid var(--primary-color);
    transition: all 0.3s ease;
}

.diferencial-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1);
    border-color: var(--primary-color);
}

/* =========================================
   PÁGINAS DE AUTENTICAÇÃO (LOGIN / CADASTRO)
========================================= */
.auth-bg {
    background: linear-gradient(135deg, var(--dark-bg) 0%, #1F2937 100%);
    min-height: calc(100vh - 80px); /* Ocupa a tela toda descontando a navbar */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
}

.auth-card {
    background: white;
    padding: 50px 40px;
    border-radius: 16px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    width: 100%;
    max-width: 450px;
    border-top: 4px solid var(--primary-color);
}

.auth-logo {
    text-align: center;
    margin-bottom: 30px;
}

.auth-logo h2 {
    color: var(--dark-bg);
    font-size: 24px;
}

.auth-logo p {
    color: var(--text-light);
    font-size: 14px;
    margin-top: 5px;
}

.auth-card .form-group {
    margin-bottom: 20px;
}

.auth-card label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 14px;
    color: var(--text-dark);
}

.auth-card input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-family: inherit;
    transition: all 0.3s;
}

.auth-card input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
}

.auth-links {
    margin-top: 25px;
    text-align: center;
    font-size: 14px;
    color: var(--text-light);
}

.auth-links a {
    color: var(--primary-color);
    font-weight: 600;
    text-decoration: none;
}

.auth-links a:hover {
    text-decoration: underline;
}

/* Alertas de Erro/Sucesso */
.alert {
    padding: 12px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-size: 14px;
    text-align: center;
}

.alert-error {
    background-color: #FEE2E2;
    color: #991B1B;
    border: 1px solid #F87171;
}

.alert-success {
    background-color: #D1FAE5;
    color: #065F46;
    border: 1px solid #34D399;
}

/* FOOTER */
footer { background-color: var(--dark-bg); color: #9CA3AF; text-align: center; padding: 40px 0; border-top: 1px solid #374151; }

@media (max-width: 900px) { 
    .swot-grid-fixed { grid-template-columns: 1fr; } 
    .timeline-horizontal { flex-direction: column; gap: 40px; }
    .timeline-horizontal::before { top: 0; left: 20px; width: 4px; height: 100%; }
    .timeline-item-h { padding-top: 0; padding-left: 50px; text-align: left; }
    .timeline-item-h::before { top: 15px; left: 10px; transform: none; }
}
@media (max-width: 768px) { 
    .nav-menu { flex-direction: column; gap: 15px; } 
    .hero h1 { font-size: 40px; } 
}
