/* Masterclass de Auditoria Governamental 2027 — ContaGov · Foz do Iguaçu/PR, 29 a 31/03/2027 — v2, direção visual "Exame"
   Sofia Sans Extra Condensed (H1, numerais, cartaz) + Sofia Sans (H2, texto, menu, botões).
   Motivos: G em contorno (arte), traço da lupa (marcador), revisão em rosa (quadro "Edição 2027"), numerais leves gigantes.
   Sem animação (nenhum quadro-chave, nenhuma animation); só transições de cor (≤0,15s) em hover/foco.
   Índice: 1 tokens · 2 base · 3 botões e utilitários · 4 topbar e cabeçalho · 5 hero · 6 seções da home
           7 componentes (preço, pagamento, horários, contagem, contatos, acordeão) · 8 rodapé, barra fixa, WhatsApp
           9 internas (topo) · 10 responsivo (largura) · 11 responsivo (altura) · 12 internas (fase 2) · 13 Rodada 2 — responsividade · 14 Rodada 2 — leva final */

/* ============================================================ 1. tokens */
:root {
  --a950: #0D1724;
  --a900: #121F30;
  --a850: #172739;
  --a800: #1F3349;
  --a700: #2B4661;

  --agua: #4FC3B2;
  --agua-escuro: #0E7064;
  --rosa: #E8336B;
  --rosa-botao: #D02A5D;
  --rosa-escuro: #B21E4E;

  --branco: #FFFFFF;
  --gelo: #EEF4F3;
  --gelo-2: #E2EBEA;
  --linha: #D3DFDE;

  --tit: #121F30;
  --corpo: #3B4A5A;
  --apoio: #5D6C7B;
  --corpo-escuro: #D2DCE6;
  --apoio-escuro: rgba(255, 255, 255, .66);
  --linha-escura: rgba(255, 255, 255, .12);

  --f-cond: "Sofia Sans Extra Condensed", "Arial Narrow", sans-serif;
  --f-txt: "Source Sans 3", "Sofia Sans", "Segoe UI", system-ui, -apple-system, sans-serif;   /* "Source Sans 3" = só ( ) - ‑ – (subconjunto via &text=; prova de glifos) */

  --gutter: clamp(16px, 4vw, 32px);
  --secao: clamp(64px, 7vw, 112px);
  --topo-h: 38px;          /* topbar (some ≤900px de largura e em telas com altura ≤900px) */
  --cab-h: 84px;
  --raio: 12px;
}

/* ============================================================ 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-family: var(--f-txt);
  font-size: 17px;
  line-height: 1.65;
  color: var(--corpo);
  background: var(--branco);
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { font-family: var(--f-txt); font-weight: 500; color: var(--tit); margin: 0; letter-spacing: -.01em; text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
strong, b { font-weight: 600; }
button { font: inherit; }
address { font-style: normal; }
table { border-collapse: collapse; }
figure { margin: 0; }

.recipiente { width: min(100% - 2 * var(--gutter), 1320px); margin-inline: auto; }
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.pular {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  background: var(--branco); color: var(--tit); padding: 12px 18px; border-radius: var(--raio); font-weight: 600;
}
.pular:focus { top: 12px; }

/* superfícies */
.secao { padding-block: var(--secao); position: relative; }
.secao-branca { background: var(--branco); }
.secao-gelo { background: var(--gelo); }
.secao-escura { background: var(--a850); color: var(--corpo-escuro); }
.faixa-agua { background: var(--agua); color: var(--a900); }
.topbar, .cabecalho, .hero, .secao-escura, .rodape, .barra-inscricao, .topo, .menu { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.secao-escura h2, .secao-escura h3 { color: #fff; }
.faixa-agua h2, .faixa-agua h3 { color: var(--a900); }

:focus-visible { outline: 2px solid var(--agua-escuro); outline-offset: 3px; }
.topbar :focus-visible, .cabecalho :focus-visible, .hero :focus-visible, .secao-escura :focus-visible,
.rodape :focus-visible, .barra-inscricao :focus-visible, .topo :focus-visible, .whats-flutuante:focus-visible { outline-color: var(--agua); }
.faixa-agua :focus-visible { outline-color: var(--a900); }

/* ============================================================ 3. botões e utilitários */
.ic { flex: none; }
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 15px 26px; border-radius: var(--raio); border: 1.5px solid transparent;
  font: 600 15.5px/1.2 var(--f-txt); letter-spacing: .005em; text-decoration: none; text-align: center; cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.botao .ic { width: 16px; height: 16px; }
.botao-primario { background-color: var(--rosa-botao); color: #fff; }
.botao-primario:hover { background-color: var(--rosa-escuro); }
.botao-escuro { background-color: var(--a900); color: #fff; }
.botao-escuro:hover { background-color: var(--a800); }
.faixa-agua .botao-escuro:hover { background-color: var(--a950); }
.botao-contorno-claro { border-color: rgba(255, 255, 255, .45); color: #fff; }
.botao-contorno-claro:hover { border-color: #fff; background-color: rgba(255, 255, 255, .08); }
.botao-contorno { border-color: var(--a900); color: var(--a900); }
.botao-contorno:hover { background-color: var(--a900); color: #fff; }

.rotulo { margin: 0 0 16px; font: 600 15px/1.3 var(--f-txt); color: var(--agua-escuro); letter-spacing: .005em; }
.secao-escura .rotulo, .hero .rotulo, .topo .rotulo { color: var(--agua); }
.faixa-agua .rotulo { color: var(--a900); }

.h2 { font: 500 clamp(30px, 2.2vw + 12px, 46px)/1.12 var(--f-txt); letter-spacing: -.01em; color: var(--tit); }
.secao-escura .h2 { color: #fff; }
/* H2 em cartaz (nomes próprios e palavras-título): condensada leve e grande */
.h2-grande { font: 300 clamp(54px, 4.6vw + 18px, 104px)/.92 var(--f-cond); letter-spacing: -.01em; color: var(--tit); }
.secao-escura .h2-grande { color: #fff; }

.leitura { max-width: 64ch; }
.leitura p { margin-bottom: 1.1em; }

.link-seta {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  font-weight: 600; color: var(--agua-escuro);
  text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px;
  transition: color .15s ease;
}
.link-seta:hover { color: var(--tit); }
.secao-escura .link-seta { color: var(--agua); }
.secao-escura .link-seta:hover { color: #fff; }

/* traço da lupa: barra diagonal curta de pontas arredondadas, inclinada como o cabo do símbolo — marcador de listas */
.lista-lupa { list-style: none; padding: 0; margin: 0; --marca: var(--rosa-escuro); }
.lista-lupa li { position: relative; padding-left: 30px; margin: 0 0 10px; }
.lista-lupa li::before {
  content: ""; position: absolute; left: 1px; top: calc(.82em - 1.75px); width: 14px; height: 3.5px; border-radius: 2px;
  background: var(--marca); transform: rotate(-45deg);
}
.secao-escura .lista-lupa, .hero .lista-lupa { --marca: var(--agua); }
.faixa-agua .lista-lupa { --marca: var(--a900); }

/* etiqueta branca do slider ("Presencial em Foz do Iguaçu/PR") — no máximo 2 no site */
.etiqueta {
  display: inline-block; margin: 0; padding: 8px 14px 8px; border-radius: 6px;
  background: #fff; color: var(--a900); font: 400 15px/1.2 var(--f-txt); white-space: nowrap;
}
.etiqueta strong { font-weight: 600; }

.botoes-centro { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: clamp(36px, 4vw, 56px); }
.cab-centro { text-align: center; max-width: 820px; margin: 0 auto clamp(40px, 5vw, 64px); }
.cab-linha { margin: 18px auto 0; max-width: 62ch; font-size: 17px; color: var(--apoio); }
.aviso { max-width: 880px; margin: 28px auto 0; font-size: 15px; line-height: 1.55; color: var(--apoio); text-align: center; }

/* G em contorno (arte): sempre decorativo, estático, cortado pelas bordas */
.g-canto { position: absolute; pointer-events: none; user-select: none; height: auto; max-width: none; }

/* ============================================================ 4. topbar e cabeçalho */
.topbar { background: var(--a950); color: rgba(255, 255, 255, .72); font-size: 15px; line-height: 1.3; }
.topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--topo-h); }
.topbar p { margin: 0; }
.topbar a { color: rgba(255, 255, 255, .88); text-decoration: none; transition: color .15s ease; }
.topbar p a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -3px; }   /* área de toque de 44px sem aumentar a faixa */
.topbar a:hover { color: #fff; }
.topbar-contatos { display: flex; gap: 22px; list-style: none; }
.topbar-contatos a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-block: -3px; }
.topbar-contatos .ic { color: var(--agua); width: 15px; height: 15px; }

.cabecalho { position: sticky; top: 0; z-index: 50; background: var(--a900); border-bottom: 1px solid rgba(255, 255, 255, .06); }
.cabecalho.rolado { box-shadow: 0 8px 22px rgba(5, 10, 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: 48px; flex: none; }
.marca img { height: 60px; width: auto; }
.menu { display: flex; align-items: center; gap: clamp(16px, 2.2vw, 36px); }
.menu-lista { display: flex; align-items: center; gap: clamp(6px, 1.4vw, 22px); list-style: none; }
.menu-lista a {
  position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 6px;
  font: 500 15.5px/1 var(--f-txt); color: rgba(255, 255, 255, .85); text-decoration: none; transition: color .15s ease;
}
.menu-lista a:hover, .menu-lista a[aria-current="page"] { color: #fff; }
.menu-lista a[aria-current="page"]::after {
  content: ""; position: absolute; left: 6px; right: 6px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--agua);
}
.menu-destaque { min-height: 46px; padding: 12px 22px; }
.menu-contatos { display: none; }
.menu-botao { display: none; }

/* ============================================================ 5. hero */
.hero {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column;
  min-height: min(calc(100vh - var(--cab-h) - var(--topo-h) - 1px), 940px);   /* 1px = filete do cabeçalho */
  background: var(--a900); color: #fff;
}
.hero-fundo, .hero-fundo img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-fundo { z-index: -1; }
.hero-fundo img { object-fit: cover; object-position: 72% 50%; }
/* véu à esquerda: garante contraste AA do texto sobre qualquer trecho da arte (não é degradê de texto) */
.hero-fundo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(18, 31, 48, .78) 0%, rgba(18, 31, 48, .55) 38%, rgba(18, 31, 48, 0) 64%);
}
.hero-grade { flex: 1 0 auto; display: flex; align-items: center; padding-block: clamp(24px, 5vh, 84px); }
.hero-texto { width: min(100%, 780px); }

.hero-h1 { margin: 0; color: #fff; font-weight: 400; text-wrap: initial; }
.hero-pre { display: block; margin-bottom: .55em; font: 500 clamp(18px, .4vw + 14px, 21px)/1.2 var(--f-txt); color: var(--agua); letter-spacing: .01em; }
.hero-nome {
  display: block; font: 300 var(--h1, clamp(56px, min(10vw, calc(55.5vh - 335px)), 168px))/.9 var(--f-cond);
  letter-spacing: -.01em; color: #fff; margin-left: -.04em;
}
.hero-linha { display: block; }
.hero-sub { display: block; margin-top: .7em; font: 400 clamp(20px, 1.5vw + 6px, 28px)/1.25 var(--f-txt); color: rgba(255, 255, 255, .88); letter-spacing: 0; }
.hero-frase {
  max-width: 44ch; margin: 22px 0 0; padding: 2px 0 2px 16px; border-left: 1px solid #fff;
  font-size: 17px; line-height: 1.5; color: rgba(255, 255, 255, .74);
}
.hero-data { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-top: 24px; }
.cartaz-data { margin: 0; font: 300 clamp(52px, 4.4vw, 84px)/.86 var(--f-cond); letter-spacing: -.01em; color: #fff; white-space: nowrap; }
.cartaz-a { display: inline-block; margin: 0 .16em; font: 400 .4em/1 var(--f-txt); color: rgba(255, 255, 255, .72); vertical-align: .55em; }
.hero-data-txt { display: flex; flex-direction: column; margin: 0; font-size: 17px; line-height: 1.3; }
.hero-data-txt span:first-child { font-weight: 600; color: #fff; }
.hero-data-txt span + span { color: rgba(255, 255, 255, .74); }
.hero-data .etiqueta { margin-left: 6px; }
.hero-texto > .etiqueta { margin-top: 18px; }
.hero-botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

/* faixa no pé do hero (sem caixas, sem desfoque) */
.hero-faixa { position: relative; background: rgba(18, 31, 48, .72); border-top: 1px solid rgba(255, 255, 255, .12); }
.hero-faixa-in { display: flex; align-items: center; justify-content: space-between; gap: 20px 36px; padding-block: 15px; }
.faixa-info { display: flex; gap: clamp(20px, 2.4vw, 44px); list-style: none; }
.faixa-info li { display: flex; align-items: center; gap: 12px; }
.faixa-info .ic { color: var(--agua); }
.fi-rot { display: block; font-size: 15px; line-height: 1.25; color: var(--apoio-escuro); }
.fi-val { display: block; font-size: 17px; font-weight: 600; line-height: 1.3; color: #fff; white-space: nowrap; }

/* ============================================================ 6. seções da home */
/* --- Contextualização */
.sobre-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 112px); align-items: start; }
.h2-lead { margin-bottom: 28px; max-width: 24ch; }
.sobre .leitura { color: var(--corpo); }
.numeros {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; list-style: none; margin-top: 6px;
  background: var(--linha); border-block: 1px solid var(--linha);
}
.numeros li { display: flex; flex-direction: column; gap: 10px; padding: 28px 24px 30px; background: var(--branco); }
.numeros li:nth-child(odd) { padding-left: 0; }
.num-valor { font: 300 clamp(88px, 6.4vw + 20px, 128px)/.82 var(--f-cond); letter-spacing: -.02em; color: var(--a900); }
.num-leg { max-width: 15ch; font-size: 15.5px; line-height: 1.4; color: var(--apoio); }

/* --- Edição 2027: quadro de alterações (tabela editorial) */
.edicao { overflow: hidden; }
.edicao-g { right: max(-330px, calc((100vw - 1320px) / 2 - 330px)); top: -300px; width: clamp(520px, 44vw, 780px); opacity: .5; }
.edicao .quadro, .edicao-cab { position: relative; z-index: 1; }
.edicao .recipiente { position: relative; }
.edicao-cab { max-width: 860px; margin-bottom: clamp(36px, 4vw, 56px); }
.edicao-cab .h2-lead { margin-bottom: 0; max-width: 26ch; }
.quadro { width: 100%; table-layout: fixed; border-top: 1px solid rgba(255, 255, 255, .2); }
.quadro thead th {
  padding: 16px 32px 16px 0; text-align: left; vertical-align: bottom;
  font: 500 15px/1.3 var(--f-txt); color: var(--apoio-escuro); border-bottom: 1px solid var(--linha-escura);
}
.quadro tbody tr { border-bottom: 1px solid var(--linha-escura); }
.quadro tbody th, .quadro td { padding: 34px 40px 36px 0; text-align: left; vertical-align: top; }
.quadro td:last-child { padding-right: 0; }
.quadro thead th:nth-child(1), .q-marco { width: 23%; }
.quadro thead th:nth-child(2) { width: 45%; }
.q-marco { font-weight: 400; }
.q-sigla { display: block; font: 400 clamp(56px, 3vw + 24px, 72px)/.85 var(--f-cond); letter-spacing: 0; color: var(--agua); }
.q-nome { display: block; max-width: 24ch; margin-top: 12px; font-size: 15.5px; line-height: 1.45; color: rgba(255, 255, 255, .74); }
.q-texto { margin: 0; max-width: 48ch; font-size: 17.5px; line-height: 1.6; color: var(--corpo-escuro); }
.q-revisao { margin: -4px 0 18px; font: 300 clamp(34px, 1.8vw + 16px, 50px)/1.02 var(--f-cond); letter-spacing: -.005em; }
.q-revisao del {
  display: block; color: rgba(255, 255, 255, .55);
  text-decoration: line-through; text-decoration-color: var(--rosa); text-decoration-thickness: 2px;
}
.q-para { display: flex; align-items: center; gap: 14px; margin-top: 6px; color: #fff; }
.q-para .ic { width: 40px; height: 16px; color: var(--rosa); }
.q-revisao ins { text-decoration: none; color: #fff; }
.q-links { list-style: none; }
.q-links li + li { margin-top: 6px; }
.q-links a {
  position: relative; display: block; padding: 6px 0 6px 28px; text-decoration: none; color: #fff;
}
.q-links a::before {
  content: ""; position: absolute; left: 1px; top: calc(6px + .62em); width: 14px; height: 3.5px; border-radius: 2px;
  background: var(--agua); transform: rotate(-45deg);
}
.q-mod { display: block; font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--agua); }
.q-top {
  display: block; font-size: 16.5px; line-height: 1.45; color: rgba(255, 255, 255, .9);
  text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); text-decoration-thickness: 1px; text-underline-offset: 4px;
  transition: text-decoration-color .15s ease, color .15s ease;
}
.q-links a:hover .q-top { color: #fff; text-decoration-color: var(--agua); }
.edicao-pe { margin-top: clamp(36px, 4vw, 52px); }

/* --- Objetivos */
.cab-duplo { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px clamp(40px, 6vw, 112px); align-items: end; margin-bottom: clamp(36px, 4vw, 56px); }
.cab-duplo .h2 { max-width: 16ch; }
.cab-lead { margin: 0; max-width: 60ch; font-size: 17.5px; color: var(--corpo); }
.objetivos {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(5, auto); grid-auto-flow: column;
  column-gap: clamp(32px, 5vw, 80px); list-style: none;
}
.objetivos li { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 14px; align-items: baseline; padding: 19px 0 20px; border-top: 1px solid var(--linha); }
.objetivos li:nth-child(5), .objetivos li:nth-child(10) { border-bottom: 1px solid var(--linha); }
.obj-n { font: 400 36px/.9 var(--f-cond); color: var(--rosa-escuro); }
.objetivos p { margin: 0; font-size: 17px; line-height: 1.55; }
.objetivos strong { color: var(--tit); }

/* --- Programa (padrão do Orçamento: lista compacta em 2 colunas) */
.programa-lista {
  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); list-style: none;
}
.programa-lista li { border-top: 1px solid var(--linha); }
.programa-lista li:nth-child(3), .programa-lista li:nth-child(6) { border-bottom: 1px solid var(--linha); }
.programa-lista a {
  display: grid; grid-template-columns: 84px minmax(0, 1fr) 44px; align-items: center; gap: 18px;
  height: 100%; padding: 22px 14px; text-decoration: none; color: inherit; transition: background-color .15s ease;
}
.programa-lista a:hover { background-color: var(--gelo); }
.pg-n { font: 300 58px/.86 var(--f-cond); letter-spacing: -.01em; color: var(--agua-escuro); }
.pg-tit { display: block; font: 500 20px/1.3 var(--f-txt); color: var(--tit); letter-spacing: -.005em; }
.pg-qt { display: block; margin-top: 4px; font-size: 15px; color: var(--apoio); }
.pg-seta {
  display: grid; place-items: center; width: 44px; height: 44px; border: 1.5px solid var(--linha); border-radius: var(--raio);
  color: var(--tit); transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.programa-lista a:hover .pg-seta { border-color: var(--a900); background-color: var(--a900); color: #fff; }

/* --- Postura do auditor (faixa chapada verde-água, cartaz tipográfico) */
.postura .rotulo { margin-bottom: 20px; }
.postura-frase { max-width: 44ch; font: 500 clamp(24px, 1.4vw + 12px, 36px)/1.3 var(--f-txt); letter-spacing: -.01em; color: var(--a900); }
.cartaz-leg { margin: clamp(40px, 5vw, 64px) 0 10px; font-size: 15px; font-weight: 600; color: var(--a900); }
.cartaz-lista {
  display: flex; flex-wrap: wrap; align-items: center; list-style: none;
  font: 300 clamp(46px, 5.4vw, 96px)/1.04 var(--f-cond); letter-spacing: -.01em; color: var(--a900);
}
.cartaz-lista li { display: inline-flex; align-items: center; white-space: nowrap; }
.cartaz-lista li:not(:last-child)::after {
  content: ""; display: inline-block; flex: none; width: .44em; height: .075em; margin: 0 .32em 0 .3em; border-radius: 1em;
  background: var(--a900); transform: rotate(-50deg);
}
.postura-pe {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 48px;
  margin-top: clamp(40px, 5vw, 64px); padding-top: 28px; border-top: 1px solid rgba(18, 31, 48, .28);
}
.postura-pe p { margin: 0; max-width: 62ch; font-size: 18px; line-height: 1.55; color: var(--a900); }

/* --- Professor em meia tela: foto sangrando até a borda esquerda */
.professor { padding-block: 0; }
.prof-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.prof-foto { position: relative; min-height: 560px; overflow: hidden; background: var(--a900); }
.prof-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.prof-texto {
  padding-block: var(--secao);
  padding-left: clamp(32px, 5vw, 96px);
  padding-right: max(var(--gutter), calc((100vw - 1320px) / 2));
}
.prof-texto .h2-grande { margin-bottom: 10px; }
.prof-cargo { margin: 0 0 30px; font-size: 18px; font-weight: 600; color: var(--agua-escuro); }
.prof-sub { margin: 0 0 4px; font: 600 15px/1.3 var(--f-txt); color: var(--apoio); letter-spacing: .005em; }
.formacao { list-style: none; max-width: 560px; }
.formacao li { padding: 13px 0 14px; border-top: 1px solid var(--linha); line-height: 1.4; }
.formacao li:last-child { border-bottom: 1px solid var(--linha); }
.formacao strong { display: block; font-size: 17.5px; font-weight: 600; color: var(--tit); }
.formacao span { display: block; margin-top: 2px; font-size: 16px; color: var(--apoio); }
.prof-instrutor { max-width: 60ch; margin: 26px 0 30px; font-size: 16.5px; line-height: 1.6; }

/* --- Público-alvo */
.publico-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(40px, 6vw, 112px); align-items: start; }
.publico-cab .h2-lead { max-width: 14ch; margin-bottom: 32px; }
.publico-lista { list-style: none; border-bottom: 1px solid var(--linha-escura); }
.publico-lista li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 22px 0 23px; border-top: 1px solid var(--linha-escura); }
.pub-n { font: 300 46px/.8 var(--f-cond); color: var(--agua); }
.publico-lista p { margin: 0; max-width: 62ch; font-size: 17.5px; line-height: 1.6; color: var(--corpo-escuro); }

/* --- Investimento */
.invest-cab { margin-bottom: clamp(32px, 4vw, 52px); }
.investimento-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); align-items: stretch; }

/* --- Foz do Iguaçu: faixa de foto + conteúdo */
.local { background: var(--a850); color: var(--corpo-escuro); }
.local-foto, .local-foto img { display: block; width: 100%; }
.local-foto img { aspect-ratio: 1920 / 740; height: auto; max-height: 72vh; object-fit: cover; }
.local-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(40px, 6vw, 112px); padding-block: clamp(56px, 6vw, 96px) var(--secao); }
.local-tit { margin-bottom: 18px; white-space: nowrap; }
.local-data { margin: 0 0 6px; font-size: 18px; font-weight: 600; color: #fff; }
.local-hotel { margin: 0 0 28px; font-size: 17px; color: var(--corpo-escuro); }
.local-hotel span { font-weight: 600; color: var(--agua); }
.local-horarios .horarios thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }   /* o H3 "Horários" já nomeia a tabela */
.local-h3 { margin: 6px 0 14px; font: 600 15px/1.3 var(--f-txt); color: var(--apoio-escuro) !important; letter-spacing: .005em; }

/* --- Galeria */
.galeria-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 32px; margin-bottom: clamp(28px, 3vw, 40px); }
.galeria-cab p { margin: 0; font-size: 17px; color: var(--apoio); }
.galeria-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(10px, 1.4vw, 18px); list-style: none; }
.galeria-grade img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio); background: var(--gelo); }

/* ============================================================ 7. componentes */
/* painel (preço, pagamento, contato) */
.painel { position: relative; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: clamp(26px, 3vw, 48px); }
.painel h3 { font: 500 clamp(22px, .6vw + 16px, 26px)/1.2 var(--f-txt); color: var(--tit); }

/* preço */
.preco { display: flex; flex-direction: column; align-items: flex-start; }
.preco-rot { margin: 0; font-size: 15px; font-weight: 600; color: var(--agua-escuro); }
.preco-valor {
  margin: 14px 0 0; font: 300 clamp(80px, 5vw + 36px, 136px)/.84 var(--f-cond); letter-spacing: -.02em; color: var(--a900);
  white-space: nowrap;
}
.preco-moeda { display: inline-block; margin-right: -.3em; font: 500 .26em/1 var(--f-txt); letter-spacing: 0; vertical-align: 1.9em; }
.preco-por { margin: 16px 0 26px; font-size: 16.5px; color: var(--apoio); }
.preco h3.preco-inc-tit { align-self: stretch; margin: 34px 0 16px; padding-top: 28px; border-top: 1px solid var(--linha); font-size: 19px; font-weight: 600; }
.incluso li { font-size: 16.5px; line-height: 1.55; }

/* pagamento + copiar */
.pagamento { display: flex; flex-direction: column; }
.pag-intro { margin: 10px 0 22px; font-size: 16.5px; color: var(--apoio); }
.pag-dados { margin: 0 0 24px; }
.pag-dados > div {
  display: grid; grid-template-columns: minmax(110px, 9.5em) minmax(0, 1fr) auto; align-items: center; gap: 4px 16px;
  padding: 9px 0; border-top: 1px solid var(--linha);
}
.pag-dados > div:last-child { border-bottom: 1px solid var(--linha); }
.pag-dados dt { font-size: 15px; color: var(--apoio); }
.pag-dados dd { margin: 0; font: 500 18.5px/1.3 var(--f-txt); color: var(--tit); white-space: nowrap; }
.copiar-item {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; height: 44px; padding: 0 12px;
  border: 1.5px solid var(--linha); border-radius: var(--raio); background: var(--branco); color: var(--tit); cursor: pointer;
  font: 600 15px/1 var(--f-txt); transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.copiar-item svg { width: 18px; height: 18px; }
.copiar-item:hover { border-color: var(--a900); }
.copiar-item .ic-ok, .copiar-item .copiar-ok-txt { display: none; }
.copiar-item.ok { background: var(--a900); border-color: var(--a900); color: #fff; }
.copiar-item.ok .ic-copiar { display: none; }
.copiar-item.ok .ic-ok { display: block; }
.copiar-item.ok .copiar-ok-txt { display: inline; }
.copiar-tudo {
  display: flex; align-items: center; gap: 14px; width: 100%; margin-top: auto; padding: 14px 22px; min-height: 64px;
  border: 1.5px solid var(--a900); border-radius: var(--raio); background: transparent; color: var(--tit); text-align: left; cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.copiar-tudo .ic { width: 22px; height: 22px; }
.copiar-tudo:hover, .copiar-tudo.ok { background: var(--a900); color: #fff; }
.copiar-tudo-txt { display: flex; flex-direction: column; }
.copiar-tudo-tit { font: 600 16px/1.3 var(--f-txt); }
.copiar-tudo-sub { font-size: 15px; line-height: 1.35; opacity: .82; }
.copiar-aviso { min-height: 1.4em; margin: 10px 0 0; font-size: 15px; color: var(--apoio); }
.copiar-aviso:empty { margin: 0; min-height: 0; }

/* horários (no escuro por padrão; .secao-branca/.secao-gelo para o claro) */
.horarios { width: 100%; }
.horarios th {
  padding: 0 0 10px; text-align: left; font: 500 15px/1.3 var(--f-txt); color: var(--apoio-escuro);
  border-bottom: 1px solid rgba(255, 255, 255, .18);
}
.horarios td { padding: 12px 0; border-bottom: 1px solid var(--linha-escura); font-size: 17px; line-height: 1.35; color: #fff; vertical-align: baseline; }
.horarios tr:last-child td { border-bottom: 0; }
.h-hora { width: 1%; padding-right: 32px !important; font: 300 28px/1.1 var(--f-cond) !important; letter-spacing: 0; white-space: nowrap; }
.h-obs { display: inline-block; margin-left: 6px; font-size: 15px; color: var(--agua); }
.secao-branca .horarios th, .secao-gelo .horarios th { color: var(--apoio); border-color: var(--linha); }
.secao-branca .horarios td, .secao-gelo .horarios td { color: var(--tit); border-color: var(--linha); }
.secao-branca .h-obs, .secao-gelo .h-obs { color: var(--agua-escuro); }

/* contagem regressiva: numerais grandes + unidade pequena, separados por filetes (sem caixas) */
.contagem { display: flex; align-items: center; gap: 18px; flex: none; }
.contagem-rot { margin: 0; font-size: 15px; color: var(--apoio-escuro); }
.contagem-lista { display: flex; list-style: none; }
.contagem-lista li { display: flex; align-items: baseline; gap: 5px; padding: 0 16px; border-left: 1px solid rgba(255, 255, 255, .18); }
.contagem-lista li:first-child { padding-left: 0; border-left: 0; }
.contagem-lista li:last-child { padding-right: 0; }
.contagem-lista span { min-width: .96em; font: 300 42px/1 var(--f-cond); letter-spacing: 0; color: #fff; text-align: right; }
.contagem-lista small { font-size: 15px; line-height: 1; color: var(--apoio-escuro); }
.contagem-fim { margin: 0; font-size: 16px; color: #fff; }
.contagem.acabou .contagem-lista, .contagem.acabou .contagem-rot { display: none; }

/* canais de contato */
.canais { list-style: none; }
.canais li { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 16px 0; border-top: 1px solid var(--linha); }
.canais li:last-child { border-bottom: 1px solid var(--linha); }
.canal-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--raio); background: var(--gelo); color: var(--agua-escuro); }
.canal-ic .ic { width: 20px; height: 20px; }
.canal-rot { margin: 0; font-size: 15px; color: var(--apoio); }
.canal-valor { margin: 0; font: 500 19px/1.3 var(--f-txt); color: var(--tit); white-space: nowrap; }
.canal-valor a { display: inline-block; padding-block: 12px; margin-block: -12px; text-decoration: none; }
.canal-valor a:hover { text-decoration: underline; }

/* acordeão da programação (padrão do Orçamento) — página programacao.html (fase 2) */
.ac-ferramentas { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 16px; }
.no-js .ac-ferramentas { display: none; }
.ac-ferramentas button {
  min-height: 44px; padding: 10px 18px; border: 1.5px solid var(--linha); border-radius: var(--raio); background: var(--branco);
  font: 600 15px/1 var(--f-txt); color: var(--tit); cursor: pointer; transition: border-color .15s ease, background-color .15s ease;
}
.ac-ferramentas button:hover { border-color: var(--a900); }
.acordeao { border-top: 1px solid var(--linha); }
.ac-item { border-bottom: 1px solid var(--linha); }
.ac-cab { margin: 0; font: inherit; letter-spacing: 0; }
.ac-botao {
  display: grid; grid-template-columns: 84px minmax(0, 1fr) auto 46px; align-items: center; gap: 20px; width: 100%;
  padding: 24px 12px; border: 0; background: transparent; text-align: left; cursor: pointer; color: inherit;
  transition: background-color .15s ease;
}
.ac-botao:hover { background-color: var(--gelo); }
.ac-num { font: 300 58px/.86 var(--f-cond); letter-spacing: -.01em; color: var(--agua-escuro); }
.ac-rot { display: block; margin-bottom: 4px; font-size: 15px; font-weight: 600; color: var(--apoio); }
.ac-tit { display: block; font: 500 clamp(19px, .5vw + 14px, 23px)/1.3 var(--f-txt); color: var(--tit); }
.ac-qt { font-size: 15px; color: var(--apoio); white-space: nowrap; }
.ac-ic { position: relative; width: 46px; height: 46px; border-radius: var(--raio); border: 1.5px solid var(--linha); }
.ac-ic::before, .ac-ic::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.8px; margin: -.9px 0 0 -8px; background: var(--tit); border-radius: 2px; }
.ac-ic::after { transform: rotate(90deg); }
.ac-botao[aria-expanded="true"] .ac-ic { background: var(--a900); border-color: var(--a900); }
.ac-botao[aria-expanded="true"] .ac-ic::before { background: #fff; }
.ac-botao[aria-expanded="true"] .ac-ic::after { display: none; }
.ac-corpo { padding: 4px 12px 32px calc(84px + 20px + 12px); }
.ac-topicos { list-style: none; columns: 2; column-gap: clamp(28px, 4vw, 64px); }   /* colunas de jornal: tópicos com subtópicos têm alturas diferentes */
.ac-topicos > li { break-inside: avoid; position: relative; padding: 14px 0 14px 30px; border-top: 1px solid var(--linha); font-size: 16.5px; line-height: 1.55; color: var(--tit); }
.ac-topicos > li::before { content: ""; position: absolute; left: 1px; top: calc(14px + .82em - 1.75px); width: 14px; height: 3.5px; border-radius: 2px; background: var(--rosa-escuro); transform: rotate(-45deg); }
.ac-topicos ul { list-style: none; margin: 8px 0 0; }
.ac-topicos ul li { position: relative; padding: 3px 0 3px 20px; font-size: 15.5px; line-height: 1.5; color: var(--corpo); }
.ac-topicos ul li::before { content: ""; position: absolute; left: 1px; top: calc(3px + .76em - 1.25px); width: 9px; height: 2.5px; border-radius: 2px; background: var(--agua-escuro); transform: rotate(-45deg); }
.ac-topicos ul ul li::before { width: 6px; background: var(--apoio); }

/* ============================================================ 8. rodapé, barra fixa, WhatsApp */
.rodape { position: relative; overflow: hidden; padding-top: clamp(56px, 6vw, 88px); background: var(--a900); color: rgba(255, 255, 255, .75); font-size: 15.5px; }
.rodape-g { right: -220px; bottom: -340px; width: 760px; opacity: .3; }
.rodape .recipiente { position: relative; }
.com-barra .rodape { padding-bottom: var(--barra-h, 76px); }
.rodape-grade { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px clamp(24px, 3vw, 48px); }
.rodape-logo { display: inline-block; }
.rodape-logo img { height: 64px; width: auto; }
.rodape-evento { margin: 20px 0 30px; line-height: 1.55; }
.realizacao { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 22px 40px; }
.realizacao-item p { margin: 0 0 10px; font-size: 15px; color: var(--apoio-escuro); }
.realizacao-item a { display: inline-flex; align-items: center; min-height: 44px; }
.logo-contagov { width: 168px; height: auto; }
.logo-np { width: 116px; height: auto; }
.rodape-col h2 { margin: 0 0 10px; font: 600 16px/1.3 var(--f-txt); color: #fff; letter-spacing: .005em; }
.rodape-col ul { list-style: none; }
.rodape-col a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; color: rgba(255, 255, 255, .8); text-decoration: none; transition: color .15s ease; }
.rodape-col ul a { min-width: 44px; }
.rodape-col a:hover { color: #fff; }
.rodape-col .ic { width: 16px; height: 16px; color: var(--agua); }
.rodape-col address { margin-top: 6px; line-height: 1.5; }
.rodape-col address a { display: inline-block; min-height: 0; padding-block: 3px; line-height: 1.55; }
.rodape-redes { display: flex; gap: 6px; margin-top: 8px; }
.rodape-redes a { justify-content: center; width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--raio); }
.rodape-redes .ic { width: 19px; height: 19px; color: #fff; }
.rodape-base {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px;
  margin-top: clamp(40px, 5vw, 64px); padding-block: 22px; border-top: 1px solid var(--linha-escura);
  font-size: 15px; color: rgba(255, 255, 255, .62);
}
.rodape-base p { margin: 0; }

.barra-inscricao {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--a900); color: #fff;
  transform: translateY(100%); visibility: hidden; border-top: 1px solid rgba(255, 255, 255, .14);
  box-shadow: 0 -10px 26px rgba(5, 10, 18, .3);
}
.barra-on .barra-inscricao { transform: none; visibility: visible; }
.barra-in { display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); padding-block: 12px; }
.barra-logo { height: 44px; width: auto; flex: none; }
.barra-txt { flex: 1 1 auto; min-width: 0; }
.barra-tit { margin: 0; font: 600 16.5px/1.25 var(--f-txt); }
.barra-info { margin: 2px 0 0; font-size: 15px; line-height: 1.3; color: rgba(255, 255, 255, .7); }
.barra-preco { margin: 0; display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.barra-valor { font: 300 34px/1 var(--f-cond); letter-spacing: 0; }
.barra-por { font-size: 15px; color: var(--apoio-escuro); }
.barra-inscricao .botao { flex: none; min-height: 48px; padding: 12px 22px; }

/* WhatsApp: nas páginas COM barra fica ENCAIXADO na barra (lado direito), aparece junto com ela (>300px) e nunca cobre
   texto ou controles (a barra reserva o espaço). Na página sem barra (inscrição) é flutuante; ≤760px não aparece lá. */
.whats-flutuante {
  position: fixed; right: clamp(14px, 2vw, 24px); bottom: 20px; z-index: 45;
  display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
  background: #25D366; color: #fff; box-shadow: 0 6px 16px rgba(5, 10, 18, .3);
  visibility: hidden; transition: background-color .15s ease;
}
.whats-flutuante .ic { width: 30px; height: 30px; }
.whats-flutuante:hover { background-color: #1EBE5A; }
.rolou .sem-barra .whats-flutuante { visibility: visible; }
.com-barra .whats-flutuante { width: 50px; height: 50px; box-shadow: none; bottom: calc((var(--barra-h, 72px) - 1px - 50px) / 2); }
.com-barra .whats-flutuante .ic { width: 27px; height: 27px; }
.barra-on .com-barra .whats-flutuante { visibility: visible; }
@media (max-width: 1480px) {
  .com-barra .barra-in { padding-right: 58px; }
  .com-barra .whats-flutuante { right: max(10px, calc(var(--gutter) - 6px)); }
  .rodape-base { padding-right: 70px; }
}
@media (min-width: 761px) and (max-width: 1480px) {
  .sem-barra main .recipiente, .sem-barra .rodape .recipiente { width: min(100% - 2 * 84px, 1320px); }
}

/* ============================================================ 9. internas: topo curto escuro (fase 2)
   Marcação: <section class="topo"> {{parte:c-topo-fundo}} <div class="recipiente topo-in"> <ol class="trilha">…</ol>
             <p class="rotulo">…</p> <h1>…</h1> <p class="topo-sub">…</p> <div class="topo-botoes">…</div> </div></section> */
.topo { position: relative; isolation: isolate; overflow: hidden; background: var(--a900); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.topo-fundo { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.topo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(18, 31, 48, .74) 0%, rgba(18, 31, 48, .4) 55%, rgba(18, 31, 48, 0) 80%); }
.topo-in { position: relative; padding-block: clamp(36px, 4.5vw, 72px); }
.trilha { display: flex; flex-wrap: wrap; gap: 0 10px; list-style: none; margin-bottom: 14px; font-size: 15px; color: var(--apoio-escuro); }
.trilha li { display: inline-flex; align-items: center; }
.trilha li + li::before { content: "/"; margin-right: 10px; color: rgba(255, 255, 255, .4); }
.trilha a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: rgba(255, 255, 255, .85); text-decoration: none; }
.trilha a:hover { color: #fff; text-decoration: underline; }
.topo h1 { font: 300 clamp(56px, 5vw + 24px, 120px)/.9 var(--f-cond); letter-spacing: -.01em; color: #fff; max-width: 16ch; }
.topo-sub { margin: 18px 0 0; max-width: 60ch; font-size: 18px; color: rgba(255, 255, 255, .84); }
.topo .rotulo { margin-bottom: 12px; }
.topo-botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* ============================================================ 10. responsivo (largura) */
@media (min-width: 2200px) {
  html { zoom: 1.2; }
}
@media (max-width: 1300px) {
  .faixa-info { gap: 24px; }
  .contagem-lista li { padding: 0 12px; }
  .contagem-lista span { font-size: 38px; }
}
@media (max-width: 1240px) {
  .fi-extra { display: none; }
  .rodape-grade { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.3fr); }
  .rodape-grade > :last-child { grid-column: 2 / span 2; }
  .quadro thead th:nth-child(1), .q-marco { width: 20%; }
}
@media (max-width: 1100px) {
  .faixa-info .ic { display: none; }
  .contagem-rot { display: none; }
  .faixa-info { gap: 22px; }
  .barra-logo { display: none; }
}
@media (max-width: 1040px) {
  :root { --cab-h: 70px; }
  .marca img { height: 44px; }
  .menu-botao {
    display: grid; place-items: center; width: 48px; height: 48px; margin-right: -6px; padding: 0;
    border: 0; border-radius: var(--raio); background: transparent; color: #fff; cursor: pointer;
  }
  .menu-botao-linhas, .menu-botao-linhas::before, .menu-botao-linhas::after {
    display: block; width: 24px; height: 2px; border-radius: 2px; background: currentColor; 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; left: 0; right: 0; top: var(--menu-top, var(--cab-h)); bottom: 0; z-index: 49;
    flex-direction: column; align-items: stretch; gap: 22px; overflow-y: auto; overscroll-behavior: contain;
    padding: 18px var(--gutter) 40px; background: var(--a900); border-top: 1px solid var(--linha-escura);
  }
  .menu-aberto { overflow: hidden; }
  html:has(body.menu-aberto) { overflow: hidden; }
  .menu-aberto .menu { display: flex; }
  .menu-lista { flex-direction: column; align-items: stretch; gap: 0; }
  .menu-lista li { border-bottom: 1px solid var(--linha-escura); }
  .menu-lista a { display: flex; justify-content: flex-start; min-width: 0; min-height: 66px; padding: 0; font: 300 38px/1.1 var(--f-cond); letter-spacing: 0; color: #fff; }
  .menu-lista a[aria-current="page"]::after { left: 0; right: auto; width: 40px; bottom: 10px; }
  .menu-destaque { align-self: flex-start; min-height: 52px; padding: 14px 26px; }
  .menu-contatos { display: flex; flex-direction: column; gap: 2px; list-style: none; margin-top: 4px; }
  .menu-contatos a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: rgba(255, 255, 255, .85); text-decoration: none; font-size: 16px; }
  .menu-contatos .ic { color: var(--agua); }

  .hero-faixa-in { flex-wrap: wrap; }
  .faixa-info { flex: 1 1 auto; }
  .quadro thead { display: none; }
  .quadro, .quadro tbody, .quadro tr, .quadro tbody th, .quadro td { display: block; width: 100% !important; }
  .quadro tbody tr { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: 32px; padding: 30px 0 32px; }
  .quadro tbody th, .quadro td { padding: 0; }
  .q-marco { grid-row: 1 / span 2; }
  .q-mudou { margin-bottom: 20px; }
  .q-prog { grid-column: 2; }
}
@media (max-width: 960px) {
  .sobre-grade, .publico-grade, .local-grade, .cab-duplo { grid-template-columns: minmax(0, 1fr); }
  .numeros { max-width: 640px; }
  .objetivos, .programa-lista { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .objetivos li:nth-child(5) { border-bottom: 0; }
  .programa-lista li:nth-child(3) { border-bottom: 0; }
  .investimento-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-foto { min-height: 0; aspect-ratio: 3 / 2; }
  .prof-texto { padding: clamp(48px, 7vw, 72px) var(--gutter) var(--secao); width: min(100%, 1320px + 2 * var(--gutter)); margin-inline: auto; }
  .rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rodape-marca { grid-column: 1 / -1; }
  .rodape-grade > :last-child { grid-column: auto; }
  .ac-topicos { columns: 1; }
  .ac-corpo { padding-left: 12px; }
  .publico-cab .h2-lead { max-width: 20ch; }
}
@media (max-width: 900px) {
  :root { --topo-h: 0px; }
  .topbar { display: none; }
}
@media (max-width: 860px) {
  .barra-info, .barra-por { display: none; }
}
@media (max-width: 760px) {
  :root { --cab-h: 64px; --secao: 64px; }
  body { font-size: 16.5px; }
  .marca img { height: 42px; }
  .hero { min-height: 0; }
  .hero-fundo img { object-position: 50% 0%; }
  .hero-fundo::after { background: linear-gradient(180deg, rgba(18, 31, 48, 0) 0%, rgba(18, 31, 48, 0) 16%, rgba(18, 31, 48, .82) 44%, rgba(18, 31, 48, .96) 100%); }
  .hero-grade { align-items: flex-end; padding-block: clamp(64px, calc(100vh - 600px), 300px) 32px; }
  .hero-nome { font-size: clamp(50px, 19.5vw, 104px); }
  .hero-pre { margin-bottom: .4em; }
  .hero-sub { margin-top: .55em; font-size: 19px; }
  .hero-frase { display: none; }
  .hero-data { margin-top: 20px; gap: 8px 16px; }
  .cartaz-data { font-size: 56px; }
  .hero-data .etiqueta { margin-left: 0; }
  .hero-botoes { margin-top: 22px; }
  .hero-botoes .botao { flex: 1 1 auto; }
  .hero-faixa { background: var(--a900); }
  .hero-faixa-in { flex-direction: column; align-items: stretch; padding-block: 18px 20px; gap: 18px; }
  .faixa-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
  .fi-val { white-space: normal; }
  .contagem { padding-top: 16px; border-top: 1px solid var(--linha-escura); }
  .contagem-rot { display: block; }

  .h2-lead { max-width: none; }
  .edicao-g { width: 360px; right: -190px; top: -210px; opacity: .3; }
  .numeros li { padding: 22px 16px 24px; }
  .num-valor { font-size: 84px; }
  .quadro tbody tr { display: block; padding: 28px 0 30px; }
  .q-marco { margin-bottom: 14px; }
  .q-sigla { font-size: 56px; }
  .q-revisao { font-size: 34px; }
  .objetivos li { grid-template-columns: 46px minmax(0, 1fr); }
  .obj-n { font-size: 32px; }
  .programa-lista a { grid-template-columns: 56px minmax(0, 1fr) 44px; gap: 14px; padding: 18px 4px; }
  .pg-n { font-size: 48px; }
  .pg-tit { font-size: 18.5px; }
  .botoes-centro .botao { flex: 1 1 100%; }
  .aviso { text-align: left; }
  .cartaz-lista { font-size: clamp(40px, 11vw, 60px); line-height: 1.08; }
  .cartaz-lista li { white-space: normal; }
  .postura-pe .botao { flex: 1 1 100%; }
  .prof-foto { aspect-ratio: 4 / 3.4; }
  .publico-lista li { grid-template-columns: 48px minmax(0, 1fr); }
  .pub-n { font-size: 40px; }
  .local-tit { white-space: normal; }
  .local-foto img { aspect-ratio: 3 / 2; max-height: none; }
  .galeria-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rodape-grade { grid-template-columns: minmax(0, 1fr); }
  .rodape-base { flex-direction: column; }
  .canais li { grid-template-columns: 48px minmax(0, 1fr); }
  .canal-acao { grid-column: 2; justify-self: start; margin-top: -6px; }
  .topo h1 { font-size: clamp(52px, 15vw, 84px); }

  /* barra: só preço + botão (+ WhatsApp encaixado) */
  .barra-txt { display: none; }
  .barra-in { justify-content: space-between; padding-block: 8px; gap: 12px; }
  .barra-valor { font-size: 30px; }
  .barra-inscricao .botao { min-height: 46px; padding: 11px 18px; }
  .sem-barra .whats-flutuante { display: none; }
  .com-barra .whats-flutuante { width: 46px; height: 46px; right: 10px; bottom: calc((var(--barra-h, 62px) - 1px - 46px) / 2); }
  .com-barra .whats-flutuante .ic { width: 26px; height: 26px; }
  .com-barra .barra-in { padding-right: 50px; }
  .rodape-base { padding-right: 0; }
}
@media (max-width: 600px) {
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; }
  .pag-dados dt { grid-column: 1; }
  .pag-dados dd { grid-column: 1; }
  .pag-dados .copiar-item { grid-column: 2; grid-row: 1 / span 2; }
  .horarios thead { display: none; }
  .horarios, .horarios tbody, .horarios tr, .horarios td { display: block; width: 100%; }
  .horarios tr { padding: 10px 0; border-bottom: 1px solid var(--linha-escura); }
  .horarios td { padding: 0; border: 0; }
  .h-hora { font-size: 26px !important; }
}
@media (max-width: 420px) {
  .faixa-info .ic { display: none; }
  .contagem { flex-wrap: wrap; gap: 8px 14px; }
  .contagem-rot { flex-basis: 100%; }
  .barra-preco { display: none; }
  .barra-inscricao .botao { flex: 1 1 auto; }
  .contagem-lista li { padding: 0 10px; }
  .contagem-lista span { font-size: 36px; }
  .preco-valor { font-size: 74px; }
  .faixa-info { gap: 14px 12px; }
}
@media (max-width: 360px) {
  .hero-botoes .botao { padding-inline: 18px; }
  .hero-sub { font-size: 18px; }
  .contagem-lista li { padding: 0 9px; }
  .contagem-lista span { font-size: 34px; }
  .pag-dados dd { font-size: 17px; }
  .preco-valor { font-size: 66px; }
  .copiar-tudo { padding-inline: 16px; }
}

/* ============================================================ 11. responsivo (altura): notebooks baixos */
/* telas com altura ≤900px: topbar some; o hero passa a ocupar a primeira tela inteira com a faixa */
@media (min-width: 761px) and (max-height: 900px) {
  :root { --topo-h: 0px; }
  .topbar { display: none; }
}
/* altura ≤760px (1366×657, 1280×610, 1366×768…): cabeçalho 70px, barra compacta, hero sem a frase do slider */
@media (min-width: 761px) and (max-height: 780px) {
  :root { --cab-h: 70px; }
  .marca img { height: 46px; }
  .hero-frase { display: none; }
  .hero-nome { font-size: clamp(56px, min(10vw, calc(55.5vh - 236px)), 168px); }
  .hero-grade { padding-block: clamp(20px, 4.2vh, 40px); }
  .hero-pre { margin-bottom: .4em; }
  .hero-sub { margin-top: .5em; font-size: clamp(19px, 1.2vw + 4px, 24px); }
  .hero-data { margin-top: 18px; }
  .cartaz-data { font-size: clamp(50px, 9vh, 72px); }
  .hero-botoes { margin-top: 22px; }
  .hero-faixa-in { padding-block: 12px; }
  .contagem-lista span { font-size: 36px; }
  .barra-in { padding-block: 8px; }
  .barra-logo { height: 38px; }
  .barra-valor { font-size: 30px; }
  .barra-inscricao .botao { min-height: 44px; padding-block: 10px; }
}
@media (min-width: 761px) and (max-height: 640px) {
  :root { --cab-h: 64px; }
  .marca img { height: 42px; }
  .barra-info { display: none; }
  .barra-in { padding-block: 5px; }
}
/* celular retrato baixo (320×568, 360×640…): cabeçalho 58px e barra 56px → cabeçalho + barra ≈ 20% */
@media (max-width: 760px) and (max-height: 700px) {
  :root { --cab-h: 58px; }
  .marca img { height: 38px; }
  .barra-in { padding-block: 5px; }
  .barra-inscricao .botao { min-height: 44px; padding-block: 10px; }
}
/* celular deitado e telas muito baixas: o cabeçalho deixa de ser fixo (não rouba a tela) */
@media (max-height: 500px) {
  .cabecalho { position: relative; }
  html { scroll-padding-top: 16px; }
}

/* ============================================================ 12. internas (fase 2) */
/* celular: véu ardósia mais forte atrás do bloco de texto do hero (o "Masterclass de" e o topo do H1 ficavam sobre o
   trecho claro da foto da lupa) — garante contraste AA sem mexer na imagem */
@media (max-width: 760px) {
  .hero-texto { position: relative; }
  .hero-texto::before {
    content: ""; position: absolute; z-index: -1; left: calc(-1 * var(--gutter)); right: calc(-1 * var(--gutter));
    top: -88px; bottom: -40px;
    background: linear-gradient(180deg, rgba(18, 31, 48, 0) 0, rgba(18, 31, 48, .86) 80px, rgba(18, 31, 48, .93) 100%);
  }
}

/* topo da inscrição com a contagem */
.topo-inscricao .contagem { margin-top: 26px; }

/* programação: contextualização completa */
.contexto-grade { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px clamp(40px, 6vw, 112px); align-items: start; }
.contexto-cab { position: sticky; top: calc(var(--cab-h) + 32px); }
.contexto-cab .h2 { max-width: 13ch; }
.contexto-texto p:first-child { font-size: 20px; line-height: 1.55; color: var(--tit); }
.revisao-inline { text-decoration: none; }
del.revisao-inline { color: var(--apoio); text-decoration: line-through; text-decoration-color: var(--rosa); text-decoration-thickness: 2px; }
ins.revisao-inline { font-weight: 600; color: var(--tit); }

/* programação: ementa */
.ementa-cab { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px clamp(40px, 6vw, 112px); align-items: end; margin-bottom: clamp(32px, 4vw, 48px); }
.ementa-cab .h2 { max-width: 16ch; }
.aviso-esq { margin: 28px 0 0; text-align: left; max-width: 900px; }

/* horários (programação e inscrição) */
.horarios-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px clamp(40px, 6vw, 112px); align-items: start; }
.horarios-grade .h2-grande { margin-bottom: 18px; }
.horarios-data { margin: 0 0 6px; font-size: 18px; font-weight: 600; color: #fff; }
.horarios-local { margin: 0; font-size: 17px; color: var(--corpo-escuro); }
.horarios-local span { font-weight: 600; color: var(--agua); }

/* chamada final da programação (preço em cartaz) */
.cta-grade { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; }
.cta-preco { margin: 0; font: 300 clamp(72px, 6vw + 20px, 128px)/.86 var(--f-cond); letter-spacing: -.02em; color: var(--a900); white-space: nowrap; }
.cta-moeda { display: inline-block; margin-right: -.3em; font: 500 .26em/1 var(--f-txt); letter-spacing: 0; vertical-align: 1.9em; }
.cta-por { margin: 16px 0 0; font-size: 16.5px; color: var(--apoio); }
.cta-botoes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }

/* professor */
.perfil-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(40px, 6vw, 104px); align-items: start; }
.perfil-foto { position: sticky; top: calc(var(--cab-h) + 24px); }
.perfil-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); background: var(--a900); }
.perfil-texto .h2 { margin-bottom: 26px; }
.perfil-cargo { display: block; margin-top: 8px; font: 600 18px/1.3 var(--f-txt); color: var(--agua-escuro); letter-spacing: 0; }
.bio p { font-size: 17.5px; line-height: 1.65; }
.perfil-texto .prof-sub { margin-top: 36px; }
.cursos-lista {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 56px); list-style: none;
  border-bottom: 1px solid var(--linha);
}
.cursos-lista li { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 20px 0 22px; border-top: 1px solid var(--linha); }
.cursos-lista p { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.4; color: var(--tit); }
.chamada-grade { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; }
.chamada-tit { max-width: 26ch; margin: 0; }
.chamada-botoes { display: flex; flex-wrap: wrap; gap: 12px; }

/* contato */
.contato-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(40px, 6vw, 104px); align-items: start; }
.contato-h2 { margin-bottom: 28px; }
.contato-end { margin: 12px 0 4px; font-size: 18px; line-height: 1.6; color: var(--tit); }
.painel .contato-h3 { margin: 28px 0 8px; padding-top: 24px; border-top: 1px solid var(--linha); font: 600 16px/1.3 var(--f-txt); }
.contato-sites, .contato-redes { list-style: none; }
.contato-sites a, .contato-redes a {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--tit); text-decoration: none; transition: color .15s ease;
}
.contato-sites a:hover, .contato-redes a:hover { color: var(--agua-escuro); text-decoration: underline; }
.contato-sites .ic, .contato-redes .ic { color: var(--agua-escuro); }
.contato-redes { display: flex; flex-wrap: wrap; gap: 8px; }
.contato-redes a { padding: 0 16px; border: 1px solid var(--linha); border-radius: var(--raio); }
.lc-grade { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(40px, 6vw, 104px); align-items: center; }
.lc-foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--raio); }
.lc-texto .h2-grande { margin-bottom: 24px; }
.lc-dados { margin: 0; border-bottom: 1px solid var(--linha); }
.lc-dados > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 4px 16px; align-items: baseline; padding: 12px 0; border-top: 1px solid var(--linha); }
.lc-dados dt { font-size: 15px; color: var(--apoio); }
.lc-dados dd { margin: 0; font-size: 18px; font-weight: 500; color: var(--tit); }
.lc-botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* inscrição: bloco de contato próprio */
.duvidas-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(40px, 6vw, 112px); align-items: start; }
.duvidas .h2 { margin-bottom: 18px; max-width: 18ch; }
.duvidas-botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* inscrição (sem barra): margens laterais reservadas ao WhatsApp → painéis empilhados até 1240px (dados bancários inteiros) */
@media (max-width: 1240px) {
  .sem-barra .investimento-grade { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
}
@media (max-width: 960px) {
  .contexto-grade, .ementa-cab, .horarios-grade, .perfil-grade, .contato-grade, .lc-grade, .duvidas-grade { grid-template-columns: minmax(0, 1fr); }
  .contexto-cab, .perfil-foto { position: static; }
  .perfil-foto { max-width: 520px; }
  .contexto-cab .h2 { max-width: 20ch; }
  .cursos-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  /* acordeão no celular: "N tópicos" desce para baixo do título (o título não fica espremido) */
  .ac-botao { grid-template-columns: 48px minmax(0, 1fr) 44px; grid-template-rows: auto auto; gap: 2px 14px; padding: 20px 4px; }
  .ac-num { grid-row: 1 / span 2; font-size: 46px; }
  .ac-txt { grid-column: 2; grid-row: 1; }
  .ac-qt { grid-column: 2; grid-row: 2; }
  .ac-ic { grid-column: 3; grid-row: 1 / span 2; width: 44px; height: 44px; }
  .ac-corpo { padding: 0 4px 26px; }
  .ementa-cab { margin-bottom: 20px; }
  .ementa-cab .h2, .contexto-cab .h2 { max-width: none; }
  .ac-ferramentas { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .cursos-lista { grid-template-columns: minmax(0, 1fr); }
  .cursos-lista li { grid-template-columns: 46px minmax(0, 1fr); }
  .contexto-texto p:first-child { font-size: 18.5px; }
  .cta-botoes .botao, .chamada-botoes .botao, .lc-botoes .botao, .duvidas-botoes .botao { flex: 1 1 100%; }
  .lc-dados > div { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 360px) {
  .cta-preco { font-size: 64px; }
}

@media print {
  .barra-inscricao, .whats-flutuante, .cabecalho, .topbar { display: none !important; }
}

/* ============================================================ 13. Rodada 2 — responsividade (28/10)
   Correções dos 4 revisores (desktop D-, notebook N-, tablet T-, celular C-) conforme as decisões do orquestrador.
   Registro item a item em _trabalho/provas/resp/correcoes.md. Tudo estático: nenhuma animação. */

/* --- [D-A1][D-M5][D-M4] unidades de tela corrigidas para o zoom ≥2200px: dentro do html{zoom:1.2} o vw/vh mede a janela
   real e ainda é multiplicado por 1,2 → --vw/--vh já divididos por 1,2 (usar calc(N * var(--vh)) no lugar de Nvh) */
:root { --vw: 1vw; --vh: 1vh; }
@media (min-width: 2200px) { :root { --vw: calc(1vw / 1.2); --vh: calc(1vh / 1.2); } }

/* --- [D-M2][D-A1] hero preenche a dobra até 1440px de altura (teto 1100px) */
@media (min-width: 761px) {
  .hero { min-height: min(calc(100 * var(--vh) - var(--cab-h) - var(--topo-h) - 1px), 1100px); }
  .hero-grade { padding-block: clamp(24px, calc(5 * var(--vh)), 84px); }
  /* [N-M1] H1 nunca diminui quando a tela fica mais alta: a frase do slider só entra a partir de 1000px de altura (onde o
     H1 já está no teto de largura) e as fórmulas são contínuas */
  .hero-frase { display: none; }
  .hero-nome { font-size: clamp(56px, min(calc(10 * var(--vw)), calc(55.5 * var(--vh) - 250px)), 168px); }
}
@media (min-width: 761px) and (min-height: 1000px) {
  .hero-frase { display: block; }
  .hero-nome { font-size: clamp(56px, min(calc(10 * var(--vw)), calc(55.5 * var(--vh) - 295px)), 168px); }
}
@media (min-width: 761px) and (max-height: 780px) {
  .hero-nome { font-size: clamp(56px, min(calc(10 * var(--vw)), calc(55.5 * var(--vh) - 236px)), 168px); }
}
/* no zoom 1,2 (≥2200px) as consultas de altura usam px REAIS: a frase só entra com 1000px de altura já no zoom (1200 reais) */
@media (min-width: 2200px) and (max-height: 1199px) {
  .hero-frase { display: none; }
  .hero-nome { font-size: clamp(56px, min(calc(10 * var(--vw)), calc(55.5 * var(--vh) - 250px)), 168px); }
}
.hero-sub { text-wrap: balance; }
/* [N-B4] "Faltam" sempre visível (a faixa tem espaço; ≤1040 ela já quebra em 2 linhas) */
@media (max-width: 1100px) { .contagem-rot { display: block; } }

/* --- [T-A2] tablet RETRATO (761–1100): composição do celular — arte hero-celular.jpg (via <picture>), texto empilhado
   embaixo, foto da lupa livre em cima */
@media (min-width: 761px) and (max-width: 1100px) and (orientation: portrait) {
  .hero-fundo img { object-position: 50% 0%; }
  .hero-fundo::after { background: linear-gradient(180deg, rgba(18, 31, 48, 0) 0%, rgba(18, 31, 48, 0) 24%, rgba(18, 31, 48, .84) 50%, rgba(18, 31, 48, .96) 100%); }
  .hero-grade { align-items: flex-end; padding-block: clamp(120px, calc(100vh - 860px), 420px) 40px; }
  .hero-texto { width: min(100%, 660px); position: relative; }
  .hero-texto::before {
    content: ""; position: absolute; z-index: -1; left: calc(-1 * var(--gutter)); right: calc(-1 * var(--gutter)); top: -60px; bottom: -40px;
    background: linear-gradient(180deg, rgba(18, 31, 48, 0) 0, rgba(18, 31, 48, .86) 60px, rgba(18, 31, 48, .93) 100%);
  }
  .hero-nome { font-size: clamp(72px, 12vw, 124px); }
  .hero-frase { display: block; }
}

/* --- [C-M2][C-M5][C-M6] hero do celular retrato: mais foto aparecendo, CTA na dobra em telas baixas, botões iguais */
@media (max-width: 760px) {
  .hero-fundo::after { background: linear-gradient(180deg, rgba(18, 31, 48, 0) 0%, rgba(18, 31, 48, 0) 30%, rgba(18, 31, 48, .84) 52%, rgba(18, 31, 48, .96) 100%); }
  .hero-texto::before { top: -44px; background: linear-gradient(180deg, rgba(18, 31, 48, 0) 0, rgba(18, 31, 48, .86) 44px, rgba(18, 31, 48, .93) 100%); }
  .hero-grade { padding-top: clamp(64px, calc(100vh - 560px), 340px); }
}
@media (max-width: 760px) and (max-height: 600px) {
  .hero-grade { padding-top: 24px; }
  .hero-nome { font-size: 54px; }
  .hero-sub { font-size: 17px; }
  .hero-data { margin-top: 14px; }
  .cartaz-data { font-size: 48px; }
  .hero-botoes { margin-top: 16px; }
}
@media (max-width: 480px) { .hero-botoes .botao { flex: 1 1 100%; } }
@media (min-width: 481px) and (max-width: 760px) { .hero-botoes .botao { flex: 1 1 0; } }

/* --- [C-A1] celular DEITADO (≤900 × ≤500): arte paisagem (hero.jpg), título menor, data e "Inscreva-se" na 1ª tela */
@media (max-width: 900px) and (max-height: 500px) {
  .hero { min-height: 0; }
  .hero-fundo img { object-position: 72% 50%; }
  .hero-fundo::after { background: linear-gradient(90deg, rgba(18, 31, 48, .9) 0%, rgba(18, 31, 48, .76) 52%, rgba(18, 31, 48, .25) 88%); }
  .hero-texto { width: min(100%, 660px); }
  .hero-texto::before { display: none; }
  .hero-grade { align-items: center; padding-block: 16px 20px; }
  .hero-pre { font-size: 16px; margin-bottom: .25em; }
  .hero-nome { font-size: clamp(40px, 14vh, 60px); }
  .hero-sub { margin-top: .35em; font-size: 16px; }
  .hero-frase { display: none; }
  .hero-data { margin-top: 10px; gap: 6px 14px; }
  .cartaz-data { font-size: 42px; }
  .hero-data-txt { font-size: 15px; }
  .hero-botoes { margin-top: 12px; }
  .hero-botoes .botao { flex: 0 1 auto; min-height: 44px; padding-block: 11px; }
}

/* --- [T-A1] menu: a rolagem fica travada só no <html> (o <body> não vira contêiner de rolagem e o cabeçalho sticky
   continua no topo quando a página está rolada); nas telas baixas o cabeçalho é preso no topo enquanto o menu está aberto */
body.menu-aberto { overflow: visible; }
@media (max-height: 500px) { .menu-aberto .cabecalho { position: sticky; top: 0; } }
/* [T-B2] menu completo de 1001 a 1040 (iPad deitado 1024): logo + 4 links + Investimento cabem com folga */
@media (min-width: 1001px) and (max-width: 1040px) {
  .menu-botao { display: none; }
  .menu {
    display: flex; position: static; flex-direction: row; align-items: center; gap: 18px;
    overflow: visible; padding: 0; background: none; border-top: 0;
  }
  .menu-lista { flex-direction: row; align-items: center; gap: 6px; }
  .menu-lista li { border-bottom: 0; }
  .menu-lista a { display: inline-flex; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 6px; font: 500 15.5px/1 var(--f-txt); color: rgba(255, 255, 255, .85); }
  .menu-lista a[aria-current="page"]::after { left: 6px; right: 6px; width: auto; bottom: 4px; }
  .menu-destaque { align-self: auto; min-height: 46px; padding: 12px 20px; }
  .menu-contatos { display: none; }
}
/* [N-B9][19] logo do cabeçalho nunca abaixo de 48px de altura */
.marca img { min-height: 48px; }

/* --- [D-M3][T-M3][N-M3] medida de leitura 60–70 caracteres MEDIDOS (a Sofia Sans tem ≈0,437em por caractere: o "ch"
   da pilha era largo e dava 80–97). 28,5em ≈ 65 caracteres em qualquer corpo */
.leitura, .leitura p { max-width: 28.5em; }
.aviso, .aviso-esq { max-width: 28.5em; }
.postura-pe p, .prof-instrutor, .publico-lista p, .q-texto, .cab-lead, .cab-linha, .objetivos p, .lc-dados dd,
.incluso li, .formacao li, .pag-intro, .local-hotel, .horarios-local { max-width: 28.5em; }
.cab-linha, .aviso { margin-inline: auto; }
.aviso-esq { margin-inline: 0; }
.topo-sub { max-width: 46em; }

/* --- [19][N-B1][T-B1][C-B3][D-B1] sequências com "·": cada trecho é um bloco em linha e o separador fica num recuo que
   é cortado quando o trecho abre a linha → o "·" nunca termina nem começa uma linha */
.seq { overflow: hidden; }
.seq-in { display: block; margin-left: -1.1em; }
.seq-in > span { display: inline-block; position: relative; padding-left: 1.1em; }
.seq .sep { position: absolute; left: 0; top: 0; width: 1.1em; text-align: center; }
.rodape-evento.seq { margin: 20px 0 0; }
.rodape-evento-2.seq { margin: 0 0 30px; }
.nq { white-space: nowrap; }

/* --- [19][C-B1][D-B4][N-B2] títulos equilibrados (sem viúvas) */
.h2, .h2-grande, .ac-tit, .pg-tit, .q-nome, .postura-frase, .chamada-tit, .cab-duplo .h2 { text-wrap: balance; }
.q-nome { max-width: 26ch; }

/* --- [D-B5][T-B4] H2 de coluna estreita em 2 linhas (não 3–4) */
@media (min-width: 961px) { .contexto-grade { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.contexto-cab .h2 { max-width: 16ch; }
.ementa-cab .h2 { max-width: 20ch; }
@media (max-width: 960px) { .cab-duplo .h2, .cab-duplo .h2-lead, .ementa-cab .h2, .contexto-cab .h2 { max-width: none; } }

/* --- [D-M4] G da Edição 2027 preso ao canto superior direito, ACIMA do quadro (base = base do cabeçalho da seção) */
.edicao-cab { position: relative; max-width: none; }
.edicao-cab .rotulo, .edicao-cab .h2-lead { position: relative; z-index: 1; }
.edicao-g {
  top: auto; bottom: 0; right: calc(-1 * max(var(--gutter), (100 * var(--vw) - 1320px) / 2) - 140px);
  width: clamp(380px, calc(36 * var(--vw)), 640px); opacity: .5;
}
@media (max-width: 760px) { .edicao-g { display: none; } }   /* no celular o H2 ocupa a largura toda: sem área vazia */

/* --- [D-B2][N-B3] G do rodapé só na margem lateral vazia à direita do container (nunca atrás de links nem do CNPJ) */
.rodape-g { display: none; }
@media (min-width: 1600px) {
  .rodape-g { display: block; left: calc(50% + 660px + 40px); right: auto; top: 28px; bottom: auto; width: 620px; opacity: .3; }
}

/* --- [D-A2][T-M1][N-B8][C-B6] professor: foto em meia tela STICKY, altura = tela útil (menos cabeçalho e barra),
   teto 900px; a coluna da foto para de crescer em 960px; retrato 4:5 onde a coluna é retrato (via <picture>) */
.prof-foto picture { display: contents; }
@media (min-width: 961px) {
  .prof-grade { grid-template-columns: minmax(0, min(calc(50 * var(--vw)), 960px)) minmax(0, 1fr); align-items: start; }
  .prof-foto {
    position: sticky; top: calc(var(--cab-h) + 1px); min-height: 0;
    height: min(calc(100 * var(--vh) - var(--cab-h) - 1px - var(--barra-h, 64px)), 900px);
  }
  .prof-foto img { object-position: 54% 26%; }
  .prof-texto { padding-right: max(var(--gutter), calc((100 * var(--vw) - 1320px) / 2)); }
}
@media (min-width: 2200px) {   /* no zoom 1,2: 760px = 912px reais → ampliação ≤1,07× */
  .prof-foto { height: min(calc(100 * var(--vh) - var(--cab-h) - 1px - var(--barra-h, 64px)), 760px); }
}
@media (max-width: 600px) and (orientation: portrait) {
  .prof-foto { aspect-ratio: 4 / 5; }
  .prof-foto img { object-position: 50% 18%; }
}
@media (max-width: 960px) and (max-height: 500px) {
  .prof-foto { aspect-ratio: auto; height: 80vh; }
  .prof-foto img { object-position: 54% 22%; }
}
@media (min-width: 761px) and (max-height: 780px) {
  .prof-texto { padding-block: 64px; }
  .formacao li { padding-block: 10px 11px; }
}

/* --- [D-M1] faixa de Foz: acima de 1920px (largura da origem) fica dentro do container, com canto, para não ampliar */
@media (min-width: 1921px) {
  .local-foto { width: min(100% - 2 * var(--gutter), 1320px); margin: var(--secao) auto 0; }
  .local-foto img { border-radius: var(--raio); max-height: none; }
}

/* --- [T-M2][C-M1] Postura: o traço da lupa vira MARCADOR no começo de cada item (nunca pendurado no fim da linha) */
.cartaz-lista li:not(:last-child)::after { content: none; display: none; }
.cartaz-lista li::before {
  content: ""; display: inline-block; flex: none; width: .4em; height: .075em; margin-right: .26em; border-radius: 1em;
  background: var(--a900); transform: rotate(-50deg);
}
.cartaz-lista { column-gap: .42em; }
.cartaz-lista .cartaz-quebra { display: none; }
.cartaz-lista li.cartaz-quebra::before { content: none; }
@media (min-width: 1041px) {   /* duas linhas compostas: "Ética… · Competência · Zelo…" / "Confidencialidade · Ceticismo…" */
  .cartaz-lista { font-size: min(96px, calc((min(calc(100 * var(--vw)), 1384px) - 2 * var(--gutter)) / 19.6)); }
  .cartaz-lista .cartaz-quebra { display: block; flex-basis: 100%; height: 0; }
  .cartaz-lista li { white-space: nowrap; }
}
@media (max-width: 1040px) {   /* tablet e celular: um item por linha */
  .cartaz-lista { display: block; font-size: clamp(34px, calc((100vw - 2 * var(--gutter)) / 8.4), 74px); line-height: 1.08; }
  .cartaz-lista li { display: grid; grid-template-columns: .4em minmax(0, 1fr); column-gap: .28em; align-items: start; white-space: normal; }
  .cartaz-lista li::before { margin: .5em 0 0; }
  .cartaz-lista li + li { margin-top: .06em; }
}

/* --- [T-M4] 761–960: objetivos e tópicos do acordeão em 2 colunas (a lista de módulos da home fica em 1 coluna: em 2
   colunas o título teria ~170px e iria a 3–4 linhas — ver correcoes.md) */
@media (min-width: 761px) and (max-width: 960px) {
  .objetivos { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(5, auto); grid-auto-flow: column; column-gap: 32px; }
  .objetivos li:nth-child(5) { border-bottom: 1px solid var(--linha); }
  .ac-topicos { columns: 2; }
  .ac-corpo { padding-left: calc(84px + 20px + 12px); }
}

/* --- [C-M3] 320–400: título do módulo com a largura toda; numeral + rótulo + sinal numa linha, "N tópicos" embaixo */
@media (max-width: 400px) {
  .ac-botao { grid-template-columns: auto minmax(0, 1fr) 44px; grid-template-rows: auto auto auto; column-gap: 12px; row-gap: 4px; }
  .ac-txt { display: contents; }
  .ac-num { grid-column: 1; grid-row: 1; font-size: 36px; align-self: center; }
  .ac-rot { grid-column: 2; grid-row: 1; align-self: center; margin: 0; }
  .ac-ic { grid-column: 3; grid-row: 1; }
  .ac-tit { grid-column: 1 / -1; grid-row: 2; margin-top: 6px; }
  .ac-qt { grid-column: 1 / -1; grid-row: 3; }
  .programa-lista a { grid-template-columns: auto minmax(0, 1fr) 44px; grid-template-rows: auto auto; column-gap: 12px; row-gap: 6px; }
  .pg-txt { display: contents; }
  .pg-n { grid-column: 1; grid-row: 1; font-size: 40px; align-self: center; }
  .pg-qt { grid-column: 2; grid-row: 1; align-self: center; margin: 0; }
  .pg-seta { grid-column: 3; grid-row: 1; }
  .pg-tit { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 360px) { .txt-longo { display: none; } }   /* [C-B4] "Confira a programação" numa linha */

/* --- [T-M5][N-B7] inscrição: margem do WhatsApp SÓ à direita; painéis lado a lado de novo a partir de 1080px */
@media (min-width: 761px) and (max-width: 1480px) {
  .sem-barra main .recipiente, .sem-barra .rodape .recipiente {
    width: auto; margin-left: max(var(--gutter), calc((100% - 1320px) / 2)); margin-right: max(84px, calc((100% - 1320px) / 2));
  }
}
@media (max-width: 1240px) { .sem-barra .investimento-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; } }
@media (max-width: 1079px) { .sem-barra .investimento-grade { grid-template-columns: minmax(0, 1fr); max-width: 760px; } }

/* --- [N-A1] inscrição em telas baixas: topo compacto (contagem ao lado do H1) → preço e "Faça sua inscrição" na 1ª tela */
@media (min-width: 761px) and (max-height: 800px) {
  .topo-inscricao .topo-in { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 40px; padding-block: 18px 24px; }
  .topo-inscricao .topo-in > nav, .topo-inscricao .rotulo, .topo-inscricao h1, .topo-inscricao .topo-sub { grid-column: 1; }
  .topo-inscricao .contagem { grid-column: 2; grid-row: 2 / span 3; align-self: end; margin: 0 0 4px; }
  .topo-inscricao .trilha { margin-bottom: 0; }
  .topo-inscricao .rotulo { margin-bottom: 6px; }
  .topo-inscricao h1 { font-size: clamp(52px, 9.5vh, 84px); }
  .topo-inscricao .topo-sub { margin-top: 8px; }
  .topo-inscricao + .secao { padding-top: 28px; }
  .sem-barra .investimento .painel { padding-block: 26px; }
}
/* [N-M2] demais internas em telas baixas: topo compacto e 1º conteúdo visível na dobra */
@media (min-width: 761px) and (max-height: 780px) {
  .topo-in { padding-block: 20px 28px; }
  .trilha { margin-bottom: 0; }
  .topo .rotulo { margin-bottom: 6px; }
  .topo h1 { font-size: clamp(52px, 10vh, 92px); }
  .topo-sub { margin-top: 8px; }
  .topo-botoes { margin-top: 16px; }
  .topo + .secao { padding-top: 44px; }
}
/* [N-B6] trilha alinhada à margem (o alvo de 44px continua) */
.trilha li:first-child a { justify-content: flex-start; padding-left: 0; }
/* [C-M4] topo das internas no celular/tablet: véu mais escuro atrás do texto (rótulo e trilha ≥4,5:1) */
@media (max-width: 900px) {
  .topo::before { background: linear-gradient(90deg, rgba(18, 31, 48, .9) 0, rgba(18, 31, 48, .78) 60%, rgba(18, 31, 48, .55) 100%); }
  .trilha, .trilha li + li::before { color: rgba(255, 255, 255, .8); }
}

/* --- [N-M4][T-B3] rodapé 961–1240: marca à esquerda, "O evento" no meio, Contato + Grupo empilhados à direita (sem vão) */
@media (min-width: 961px) and (max-width: 1240px) {
  .rodape-grade { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.1fr); }
  .rodape-marca { grid-column: 1; grid-row: 1 / span 2; }
  .rodape-grade > nav.rodape-col { grid-column: 2; grid-row: 1 / span 2; }
  .rodape-grade > div.rodape-col { grid-column: 3; }
  .rodape-grade > :last-child { grid-column: 3; grid-row: 2; }
}
/* logos da realização na mesma linha de base; rótulos alinhados por baixo */
.realizacao { display: grid; grid-template-columns: repeat(2, auto); justify-content: start; align-items: end; column-gap: 40px; row-gap: 10px; }
.realizacao-item { display: contents; }
.realizacao-item p { grid-row: 1; margin: 0; align-self: end; }
.realizacao-item a { grid-row: 2; align-self: center; }
/* [C-B8] rodapé do celular mais compacto */
@media (max-width: 760px) {
  .rodape { padding-top: 48px; }
  .rodape-grade { gap: 30px; }
  .rodape-grade > nav.rodape-col ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .realizacao { column-gap: 24px; }
  .logo-contagov { width: 140px; }
  .logo-np { width: 96px; }
  .rodape-evento-2.seq { margin-bottom: 22px; }
  .rodape-base { margin-top: 32px; }
}

/* --- [D-B3] contato: redes na coluna da esquerda (sem vão sob os canais) */
.contato-h3-esq { margin: 32px 0 10px; font: 600 16px/1.3 var(--f-txt); color: var(--tit); }

/* --- [C-B5] canais: valor e ação sem sobreposição de alvo */
@media (max-width: 760px) { .canal-acao { margin-top: 4px; } }

/* --- [N-B5] barra fixa baixa (≤640px de altura): WhatsApp de 44px com respiro */
@media (min-width: 761px) and (max-height: 640px) {
  .com-barra .whats-flutuante { width: 44px; height: 44px; bottom: calc((var(--barra-h, 55px) - 1px - 44px) / 2); }
  .com-barra .whats-flutuante .ic { width: 24px; height: 24px; }
}

/* ============================================================ 14. Rodada 2 — leva final (reconferência dos revisores)
   Itens T-R1/T-R2/T-R3, D-R1, C-M4, C-R1, N-B2/D-B4/T-B5, C-B1/D-B5, N-A1/N-M2 (ver _trabalho/provas/resp/correcoes.md) */

/* [T-R2][C-M1] lista-cartaz: o conteúdo do item é UM span (o "julgamento profissional" não vira item separado) e a 2ª
   linha tem recuo pendurado (alinha com o texto, não com o traço) */
.cartaz-lista li > span { min-width: 0; }
@media (max-width: 1040px) {
  .cartaz-lista li { grid-template-columns: .4em minmax(0, 1fr); }
  .cartaz-lista li > span { grid-column: 2; }
}

/* [T-R1] véu atrás do texto do hero (celular e tablet retrato) cobre a LARGURA TOTAL da tela (o hero corta o excesso) */
@media (max-width: 760px), (min-width: 761px) and (max-width: 1100px) and (orientation: portrait) {
  .hero-texto::before { left: -100vw; right: -100vw; }
}

/* [D-R1] professor: a coluna da foto é pintada de ardósia (o espaço sob a foto sticky vira continuação escura, nunca
   branco) e, no zoom ≥2200 (onde a seção inteira cabe na tela), o texto fica centralizado com padding menor → a seção
   tem praticamente a altura da foto */
@media (min-width: 961px) {
  .prof-grade { background: linear-gradient(90deg, var(--a900) 0 min(calc(50 * var(--vw)), 960px), transparent 0); }
}
@media (min-width: 2200px) {
  .prof-grade { align-items: center; }
  /* a foto acompanha a altura do texto (até 800px = 960 reais → ampliação ≤1,13×) e nunca passa da tela útil */
  .prof-foto { align-self: stretch; height: auto; max-height: min(800px, calc(100 * var(--vh) - var(--cab-h) - 1px - var(--barra-h, 64px))); }
  .prof-texto { padding-block: 40px; }
  .prof-texto .h2-grande { font-size: 88px; }
  .prof-cargo { margin-bottom: 22px; }
  .formacao li { padding-block: 9px 10px; }
  .prof-instrutor { margin: 20px 0 22px; }
}

/* [C-M4] topo das internas: o véu (::before) era pintado SOB a imagem (as duas em z-index −1, a imagem depois) */
.topo::before { z-index: 0; }
.topo-in { z-index: 1; }

/* [C-R1] celular deitado: "Inscreva-se" e "Programação em PDF" com a mesma largura */
@media (max-width: 900px) and (max-height: 500px) {
  .hero-botoes { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
  .hero-botoes .botao { flex: none; }
}

/* [N-B2][D-B4] legenda do marco CNJ: "Resolução CNJ nº 633/2025," ↵ "que alterou a Resolução CNJ nº 309/2020" onde couber */
.q-nome { max-width: none; }
.quadro thead th:nth-child(1), .q-marco { width: 25%; }
.quadro tbody th.q-marco { padding-right: 28px; }
@media (max-width: 1240px) { .quadro thead th:nth-child(1), .q-marco { width: 25%; } }

/* [C-B1][D-B5] viúvas */
.topo-sub { text-wrap: balance; }
.contexto-cab .h2 { max-width: 20ch; }

/* [N-M2][N-A1] compactação dos topos internos também em 781–820 de altura; 1024×600: topo da inscrição ainda mais justo */
@media (min-width: 761px) and (min-height: 781px) and (max-height: 820px) {
  .topo-in { padding-block: 20px 28px; }
  .trilha { margin-bottom: 0; }
  .topo .rotulo { margin-bottom: 6px; }
  .topo h1 { font-size: clamp(52px, 10vh, 92px); }
  .topo-sub { margin-top: 8px; }
  .topo-botoes { margin-top: 16px; }
  .topo + .secao { padding-top: 44px; }
  .topo-inscricao .topo-in { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 40px; padding-block: 18px 24px; }
  .topo-inscricao .topo-in > nav, .topo-inscricao .rotulo, .topo-inscricao h1, .topo-inscricao .topo-sub { grid-column: 1; }
  .topo-inscricao .contagem { grid-column: 2; grid-row: 2 / span 3; align-self: end; margin: 0 0 4px; }
  .topo-inscricao h1 { font-size: clamp(52px, 9.5vh, 84px); }
  .topo-inscricao + .secao { padding-top: 28px; }
  .sem-barra .investimento .painel { padding-block: 26px; }
}
@media (min-width: 761px) and (max-height: 640px) {
  .topo-inscricao .topo-in { padding-block: 10px 16px; }
  .topo-inscricao + .secao { padding-top: 22px; }
}
