/* Masterclass de Inteligência Artificial Aplicada à Gestão Financeira e Compliance
   ContaGov · Foz do Iguaçu/PR, 22 a 24/02/2027 — v2, direção visual "Lente"
   Geologica (títulos e numerais) + Rethink Sans (texto). Sem animação: só transições de cor (≤0,15s).
   Í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, WhatsApp
           9 internas (topo) · 10 responsivo */

/* ============================================================ 1. tokens */
:root {
  --n950: #08071C;
  --n900: #0D0B29;
  --n850: #141038;
  --n800: #1E1850;
  --n700: #2D2670;
  --anel: rgba(150, 160, 255, .14);

  --magenta: #A3168F;
  --violeta: #6A35D9;
  --azul: #2F6BEA;
  --ciano: #2CCBEA;
  --grad: linear-gradient(90deg, #A3168F, #6A35D9 38%, #2F6BEA 70%, #2CCBEA);
  --grad-botao: linear-gradient(90deg, #2F5FE0, #6A35D9);
  --grad-botao-hover: linear-gradient(90deg, #2550C8, #5A2BC4);
  --grad-faixa: linear-gradient(100deg, #8A1380 0%, #5A2BC4 40%, #2A50C0 72%, #13739A 100%);
  --violeta-texto: #5A2BC4;

  --branco: #FFFFFF;
  --nevoa: #F3F3F7;
  --nevoa-2: #E9E8F1;
  --linha: #DCDBE8;

  --titulo: #0D0B29;
  --corpo: #3E3C5A;
  --apoio: #62607D;
  --titulo-escuro: #FFFFFF;
  --corpo-escuro: #D3D2EC;
  --apoio-escuro: rgba(255, 255, 255, .66);
  --linha-escura: rgba(255, 255, 255, .12);

  --f-tit: "Geologica", "Segoe UI", system-ui, sans-serif;
  --f-txt: "Rethink Sans", "Segoe UI", system-ui, sans-serif;

  --gutter: clamp(16px, 4vw, 32px);
  --secao: clamp(64px, 7vw, 112px);
  --cab-h: 88px;
  --raio: 22px;
}

/* ============================================================ 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);
  -webkit-font-smoothing: antialiased;
  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-tit); font-weight: 400; color: var(--titulo); margin: 0; letter-spacing: -.02em; 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; }

.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(--titulo); padding: 12px 18px; border-radius: 999px; font-weight: 600;
}
.pular:focus { top: 12px; }

:focus-visible { outline: 2px solid var(--violeta-texto); outline-offset: 3px; }
.topbar :focus-visible, .cabecalho :focus-visible, .hero :focus-visible, .secao-escura :focus-visible,
.faixa-cor :focus-visible, .local :focus-visible, .rodape :focus-visible, .barra-inscricao :focus-visible,
.topo :focus-visible { outline-color: var(--ciano); }

/* ============================================================ 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: 14px 26px; border-radius: 999px; border: 1.5px solid transparent;
  font: 600 15.5px/1.2 var(--f-txt); text-decoration: none; text-align: center; cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.botao .ic { width: 17px; height: 17px; }
.botao .ic-seta { width: 16px; height: 16px; }
.botao-primario { background: var(--grad-botao); color: #fff; }
.botao-primario:hover { background: var(--grad-botao-hover); }
.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(--n900); color: var(--n900); }
.botao-contorno:hover { background-color: var(--n900); color: #fff; }

.rotulo { margin: 0 0 18px; font: 600 15px/1.3 var(--f-txt); color: var(--violeta-texto); letter-spacing: 0; }
.secao-escura .rotulo, .hero .rotulo, .local .rotulo, .topo .rotulo { color: var(--ciano); }
.faixa-cor .rotulo { color: #fff; }

.h2-grande {
  font: 400 clamp(32px, 2.2vw + 14px, 54px)/1.08 var(--f-tit);
  letter-spacing: -.025em; color: var(--titulo); text-wrap: balance;
}
.secao-escura .h2-grande, .faixa-cor .h2-grande { color: #fff; }

.leitura p, p.leitura { max-width: 66ch; }

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

/* ponto da lente: anel de 10px com ponto de 3px (como o símbolo) — marcador de listas */
.lista-lente { list-style: none; padding: 0; margin: 0; --marca: var(--violeta-texto); }
.lista-lente li { position: relative; padding-left: 28px; margin: 0 0 10px; }
.lista-lente li::before {
  content: ""; position: absolute; left: 0; top: .52em; width: 12px; height: 12px; border-radius: 50%;
  border: 2px solid var(--marca);
  background: radial-gradient(circle, var(--marca) 0 1.6px, transparent 2.1px);
}
.secao-escura .lista-lente, .hero .lista-lente, .local .lista-lente { --marca: var(--ciano); }

.pilula {
  display: inline-flex; align-items: center; gap: 8px; margin: 0;
  padding: 9px 18px; border-radius: 999px; font: 500 16px/1.2 var(--f-txt); white-space: nowrap;
}
.pilula .ic { width: 18px; height: 18px; color: var(--ciano); }
.pilula-cheia { background: var(--n700); color: #fff; }
.pilula-contorno { border: 1.5px solid rgba(255, 255, 255, .4); color: #fff; }

.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-centro .h2-grande { margin-inline: auto; }
.cab-linha { margin: 16px 0 0; font-size: 16px; color: var(--apoio); }

/* ============================================================ 4. topbar e cabeçalho */
.topbar { background: var(--n950); 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; min-height: 44px; }
.topbar p { margin: 0; }
.topbar a { color: rgba(255, 255, 255, .88); text-decoration: none; transition: color .15s ease; }
.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; }
.topbar-contatos .ic { color: var(--ciano); width: 16px; height: 16px; }

.cabecalho { position: sticky; top: 0; z-index: 50; background: var(--n900); transition: box-shadow .15s ease; }
.cabecalho.rolado { box-shadow: 0 8px 22px rgba(4, 3, 18, .32); }
.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: 58px; 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(--grad);
}
.menu-destaque { min-height: 46px; padding: 12px 22px; }
.menu-contatos { display: none; }
.menu-botao { display: none; }

/* ============================================================ 5. hero */
.hero {
  position: relative; overflow: hidden; color: #fff;
  background: linear-gradient(180deg, #0D0B29 0%, #110D33 55%, #19124A 100%);
}
.hero-grade {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center;
  gap: clamp(24px, 4vw, 72px);
  padding-block: clamp(44px, 5vw, 76px) clamp(36px, 4vw, 60px);
}
.hero-h1 { font: 400 clamp(36px, 3.6vw + 8px, 64px)/1.06 var(--f-tit); letter-spacing: -.025em; color: #fff; }
.hero-pre {
  display: block; margin-bottom: 12px;
  font: 400 clamp(18px, .8vw + 8px, 23px)/1.2 var(--f-tit); letter-spacing: -.01em; color: var(--ciano);
}
.hero-linha { display: block; }
@media (min-width: 1101px) { .hero-linha { white-space: nowrap; } }
.hero-sub { margin: 22px 0 0; max-width: 44ch; font-size: clamp(17px, .4vw + 12px, 19px); line-height: 1.5; color: rgba(255, 255, 255, .82); }
.hero-data { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; margin-top: 30px; }
.cartaz-data {
  margin: 0; font: 200 clamp(58px, 5vw + 14px, 104px)/.86 var(--f-tit); letter-spacing: -.04em; color: #fff;
  white-space: nowrap;
}
.cartaz-a { display: inline-block; margin: 0 .16em; font-size: .4em; font-weight: 300; letter-spacing: 0; color: rgba(255, 255, 255, .72); vertical-align: .12em; }
.hero-data-txt { display: flex; flex-direction: column; margin: 0; font-size: 17px; line-height: 1.35; color: #fff; }
.hero-data-txt span + span { color: rgba(255, 255, 255, .7); }
.hero-data .pilula { align-self: center; }
.hero-botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

.hero-lente { justify-self: end; width: 100%; max-width: 500px; }
.lente { position: relative; width: 100%; aspect-ratio: 88.22 / 88.85; }
.lente-aneis {
  position: absolute; width: 260.7%; max-width: none; height: auto; left: -87.79%; top: -79.47%;
  color: var(--anel); pointer-events: none; overflow: visible;
}
.lente picture { display: contents; }
.lente-foto {
  position: absolute; left: 10.375%; top: 17.99%; width: 64.385%; height: auto; aspect-ratio: 1;
  border-radius: 50%; object-fit: cover; background: var(--n800);
}
.lente-c { position: absolute; inset: 0; width: 100%; height: 100%; }
.lente-selo {
  position: absolute; left: 0; bottom: 7%; margin: 0;
  padding: 10px 18px; border-radius: 999px; background: var(--violeta); color: #fff;
  font: 600 15px/1.2 var(--f-txt); white-space: nowrap;
}

.hero-faixa { position: relative; z-index: 1; border-top: 1px solid rgba(255, 255, 255, .12); padding-bottom: 6px; }
.hero-faixa::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--grad); }
.hero-faixa-in { display: flex; align-items: center; justify-content: space-between; gap: 20px 28px; padding-block: 18px; }
.faixa-info { display: flex; flex-wrap: wrap; gap: 14px clamp(20px, 2.4vw, 44px); list-style: none; }
.faixa-info li { display: flex; align-items: center; gap: 12px; }
.faixa-info .ic { width: 24px; height: 24px; color: var(--ciano); }
.fi-rot { display: block; font-size: 15px; line-height: 1.25; color: rgba(255, 255, 255, .66); }
.fi-val { display: block; font: 400 18px/1.3 var(--f-tit); letter-spacing: -.01em; color: #fff; white-space: nowrap; }

/* ============================================================ 6. seções da home */
.secao { padding-block: var(--secao); position: relative; }
.secao-branca { background: var(--branco); }
.secao-nevoa { background: var(--nevoa); }
.secao-escura { background: var(--n850); color: var(--corpo-escuro); }

/* --- A masterclass */
.sobre-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.sobre-cab .h2-grande { max-width: 15ch; }
.sobre-texto p { font-size: 17.5px; }
.numeros {
  list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(56px, 6vw, 96px); border-top: 1px solid var(--linha);
}
.numeros li { padding: 30px clamp(16px, 2vw, 32px) 0; border-left: 1px solid var(--linha); }
.numeros li:first-child { border-left: 0; padding-left: 0; }
.num-valor {
  display: block; font: 200 clamp(76px, 7vw + 10px, 144px)/.86 var(--f-tit); letter-spacing: -.05em; color: var(--titulo);
}
.num-leg { display: block; margin-top: 16px; max-width: 22ch; font-size: 16px; line-height: 1.45; color: var(--apoio); }

/* --- Projeto integrador: canvas do agente */
.projeto { overflow: hidden; }
.lente-traco {
  position: absolute; width: clamp(720px, 74vw, 1280px); height: auto; right: -30%; top: -46%;
  color: rgba(150, 160, 255, .18); pointer-events: none;
}
.projeto .recipiente { position: relative; }
.projeto-cab {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 96px); align-items: start;
  margin-bottom: clamp(40px, 5vw, 72px);
}
.projeto-cab .h2-grande { max-width: 18ch; }
.projeto-lead { margin: 0; padding-top: 44px; max-width: 60ch; font-size: 17px; color: var(--corpo-escuro); }
.projeto-grade { display: grid; grid-template-columns: minmax(0, 8.5fr) minmax(0, 3.5fr); gap: clamp(28px, 3.6vw, 56px); align-items: stretch; }

.canvas {
  position: relative; margin: 0; overflow: hidden; display: flex; flex-direction: column;
  background: var(--n800); border-radius: var(--raio); border: 1px solid rgba(255, 255, 255, .08);
}
.canvas::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--grad); z-index: 1; }
.canvas-cab {
  display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 6px 20px;
  padding: 30px clamp(20px, 2.4vw, 34px) 22px; border-bottom: 1px solid var(--linha-escura);
}
.canvas-tit { font: 400 clamp(24px, 1vw + 14px, 30px)/1.15 var(--f-tit); letter-spacing: -.02em; color: #fff; }
.canvas-ref { font-size: 15px; color: var(--apoio-escuro); }
.canvas-campos {
  list-style: none; display: grid; gap: 1px; background: var(--linha-escura);
  flex: 1 1 auto;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: minmax(220px, 1fr) minmax(200px, 1fr);
}
.canvas-campos li {
  display: flex; flex-direction: column; gap: 8px; background: var(--n800);
  padding: 22px clamp(18px, 1.8vw, 26px) 24px;
}
.canvas-campos li::after {
  content: ""; flex: 1 1 auto; min-height: 68px; margin-top: 12px;
  background-image: repeating-linear-gradient(to bottom, transparent 0 33px, rgba(255, 255, 255, .11) 33px 34px);
}
.cc-num { font: 300 15px/1 var(--f-tit); letter-spacing: .02em; color: var(--ciano); font-variant-numeric: tabular-nums; }
.cc-nome { font: 400 clamp(19px, .6vw + 12px, 22px)/1.22 var(--f-tit); letter-spacing: -.015em; color: #fff; max-width: 22ch; }
.cc-problema { grid-column: 1; grid-row: 1 / span 2; }
.cc-usuario { grid-column: 2; grid-row: 1; }
.cc-entradas { grid-column: 3; grid-row: 1; }
.cc-saidas { grid-column: 4; grid-row: 1; }
.cc-limites { grid-column: 2; grid-row: 2; }
.cc-criterios { grid-column: 3 / span 2; grid-row: 2; }

.projeto-lado { display: flex; flex-direction: column; }
.lado-tit { margin: 0 0 14px; font: 400 21px/1.25 var(--f-tit); letter-spacing: -.015em; color: #fff; }
.lado-tit + .lista-lente { margin-bottom: 30px; }
.projeto-lado .lista-lente li { font-size: 16.5px; line-height: 1.5; color: var(--corpo-escuro); }
.projeto-lado .botao { margin-top: auto; align-self: flex-start; }

/* --- Objetivos */
.objetivos-cab .h2-grande { max-width: 20ch; }
.obj-lista {
  list-style: none; 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, 88px);
  margin-top: clamp(40px, 5vw, 64px);
}
.obj-lista li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; padding: 24px 0; border-top: 1px solid var(--linha); }
.obj-lista li:nth-child(5), .obj-lista li:nth-child(10) { border-bottom: 1px solid var(--linha); }
.obj-num { font: 300 40px/1 var(--f-tit); letter-spacing: -.03em; color: var(--violeta-texto); font-variant-numeric: tabular-nums; }
.obj-lista p { margin: 0; font-size: 16.5px; line-height: 1.6; }
.obj-lista strong { color: var(--titulo); }

/* --- Programa (padrão do Orçamento) */
.mod-lista {
  list-style: none; 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);
}
.mod-lista li { border-top: 1px solid var(--linha); }
.mod-lista li:nth-child(3), .mod-lista li:nth-child(6) { border-bottom: 1px solid var(--linha); }
.mod-link {
  display: grid; grid-template-columns: 72px minmax(0, 1fr) auto 46px; align-items: center; gap: 18px;
  padding: 22px 14px; color: inherit; text-decoration: none; transition: background-color .15s ease;
}
.mod-link:hover { background-color: var(--nevoa); }
.mod-num { font: 300 46px/1 var(--f-tit); letter-spacing: -.04em; color: var(--violeta-texto); font-variant-numeric: tabular-nums; }
.mod-rot { display: block; margin-bottom: 4px; font-size: 15px; font-weight: 500; color: var(--apoio); }
.mod-tit { display: block; font: 500 19px/1.3 var(--f-tit); letter-spacing: -.01em; color: var(--titulo); text-wrap: balance; }
.mod-qt { font-size: 15px; color: var(--apoio); white-space: nowrap; }
.mod-seta {
  display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
  border: 1.5px solid var(--linha); color: var(--titulo); transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.mod-link:hover .mod-seta { background-color: var(--n900); border-color: var(--n900); color: #fff; }

/* --- Supervisão humana (faixa colorida) */
.faixa-cor { background: var(--grad-faixa); color: #fff; overflow: hidden; }
.faixa-cor .recipiente { position: relative; }
.lente-gigante {
  position: absolute; width: clamp(560px, 60vw, 1080px); height: auto; right: -9%; top: 50%;
  transform: translateY(-50%); color: rgba(255, 255, 255, .075); pointer-events: none;
}
.cartaz-frase {
  max-width: 17ch; font: 300 clamp(38px, 3.4vw + 14px, 80px)/1.04 var(--f-tit); letter-spacing: -.035em; color: #fff; text-wrap: balance;
}
.sup-colunas {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 64px);
  margin-top: clamp(48px, 5vw, 80px); padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, .32);
}
.sup-colunas h3 { margin: 0 0 10px; font: 400 22px/1.25 var(--f-tit); letter-spacing: -.015em; color: #fff; }
.sup-colunas p { margin: 0; max-width: 38ch; font-size: 16.5px; line-height: 1.6; color: rgba(255, 255, 255, .92); }
.sup-ferramentas {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px;
  margin-top: clamp(36px, 4vw, 56px); padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .32);
}
.sf-rot, .sf-nota { margin: 0; font-size: 16px; color: rgba(255, 255, 255, .92); }
.sf-nota { flex: 1 1 100%; }
.sf-rot { font-weight: 600; color: #fff; }
.sf-lista { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.sf-lista li { padding: 7px 15px; border: 1.5px solid rgba(255, 255, 255, .55); border-radius: 999px; font-size: 15.5px; font-weight: 500; line-height: 1.2; }

/* --- Professor */
.professor-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 112px); align-items: start; }
.prof-foto { position: relative; display: grid; place-items: center; width: min(100%, 560px); aspect-ratio: 1; justify-self: center; }
/* a foto acompanha a coluna longa (sticky = só posicionamento, sem animação); no celular volta a empilhar */
@media (min-width: 961px) { .prof-foto { position: sticky; top: calc(var(--cab-h) + 24px); margin-top: -32px; } }
.prof-aneis { position: absolute; inset: 0; width: 100%; height: 100%; color: rgba(90, 43, 196, .2); pointer-events: none; }
.prof-circulo { position: relative; width: 84%; max-width: 470px; aspect-ratio: 1; padding: 5px; border-radius: 50%; background: var(--grad); }
.prof-circulo img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 6px solid #fff; background: var(--nevoa); }
.rotulo + .prof-nome { margin-top: -4px; }
.prof-nome { font: 400 clamp(46px, 4vw + 14px, 92px)/1 var(--f-tit); letter-spacing: -.04em; color: var(--titulo); }
.prof-cargo { margin: 16px 0 24px; font: 500 18px/1.45 var(--f-txt); color: var(--violeta-texto); }
.prof-texto > .leitura { font-size: 17px; }
.marcos { list-style: none; margin: 34px 0 38px; }
.marcos li {
  display: grid; grid-template-columns: minmax(0, 205px) minmax(0, 1fr); gap: 8px 24px; align-items: baseline;
  padding: 18px 0; border-top: 1px solid var(--linha);
}
.marcos li:last-child { border-bottom: 1px solid var(--linha); }
.marco-lead { font: 300 clamp(30px, 1.4vw + 14px, 40px)/1.05 var(--f-tit); letter-spacing: -.03em; color: var(--titulo); white-space: nowrap; }
.marco-seta { font-weight: 200; color: var(--violeta-texto); }
.marco-txt { font-size: 16px; line-height: 1.55; color: var(--corpo); }

/* --- Público-alvo */
.publico-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.publico-cab .h2-grande { max-width: 14ch; }
.pub-lista { list-style: none; }
.pub-lista li {
  display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 14px; align-items: baseline;
  padding: 20px 0; border-top: 1px solid var(--linha-escura); font-size: 18px; line-height: 1.45; color: #fff;
}
.pub-lista li:last-child { border-bottom: 1px solid var(--linha-escura); }
.pub-num { font: 300 24px/1 var(--f-tit); letter-spacing: -.02em; color: var(--ciano); font-variant-numeric: tabular-nums; }

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

/* --- Local (Foz do Iguaçu) */
.local { color: #fff; background: var(--n900); overflow: hidden; }
.local-fundo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.local::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(13, 11, 41, .86) 0%, rgba(13, 11, 41, .6) 48%, rgba(13, 11, 41, .3) 100%);
}
.local-grade { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 112px); align-items: center; }
.local-texto { container-type: inline-size; }
.local-tit { font: 400 clamp(32px, 12.4cqi, 84px)/1 var(--f-tit); letter-spacing: -.04em; color: #fff; white-space: nowrap; }
.local-data { margin: 20px 0 10px; font-size: 18px; color: #fff; }
.local-hotel { margin: 0 0 32px; font-size: 17px; color: rgba(255, 255, 255, .82); }
.lh-rot { font-weight: 600; color: #fff; }
.local-horarios { padding: clamp(24px, 3vw, 40px); border-radius: var(--raio); background: var(--n900); border: 1px solid rgba(255, 255, 255, .1); }
.lh-tit { margin: 0 0 8px; font: 400 26px/1.2 var(--f-tit); color: #fff; }

/* --- Galeria */
.galeria-cab { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: clamp(28px, 3vw, 44px); }
.galeria-cab p { margin: 0; color: var(--apoio); }
.galeria-grade { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(10px, 1.4vw, 20px); }
.galeria-grade img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; background: var(--nevoa); }

/* ============================================================ 7. componentes */
/* painel (preço, pagamento, contato) */
.painel { position: relative; overflow: hidden; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: clamp(26px, 3vw, 48px); }
.painel h3 { font: 400 clamp(24px, 1vw + 14px, 30px)/1.15 var(--f-tit); letter-spacing: -.02em; color: var(--titulo); }

/* preço */
.preco::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: var(--grad); }
.preco-rot { margin: 0; font-size: 15px; font-weight: 600; color: var(--violeta-texto); }
.preco-valor {
  margin: 10px 0 0; font: 200 clamp(60px, 5vw + 22px, 124px)/1 var(--f-tit); letter-spacing: -.045em; color: var(--titulo);
  white-space: nowrap; font-variant-numeric: tabular-nums;
}
.preco-moeda { display: inline-block; margin-right: -.1em; font-size: .34em; font-weight: 300; letter-spacing: 0; vertical-align: 1.05em; }
.preco-por { margin: 12px 0 26px; font-size: 16px; color: var(--apoio); }
.preco h3.preco-inc-tit { margin: 34px 0 16px; padding-top: 28px; border-top: 1px solid var(--linha); font-size: 20px; }
.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: 16px; 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: 10px 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: 400 19px/1.3 var(--f-tit); letter-spacing: -.005em; color: var(--titulo); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.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: 999px; background: var(--branco); color: var(--titulo); 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(--n900); }
.copiar-item .ic-ok, .copiar-item .copiar-ok-txt { display: none; }
.copiar-item.ok { background: var(--n900); border-color: var(--n900); color: #fff; }
.copiar-item.ok .ic-copiar { display: none; }
.copiar-item.ok .ic-ok, .copiar-item.ok .copiar-ok-txt { display: inline; }
.copiar-item.ok .ic-ok { display: block; }
.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(--n900); border-radius: 18px; background: transparent; color: var(--titulo); 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(--n900); 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: .8; }
.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 */
.horarios { width: 100%; }
.horarios th {
  padding: 0 0 10px; text-align: left; font: 500 15px/1.3 var(--f-txt); color: rgba(255, 255, 255, .66);
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}
.horarios td { padding: 13px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); font-size: 17px; line-height: 1.35; color: #fff; vertical-align: baseline; }
.horarios tr:last-child td { border-bottom: 0; }
.h-hora { padding-right: 24px !important; font: 300 21px/1.2 var(--f-tit) !important; letter-spacing: -.01em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.h-obs { display: inline-block; margin-left: 6px; font-size: 15px; color: var(--ciano); }
.secao-branca .horarios th, .secao-nevoa .horarios th { color: var(--apoio); border-color: var(--linha); }
.secao-branca .horarios td, .secao-nevoa .horarios td { color: var(--titulo); border-color: var(--linha); }
.secao-branca .h-obs, .secao-nevoa .h-obs { color: var(--violeta-texto); }

/* contagem regressiva */
.contagem { display: flex; align-items: center; gap: 14px; flex: none; }
.contagem-rot { margin: 0; font-size: 15px; color: rgba(255, 255, 255, .66); }
.contagem-lista { display: flex; gap: 6px; list-style: none; }
.contagem-lista li {
  display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 62px; padding: 8px 6px 7px;
  border: 1px solid rgba(255, 255, 255, .16); border-radius: 14px;
}
.contagem-lista span { font: 300 27px/1 var(--f-tit); letter-spacing: -.02em; color: #fff; font-variant-numeric: tabular-nums; }
.contagem-lista small { margin-top: 4px; font-size: 13.5px; line-height: 1; color: rgba(255, 255, 255, .66); }
.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: 50%; background: var(--nevoa); color: var(--violeta-texto); }
.canal-ic .ic { width: 20px; height: 20px; }
.canal-rot { margin: 0; font-size: 15px; color: var(--apoio); }
.canal-valor { margin: 0; font: 400 19px/1.3 var(--f-tit); color: var(--titulo); }
.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) — usado na página programacao.html */
.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: 999px; background: var(--branco);
  font: 600 15px/1 var(--f-txt); color: var(--titulo); cursor: pointer; transition: border-color .15s ease, background-color .15s ease;
}
.ac-ferramentas button:hover { border-color: var(--n900); }
.acordeao { border-top: 1px solid var(--linha); }
.ac-item { border-bottom: 1px solid var(--linha); }  /* o recuo vem do scroll-padding-top do html */
.ac-cab { margin: 0; font: inherit; letter-spacing: 0; }
.ac-botao {
  display: grid; grid-template-columns: 76px 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(--nevoa); }
.ac-num { font: 300 48px/1 var(--f-tit); letter-spacing: -.04em; color: var(--violeta-texto); font-variant-numeric: tabular-nums; }
.ac-rot { display: block; margin-bottom: 4px; font-size: 15px; font-weight: 500; color: var(--apoio); }
.ac-tit { display: block; font: 500 clamp(19px, .5vw + 14px, 23px)/1.3 var(--f-tit); letter-spacing: -.01em; color: var(--titulo); }
.ac-qt { font-size: 15px; color: var(--apoio); white-space: nowrap; }
.ac-ic { position: relative; width: 46px; height: 46px; border-radius: 50%; 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(--titulo); border-radius: 2px; }
.ac-ic::after { transform: rotate(90deg); }
.ac-botao[aria-expanded="true"] .ac-ic { background: var(--n900); border-color: var(--n900); }
.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(76px + 20px + 12px); }
.ac-topicos { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 48px); }
.ac-topicos li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 10px; padding: 14px 0; border-top: 1px solid var(--linha); font-size: 16px; line-height: 1.55; }
.ac-n { font: 400 16px/1.55 var(--f-tit); color: var(--violeta-texto); font-variant-numeric: tabular-nums; }

/* ============================================================ 8. rodapé, barra fixa, WhatsApp */
.rodape { position: relative; padding-top: clamp(56px, 6vw, 88px); background: var(--n900); color: rgba(255, 255, 255, .75); font-size: 15.5px; }
.rodape::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad); }
.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 36px; }
.realizacao-item p { margin: 0 0 10px; font-size: 15px; color: rgba(255, 255, 255, .66); }
.realizacao-item a { display: inline-flex; align-items: center; min-height: 44px; }
.logo-contagov { width: 156px; height: auto; }
.logo-np { width: 112px; height: auto; }
.rodape-col h2 { margin: 0 0 10px; font: 500 17px/1.3 var(--f-tit); letter-spacing: -.01em; color: #fff; }
.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(--ciano); }
.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: 50%; }
.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 rgba(255, 255, 255, .12);
  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(--n900); color: #fff;
  transform: translateY(100%); visibility: hidden; box-shadow: 0 -10px 26px rgba(4, 3, 18, .28);
}
.barra-on .barra-inscricao { transform: none; visibility: visible; }
.barra-inscricao::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad); }
.barra-in { display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); padding-block: 13px 12px; }
.barra-logo { height: 46px; width: auto; flex: none; }
@media (max-width: 1100px) { .barra-logo { display: none; } }
.barra-txt { flex: 1 1 auto; min-width: 0; }
.barra-tit { margin: 0; font: 400 18px/1.25 var(--f-tit); letter-spacing: -.01em; }
.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 27px/1 var(--f-tit); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.barra-por { font-size: 15px; color: rgba(255, 255, 255, .66); }
.barra-inscricao .botao { flex: none; min-height: 48px; padding: 12px 22px; }

.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(4, 3, 18, .3);
  visibility: hidden; opacity: 0; transition: background-color .15s ease;
}
.whats-flutuante .ic { width: 30px; height: 30px; }
.whats-flutuante:hover { background: #1EBE5A; }
.rolou .whats-flutuante { visibility: visible; opacity: 1; }
.barra-on .com-barra .whats-flutuante { bottom: calc(var(--barra-h, 76px) + 14px); }
/* o WhatsApp nunca cobre a linha do © no fim da página: reserva à direita */
@media (max-width: 1520px) { .rodape-base { padding-right: 84px; } }

/* ============================================================ 9. internas: topo curto (fase 2) */
.topo { position: relative; overflow: hidden; color: #fff; background: linear-gradient(180deg, #0D0B29 0%, #19124A 100%); padding-bottom: 6px; }
.topo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--grad); }
.topo-in { position: relative; z-index: 1; padding-block: clamp(40px, 5vw, 76px); }
.trilha { display: flex; flex-wrap: wrap; gap: 4px 10px; list-style: none; margin-bottom: 18px; font-size: 15px; color: rgba(255, 255, 255, .66); }
.trilha a { display: inline-flex; align-items: center; min-height: 44px; color: rgba(255, 255, 255, .85); text-decoration: none; }
.trilha a:hover { color: #fff; text-decoration: underline; }
.trilha li + li::before { content: "/"; margin-right: 10px; color: rgba(255, 255, 255, .4); }
.trilha li { display: inline-flex; align-items: center; }
.topo h1 { font: 400 clamp(40px, 3.6vw + 16px, 80px)/1.04 var(--f-tit); letter-spacing: -.035em; color: #fff; max-width: 20ch; }
.topo-sub { margin: 16px 0 0; max-width: 60ch; font-size: 18px; color: rgba(255, 255, 255, .82); }
.topo-arte {
  position: absolute; right: max(-160px, calc((100vw - 1320px) / 2 - 140px)); top: 50%; transform: translateY(-50%);
  width: clamp(380px, 40vw, 640px); height: auto; color: var(--anel); pointer-events: none;
}
.topo .rotulo { margin-bottom: 10px; }
.topo-botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.trilha a { justify-content: center; min-width: 44px; }

/* --- páginas internas */
.h2-medio { font: 400 clamp(28px, 1.4vw + 14px, 40px)/1.12 var(--f-tit); letter-spacing: -.02em; color: var(--titulo); }
.secao-escura .h2-medio { color: #fff; }
.horarios-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.horarios-nota { margin: 18px 0 28px; font-size: 17px; line-height: 1.6; }
.secao-escura .horarios-nota { color: var(--corpo-escuro); }
.lh-rot-claro { font-weight: 600; color: var(--titulo); }
.secao-escura .contagem { flex-wrap: wrap; }

.cta-final { padding-block: clamp(56px, 6vw, 96px); }
.cta-grade { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 28px 48px; }
.cta-tit { max-width: 20ch; font: 300 clamp(30px, 2.4vw + 12px, 54px)/1.08 var(--f-tit); letter-spacing: -.03em; color: #fff; }
.cta-botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.botao-branco { background: #fff; color: var(--n900); }
.botao-branco:hover { background: var(--nevoa-2); }

.marcos-escuro { margin: 0; }
.marcos-escuro li { border-color: var(--linha-escura); }
.marcos-escuro li:last-child { border-bottom-color: var(--linha-escura); }
.marcos-escuro .marco-lead { color: #fff; }
.marcos-escuro .marco-seta { color: var(--ciano); }
.marcos-escuro .marco-txt { color: var(--corpo-escuro); }
.prof-texto .h2-grande { margin-top: -4px; }

.duas-colunas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(40px, 6vw, 112px); align-items: start; }
.livros, .formacao { list-style: none; margin-top: 26px; }
.livros li, .formacao li { padding: 18px 0; border-top: 1px solid var(--linha); }
.livros li:last-child, .formacao li:last-child { border-bottom: 1px solid var(--linha); }
.livros li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.livro-num { font: 300 24px/1 var(--f-tit); color: var(--violeta-texto); font-variant-numeric: tabular-nums; }
.livros cite { font: 400 20px/1.35 var(--f-tit); font-style: normal; letter-spacing: -.01em; color: var(--titulo); }
.formacao li { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 6px 20px; align-items: baseline; }
.form-inst { font: 500 18px/1.3 var(--f-tit); color: var(--titulo); }
.form-txt { font-size: 16.5px; line-height: 1.5; }

.contato-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.contato-grade .h2-medio { margin-bottom: 24px; }
.contato-intro { margin: 14px 0 0; max-width: 40ch; color: var(--apoio); }
.contato-extra { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 28px 36px; margin-top: 40px; }
.extra-tit { margin: 0 0 4px; font: 500 17px/1.3 var(--f-tit); color: var(--titulo); }
.extra-lista { list-style: none; }
.contato-extra .link-seta .ic { width: 15px; height: 15px; }
.redes-claro { display: flex; gap: 8px; list-style: none; margin-top: 6px; }
.redes-claro a { display: grid; place-items: center; width: 44px; height: 44px; border: 1.5px solid var(--linha); border-radius: 50%; color: var(--titulo); transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.redes-claro a:hover { background: var(--n900); border-color: var(--n900); color: #fff; }
.redes-claro .ic { width: 19px; height: 19px; }
.painel-local {
  position: relative; overflow: hidden; padding: clamp(28px, 3vw, 44px); border-radius: var(--raio);
  background: var(--n900); color: #fff;
}
.painel-local::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--grad); }
.painel-local .rotulo { color: var(--ciano); }
.painel-local-tit { font: 400 clamp(30px, 1.6vw + 18px, 46px)/1.05 var(--f-tit); letter-spacing: -.03em; color: #fff; white-space: nowrap; }
.local-dados { margin: 22px 0 28px; }
.local-dados > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-top: 1px solid var(--linha-escura); }
.local-dados dt { font-size: 15px; color: var(--apoio-escuro); }
.local-dados dd { margin: 0; font-size: 17px; color: #fff; }
.painel-local :focus-visible { outline-color: var(--ciano); }

/* ============================================================ 10. responsivo */
@media (min-width: 2000px) {
  html { zoom: 1.12; }
}
@media (max-width: 1240px) {
  .hero-lente { max-width: 430px; }
  .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; }
}
@media (max-width: 1200px) {
  .hero-faixa-in { flex-wrap: wrap; }
  .faixa-info { flex: 1 1 100%; justify-content: space-between; }
  .contagem { flex: 1 1 100%; justify-content: flex-start; }
}
@media (max-width: 1100px) {
  .canvas-campos { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; }
  .cc-problema { grid-column: 1; grid-row: 1 / span 2; }
  .cc-usuario { grid-column: 2; grid-row: 1; }
  .cc-entradas { grid-column: 3; grid-row: 1; }
  .cc-saidas { grid-column: 2; grid-row: 2; }
  .cc-limites { grid-column: 3; grid-row: 2; }
  .cc-criterios { grid-column: 1 / span 3; grid-row: 3; }
  .canvas-campos li { min-height: 190px; }
  .projeto-grade { grid-template-columns: minmax(0, 1fr); }
  .projeto-lado { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .projeto-lado .lado-tit:nth-of-type(1) { grid-column: 1; grid-row: 1; }
  .projeto-lado .lista-lente:nth-of-type(1) { grid-column: 1; grid-row: 2; }
  .projeto-lado .lado-tit:nth-of-type(2) { grid-column: 2; grid-row: 1; }
  .projeto-lado .lista-lente:nth-of-type(2) { grid-column: 2; grid-row: 2; }
  .projeto-lado .botao { grid-column: 1; grid-row: 3; }
  .marcos li { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1040px) {
  :root { --cab-h: 72px; }
  .marca img { height: 44px; }
  .menu-botao {
    display: grid; place-items: center; width: 48px; height: 48px; margin-right: -6px; padding: 0;
    border: 0; border-radius: 50%; 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;
    padding: 18px var(--gutter) 40px; background: var(--n900); border-top: 1px solid var(--linha-escura);
  }
  .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; min-height: 64px; padding: 0; font: 400 26px/1.2 var(--f-tit); letter-spacing: -.015em; 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(--ciano); }
}
@media (max-width: 960px) {
  .sobre-grade, .projeto-cab, .publico-grade, .local-grade, .professor-grade { grid-template-columns: minmax(0, 1fr); }
  .sobre-cab .h2-grande, .publico-cab .h2-grande { max-width: 22ch; }
  .projeto-cab { align-items: start; }
  .obj-lista, .mod-lista { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .obj-lista li:nth-child(5) { border-bottom: 0; }
  .mod-lista li:nth-child(3) { border-bottom: 0; }
  .sup-colunas { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .investimento-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-foto { width: min(100%, 460px); }
  .marcos li { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
  .rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rodape-marca { grid-column: 1 / -1; }
  .rodape-grade > :last-child { grid-column: auto; }
  .lente-gigante { right: -40%; width: 760px; }
  .ac-topicos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 960px) {
  .horarios-grade, .contato-grade, .duas-colunas { grid-template-columns: minmax(0, 1fr); }
  .cta-grade { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  .topo-arte { width: 320px; right: -150px; top: 24px; transform: none; }
  .topo-c { display: none; }
  .formacao li { grid-template-columns: minmax(0, 1fr); }
  .cta-botoes .botao { flex: 1 1 100%; }
}
@media (max-width: 900px) {
  .topbar { display: none; }
  .faixa-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
}
@media (max-width: 860px) {
  .barra-info, .barra-por { display: none; }
}
@media (max-width: 760px) {
  .hero-grade { grid-template-columns: minmax(0, 1fr); padding-block: 36px 40px; gap: 36px; }
  .hero-lente { justify-self: center; max-width: 330px; }
  .lente-selo { bottom: 4%; }
  .faixa-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
  .faixa-info li { align-items: flex-start; }
  .fi-val { white-space: normal; }
  .contagem { flex-wrap: wrap; }
  .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 0; margin-top: 48px; }
  .numeros li, .numeros li:first-child { padding: 24px 16px 26px 0; border-left: 0; border-top: 1px solid var(--linha); }
  .numeros li:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--linha); }
  .canvas-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .canvas-campos li { grid-column: auto !important; grid-row: auto !important; min-height: 170px; }
  .projeto-lado { display: flex; }
  .mod-link { grid-template-columns: 52px minmax(0, 1fr) 44px; gap: 14px; padding: 20px 4px; }
  .mod-num { font-size: 38px; }
  .mod-qt { grid-column: 2; grid-row: 2; margin-top: -8px; }
  .mod-seta { grid-column: 3; grid-row: 1 / span 2; width: 44px; height: 44px; }
  .marcos li { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .galeria-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .barra-logo { display: none; }
  .ac-botao { grid-template-columns: 52px minmax(0, 1fr) 44px; gap: 14px; padding: 20px 4px; }
  .ac-num { font-size: 38px; }
  .ac-qt { grid-column: 2; grid-row: 2; margin-top: -8px; }
  .ac-ic { grid-column: 3; grid-row: 1 / span 2; width: 44px; height: 44px; }
  .ac-corpo { padding: 0 4px 26px; }
  .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; }
}
@media (max-width: 560px) {
  .barra-tit { font-size: 16px; }
  .barra-valor { font-size: 22px; }
  .barra-inscricao .botao { padding: 12px 16px; min-height: 46px; }
  .barra-inscricao .botao .ic-seta { display: none; }
  .whats-flutuante { width: 52px; height: 52px; }
  .rodape-base { padding-right: 64px; }
  .rodape-grade { grid-template-columns: minmax(0, 1fr); }
  .hero-botoes .botao { flex: 1 1 100%; }
  .canvas-campos li { min-height: 150px; padding: 18px 16px 18px; }
  .canvas-campos li::after { min-height: 48px; }
  .cc-nome { font-size: 18px; }
  .botoes-centro .botao { flex: 1 1 100%; }
  .pub-lista li { grid-template-columns: 40px minmax(0, 1fr); font-size: 17px; }
  .pub-num { font-size: 21px; }
  .fi-val { font-size: 17px; }
  .faixa-info { gap: 16px 12px; }
  .faixa-info li { gap: 10px; }
  .faixa-info .ic { width: 22px; height: 22px; }
  .contagem-lista li { min-width: 58px; }
}
@media (max-width: 560px) {
  .painel .horarios, .local-horarios .horarios { font-size: 16px; }
  .h-hora { padding-right: 12px !important; font-size: 18px !important; }
  .horarios td { font-size: 16px; }
  .h-obs { display: block; margin-left: 0; }
  .local-horarios, .horarios-grade .painel { padding: 22px 18px; }
}
@media (max-width: 400px) {
  .barra-txt { display: none; }
  .barra-in { justify-content: space-between; }
  .cartaz-data { font-size: 54px; }
}
@media (max-width: 359px) {
  .faixa-info, .canvas-campos { grid-template-columns: minmax(0, 1fr); }
}
/* notebooks de tela baixa (1366×657, 1280×610…): hero + faixa cabem na primeira tela */
@media (max-height: 760px) and (min-width: 761px) {
  .topbar { display: none; }
  :root { --cab-h: 80px; }
  .marca img { height: 58px; }
  .hero-grade { padding-block: 22px 18px; }
  .hero-h1 { font-size: clamp(34px, 2.4vw + 12px, 52px); }
  .hero-pre { margin-bottom: 8px; font-size: 19px; }
  .hero-sub { margin-top: 14px; font-size: 17px; }
  .hero-data { margin-top: 18px; }
  .cartaz-data { font-size: clamp(54px, 3.6vw + 16px, 78px); }
  .hero-botoes { margin-top: 20px; }
  .hero-lente { max-width: min(430px, 64vh); }
  .hero-faixa-in { padding-block: 12px; }
  .contagem-lista li { padding-block: 6px 5px; }
  .contagem-lista span { font-size: 24px; }
}
@media (max-height: 520px) and (max-width: 1040px) {
  .cabecalho { position: relative; }
}
/* ============================================================ 11. Rodada 2 — responsividade (27/10)
   Correções dos 4 relatórios (desktop · notebook · tablet · celular) + decisões do orquestrador.
   Ids entre colchetes = item do registro _trabalho/provas/resp/correcoes.md (D = desktop, N = notebook, T = tablet,
   C = celular). Fica no fim do arquivo de propósito: vence as regras anteriores de mesma especificidade. */

/* --- [D3] medida de leitura ≈ 60–68 letras por linha reais na Rethink Sans (66ch dava 81–87) */
.leitura p, p.leitura { max-width: 51ch; }
.projeto-lead { max-width: 50ch; }
.topo-sub { text-wrap: balance; }                                         /* [D7] */

/* --- valores e dados que nunca quebram [T1][C5][T6][C6] */
.pag-dados dd { overflow-wrap: normal; white-space: nowrap; }
.canal-valor { white-space: nowrap; }
.local-dados dd { text-wrap: balance; }

/* --- [D10][N8][T7] links da topbar com área de toque de 44px sem mudar a altura da faixa */
.topbar p a { display: inline-block; padding-block: 12px; margin-block: -12px; }

/* --- [D11] símbolo dos topos internos ancorado na borda direita do container */
.topo-arte { right: max(-120px, calc((100vw - 1320px) / 2 - 60px)); }

/* --- [D6] contagem na 2ª linha da faixa: alinhada à direita, com filete — parece intencional */
@media (max-width: 1200px) and (min-width: 901px) {
  .contagem { justify-content: flex-end; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .1); }
}

/* --- preço nunca encosta/passa do painel em telas grandes (≥1920 e 2560 com zoom) */
.preco-valor { font-size: clamp(60px, 4vw + 20px, 108px); }

/* --- [T12] canvas: "Limites de atuação" numa linha na grade de 4 colunas */
@media (min-width: 1101px) { .cc-limites .cc-nome { white-space: nowrap; } }

/* --- WhatsApp (decisão 4): nas páginas COM barra ele fica ENCAIXADO na própria barra fixa (lado direito), aparece junto
   com ela (>300px) e por isso nunca fica sobre texto ou controles; a barra reserva o espaço dele.
   Na inscrição (sem barra) continua flutuante: em 761–1480px o conteúdo do <main> ganha margens laterais que acomodam o
   botão; ≤760px ele não aparece (a página tem o bloco "Fale com a ContaGov" com WhatsApp e o menu também tem). [D2][N5] */
.com-barra .whats-flutuante { bottom: calc((var(--barra-h, 72px) - 3px - 52px) / 2); width: 52px; height: 52px; box-shadow: none; }
.com-barra .whats-flutuante .ic { width: 28px; height: 28px; }
html:not(.barra-on) .com-barra .whats-flutuante { visibility: hidden; opacity: 0; }
.barra-on .com-barra .whats-flutuante { bottom: calc((var(--barra-h, 72px) - 3px - 52px) / 2 + 1.5px); }
@media (max-width: 1480px) {
  .com-barra .barra-in { padding-right: 52px; }
  .com-barra .whats-flutuante { right: max(12px, calc(var(--gutter) - 8px)); }
}
@media (min-width: 761px) and (max-width: 1480px) {
  .sem-barra main .recipiente, .sem-barra .rodape .recipiente { width: min(100% - 2 * 84px, 1320px); }
}
@media (max-width: 760px) {
  .sem-barra .whats-flutuante { display: none; }
  .com-barra .whats-flutuante { width: 46px; height: 46px; bottom: calc((var(--barra-h, 64px) - 3px - 46px) / 2 + 1.5px) !important; right: 10px; }
  .com-barra .whats-flutuante .ic { width: 26px; height: 26px; }
  .com-barra .barra-in { padding-right: 46px; }
}

/* --- menu de tela cheia: tudo à esquerda [T2][C-M4] + trava de rolagem também no html [C-B6] */
@media (max-width: 1040px) {
  .menu-lista a { justify-content: flex-start; min-width: 0; }
  html:has(body.menu-aberto) { overflow: hidden; }
  .menu { overscroll-behavior: contain; }
}

/* --- canais de contato no celular: a ação ("Ligar", "Conversar", "Escrever") desce para baixo do valor [C-A6][T6] */
@media (max-width: 760px) {
  .canais li { grid-template-columns: 48px minmax(0, 1fr); }
  .canal-acao { grid-column: 2; justify-self: start; margin-top: -6px; }
}
/* inscrição: bloco de contato com a coluna dos canais mais larga; painéis empilhados até 1240px (container mais estreito
   por causa do WhatsApp flutuante) [T1][T6] */
#contato-inscricao .contato-grade { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
@media (max-width: 1240px) { .sem-barra .investimento-grade { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1100px) { #contato-inscricao .contato-grade { grid-template-columns: minmax(0, 1fr); } }

/* --- tablet 900–1100 [T3][T4][T1][T6][T9][T10] */
@media (max-width: 1100px) {
  .mod-lista { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .mod-lista li:nth-child(3) { border-bottom: 0; }
  .projeto-lado .botao { justify-self: start; }
  .investimento-grade { grid-template-columns: minmax(0, 1fr); }
  .contato-grade { grid-template-columns: minmax(0, 1fr); }
  .contato-extra { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
}
@media (min-width: 961px) and (max-width: 1240px) {
  .rodape-grade { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.3fr); }
  .rodape-marca { grid-column: 1; grid-row: 1 / span 2; }
  .rodape-grade > :nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
  .rodape-grade > :nth-child(3) { grid-column: 3; grid-row: 1; }
  .rodape-grade > :last-child { grid-column: 3; grid-row: 2; }
}
/* [T5] hero a 761–860: texto mais largo, H1 nas 3 linhas da logo, botões lado a lado */
@media (min-width: 761px) and (max-width: 860px) {
  .hero-grade { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; }
  .hero-h1 { font-size: 34px; }
  .hero-linha { white-space: nowrap; }
  .hero-botoes .botao { padding-inline: 18px; }
  .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 0; }               /* [T11] */
  .numeros li, .numeros li:first-child { padding: 24px 16px 26px 0; border-left: 0; border-top: 1px solid var(--linha); }
  .numeros li:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--linha); }
}

/* --- telas ≥2200px: escala maior para não ficar "pequeno no meio" [D5] */
@media (min-width: 2200px) { html { zoom: 1.22; } }

/* --- ALTURA (decisões 1, 2 e 3): degraus do hero por altura de tela, sem esconder conteúdo
   topbar some com altura ≤900px; telas de 761–900px de altura: respiros menores e cabeçalho 76px. */
@media (max-height: 900px) { .topbar { display: none; } }
@media (min-width: 761px) and (min-height: 761px) and (max-height: 900px) {
  :root { --cab-h: 76px; }
  .marca img { height: 52px; }
  .hero-grade { padding-block: 34px 26px; }
  .hero-sub { margin-top: 18px; }
  .hero-data { margin-top: 22px; }
  .hero-botoes { margin-top: 26px; }
  .hero-lente { max-width: min(480px, 58vh); }
  .barra-in { padding-block: 10px 9px; }
}
/* notebooks baixos (≤760px de altura): cabeçalho 68px (logo 48px) + barra compacta → cabeçalho + barra ≈ 19–21% [N1] */
@media (min-width: 761px) and (max-height: 760px) {
  :root { --cab-h: 68px; }
  .marca img { height: 48px; }
  .barra-in { padding-block: 8px 7px; }
  .barra-logo { height: 38px; }
  .barra-inscricao .botao { min-height: 44px; padding-block: 10px; }
  .topo-in { padding-block: 26px 34px; }                               /* [N6] */
  .trilha { margin-bottom: 4px; }
  .prof-circulo { max-width: min(470px, calc(100vh - var(--cab-h) - var(--barra-h, 64px) - 72px)); }   /* [N4] */
}
/* 761–1200 de largura e baixo: a faixa quebra em 2 linhas → hero mais compacto [N2][N9] */
@media (min-width: 761px) and (max-width: 1200px) and (max-height: 760px) {
  .hero-grade { padding-block: 14px 12px; }
  .hero-faixa-in { padding-block: 8px; row-gap: 8px; }
  .hero-data { margin-top: 12px; gap: 8px 18px; flex-wrap: nowrap; }
  .hero-data .pilula { padding: 8px 14px; }
  .cartaz-data { font-size: 54px; }
  .hero-botoes { margin-top: 16px; }
  .contagem { padding-top: 8px; }
  .contagem-lista li { padding-block: 4px 3px; }
  .contagem-lista span { font-size: 21px; }
  .faixa-info { row-gap: 8px; }
}
@media (min-width: 761px) and (max-width: 1100px) and (max-height: 760px) {
  :root { --cab-h: 66px; }
  .marca img { height: 46px; }
  .hero-grade { padding-block: 10px 8px; }
  .hero-sub { margin-top: 10px; }
  .hero-h1 { font-size: clamp(32px, 2.4vw + 10px, 40px); }
  .hero-lente { max-width: min(360px, 56vh); }
}
/* sticky do professor nunca por baixo da barra fixa (decisão 11) */
@media (min-width: 961px) {
  .prof-foto { width: min(100%, 560px, calc(100vh - var(--cab-h) - var(--barra-h, 72px) - 40px)); }
}

/* --- CELULAR retrato: cabeçalho 64px (logo 46px), barra ≤2 linhas; CTA "Inscreva-se" na 1ª dobra [C-A1][C-M7] */
@media (max-width: 760px) {
  :root { --cab-h: 64px; }
  .marca img { height: 46px; }
  .barra-in { padding-block: 7px 6px; gap: 12px; }
  .barra-inscricao .botao { min-height: 44px; padding-block: 10px; }
}
@media (max-width: 760px) and (max-height: 700px), (max-width: 400px) {
  :root { --cab-h: 60px; }
  .hero-grade { padding-block: 22px 32px; }
  .hero-pre { margin-bottom: 6px; font-size: 17px; }
  .hero-h1 { font-size: clamp(28px, 8.4vw + 2px, 34px); }
  .hero-sub { margin-top: 12px; font-size: 16.5px; }
  .hero-data { margin-top: 16px; gap: 10px 18px; }
  .cartaz-data { font-size: 46px; }
  .hero-botoes { margin-top: 18px; }
}
/* barra: ≤479 só preço + botão (+ WhatsApp encaixado); ≤400 só o botão (o preço está no hero e no investimento) [C-M1] */
@media (max-width: 479px) {
  .barra-txt { display: none; }
  .barra-in { justify-content: space-between; }
}
@media (max-width: 400px) {
  .barra-preco { display: none; }
  .barra-inscricao .botao { flex: 1 1 auto; }
}
@media (max-width: 400px) {
  .preco-valor { font-size: clamp(44px, 15vw, 60px); }                       /* [C-A3] */
  .painel { padding: 24px 20px; }                                           /* [C-A5] */
  .pag-dados dd { font-size: 17px; }
  .canal-valor { font-size: clamp(16px, 4.9vw, 17.5px); }
  .local-dados > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }   /* [C-A7] */
  .painel-local-tit { font-size: 28px; }
  .cartaz-frase { font-size: clamp(32px, 10vw, 40px); }                     /* [C-M3] */
  .faixa-info { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); column-gap: 10px; }
  .fi-val { font-size: 16px; }
  .mod-link, .ac-botao { grid-template-columns: 40px minmax(0, 1fr) 44px; gap: 10px; }   /* [C-M6] */
  .mod-num, .ac-num { font-size: 30px; }
  .obj-lista li { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
  .obj-num { font-size: 32px; }
  .ac-ferramentas { justify-content: center; }                              /* [C-B3] */
}
@media (max-width: 359px) {
  .botoes-centro .botao { padding-inline: 14px; gap: 8px; }                /* [C-M5] */
  .canvas-campos li { min-height: 112px; }                                  /* [C-B1] */
  .faixa-info { grid-template-columns: minmax(0, 1fr); }
}
/* horários viram blocos em telas estreitas (decisão 8) [C-A4] */
@media (max-width: 480px) {
  .horarios thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .horarios, .horarios tbody, .horarios tr, .horarios td { display: block; width: 100%; }
  .horarios tr { padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
  .secao-branca .horarios tr, .secao-nevoa .horarios tr { border-color: var(--linha); }
  .horarios tr:last-child { border-bottom: 0; }
  .horarios td { padding: 0; border: 0; }
  .h-hora { padding: 0 0 2px !important; font-size: 19px !important; }
  .h-obs { display: inline; margin-left: 6px; }
  .local-horarios, .horarios-grade .painel { padding: 20px 18px; }
}

/* --- CELULAR deitado (altura ≤520): hero em 2 colunas compacto; logo ≥46px; professor ao lado do texto [C-A2][C-M2][C-M8] */
@media (orientation: landscape) and (max-height: 520px) and (max-width: 1040px) {
  :root { --cab-h: 60px; }
  .marca img { height: 46px; }
  .hero-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 30%); align-items: center; padding-block: 12px 18px; gap: 20px; }
  .hero-lente { max-width: min(260px, 62vh); justify-self: end; }
  .hero-pre { margin-bottom: 2px; font-size: 15px; }
  .hero-h1 { font-size: clamp(24px, 2.6vw + 8px, 32px); }
  .hero-linha { white-space: normal; }
  .hero-sub { margin-top: 8px; max-width: none; font-size: 15.5px; line-height: 1.4; }
  .hero-data { margin-top: 10px; gap: 8px 16px; flex-wrap: wrap; }
  .cartaz-data { font-size: 38px; }
  .hero-data-txt { font-size: 15.5px; }
  .hero-data .pilula { padding-block: 6px; }
  .hero-botoes { margin-top: 12px; }
  .hero-botoes .botao { flex: 0 1 auto; min-height: 46px; padding-block: 11px; }
  .professor-grade { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .prof-foto { width: min(100%, 70vh); position: relative; top: auto; margin-top: 0; }
  .menu-lista a { min-height: 48px; font-size: 22px; }                     /* [C-B7] */
  .barra-txt { display: none; }
  .barra-in { justify-content: space-between; }
  .barra-in { padding-block: 6px 5px; }
}
/* foto do professor em telas baixas em 1 coluna: diâmetro também limitado pela altura (decisão 11) */
@media (max-width: 960px) and (max-height: 700px) {
  .prof-foto { width: min(100%, 460px, 72vh); }
}

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