/* ===========================
   GEMEP — style.css v2
   Paleta: #254553 #85939B #C4CCD4 #AFB1B2 #F9FAFA
=========================== */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --escuro:   #254553;
  --medio:    #85939B;
  --claro:    #C4CCD4;
  --neutro:   #AFB1B2;
  --fundo:    #F9FAFA;
  --branco:   #ffffff;
  --texto:    #1a2530;
  --serif:    'Cormorant Garamond', Georgia, serif;
  --sans:     'Inter', system-ui, sans-serif;
}

html { scroll-behavior: smooth; }
body { font-family: var(--sans); color: var(--texto); background: var(--branco); font-size: 16px; line-height: 1.6; }

/* ---- UTILITÁRIOS ---- */
.container { max-width: 960px; margin: 0 auto; padding: 0 2.5rem; }
.section-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; color: var(--medio); margin-bottom: 8px; }
.section-title { font-family: var(--serif); font-size: 1.7rem; font-weight: 700; color: var(--escuro); margin-bottom: 0.6rem; }
.section-desc { font-size: 14px; color: var(--medio); line-height: 1.8; max-width: 620px; }
.section-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.ver-todos { font-size: 13px; color: var(--medio); text-decoration: none; white-space: nowrap; margin-top: 4px; transition: color 0.2s; }
.ver-todos:hover { color: var(--escuro); }

/* ---- BOTÕES ---- */
.btn { display: inline-flex; align-items: center; gap: 6px; padding: 11px 22px; font-size: 13px; font-family: var(--sans); font-weight: 500; border-radius: 5px; cursor: pointer; text-decoration: none; transition: opacity 0.2s; border: none; }
.btn-primary { background: var(--escuro); color: var(--fundo); }
.btn-primary:hover { opacity: 0.88; }
.btn-outline { background: transparent; color: var(--escuro); border: 1.5px solid var(--claro); }
.btn-outline:hover { background: var(--fundo); }
.btn-busca { padding: 10px 20px; white-space: nowrap; }
.btn-footer { background: var(--medio); color: var(--fundo); font-size: 13px; font-family: var(--sans); border: none; padding: 10px 28px; border-radius: 5px; cursor: pointer; text-decoration: none; transition: opacity 0.2s; }
.btn-footer:hover { opacity: 0.85; }

/* ---- NAV ---- */
.nav { background: var(--escuro); padding: 0 2.5rem; display: flex; align-items: center; justify-content: space-between; height: 66px; position: sticky; top: 0; z-index: 100; }
.nav-logo-link { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.nav-brand-text { display: flex; flex-direction: column; }
.nav-title { font-family: var(--serif); color: var(--fundo); font-size: 18px; font-weight: 700; letter-spacing: 1.5px; line-height: 1; }
.nav-subtitle { color: var(--claro); font-size: 9px; letter-spacing: 1.8px; text-transform: uppercase; font-weight: 400; margin-top: 2px; }
.nav-links { display: flex; gap: 0; list-style: none; align-items: center; }
.nav-links > li { position: relative; }
.nav-links > li > a { color: var(--claro); font-size: 12.5px; text-decoration: none; padding: 0 0.9rem; height: 66px; display: flex; align-items: center; transition: color 0.2s; white-space: nowrap; }
.nav-links > li > a:hover, .nav-links > li > a.active { color: var(--fundo); }
.nav-toggle { display: none; background: none; border: none; color: var(--claro); font-size: 22px; cursor: pointer; }

/* Submenu */
.has-sub { position: relative; }
.submenu { display: none; position: absolute; top: 66px; left: 0; background: var(--escuro); min-width: 160px; border-top: 2px solid var(--medio); list-style: none; z-index: 200; }
.has-sub:hover .submenu { display: block; }
.submenu li a { display: block; padding: 10px 16px; color: var(--claro); font-size: 12.5px; text-decoration: none; transition: background 0.15s, color 0.15s; white-space: nowrap; }
.submenu li a:hover { background: rgba(255,255,255,0.07); color: var(--fundo); }

/* ---- PAGE HEADER ---- */
.page-header { background: var(--fundo); border-bottom: 1px solid var(--claro); padding: 3rem 0 2.5rem; }
.page-header-title { font-family: var(--serif); font-size: 2.2rem; font-weight: 700; color: var(--escuro); margin-bottom: 0.5rem; }
.page-header-desc { font-size: 14px; color: var(--medio); }

/* ---- HERO ---- */
.hero { background: var(--branco); padding: 5rem 2.5rem 4rem; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; max-width: 960px; margin: 0 auto; }
.hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--medio); margin-bottom: 14px; }
.hero-title { font-family: var(--serif); font-size: 3rem; font-weight: 700; color: var(--escuro); line-height: 1.15; margin-bottom: 18px; }
.hero-title em { font-style: italic; color: var(--medio); }
.hero-desc { font-size: 14px; color: var(--medio); line-height: 1.8; max-width: 420px; margin-bottom: 28px; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.hero-deco { opacity: 0.08; flex-shrink: 0; }

/* ---- PILARES ---- */
.pilares { background: var(--fundo); border-top: 1px solid var(--claro); border-bottom: 1px solid var(--claro); padding: 3rem 0; }
.pilares-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.pilar { text-align: center; padding: 1rem; }
.pilar-icon { width: 52px; height: 52px; background: var(--branco); border: 1px solid var(--claro); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; color: var(--escuro); }
.pilar-titulo { font-family: var(--serif); font-size: 1.1rem; font-weight: 700; color: var(--escuro); margin-bottom: 0.5rem; }
.pilar-desc { font-size: 13px; color: var(--medio); line-height: 1.7; }

/* ---- RELATÓRIO DESTAQUE ---- */
.relatorio-destaque { background: var(--escuro); padding: 4rem 0; }
.relatorio-destaque-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.relatorio-destaque .section-eyebrow { color: var(--claro); }
.relatorio-destaque .section-title { color: var(--fundo); }
.relatorio-destaque .section-desc { color: var(--claro); }
.relatorio-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.stat-card { background: rgba(255,255,255,0.08); border: 1px solid rgba(196,204,212,0.2); border-radius: 6px; padding: 1.2rem; text-align: center; }
.stat-numero { font-family: var(--serif); font-size: 2.2rem; font-weight: 700; color: var(--fundo); line-height: 1; }
.stat-label { font-size: 11px; color: var(--claro); letter-spacing: 1px; text-transform: uppercase; margin-top: 4px; }

/* ---- ARTIGOS HOME ---- */
.artigos-home { padding: 4rem 0; background: var(--branco); }
.artigos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-top: 1.5rem; }
.artigo-card { border: 1px solid var(--claro); border-radius: 6px; padding: 1.4rem; background: var(--fundo); transition: border-color 0.2s; }
.artigo-card:hover { border-color: var(--medio); }
.artigo-cat { font-size: 10px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--medio); margin-bottom: 8px; }
.artigo-titulo { font-family: var(--serif); font-size: 1.1rem; font-weight: 700; color: var(--escuro); margin-bottom: 8px; line-height: 1.3; }
.artigo-resumo { font-size: 13px; color: var(--medio); line-height: 1.6; margin-bottom: 12px; }
.artigo-data { font-size: 11px; color: var(--neutro); }
.artigo-vazio { font-size: 14px; color: var(--neutro); padding: 1rem 0; }

/* ---- PROF. HUGO ---- */
.prof-section { background: var(--fundo); border-top: 1px solid var(--claro); padding: 4rem 0; }
.prof-inner { display: grid; grid-template-columns: 240px 1fr; gap: 3rem; align-items: start; }
.prof-foto-wrap { flex-shrink: 0; }
.prof-foto { width: 100%; border-radius: 6px; display: block; filter: grayscale(20%); }
.prof-nome { font-family: var(--serif); font-size: 1.8rem; font-weight: 700; color: var(--escuro); margin-bottom: 1rem; }
.prof-bio { font-size: 14px; color: var(--medio); line-height: 1.8; margin-bottom: 0.8rem; }
.prof-links { display: flex; gap: 1.2rem; margin-top: 1rem; flex-wrap: wrap; }
.prof-social { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--escuro); text-decoration: none; transition: color 0.2s; }
.prof-social:hover { color: var(--medio); }

/* ---- FOOTER ---- */
.footer { background: var(--escuro); padding: 3rem 2.5rem; text-align: center; }
.footer-title { font-family: var(--serif); font-size: 1.3rem; font-weight: 600; color: var(--fundo); margin-bottom: 16px; }
.footer-icons { display: flex; justify-content: center; gap: 20px; margin-bottom: 20px; }
.footer-icons a { color: var(--claro); text-decoration: none; transition: color 0.2s; }
.footer-icons a:hover { color: var(--fundo); }
.footer-copy { font-size: 11px; color: var(--medio); margin-top: 16px; }

/* ---- BUSCA ---- */
.aviso-ia { background: #eef2f5; border-bottom: 1px solid var(--claro); padding: 1rem 0; }
.aviso-ia-inner { display: flex; gap: 12px; align-items: flex-start; font-size: 13px; color: var(--texto-sec, #5a6472); line-height: 1.6; }
.aviso-ia-inner svg { color: var(--escuro); margin-top: 2px; }
.busca-page { padding: 2.5rem 0 4rem; }
.busca-form { display: flex; gap: 8px; margin-bottom: 12px; }
.busca-input { flex: 1; padding: 10px 14px; border: 1.5px solid var(--claro); border-radius: 5px; font-size: 13px; font-family: var(--sans); background: var(--fundo); color: var(--texto); outline: none; transition: border-color 0.2s; }
.busca-input:focus { border-color: var(--medio); }
.busca-tags { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 2rem; }
.busca-label { font-size: 12px; color: var(--neutro); }
.tag { background: var(--branco); border: 1px solid var(--claro); padding: 3px 12px; border-radius: 20px; font-size: 12px; color: var(--medio); cursor: pointer; font-family: var(--sans); transition: background 0.2s, color 0.2s; }
.tag:hover { background: var(--fundo); color: var(--escuro); }
.busca-hint { font-size: 14px; color: var(--neutro); }
.busca-resultados { margin-top: 0.5rem; }
.resultado-item { border: 1px solid var(--claro); border-radius: 6px; padding: 1.1rem 1.3rem; background: var(--fundo); margin-bottom: 10px; }
.resultado-meta { font-size: 11px; color: var(--neutro); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }
.resultado-titulo { font-family: var(--serif); font-size: 1rem; font-weight: 700; color: var(--escuro); margin-bottom: 6px; }
.resultado-trecho { font-size: 13px; color: var(--medio); line-height: 1.65; }
.resultado-trecho mark { background: #C4CCD4; color: var(--escuro); border-radius: 2px; padding: 0 2px; }
.sem-resultado { font-size: 14px; color: var(--neutro); padding: 0.5rem 0; }

/* ---- SOBRE ---- */
.sobre-section { padding: 4rem 0; background: var(--branco); }
.sobre-inner { display: grid; grid-template-columns: 220px 1fr; gap: 3rem; }
.sobre-texto p { font-size: 14px; color: var(--medio); line-height: 1.85; margin-bottom: 1rem; }
.equipe-section { background: var(--fundo); border-top: 1px solid var(--claro); padding: 4rem 0; }
.equipe-card { display: grid; grid-template-columns: 200px 1fr; gap: 2.5rem; margin-top: 2rem; align-items: start; }
.equipe-foto { width: 100%; border-radius: 6px; filter: grayscale(20%); }
.equipe-nome { font-family: var(--serif); font-size: 1.5rem; font-weight: 700; color: var(--escuro); margin-bottom: 4px; }
.equipe-cargo { font-size: 12px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--medio); margin-bottom: 1rem; }
.equipe-texto p { font-size: 14px; color: var(--medio); line-height: 1.8; margin-bottom: 0.8rem; }

/* ---- CURSOS ---- */
.cursos-section { padding: 4rem 0; background: var(--branco); border-top: 1px solid var(--claro); }
.cursos-section .section-desc { margin-bottom: 2rem; }
.cursos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.curso-card { border: 1px solid var(--claro); border-radius: 8px; overflow: hidden; background: var(--fundo); transition: border-color 0.2s; }
.curso-card:hover { border-color: var(--medio); }
.curso-img { width: 100%; height: 160px; object-fit: cover; display: block; }
.curso-img-placeholder { width: 100%; height: 160px; background: var(--claro); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--medio); font-size: 12px; }
.curso-body { padding: 1.2rem; }
.curso-tag { font-size: 10px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--medio); display: block; margin-bottom: 6px; }
.curso-titulo { font-family: var(--serif); font-size: 1.05rem; font-weight: 700; color: var(--escuro); margin-bottom: 8px; line-height: 1.3; }
.curso-desc { font-size: 12.5px; color: var(--medio); line-height: 1.7; }
.curso-card-esa { background: var(--fundo); display: flex; align-items: stretch; }
.curso-card-esa .curso-body { display: flex; flex-direction: column; justify-content: center; }

/* ---- ARTIGOS PAGE ---- */
.artigos-page { padding: 3rem 0 4rem; }
.artigos-lista { display: flex; flex-direction: column; gap: 16px; }
.artigo-lista-item { border: 1px solid var(--claro); border-radius: 6px; padding: 1.4rem; background: var(--fundo); transition: border-color 0.2s; }
.artigo-lista-item:hover { border-color: var(--medio); }
.artigo-ler-btn { background: none; border: none; color: var(--escuro); font-size: 13px; font-family: var(--sans); cursor: pointer; padding: 8px 0 0; text-decoration: underline; text-underline-offset: 3px; display: inline-block; }
.artigo-ler-btn:hover { color: var(--medio); }

/* ---- LEITURA DE ARTIGO ---- */
.artigo-leitura { padding: 3rem 0 5rem; }
.artigo-corpo { max-width: 680px; font-size: 15px; color: var(--texto); line-height: 1.9; }
.artigo-corpo p { margin-bottom: 1.4rem; }
.btn-voltar { background: none; border: none; color: var(--medio); font-size: 13px; font-family: var(--sans); cursor: pointer; padding: 0 0 1rem; display: inline-block; transition: color 0.2s; }
.btn-voltar:hover { color: var(--escuro); }

/* ---- CONTATO ---- */
.contato-page { padding: 3rem 0 4rem; }
.contato-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.contato-canais { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; }
.contato-canal { display: flex; align-items: center; gap: 14px; padding: 1rem; border: 1px solid var(--claro); border-radius: 6px; text-decoration: none; color: var(--texto); transition: border-color 0.2s; }
.contato-canal:hover { border-color: var(--medio); }
.contato-canal svg { color: var(--escuro); flex-shrink: 0; }
.contato-canal-label { font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--neutro); }
.contato-canal-valor { font-size: 13px; color: var(--escuro); margin-top: 2px; }
.contato-form { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1rem; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label { font-size: 12px; font-weight: 500; color: var(--escuro); letter-spacing: 0.5px; }
.form-group input, .form-group textarea { padding: 10px 12px; border: 1.5px solid var(--claro); border-radius: 5px; font-size: 13px; font-family: var(--sans); background: var(--fundo); color: var(--texto); outline: none; resize: vertical; transition: border-color 0.2s; }
.form-group input:focus, .form-group textarea:focus { border-color: var(--medio); }
.form-obs { font-size: 11px; color: var(--neutro); margin-top: 4px; }

/* ---- EM CONSTRUÇÃO ---- */
.em-construcao { min-height: calc(100vh - 66px); display: flex; align-items: center; justify-content: center; background: var(--fundo); }
.em-construcao-inner { text-align: center; padding: 2rem; }
.em-construcao-inner svg { margin-bottom: 1.5rem; opacity: 0.5; }
.em-construcao-inner h1 { font-family: var(--serif); font-size: 2rem; color: var(--escuro); margin-bottom: 0.8rem; }
.em-construcao-inner p { font-size: 14px; color: var(--medio); margin-bottom: 1.5rem; }

/* ---- RESPONSIVO ---- */
@media (max-width: 768px) {
  .nav { padding: 0 1.2rem; }
  .nav-links { display: none; flex-direction: column; gap: 0; position: absolute; top: 66px; left: 0; right: 0; background: var(--escuro); padding: 0.5rem 0 1rem; }
  .nav-links.open { display: flex; }
  .nav-links > li > a { height: auto; padding: 10px 1.5rem; font-size: 14px; border-bottom: 1px solid rgba(196,204,212,0.1); }
  .submenu { display: none !important; position: static; border-top: none; padding-left: 1rem; }
  .nav-toggle { display: block; }

  .hero { grid-template-columns: 1fr; padding: 3rem 1.5rem 2.5rem; }
  .hero-deco { display: none; }
  .hero-title { font-size: 2.2rem; }

  .container { padding: 0 1.2rem; }
  .pilares-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .relatorio-destaque-inner { grid-template-columns: 1fr; }
  .relatorio-stats { display: none; }
  .prof-inner { grid-template-columns: 1fr; }
  .prof-foto { max-width: 200px; }
  .sobre-inner { grid-template-columns: 1fr; }
  .equipe-card { grid-template-columns: 1fr; }
  .equipe-foto { max-width: 180px; }
  .contato-inner { grid-template-columns: 1fr; }
  .busca-form { flex-direction: column; }
  .btn-busca { justify-content: center; }
  .section-header { flex-direction: column; }
}
