/* Vila do Saber — CSS global compartilhado */

        /* ================= VÃƒÆ’Ã†â€™Ãƒâ€šÃ‚ÂRIAVEIS GLOBAIS V2.0 ================= */
        :root {
            --cor-primaria: #184A6E; /* Azul institucional */
            --cor-secundaria: #225085; /* Azul secundÃƒÆ’Ã‚Â¡rio */
            --cor-destaque: #E0BD2A; /* Amarelo ouro */
            --cor-acento-1: #CE2B2A; /* Vermelho */
            --cor-acento-2: #0B9B90; /* Turquesa */
            --cor-texto: #263746; /* Grafite azulado */
            --cor-texto-leve: #666666;
            --cor-fundo: #F6FAFB; /* Fundo claro */
            --cor-fundo-alt: #ffffff;
            --fonte-titulo: 'Nunito', sans-serif;
            --fonte-texto: 'Montserrat', sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            --sombra-card: 0 10px 30px rgba(0, 0, 0, 0.08);
            --sombra-hover: 0 15px 35px rgba(0, 0, 0, 0.12);
        }

        /* ================= RESET ================= */
        * { margin: 0; padding: 0; box-sizing: border-box; }
        html { scroll-behavior: smooth; }
        body { font-family: var(--fonte-texto); color: var(--cor-texto); background-color: var(--cor-fundo-alt); line-height: 1.6; overflow-x: hidden; }
        a { text-decoration: none; color: inherit; transition: var(--transicao); }
        ul { list-style: none; }
        img { max-width: 100%; height: auto; display: block; }

        /* ================= UTILITÃƒÆ’Ã†â€™Ãƒâ€šÃ‚ÂRIOS ================= */
        .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
        .section-padding { padding: 90px 0; }
        .text-center { text-align: center; }
        .titulo-secao { font-family: var(--fonte-titulo); font-size: 2.5rem; color: var(--cor-primaria); font-weight: 800; margin-bottom: 15px; position: relative; }
        .titulo-secao::after { content: ''; display: block; width: 60px; height: 4px; background-color: var(--cor-destaque); margin: 15px auto 0; border-radius: 2px; }
        .titulo-secao.left::after { margin: 15px 0 0 0; }
        .subtitulo-secao { font-size: 1.1rem; color: var(--cor-texto-leve); max-width: 700px; margin: 0 auto 50px; font-weight: 400; }
        .subtitulo-secao.left { margin: 0 0 40px 0; max-width: 100%; }

        .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 32px; border-radius: 50px; font-weight: 700; font-family: var(--fonte-titulo); text-transform: uppercase; letter-spacing: 1px; font-size: 0.9rem; cursor: pointer; transition: var(--transicao); border: 2px solid transparent; }
        .btn-primario { background-color: var(--cor-destaque); color: var(--cor-primaria); box-shadow: 0 4px 15px rgba(224, 189, 42, 0.4); }
        .btn-primario:hover { background-color: #cda81f; transform: translateY(-3px); box-shadow: 0 8px 20px rgba(224, 189, 42, 0.5); }
        .btn-secundario { background-color: var(--cor-primaria); color: #fff; box-shadow: 0 4px 15px rgba(24, 74, 110, 0.3); }
        .btn-secundario:hover { background-color: var(--cor-secundaria); transform: translateY(-3px); box-shadow: 0 8px 20px rgba(24, 74, 110, 0.4); }
        .btn-outline { border-color: var(--cor-primaria); color: var(--cor-primaria); background: transparent; }
        .btn-outline:hover { background: var(--cor-primaria); color: #fff; }

        /* ================= TOPBAR & HEADER ================= */
        .topbar { background-color: var(--cor-primaria); color: rgba(255, 255, 255, 0.8); padding: 8px 0; font-size: 0.85rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
        .topbar .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; }
        .topbar-info { display: flex; gap: 20px; }
        .topbar-info i { color: var(--cor-destaque); margin-right: 5px; }
        .topbar-links { display: flex; gap: 15px; align-items: center; }
        .topbar-links a:hover { color: var(--cor-destaque); }
        .portal-aluno { background: var(--cor-destaque); color: var(--cor-primaria) !important; padding: 4px 12px; border-radius: 4px; font-weight: 700; font-size: 0.8rem; text-transform: uppercase; }
        .portal-aluno:hover { background: #fff; }

        header { background-color: #fff; position: sticky; top: 0; z-index: 1000; box-shadow: 0 2px 20px rgba(0, 0, 0, 0.05); transition: var(--transicao); }
        header .container { display: flex; justify-content: space-between; align-items: center; height: 90px; }
        .logo img { height: 65px; transition: var(--transicao); }
        
        nav ul { display: flex; gap: 30px; align-items: center; }
        nav ul li a { font-family: var(--fonte-titulo); font-weight: 700; color: var(--cor-primaria); font-size: 1rem; position: relative; padding: 10px 0; }
        nav ul li a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 3px; background-color: var(--cor-destaque); transition: var(--transicao); border-radius: 2px; }
        nav ul li a:hover::after, nav ul li a.active::after { width: 100%; }
        nav ul li a:hover { color: var(--cor-secundaria); }

        .nav-item-dropdown { position: relative; }
        .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
        .nav-item-dropdown:hover .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
        .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
        .dropdown-menu a::after { display: none !important; }
        .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }

        .menu-btn { display: none; font-size: 1.5rem; color: var(--cor-primaria); cursor: pointer; }

        /* ================= MOBILE DRAWER ================= */
        .mobile-drawer-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); z-index: 1999; opacity: 0; visibility: hidden; transition: var(--transicao); }
        .mobile-drawer-overlay.active { opacity: 1; visibility: visible; }
        .mobile-drawer { position: fixed; top: 0; right: -300px; width: 300px; height: 100%; background: #fff; z-index: 2000; box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1); transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); display: flex; flex-direction: column; }
        .mobile-drawer.active { transform: translateX(-300px); }
        .drawer-header { padding: 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #eee; }
        .drawer-header img { height: 40px; }
        .close-btn { font-size: 1.5rem; color: var(--cor-primaria); cursor: pointer; background: none; border: none; }
        .drawer-nav { flex: 1; padding: 20px 0; overflow-y: auto; }
        .drawer-nav ul { display: flex; flex-direction: column; }
        .drawer-nav ul li a { display: block; padding: 15px 20px; color: var(--cor-primaria); font-family: var(--fonte-titulo); font-weight: 700; border-bottom: 1px solid #f5f5f5; }
        .drawer-nav ul li a:hover { background: var(--cor-fundo); color: var(--cor-destaque); }
        .drawer-footer { padding: 20px; border-top: 1px solid #eee; background: var(--cor-fundo); }
        .drawer-footer .btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 12px; text-align: center; font-size: 0.8rem; }

        /* ================= HERO CAROUSEL ROTATIVO V2.0 ================= */
        .hero-carousel { position: relative; width: 100%; height: 650px; overflow: hidden; background-color: var(--cor-primaria); }
        .carousel-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; visibility: hidden; transition: opacity 0.8s ease-in-out; display: flex; align-items: center; }
        .carousel-slide.active { opacity: 1; visibility: visible; z-index: 2; }
        .carousel-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
        .carousel-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, rgba(24,74,110,0.95) 0%, rgba(24,74,110,0.7) 50%, rgba(24,74,110,0) 100%); z-index: 1; }
        .hero-carousel .container { position: relative; z-index: 3; }
        .carousel-content { max-width: 650px; padding-right: 50px; transform: translateY(30px); opacity: 0; transition: all 0.8s ease 0.3s; }
        .carousel-slide.active .carousel-content { transform: translateY(0); opacity: 1; }
        
        .badge-hero { display: inline-block; padding: 6px 16px; background-color: var(--cor-destaque); color: var(--cor-primaria); font-weight: 800; font-family: var(--fonte-titulo); border-radius: 30px; margin-bottom: 20px; font-size: 0.85rem; letter-spacing: 1px; text-transform: uppercase; }
        .carousel-content h1 { font-family: var(--fonte-titulo); font-size: 3.5rem; font-weight: 800; color: #fff; line-height: 1.1; margin-bottom: 20px; }
        .carousel-content h1 span { color: var(--cor-destaque); }
        .carousel-content p { font-size: 1.2rem; color: rgba(255, 255, 255, 0.9); margin-bottom: 35px; font-weight: 400; max-width: 550px; }
        
        /* Carousel Controls */
        .carousel-controls { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; gap: 10px; }
        .carousel-dot { width: 12px; height: 12px; border-radius: 50%; background: rgba(255,255,255,0.4); cursor: pointer; transition: var(--transicao); border: none; }
        .carousel-dot.active { background: var(--cor-destaque); transform: scale(1.3); }
        .carousel-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(24,74,110,0.5); color: #fff; width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; border-radius: 50%; cursor: pointer; z-index: 10; border: 2px solid transparent; transition: var(--transicao); font-size: 1.2rem; }
        .carousel-arrow:hover { background: var(--cor-destaque); color: var(--cor-primaria); }
        .carousel-prev { left: 20px; }
        .carousel-next { right: 20px; }

        /* ================= FAIXA DE CONFIANÃƒÆ’Ã¢â‚¬Â¡A ================= */
        .faixa-confianca { background-color: var(--cor-primaria); padding: 25px 0; color: #fff; }
        .faixa-grid { display: flex; justify-content: space-around; flex-wrap: wrap; gap: 20px; }
        .faixa-item { display: flex; align-items: center; gap: 15px; font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.1rem; }
        .faixa-item i { color: var(--cor-destaque); font-size: 1.8rem; }

        /* ================= INSTITUCIONAL (HistÃƒÆ’Ã‚Â³ria e MVV) ================= */
        .institucional { background: var(--cor-fundo-alt); }
        .institucional-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
        .inst-img-wrapper img { border-radius: 20px; box-shadow: var(--sombra-card); }
        .mvv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 50px; }
        .mvv-card { background: var(--cor-fundo); padding: 30px 20px; border-radius: 12px; text-align: center; box-shadow: var(--sombra-card); border-top: 4px solid var(--cor-secundaria); transition: var(--transicao); }
        .mvv-card:hover { transform: translateY(-5px); border-top-color: var(--cor-destaque); }
        .mvv-card i { font-size: 2.5rem; color: var(--cor-acento-2); margin-bottom: 15px; }
        .mvv-card h3 { color: var(--cor-primaria); margin-bottom: 10px; font-family: var(--fonte-titulo); }

        /* ================= PROPOSTA PEDAGÃƒÆ’Ã¢â‚¬Å“GICA ================= */
        .proposta { background: var(--cor-fundo); }
        .prop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 40px; }
        .prop-item { background: #fff; padding: 30px; border-radius: 16px; box-shadow: var(--sombra-card); text-align: center; }
        .prop-item i { width: 70px; height: 70px; background: rgba(24,74,110,0.1); color: var(--cor-primaria); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2rem; margin: 0 auto 20px; }
        .prop-item h3 { font-family: var(--fonte-titulo); color: var(--cor-secundaria); margin-bottom: 15px; }

        /* ================= SEGMENTOS ================= */
        .segmentos { background-color: var(--cor-fundo-alt); }
        .seg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
        .seg-card { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--sombra-card); transition: var(--transicao); border: 1px solid #eee; }
        .seg-card:hover { transform: translateY(-10px); box-shadow: var(--sombra-hover); }
        .seg-img { height: 220px; position: relative; }
        .seg-img img { width: 100%; height: 100%; object-fit: cover; }
        .seg-badge { position: absolute; top: 20px; right: 20px; background: var(--cor-destaque); color: var(--cor-primaria); padding: 5px 15px; border-radius: 20px; font-weight: 700; font-size: 0.85rem; font-family: var(--fonte-titulo); }
        .seg-content { padding: 30px; }
        .seg-content h3 { font-family: var(--fonte-titulo); font-size: 1.5rem; color: var(--cor-primaria); margin-bottom: 10px; }
        .seg-content p { color: var(--cor-texto-leve); margin-bottom: 20px; min-height: 60px; }
        .seg-actions { display: flex; gap: 10px; }
        .seg-actions .btn { padding: 10px 20px; font-size: 0.8rem; flex: 1; }

        /* ================= SISTEMA POLIEDRO E BILÃƒÆ’Ã‚ÂNGUE ================= */
        .poliedro-bilingue { background: var(--cor-fundo); }
        .pb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
        .pb-card { background: #fff; border-radius: 20px; padding: 50px; box-shadow: var(--sombra-card); display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
        .pb-card.poliedro { border-left: 8px solid var(--cor-acento-1); }
        .pb-card.bilingue { border-left: 8px solid var(--cor-primaria); }
        .pb-card h3 { font-family: var(--fonte-titulo); font-size: 2rem; color: var(--cor-primaria); margin-bottom: 20px; }
        .pb-icon { position: absolute; right: -20px; bottom: -20px; font-size: 15rem; opacity: 0.05; color: var(--cor-primaria); }
        
        /* ================= INSTAGRAM SECTION ================= */
        .instagram-section { background: var(--cor-fundo-alt); text-align: center; }
        .insta-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 40px; }
        .insta-card { position: relative; border-radius: 16px; overflow: hidden; display: block; aspect-ratio: 1; box-shadow: var(--sombra-card); transition: var(--transicao); }
        .insta-card:hover { transform: translateY(-5px); box-shadow: var(--sombra-hover); }
        .insta-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
        .insta-card:hover img { transform: scale(1.05); }
        .insta-card.destaque { grid-column: span 2; grid-row: span 2; }
        .insta-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(24,74,110,0.95), rgba(24,74,110,0)); opacity: 0; transition: var(--transicao); display: flex; flex-direction: column; justify-content: flex-end; padding: 25px; text-align: left; color: #fff; }
        .insta-card:hover .insta-overlay { opacity: 1; }
        .insta-tag { font-size: 0.75rem; font-weight: 800; font-family: var(--fonte-titulo); background: var(--cor-destaque); color: var(--cor-primaria); padding: 4px 10px; border-radius: 20px; align-self: flex-start; margin-bottom: 10px; text-transform: uppercase; }
        .insta-overlay h3 { font-family: var(--fonte-titulo); font-size: 1.1rem; margin-bottom: 5px; }
        .insta-card.destaque .insta-overlay h3 { font-size: 1.5rem; }
        .insta-overlay p { font-size: 0.85rem; color: rgba(255,255,255,0.8); }
        .insta-actions { display: flex; flex-direction: column; align-items: center; margin-top: 50px; }

        /* ================= ESTRUTURA ================= */
        .estrutura { background: var(--cor-fundo); }
        .estrutura-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
        .estrutura-img { border-radius: 12px; overflow: hidden; height: 250px; position: relative; }
        .estrutura-img img { width: 100%; height: 100%; object-fit: cover; transition: var(--transicao); }
        .estrutura-img:hover img { transform: scale(1.1); }
        .est-legenda { position: absolute; bottom: 0; left: 0; width: 100%; background: linear-gradient(to top, rgba(24,74,110,0.95), transparent); color: #fff; padding: 30px 20px 15px; font-weight: 700; font-family: var(--fonte-titulo); font-size: 1.1rem; }

        /* ================= DEPOIMENTOS & AVALIAÃƒÆ’Ã¢â‚¬Â¡ÃƒÆ’Ã¢â‚¬Â¢ES ================= */
        .depoimentos { background: var(--cor-fundo-alt); }
        .dep-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 40px; }
        .dep-card { background: #fff; padding: 30px; border-radius: 16px; box-shadow: var(--sombra-card); border-top: 4px solid var(--cor-destaque); position: relative; }
        .dep-card::before { content: '\201C'; position: absolute; top: 10px; right: 20px; font-size: 4rem; color: var(--cor-fundo); font-family: Georgia, serif; line-height: 1; }
        .dep-texto { font-style: italic; color: var(--cor-texto-leve); margin-bottom: 20px; position: relative; z-index: 1; }
        .dep-autor { display: flex; align-items: center; gap: 15px; }
        .dep-autor h4 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 2px; font-size: 1rem; }
        .dep-autor span { font-size: 0.8rem; color: #999; }

        /* ================= FAQ ================= */
        .faq { background: var(--cor-fundo); }
        .faq-container { max-width: 800px; margin: 40px auto 0; text-align: left; }
        .faq-item { background: #fff; margin-bottom: 15px; border-radius: 8px; box-shadow: var(--sombra-card); overflow: hidden; border: 1px solid #eee; }
        .faq-pergunta { padding: 20px; font-family: var(--fonte-titulo); font-weight: 700; color: var(--cor-primaria); display: flex; justify-content: space-between; align-items: center; cursor: pointer; transition: var(--transicao); }
        .faq-pergunta:hover { color: var(--cor-secundaria); background: #fafafa; }
        .faq-resposta { padding: 0 20px; max-height: 0; overflow: hidden; transition: all 0.3s ease; color: var(--cor-texto-leve); }
        .faq-item.ativo .faq-resposta { padding: 0 20px 20px; max-height: 500px; }
        .faq-item.ativo .faq-pergunta i { transform: rotate(180deg); color: var(--cor-destaque); }

        /* ================= EQUIPE DOCENTE ================= */
        .equipe { background: var(--cor-fundo); }
        .equipe-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
        .prof-card { text-align: center; background: #fff; border-radius: 12px; padding: 20px; box-shadow: var(--sombra-card); border: 1px solid #eee; }
        .prof-img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; margin: 0 auto 15px; border: 4px solid var(--cor-fundo); }
        .prof-card h4 { color: var(--cor-primaria); font-family: var(--fonte-titulo); font-size: 1.1rem; margin-bottom: 5px; }
        .prof-card span { display: block; color: var(--cor-acento-2); font-weight: 600; font-size: 0.9rem; margin-bottom: 15px; }
        .prof-lattes { color: var(--cor-texto-leve); font-size: 0.85rem; font-weight: 600; text-transform: uppercase; border: 1px solid #ccc; padding: 5px 10px; border-radius: 4px; display: inline-block; transition: var(--transicao); }
        .prof-lattes:hover { background: var(--cor-primaria); color: #fff; border-color: var(--cor-primaria); }

        /* ================= AGENDAMENTOS ================= */
        .agendamentos { background: linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%); color: #fff; }
        .agendamentos .titulo-secao { color: #fff; }
        .agendamentos .titulo-secao::after { background-color: var(--cor-destaque); }
        .agendamentos .subtitulo-secao { color: rgba(255,255,255,0.8); }
        .forms-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
        .form-box { background: #fff; border-radius: 16px; padding: 40px; color: var(--cor-texto); box-shadow: var(--sombra-card); }
        .form-box h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); font-size: 1.5rem; margin-bottom: 20px; border-bottom: 2px solid #eee; padding-bottom: 10px; }
        .form-group { margin-bottom: 15px; }
        .form-group label { display: block; font-weight: 600; color: var(--cor-texto-leve); margin-bottom: 5px; font-size: 0.9rem; }
        .form-group input, .form-group select, .form-group textarea { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 8px; font-family: inherit; transition: var(--transicao); }
        .form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--cor-primaria); outline: none; }
        .form-btn { width: 100%; padding: 15px; background: var(--cor-destaque); color: var(--cor-primaria); font-weight: 800; border: none; border-radius: 8px; font-size: 1.1rem; cursor: pointer; transition: var(--transicao); text-transform: uppercase; margin-top: 10px; }
        .form-btn:hover { background: #cda81f; }

        /* ================= TRABALHE CONOSCO ================= */
        .trabalhe-conosco { background: var(--cor-fundo); }
        .tc-container { max-width: 800px; margin: 0 auto; background: #fff; padding: 50px; border-radius: 16px; box-shadow: var(--sombra-card); }

        /* ================= MAPA & CONTATO ================= */
        .contato-mapa { display: grid; grid-template-columns: 1fr 1fr; }
        .contato-info { padding: 80px 10%; background: var(--cor-fundo-alt); display: flex; flex-direction: column; justify-content: center; }
        .contato-item { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 30px; }
        .contato-item i { font-size: 2rem; color: var(--cor-destaque); }
        .contato-item h4 { font-family: var(--fonte-titulo); color: var(--cor-primaria); font-size: 1.2rem; margin-bottom: 5px; }
        .contato-item p { color: var(--cor-texto-leve); }
        .mapa-iframe iframe { width: 100%; height: 100%; min-height: 400px; border: none; }

        /* ================= FOOTER ================= */
        footer { background: var(--cor-primaria); color: rgba(255,255,255,0.8); padding: 70px 0 30px; }
        .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 50px; }
        .footer-logo img { height: 60px; margin-bottom: 20px; filter: brightness(0) invert(1); }
        .footer-col h3 { font-family: var(--fonte-titulo); color: #fff; font-size: 1.2rem; margin-bottom: 20px; position: relative; padding-bottom: 10px; }
        .footer-col h3::after { content: ''; position: absolute; left: 0; bottom: 0; width: 30px; height: 2px; background: var(--cor-destaque); }
        .footer-links li { margin-bottom: 12px; }
        .footer-links a:hover { color: var(--cor-destaque); padding-left: 5px; }
        .footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; text-align: center; font-size: 0.9rem; }

        /* ================= RESPONSIVO ================= */
        @media (max-width: 992px) {
            .institucional-grid, .pb-grid, .contato-mapa, .forms-wrapper { grid-template-columns: 1fr; }
            .seg-grid { grid-template-columns: 1fr 1fr; }
            .equipe-grid, .mvv-grid, .estrutura-grid, .dep-grid { grid-template-columns: 1fr 1fr; }
            .prop-grid { grid-template-columns: 1fr 1fr; }
            .footer-grid { grid-template-columns: 1fr 1fr; }
            .carousel-content h1 { font-size: 2.8rem; }
            .hero-carousel { height: 550px; }
            .insta-grid { grid-template-columns: repeat(2, 1fr); }
            .insta-card.destaque { grid-column: span 2; grid-row: span 2; }
        }
        @media (max-width: 768px) {
            nav ul { display: none; }
            .menu-btn { display: block; }
            .topbar-info span:nth-child(2) { display: none; }
            .seg-grid, .equipe-grid, .mvv-grid, .prop-grid, .footer-grid, .estrutura-grid, .dep-grid { grid-template-columns: 1fr; }
            .carousel-content h1 { font-size: 2.2rem; }
            .faixa-grid { flex-direction: column; text-align: center; }
            .faixa-item { justify-content: center; }
            .insta-grid { display: flex; overflow-x: auto; padding-bottom: 20px; scroll-snap-type: x mandatory; }
            .insta-card { flex: 0 0 85%; scroll-snap-align: center; }
            .insta-card.destaque { flex: 0 0 90%; }
        }
        /* CATAVENTO ANIMADO */
    .catavento-vila-flutuante {
        position: fixed;
        bottom: 30px;
        left: 30px;
        z-index: 9999;
        width: 76px;
        height: 76px;
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: none;
    }
    .catavento-vila-flutuante img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        transform-origin: 50% 50%;
        animation: giroCatavento 12s linear infinite;
    }
    @keyframes giroCatavento {
        from { transform: rotate(0deg); }
        to { transform: rotate(360deg); }
    }
    @media (prefers-reduced-motion: reduce) {
        .catavento-vila-flutuante img { animation: none; }
    }
    @media (max-width: 768px) {
        .catavento-vila-flutuante {
            width: 50px;
            height: 50px;
            bottom: 20px;
            left: 20px;
        }
    }


/* ================= ARQUITETURA COMPARTILHADA ================= */
.skip-link {
    position: fixed; left: 16px; top: -80px; z-index: 99999;
    background: var(--cor-destaque); color: var(--cor-primaria);
    padding: 10px 16px; border-radius: 0 0 8px 8px; font-weight: 800;
}
.skip-link:focus { top: 0; }
.main-header { background-color: #fff; position: sticky; top: 0; z-index: 1000; box-shadow: 0 2px 20px rgba(0,0,0,.05); }
.main-header .container { display:flex; justify-content:space-between; align-items:center; height:90px; }
.nav-chevron { font-size:.8rem; margin-left:3px; }
.menu-btn { background: transparent; border: 0; }
.portal-disabled { opacity:.68; cursor:not-allowed; }
.page-main { min-height: 48vh; }
.footer-about p { font-size:.9rem; margin-bottom:20px; }
.social-icons { display:flex; gap:15px; font-size:1.4rem; }
.social-icons a { color:var(--cor-destaque); }
.social-icons a:hover { color:#fff; transform:translateY(-2px); }
.footer-contact li { display:flex; gap:12px; margin-bottom:18px; align-items:flex-start; }
.footer-contact i { color:var(--cor-destaque); margin-top:4px; }
.footer-legal { display:flex; flex-wrap:wrap; gap:12px 18px; justify-content:center; margin-top:12px; }
.footer-legal a { text-decoration:underline; text-underline-offset:3px; }
.footer-legal a:hover { color:var(--cor-destaque); }
.catavento-vila-flutuante { position:fixed; bottom:30px; left:30px; z-index:9999; width:76px; height:76px; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.catavento-vila-flutuante img { width:100%; height:100%; object-fit:contain; transform-origin:50% 50%; animation:giroCatavento 12s linear infinite; }
@keyframes giroCatavento { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }

/* Internal page common shell */
.page-header { background:linear-gradient(135deg,var(--cor-primaria) 0%,var(--cor-secundaria) 100%); color:#fff; padding:60px 0; text-align:center; margin-bottom:50px; }
.page-header h1 { font-family:var(--fonte-titulo); font-size:2.5rem; margin-bottom:10px; color:var(--cor-destaque); }
.page-header p { font-size:1.1rem; opacity:.92; max-width:700px; margin:0 auto; }
.content-section { max-width:1000px; margin:0 auto 80px; padding:0 20px; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
img.rounded { border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.1); width:100%; }

/* Legal pages */
.legal-shell { background:var(--cor-fundo); padding:60px 20px 90px; }
.legal-content { max-width:920px; margin:0 auto; background:#fff; border-radius:18px; padding:44px; box-shadow:var(--sombra-card); }
.legal-content h1 { font-family:var(--fonte-titulo); color:var(--cor-primaria); font-size:2.35rem; line-height:1.2; margin-bottom:16px; }
.legal-content h2 { font-family:var(--fonte-titulo); color:var(--cor-primaria); font-size:1.5rem; margin:34px 0 14px; padding-bottom:8px; border-bottom:2px solid var(--cor-destaque); }
.legal-content h3 { font-family:var(--fonte-titulo); color:var(--cor-secundaria); margin:26px 0 10px; }
.legal-content p { margin:0 0 16px; }
.legal-content ul, .legal-content ol { list-style:revert; padding-left:24px; margin:0 0 18px; }
.legal-content li { margin-bottom:7px; }
.legal-content blockquote { border-left:4px solid var(--cor-destaque); background:var(--cor-fundo); padding:16px 18px; margin:20px 0; color:var(--cor-texto-leve); }
.legal-content code { background:#eef2f4; border-radius:5px; padding:2px 6px; }
.legal-content pre { background:#eef2f4; border-radius:10px; padding:16px; overflow:auto; }
.legal-content a { color:var(--cor-secundaria); text-decoration:underline; text-underline-offset:2px; }

/* Redirect helper */
.redirect-box { max-width:680px; margin:80px auto; padding:40px; background:#fff; border-radius:16px; box-shadow:var(--sombra-card); text-align:center; }

@media (max-width: 768px) {
    .grid-2, .grid-3 { grid-template-columns:1fr; }
    .legal-shell { padding:30px 14px 60px; }
    .legal-content { padding:28px 20px; }
    .legal-content h1 { font-size:1.9rem; }
    .footer-legal { flex-direction:column; align-items:center; }
    .catavento-vila-flutuante { width:50px; height:50px; bottom:20px; left:20px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
    .catavento-vila-flutuante img { animation:none !important; }
}

/* ================= PAGE-SOBRE ================= */
body.page-sobre .page-main {
            --cor-primaria: #0d2952;
            --cor-secundaria: #184b91;
            --cor-destaque: #f5b700;
            --cor-texto: #333333;
            --cor-fundo: #f4f7f6;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
body.page-sobre .page-main { font-family: var(--fonte-texto); margin: 0; padding: 0; background: var(--cor-fundo); color: var(--cor-texto); line-height: 1.6; }
body.page-sobre .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-sobre .page-main ul { list-style: none; padding: 0; margin: 0; }
body.page-sobre .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.page-sobre .page-main .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
body.page-sobre .page-main .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
body.page-sobre .page-main .dropdown-menu a::after { display: none !important; }
body.page-sobre .page-main .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }
body.page-sobre .page-main .content-section { max-width: 1000px; margin: 0 auto 80px; padding: 0 20px; }
body.page-sobre .page-main .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
body.page-sobre .page-main .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
body.page-sobre .page-main img.rounded { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); width: 100%; }
body.page-sobre .page-main .card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); text-align: center; }
body.page-sobre .page-main .card i { font-size: 3rem; color: var(--cor-destaque); margin-bottom: 20px; }
body.page-sobre .page-main .card h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 15px; }
body.page-sobre .page-main .mission-list { margin-top: 20px; }
body.page-sobre .page-main .mission-list li { margin-bottom: 15px; display: flex; align-items: flex-start; gap: 15px; }
body.page-sobre .page-main .mission-list i { color: var(--cor-destaque); font-size: 1.5rem; margin-top: 5px; }

/* ================= PAGE-CALENDARIO ================= */
body.page-calendario .page-main {
            --cor-primaria: #0d2952;
            --cor-secundaria: #184b91;
            --cor-destaque: #f5b700;
            --cor-texto: #333333;
            --cor-fundo: #f4f7f6;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
body.page-calendario .page-main { font-family: var(--fonte-texto); margin: 0; padding: 0; background: var(--cor-fundo); color: var(--cor-texto); line-height: 1.6; }
body.page-calendario .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-calendario .page-main ul { list-style: none; padding: 0; margin: 0; }
body.page-calendario .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.page-calendario .page-main .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
body.page-calendario .page-main .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
body.page-calendario .page-main .dropdown-menu a::after { display: none !important; }
body.page-calendario .page-main .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }
body.page-calendario .page-main .content-section { max-width: 1000px; margin: 0 auto 80px; padding: 0 20px; }
body.page-calendario .page-main .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
body.page-calendario .page-main .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
body.page-calendario .page-main img.rounded { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); width: 100%; }
body.page-calendario .page-main .card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); text-align: center; }
body.page-calendario .page-main .card i { font-size: 3rem; color: var(--cor-destaque); margin-bottom: 20px; }
body.page-calendario .page-main .card h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 15px; }
body.page-calendario .page-main .form-container { background: #fff; padding: 40px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); max-width: 600px; margin: 0 auto; }
body.page-calendario .page-main .input-group { margin-bottom: 20px; text-align: left; }
body.page-calendario .page-main .input-group label { display: block; font-weight: 600; color: var(--cor-primaria); margin-bottom: 8px; }
body.page-calendario .page-main .input-group input, body.page-calendario .page-main .input-group textarea, body.page-calendario .page-main .input-group select { width: 100%; padding: 12px; border: 2px solid #e2e8f0; border-radius: 8px; font-family: inherit; transition: var(--transicao); }
body.page-calendario .page-main .input-group input:focus, body.page-calendario .page-main .input-group textarea:focus { border-color: var(--cor-destaque); outline: none; }
body.page-calendario .page-main .btn-submit { width: 100%; padding: 15px; background: var(--cor-destaque); color: var(--cor-primaria); border: none; border-radius: 8px; font-weight: 700; font-size: 1.1rem; cursor: pointer; transition: var(--transicao); }
body.page-calendario .page-main .btn-submit:hover { background: #dfa700; }
body.page-calendario .page-main .calendar-month { background: #fff; padding: 20px; border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 20px; }
body.page-calendario .page-main .calendar-month h3 { border-bottom: 2px solid var(--cor-destaque); padding-bottom: 10px; color: var(--cor-primaria); margin-bottom: 15px; }
body.page-calendario .page-main .event { display: flex; gap: 15px; margin-bottom: 10px; align-items: center; }
body.page-calendario .page-main .event-date { font-weight: bold; color: var(--cor-secundaria); min-width: 60px; }

/* ================= PAGE-CONTATO ================= */
body.page-contato .page-main {
            --cor-primaria: #0d2952;
            --cor-secundaria: #184b91;
            --cor-destaque: #f5b700;
            --cor-texto: #333333;
            --cor-fundo: #f4f7f6;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
body.page-contato .page-main { font-family: var(--fonte-texto); margin: 0; padding: 0; background: var(--cor-fundo); color: var(--cor-texto); line-height: 1.6; }
body.page-contato .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-contato .page-main ul { list-style: none; padding: 0; margin: 0; }
body.page-contato .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.page-contato .page-main .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
body.page-contato .page-main .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
body.page-contato .page-main .dropdown-menu a::after { display: none !important; }
body.page-contato .page-main .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }
body.page-contato .page-main .content-section { max-width: 1000px; margin: 0 auto 80px; padding: 0 20px; }
body.page-contato .page-main .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
body.page-contato .page-main .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
body.page-contato .page-main img.rounded { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); width: 100%; }
body.page-contato .page-main .card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); text-align: center; }
body.page-contato .page-main .card i { font-size: 3rem; color: var(--cor-destaque); margin-bottom: 20px; }
body.page-contato .page-main .card h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 15px; }
body.page-contato .page-main .form-container { background: #fff; padding: 40px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); max-width: 600px; margin: 0 auto; }
body.page-contato .page-main .input-group { margin-bottom: 20px; text-align: left; }
body.page-contato .page-main .input-group label { display: block; font-weight: 600; color: var(--cor-primaria); margin-bottom: 8px; }
body.page-contato .page-main .input-group input, body.page-contato .page-main .input-group textarea, body.page-contato .page-main .input-group select { width: 100%; padding: 12px; border: 2px solid #e2e8f0; border-radius: 8px; font-family: inherit; transition: var(--transicao); }
body.page-contato .page-main .input-group input:focus, body.page-contato .page-main .input-group textarea:focus { border-color: var(--cor-destaque); outline: none; }
body.page-contato .page-main .btn-submit { width: 100%; padding: 15px; background: var(--cor-destaque); color: var(--cor-primaria); border: none; border-radius: 8px; font-weight: 700; font-size: 1.1rem; cursor: pointer; transition: var(--transicao); }
body.page-contato .page-main .btn-submit:hover { background: #dfa700; }
body.page-contato .page-main .calendar-month { background: #fff; padding: 20px; border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 20px; }
body.page-contato .page-main .calendar-month h3 { border-bottom: 2px solid var(--cor-destaque); padding-bottom: 10px; color: var(--cor-primaria); margin-bottom: 15px; }
body.page-contato .page-main .event { display: flex; gap: 15px; margin-bottom: 10px; align-items: center; }
body.page-contato .page-main .event-date { font-weight: bold; color: var(--cor-secundaria); min-width: 60px; }

/* ================= PAGE-EQUIPE ================= */
body.page-equipe .page-main {
            --cor-primaria: #0d2952;
            --cor-secundaria: #184b91;
            --cor-destaque: #f5b700;
            --cor-texto: #333333;
            --cor-fundo: #f4f7f6;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
body.page-equipe .page-main { font-family: var(--fonte-texto); margin: 0; padding: 0; background: var(--cor-fundo); color: var(--cor-texto); line-height: 1.6; }
body.page-equipe .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-equipe .page-main ul { list-style: none; padding: 0; margin: 0; }
body.page-equipe .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.page-equipe .page-main .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
body.page-equipe .page-main .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
body.page-equipe .page-main .dropdown-menu a::after { display: none !important; }
body.page-equipe .page-main .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }
body.page-equipe .page-main .content-section { max-width: 1000px; margin: 0 auto 80px; padding: 0 20px; }
body.page-equipe .page-main .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
body.page-equipe .page-main .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
body.page-equipe .page-main img.rounded { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); width: 100%; }
body.page-equipe .page-main .card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); text-align: center; }
body.page-equipe .page-main .card i { font-size: 3rem; color: var(--cor-destaque); margin-bottom: 20px; }
body.page-equipe .page-main .card h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 15px; }
body.page-equipe .page-main .form-container { background: #fff; padding: 40px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); max-width: 600px; margin: 0 auto; }
body.page-equipe .page-main .input-group { margin-bottom: 20px; text-align: left; }
body.page-equipe .page-main .input-group label { display: block; font-weight: 600; color: var(--cor-primaria); margin-bottom: 8px; }
body.page-equipe .page-main .input-group input, body.page-equipe .page-main .input-group textarea, body.page-equipe .page-main .input-group select { width: 100%; padding: 12px; border: 2px solid #e2e8f0; border-radius: 8px; font-family: inherit; transition: var(--transicao); }
body.page-equipe .page-main .input-group input:focus, body.page-equipe .page-main .input-group textarea:focus { border-color: var(--cor-destaque); outline: none; }
body.page-equipe .page-main .btn-submit { width: 100%; padding: 15px; background: var(--cor-destaque); color: var(--cor-primaria); border: none; border-radius: 8px; font-weight: 700; font-size: 1.1rem; cursor: pointer; transition: var(--transicao); }
body.page-equipe .page-main .btn-submit:hover { background: #dfa700; }
body.page-equipe .page-main .calendar-month { background: #fff; padding: 20px; border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 20px; }
body.page-equipe .page-main .calendar-month h3 { border-bottom: 2px solid var(--cor-destaque); padding-bottom: 10px; color: var(--cor-primaria); margin-bottom: 15px; }
body.page-equipe .page-main .event { display: flex; gap: 15px; margin-bottom: 10px; align-items: center; }
body.page-equipe .page-main .event-date { font-weight: bold; color: var(--cor-secundaria); min-width: 60px; }
body.page-equipe .page-main .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 2000; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: var(--transicao); }
body.page-equipe .page-main .modal-overlay.active { opacity: 1; visibility: visible; }
body.page-equipe .page-main .modal-content { background: #fff; width: 90%; max-width: 500px; border-radius: 12px; padding: 30px; position: relative; transform: translateY(20px); transition: var(--transicao); max-height: 90vh; overflow-y: auto; }
body.page-equipe .page-main .modal-overlay.active .modal-content { transform: translateY(0); }
body.page-equipe .page-main .modal-close { position: absolute; top: 15px; right: 20px; font-size: 1.5rem; color: #888; cursor: pointer; transition: 0.2s; }
body.page-equipe .page-main .modal-close:hover { color: var(--cor-primaria); }
body.page-equipe .page-main .cta-trabalhe { text-align: center; margin-top: 50px; padding: 40px; background: #fff; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); }
body.page-equipe .page-main .cta-trabalhe h3 { color: var(--cor-primaria); font-family: var(--fonte-titulo); margin-bottom: 10px; font-size: 1.5rem; }
body.page-equipe .page-main .cta-trabalhe p { margin-bottom: 20px; color: #555; }
body.page-equipe .page-main .btn-cta { display: inline-block; padding: 12px 30px; background: var(--cor-destaque); color: var(--cor-primaria); font-weight: bold; border-radius: 8px; cursor: pointer; border: none; font-size: 1rem; transition: var(--transicao); }
body.page-equipe .page-main .btn-cta:hover { background: #dfa700; transform: translateY(-2px); }

/* ================= PAGE-BILINGUE ================= */
body.page-bilingue .page-main {
            --cor-primaria: #0d2952;
            --cor-secundaria: #184b91;
            --cor-destaque: #f5b700;
            --cor-texto: #333333;
            --cor-fundo: #f4f7f6;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
body.page-bilingue .page-main { font-family: var(--fonte-texto); margin: 0; padding: 0; background: var(--cor-fundo); color: var(--cor-texto); line-height: 1.6; }
body.page-bilingue .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-bilingue .page-main ul { list-style: none; padding: 0; margin: 0; }
body.page-bilingue .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.page-bilingue .page-main .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
body.page-bilingue .page-main .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
body.page-bilingue .page-main .dropdown-menu a::after { display: none !important; }
body.page-bilingue .page-main .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }
body.page-bilingue .page-main .content-section { max-width: 1000px; margin: 0 auto 80px; padding: 0 20px; }
body.page-bilingue .page-main .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
body.page-bilingue .page-main .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
body.page-bilingue .page-main img.rounded { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); width: 100%; }
body.page-bilingue .page-main .card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); text-align: center; }
body.page-bilingue .page-main .card i { font-size: 3rem; color: var(--cor-destaque); margin-bottom: 20px; }
body.page-bilingue .page-main .card h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 15px; }
body.page-bilingue .page-main .form-container { background: #fff; padding: 40px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); max-width: 600px; margin: 0 auto; }
body.page-bilingue .page-main .input-group { margin-bottom: 20px; text-align: left; }
body.page-bilingue .page-main .input-group label { display: block; font-weight: 600; color: var(--cor-primaria); margin-bottom: 8px; }
body.page-bilingue .page-main .input-group input, body.page-bilingue .page-main .input-group textarea, body.page-bilingue .page-main .input-group select { width: 100%; padding: 12px; border: 2px solid #e2e8f0; border-radius: 8px; font-family: inherit; transition: var(--transicao); }
body.page-bilingue .page-main .input-group input:focus, body.page-bilingue .page-main .input-group textarea:focus { border-color: var(--cor-destaque); outline: none; }
body.page-bilingue .page-main .btn-submit { width: 100%; padding: 15px; background: var(--cor-destaque); color: var(--cor-primaria); border: none; border-radius: 8px; font-weight: 700; font-size: 1.1rem; cursor: pointer; transition: var(--transicao); }
body.page-bilingue .page-main .btn-submit:hover { background: #dfa700; }
body.page-bilingue .page-main .calendar-month { background: #fff; padding: 20px; border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 20px; }
body.page-bilingue .page-main .calendar-month h3 { border-bottom: 2px solid var(--cor-destaque); padding-bottom: 10px; color: var(--cor-primaria); margin-bottom: 15px; }
body.page-bilingue .page-main .event { display: flex; gap: 15px; margin-bottom: 10px; align-items: center; }
body.page-bilingue .page-main .event-date { font-weight: bold; color: var(--cor-secundaria); min-width: 60px; }

/* ================= PAGE-POLIEDRO ================= */
body.page-poliedro .page-main {
            --cor-primaria: #0d2952;
            --cor-secundaria: #184b91;
            --cor-destaque: #f5b700;
            --cor-texto: #333333;
            --cor-fundo: #f4f7f6;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
body.page-poliedro .page-main { font-family: var(--fonte-texto); margin: 0; padding: 0; background: var(--cor-fundo); color: var(--cor-texto); line-height: 1.6; }
body.page-poliedro .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-poliedro .page-main ul { list-style: none; padding: 0; margin: 0; }
body.page-poliedro .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.page-poliedro .page-main .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
body.page-poliedro .page-main .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
body.page-poliedro .page-main .dropdown-menu a::after { display: none !important; }
body.page-poliedro .page-main .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }
body.page-poliedro .page-main .content-section { max-width: 1000px; margin: 0 auto 80px; padding: 0 20px; }
body.page-poliedro .page-main .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
body.page-poliedro .page-main .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
body.page-poliedro .page-main img.rounded { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); width: 100%; }
body.page-poliedro .page-main .card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); text-align: center; }
body.page-poliedro .page-main .card i { font-size: 3rem; color: var(--cor-destaque); margin-bottom: 20px; }
body.page-poliedro .page-main .card h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 15px; }
body.page-poliedro .page-main .form-container { background: #fff; padding: 40px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); max-width: 600px; margin: 0 auto; }
body.page-poliedro .page-main .input-group { margin-bottom: 20px; text-align: left; }
body.page-poliedro .page-main .input-group label { display: block; font-weight: 600; color: var(--cor-primaria); margin-bottom: 8px; }
body.page-poliedro .page-main .input-group input, body.page-poliedro .page-main .input-group textarea, body.page-poliedro .page-main .input-group select { width: 100%; padding: 12px; border: 2px solid #e2e8f0; border-radius: 8px; font-family: inherit; transition: var(--transicao); }
body.page-poliedro .page-main .input-group input:focus, body.page-poliedro .page-main .input-group textarea:focus { border-color: var(--cor-destaque); outline: none; }
body.page-poliedro .page-main .btn-submit { width: 100%; padding: 15px; background: var(--cor-destaque); color: var(--cor-primaria); border: none; border-radius: 8px; font-weight: 700; font-size: 1.1rem; cursor: pointer; transition: var(--transicao); }
body.page-poliedro .page-main .btn-submit:hover { background: #dfa700; }
body.page-poliedro .page-main .calendar-month { background: #fff; padding: 20px; border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 20px; }
body.page-poliedro .page-main .calendar-month h3 { border-bottom: 2px solid var(--cor-destaque); padding-bottom: 10px; color: var(--cor-primaria); margin-bottom: 15px; }
body.page-poliedro .page-main .event { display: flex; gap: 15px; margin-bottom: 10px; align-items: center; }
body.page-poliedro .page-main .event-date { font-weight: bold; color: var(--cor-secundaria); min-width: 60px; }

/* ================= PAGE-TRABALHE ================= */
body.page-trabalhe .page-main {
            --cor-primaria: #0d2952;
            --cor-secundaria: #184b91;
            --cor-destaque: #f5b700;
            --cor-texto: #333333;
            --cor-fundo: #f4f7f6;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
body.page-trabalhe .page-main { font-family: var(--fonte-texto); margin: 0; padding: 0; background: var(--cor-fundo); color: var(--cor-texto); line-height: 1.6; }
body.page-trabalhe .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-trabalhe .page-main ul { list-style: none; padding: 0; margin: 0; }
body.page-trabalhe .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.page-trabalhe .page-main .dropdown-menu { position: absolute; top: 100%; left: 0; background: #fff; min-width: 220px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border-radius: 8px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transicao); display: flex; flex-direction: column; padding: 10px 0; z-index: 1000; }
body.page-trabalhe .page-main .dropdown-menu a { padding: 10px 20px !important; font-size: 0.9rem !important; color: var(--cor-texto) !important; }
body.page-trabalhe .page-main .dropdown-menu a::after { display: none !important; }
body.page-trabalhe .page-main .dropdown-menu a:hover { background: var(--cor-fundo); color: var(--cor-primaria) !important; }
body.page-trabalhe .page-main .content-section { max-width: 1000px; margin: 0 auto 80px; padding: 0 20px; }
body.page-trabalhe .page-main .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
body.page-trabalhe .page-main .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
body.page-trabalhe .page-main img.rounded { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); width: 100%; }
body.page-trabalhe .page-main .card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); text-align: center; }
body.page-trabalhe .page-main .card i { font-size: 3rem; color: var(--cor-destaque); margin-bottom: 20px; }
body.page-trabalhe .page-main .card h3 { font-family: var(--fonte-titulo); color: var(--cor-primaria); margin-bottom: 15px; }
body.page-trabalhe .page-main .form-container { background: #fff; padding: 40px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); max-width: 600px; margin: 0 auto; }
body.page-trabalhe .page-main .input-group { margin-bottom: 20px; text-align: left; }
body.page-trabalhe .page-main .input-group label { display: block; font-weight: 600; color: var(--cor-primaria); margin-bottom: 8px; }
body.page-trabalhe .page-main .input-group input, body.page-trabalhe .page-main .input-group textarea, body.page-trabalhe .page-main .input-group select { width: 100%; padding: 12px; border: 2px solid #e2e8f0; border-radius: 8px; font-family: inherit; transition: var(--transicao); }
body.page-trabalhe .page-main .input-group input:focus, body.page-trabalhe .page-main .input-group textarea:focus { border-color: var(--cor-destaque); outline: none; }
body.page-trabalhe .page-main .btn-submit { width: 100%; padding: 15px; background: var(--cor-destaque); color: var(--cor-primaria); border: none; border-radius: 8px; font-weight: 700; font-size: 1.1rem; cursor: pointer; transition: var(--transicao); }
body.page-trabalhe .page-main .btn-submit:hover { background: #dfa700; }
body.page-trabalhe .page-main .calendar-month { background: #fff; padding: 20px; border-radius: 12px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 20px; }
body.page-trabalhe .page-main .calendar-month h3 { border-bottom: 2px solid var(--cor-destaque); padding-bottom: 10px; color: var(--cor-primaria); margin-bottom: 15px; }
body.page-trabalhe .page-main .event { display: flex; gap: 15px; margin-bottom: 10px; align-items: center; }
body.page-trabalhe .page-main .event-date { font-weight: bold; color: var(--cor-secundaria); min-width: 60px; }

/* ================= PAGE-BLOG ================= */
body.page-blog .page-main {
            --cor-primaria: #184A6E;
            --cor-secundaria: #225085;
            --cor-destaque: #E0BD2A;
            --cor-acento-1: #CE2B2A;
            --cor-acento-2: #0B9B90;
            --cor-texto: #263746;
            --cor-texto-leve: #666666;
            --cor-fundo: #F6FAFB;
            --cor-fundo-alt: #ffffff;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
            --transicao: all 0.3s ease;
            --sombra-card: 0 10px 30px rgba(0, 0, 0, 0.08);
            --sombra-hover: 0 15px 35px rgba(0, 0, 0, 0.12);
        }
body.page-blog .page-main { font-family: var(--fonte-texto); color: var(--cor-texto); background: var(--cor-fundo-alt); line-height: 1.6; }
body.page-blog .page-main a { text-decoration: none; color: inherit; transition: var(--transicao); }
body.page-blog .page-main ul { list-style: none; }
body.page-blog .page-main img { max-width: 100%; height: auto; display: block; }
body.page-blog .page-main .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
body.page-blog .page-main .section-padding { padding: 80px 0; }
body.page-blog .page-main .text-center { text-align: center; }
body.page-blog .page-main .btn-primario { display: inline-block; background-color: var(--cor-destaque); color: var(--cor-primaria); padding: 12px 28px; border-radius: 50px; font-weight: 700; font-family: var(--fonte-titulo); text-transform: uppercase; font-size: 0.9rem; transition: var(--transicao); }
body.page-blog .page-main .btn-primario:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(224, 189, 42, 0.4); }
body.page-blog .page-main .voltar-site { color: var(--cor-texto-leve); font-size: 0.9rem; }
body.page-blog .page-main .blog-hero { background: linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%); color: #fff; padding: 60px 0; text-align: center; }
body.page-blog .page-main .blog-hero h1 { font-family: var(--fonte-titulo); font-size: 3rem; margin-bottom: 15px; }
body.page-blog .page-main .blog-hero p { font-size: 1.1rem; color: rgba(255,255,255,0.8); max-width: 600px; margin: 0 auto; }
body.page-blog .page-main .blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 40px; }
body.page-blog .page-main .blog-card { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--sombra-card); transition: var(--transicao); border: 1px solid #eee; display: flex; flex-direction: column; }
body.page-blog .page-main .blog-card:hover { transform: translateY(-10px); box-shadow: var(--sombra-hover); }
body.page-blog .page-main .blog-img { height: 220px; overflow: hidden; position: relative; }
body.page-blog .page-main .blog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
body.page-blog .page-main .blog-card:hover .blog-img img { transform: scale(1.05); }
body.page-blog .page-main .blog-categoria { position: absolute; top: 15px; left: 15px; background: var(--cor-destaque); color: var(--cor-primaria); font-size: 0.75rem; font-weight: 800; text-transform: uppercase; padding: 4px 12px; border-radius: 20px; font-family: var(--fonte-titulo); }
body.page-blog .page-main .blog-content { padding: 30px; flex: 1; display: flex; flex-direction: column; }
body.page-blog .page-main .blog-meta { font-size: 0.8rem; color: #999; margin-bottom: 10px; display: flex; gap: 15px; }
body.page-blog .page-main .blog-meta i { color: var(--cor-acento-2); margin-right: 5px; }
body.page-blog .page-main .blog-content h3 { font-family: var(--fonte-titulo); font-size: 1.3rem; color: var(--cor-primaria); margin-bottom: 15px; line-height: 1.3; }
body.page-blog .page-main .blog-content p { color: var(--cor-texto-leve); font-size: 0.95rem; margin-bottom: 20px; flex: 1; }
body.page-blog .page-main .blog-ler-mais { font-family: var(--fonte-titulo); font-weight: 800; color: var(--cor-secundaria); font-size: 0.9rem; display: inline-flex; align-items: center; gap: 5px; }
body.page-blog .page-main .blog-ler-mais:hover { color: var(--cor-destaque); }
@media (max-width: 992px) {
body.page-blog .page-main .blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
body.page-blog .page-main .blog-grid { grid-template-columns: 1fr; }
}

/* ================= PAGE-POST ================= */
body.page-post .page-main {
            --cor-primaria: #184A6E;
            --cor-secundaria: #225085;
            --cor-destaque: #E0BD2A;
            --cor-texto: #263746;
            --cor-texto-leve: #666666;
            --cor-fundo: #F6FAFB;
            --fonte-titulo: "Nunito", sans-serif;
            --fonte-texto: "Montserrat", sans-serif;
        }
body.page-post .page-main { font-family: var(--fonte-texto); color: var(--cor-texto); background: #fff; line-height: 1.8; }
body.page-post .page-main a { text-decoration: none; color: inherit; }
body.page-post .page-main .container { max-width: 900px; margin: 0 auto; padding: 0 20px; }
body.page-post .page-main .btn-primario { display: inline-block; background-color: var(--cor-destaque); color: var(--cor-primaria); padding: 10px 24px; border-radius: 50px; font-weight: 700; font-family: var(--fonte-titulo); font-size: 0.9rem; text-transform: uppercase; }
body.page-post .page-main .post-tag { background: var(--cor-fundo); color: var(--cor-primaria); padding: 5px 15px; border-radius: 20px; font-family: var(--fonte-titulo); font-weight: 800; font-size: 0.85rem; text-transform: uppercase; display: inline-block; margin-bottom: 20px; }
body.page-post .page-main .post-title { font-family: var(--fonte-titulo); font-size: 2.8rem; color: var(--cor-primaria); line-height: 1.2; margin-bottom: 20px; }
body.page-post .page-main .post-meta { display: flex; justify-content: center; align-items: center; gap: 20px; color: var(--cor-texto-leve); font-size: 0.9rem; }
body.page-post .page-main .post-author { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--cor-primaria); }
body.page-post .page-main .post-author img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
body.page-post .page-main .post-cover { width: 100%; height: 450px; object-fit: cover; border-radius: 16px; margin-bottom: 50px; }
body.page-post .page-main .post-content { font-size: 1.1rem; color: #444; }
body.page-post .page-main .post-content h2 { font-family: var(--fonte-titulo); font-size: 1.8rem; color: var(--cor-primaria); margin: 40px 0 20px; }
body.page-post .page-main .post-content h3 { font-family: var(--fonte-titulo); font-size: 1.4rem; color: var(--cor-secundaria); margin: 30px 0 15px; }
body.page-post .page-main .post-content p { margin-bottom: 25px; }
body.page-post .page-main .post-content blockquote { border-left: 5px solid var(--cor-destaque); padding: 20px; margin: 30px 0; background: var(--cor-fundo); font-style: italic; font-size: 1.2rem; color: var(--cor-primaria); border-radius: 0 12px 12px 0; }
body.page-post .page-main .post-cta { margin: 60px 0; padding: 40px; background: linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%); color: #fff; border-radius: 16px; text-align: center; }
body.page-post .page-main .post-cta h3 { font-family: var(--fonte-titulo); font-size: 1.8rem; margin-bottom: 15px; }
body.page-post .page-main .post-cta p { margin-bottom: 25px; font-size: 1.1rem; opacity: 0.9; }
@media (max-width: 768px) {
body.page-post .page-main .post-title { font-size: 2rem; }
body.page-post .page-main .post-cover { height: 250px; }
body.page-post .page-main .post-content { font-size: 1rem; }
}

/* ================= PAGE-MATRICULAS ================= */
body.page-matriculas .page-main {
            --primary: #1A365D;
            --secondary: #2B6CB0;
            --accent: #D53F8C;
            --accent-hover: #B83280;
            --yellow: #F6C445;
            --bg: #F8FAFC;
            --card-bg: #FFFFFF;
            --text-dark: #2D3748;
            --text-muted: #718096;
            --border: #E2E8F0;
        }
body.page-matriculas .page-main {
            font-family: "Poppins", sans-serif;
            background-color: var(--bg);
            color: var(--text-dark);
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            background-image:
                radial-gradient(circle at 15% 50%, rgba(246, 196, 69, 0.08) 0%, transparent 25%),
                radial-gradient(circle at 85% 30%, rgba(213, 63, 140, 0.08) 0%, transparent 25%);
            background-size: cover;
            background-attachment: fixed;
            padding: 2rem 1rem;
        }
body.page-matriculas .page-main .rematricula-wrapper {
            display: flex;
            max-width: 1000px;
            width: 100%;
            background: var(--card-bg);
            border-radius: 24px;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
            overflow: hidden;
            animation: slideUp 0.6s ease-out;
        }
@keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
body.page-matriculas .page-main .info-sidebar {
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            color: white;
            padding: 3rem 2rem;
            width: 40%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            position: relative;
            overflow: hidden;
        }
body.page-matriculas .page-main .info-sidebar::before {
            content: "";
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
            animation: rotate 20s linear infinite;
        }
@keyframes rotate {
            0% {
                transform: rotate(0deg);
            }

            100% {
                transform: rotate(360deg);
            }
        }
body.page-matriculas .page-main .info-content {
            position: relative;
            z-index: 1;
        }
body.page-matriculas .page-main .info-sidebar h1 {
            font-family: "Fredoka", sans-serif;
            font-size: 2.5rem;
            line-height: 1.2;
            margin-bottom: 1rem;
            color: var(--yellow);
        }
body.page-matriculas .page-main .info-sidebar p {
            font-size: 1.05rem;
            opacity: 0.9;
            line-height: 1.6;
            margin-bottom: 2rem;
        }
body.page-matriculas .page-main .features {
            list-style: none;
        }
body.page-matriculas .page-main .features li {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 1rem;
            font-size: 0.95rem;
            opacity: 0.95;
        }
body.page-matriculas .page-main .features i {
            color: var(--yellow);
            font-size: 1.2rem;
        }
body.page-matriculas .page-main .form-section {
            width: 60%;
            padding: 3.5rem;
            background: var(--card-bg);
        }
body.page-matriculas .page-main .form-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1.5rem;
        }
body.page-matriculas .page-main .input-group {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            position: relative;
        }
body.page-matriculas .page-main .full-width {
            grid-column: 1 / -1;
        }
body.page-matriculas .page-main .input-group label {
            font-size: 0.85rem;
            font-weight: 600;
            color: var(--primary);
            margin-left: 0.5rem;
        }
body.page-matriculas .page-main .input-group input, body.page-matriculas .page-main .input-group select {
            width: 100%;
            padding: 1rem 1.2rem;
            border: 2px solid var(--border);
            border-radius: 12px;
            font-family: inherit;
            font-size: 1rem;
            color: var(--text-dark);
            background: #F8FAFC;
            transition: all 0.3s ease;
        }
body.page-matriculas .page-main .input-group input::placeholder {
            color: #CBD5E0;
        }
body.page-matriculas .page-main .input-group input:focus, body.page-matriculas .page-main .input-group select:focus {
            outline: none;
            border-color: var(--accent);
            background: white;
            box-shadow: 0 0 0 4px rgba(213, 63, 140, 0.1);
        }
body.page-matriculas .page-main .input-group input:focus+.input-icon, body.page-matriculas .page-main .input-group select:focus+.input-icon {
            color: var(--accent);
        }
body.page-matriculas .page-main .alert-info {
            grid-column: 1 / -1;
            background: #FEF3C7;
            border-left: 4px solid var(--yellow);
            padding: 1rem;
            border-radius: 8px;
            display: flex;
            gap: 1rem;
            align-items: flex-start;
            margin-bottom: 1rem;
        }
body.page-matriculas .page-main .alert-info i {
            color: #D97706;
            margin-top: 0.2rem;
            font-size: 1.2rem;
        }
body.page-matriculas .page-main .alert-info p {
            font-size: 0.9rem;
            color: #92400E;
            margin: 0;
            line-height: 1.5;
        }
body.page-matriculas .page-main .btn-submit {
            grid-column: 1 / -1;
            background: var(--accent);
            color: white;
            border: none;
            padding: 1.2rem;
            border-radius: 12px;
            font-size: 1.1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            font-family: "Fredoka", sans-serif;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.8rem;
            margin-top: 1rem;
        }
body.page-matriculas .page-main .btn-submit:hover {
            background: var(--accent-hover);
            transform: translateY(-2px);
            box-shadow: 0 10px 15px -3px rgba(213, 63, 140, 0.3);
        }
body.page-matriculas .page-main .btn-submit:active {
            transform: translateY(0);
        }
@media (max-width: 900px) {
body.page-matriculas .page-main .rematricula-wrapper {
                flex-direction: column;
            }
body.page-matriculas .page-main .info-sidebar {
                width: 100%;
                padding: 2.5rem 2rem;
            }
body.page-matriculas .page-main .form-section {
                width: 100%;
                padding: 2.5rem 2rem;
            }
}
@media (max-width: 600px) {
body.page-matriculas .page-main .form-grid {
                grid-template-columns: 1fr;
            }
body.page-matriculas .page-main .info-sidebar h1 {
                font-size: 2rem;
            }
}

/* ================= PAGE-REMATRICULA ================= */
body.page-rematricula .page-main {
      --azul: #184A6E;
      --azul-2: #225085;
      --azul-escuro: #10354F;
      --amarelo: #E0BD2A;
      --turquesa: #0B9B90;
      --vermelho: #CE2B2A;
      --texto: #263746;
      --texto-suave: #667785;
      --fundo: #F4F8FA;
      --branco: #FFFFFF;
      --borda: #DDE7EC;
      --sombra: 0 24px 65px rgba(16, 53, 79, 0.14);
      --sombra-campo: 0 0 0 4px rgba(11, 155, 144, 0.12);
      --raio: 24px;
    }
body.page-rematricula .page-main {
      min-height: 100vh;
      font-family: "Montserrat", sans-serif;
      color: var(--texto);
      background:
        radial-gradient(circle at 12% 15%, rgba(224, 189, 42, 0.13), transparent 24%),
        radial-gradient(circle at 88% 8%, rgba(11, 155, 144, 0.11), transparent 24%),
        linear-gradient(145deg, #F8FBFC 0%, #EEF5F7 100%);
      padding: 28px 18px;
    }
body.page-rematricula .page-main a {
      color: inherit;
    }
body.page-rematricula .page-main button, body.page-rematricula .page-main input, body.page-rematricula .page-main select {
      font: inherit;
    }
body.page-rematricula .page-main .page {
      width: min(1120px, 100%);
      margin: 0 auto;
    }
body.page-rematricula .page-main .secure-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px;
      border: 1px solid rgba(24, 74, 110, 0.12);
      border-radius: 999px;
      background: rgba(255,255,255,0.7);
      backdrop-filter: blur(10px);
    }
body.page-rematricula .page-main .shell {
      display: grid;
      grid-template-columns: minmax(330px, 0.88fr) minmax(0, 1.25fr);
      background: var(--branco);
      border: 1px solid rgba(24, 74, 110, 0.08);
      border-radius: var(--raio);
      overflow: hidden;
      box-shadow: var(--sombra);
    }
body.page-rematricula .page-main .brand-panel {
      position: relative;
      overflow: hidden;
      min-height: 680px;
      padding: 52px 44px;
      color: #fff;
      background:
        linear-gradient(155deg, rgba(16,53,79,0.98), rgba(34,80,133,0.96));
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
body.page-rematricula .page-main .brand-panel::before, body.page-rematricula .page-main .brand-panel::after {
      content: "";
      position: absolute;
      border-radius: 50%;
      pointer-events: none;
    }
body.page-rematricula .page-main .brand-panel::before {
      width: 360px;
      height: 360px;
      right: -150px;
      top: -125px;
      border: 62px solid rgba(224, 189, 42, 0.10);
    }
body.page-rematricula .page-main .brand-panel::after {
      width: 260px;
      height: 260px;
      left: -145px;
      bottom: -115px;
      background: rgba(11,155,144,0.13);
    }
body.page-rematricula .page-main .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 7px 12px;
      margin-bottom: 18px;
      border: 1px solid rgba(255,255,255,0.18);
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
      font-size: 0.75rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
body.page-rematricula .page-main .brand-panel h1 {
      font-family: "Nunito", sans-serif;
      font-size: clamp(2.45rem, 4vw, 3.45rem);
      line-height: 1.02;
      font-weight: 800;
      margin-bottom: 20px;
      letter-spacing: -0.03em;
    }
body.page-rematricula .page-main .brand-panel h1 span {
      color: var(--amarelo);
    }
body.page-rematricula .page-main .brand-panel .lead {
      max-width: 430px;
      color: rgba(255,255,255,0.86);
      line-height: 1.75;
      font-size: 1rem;
      margin-bottom: 30px;
    }
body.page-rematricula .page-main .benefits {
      display: grid;
      gap: 13px;
      list-style: none;
    }
body.page-rematricula .page-main .benefits li {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      color: rgba(255,255,255,0.94);
      font-size: 0.92rem;
      line-height: 1.45;
    }
body.page-rematricula .page-main .benefits i {
      width: 27px;
      height: 27px;
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 27px;
      color: var(--azul-escuro);
      background: var(--amarelo);
      font-size: 0.72rem;
      margin-top: 1px;
    }
body.page-rematricula .page-main .form-panel {
      padding: 50px 54px 44px;
      background:
        linear-gradient(180deg, #FFFFFF 0%, #FCFDFE 100%);
    }
body.page-rematricula .page-main .form-kicker {
      color: var(--turquesa);
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-bottom: 8px;
    }
body.page-rematricula .page-main .year-pill {
      flex: 0 0 auto;
      min-width: 74px;
      text-align: center;
      padding: 10px 12px;
      border-radius: 14px;
      color: var(--azul);
      background: rgba(224,189,42,0.17);
      border: 1px solid rgba(224,189,42,0.35);
      font-family: "Nunito", sans-serif;
      font-weight: 800;
      font-size: 1.1rem;
    }
body.page-rematricula .page-main .info-box {
      display: flex;
      gap: 13px;
      align-items: flex-start;
      padding: 15px 16px;
      margin-bottom: 26px;
      border: 1px solid rgba(11,155,144,0.18);
      border-left: 4px solid var(--turquesa);
      border-radius: 12px;
      background: rgba(11,155,144,0.055);
    }
body.page-rematricula .page-main .info-box i {
      color: var(--turquesa);
      margin-top: 2px;
    }
body.page-rematricula .page-main .info-box p {
      color: #49606F;
      font-size: 0.86rem;
      line-height: 1.55;
    }
body.page-rematricula .page-main .info-box strong {
      color: var(--azul);
    }
body.page-rematricula .page-main .form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 19px;
    }
body.page-rematricula .page-main .field {
      display: grid;
      gap: 8px;
    }
body.page-rematricula .page-main .field.full {
      grid-column: 1 / -1;
    }
body.page-rematricula .page-main .field label {
      color: var(--azul-escuro);
      font-size: 0.82rem;
      font-weight: 700;
    }
body.page-rematricula .page-main .field label span {
      color: var(--vermelho);
    }
body.page-rematricula .page-main .control {
      position: relative;
    }
body.page-rematricula .page-main .control > i {
      position: absolute;
      left: 15px;
      top: 50%;
      transform: translateY(-50%);
      color: #91A3AD;
      font-size: 0.92rem;
      pointer-events: none;
    }
body.page-rematricula .page-main .field input, body.page-rematricula .page-main .field select {
      width: 100%;
      min-height: 51px;
      padding: 12px 14px 12px 43px;
      border: 1.5px solid var(--borda);
      border-radius: 12px;
      background: #FBFDFE;
      color: var(--texto);
      transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
      outline: none;
    }
body.page-rematricula .page-main .field select {
      appearance: auto;
    }
body.page-rematricula .page-main .field input::placeholder {
      color: #A8B6BE;
    }
body.page-rematricula .page-main .field input:focus, body.page-rematricula .page-main .field select:focus {
      border-color: var(--turquesa);
      background: #fff;
      box-shadow: var(--sombra-campo);
    }
body.page-rematricula .page-main .field input:focus + i, body.page-rematricula .page-main .field select:focus + i {
      color: var(--turquesa);
    }
body.page-rematricula .page-main .privacy-note {
      grid-column: 1 / -1;
      display: flex;
      gap: 10px;
      align-items: flex-start;
      margin-top: 2px;
      color: var(--texto-suave);
      font-size: 0.78rem;
      line-height: 1.5;
    }
body.page-rematricula .page-main .privacy-note i {
      color: var(--turquesa);
      margin-top: 2px;
    }
body.page-rematricula .page-main .privacy-note a {
      color: var(--azul);
      font-weight: 700;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
body.page-rematricula .page-main .submit-row {
      grid-column: 1 / -1;
      display: grid;
      gap: 12px;
      margin-top: 4px;
    }
body.page-rematricula .page-main .btn-submit {
      width: 100%;
      min-height: 54px;
      border: none;
      border-radius: 13px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      color: var(--azul-escuro);
      background: var(--amarelo);
      box-shadow: 0 12px 24px rgba(224,189,42,0.24);
      font-family: "Nunito", sans-serif;
      font-size: 1rem;
      font-weight: 800;
      cursor: pointer;
      transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
    }
body.page-rematricula .page-main .btn-submit:hover {
      transform: translateY(-2px);
      filter: brightness(1.02);
      box-shadow: 0 16px 30px rgba(224,189,42,0.30);
    }
body.page-rematricula .page-main .btn-submit:disabled {
      cursor: wait;
      opacity: 0.75;
      transform: none;
    }
body.page-rematricula .page-main .after-form {
      margin-top: 28px;
      padding-top: 22px;
      border-top: 1px solid #EDF2F4;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      flex-wrap: wrap;
      font-size: 0.84rem;
      color: var(--texto-suave);
    }
body.page-rematricula .page-main .after-form a {
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--turquesa);
      font-weight: 800;
    }
body.page-rematricula .page-main .after-form a:hover {
      color: var(--azul);
    }
body.page-rematricula .page-main .mini-steps {
      display: flex;
      align-items: center;
      gap: 8px;
      color: var(--texto-suave);
      font-size: 0.75rem;
    }
body.page-rematricula .page-main .mini-steps span {
      display: inline-flex;
      align-items: center;
      gap: 5px;
    }
body.page-rematricula .page-main .mini-steps i {
      color: var(--turquesa);
    }
@media (max-width: 920px) {
body.page-rematricula .page-main {
        padding: 18px 12px;
      }
body.page-rematricula .page-main .shell {
        grid-template-columns: 1fr;
      }
body.page-rematricula .page-main .brand-panel {
        min-height: unset;
        padding: 34px 30px;
      }
body.page-rematricula .page-main .form-panel {
        padding: 38px 30px 34px;
      }
}
@media (max-width: 620px) {
body.page-rematricula .page-main .secure-badge {
        display: none;
      }
body.page-rematricula .page-main .brand-panel {
        padding: 30px 24px;
      }
body.page-rematricula .page-main .brand-panel h1 {
        font-size: 2.25rem;
      }
body.page-rematricula .page-main .form-panel {
        padding: 32px 22px 28px;
      }
body.page-rematricula .page-main .form-grid {
        grid-template-columns: 1fr;
      }
body.page-rematricula .page-main .field.full, body.page-rematricula .page-main .privacy-note, body.page-rematricula .page-main .submit-row {
        grid-column: auto;
      }
body.page-rematricula .page-main .year-pill {
        order: -1;
      }
body.page-rematricula .page-main .after-form {
        align-items: flex-start;
        flex-direction: column;
      }
}
@media (prefers-reduced-motion: reduce) {
body.page-rematricula .page-main *, body.page-rematricula .page-main *::before, body.page-rematricula .page-main *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
      }
}