/*
 * Estilos do site (antes espalhados como style="" nos módulos antigos).
 * O tema base continua em style.css.
 */

/* Menu ------------------------------------------------------------------ */
.menu-principal { background-color: #fff; z-index: 1000; }
.menu-faixa { background-color: #f244ac; padding-top: 5px; }
.menu-cabecalho { padding-top: 20px; padding-bottom: 20px; }
.menu-conteudo { padding-left: 0; padding-right: 0; }
.dropdown-content a { color: #000; }
.dropdown-programa { left: -30px; }
.dropdown-acessar { left: -50px; }
.espaco-menu { height: 125px; } /* ajustado pelo JS à altura real do menu */

/* Seções ---------------------------------------------------------------- */
.secao { padding-top: 50px; padding-bottom: 0; }
.fundo-cinza { background-color: #f0f0f0; }
.texto-branco { color: #fff; }
.texto-destaque { color: #f6a824; }
.texto-rico img { max-width: 100%; height: auto; }
.pagina-confirmacao { padding-top: 120px; padding-bottom: 160px; }

/* Banner (Jssor) ------------------------------------------------------- */
.banner-slider { position: relative; margin: 0 auto; top: 0; left: 0; width: 1920px; height: 640px; overflow: hidden; visibility: hidden; }
.banner-slides { cursor: default; position: relative; top: 0; left: 0; width: 1920px; height: 640px; overflow: hidden; }

/* Destaques ------------------------------------------------------------- */
.destaque-titulo { color: #fff; }
.destaque-botao, .destaque-botao:hover, .destaque-botao:focus { color: #fff; border-color: #fff; }

/* Logos ----------------------------------------------------------------- */
.secao-logos { padding-top: 20px; }
/* Mesma caixa para todos os logos: 4:3 (padrão das imagens do CRM), sem distorcer formatos diferentes. */
.carrossel-logos .item { aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; }
.carrossel-logos .item a { display: block; width: 100%; height: 100%; }
.carrossel-logos.owl-carousel .owl-item img { width: 100%; height: 100%; object-fit: contain; }
/* Poucos logos (sem loop): centraliza em vez de alinhar à esquerda. */
.carrossel-logos .owl-stage { margin: 0 auto; }

/* Inscrição / pré-cadastro --------------------------------------------- */
.secao-inscricao { background-size: cover; background-position: center; }
.form-precadastro { font-family: Arial, sans-serif; }
.form-precadastro select.form-control { padding-top: 0; }
.termos-caixa, .termos-caixa * { color: #333 !important; }
.termos-caixa { max-height: 140px; overflow-y: auto; background: #fff; color: #333; text-align: left; padding: 10px 12px; border-radius: 4px; font-size: 13px; }
.termos-aceite { margin-top: 10px; color: aliceblue; font-weight: normal; cursor: pointer; }
.campo-isca { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Rodapé ---------------------------------------------------------------- */
.rodape, #fh5co-footer.rodape { background-color: #230254; padding: 30px 0 0; margin-bottom: 0; }
.rodape > .container { padding-bottom: 30px; }
.rodape-redes a { margin-right: 6px; }
.rodape-redes i { font-size: 26px; }
.rodape-copyright { background-color: #630dc9; padding: 10px 0 1px; margin: 0; }
.rodape-copyright p { color: #fff; }

/* WhatsApp flutuante (substitui o widget de terceiros) ------------------ */
.whatsapp-flutuante {
	position: fixed; right: 20px; bottom: 20px; z-index: 1001;
	width: 56px; height: 56px; border-radius: 50%;
	background: #25d366; color: #fff; font-size: 30px; line-height: 56px; text-align: center;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
}
.whatsapp-flutuante:hover, .whatsapp-flutuante:focus { color: #fff; transform: scale(1.05); }

/* Validação do pré-cadastro (sobre o fundo escuro da seção) */
.form-precadastro .help-block { min-height: 18px; margin: 4px 0 0; font-size: 13px; }
.form-precadastro .has-error .help-block { color: #ffb3c1; }
.form-precadastro .has-error .form-control { border-color: #ff5c7a; box-shadow: 0 0 0 2px rgba(255, 92, 122, .35); }
.form-precadastro .has-success .form-control { border-color: #2ecc71; }
.form-precadastro button[disabled] { opacity: .55; cursor: not-allowed; }
.botao-inscricao { margin: 20px 0 50px; }
#modal-precadastro .modal-title { color: #230254; }
#modal-precadastro .aviso-ok { color: #2ecc71; }
#modal-precadastro .aviso-info { color: #f6a824; }
#modal-precadastro .modal-body p { color: #333; }

/* Páginas internas ------------------------------------------------------ */
.pagina-interna { padding-top: 60px; padding-bottom: 40px; }

/* Abas (página Sobre) */
.abas-sobre { margin-top: 30px; border-bottom: 2px solid #e6e0f0; }
.abas-sobre > li > a { color: #630dc9; font-weight: 700; border-radius: 6px 6px 0 0; }
.abas-sobre > li.active > a, .abas-sobre > li.active > a:hover, .abas-sobre > li.active > a:focus { color: #fff; background: #630dc9; border-color: #630dc9; }
.abas-conteudo { padding-top: 25px; }
.abas-conteudo h3 { margin-top: 0; }

/* Dúvidas (sanfona) */
.faq-grupo { margin: 25px 0 12px; font-weight: 700; color: #230254; }
.faq .panel { border-color: #e6e0f0; box-shadow: none; }
.faq .panel-heading { background: #faf8fd; padding: 0; }
.faq .panel-title a { display: block; padding: 14px 16px; color: #230254; font-weight: 700; text-decoration: none; }
.faq .panel-title a .fa { transition: transform .2s; margin-right: 6px; color: #f244ac; }
.faq .panel-title a:not(.collapsed) .fa { transform: rotate(180deg); }
.faq .panel-body { color: #444; }

/* Grade de logos (Sobre / Apoiadores / Patrocinadores / Parceiros) */
.grade-logos { margin-top: 10px; }
.grade-logo { aspect-ratio: 4 / 3; margin-bottom: 30px; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid #eee; border-radius: 6px; overflow: hidden; transition: box-shadow .2s; }
.grade-logo:hover { box-shadow: 0 6px 18px rgba(35, 2, 84, .12); }
.grade-logo a { display: block; width: 100%; height: 100%; }
.grade-logo img { width: 100%; height: 100%; object-fit: contain; }
.faq-contato { margin-top: 20px; color: #666; }

/* Documentos longos (LGPD / Privacidade): leitura confortável */
.texto-documento { max-width: 900px; color: #444; line-height: 1.75; }
.texto-documento p, .texto-documento li { color: #444; }
.texto-documento strong { color: #230254; }
.texto-documento ul { padding-left: 22px; margin-bottom: 18px; }

/* Blog ------------------------------------------------------------------ */
.card-noticia img { margin-bottom: 15px; }
.card-noticia .date { color: #888; font-size: 13px; margin-bottom: 8px; }
.grade-noticias { display: flex; flex-wrap: wrap; }
.grade-noticias > [class*="col-"] { display: flex; margin-bottom: 30px; }
.grade-noticias .card-noticia { width: 100%; }
.paginacao > li > a { color: #630dc9; }
.paginacao > .active > a, .paginacao > .active > a:hover, .paginacao > .active > a:focus { background: #630dc9; border-color: #630dc9; }

.migalhas { background: transparent; padding: 0 0 15px; margin: 0; font-size: 13px; }
.migalhas a { color: #630dc9; }
.post, .post-lateral { background: #fff; padding: 25px; border-radius: 6px; margin-bottom: 30px; }
.post-imagem { width: 100%; border-radius: 4px; margin-bottom: 20px; }
.post-titulo { font-size: 30px; line-height: 1.25; color: #230254; margin-top: 0; }
.post .date { color: #888; font-size: 14px; }
.post-conteudo { font-size: 16px; line-height: 1.75; color: #444; }
.post-conteudo img { border-radius: 4px; margin: 10px 0; }
.post-conteudo a { color: #630dc9; text-decoration: underline; }
.post-compartilhar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.post-compartilhar span { font-weight: 700; color: #230254; }
.post-compartilhar a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 50%; background: #630dc9; color: #fff; font-size: 18px; }
.post-compartilhar a:hover, .post-compartilhar a:focus { background: #f244ac; color: #fff; }
.post-lateral h3 { margin-top: 0; }
.post-relacionado { display: block; margin-bottom: 20px; color: #230254; font-weight: 700; }
.post-relacionado img { border-radius: 4px; margin-bottom: 8px; }
.post-relacionado:hover span { color: #630dc9; text-decoration: underline; }

/* Hackathon --------------------------------------------------------------- */
.tema-hackathon { background: #0f0b1c; }
.tema-hackathon #fh5co-page { background-image: linear-gradient(#0f0b1c, #0f0b1c); }
.menu-hackathon { background-color: #040112; }
.menu-hackathon .menu-faixa { background-color: #ff4faa; }
.menu-hackathon #fh5co-header nav ul li a, .menu-hackathon #fh5co-header nav ul li a i { color: #fff; }
.menu-hackathon #fh5co-header nav ul li a:hover { color: #ff4faa; }
.hack-secao { padding-bottom: 40px; background-size: cover; background-position: center; }
.hack-secao .fh5co-heading h2, .hack-secao .fh5co-heading p { color: #fff; }
.hack-fundo-vencedores { background-color: #9811e2; }
.hack-fundo-escuro { background-color: #0f0b1c; color: #fff; }
.hack-regulamento, .hack-regulamento p, .hack-regulamento td, .hack-regulamento th, .hack-regulamento li { color: #fff; }
.hack-secao .fh5co-heading .hack-regulamento h2, .hack-secao .fh5co-heading .hack-regulamento h3,
#regulamento + .hack-secao .fh5co-heading > h2 { color: #e24295; }
.hack-regulamento table { width: 100%; margin: 15px 0; border-collapse: collapse; }
.hack-regulamento th, .hack-regulamento td { border: 1px solid rgba(255, 255, 255, .25); padding: 8px 10px; vertical-align: top; }
.hack-destaques { padding-top: 50px; }
/* Hackathon: espaço do menu fixo (ajustado pelo JS à altura real do menu) e logo com altura limitada. */
.tema-hackathon .espaco-menu { height: 145px; }
.menu-hackathon .menu-cabecalho img { max-height: 100px; width: auto; }
/* As 3 caixas ficam NA FRENTE da divisa banner / fundo do "Acompanhe" (sem faixa escura entre eles). */
@media (min-width: 769px) {
	/* Bloco de altura zero na divisa; as caixas são centralizadas sobre ela (metade no banner, metade no fundo). */
	.tema-hackathon #gtco-features-3.hack-destaques.sobre-banner { padding: 0; margin: 0; height: 0; position: relative; z-index: 5; background: transparent; }
	.tema-hackathon #gtco-features-3.hack-destaques.sobre-banner > .gtco-container { transform: translateY(-50%); }
	.tema-hackathon .hack-destaques.sobre-banner + #noticias + .hack-fundo-noticias { padding-top: 170px; }
}
#gtco-features-3.hack-destaques .feature .icon { background: #fefefe; }
#gtco-features-3.hack-destaques .feature h3 a { color: #fff; }
#gtco-features-3.hack-destaques .feature.hack-roxo { background: #7506f6; }
#gtco-features-3.hack-destaques .feature.hack-rosa { background: #f44baa; }
#gtco-features-3.hack-destaques .feature.hack-salmao { background: #fc829d; }
#gtco-features-3.hack-destaques .hack-roxo .icon i { color: #7506f6; }
#gtco-features-3.hack-destaques .hack-rosa .icon i { color: #f44baa; }
#gtco-features-3.hack-destaques .hack-salmao .icon i { color: #fc829d; }
.hack-video { background: #e24295; display: block; width: 100%; padding: 30px; }
.hack-video .title { color: #fff; margin: 10px 0 0; font-weight: 700; }
.hack-video:hover .title { text-decoration: underline; }

/* Cartões do Hackathon (como no site anterior) */
.tema-hackathon .card-noticia { background: #fff; }
.tema-hackathon .card-noticia .title { color: #000; }
.tema-hackathon .card-noticia p { color: #333; }
.tema-hackathon .card-noticia .btn-primary { background: #f240ae; border-color: #f240ae; color: #fff; }
.tema-hackathon .hack-card-vencedor { padding: 30px; }
.tema-hackathon .hack-card-vencedor .v-align, .tema-hackathon .hack-card-vencedor .v-align-middle { padding: 0; }
.tema-hackathon .hack-card-vencedor img { margin-bottom: 20px; }
.tema-hackathon .hack-card-vencedor .title { color: #e34396; font-weight: 700; margin-bottom: 20px; }
.tema-hackathon .hack-card-vencedor .btn-primary { background: #e34396; border-color: #e34396; }
.hack-mentor { display: block; width: 100%; background: #fff; padding: 30px; }
.hack-mentor img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; margin-bottom: 15px; }
.hack-mentor .title { color: #000; font-weight: 700; }
.hack-mentor p { color: #000; }
.fundo-hack-rosa { background-color: #e24295; }
.fundo-hack-escuro { background-color: #0e0b1c; }
.fundo-hack-rosa h2, .fundo-hack-rosa p, .fundo-hack-escuro h2, .fundo-hack-escuro p { color: #fff; }
.tema-hackathon .pagina-post { background: #100028; }
.tema-hackathon .migalhas a { color: #ff4faa; }
.tema-hackathon .migalhas > .active { color: #ccc; }
.tema-hackathon #fh5co-footer.rodape { background-color: #000; }
.tema-hackathon .rodape-copyright { background-color: #0e0b1c; }
.hack-vencedor .post-titulo { color: #230254; }
.grade-galeria img { border-radius: 4px; margin-bottom: 20px; }

#modal-aviso .modal-title { color: #230254; }
#modal-aviso .aviso-info { color: #f6a824; }
#modal-aviso .modal-body p { color: #333; }

/* Quero ser professor */
.pagina-professor h1 { font-weight: 700; margin-bottom: 30px; }
.pagina-professor .professor-divisor { margin: 50px 0 40px; }
.form-professor { margin-bottom: 40px; }
.form-professor label { font-weight: 600; }
.form-professor .has-error .form-control { border: 3px solid #ff3b5c; box-shadow: 0 0 0 4px rgba(255, 59, 92, .25); }
.form-professor .has-error .help-block { color: #c9002b; font-weight: 600; }
@media (max-width: 768px) {
	/* Caixas do Hackathon no celular: uma por linha, sem ultrapassar a tela; sem faixa escura acima. */
	.tema-hackathon #gtco-features-3.hack-destaques { padding-top: 20px; }
	.tema-hackathon #gtco-features-3.hack-destaques .gtco-flex { display: block; width: 100%; padding-left: 0; padding-right: 0; }
	.tema-hackathon #gtco-features-3.hack-destaques .feature { width: 100%; float: none; margin: 0 0 20px; }
}
