/* Section layouts. Brand colour is stable; motion lives in components/base. */
.sobretitulo {
  display: block; margin-bottom: var(--sp-4);
  color: var(--brand-600); font-size: .75rem; font-weight: var(--fw-bold);
  letter-spacing: .1em; text-transform: uppercase; line-height: 1.5;
}
.cabecalho {
  position: fixed; inset: 12px 0 auto; z-index: var(--z-header);
  pointer-events: none;
}
.cabecalho__interno {
  pointer-events: auto; display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-5); max-width: 1120px; width: calc(100% - 40px);
  min-height: 68px; padding: 10px 16px 10px 24px;
  border: 1px solid var(--fio); border-radius: 20px;
  background: rgba(255,255,255,.96); box-shadow: var(--sh-xs);
  transition: box-shadow var(--dur) var(--ease);
}
.cabecalho.is-fixo .cabecalho__interno { box-shadow: var(--sh-md); }
.cabecalho__marca { display: flex; align-items: center; gap: 16px; min-height: 44px; min-width: 0; }
.cabecalho__logo { width: 146px; height: 34px; object-fit: contain; flex: none; }
.cabecalho__nome {
  padding-left: 16px; border-left: 1px solid var(--ink-200);
  color: var(--brand-800); font-size: .875rem; font-weight: 700; white-space: nowrap;
}
.cabecalho__nav { display: flex; gap: 24px; margin-left: auto; }
.cabecalho__nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; }
.cabecalho__nav a:hover { color: var(--brand-600); }
.cabecalho__acoes { display: flex; align-items: center; gap: 10px; }

/* Hero: generous title, compact contact card, one dominant action. */
.hero {
  padding-top: clamp(144px, 12vw, 184px);
  padding-bottom: clamp(64px, 7vw, 104px);
  background: radial-gradient(ellipse at 8% 10%, rgba(83,171,174,.10), transparent 60%),
    linear-gradient(180deg, var(--brand-50), var(--paper));
}
.hero__grade {
  display: grid; grid-template-columns: minmax(0,1.3fr) minmax(320px,.85fr);
  gap: clamp(32px, 5vw, 80px); align-items: center;
}
.hero__selos { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.hero__selos .etiqueta { background: rgba(255,255,255,.65); font-size: .72rem; padding: 7px 10px; gap: 6px; }
.hero h1 { font-size: clamp(2.5rem, 4.1vw, 3.65rem); max-width: 18ch; margin-bottom: 24px; line-height: 1.08; }
.hero__apoio { max-width: 46ch; font-size: var(--fs-md); color: var(--ink-600); margin-bottom: 32px; }
.hero__acoes { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero__acoes .btn--grande { padding-inline: 26px; font-size: .9375rem; }
.hero__acoes .btn--texto { padding-inline: 8px; }
.hero__cartao { width: 100%; max-width: 404px; justify-self: end; }
.hero__formulario { padding: clamp(24px, 2.4vw, 32px); }
.hero__form-titulo { font-size: var(--fs-lg); line-height: 1.25; margin-bottom: 10px; }
.hero__form-apoio { font-size: var(--fs-sm); color: var(--ink-600); margin-bottom: 24px; }
.hero__formulario .sobretitulo { margin-bottom: 12px; }
.hero__formulario .campo__rotulo { font-size: .875rem; }

/* Evidence strip: static figures, legible qualifiers. */
.provas { border-block: 1px solid var(--fio); background: var(--paper); }
.provas__grade { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding-block: var(--section-y-curto); }
.provas__item { padding-inline: 28px; border-left: 1px solid var(--fio); }
.provas__item:first-child { padding-left: 0; border-left: 0; }
.provas__valor { display: block; color: var(--brand-700); font-family: var(--font-display); font-size: 2rem; font-weight: 700; line-height: 1.2; }
.provas__rotulo { display: block; margin-top: 8px; color: var(--ink-600); font-size: .8125rem; line-height: 1.5; max-width: 24ch; }

/* Course finder uses two columns to avoid repeating two centered headlines. */
.secao-quiz {
  background: radial-gradient(ellipse at top left, rgba(83,171,174,.15), transparent 65%),
    linear-gradient(135deg, var(--brand-800), var(--brand-900));
}
.descoberta__grade { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 72px; align-items: center; }
.descoberta__texto { margin-bottom: 0; }
.secao-quiz .sobretitulo { color: var(--brand-300); }
.descoberta__texto h2 { max-width: 16ch; }
.descoberta__texto p { max-width: 39ch; font-size: var(--fs-base); }
.descoberta__atalho { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 24px; font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; color: #fff; }
.quiz-wrap { width: 100%; min-width: 0; }
.quiz-casca { box-shadow: none; background: rgba(255,255,255,.08); }
.quiz { padding: clamp(24px, 3vw, 40px); }
.quiz__topo h3 { max-width: 24ch; }
.quiz__acoes { grid-template-columns: 1fr; }
.quiz__acoes .btn { white-space: normal; }
.quiz__dica { font-size: .75rem; }

/* A stable index of areas replaces the continuously moving course strip. */
.areas-destaque { background: var(--paper); border-bottom: 1px solid var(--fio); }
.areas-destaque__interno { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding-block: 26px; }
.areas-destaque p { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-600); font-weight: 600; }
.areas-destaque ul { display: flex; flex-wrap: wrap; gap: 12px 28px; font-family: var(--font-display); font-weight: 600; color: var(--brand-700); }
.cursos__topo { margin-bottom: 32px; }
.cursos__topo .secao-head { margin-bottom: 0; }
.cursos__contagem { margin: 20px 0; color: var(--ink-600); font-size: .875rem; }
.cursos__vazio { padding: 32px; border: 1px dashed var(--ink-300); border-radius: 12px; }
.cursos__vazio strong { display: block; margin-bottom: 8px; }
.cursos__rodape { margin-top: 24px; }
.curso__grau { letter-spacing: .035em; font-size: .6875rem; }
.curso__nome { font-size: 1.2rem; }
.curso { border-radius: 16px; }

/* Three concise stages with a shared vertical guide. */
.passos__grade { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 80px; align-items: start; }
.passos__lista { counter-reset: etapa; }
.passo { position: relative; padding: 0 0 32px 64px; counter-increment: etapa; }
.passo::before { content: counter(etapa, decimal-leading-zero); position: absolute; left: 0; top: 0; font-family: var(--font-display); font-size: 1.25rem; color: var(--brand-600); }
.passo:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 40px; bottom: 12px; width: 1px; background: var(--ink-200); }
.passo:last-child { padding-bottom: 0; }
.passo h3 { font-size: var(--fs-lg); margin-bottom: 12px; }
.passo p { color: var(--ink-600); max-width: 48ch; }

/* Local support: one editorial list, no nested card surfaces. */
.apoio__grade { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 80px; align-items: start; }
.apoio .secao-head { margin-bottom: 0; }
.apoio__link { display: inline-flex; gap: 16px; align-items: center; min-height: 44px; margin-top: 24px; }
.apoio__item { display: flex; gap: 24px; padding-block: 24px; border-top: 1px solid var(--ink-200); }
.apoio__item:first-child { padding-top: 0; border-top: 0; }
.apoio__item:last-child { padding-bottom: 0; }
.apoio__icone { width: 24px; height: 24px; flex: none; color: var(--brand-600); margin-top: 3px; }
.apoio__item h3 { font-size: var(--fs-md); margin-bottom: 8px; }
.apoio__item p { font-size: var(--fs-sm); color: var(--ink-600); max-width: 52ch; }

/* Address and map are complementary evidence. */
.local__grade { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: center; }
.local__dados { display: grid; gap: 20px; margin-block: 32px; }
.local__linha { display: flex; gap: 16px; align-items: start; min-width: 0; }
.local__linha > div { min-width: 0; }
.local__ic { flex: none; padding-top: 4px; color: var(--brand-600); }
.local__ic svg { width: 22px; height: 22px; }
.local__titulo { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-600); margin-bottom: 4px; }
.local__valor { color: var(--ink-800); font-size: var(--fs-base); font-weight: 500; overflow-wrap: anywhere; }
.local__valor a { display: inline-block; min-height: 28px; padding-block: 2px; text-decoration: underline; text-decoration-color: var(--ink-300); text-underline-offset: 4px; }
.local__valor span { display: block; color: var(--ink-600); font-size: var(--fs-sm); font-weight: 400; }
.local__bairros { font-size: var(--fs-sm); color: var(--ink-600); margin-bottom: 24px; max-width: 60ch; }
.local__acoes { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.local__selo { width: 72px; height: 72px; object-fit: contain; }
.mapa { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--brand-50); border-radius: 24px; border: 1px solid var(--brand-100); }
.mapa iframe { width: 100%; height: 100%; border: 0; }
.mapa__fachada { position: absolute; inset: 0; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; padding: 40px; text-align: center; color: var(--brand-600); }
.mapa__fachada::before, .mapa__fachada::after { content: ""; position: absolute; width: 65%; height: 65%; border: 1px solid var(--brand-100); border-radius: 50%; pointer-events: none; }
.mapa__fachada::after { width: 85%; height: 85%; }
.mapa__fachada > * { position: relative; z-index: 1; }
.mapa__fachada strong { color: var(--brand-800); font-family: var(--font-display); font-size: var(--fs-lg); }
.mapa__fachada small { display: block; margin-top: 12px; color: var(--ink-600); font-size: var(--fs-sm); max-width: 32ch; }
.mapa__fachada:hover { background: rgba(217,237,248,.4); }

/* Testimonials use even heights and keep the source near the quote. */
.avaliacao-resumo { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: -16px; margin-bottom: 32px; color: var(--brand-700); }
.avaliacao-resumo > strong { font-family: var(--font-display); font-size: 2rem; }
.avaliacao-resumo strong span { font-family: var(--font-text); font-size: .875rem; color: var(--ink-600); font-weight: 400; }
.avaliacao-resumo > span { font-size: .875rem; }
.avaliacao-resumo small { display: block; color: var(--ink-600); font-size: .75rem; margin-top: 4px; }
.depoimentos__grade { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.depoimento { display: flex; flex-direction: column; gap: 24px; background: var(--paper); border: 1px solid var(--ink-200); border-radius: 16px; padding: 28px; }
.depoimento__estrelas { display: flex; gap: 3px; color: var(--accent-700); }
.depoimento__estrelas svg { width: 16px; height: 16px; }
.depoimento__texto { font-size: var(--fs-base); color: var(--ink-700); line-height: 1.65; }
.depoimento__autor { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.depoimento__iniciais, .depoimento__foto { width: 40px; height: 40px; flex: none; border-radius: 50%; }
.depoimento__iniciais { display: grid; place-items: center; background: var(--brand-700); color: #fff; font-size: .8125rem; font-weight: 600; }
.depoimento__nome { font-weight: 600; font-size: .875rem; color: var(--ink-900); }
.depoimento__papel, .depoimentos__fonte { font-size: .75rem; color: var(--ink-600); }
.depoimentos__fonte { margin-top: 24px; }
.faq__grade { display: grid; max-width: 820px; margin-inline: auto; }
.matricula { background: linear-gradient(180deg, var(--brand-50) 0%, var(--brand-100) 46%, var(--brand-900) 100%); }
.matricula__head { max-width: 650px; }
.matricula__cartao { max-width: 680px; margin-inline: auto; }
.matricula__nucleo { padding: clamp(24px,4vw,48px); }
.matricula__prazo { display: none; background: var(--accent-100); padding: 12px; margin-bottom: 24px; border-radius: 8px; color: var(--accent-700); font-size: .875rem; text-align: center; }
.matricula__prazo.is-visivel { display: block; }
.rodape { background: var(--brand-900); color: rgba(255,255,255,.75); padding: 64px 0 32px; font-size: .875rem; }
.rodape__grade { display: grid; grid-template-columns: 1.3fr 1fr .65fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,.15); }
.rodape__logo { width: 146px; height: 34px; object-fit: contain; filter: brightness(0) invert(1); margin-bottom: 24px; }
.rodape__tagline { max-width: 38ch; }
.rodape h3 { color: white; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 20px; }
.rodape__lista { display: grid; gap: 8px; min-width: 0; overflow-wrap: anywhere; }
.rodape__lista a, .rodape__base a { min-height: 28px; display: inline-flex; align-items: center; padding-block: 2px; overflow-wrap: anywhere; }
.rodape__lista a:hover, .rodape__base a:hover { color: white; text-decoration: underline; }
.rodape__redes { display: flex; gap: 12px; margin-top: 24px; }
.rodape__rede { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; }
.rodape__rede svg { width: 20px; height: 20px; }
.rodape__rede:hover { background: rgba(255,255,255,.1); }
.rodape__base { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding-top: 24px; font-size: .75rem; }
.rodape__base > span:first-child { max-width: 70ch; }
.rodape__base a { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1100px) {
  .cabecalho__nav { display: none; }
  .descoberta__grade, .passos__grade, .apoio__grade { gap: 40px; }
  .local__grade { gap: 40px; }
}
@media (max-width: 900px) {
  .hero__grade { grid-template-columns: 1fr; gap: 40px; }
  .hero h1 { max-width: 22ch; }
  .hero__cartao { justify-self: start; max-width: 560px; }
  .provas__grade { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 0; }
  .provas__item:nth-child(odd) { border-left: 0; padding-left: 0; }
  .descoberta__grade, .passos__grade, .apoio__grade, .local__grade { grid-template-columns: 1fr; gap: 40px; }
  .descoberta__texto h2 { max-width: 22ch; }
  .descoberta__texto p { max-width: 55ch; }
  .quiz-wrap { max-width: 680px; }
  .quiz__opcoes--duplo { grid-template-columns: 1fr 1fr; }
  .mapa { aspect-ratio: 4/3; }
  .depoimentos__grade { grid-template-columns: 1fr; }
  .rodape__grade { grid-template-columns: 1fr 1fr; }
  .rodape__grade > :first-child { grid-column: 1/-1; }
}
@media (max-width: 720px) {
  .cabecalho__interno { width: calc(100% - 32px); padding: 6px 16px; min-height: 58px; border-radius: 16px; }
  .cabecalho__acoes { display: none; }
  .cabecalho__logo { width: 129px; height: 30px; }
  .cabecalho__nome { font-size: .8125rem; }
  .hero { padding-top: 116px; padding-bottom: 48px; }
  .hero__cartao { display: none; }
  .hero h1 { font-size: clamp(2.4rem, 8vw, 3.25rem); max-width: 19ch; }
  .hero__selos { margin-bottom: 24px; }
  .hero__apoio { font-size: 1rem; margin-bottom: 24px; }
  .hero__acoes { flex-direction: column; align-items: stretch; gap: 4px; }
  .hero__acoes .btn { width: 100%; }
  .secao-head { margin-bottom: 32px; }
  .descoberta__texto, .apoio .secao-head { margin-bottom: 0; }
  .quiz__opcoes--duplo { grid-template-columns: 1fr; }
  .areas-destaque__interno { padding-block: 24px; gap: 12px; }
  .areas-destaque ul { gap: 8px 20px; font-size: .9375rem; }
  .apoio__item { gap: 16px; }
  .rodape__grade { grid-template-columns: 1fr; gap: 32px; }
  .rodape { padding-bottom: calc(32px + var(--barra-movel-h) + env(safe-area-inset-bottom)); }
  .mapa__fachada { padding: 24px; }
}
@media (max-width: 380px) {
  .hero__selos .etiqueta { font-size: .6875rem; }
  .hero__selos .btn__ic { width: 14px; height: 14px; }
  .hero__selos { gap: 6px; }
}

/* =========================================================
   PÁGINA DE SUCESSO
   ========================================================= */
.sucesso {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: var(--sp-7) 0;
  background: var(--brand-50);
}

.sucesso__cartao {
  max-width: 560px;
  text-align: center;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--r-xl);
  padding: clamp(var(--sp-6), 5vw, var(--sp-9)) clamp(var(--sp-5), 4vw, var(--sp-8));
  box-shadow: var(--sh-lg);
}

.sucesso__selo {
  display: grid; place-items: center;
  width: 76px; height: 76px;
  margin: 0 auto var(--sp-5);
  border-radius: 50%;
  background: var(--ok-bg);
  color: var(--ok);
}
.sucesso__selo svg { width: 38px; height: 38px; }

.sucesso__cartao h1 { font-size: var(--fs-2xl); margin-bottom: var(--sp-4); }
.sucesso__cartao p { color: var(--ink-600); margin-bottom: var(--sp-6); }

.sucesso__acoes { display: grid; gap: var(--sp-3); }


/* =========================================================================
   POLITICA DE PRIVACIDADE
   -------------------------------------------------------------------------
   Documento longo, lido com atencao e nao passado o olho. A coluna e mais
   estreita que a da pagina principal, o espaco entre blocos e maior que o
   espaco dentro deles, e as tabelas rolam sozinhas em vez de espremerem no
   celular. Sem cartao em volta: texto legal dentro de caixa parece termo de
   aceite, e este aqui e para ser lido.
   ========================================================================= */
.legal {
  padding-block: clamp(48px, 7vw, 96px);
  background: var(--paper);
}

.legal__caixa { max-width: 74ch; }

.legal__voltar {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  margin-bottom: var(--sp-6);
  color: var(--ink-600);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
  --pressao: 1;
  transform: scale(var(--pressao));
  transition: color var(--dur) var(--ease), transform var(--dur-fast) var(--ease);
}
.legal__voltar:hover { color: var(--brand-600); }
.legal__voltar:active { --pressao: .978; }

.legal h1 { margin-bottom: var(--sp-4); }

.legal__resumo {
  font-size: var(--fs-md);
  color: var(--ink-600);
  line-height: var(--lh-normal);
}

.legal__data {
  margin-top: var(--sp-3);
  font-size: var(--fs-xs);
  color: var(--ink-500);
}

/* Indice: a unica superficie com fundo da pagina. Marca o comeco da leitura
   e da uma saida rapida para quem veio atras de um item so. */
.legal__indice {
  margin-block: var(--sp-7);
  padding: var(--sp-5) var(--sp-6);
  border-radius: var(--r-lg);
  background: var(--paper-alt);
  border: 1px solid var(--fio);
}
.legal__indice h2 {
  margin: 0 0 var(--sp-3);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--ink-600);
}
.legal__indice ol {
  margin: 0;
  /* base.css zera list-style em toda ul/ol. Aqui o numero e informacao: diz
     quantos itens o documento tem e onde a pessoa esta dentro dele. */
  list-style: decimal;
  padding-inline-start: var(--sp-5);
  display: grid;
  gap: var(--sp-2);
  font-size: var(--fs-sm);
}
.legal__indice a { color: var(--brand-700); text-decoration: underline; text-underline-offset: 3px; }
.legal__indice a:hover { color: var(--brand-600); }

/* Vao entre blocos maior que o vao dentro deles: e o espaco que diz onde um
   assunto acaba e outro comeca, sem precisar de linha divisoria. */
.legal__bloco { margin-top: var(--sp-8); scroll-margin-top: 96px; }

.legal__bloco h2 {
  font-size: var(--fs-xl);
  margin-bottom: var(--sp-4);
}
.legal__bloco h3 {
  font-size: var(--fs-md);
  margin-top: var(--sp-6);
  margin-bottom: var(--sp-3);
  color: var(--brand-800);
}
.legal__bloco p { margin-bottom: var(--sp-4); line-height: var(--lh-normal); }
.legal__bloco p:last-child { margin-bottom: 0; }

.legal__bloco ul {
  margin: 0 0 var(--sp-4);
  list-style: disc;
  padding-inline-start: var(--sp-5);
  display: grid;
  gap: var(--sp-3);
  line-height: var(--lh-normal);
}
.legal__bloco li::marker { color: var(--brand-500); }

.legal__bloco code {
  padding: 2px 6px;
  border-radius: var(--r-sm);
  background: var(--brand-50);
  border: 1px solid var(--brand-100);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .88em;
  color: var(--brand-700);
  white-space: nowrap;
}

/* Tabela rola dentro do proprio container: espremer coluna de tabela no
   celular torna o texto ilegivel, e a pagina inteira nunca rola de lado. */
.legal__tabela-rolagem {
  margin-bottom: var(--sp-4);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--r-md);
  border: 1px solid var(--fio);
}
.legal__tabela {
  width: 100%;
  min-width: 34rem;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}
.legal__tabela th,
.legal__tabela td {
  padding: var(--sp-3) var(--sp-4);
  text-align: start;
  vertical-align: top;
  border-block-end: 1px solid var(--fio);
}
.legal__tabela thead th {
  background: var(--paper-alt);
  font-weight: var(--fw-bold);
  color: var(--brand-800);
  white-space: nowrap;
}
.legal__tabela tbody tr:last-child th,
.legal__tabela tbody tr:last-child td { border-block-end: 0; }

.legal__canais {
  list-style: none;
  margin: 0 0 var(--sp-5);
  padding: 0;
  display: grid;
  gap: var(--sp-4);
}
.legal__canais li { display: flex; align-items: center; gap: var(--sp-3); }
.legal__canais a { color: var(--brand-700); font-weight: var(--fw-semi); }
.legal__canais a:hover { color: var(--brand-600); text-decoration: underline; text-underline-offset: 3px; }

.legal__ic {
  flex: none;
  display: grid;
  place-items: center;
  color: var(--brand-600);
}
.legal__ic svg { width: 20px; height: 20px; }

.legal__nota {
  display: flex;
  gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-md);
  background: var(--brand-50);
  border: 1px solid var(--brand-100);
  font-size: var(--fs-sm);
  color: var(--brand-800);
}
.legal__nota .legal__ic { align-self: start; margin-top: 2px; }

.legal > .container > .btn { margin-top: var(--sp-8); }
