/* ==========================================================================
   Tipografia (v9.1) — carregado por último no site público e nas páginas de curso.
   Para ajustar o tamanho geral do texto, altere --fs-body.
   ========================================================================== */
:root{
  --fs-body:1.0625rem;                 /* 17px: leitura confortável no celular e desktop */
  --text-sub:#b3c0d3;                  /* antes #94a3b8 — mais contraste no fundo escuro */
  --text-muted:#8e9bb0;                /* antes #64748b — atendia mal o contraste mínimo (WCAG AA) */
}
body{font-size:var(--fs-body);line-height:1.65;font-feature-settings:"cv11","ss01";font-optical-sizing:auto}
p,li{line-height:1.7}
h1,h2,h3,.section-title,.hero-title{letter-spacing:-.02em;text-wrap:balance}
.section-subtitle,.hero-subtitle{font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.7;text-wrap:pretty}
.course-card h3{font-size:clamp(1.15rem,1.6vw,1.3rem);line-height:1.3}
.course-card p{font-size:1rem;color:var(--text-sub)}
.course-features li{font-size:.95rem}
/* Selos e etiquetas: nada abaixo de ~13px */
.course-category-tag,.course-tag,.course-mode,.result-badge,.location-badge,.stat-label,.notice-badge,.notice-date,.review-official-reply strong{font-size:.8125rem;letter-spacing:.03em}
.filter-btn{font-size:.95rem;font-weight:600}
input,select,textarea,button{font-family:inherit}
input,select,textarea{font-size:1rem}   /* 16px evita o zoom automático do iPhone ao focar o campo */
.seo-course-page{font-size:var(--fs-body)}
.seo-copy{font-size:1.05rem;line-height:1.8}
@media (max-width:600px){
  :root{--fs-body:1rem}
  .course-card p{font-size:.975rem}
}

/* Cards gerados a partir do banco: título com a mesma aparência dos cards originais (antes: link azul sublinhado) */
.course-card h3 a{color:var(--text-main);text-decoration:none;transition:color var(--tr-fast)}
.course-card h3 a:hover{color:var(--primary-cyan)}
/* Itens do menu não quebram em duas linhas ("Simulador / 3D") */
.nav-links a{white-space:nowrap}

/* Seção de artigos (conteúdo importado/publicado pelo painel) */
.articles-section{padding:90px 5% 70px}
.articles-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.article-card{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:var(--text-main);border-radius:18px;transition:transform var(--tr-fast),border-color var(--tr-fast)}
.article-card:hover{transform:translateY(-4px);border-color:var(--border-glow)}
.article-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.article-card>div{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.article-card small{color:var(--text-muted);font-size:.8125rem}
.article-card h3{font:700 1.2rem/1.3 var(--font-heading);margin:0}
.article-card p{color:var(--text-sub);font-size:.975rem;margin:0;flex:1}
.article-card span{color:var(--primary-cyan);font-weight:600;font-size:.95rem;margin-top:6px}

/* Garante que seções marcadas como ocultas (mural sem avisos, artigos vazios) não apareçam, mesmo com display definido no CSS */
[hidden]{display:none!important}

/* ===== Seletor Presencial | EAD e avisos de ambiente (site presencial) ===== */
.mode-switch{display:inline-flex;padding:4px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);gap:2px;flex-shrink:0}
.mode-opt{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;text-decoration:none;font:600 .85rem var(--font-body);color:var(--text-sub);white-space:nowrap;transition:background var(--tr-fast),color var(--tr-fast)}
.mode-opt:hover{color:#fff}
.mode-opt.active{background:linear-gradient(100deg,#00c6fb,#005bea);color:#fff;box-shadow:0 4px 16px rgba(0,150,255,.3)}
.mode-opt:not(.active):hover{background:rgba(167,139,250,.18)}
.nav-link-ead span{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#062e22;background:#34d399;padding:2px 6px;border-radius:6px;margin-left:4px;vertical-align:1px}
.env-notice{max-width:1100px;margin:0 auto 28px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 20px;border-radius:14px;background:rgba(0,242,254,.06);border:1px solid rgba(0,242,254,.25)}
.env-notice>div{display:flex;align-items:center;gap:12px}
.env-notice>div i{font-size:1.3rem;color:var(--primary-cyan)}
.env-notice p{margin:0;font-size:.98rem;color:var(--text-sub)}
.env-notice p strong{color:var(--text-main)}
.env-notice a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#e9e3ff;font-weight:600;font-size:.95rem;padding:9px 14px;border-radius:11px;background:linear-gradient(100deg,rgba(124,58,237,.35),rgba(16,185,129,.3));border:1px solid rgba(167,139,250,.45)}
.env-notice a span{text-decoration:underline;text-underline-offset:3px}
@media (max-width:1180px){.navbar .mode-switch{margin-left:auto;margin-right:10px}}
@media (max-width:768px){
  .navbar{flex-wrap:wrap;row-gap:8px}
  .navbar .mode-switch{order:3;width:100%;margin:0;justify-content:center}
  .navbar .mode-opt{flex:1;justify-content:center}
}
/* Cabeçalho com o seletor Presencial|EAD: o cabeçalho tem largura máxima de 1280px, então os botões
   secundários ficam só com ícone (o nome aparece ao passar o mouse) e o link "Início" sai (o logo leva ao início). */
.nav-actions .secondary-btn span{display:none}
.nav-actions .secondary-btn{padding:8px 11px!important}
.nav-links .nav-link[href="#hero"]{display:none}
.navbar .mode-opt{padding:6px 11px}
