/* ==========================================================================
   1. Variáveis e Estilos Globais
   ========================================================================== */
:root {
  --color-primary: #2c3e50;
  --color-secondary: #3498db;
  --color-accent: #e74c3c;
  --color-text-dark: #34495e;
  --color-text-light: #ecf0f1;
  --color-background: #f8f9fa;
  --color-light-blue-bg: #eaf5ff;
  --font-family: 'Roboto', sans-serif;
  --spacing-md: 16px;
  --spacing-lg: 32px;
  --spacing-xl: 64px;
  --border-radius: 8px;
  --box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--font-family); color: var(--color-text-dark); line-height: 1.7; background-color: var(--color-background); }
.container { max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-lg); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }

/* ==========================================================================
   2. Estilos Compartilhados (Cabeçalho, Rodapé, etc.)
   ========================================================================== */
.main-header { background-color: white; padding: var(--spacing-md) 0; box-shadow: var(--box-shadow); position: sticky; top: 0; z-index: 1000; }
.main-header .container { display: flex; justify-content: space-between; align-items: center; }
.logo img { height: 60px; display: block; }

.menu-toggle { display: none; }
.main-nav-list { list-style: none; display: flex; gap: var(--spacing-lg); align-items: center; }
.main-nav-list a { text-decoration: none; color: var(--color-text-dark); font-weight: 500; padding: 8px 16px; transition: color 0.3s ease, background-color 0.3s ease; border-radius: var(--border-radius); }
.main-nav-list a:hover, .main-nav-list a[aria-current="page"] { background-color: var(--color-secondary); color: var(--color-text-light); }

.submenu { position: relative; }
.submenu .submenu-itens { display: none; position: absolute; top: 110%; left: 0; background-color: white; box-shadow: var(--box-shadow); border-radius: var(--border-radius); z-index: 1001; padding: 8px 0; min-width: 200px; border-top: 3px solid var(--color-secondary); }
.submenu:hover .submenu-itens { display: block; }
.submenu-itens a { display: block; width: 100%; }

.main-footer { background-color: var(--color-primary); color: var(--color-text-light); padding: var(--spacing-xl) 0; text-align: center; }
.main-footer address { font-style: normal; line-height: 1.8; margin-bottom: var(--spacing-md); }
.main-footer a { color: var(--color-secondary); text-decoration: none; }
.main-footer a:hover { text-decoration: underline; }

.whatsapp-button { position: fixed; width: 60px; height: 60px; bottom: 30px; right: 30px; background-color: #25d366; border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); z-index: 1002; display: flex; align-items: center; justify-content: center; transition: transform 0.3s ease; }
.whatsapp-button:hover { transform: scale(1.1); }
.whatsapp-button img { width: 32px; height: 32px; }


/* ==========================================================================
   3. Estilos Específicos da Página Faculdade
   ========================================================================== */

/* --- CORREÇÃO APLICADA AQUI --- */
.page-title-section {
  /* background-color: var(--color-primary);  <-- REMOVIDA esta linha que deixava o fundo escuro */
  /* color: var(--color-text-light);          <-- REMOVIDA esta linha que deixava o texto claro */
  padding: var(--spacing-xl) 0;
  padding-bottom: 0; /* Remove o padding de baixo para juntar com a próxima seção */
  text-align: center;
}
.page-title-section h1 {
  color: var(--color-primary); /* ALTERADA a cor do título para ser visível no fundo claro */
  font-size: 2.8rem;
  border-bottom: 2px solid var(--color-secondary); /* Adiciona uma linha abaixo do título para destaque */
  display: inline-block; /* Faz a borda se ajustar ao tamanho do texto */
  padding-bottom: var(--spacing-md);
}
.page-title-section p {
    font-size: 1.2rem;
    max-width: 700px;
    margin: var(--spacing-md) auto 0;
}
/* --- FIM DA CORREÇÃO --- */


.faculdade-desktop-swiper, .faculdade-mobile-swiper { width: 100%; margin: var(--spacing-lg) auto 0; border-radius: var(--border-radius); overflow: hidden; }
.faculdade-desktop-swiper { height: 350px; }
.faculdade-mobile-swiper { height: 40vh; }
.faculdade-desktop-swiper .swiper-slide img, .faculdade-mobile-swiper .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }

/* CORREÇÃO: Ajuste nas cores da navegação do carrossel para fundo claro */
.swiper-pagination-bullet-active { background-color: var(--color-secondary); }
.swiper-button-next, .swiper-button-prev { color: var(--color-primary); background-color: rgba(255, 255, 255, 0.7); }
.swiper-button-next::after, .swiper-button-prev::after { font-size: 1rem; }

.search-section { padding-top: 0; background-color: transparent; }
#pesquisa-curso { width: 100%; max-width: 700px; margin: var(--spacing-lg) auto 0; display: block; padding: var(--spacing-md); font-size: 1.1rem; border: 2px solid #ccc; border-radius: var(--border-radius); }
#pesquisa-curso:focus { border-color: var(--color-secondary); outline: none; }

.cursos-section { padding: var(--spacing-xl) 0; }
#cursos-grid-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--spacing-lg); }
.celula-curso { background-color: white; border: 1px solid #e0e0e0; border-radius: var(--border-radius); padding: var(--spacing-lg); display: flex; flex-direction: column; text-align: center; box-shadow: var(--box-shadow); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.celula-curso:hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); }
.curso-nome { font-size: 1.3rem; color: var(--color-primary); font-weight: 700; margin-bottom: var(--spacing-md); }
.curso-info { color: var(--color-text-dark); margin-bottom: var(--spacing-lg); flex-grow: 1; }
.saiba-mais-btn { display: inline-block; background-color: var(--color-secondary); color: var(--color-text-light); padding: 12px 30px; border-radius: var(--border-radius); text-decoration: none; font-weight: bold; transition: background-color 0.3s; }
.saiba-mais-btn:hover { background-color: var(--color-accent); }
.nenhum-curso { grid-column: 1 / -1; text-align: center; font-size: 1.2rem; padding: var(--spacing-xl); }

/* ==========================================================================
   4. Responsividade
   ========================================================================== */
@media (max-width: 767px) {
  .container { padding: 0 var(--spacing-md); }
  .page-title-section h1 { font-size: 2rem; }
  .menu-toggle { display: block; border: none; background: transparent; cursor: pointer; }
  .hamburger-line { display: block; width: 25px; height: 3px; background-color: var(--color-primary); margin: 5px 0; }
  
  .main-nav-list { display: none; }
  .main-nav-list.is-open { display: flex; flex-direction: column; position: absolute; top: 94px; left: 0; width: 100%; background-color: var(--color-primary); padding: var(--spacing-md) 0; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }
  .main-nav-list.is-open a { color: var(--color-text-light); width: 100%; padding: var(--spacing-md); text-align: center; border-radius: 0; }
  .main-nav-list.is-open a:hover { background-color: var(--color-secondary); }
  .main-nav-list.is-open .submenu:hover .submenu-itens { display: none; }
  .main-nav-list.is-open .submenu .submenu-itens { display: block; position: static; box-shadow: none; background-color: rgba(0,0,0,0.2); border: none; padding: 0; margin-top: var(--spacing-md); }
}