/* ==========================================================================
   Masterclass Indicadores de Desempenho para RH: Da Elaboração à Gestão na Prática
   Infoco RH · presencial em Curitiba/PR · 22 e 23 de março de 2027 — site v2, direção "Do dado à decisão"
   Um painel executivo calmo e preciso: ardósia + sálvia + papel, numerais leves e grandes como KPIs, filetes finos
   de tabela, a FICHA TÉCNICA do indicador como componente-assinatura, o CAMPO DE SETAS do slider como textura,
   a cadeia "Dado ▶ … ▶ Painel gerencial" em cartaz e botões em "D" (lado esquerdo reto, direito todo redondo).
   Sem animação: nenhum quadro-chave; só transições de cor (≤ .15s) em hover/foco.
   HTML gerado a partir de _trabalho/ (build.py); este CSS é editado direto aqui.
   Sumário
     1. Tokens                 2. Base                     3. Tipografia, rótulos, marcador ▶
     4. Botões e links         5. Topbar e cabeçalho       6. Hero (foto fundida, campo de setas, lockup)
     7. Faixa-painel (KPIs) e contagem                     8. Objetivo geral + FICHA TÉCNICA (c-ficha)
     9. Objetivos (cadeia em cartaz)                       10. Conteúdo programático (lista do Orçamento)
    11. Entregas (faixa sálvia)                            12. Metodologia (foto sangrando à esquerda)
    13. Professor              14. Investimento e pagamento (c-preco, c-pagamento)
    15. Presencial em Curitiba (foto + horários, c-horarios)                    16. Perguntas e contatos (c-contatos)
    17. Rodapé                 18. Barra fixa e WhatsApp
    19. Páginas internas: topo curto (c-topo), migalhas, acordeão da programação
    20. Responsivo             21. Movimento reduzido e impressão
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  /* ardósia (escuros) — medidos na logo, na prancha de identidade e no slider */
  --n950: #0F1A20;   /* topbar */
  --n900: #152128;   /* cabeçalho, rodapé, barra fixa (fundo da prancha escura) */
  --n850: #182830;   /* hero e seções escuras */
  --n800: #1C3038;   /* tinta da logo; superfícies e botões no claro */
  --n700: #2A4350;   /* bordas/hover no escuro */
  --tinta-verde: #22401D; /* canto inferior esquerdo do slider — só degradê de fundo muito suave */
  /* sálvia (da logo) */
  --salvia: #5C7850;          /* "MASTERCLASS" da logo; grafismos, numerais grandes no claro */
  --salvia-escura: #4A6441;   /* rótulos e links sobre claro (≈6,6:1 no branco) */
  --salvia-clara: #A9C29B;    /* botão primário no escuro; rótulos, numerais e setas sobre escuro; faixa Entregas */
  --salvia-tinta: #2E4428;    /* rótulos sobre a faixa sálvia (≈5,5:1) */
  --nevoa: #8C9490;           /* cinza do degradê da seta — só grafismos */
  /* claros */
  --papel: #F4F3EF;
  --papel-2: #EAE9E3;
  --branco: #FFFFFF;
  --linha: #DCDBD3;
  /* textos sobre claro */
  --tit: #1C3038;
  --corpo: #3E4C52;
  --apoio: #5F6B6E;
  /* textos sobre escuro */
  --tit-esc: #FFFFFF;
  --corpo-esc: #D3DCDF;
  --apoio-esc: rgba(255, 255, 255, .68);
  --linha-esc: rgba(255, 255, 255, .12);
  --whats: #25D366;
  /* fontes exclusivas deste site */
  --f-tit: "Lexend", "Segoe UI", system-ui, sans-serif;
  --f-txt: "Be Vietnam Pro", "Segoe UI", system-ui, sans-serif;
  /* medidas */
  --max: 1320px;
  --respiro: clamp(16px, 4vw, 32px);
  --secao: clamp(64px, 7vw, 112px);
  --raio: 4px;                          /* painéis e fotos: canto pequeno, retos */
  --raio-d: 4px 999px 999px 4px;        /* botões em "D": a forma da letra da logo */
  --top-h: 44px;
  --cab-h: 84px;
  --foco: var(--salvia-escura);
  /* o triângulo ▶ do campo de setas (marcador, separador, cadeia) */
  --tri: polygon(0 0, 100% 50%, 0 100%);
}

/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--cab-h) + 16px); }
body {
  margin: 0;
  font: 400 16.5px/1.65 var(--f-txt);
  color: var(--corpo);
  background: var(--branco);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote, address { margin: 0; }
h1, h2, h3 { text-wrap: balance; font-weight: 500; }
p, li, dd { text-wrap: pretty; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
address { font-style: normal; }
table { border-collapse: collapse; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 3px; }
.escuro { --foco: var(--salvia-clara); }
.salvia { --foco: var(--n900); }
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.sem-quebra { white-space: nowrap; }
.num { font-variant-numeric: tabular-nums; }
.recipiente { width: 100%; max-width: calc(var(--max) + 2 * var(--respiro)); margin-inline: auto; padding-inline: var(--respiro); }
.pular {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  padding: 12px 18px; background: var(--salvia-clara); color: var(--n900); font-weight: 600; text-decoration: none;
}
.pular:focus { top: 12px; }

/* fundos das seções (escuro/claro alternando; nunca dois escuros nem dois coloridos seguidos) */
.secao { padding-block: var(--secao); }
.papel { background: var(--papel); }
.branco { background: var(--branco); }
.escuro { background: var(--n850); color: var(--corpo-esc); }
.salvia { background: var(--salvia-clara); color: var(--n900); }

/* ---------- 3. Tipografia, rótulos, marcador ▶ ---------- */
/* rótulo de seção: Be Vietnam 15/600 caixa mista, sem ícone, sem tracinho */
.rotulo { font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); margin-bottom: 16px; }
.escuro .rotulo { color: var(--salvia-clara); }
.salvia .rotulo { color: var(--salvia-tinta); }
.titulo-grande {
  font: 500 clamp(30px, 3.2vw, 48px)/1.12 var(--f-tit);
  letter-spacing: -.022em; color: var(--tit); text-wrap: balance;
}
.titulo-cartaz {
  font: 500 clamp(44px, 6vw, 96px)/1 var(--f-tit);
  letter-spacing: -.03em; color: var(--tit); text-wrap: balance;
}
.escuro .titulo-grande, .escuro .titulo-cartaz { color: var(--tit-esc); }
.salvia .titulo-grande { color: var(--n900); }
.lead { font-size: 19px; line-height: 1.62; color: var(--tit); }
p + p { margin-top: 16px; }

/* marcador ▶ (o triângulo do campo de setas): 7×8px cheio, centrado na 1ª linha */
.lista-seta > li { position: relative; padding-left: 21px; }
.lista-seta > li + li { margin-top: 8px; }
.lista-seta > li::before {
  content: ""; position: absolute; left: 1px; top: calc(.825em - 4px);
  width: 7px; height: 8px; background: var(--salvia); clip-path: var(--tri);
}
.escuro .lista-seta > li::before { background: var(--salvia-clara); }

/* ---------- 4. Botões e links ---------- */
/* botão em "D": lado esquerdo reto, direito todo redondo; mais respiro à direita por causa da curva */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 13px 28px 13px 22px;
  font: 600 15.5px/1.2 var(--f-txt); text-decoration: none; text-align: center;
  border: 1.5px solid transparent; border-radius: var(--raio-d); cursor: pointer;
  transition: background-color .15s, color .15s, border-color .15s;
}
.botao .ic { flex: none; }
.botao-grande { min-height: 54px; padding: 15px 32px 15px 24px; font-size: 16px; }
.botao-salvia { background: var(--salvia-clara); color: var(--n900); }
.botao-salvia:hover { background: #BDD2B0; }
.botao-ardosia { background: var(--n800); color: var(--branco); }
.botao-ardosia:hover { background: var(--n700); }
.botao-contorno-claro { border-color: rgba(255, 255, 255, .5); color: var(--branco); background-color: var(--n850); }
.botao-contorno-claro:hover { border-color: var(--branco); background-color: var(--n800); }
.botao-contorno-escuro { border-color: var(--n800); color: var(--n800); background-color: transparent; }
.botao-contorno-escuro:hover { background-color: var(--n800); color: var(--branco); }
.acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(32px, 4vw, 48px); }
.acoes-centro { justify-content: center; }
.link-seta {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 14px;
  font-weight: 600; color: var(--salvia-escura); text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 5px; text-decoration-color: rgba(74, 100, 65, .35);
  transition: text-decoration-color .15s;
}
.link-seta:hover { text-decoration-color: var(--salvia-escura); }
.aviso { font-size: 15px; line-height: 1.6; color: var(--apoio); }
.aviso-centro { max-width: 820px; margin: 28px auto 0; text-align: center; text-wrap: balance; }

/* ---------- 5. Topbar e cabeçalho ---------- */
.topbar { background: var(--n950); color: var(--apoio-esc); font-size: 15px; }
.topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--top-h); }
.topbar p a { color: var(--corpo-esc); text-decoration: none; transition: color .15s; }
.topbar-contatos { display: flex; gap: 26px; }
.topbar a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--corpo-esc); text-decoration: none; transition: color .15s; }
.topbar a:hover { color: var(--branco); }
.topbar .ic { color: var(--salvia-clara); }

.cabecalho { position: sticky; top: 0; z-index: 50; background: var(--n900); transition: box-shadow .15s; }
.cabecalho.rolado { box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 8px 20px rgba(8, 14, 18, .34); }
.cabecalho-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--cab-h); }
.marca { display: flex; align-items: center; min-height: 44px; flex: none; }
.marca img { height: 46px; width: auto; }
.menu { display: flex; align-items: center; gap: 22px; }
.menu-lista { display: flex; gap: 2px; }
.menu-lista a {
  position: relative; display: flex; align-items: center; min-height: 44px; padding: 0 14px;
  font: 500 15px/1 var(--f-txt); color: rgba(255, 255, 255, .85); text-decoration: none; transition: color .15s;
}
.menu-lista a:hover, .menu-lista a[aria-current] { color: var(--branco); }
.menu-lista a[aria-current]::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 6px; height: 2px; background: var(--salvia-clara);
}
.menu-destaque[aria-current] { background: #BDD2B0; }
.menu-contatos { display: none; }
.menu-botao { display: none; }

/* ---------- 6. Hero — o slider traduzido para a web ---------- */
/* Grade de 1 coluna: a foto e o palco dividem a 1ª linha (sobrepostos); a faixa-painel é a 2ª.
   Altura = a da tela, limitada para não sobrar vazio nas telas muito altas. */
.hero {
  /* tetos fixos: a caixa para em 1320px (≥1384px de tela), então a faixa e o H1 param de crescer junto com ela */
  --h1: clamp(36px, min(4.3vw, 7.2vh), 76px);
  --data: clamp(52px, min(6.2vw, 9.6vh), 88px);
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto;
  min-height: clamp(540px, calc(100svh - var(--cab-h) - var(--top-h)), 1120px);
  /* a tinta verde do canto inferior esquerdo do slider: degradê linear muito suave (nada de brilho/blob) */
  background: linear-gradient(28deg, rgba(34, 64, 29, .62) 0%, rgba(34, 64, 29, 0) 38%), var(--n850);
}
/* campo de setas ▶ (ladrilho img/setas.svg) — mais forte perto da foto, some sobre ela e à esquerda do texto */
.hero-setas, .topo-setas {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: url("../img/setas.svg") 0 0 / 26px 26px repeat;
  opacity: .13;
  -webkit-mask-image: linear-gradient(90deg, transparent 8%, rgba(0, 0, 0, .35) 32%, #000 54%, rgba(0, 0, 0, .45) 78%, transparent 96%);
  mask-image: linear-gradient(90deg, transparent 8%, rgba(0, 0, 0, .35) 32%, #000 54%, rgba(0, 0, 0, .45) 78%, transparent 96%);
}
/* foto da gestora: metade direita até a borda, fundida no ardósia por máscara (esquerda e pé) — sem moldura.
   A mulher ocupa x ≈ 21–53% da foto (imagens.md): com a foto em 52% da tela ela fica em ~60–75% da tela, como no
   slider, e a fusão (0–32%) come só a cidade à esquerda dela. */
.hero-foto {
  grid-row: 1; grid-column: 1; justify-self: end; z-index: 0;
  width: 52%; height: 100%; min-height: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 14%, #000 32%), linear-gradient(180deg, #000 74%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 14%, #000 32%), linear-gradient(180deg, #000 74%, transparent 100%);
  mask-composite: intersect;
}
/* a imagem sai do fluxo (absoluta): a altura natural dela nunca empurra a linha do hero */
.hero-foto { position: relative; overflow: hidden; }
.hero-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
.hero-palco {
  grid-row: 1; grid-column: 1; z-index: 2; display: flex; align-items: center;
  padding-block: clamp(28px, 5vh, 72px) clamp(24px, 4.2vh, 60px);
}
.hero-texto { max-width: min(700px, 54vw); }
.hero-selo {
  display: flex; align-items: center; gap: 12px; margin-bottom: clamp(16px, 2.8vh, 30px);
  font: 500 15px/1.3 var(--f-txt); color: rgba(255, 255, 255, .82);
}
.hero-selo img { width: auto; height: 26px; flex: none; }
.hero-tit { color: var(--branco); }
.h1-a {
  display: block; margin-bottom: .6em;
  font: 400 clamp(15px, 1.2vw, 20px)/1.2 var(--f-tit); letter-spacing: .24em; text-transform: uppercase;
  color: var(--salvia-clara);
}
.h1-b { display: block; font: 500 var(--h1)/1.02 var(--f-tit); letter-spacing: -.028em; }
.h1-linha { display: block; }
@media (min-width: 961px) { .h1-linha { white-space: nowrap; } }
.h1-c {
  display: block; margin-top: .42em;
  font: 300 clamp(20px, 1.85vw, 31px)/1.25 var(--f-tit); letter-spacing: -.012em; color: rgba(255, 255, 255, .86);
}
.hero-frase { margin-top: clamp(16px, 2.6vh, 28px); max-width: 33em; font-size: 18px; line-height: 1.55; color: var(--corpo-esc); }
.hero-botoes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; margin-top: clamp(20px, 3.6vh, 40px); }
.hero-vagas {
  display: inline-flex; align-items: center; gap: 10px; margin: 0 0 0 10px;
  font: 600 15px/1.3 var(--f-txt); color: var(--salvia-clara);
}
.hero-vagas::before { content: ""; width: 7px; height: 8px; background: currentColor; clip-path: var(--tri); }

/* ---------- 7. Faixa-painel (blocos de KPI) e contagem ---------- */
.hero-faixa {
  grid-row: 2; grid-column: 1; z-index: 2;
  border-top: 1px solid var(--linha-esc); background: rgba(21, 33, 40, .62);
}
.faixa-in { display: flex; align-items: stretch; padding-block: clamp(14px, 2.4vh, 28px); }
.kpis { display: flex; flex: 1 1 auto; min-width: 0; }
/* bloco de indicador: rótulo pequeno em cima, valor grande e leve embaixo, filete vertical entre blocos */
.kpi, .faixa-in .contagem {
  display: flex; flex-direction: column; justify-content: space-between; gap: 8px;
  padding-inline: clamp(16px, 2.1vw, 30px); border-left: 1px solid var(--linha-esc);
}
.kpi:first-child { padding-left: 0; border-left: 0; }
.kpi dt, .contagem-rot { font: 600 15px/1.3 var(--f-txt); color: var(--salvia-clara); white-space: nowrap; }
.kpi dd { display: flex; flex-direction: column; }
.kpi-valor {
  font: 300 clamp(24px, 2.05vw, 30px)/1.05 var(--f-tit); letter-spacing: -.02em; color: var(--branco); white-space: nowrap;
}
.kpi-un { margin-left: .16em; font-size: max(15px, .56em); font-weight: 300; letter-spacing: 0; }
.kpi-un-antes { margin: 0 .22em 0 0; }
.kpi-sub { margin-top: 5px; font-size: 15px; line-height: 1.3; color: var(--apoio-esc); white-space: nowrap; }
.kpi-data { padding-right: clamp(20px, 2.6vw, 38px); }
.kpi-data dd { flex-direction: row; align-items: flex-end; gap: clamp(12px, 1.2vw, 17px); }
.kpi-dias { font: 200 var(--data)/.84 var(--f-tit); letter-spacing: -.04em; color: var(--branco); white-space: nowrap; }
.kpi-lado { display: flex; flex-direction: column; padding-bottom: .1em; }
.kpi-mes { font: 400 clamp(17px, 1.4vw, 20px)/1.2 var(--f-tit); color: var(--branco); white-space: nowrap; }
.kpi-lado .kpi-sub { margin-top: 4px; }

.contagem-lista { display: flex; gap: clamp(10px, 1.1vw, 16px); }
.contagem-lista li { display: flex; flex-direction: column; }
.contagem-lista span {
  min-width: 2ch; font: 300 clamp(24px, 2.05vw, 30px)/1.05 var(--f-tit); letter-spacing: -.02em;
  color: var(--branco); font-variant-numeric: tabular-nums;
}
.contagem-lista small { margin-top: 5px; font: 500 13px/1.2 var(--f-txt); color: var(--apoio-esc); }
.contagem.acabou .contagem-lista { display: none; }
.contagem-fim { font: 400 18px/1.35 var(--f-tit); color: var(--branco); }
.faixa-in .contagem { margin-left: auto; border-left: 1px solid var(--linha-esc); padding-right: 0; }
/* contagem fora do hero (inscrição, contato): sobre claro */
.contagem-claro .contagem-rot { color: var(--salvia-escura); }
.contagem-claro .contagem-lista span, .contagem-claro .contagem-fim { color: var(--tit); }
.contagem-claro .contagem-lista small { color: var(--apoio); }

/* ---------- 8. Objetivo geral + FICHA TÉCNICA ---------- */
.objg-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.objg-texto .titulo-grande { max-width: 15em; margin-bottom: clamp(24px, 2.6vw, 34px); }
.resultados { margin-top: clamp(36px, 4vw, 52px); padding-top: clamp(28px, 3vw, 36px); border-top: 1px solid var(--linha); }
.resultados h3 { margin-bottom: 14px; font: 500 clamp(21px, 1.7vw, 24px)/1.25 var(--f-tit); letter-spacing: -.012em; color: var(--tit); }
/* a ficha (≈840px) só gruda quando cabe inteira entre o cabeçalho e a barra fixa (ver "20. Responsivo") */
.objg-ficha { position: static; }

/* c-ficha: a ficha técnica de um indicador, bem diagramada — painel branco, filetes finos, numeração discreta */
.ficha {
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: clamp(22px, 2.4vw, 32px) clamp(20px, 2.4vw, 32px) clamp(18px, 2vw, 24px);
}
.ficha-cab { position: relative; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 16px; }
/* filete com o degradê da seta da logo (cinza → sálvia): única forma gráfica da ficha */
.ficha-cab::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: linear-gradient(90deg, var(--nevoa), var(--salvia));
}
.ficha-tit { font: 500 clamp(21px, 1.7vw, 24px)/1.2 var(--f-tit); letter-spacing: -.015em; color: var(--tit); }
.ficha-ref { margin: 0; font: 400 15px/1.3 var(--f-tit); color: var(--apoio); white-space: nowrap; }
.ficha-tab { width: 100%; }
.ficha-tab tr + tr { border-top: 1px solid var(--linha); }
.ficha-tab th, .ficha-tab td { padding: 13px 0; text-align: left; vertical-align: baseline; }
.ficha-tab .ficha-n {
  width: 2.6em; padding-right: 6px;
  font: 300 15px/1.4 var(--f-tit); color: var(--apoio); font-variant-numeric: tabular-nums;
}
.ficha-tab th { width: 36%; padding-right: 16px; font: 600 15px/1.45 var(--f-txt); color: var(--salvia-escura); }
.ficha-tab td:last-child { font-size: 16px; line-height: 1.5; color: var(--tit); }
.ficha-num { font: 500 1.08em/1 var(--f-tit); }
.ficha-nota { margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--linha); font-size: 15px; line-height: 1.5; color: var(--apoio); }

/* ---------- 9. Objetivos — a cadeia do dado à decisão em cartaz ---------- */
.cadeia {
  --cad: clamp(36px, 6vw, 96px);
  margin-top: 6px;
  font: 300 var(--cad)/1.1 var(--f-tit); letter-spacing: -.032em; color: var(--branco);
  text-wrap: wrap;
}
/* no desktop, três linhas em escada: o dado avança para a direita até virar painel (como o campo de setas) */
@media (min-width: 1000px) {
  .cad-l { display: block; }
  .cad-l2 { padding-left: 1.4em; }
  .cad-l3 { padding-left: 2.8em; }
  .cad-linha { margin-left: calc(var(--cad, 60px) * 2.8); }
  .cadeia + .cad-linha { --cad: clamp(36px, 6vw, 96px); }
}
.cad-p { white-space: nowrap; }
.cad-s {
  display: inline-block; width: .3em; height: .34em; margin: 0 .3em 0 .26em; vertical-align: .08em;
  background: var(--salvia-clara); clip-path: var(--tri);
}
.cad-linha {
  margin-top: clamp(24px, 3vw, 40px); max-width: 30em;
  font: 300 clamp(20px, 1.75vw, 26px)/1.42 var(--f-tit); letter-spacing: -.01em; color: var(--corpo-esc);
}
.obj2 {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(24px, 4vw, 64px);
  margin-top: clamp(56px, 7vw, 104px); padding-top: clamp(28px, 3vw, 40px); border-top: 1px solid var(--linha-esc);
}
.obj2-tit { font: 500 clamp(22px, 1.9vw, 28px)/1.2 var(--f-tit); letter-spacing: -.015em; color: var(--branco); }
.obj-lista {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, auto); grid-auto-flow: column;
  column-gap: clamp(24px, 3.4vw, 56px);
}
.obj-lista li { display: grid; grid-template-columns: 2.6em minmax(0, 1fr); gap: 10px; padding-block: 16px; border-bottom: 1px solid var(--linha-esc); }
.obj-lista li:nth-child(1), .obj-lista li:nth-child(5) { padding-top: 0; }
.obj-num { font: 300 22px/1.25 var(--f-tit); color: var(--salvia-clara); font-variant-numeric: tabular-nums; }
.obj-lista p { color: var(--branco); font-size: 17px; line-height: 1.5; }
.objetivos .acoes { margin-top: clamp(36px, 4vw, 56px); }
/* ≥1101: "Garanta sua vaga" na coluna da esquerda, logo abaixo de "Objetivos secundários" (sem vão sob o título) */
@media (min-width: 1101px) {
  .obj2 { row-gap: 0; grid-template-rows: auto 1fr; }
  .obj2 > .obj-lista { grid-column: 2; grid-row: 1 / span 2; }
  .obj2 > .acoes { grid-column: 1; grid-row: 2; align-self: start; margin-top: 28px; }
}
/* texto corrido: no máximo ~68 caracteres por linha (as colunas largas do tablet não viram linhas de 110) */
.objg-texto p, .prof-texto p, .marcos dd, .bio-texto p, .met-texto p, .metodo-txt p, .res-txt p { max-width: 68ch; }

/* ---------- 10. Conteúdo programático — lista do Orçamento ---------- */
.cab-centro { max-width: 760px; margin: 0 auto clamp(40px, 5vw, 64px); text-align: center; }
.cab-linha { margin-top: 16px; font-size: 18px; color: var(--corpo); }
.mods {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, auto); grid-auto-flow: column;
  column-gap: clamp(24px, 4vw, 64px);
}
.mods > li { border-bottom: 1px solid var(--linha); }
.mods > li:nth-child(1), .mods > li:nth-child(4) { border-top: 1px solid var(--linha); }
.mod {
  display: grid; grid-template-columns: 4.6rem minmax(0, 1fr) auto; align-items: center; gap: 18px;
  height: 100%; padding: 22px 0; color: inherit; text-decoration: none; transition: background-color .15s;
}
/* numeral e seta alinhados às bordas da caixa; o fundo de hover sai 12px para cada lado */
.mod:hover { background-color: var(--papel); box-shadow: -12px 0 0 var(--papel), 12px 0 0 var(--papel); }
.mod-num { font: 300 56px/1 var(--f-tit); letter-spacing: -.04em; color: var(--salvia); font-variant-numeric: tabular-nums; }
.mod-tit { font: 500 20px/1.3 var(--f-tit); letter-spacing: -.01em; color: var(--tit); }
.mod-apoio { display: block; margin-top: 4px; font-size: 15.5px; line-height: 1.5; color: var(--corpo); }
.mod-n { display: block; margin-top: 6px; font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); }
.mod .ic-seta { color: var(--n800); }

/* ---------- 11. Entregas — faixa sálvia chapada ---------- */
.ent-cab { margin-bottom: clamp(32px, 4vw, 56px); }
.ent-cab .titulo-grande { max-width: 16em; }
.ent-lista {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, auto); grid-auto-flow: column;
  column-gap: clamp(32px, 5vw, 88px); border-top: 1px solid rgba(21, 33, 40, .24);
}
.ent-lista li {
  display: grid; grid-template-columns: clamp(52px, 5.4vw, 84px) minmax(0, 1fr); gap: 14px; align-items: baseline;
  padding-block: clamp(18px, 2vw, 26px); border-bottom: 1px solid rgba(21, 33, 40, .24);
}
.ent-num { font: 200 clamp(36px, 3.6vw, 56px)/.9 var(--f-tit); letter-spacing: -.04em; color: var(--n800); font-variant-numeric: tabular-nums; }
.ent-lista p { font: 400 clamp(18px, 1.5vw, 21px)/1.4 var(--f-tit); letter-spacing: -.01em; color: var(--n900); }

/* ---------- 12. Metodologia — foto reta sangrando até a borda esquerda ---------- */
.metodologia { position: relative; --cx: min(var(--max), 100% - 2 * var(--respiro)); }
.met-foto {
  position: absolute; left: 0; top: 0; bottom: 0; margin: 0;
  width: calc((100% - var(--cx)) / 2 + var(--cx) * .4);
}
.met-foto picture { display: contents; }
.met-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.met-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.met-texto { grid-column: 2; padding-left: clamp(32px, 5vw, 88px); }
.met-texto .titulo-grande { margin-bottom: clamp(20px, 2.4vw, 30px); }
.met-lead { font-size: 18px; line-height: 1.62; color: var(--branco); }
.oficinas { margin-top: clamp(36px, 4vw, 52px); padding-top: clamp(24px, 3vw, 32px); border-top: 1px solid var(--linha-esc); }
.oficinas-tit { font: 500 clamp(21px, 1.7vw, 24px)/1.25 var(--f-tit); letter-spacing: -.012em; color: var(--branco); }
.of-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 18px; }
.of-mod { padding-bottom: 10px; border-bottom: 1px solid var(--linha-esc); font: 600 15px/1.3 var(--f-txt); color: var(--salvia-clara); }
.of-lista li { display: grid; grid-template-columns: 2.2em minmax(0, 1fr); gap: 8px; padding-block: 14px; border-bottom: 1px solid var(--linha-esc); }
.of-num { font: 300 20px/1.3 var(--f-tit); color: var(--salvia-clara); }
.of-lista p { font-size: 16px; line-height: 1.55; color: var(--corpo-esc); }

/* ---------- 13. Professor ---------- */
.prof-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
/* coluna da foto: foto + numeral grudados abaixo do cabeçalho enquanto a bio rola — só nas telas em que cabem
   inteiros entre o cabeçalho e a barra fixa (≥1101 × ≥900px; ver "20. Responsivo"); nas outras, sem sticky */
.prof-lado { position: static; }
.prof-kpi { display: flex; align-items: center; gap: 16px; max-width: 460px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--linha); }
.prof-foto img { width: 100%; max-width: 460px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); background: var(--papel-2); }
.prof-cargo { margin-top: 10px; font: 400 clamp(18px, 1.5vw, 21px)/1.4 var(--f-tit); color: var(--salvia-escura); }
.prof-lead { margin-top: clamp(20px, 2.4vw, 28px); font-size: 18px; line-height: 1.62; color: var(--tit); }
.marcos { margin-top: clamp(28px, 3vw, 36px); border-top: 1px solid var(--linha); }
.marcos > div { display: grid; grid-template-columns: minmax(0, 12.5em) minmax(0, 1fr); gap: 24px; padding-block: 18px; border-bottom: 1px solid var(--linha); }
.marcos dt { padding-top: 2px; font: 600 15px/1.45 var(--f-txt); color: var(--salvia-escura); }
.marcos dd { font-size: 16.5px; line-height: 1.62; }
/* marco com numeral grande (KPI): o número e a legenda numa linha, o texto fiel embaixo */
.marco-num { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; }
.marco-num-v { font: 200 clamp(48px, 4.4vw, 64px)/.9 var(--f-tit); letter-spacing: -.045em; color: var(--tit); }
.marco-num-rot { padding-left: 16px; border-left: 1px solid var(--linha); font: 500 15px/1.35 var(--f-txt); color: var(--apoio); }
.marco-txt { display: block; }

/* ---------- 14. Investimento e pagamento ---------- */
.inv-cab { margin-bottom: clamp(32px, 4vw, 48px); }
.inv-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.painel { border-radius: var(--raio); padding: clamp(26px, 3.4vw, 48px); }
.inv-preco { display: flex; flex-direction: column; align-items: flex-start; background: var(--papel); border: 1px solid var(--linha); }
.inv-rotulo { font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); }
.preco-grande {
  margin-top: 14px; white-space: nowrap;
  font: 200 clamp(56px, 6.4vw, 96px)/1 var(--f-tit); letter-spacing: -.045em; color: var(--tit);
}
.preco-moeda { margin-right: .16em; font-size: .38em; font-weight: 300; letter-spacing: 0; vertical-align: .95em; }
.preco-por { margin-top: 12px; font-size: 16px; color: var(--apoio); }
.inv-preco .botao { margin-top: 26px; }
.incluso-bloco { align-self: stretch; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--linha); }
.incluso-bloco h3 { margin-bottom: 14px; font: 500 19px/1.3 var(--f-tit); color: var(--tit); }
.incluso-bloco li { color: var(--corpo); }

.pagamento { display: flex; flex-direction: column; background: var(--n850); color: var(--corpo-esc); }
.pag-topo { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.pag-topo h3 { font: 500 clamp(22px, 1.9vw, 27px)/1.2 var(--f-tit); letter-spacing: -.015em; color: var(--branco); }
.pag-logo { width: 112px; flex: none; }
.pag-intro { margin-top: 16px; font-size: 16px; line-height: 1.6; }
.pag-dados { margin-top: 22px; border-top: 1px solid var(--linha-esc); }
.pag-dados > div {
  display: grid; grid-template-columns: minmax(0, 9em) minmax(0, 1fr) auto; align-items: center; gap: 12px;
  min-height: 58px; padding-block: 6px; border-bottom: 1px solid var(--linha-esc);
}
.pag-dados dt { font: 500 15px/1.3 var(--f-txt); color: var(--apoio-esc); }
/* nenhum valor quebra no meio (CNPJ, agência, conta, valor, "Infoco RH Ltda.", "Banco do Brasil"): a grade é que se
   reorganiza (rótulo acima do valor e Copiar ao lado ≤1240px; Copiar na linha do rótulo ≤420px) */
.pag-dados dd { font: 500 17px/1.35 var(--f-txt); color: var(--branco); font-variant-numeric: tabular-nums; white-space: nowrap; }
.copiar-item {
  display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 0 16px 0 12px;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--raio-d); background: transparent;
  font: 600 15px/1 var(--f-txt); color: var(--corpo-esc); cursor: pointer;
  transition: border-color .15s, color .15s;
}
.copiar-item:hover { border-color: var(--salvia-clara); color: var(--branco); }
.copiar-item .ic-ok { display: none; }
.copiar-item.ok { border-color: var(--salvia-clara); color: var(--salvia-clara); }
.copiar-item.ok .ic-ok { display: block; }
.copiar-item.ok .ic-copiar { display: none; }
.copiar-tudo {
  display: flex; align-items: center; gap: 14px; width: 100%; margin-top: 22px; padding: 14px 18px;
  border: 1.5px solid rgba(169, 194, 155, .55); border-radius: var(--raio); background: transparent;
  color: var(--branco); text-align: left; cursor: pointer; transition: border-color .15s, background-color .15s;
}
.copiar-tudo:hover { border-color: var(--salvia-clara); background-color: var(--n800); }
.copiar-tudo .ic { flex: none; color: var(--salvia-clara); }
.copiar-tudo-txt { display: flex; flex-direction: column; gap: 2px; }
.copiar-tudo-tit { font: 600 16px/1.3 var(--f-txt); }
.copiar-tudo-sub { font-size: 15px; line-height: 1.4; color: var(--apoio-esc); }
.copiar-tudo.ok { border-color: var(--salvia-clara); }
.copiar-aviso { min-height: 1.5em; margin-top: 10px; font-size: 15px; color: var(--salvia-clara); }

/* ---------- 15. Presencial em Curitiba ---------- */
.local-foto { position: relative; }
.local-foto img { width: 100%; height: clamp(320px, 38vw, 640px); object-fit: cover; object-position: 50% 30%; }
/* véu ardósia embaixo, para o título ler bem sobre a foto */
.local-foto::after {
  content: ""; position: absolute; inset: 0;
  /* em cima, um véu leve marca a borda da foto (o céu claro não se mistura com a seção branca de cima) */
  background: linear-gradient(180deg, rgba(24, 40, 48, .62) 0%, rgba(24, 40, 48, .12) 26%, rgba(24, 40, 48, .22) 36%, rgba(24, 40, 48, .9) 62%, rgba(24, 40, 48, .98) 80%);
}
.local-foto-txt { position: absolute; left: 0; right: 0; bottom: clamp(26px, 3.4vw, 52px); z-index: 1; }
.local-foto-txt .titulo-cartaz { text-wrap: nowrap; }
.local-foto-txt .rotulo { color: var(--branco); }   /* sobre a foto clara: branco, para ler bem */
.local-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.35fr); padding-top: clamp(40px, 5vw, 72px); }
.local-col { padding-inline: clamp(20px, 2.8vw, 44px); border-left: 1px solid var(--linha-esc); }
.local-col:first-child { padding-left: 0; border-left: 0; }
.local-col:last-child { padding-right: 0; }
.local-rot { margin-bottom: 14px; font: 600 15px/1.3 var(--f-txt); color: var(--salvia-clara); }
.local-rot-nota { margin-left: 6px; font-weight: 400; color: var(--apoio-esc); }
.local-grande { font: 400 20px/1.3 var(--f-tit); color: var(--branco); }
.local-kpi { display: block; margin-bottom: 10px; font: 200 clamp(48px, 5vw, 80px)/.95 var(--f-tit); letter-spacing: -.04em; white-space: nowrap; }
.local-apoio { margin-top: 10px; font-size: 16px; color: var(--apoio-esc); }
.local-acoes { padding-bottom: var(--secao); }

/* c-horarios: quadro tipográfico (horário | atividade) com filetes */
.horarios { width: 100%; font-variant-numeric: tabular-nums; }
.horarios tr { border-bottom: 1px solid var(--linha-esc); }
.horarios tr:first-child { border-top: 1px solid var(--linha-esc); }
.horarios th { padding: 9px 18px 9px 0; text-align: left; font-weight: 500; color: var(--branco); white-space: nowrap; }
.horarios td { padding: 9px 0; color: var(--corpo-esc); }
.horarios .h-pausa th, .horarios .h-pausa td { color: var(--apoio-esc); font-weight: 400; }
.horarios-claro tr, .horarios-claro tr:first-child { border-color: var(--linha); }
.horarios-claro th { color: var(--tit); }
.horarios-claro td { color: var(--corpo); }
.horarios-claro .h-pausa th, .horarios-claro .h-pausa td { color: var(--apoio); }

/* ---------- 16. Perguntas e contatos ---------- */
.perg-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.perg-contato { display: grid; grid-template-columns: minmax(0, 190px) minmax(0, 1fr); gap: 26px; align-items: end; margin-top: clamp(28px, 3vw, 40px); }
.perg-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); background: var(--papel-2); }
.perg-sub { margin-bottom: 6px; font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); }
.canais li { display: flex; align-items: center; gap: 12px; padding-block: 7px; }
.canais li + li { border-top: 1px solid var(--linha); }
.canal-ic { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border: 1px solid var(--linha); border-radius: var(--raio); color: var(--salvia-escura); }
.canal-rot { font-size: 15px; line-height: 1.3; color: var(--apoio); }
.canal-valor { margin-top: 0 !important; }
.canal-valor a { font-weight: 600; color: var(--tit); text-decoration: none; overflow-wrap: anywhere; }
.canal-valor a:hover { text-decoration: underline; }
.escuro .canal-ic { border-color: var(--linha-esc); color: var(--salvia-clara); }
.escuro .canal-rot { color: var(--apoio-esc); }
.escuro .canal-valor a { color: var(--branco); }
.escuro .canais li + li { border-color: var(--linha-esc); }

.faq { border-top: 1px solid var(--linha); }
.faq details { border-bottom: 1px solid var(--linha); }
.faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; padding-block: 18px;
  list-style: none; cursor: pointer; font: 500 clamp(18px, 1.45vw, 20px)/1.35 var(--f-tit); letter-spacing: -.01em; color: var(--tit);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ic { flex: none; color: var(--salvia-escura); }
.faq details[open] .ic-mais-v { display: none; }
.faq-resp { padding: 0 52px 24px 0; }
.faq-resp a { color: var(--salvia-escura); font-weight: 600; }

/* ---------- 17. Rodapé ---------- */
.rodape { background: var(--n900); padding-top: clamp(56px, 6vw, 88px); padding-bottom: 26px; }
.com-barra .rodape { padding-bottom: calc(26px + var(--barra-h, 76px)); }
.rodape-grade { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, .9fr) minmax(0, 1.25fr) minmax(0, .9fr); gap: 40px; }
.rodape-logo { display: inline-block; }
.rodape-logo img { width: 260px; }
.rodape-evento { margin-top: 20px; color: var(--corpo-esc); }
.rodape-selos { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 20px 32px; margin-top: 28px; }
.selo p { margin-bottom: 8px; font-size: 15px; color: var(--apoio-esc); }
.selo a { display: flex; align-items: center; min-height: 44px; }
.selo-infoco { width: 124px; }
.selo-np { width: 150px; }
.rodape-col h2 { margin-bottom: 10px; font: 500 18px/1.3 var(--f-tit); color: var(--tit-esc); }
.rodape-col a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--corpo-esc); text-decoration: none; transition: color .15s; }
.rodape-col a:hover { color: var(--branco); text-decoration: underline; }
.rodape-col .ic { color: var(--salvia-clara); flex: none; }
.endereco { margin-top: 10px; color: var(--apoio-esc); font-size: 15px; line-height: 1.6; }
.rodape-redes { display: flex; gap: 10px; }
.rodape-redes a { justify-content: center; width: 46px; height: 46px; border: 1px solid var(--linha-esc); border-radius: var(--raio); }
.rodape-redes a:hover { border-color: var(--branco); }
.rodape-redes .ic { color: var(--corpo-esc); }
.rodape-site { margin-top: 10px; }
.rodape-base {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 24px;
  margin-top: clamp(40px, 5vw, 64px); padding-top: 22px;
  border-top: 1px solid var(--linha-esc); font-size: 15px; color: var(--apoio-esc);
}
.rodape-base p { margin: 0; }
/* sem calha para o WhatsApp: o rodapé usa a caixa inteira; o botão some sobre o rodapé (site.js) */

/* ---------- 18. Barra fixa de inscrição e WhatsApp ---------- */
/* sobe (sem animar) depois de 300px de rolagem e fica até o fim; o rodapé ganha padding = altura da barra */
.barra-inscricao {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; visibility: hidden; transform: translateY(100%);
  background: var(--n900); border-top: 1px solid rgba(255, 255, 255, .14); overflow: hidden;
}
.barra-on .barra-inscricao { visibility: visible; transform: none; }
.barra-in { display: flex; align-items: center; gap: 20px; min-height: 76px; padding-block: 10px; }
.barra-logo { height: 36px; width: auto; flex: none; }
.barra-txt { flex: 1; min-width: 0; padding-left: 20px; border-left: 1px solid var(--linha-esc); }
.barra-tit { font: 500 17px/1.25 var(--f-tit); color: var(--tit-esc); }
.barra-info { margin-top: 2px !important; font-size: 15px; line-height: 1.35; color: var(--apoio-esc); }
.barra-valor { font: 300 28px/1 var(--f-tit); color: var(--tit-esc); letter-spacing: -.025em; white-space: nowrap; }
.barra-moeda { margin-right: .14em; font-size: 15px; font-weight: 400; letter-spacing: 0; }
.barra-in .botao { flex: none; }
.whats-flutuante {
  position: fixed; right: 20px; bottom: 20px; z-index: 45; visibility: hidden;
  display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
  background: var(--whats); color: #FFFFFF; box-shadow: 0 4px 14px rgba(8, 14, 18, .32);
}
.whats-flutuante .ic { width: 30px; height: 30px; }
.rolou .whats-flutuante { visibility: visible; }
.barra-on .whats-flutuante { bottom: calc(var(--barra-h, 76px) + 14px); }
.menu-aberto .barra-inscricao, .menu-aberto .whats-flutuante { visibility: hidden; }
/* site.js: some (sem animar) enquanto estiver sobre um controle (link, botão, Copiar, setas, +/–) ou sobre o rodapé/©,
   em qualquer largura — os blocos não perdem largura para ele (sem calha à direita) */
.whats-oculto .whats-flutuante { visibility: hidden; }

/* ---------- 19. Páginas internas: topo curto, migalhas, acordeão ---------- */
.topo { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(28deg, rgba(34, 64, 29, .5) 0%, rgba(34, 64, 29, 0) 34%), var(--n850); }
.topo-setas { -webkit-mask-image: linear-gradient(90deg, transparent 30%, rgba(0, 0, 0, .4) 55%, #000 100%); mask-image: linear-gradient(90deg, transparent 30%, rgba(0, 0, 0, .4) 55%, #000 100%); }
.topo-in { position: relative; z-index: 2; padding-block: clamp(32px, 4.4vw, 64px) clamp(36px, 4.8vw, 72px); }
.migalhas ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 15px; }
.migalhas li { display: inline-flex; align-items: center; gap: 12px; color: var(--apoio-esc); }
.migalhas li + li::before { content: ""; width: 6px; height: 7px; background: var(--salvia-clara); clip-path: var(--tri); }
.migalhas a { display: inline-flex; align-items: center; min-height: 44px; color: var(--corpo-esc); text-decoration: none; }
.migalhas a:hover { color: var(--branco); text-decoration: underline; }
.migalhas [aria-current] { color: var(--branco); }
.topo h1 { margin-top: 10px; font: 500 clamp(36px, 4.4vw, 64px)/1.06 var(--f-tit); letter-spacing: -.028em; color: var(--branco); max-width: 18em; }
.topo-sub { margin-top: 14px; max-width: 38em; font: 300 clamp(18px, 1.6vw, 24px)/1.42 var(--f-tit); color: var(--corpo-esc); }
.topo-sub:empty { display: none; }
.topo-evento { margin-top: 18px; font-size: 15.5px; color: var(--apoio-esc); }
.topo-evento strong { font-weight: 600; color: var(--branco); }
.topo-acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.topo-acoes:empty { display: none; }

/* acordeão da programação (Padrão do Orçamento): número | rótulo + título | N tópicos | +/– */
.ac-ferramentas { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin: clamp(32px, 4vw, 48px) 0 14px; }
.no-js .ac-ferramentas { display: none; }
.ac-ferr {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px 0 14px;
  border: 1px solid var(--linha); border-radius: var(--raio-d); background: var(--branco);
  font: 600 15px/1 var(--f-txt); color: var(--tit); cursor: pointer; transition: border-color .15s;
}
.ac-ferr:hover { border-color: var(--n800); }
.ac-ferr .ic { width: 18px; height: 18px; color: var(--salvia-escura); }
.acordeao { border-top: 1px solid var(--linha); }
.ac-item { border-bottom: 1px solid var(--linha); }
.ac-cab { margin: 0; }
.ac-botao {
  display: grid; grid-template-columns: 5.4rem minmax(0, 1fr) auto 24px; align-items: center; gap: 20px;
  width: 100%; padding: 24px 10px 24px 4px; border: 0; background: transparent; text-align: left; cursor: pointer;
  color: inherit; transition: background-color .15s;
}
.ac-botao:hover { background-color: var(--papel); }
.ac-num { font: 300 56px/1 var(--f-tit); letter-spacing: -.04em; color: var(--salvia); font-variant-numeric: tabular-nums; }
.ac-tit { display: flex; flex-direction: column; gap: 4px; }
.ac-rot { font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); }
.ac-nome { font: 500 clamp(20px, 1.8vw, 25px)/1.25 var(--f-tit); letter-spacing: -.012em; color: var(--tit); text-wrap: balance; }
.ac-apoio { font-size: 15.5px; line-height: 1.5; color: var(--corpo); }
.ac-n { font: 500 15px/1.3 var(--f-txt); color: var(--apoio); white-space: nowrap; }
.ac-botao .ic-mais { color: var(--salvia-escura); }
.ac-botao[aria-expanded="true"] .ic-mais-v { display: none; }
.ac-corpo { padding: 0 10px 34px calc(5.4rem + 24px); }
.ac-topicos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
.ac-topicos > li { padding-block: 11px; border-top: 1px solid var(--linha); }
.ac-topicos > li::before { top: calc(11px + .825em - 4px); }
.ac-oficinas { margin-top: 26px; padding: 20px 24px; background: var(--papel); border-radius: var(--raio); }
.ac-oficinas h4 { margin-bottom: 8px; font: 500 18px/1.3 var(--f-tit); color: var(--tit); }

/* ---------- 19b. Internas: programação ---------- */
.sumario { margin-top: clamp(32px, 4vw, 48px); padding-top: 22px; border-top: 1px solid var(--linha); }
.sumario-tit { margin-bottom: 8px; font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); }
.sumario ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; counter-reset: sum; }
.sumario li { counter-increment: sum; border-bottom: 1px solid var(--linha); }
.sumario a {
  display: flex; align-items: center; gap: 12px; min-height: 48px;
  font: 400 17px/1.3 var(--f-tit); color: var(--tit); text-decoration: none; transition: color .15s;
}
.sumario a::before { content: counter(sum, decimal-leading-zero); min-width: 1.8em; font: 300 15px/1 var(--f-tit); color: var(--apoio); }
.sumario a:hover { color: var(--salvia-escura); text-decoration: underline; text-underline-offset: 4px; }
.obj2-pag { margin-top: 0; padding-top: 0; border-top: 0; }
.obj2-pag .rotulo + .obj2-tit { font-size: clamp(28px, 2.8vw, 40px); }
.prog-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; }
.prog-kpis { display: flex; }
.prog-kpis > div { display: flex; flex-direction: column; gap: 6px; padding-inline: clamp(16px, 2vw, 28px); border-left: 1px solid var(--linha); }
.prog-kpis > div:first-child { padding-left: 0; border-left: 0; }
.prog-kpis dt { font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); white-space: nowrap; }
.prog-kpis dd { font: 200 clamp(44px, 4.4vw, 64px)/.9 var(--f-tit); letter-spacing: -.04em; color: var(--tit); }
.ac-topicos > li + li { margin-top: 0; }
.ac-topicos strong { font-weight: 600; color: var(--tit); }
.ac-oficinas { margin-top: 28px; padding: 22px clamp(18px, 2.4vw, 30px) 10px; }
.ac-oficinas h4 { margin-bottom: 4px; }
.of-lista-claro li { border-color: var(--linha); }
.of-lista-claro li:last-child { border-bottom: 0; }
.of-lista-claro .of-num { color: var(--salvia-escura); }
.of-lista-claro p { color: var(--corpo); }
.metodo-grade, .res-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 88px); align-items: start; }
.metodo-txt p { color: var(--corpo-esc); }
.metodo-txt .met-lead { color: var(--branco); }
.res-lead { font: 300 clamp(20px, 1.8vw, 26px)/1.5 var(--f-tit); letter-spacing: -.01em; color: var(--tit); }
.res-txt p + p { margin-top: 20px; }
.chamada-grade { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.chamada-data { margin: 12px 0 22px; color: var(--apoio); }
.chamada { padding: clamp(24px, 2.6vw, 40px); background: var(--branco); border: 1px solid var(--linha); }
.inscr-contato .perg-sub { margin-top: 22px; }
.chamada-tit { margin-top: 10px; font: 500 clamp(23px, 2vw, 30px)/1.22 var(--f-tit); letter-spacing: -.018em; color: var(--tit); text-wrap: balance; }
.chamada-preco { margin-top: 16px; font: 200 clamp(48px, 4.6vw, 68px)/1 var(--f-tit); letter-spacing: -.045em; color: var(--tit); }
.chamada-preco .preco-moeda { font-size: .36em; vertical-align: .9em; }
.chamada-por { display: inline-block; margin-left: .3em; font: 400 15px/1 var(--f-txt); letter-spacing: 0; color: var(--apoio); }
.chamada-txt { margin-top: 12px; color: var(--corpo); }
.chamada .acoes { margin-top: 26px; }
.chamada .aviso { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--linha); }

/* ---------- 19c. Internas: professor ---------- */
.bio-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.bio-foto { position: static; }   /* sticky só quando cabe inteira (ver "20. Responsivo") */
.bio-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); background: var(--papel-2); }
.bio-foto figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linha); }
.bio-foto-nome { font: 500 18px/1.3 var(--f-tit); color: var(--tit); }
.bio-foto-cargo { font-size: 15px; color: var(--apoio); }
.bio-texto p { font-size: 17.5px; line-height: 1.7; }
.bio-texto p + p { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--linha); }
.bio-texto .bio-lead { font: 300 clamp(21px, 2vw, 28px)/1.5 var(--f-tit); letter-spacing: -.012em; color: var(--tit); }
.painel-kpi { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1fr); margin-top: clamp(36px, 4vw, 56px); border-top: 1px solid var(--linha-esc); }
/* subgrid: rótulos de 1 ou 2 linhas ocupam a mesma faixa, e os numerais ficam na mesma linha de base */
.painel-kpi { row-gap: 0; }
.painel-kpi > div { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 14px; align-content: start; padding: 24px clamp(16px, 2vw, 32px) 4px; border-left: 1px solid var(--linha-esc); }
.painel-kpi > div:first-child { padding-left: 0; border-left: 0; }
.painel-kpi dt { font: 600 15px/1.35 var(--f-txt); color: var(--salvia-clara); }
.painel-kpi dd { display: flex; flex-direction: column; gap: 12px; }
.pk-valor { font: 200 clamp(42px, 3.6vw, 60px)/.95 var(--f-tit); letter-spacing: -.045em; color: var(--branco); white-space: nowrap; }
.pk-pre { font-size: max(15px, .32em); font-weight: 400; letter-spacing: 0; color: var(--corpo-esc); }
.pk-sub { font-size: 15.5px; line-height: 1.5; color: var(--corpo-esc); }
.formacao-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.ficha-formacao .ficha-tab th { width: 30%; }

/* ---------- 19d. Internas: contato ---------- */
.cont-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.canais-grandes { margin-top: clamp(24px, 3vw, 36px); border-top: 1px solid var(--linha); }
.canais-grandes li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; padding-block: 20px; border-bottom: 1px solid var(--linha); }
.cg-rot { display: inline-flex; align-items: center; gap: 10px; font: 600 15px/1.3 var(--f-txt); color: var(--salvia-escura); }
.cg-valor {
  display: inline-flex; align-items: center; min-height: 44px;
  font: 300 clamp(26px, 3vw, 44px)/1.1 var(--f-tit); letter-spacing: -.025em; color: var(--tit);
  text-decoration: none; overflow-wrap: anywhere; transition: color .15s;
}
.cg-valor:hover { color: var(--salvia-escura); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.cont-blocos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: clamp(32px, 4vw, 48px); }
.cont-bloco h3 { margin-bottom: 10px; font: 500 19px/1.3 var(--f-tit); color: var(--tit); }
.cont-bloco address { color: var(--corpo); }
.cont-redes a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--tit); font-weight: 500; text-decoration: none; }
.cont-redes a:hover { text-decoration: underline; }
.cont-redes .ic { color: var(--salvia-escura); }
.cont-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); background: var(--papel-2); }
.lev-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: stretch; }
.lev-kpi { font: 200 clamp(56px, 6.4vw, 104px)/.95 var(--f-tit); letter-spacing: -.045em; color: var(--branco); }
.lev-dados { margin: 26px 0 28px; border-top: 1px solid var(--linha-esc); }
.lev-dados > div { display: grid; grid-template-columns: minmax(0, 8.5em) minmax(0, 1fr); gap: 16px; padding-block: 12px; border-bottom: 1px solid var(--linha-esc); }
.lev-dados dt { font: 600 15px/1.45 var(--f-txt); color: var(--salvia-clara); }
.lev-dados dd { color: var(--branco); }
.lev-painel .contagem { display: flex; flex-direction: column; gap: 8px; }
.lev-foto { margin: 0; }
.lev-foto img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; object-position: 50% 30%; border-radius: var(--raio); }
.atalhos { grid-template-rows: none; grid-auto-flow: row; margin-top: 8px; }
.atalhos > li:nth-child(4) { border-top: 0; }
.atalhos > li:nth-child(-n+2) { border-top: 1px solid var(--linha); }
.atalhos .mod { grid-template-columns: minmax(0, 1fr) auto; }
.atalhos .mod-tit { display: block; }

/* ---------- 19e. Internas: inscrição ---------- */
.quando-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; }
.quando-cab .titulo-grande { max-width: 16em; }
.quando-cab .contagem { display: flex; flex-direction: column; gap: 8px; padding-left: clamp(18px, 2vw, 32px); border-left: 1px solid var(--linha-esc); }
.quando-grade { padding-top: clamp(36px, 4vw, 56px); margin-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--linha-esc); }
.passos { margin-top: 12px; border-top: 1px solid var(--linha); }
.passos li { display: grid; grid-template-columns: 2.6em minmax(0, 1fr); gap: 10px; padding-block: 16px; border-bottom: 1px solid var(--linha); }
.passo-n { font: 300 22px/1.3 var(--f-tit); color: var(--salvia); }
.passos strong { font-weight: 600; color: var(--tit); }

/* ---------- 20. Responsivo ---------- */
/* Rodada 2 (26/10, "tudo na mesma largura"): TUDO na caixa de 1320px, sem exceção — nem a "calha" à direita para o
   WhatsApp (o botão é que some sobre controles e sobre o rodapé, no site.js). A partir de 1384px de tela a caixa para
   de crescer, e o hero, a faixa e os textos param junto (tetos fixos, nada em vw puro). */
@media (min-width: 1664px) {
  .hero-texto { max-width: 780px; }
  .hero-frase { font-size: 19.5px; }
}
/* foto do professor (home e palestrante) e ficha técnica grudam SÓ quando cabem inteiras entre o cabeçalho e a barra
   fixa (medido: coluna da foto ≈ 680–700px, ficha ≈ 840px); nas telas mais baixas ficam paradas, nada atrás da barra */
@media (min-width: 1101px) and (min-height: 900px) {
  .prof-lado, .bio-foto { position: sticky; top: calc(var(--cab-h) + 28px); }
}
@media (min-width: 1101px) and (min-height: 1050px) {
  .objg-ficha { position: sticky; top: calc(var(--cab-h) + 28px); }
}
/* notebooks e monitores baixos (≤760px de altura): cabeçalho e barra compactos */
@media (min-width: 1041px) and (max-height: 760px) {
  :root { --cab-h: 68px; }
  .marca img { height: 38px; }
  .menu-destaque { min-height: 44px; padding-block: 10px; }
  .barra-in { min-height: 64px; padding-block: 6px; }
  .barra-logo { height: 32px; }
}
/* notebooks baixos (1366×657, 1280×610…): sem topbar, para o hero + faixa caberem na primeira tela */
@media (min-width: 961px) and (max-height: 700px) {
  :root { --top-h: 0px; }
  .topbar { display: none; }
}
@media (min-width: 961px) and (max-height: 600px) {
  .hero-frase { display: none; }
}
@media (min-width: 961px) and (max-width: 1100px) and (max-height: 820px) {
  .hero-frase { display: none; }
  .faixa-in { padding-block: 10px 12px; }
  .hero-palco { padding-block: 20px 18px; }
}
/* 1101–1240: a pessoa da foto um pouco mais à direita (o "Vagas limitadas" não encosta no cabelo) */
@media (min-width: 1101px) and (max-width: 1240px) {
  .hero-foto img { object-position: 20% 50%; }
}
@media (max-width: 1240px) {
  .kpi, .faixa-in .contagem { padding-inline: clamp(12px, 1.5vw, 22px); }
  .kpi-sub { white-space: normal; }
  .rodape-grade { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1.2fr); }
  .rodape-col:last-child { grid-column: 2 / -1; }
}
/* dados bancários 961–1240 (painel de ~380–500px): rótulo acima do valor, Copiar ao lado — nada quebra no meio */
@media (min-width: 961px) and (max-width: 1240px) {
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; row-gap: 0; padding-block: 8px; }
  .pag-dados dt, .pag-dados dd { grid-column: 1; }
  .pag-dados .copiar-item { grid-column: 2; grid-row: 1 / 3; }
}
/* perguntas: foto do atendimento mais estreita até 1365px, para o e-mail caber numa linha ao lado dela */
@media (min-width: 761px) and (max-width: 1365px) {
  .perg-contato { grid-template-columns: minmax(0, 140px) minmax(0, 1fr); gap: 22px; }
}
@media (max-width: 1100px) {
  /* faixa em 2 linhas: datas em cima; local · carga · investimento (+ contagem) embaixo */
  .faixa-in { flex-wrap: wrap; row-gap: 18px; }
  .kpis { flex-wrap: wrap; row-gap: 18px; }
  .kpi-data { flex-basis: 100%; padding-right: 0; }
  .kpi-data + .kpi { padding-left: 0; border-left: 0; }
  .faixa-in { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: clamp(12px, 1.5vw, 22px); }
  .faixa-in .contagem { margin-left: 0; padding-right: 0; }
  .kpis { display: grid; grid-template-columns: repeat(3, auto) 1fr; }
  .kpi-data { grid-column: 1 / -1; }
  .obj2 { grid-template-columns: minmax(0, 1fr); }
  /* lista dos 5 módulos (home) em 1 coluna: em 2 colunas de ~460px os títulos quebravam e sobrava buraco */
  .mods:not(.atalhos) { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .mods:not(.atalhos) > li:nth-child(4) { border-top: 0; }
  .marcos > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .lev-grade, .formacao-grade, .chamada-grade { grid-template-columns: minmax(0, 1fr); }
  .painel-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .painel-kpi > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .lev-foto img { min-height: 0; height: auto; aspect-ratio: 21 / 9; }
}
/* 761–1100: duas colunas onde cabem (sem foto/ficha encostada à esquerda com meia tela vazia) */
@media (min-width: 761px) and (max-width: 1100px) {
  .prof-grade, .bio-grade { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(28px, 4vw, 44px); }
  .cont-grade { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 48px); }
  .prof-kpi { flex-wrap: wrap; gap: 10px 16px; }
  .bio-foto figcaption { flex-direction: column; gap: 2px; }
  /* faixa do hero equilibrada: a contagem sobe para a 1ª linha, à direita das datas; local · carga · investimento
     dividem a 2ª linha em terços (antes: datas sozinhas em cima e um vão de ~430px no meio da 2ª linha) */
  .faixa-in { grid-template-columns: minmax(0, 1fr); }
  .kpis { grid-row: 1; grid-column: 1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .faixa-in .contagem { grid-row: 1; grid-column: 1; justify-self: end; align-self: start; }
}
@media (min-width: 961px) and (max-width: 1100px) {
  .objg-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: 40px; }
}
/* perguntas 961–1240: metade/metade (na 5/7 a coluna da foto + contatos ficava estreita e o e-mail quebrava) */
@media (min-width: 961px) and (max-width: 1240px) {
  .perg-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 4.5vw, 56px); }
}
/* tablet em pé 961–1100 (1024×1366): hero mais baixo, sem ~230px de ardósia vazia acima do selo */
@media (min-width: 961px) and (max-width: 1100px) and (orientation: portrait) {
  .hero { min-height: clamp(540px, 62svh, 1120px); }
}
/* cabeçalho compacto ≤1040 (sem topbar) */
@media (max-width: 1040px) {
  :root { --cab-h: 68px; --top-h: 0px; }
  .topbar { display: none; }
  .marca img { height: 38px; }
}
/* menu de tela cheia ≤960 (de 961 a 1040 o menu completo cabe numa linha: ~760px numa caixa de 897–976px) */
@media (max-width: 960px) {
  .menu-botao {
    display: grid; place-items: center; width: 48px; height: 48px; margin-right: -6px;
    background: transparent; border: 0; color: var(--branco); cursor: pointer;
  }
  .menu-botao-linhas, .menu-botao-linhas::before, .menu-botao-linhas::after {
    display: block; width: 24px; height: 2px; background: currentColor; border-radius: 2px;
  }
  .menu-botao-linhas { position: relative; }
  .menu-botao-linhas::before, .menu-botao-linhas::after { content: ""; position: absolute; left: 0; }
  .menu-botao-linhas::before { top: -7px; }
  .menu-botao-linhas::after { top: 7px; }
  .menu-aberto .menu-botao-linhas { background: transparent; }
  .menu-aberto .menu-botao-linhas::before { top: 0; transform: rotate(45deg); }
  .menu-aberto .menu-botao-linhas::after { top: 0; transform: rotate(-45deg); }
  .menu {
    display: none; position: fixed; inset: var(--cab-h) 0 0 0; z-index: 49; overflow-y: auto; overscroll-behavior: contain;
    flex-direction: column; align-items: stretch; gap: 0; padding: 12px var(--respiro) 40px;
    background: var(--n850);
  }
  .menu-aberto { overflow: hidden; }
  .menu-aberto .menu { display: flex; }
  .menu-lista { flex-direction: column; gap: 0; }
  .menu-lista a { min-height: 60px; padding: 0; font: 500 23px/1.2 var(--f-tit); border-bottom: 1px solid var(--linha-esc); }
  .menu-lista a[aria-current]::after { left: 0; right: auto; width: 40px; bottom: -1px; }
  .menu-destaque { align-self: flex-start; margin-top: 28px; min-height: 56px; }
  .menu-contatos { display: block; margin-top: 28px; }
  .menu-contatos a { display: flex; align-items: center; gap: 12px; min-height: 48px; color: var(--corpo-esc); text-decoration: none; }
  .menu-contatos .ic { color: var(--salvia-clara); }
}
@media (max-width: 960px) {
  .objg-grade, .perg-grade, .metodo-grade, .res-grade { grid-template-columns: minmax(0, 1fr); }
  .perg-cab { max-width: 640px; }
  .met-foto { position: static; width: auto; margin: calc(-1 * var(--secao)) 0 clamp(36px, 6vw, 56px); }
  .met-foto img { height: auto; aspect-ratio: 4 / 3; }
  .met-grade { grid-template-columns: minmax(0, 1fr); }
  .met-texto { grid-column: 1; padding-left: 0; }
  .mods { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .mods > li:nth-child(4) { border-top: 0; }
  .inv-grade { grid-template-columns: minmax(0, 1fr); }
  .local-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); row-gap: 36px; }
  .local-col-horarios { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
  .ac-botao { grid-template-columns: 4.4rem minmax(0, 1fr) auto 24px; gap: 16px; }
  .ac-num { font-size: 44px; }
  .ac-corpo { padding-left: calc(4.4rem + 20px); }
  .ac-topicos { grid-template-columns: minmax(0, 1fr); }
  .barra-info { display: none; }   /* 821–960: a linha data/local quebrava em 2–3 linhas ("presencial" sozinho) */
}
@media (max-width: 860px) {
  .rodape-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rodape-marca { grid-column: 1 / -1; }
  .rodape-col:last-child { grid-column: auto; }
  .ent-lista { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .obj-lista { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .obj-lista li:nth-child(5) { padding-top: 16px; }
  .of-grade { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
/* barra fixa ≤900px: sem logo; ≤960px: só título + preço + botão */
@media (max-width: 900px) {
  .barra-logo { display: none; }
  .barra-txt { padding-left: 0; border-left: 0; }
}
/* tablets em retrato e celular: foto do hero em cima (faixa que se funde no ardósia), textos, botões, faixa-painel */
@media (max-width: 960px) {
  .hero { min-height: 0; grid-template-rows: auto auto auto; background: linear-gradient(20deg, rgba(34, 64, 29, .55) 0%, rgba(34, 64, 29, 0) 32%), var(--n850); }
  .hero-foto {
    grid-row: 1; width: 100%; height: auto; aspect-ratio: 16 / 9;
    -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 55%, transparent 100%);
  }
  .hero-foto img { object-position: 34% 40%; }
  .hero-setas { -webkit-mask-image: linear-gradient(180deg, transparent 30%, #000 70%); mask-image: linear-gradient(180deg, transparent 30%, #000 70%); opacity: .1; }
  .hero-palco { grid-row: 2; margin-top: clamp(-80px, -8vw, -48px); padding-block: 0 36px; }
  .hero-faixa { grid-row: 3; }
  .hero-texto { max-width: 640px; }
}
/* tablet em pé 761–960 (768×1024): foto mais baixa, para a faixa-painel (com a contagem) caber na 1ª tela */
@media (min-width: 761px) and (max-width: 960px) and (orientation: portrait) {
  .hero-foto { max-height: 34svh; }
}
/* celular: foto 4:3 (hero-celular.jpg); faixa = datas na largura toda, local | carga, investimento, contagem
   (a contagem não cabe em meia largura ao lado do investimento: ~220px numa metade de ~170px em 375) */
@media (max-width: 760px) {
  .hero-foto { aspect-ratio: 4 / 3; -webkit-mask-image: linear-gradient(180deg, #000 50%, transparent 94%); mask-image: linear-gradient(180deg, #000 50%, transparent 94%); }
  .hero-foto img { object-position: 50% 50%; }
  .hero-palco { margin-top: -14px; padding-block: 0 32px; }
  .hero-selo { font-size: 15px; }
  .hero-frase { font-size: 17px; }
  .hero-vagas { margin-left: 4px; }
  .faixa-in { padding-block: 20px 22px; row-gap: 0; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 0; }
  .kpi { padding: 14px 0 14px 16px; border-left: 1px solid var(--linha-esc); border-top: 1px solid var(--linha-esc); }
  .kpi-data { padding: 0 0 16px; border: 0; }
  .kpi-data + .kpi { padding-left: 0; border-left: 0; }
  .kpi:last-child { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
  .kpi-valor { font-size: 26px; }
  .faixa-in { display: block; }
  .faixa-in .contagem { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--linha-esc); }
  .contagem-lista { gap: 22px; }
  .contagem-lista span { font-size: 28px; }
  .cadeia { font-size: clamp(32px, 9vw, 44px); line-height: 1.16; }
  .cadeia .cad-p { display: block; }   /* uma etapa por linha (antes "Índice" ficava sozinho entre linhas de 2) */
  .ficha-tab tr { display: grid; grid-template-columns: 2.2em minmax(0, 1fr); padding-block: 12px; }
  .ficha-tab th, .ficha-tab td { padding: 0; }
  .ficha-tab .ficha-n { grid-row: 1 / 3; width: auto; }
  .ficha-tab th { width: auto; padding: 0 0 2px; }
  .ficha-formacao .ficha-tab th { width: auto; }
  .prof-grade, .bio-grade, .cont-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-foto img { max-width: 380px; }
  .bio-foto { max-width: 440px; }
  .cont-foto { max-width: 320px; }
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; row-gap: 0; padding-block: 8px; }
  .pag-dados dt { grid-column: 1; }
  .pag-dados dd { grid-column: 1; }
  .pag-dados .copiar-item { grid-column: 2; grid-row: 1 / 3; }
  .perg-contato { grid-template-columns: minmax(0, 120px) minmax(0, 1fr); gap: 18px; align-items: start; }
  .faq-resp { padding-right: 0; }
  .local-grade { grid-template-columns: minmax(0, 1fr); }
  .local-col { padding-inline: 0; border-left: 0; }
  .local-col + .local-col { padding-top: 28px; border-top: 1px solid var(--linha-esc); }
  .barra-in { gap: 14px; min-height: 64px; }
  .barra-valor { font-size: 23px; }
  .whats-flutuante { right: 12px; width: 48px; height: 48px; }   /* menor e mais na borda: cobre menos texto */
  .whats-flutuante .ic { width: 27px; height: 27px; }
  .ac-botao { grid-template-columns: 3.2rem minmax(0, 1fr) 24px; grid-template-areas: "num tit ic" "num n ic"; gap: 4px 14px; padding-inline: 0; }
  .ac-num { grid-area: num; font-size: 38px; align-self: start; padding-top: 4px; }
  .ac-tit { grid-area: tit; }
  .ac-n { grid-area: n; }
  .ac-botao .ic { grid-area: ic; }
  .ac-corpo { padding: 0 0 28px; }
  .ac-ferramentas { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .barra-txt { display: none; }
  .sumario ol, .cont-blocos, .atalhos { grid-template-columns: minmax(0, 1fr); }
  .atalhos > li:nth-child(2) { border-top: 0; }
  .painel-kpi { grid-template-columns: minmax(0, 1fr); }
  .painel-kpi > div { padding-left: 0; border-left: 0; padding-bottom: 20px; border-bottom: 1px solid var(--linha-esc); }
  .prog-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 0; width: 100%; }
  .prog-kpis > div { padding-inline: 16px; }
  .prog-kpis > div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .quando-cab .contagem { padding-left: 0; border-left: 0; }
  .canais-grandes li { flex-direction: column; }
  .cg-email { font-size: clamp(22px, 7vw, 26px); }   /* o e-mail cabe numa linha de 360 para cima */
  .barra-in { justify-content: space-between; }
  .rodape-grade { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .rodape-col:last-child { grid-column: auto; }
  .hero-botoes .botao { flex: 1 1 auto; }
  /* setas dos botões de conteúdo: visíveis em toda tela ≥601px; aqui somem em todos eles (textos longos quebravam) */
  .acoes .botao .ic-seta, .topo-acoes .botao .ic-seta { display: none; }
  .mod { grid-template-columns: 3.4rem minmax(0, 1fr) auto; gap: 14px; padding-inline: 0; }
  .mod-num { font-size: 44px; }
  .ent-lista li { grid-template-columns: 3.2rem minmax(0, 1fr); }
  .preco-grande { font-size: clamp(48px, 15vw, 64px); }
  .pag-topo { flex-wrap: wrap; }
}
/* perguntas no celular: a foto em cima e os contatos na largura toda (o e-mail não quebra no "@") */
@media (max-width: 560px) {
  .perg-contato { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .perg-foto { max-width: 150px; }
}
/* dados bancários ≤420px: Copiar na linha do rótulo e o valor embaixo, na largura toda (o CNPJ nunca quebra) */
@media (max-width: 420px) {
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 12px; padding-block: 8px 12px; }
  .pag-dados dt { grid-column: 1; grid-row: 1; align-self: center; }
  .pag-dados dd { grid-column: 1 / -1; grid-row: 2; }
  .pag-dados .copiar-item { grid-column: 2; grid-row: 1; }
}
@media (max-width: 374px) {
  .barra-in { gap: 8px; }
  .barra-valor { font-size: 20px; }
  .barra-in .botao { padding-inline: 10px 14px; }
  .barra-in .botao .ic { display: none; }
  .contagem-lista { gap: 16px; }
  .lev-dados > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .ficha-cab { flex-wrap: wrap; row-gap: 4px; }
  .ficha-tit { white-space: nowrap; }
}
/* celular baixo em pé (375×667, 360×640, 320×568): foto mais baixa e sem a frase de apoio — o H1 e o "Inscreva-se"
   aparecem na 1ª tela */
@media (max-width: 760px) and (max-height: 700px) and (orientation: portrait) {
  .hero-foto { aspect-ratio: 2 / 1; }
  .hero-foto img { object-position: 50% 30%; }
  .hero-frase { display: none; }
}
/* paisagem de celular / tablets muito baixos (≤500px de altura): cabeçalho 56px, barra de 1 linha */
@media (max-width: 1040px) and (max-height: 500px) {
  :root { --cab-h: 56px; }
  .marca img { height: 30px; }
  .menu-botao { width: 44px; height: 44px; }
  .barra-logo, .barra-tit { display: none; }
  .barra-txt { display: block; padding-left: 0; border-left: 0; }
  .barra-info { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .barra-in { min-height: 52px; padding-block: 4px; }
  .barra-in .botao { min-height: 44px; padding-block: 10px; }
  .topo-in { padding-top: 24px; }
}
@media (min-width: 761px) and (max-width: 1040px) and (max-height: 500px) {
  .hero-frase { display: none; }
}
/* celular deitado (844×390, 740×360): hero lado a lado — texto à esquerda, foto à direita fundida no ardósia;
   o H1 e o "Inscreva-se" na 1ª tela */
@media (max-width: 960px) and (max-height: 500px) and (orientation: landscape) {
  .hero { grid-template-rows: auto auto; }
  .hero-foto {
    grid-row: 1; grid-column: 1; justify-self: end; width: 46%; height: 100%; max-height: none; aspect-ratio: auto;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 18%, #000 42%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 18%, #000 42%);
  }
  .hero-foto img { object-position: 45% 35%; }
  .hero-palco { grid-row: 1; grid-column: 1; margin-top: 0; padding-block: 18px 22px; }
  .hero-texto { max-width: 58%; }
  .hero-selo { margin-bottom: 12px; }
  .hero-frase { display: none; }
  .hero-botoes { margin-top: 18px; }
  .hero-faixa { grid-row: 2; }
}
/* menu de tela cheia em telas baixas: paisagem em 2 colunas (itens | Investimento + contatos), sem cortar nada;
   celular baixo em pé com itens um pouco menores. O painel continua rolável. */
@media (max-width: 960px) and (max-height: 500px) {
  .menu-aberto .menu { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 40px; align-content: start; padding-block: 8px 24px; }
  .menu-lista { grid-column: 1; grid-row: 1 / 3; }
  .menu-lista a { min-height: 48px; font-size: 19px; }
  .menu-destaque { grid-column: 2; grid-row: 1; justify-self: start; margin-top: 4px; }
  .menu-contatos { grid-column: 2; grid-row: 2; margin-top: 12px; }
}
@media (max-width: 960px) and (min-height: 501px) and (max-height: 620px) {
  .menu-lista a { min-height: 50px; font-size: 21px; }
  .menu-destaque { margin-top: 18px; }
  .menu-contatos { margin-top: 18px; }
  .menu { padding-bottom: 24px; }
}

/* ---------- 21. Movimento reduzido e impressão ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
@media print {
  .topbar, .cabecalho, .barra-inscricao, .whats-flutuante, .hero-setas, .topo-setas, .copiar-item, .copiar-tudo { display: none !important; }
  .escuro, .salvia, .papel { background: #FFFFFF !important; color: #000000 !important; }
  .escuro *, .salvia * { color: #000000 !important; }
  .hero-foto, .met-foto, .local-foto { display: none !important; }
}
