/* Complementos necessários: o style.css oficial permanece integralmente preservado. */
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--cor-apoio); outline-offset: 5px; }
.topo :focus-visible, .hero :focus-visible, .rodape :focus-visible, .contato a:focus-visible { outline-color: var(--cor-destaque); }
.campo input:focus-visible, .campo textarea:focus-visible, .campo select:focus-visible { outline: 3px solid var(--cor-apoio); outline-offset: 2px; }
.pular-conteudo { position: fixed; top: -100px; left: 16px; z-index: 100; padding: 12px 20px; background: var(--cor-destaque); color: var(--cor-escura); border-radius: var(--raio); }
.pular-conteudo:focus { top: 12px; }
.biblioteca-icones, .armadilha { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.logo-imagem { width: auto; height: 42px; flex-shrink: 0; }
.topo .logo, .rodape .logo { width: fit-content; padding: 8px 12px; border-radius: 8px; background: var(--cor-fundo); flex-shrink: 0; }
.titulo-painel { color: #fff; font-size: 1.1rem; margin-bottom: 20px; font-weight: 600; }
.rodape .titulo-rodape { color: #fff; font-size: 1rem; margin-bottom: 16px; }
.aviso-numeros { text-align: center; padding: 0 20px; margin-bottom: 24px; font-size: .85rem; }
.aviso-contato { margin-top: 20px; font-size: .85rem; color: #d2dbe4; }
.nota { color: var(--cor-texto-suave); font-size: .85rem; margin: 12px 0 20px; }
.barras { margin-top: 30px; }
.barra-topo { gap: 16px; font-size: .9rem; }
.barras .nota { margin-bottom: 0; }
.preenchida .nivel-95 { width: 95%; }
.preenchida .nivel-90 { width: 90%; }
.preenchida .nivel-98 { width: 98%; }
.erro-campo { color: #a21d24; font-size: .8rem; }
.erro-campo:empty, .status-formulario:empty { display: none; }
.campo [aria-invalid="true"] { border-color: #a21d24; }
.status-formulario { margin-top: 18px; font-weight: 500; }
.formulario .botao:disabled { opacity: .65; cursor: wait; transform: none; }
.rodape a, .dados-contato a { overflow-wrap: anywhere; }
.rodape-grade > *, .contato .container > *, .hero .container > * { min-width: 0; }
.metodo .rotulo, .contato .rotulo { color: var(--cor-destaque); }
.dados-contato small { color: #aebac6; }
.whats { color: var(--cor-escura); }
/* Conteúdo permanece legível caso o JavaScript esteja indisponível. */
html:not(.js) .revelar { opacity: 1; transform: none; }
html:not(.js) .painel { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 22px; margin-bottom: 22px; }
html:not(.js) .abas { display: none; }
html:not(.js) .barra-preenchimento.nivel-95 { width: 95%; }
html:not(.js) .barra-preenchimento.nivel-90 { width: 90%; }
html:not(.js) .barra-preenchimento.nivel-98 { width: 98%; }
html:not(.js) .formulario button[type="submit"] { display: none; }
@media (max-width: 1024px) {
  .js .menu:not(.aberto) { visibility: hidden; }
  html:not(.js) .botao-menu { display: none; }
  html:not(.js) .topo { position: relative; background: var(--cor-escura); }
  html:not(.js) .topo .container { flex-wrap: wrap; }
  html:not(.js) .menu { position: static; transform: none; height: auto; width: auto; flex-direction: row; flex-wrap: wrap; padding: 12px 0; gap: 18px; box-shadow: none; }
  .contato { padding-top: 130px; }
}
/* Layout fluido: as faixas usam pixels CSS, independentemente da resolução física. */
.hero { min-height: min(100svh, 1000px); }
.container { padding-inline: clamp(20px, 3vw, 40px); }
.sobre .container > *, .diferenciais .container > *, .campos > * { min-width: 0; }
.botao-menu { min-width: 44px; min-height: 44px; }
.dados-contato .cartao-icone { flex-shrink: 0; }
.rodape-base { padding-right: 64px; }

/* Celulares e larguras intermediárias: 360–430 px e até 767 px. */
@media (max-width: 767px) {
  .hero { padding: 132px 0 64px; }
  .hero h1 { font-size: clamp(2.1rem, 8.5vw, 3.2rem); }
  .hero p { font-size: 1rem; }
  .hero-acoes .botao { width: 100%; justify-content: center; text-align: center; }
  .numeros .container { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .etapas, .grade-diferenciais, .campos, .rodape-grade, .disciplinas { grid-template-columns: minmax(0, 1fr); }
  .campo.inteiro, .disciplina:last-child { grid-column: auto; }
  .painel.ativo, html:not(.js) .painel { grid-template-columns: minmax(0, 1fr); }
  .chamada-caixa { padding: 38px 26px; }
  .formulario { padding: 26px 20px; }
  .hero-painel { padding: 22px; }
  .abas { gap: 8px; }
  .aba { padding: 11px 16px; }
  .rodape-base { padding-right: 0; padding-bottom: 64px; }
}

/* Tablets: navegação recolhida inclusive em 1024 px. */
@media (max-width: 1024px) {
  section { padding-block: 76px; }
  .hero .container, .sobre .container, .diferenciais .container, .contato .container { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .mvv-grade { grid-template-columns: minmax(0, 1fr); }
  .sobre-bloco { aspect-ratio: 16 / 10; }
  .selo-ano { right: 16px; }
  .botao-menu { display: block; position: relative; z-index: 2; }
  .menu {
    position: fixed; top: 0; right: 0; width: min(320px, 86vw);
    height: 100vh; height: 100dvh; overflow-y: auto;
    flex-direction: column; align-items: flex-start; gap: 22px;
    padding: 100px 30px 32px; background: var(--cor-escura);
    transform: translateX(100%); transition: transform .3s;
    box-shadow: -10px 0 30px rgba(0,0,0,.3);
  }
  .menu.aberto { transform: none; }
  .menu a { display: inline-flex; align-items: center; min-height: 44px; }
  .hero { padding-top: 140px; }
  .chamada { padding: 0; }
  .contato { padding-top: 130px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .hero { min-height: auto; }
  .hero h1 { max-width: 18ch; }
  .hero-painel, .sobre-visual { width: 100%; max-width: 720px; margin-inline: auto; }
  .etapas, .rodape-grade, .painel.ativo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Desktop compacto e notebooks (incluindo 1366–1536 px). */
@media (min-width: 1025px) and (max-width: 1279px) {
  .menu { gap: 18px; }
  .menu a { font-size: .875rem; }
  .hero .container, .sobre .container, .diferenciais .container, .contato .container { gap: 32px; }
  .disciplinas { grid-template-columns: minmax(0, 1fr); }
  .disciplina:last-child { grid-column: auto; }
}
@media (min-width: 1280px) {
  .container { max-width: min(92vw, 1320px); }
}

/* Full HD: mais espaço entre blocos sem alongar excessivamente os textos. */
@media (min-width: 1600px) {
  .container { max-width: 1440px; }
  .hero .container { gap: 80px; }
  .hero h1 { font-size: 4.5rem; max-width: 16ch; }
  .hero p, .sobre-texto p, .subtitulo { max-width: 62ch; }
}

/* 2K, 4K e ultrawide: conteúdo centralizado, com largura de leitura limitada. */
@media (min-width: 1921px) {
  .container { max-width: 1520px; }
  .hero .container { gap: 100px; }
}
@media (max-width: 640px) {
  .logo-texto { font-size: 1.1rem; }
  .whats { right: 16px; bottom: 16px; }
  .rodape-base { padding-bottom: 64px; }
  .painel.ativo { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
