/* --- Identidade Visual (Tema Claro) --- */
:root {
    --masonic-red: #8F1014;
    --masonic-blue: #0D2E6D;
    --masonic-gold: #C5A059;
    --masonic-gold-dark: #A08040;
    
    --bg-white: #FFFFFF;
    --bg-light-gray: #F8F9FA;
    --bg-card: #FFFFFF;
    
    --text-dark: #2C3E50;
    --text-muted: #6C757D;
    --border-color: #E9ECEF;
    
    --font-title: 'Cinzel', serif;
    --font-body: 'Montserrat', sans-serif;
    --border-radius: 8px;
    --shadow-sm: 0 2px 10px rgba(0,0,0,0.05);
    --shadow-md: 0 5px 20px rgba(0,0,0,0.1);
    --transition: all 0.3s ease;
}

/* --- Globais --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { 
    font-family: var(--font-body); 
    background-color: var(--bg-white); 
    color: var(--text-dark); 
    line-height: 1.6; 
}

/* CENTRALIZAÇÃO GLOBAL */
h1, h2, h3, h4, p { text-align: center; }
h1, h2, h3, h4 { font-family: var(--font-title); color: var(--masonic-blue); font-weight: 700; }

a { text-decoration: none; color: inherit; transition: var(--transition); }
ul { list-style: none; }
img { max-width: 100%; display: block; margin: 0 auto; }
.container { width: 90%; max-width: 1200px; margin: 0 auto; }
.section { padding: 90px 0; }
.bg-white { background-color: var(--bg-white); }
.bg-light-gray { background-color: var(--bg-light-gray); }

/* Headers de Seção */
.section-header { text-align: center; margin-bottom: 50px; }
.highlight-gold { color: var(--masonic-gold); }
.section-subtitle { display: block; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 2px; color: var(--masonic-red); font-weight: 600; margin-bottom: 10px; text-align: center; }
.header-line { width: 60px; height: 3px; background: var(--masonic-gold); margin: 15px auto 30px; }
.center-line { margin: 15px auto 30px; }
.section-description { max-width: 700px; margin: 0 auto; color: var(--text-muted); text-align: center; }

/* --- Botões --- */
.hero-btns, .youth-action { display: flex; justify-content: center; gap: 15px; flex-wrap: wrap; }
.btn { display: inline-block; padding: 12px 30px; border-radius: 50px; font-weight: 600; text-transform: uppercase; font-size: 0.85rem; cursor: pointer; border: 2px solid transparent; transition: var(--transition); letter-spacing: 0.5px; }

.btn-gold { background: linear-gradient(135deg, var(--masonic-gold), #A38343); color: #fff; box-shadow: 0 4px 15px rgba(197, 160, 89, 0.4); }
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(197, 160, 89, 0.6); }

.btn-outline { border-color: #fff; color: #fff; }
.btn-outline:hover { background: #fff; color: var(--masonic-blue); }

.btn-outline-dark { border-color: var(--masonic-blue); color: var(--masonic-blue); }
.btn-outline-dark:hover { background: var(--masonic-blue); color: #fff; }

.btn-gold-sm { background: var(--masonic-gold); color: #fff; padding: 10px 20px; font-size: 0.75rem; border-radius: 4px; }
.btn-gold-sm:hover { background: var(--masonic-gold-dark); }

.btn-white { background: #fff; color: var(--masonic-red); font-weight: 700; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.btn-white:hover { transform: translateY(-2px); background: #f0f0f0; }

/* --- Header --- */
#main-header { position: fixed; top: 0; width: 100%; z-index: 1000; background: rgba(255, 255, 255, 0.98); padding: 12px 0; box-shadow: 0 2px 15px rgba(0,0,0,0.08); backdrop-filter: blur(10px); }
.header-content { display: flex; justify-content: space-between; align-items: center; }
.brand { display: flex; align-items: center; gap: 15px; }
.header-logo { height: 60px; width: auto; border-radius: 50%; }
.brand-title { font-family: var(--font-title); color: var(--masonic-blue); font-weight: 700; font-size: 1.1rem; text-transform: uppercase; display: block; text-align: left; }
.brand-number { font-size: 0.75rem; color: var(--text-muted); display: block; text-align: left; }

.nav-list { display: flex; gap: 25px; align-items: center; }
.nav-link { font-size: 0.9rem; font-weight: 500; color: var(--text-dark); position: relative; }
.nav-link:hover { color: var(--masonic-red); }
.btn-restricted { background: var(--masonic-blue); color: #fff; padding: 8px 18px; border-radius: 50px; font-size: 0.8rem; display: flex; gap: 8px; align-items: center; transition: var(--transition); }
.btn-restricted:hover { background: var(--masonic-red); }
.toggle-menu-icon, .close-menu-icon { display: none; color: var(--masonic-blue); font-size: 1.5rem; cursor: pointer; }

/* --- Hero --- */
#hero { height: 90vh; min-height: 600px; display: flex; align-items: center; position: relative; background: url('https://images.unsplash.com/photo-1595856425983-a4e153e3443a?ixlib=rb-1.2.1&auto=format&fit=crop&w=1920&q=80') center/cover; margin-top: 80px; }
.hero-bg-overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(13, 46, 109, 0.85), rgba(13, 46, 109, 0.6)); }
.hero-container { position: relative; z-index: 2; text-align: center; color: #fff; }
.hero-content h1 { color: #fff; font-size: 3rem; margin-bottom: 20px; text-shadow: 0 4px 10px rgba(0,0,0,0.3); text-align: center; }
.hero-divider { font-size: 1.5rem; color: var(--masonic-gold); margin: 20px 0; display: flex; justify-content: center; gap: 15px; }
.hero-description { font-size: 1.25rem; margin-bottom: 40px; opacity: 0.95; font-weight: 300; text-align: center; }

/* --- História --- */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.about-text p { margin-bottom: 20px; text-align: center; color: var(--text-muted); font-size: 1.05rem; }
.about-text strong { color: var(--masonic-blue); }
.masonic-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 15px; margin-top: 30px; padding: 25px; background: #FFF9E6; border-top: 4px solid var(--masonic-gold); border-radius: 4px; }
.masonic-star { font-size: 2.5rem; color: var(--masonic-gold); }
.masonic-badge strong { display: block; font-size: 1.1rem; color: var(--masonic-gold-dark); }
.about-img { border-radius: var(--border-radius); box-shadow: var(--shadow-md); position: relative; z-index: 2; }
.img-frame { position: absolute; top: 20px; right: -20px; width: 100%; height: 100%; border: 2px solid var(--masonic-gold); z-index: 1; border-radius: var(--border-radius); }
.about-image-container { position: relative; display: flex; justify-content: center; }

/* --- Tronco de Solidariedade --- */
.pix-wrapper { 
    display: flex;              /* Muda de Grid para Flexbox */
    flex-direction: column;     /* Empilha um embaixo do outro */
    align-items: center;        /* Centraliza tudo horizontalmente */
    gap: 40px; 
}
.pix-card { 
    background: #fff; 
    padding: 40px; 
    border-radius: var(--border-radius); 
    text-align: center; 
    border: 1px solid var(--border-color); 
    box-shadow: var(--shadow-md); 
    
    /* ADICIONE ISTO PARA O CARTÃO NÃO FICAR LARGO DEMAIS */
    width: 100%;
    max-width: 600px; 
}
.pix-icon { 
    font-size: 3rem; 
    color: var(--masonic-red); 
    margin-bottom: 20px; 
}
.pix-card p { color: var(--text-muted); margin-bottom: 25px; font-size: 0.95rem; text-align: center; }
.pix-key-box { 
    background: var(--bg-light-gray); 
    padding: 15px; 
    border-radius: 8px; 
    display: flex; 
    
    /* MUDANÇA AQUI: */
    justify-content: center; /* Centraliza tudo no meio */
    align-items: center; 
    gap: 15px; /* Cria um espaço entre o número e o botão */
    
    border: 1px dashed #ccc; 
    margin-bottom: 10px; 
    flex-wrap: wrap; /* Garante que não quebre em telas muito pequenas */
}
.pix-key-box span { font-family: monospace; font-weight: 700; color: var(--text-dark); font-size: 1.1rem; }
.btn-copy { border: none; background: transparent; color: var(--masonic-blue); cursor: pointer; font-weight: 600; }
.pix-info h4 { margin-bottom: 20px; font-size: 1.2rem; text-align: center; }
.pix-info ul { display: flex; flex-direction: column; align-items: center; }
.pix-info ul li { margin-bottom: 15px; display: flex; align-items: center; justify-content: center; gap: 15px; color: var(--text-dark); text-align: center; }

/* --- Juventude e Vídeos (Atualizado) --- */
.youth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.youth-card { background: #fff; padding: 40px; border-radius: var(--border-radius); box-shadow: var(--shadow-sm); border-top: 5px solid transparent; transition: var(--transition); text-align: center; }
.demolay-card { border-color: #CE1126; }
.fdj-card { border-color: #6A0DAD; }
.youth-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.youth-header { display: flex; flex-direction: column; align-items: center; gap: 15px; margin-bottom: 20px; }
.youth-header i { font-size: 2.5rem; }
.demolay-card i { color: #CE1126; }
.fdj-card i { color: #6A0DAD; }
.youth-card p { color: var(--text-muted); margin-bottom: 20px; min-height: 60px; text-align: center; }

/* Estilo do Vídeo */
.video-placeholder {
    width: 100%;
    margin-bottom: 25px;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    padding-bottom: 56.25%; /* Aspect Ratio 16:9 */
    height: 0;
    border: 1px solid #eee;
}
.video-placeholder iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* --- Ouvidoria --- */
.suggestion-section { background: linear-gradient(135deg, var(--masonic-red), #5e080b); color: #fff; padding: 60px 0; }
.suggestion-container { text-align: center; }
.suggestion-content { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.suggestion-icon { font-size: 3rem; margin-bottom: 20px; opacity: 0.8; }
.suggestion-content h2 { color: #fff; margin-bottom: 15px; text-align: center; }
.suggestion-content p { color: rgba(255,255,255,0.8); margin-bottom: 30px; font-size: 1.1rem; text-align: center; }

/* --- AGENDA (VISUAL PREMIUM REFORMULADO) --- */

.agenda-wrapper { 
    display: grid; 
    grid-template-columns: 1fr 1fr; /* Divide a tela ao meio */
    gap: 50px; /* Mais espaço entre os elementos */
    align-items: center; /* Centraliza verticalmente */
}

/* --- Cartão da Esquerda (Sessões) --- */
.agenda-card.main-session { 
    background: #fff; 
    padding: 50px 40px; 
    border-radius: 12px; 
    text-align: center; 
    border: 1px solid #e5e5e5; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    height: 100%; /* Para alinhar altura se necessário */
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-top: 5px solid var(--masonic-blue); /* Detalhe azul no topo */
}

.agenda-icon { 
    font-size: 3rem; 
    color: var(--masonic-blue); 
    margin-bottom: 20px; 
}

.session-divider {
    width: 50px;
    height: 2px;
    background: var(--masonic-gold);
    margin: 20px auto;
}

.session-day { 
    font-size: 1.4rem; 
    font-weight: 700; 
    color: var(--text-dark); 
    margin-bottom: 5px; 
}

.session-time { 
    color: var(--masonic-red); 
    font-weight: 600; 
    font-size: 1.1rem;
    margin-bottom: 20px;
}

.session-note {
    font-size: 0.95rem;
    color: #777;
    font-style: italic;
}

/* --- Cartão da Direita (O CONVITE) --- */
.featured-event-container {
    display: flex;
    justify-content: center;
    position: relative;
}

.flyer-wrapper {
    position: relative;
    border-radius: 15px;
    overflow: hidden;
    /* Essa sombra faz o convite "flutuar" e parecer premium */
    box-shadow: 0 15px 40px rgba(13, 46, 109, 0.25); 
    transition: transform 0.3s ease;
    border: 4px solid #fff; /* Moldura branca fina */
    outline: 1px solid #ddd; /* Contorno sutil */
    max-width: 450px; /* Tamanho máximo para não ficar gigante */
    width: 100%;
}

.premium-flyer {
    width: 100%;
    height: auto;
    display: block;
}

/* Efeito ao passar o mouse */
.flyer-wrapper:hover {
    transform: translateY(-5px); /* Levanta levemente */
    box-shadow: 0 20px 50px rgba(13, 46, 109, 0.35);
}

/* --- Responsividade (Celular) --- */
@media (max-width: 992px) {
    .agenda-wrapper { 
        grid-template-columns: 1fr; /* Um embaixo do outro */
        gap: 40px;
    }
    
    .flyer-wrapper {
        max-width: 100%; /* No celular ocupa a largura total */
    }
}

/* --- Galeria --- */
.gallery-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 30px; 
}

.gallery-item { 
    position: relative; 
    overflow: hidden; 
    border-radius: var(--border-radius); 
    aspect-ratio: 4/3; 
    cursor: pointer; 
    box-shadow: var(--shadow-sm); 
    border: 1px solid var(--border-color);
}

.gallery-item img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    transition: transform 0.5s ease; 
}

/* Onde a mágica acontece: A barra agora fica fixa embaixo */
.gallery-overlay { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    width: 100%; 
    padding: 15px; 
    background: rgba(13, 46, 109, 0.9); /* Azul da Loja (quase sólido para leitura) */
    display: flex; 
    align-items: center; 
    justify-content: center; 
    opacity: 1; /* AGORA SEMPRE VISÍVEL */
    border-top: 2px solid var(--masonic-gold); /* Detalhe dourado de acabamento */
}

.gallery-overlay span { 
    color: #fff; 
    font-weight: 600; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    font-size: 0.85rem;
    text-align: center;
    text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

/* Efeito apenas na imagem ao passar o mouse (Zoom suave) */
.gallery-item:hover img { 
    transform: scale(1.1); 
}
/* --- Contato --- */
.contact-card-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 20px; align-items: center; }
.contact-details { display: flex; flex-direction: column; gap: 30px; align-items: center; }
.detail-item { display: flex; flex-direction: column; gap: 15px; align-items: center; text-align: center; }
.detail-item i { font-size: 1.5rem; color: var(--masonic-red); background: #FFF5F5; padding: 15px; border-radius: 50%; }
.detail-item h4 { font-size: 1.1rem; color: var(--text-dark); margin-bottom: 5px; font-family: var(--font-body); }
.veneravel-action { background: #fff; padding: 40px; border-radius: var(--border-radius); text-align: center; border: 1px solid var(--masonic-gold); box-shadow: var(--shadow-md); display: flex; flex-direction: column; align-items: center; }
.veneravel-action h3 { margin-bottom: 10px; color: var(--masonic-gold-dark); text-align: center; }
.veneravel-action p { margin-bottom: 25px; color: var(--text-muted); font-size: 0.95rem; text-align: center; }
.btn-veneravel { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: #25D366; color: #fff; padding: 15px 30px; border-radius: 50px; font-weight: 700; text-transform: uppercase; font-size: 0.9rem; box-shadow: 0 4px 15px rgba(37, 211, 102, 0.3); transition: var(--transition); }
.btn-veneravel:hover { background: #128C7E; transform: translateY(-3px); }

/* --- Footer --- */
footer { background: #1C1C1C; padding: 60px 0 20px; color: #aaa; text-align: center; }
.footer-content { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px; margin-bottom: 40px; border-bottom: 1px solid #333; padding-bottom: 30px; }
.footer-brand { display: flex; flex-direction: column; align-items: center; gap: 15px; text-align: center; }
.footer-logo { height: 60px; border-radius: 50%; }
.footer-brand h4 { font-size: 1rem; color: #fff; }
.footer-brand p { font-size: 0.8rem; color: #777; }
.footer-links ul { display: flex; gap: 25px; justify-content: center; }
.footer-links a { color: #aaa; font-size: 0.9rem; }
.footer-links a:hover { color: var(--masonic-gold); }
.footer-bottom { text-align: center; font-size: 0.8rem; }

/* Responsivo */
@media (max-width: 992px) {
    .pix-wrapper, .youth-grid, .agenda-wrapper, .about-grid { grid-template-columns: 1fr; }
    .about-image-container { order: -1; }
}

@media (max-width: 768px) {
    .nav-list { display: none; }
    .toggle-menu-icon { display: block; }
    .contact-card-wrapper { grid-template-columns: 1fr; }
    #hero h1 { font-size: 2rem; }
    .hero-btns { flex-direction: column; }
    
    .nav-menu.active .nav-list {
        display: flex; flex-direction: column; position: fixed; top: 0; right: 0;
        height: 100vh; width: 75%; background: #fff; padding: 80px 30px;
        z-index: 1001; box-shadow: -5px 0 20px rgba(0,0,0,0.1);
        align-items: center;
    }
    .close-menu-icon { display: block; position: absolute; top: 20px; right: 20px; color: var(--text-dark); }
}