/* ==========================================================================
   Masterclass de Sanções Administrativas: da governança à regulamentação
   Foz do Iguaçu/PR · 22 e 23 de fevereiro de 2027 — site v2, direção "Pórtico"
   Sem animação: nenhuma @keyframes, nenhuma transição além de cor (≤ .15s) em hover/foco.
   Sumário
     1. Tokens            2. Base              3. Tipografia e rótulos   4. Botões e links
     5. Topbar/cabeçalho  6. Hero              7. Contagem              8. Contexto
     9. Números          10. Dois regimes     11. Programa             12. Kit de modelos
    13. Professora       14. Justificativa    15. Investimento/pagamento 16. Foz + horários
    17. Galeria          18. Rodapé           19. Barra fixa + WhatsApp 20. Internas (topo, canais, acordeão)
    21. Responsivo
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
/* Ajustes de glifo (unicode-range — o navegador só baixa se o caractere aparecer):
   - "Ordinal": a Urbanist desenha º/ª como "o"/"a" sem elevação ("Lei no"); usa o º/ª da Manrope (mesmo arquivo já baixado).
   - "Mohave Zero": o 0 da Mohave é cortado (lê como Ø em preço/horário); usa só o 0 da Saira Condensed, de desenho igual. */
@font-face { font-family: "Ordinal"; font-style: normal; font-weight: 200 800; font-display: swap; unicode-range: U+00AA, U+00BA;
  src: url(https://fonts.gstatic.com/s/manrope/v20/xn7gYHE41ni1AdIRggexSg.woff2) format("woff2"); }
@font-face { font-family: "Mohave Zero"; font-style: normal; font-weight: 500; font-display: swap; unicode-range: U+0030;
  src: url(https://fonts.gstatic.com/s/sairacondensed/v12/EJRLQgErUN8XuHNEtX81i9TmEkrnUchQ962f.woff2) format("woff2"); }
@font-face { font-family: "Mohave Zero"; font-style: normal; font-weight: 600; font-display: swap; unicode-range: U+0030;
  src: url(https://fonts.gstatic.com/s/sairacondensed/v12/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9Q962f.woff2) format("woff2"); }
@font-face { font-family: "Mohave Zero"; font-style: normal; font-weight: 700; font-display: swap; unicode-range: U+0030;
  src: url(https://fonts.gstatic.com/s/sairacondensed/v12/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5Q962f.woff2) format("woff2"); }
:root {
  /* noites (escuros) */
  --n950: #120820;
  --n900: #1A0C2E;
  --n850: #22103D;
  --n800: #2E1652;
  --n700: #43207A;
  /* violeta e lilás */
  --violeta: #6C2FD6;
  --lilas: #F4EFFA;
  --linha: #E4DCEF;
  /* laranja da logo — nunca como texto pequeno sobre claro */
  --laranja: #EF7732;
  --brasa: #EF3F32;
  --degrade: linear-gradient(90deg, #EF7732 0%, #EF3F32 100%);
  --degrade-hover: linear-gradient(90deg, #F38B4C 0%, #F25A4D 100%);
  /* destaques de texto sobre claro */
  --roxo: #5B2A9E;
  --telha: #B23B17;
  /* textos sobre claro */
  --tit: #1D1030;
  --corpo: #4B4159;
  --apoio: #6F667D;
  /* textos sobre escuro */
  --tit-esc: #FFFFFF;
  --corpo-esc: #DCD2EC;
  --apoio-esc: rgba(255, 255, 255, .64);
  --linha-esc: rgba(255, 255, 255, .12);
  --whats: #25D366;
  /* fontes */
  --f-tit: "Ordinal", "Urbanist", "Segoe UI", system-ui, sans-serif;
  --f-txt: "Manrope", "Segoe UI", system-ui, sans-serif;
  --f-num: "Mohave Zero", "Mohave", "Arial Narrow", "Segoe UI", sans-serif;
  /* medidas */
  --max: 1320px;
  --respiro: clamp(16px, 4vw, 32px);
  --secao: clamp(64px, 7vw, 112px);
  --raio: 6px;
  --cab-h: 84px;
  --top-h: 38px;
  --foco: var(--roxo);
}

/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--cab-h) + 16px); }
body {
  margin: 0;
  font: 400 16.5px/1.65 var(--f-txt);
  color: var(--corpo);
  background: #FFFFFF;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote, address { margin: 0; }
ul, ol { padding: 0; list-style: none; }
address { font-style: normal; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; }
table { border-collapse: collapse; }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 3px; }
.escuro { --foco: var(--laranja); }
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.recipiente {
  width: 100%;
  max-width: calc(var(--max) + 2 * var(--respiro));
  margin-inline: auto;
  padding-inline: var(--respiro);
}
.secao { padding-block: var(--secao); }
.escuro { background: var(--n850); color: var(--corpo-esc); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.lilas { background: var(--lilas); }
.pular {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  padding: 12px 18px; border-radius: var(--raio);
  background: var(--laranja); color: var(--n900); font-weight: 700; text-decoration: none;
}
.pular:focus { top: 12px; }
.ic { flex: none; }

/* ---------- 3. Tipografia e rótulos ---------- */
h1, h2, h3 {
  font-family: var(--f-tit);
  font-weight: 600;
  color: var(--tit);
  letter-spacing: -.015em;
  text-wrap: balance;
}
h2 { font-size: clamp(32px, 2.1vw + 14px, 52px); line-height: 1.08; }
h3 { font-size: 22px; line-height: 1.25; letter-spacing: -.01em; }
.escuro h1, .escuro h2, .escuro h3 { color: var(--tit-esc); }
p { text-wrap: pretty; }
/* rótulo de seção: caixa mista, sem tracinho, sem ícone */
.rotulo { margin-bottom: 14px; font: 600 14.5px/1.4 var(--f-txt); color: var(--roxo); }
.escuro .rotulo { color: var(--laranja); }

/* ▶ da logo como marcador de lista */
.lista-seta li { position: relative; padding-left: 22px; }
.lista-seta li + li { margin-top: 10px; }
.lista-seta li::before {
  content: ""; position: absolute; left: 2px; top: .58em;
  width: .5em; height: .58em;
  background: var(--telha);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.escuro .lista-seta li::before { background: var(--laranja); }

/* ---------- 4. Botões e links ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 15px 24px;
  border: 1.5px solid transparent; border-radius: var(--raio);
  font: 700 15.5px/1.2 var(--f-txt);
  text-align: center; text-decoration: none;
  cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.botao .ic { width: 18px; height: 18px; }
.botao .ic-seta { width: 9px; height: 11px; }
.botao-luz { background: var(--degrade); color: var(--n900); }
.botao-luz:hover { background: var(--degrade-hover); }
.botao-escuro { background: var(--n800); color: #FFFFFF; }
.botao-escuro:hover { background: var(--n700); }
.botao-escuro .ic-seta { color: var(--laranja); }
.botao-contorno { border-color: var(--n800); color: var(--n800); }
.botao-contorno:hover { background: var(--n800); color: #FFFFFF; }
.botao-contorno-claro { border-color: rgba(255, 255, 255, .5); color: #FFFFFF; }
.botao-contorno-claro:hover { border-color: #FFFFFF; background: rgba(255, 255, 255, .08); }

.link-seta {
  display: inline-flex; align-items: center; gap: 9px;
  font: 700 15.5px/1.3 var(--f-txt);
  color: var(--roxo);
  text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px;
  text-decoration-color: rgba(91, 42, 158, .3);
  transition: color .15s, text-decoration-color .15s;
}
.link-seta .ic-seta { color: var(--telha); width: 9px; height: 11px; }
.link-seta:hover { text-decoration-color: var(--roxo); }
.escuro .link-seta { color: #FFFFFF; text-decoration-color: rgba(255, 255, 255, .3); }
.escuro .link-seta .ic-seta { color: var(--laranja); }
.escuro .link-seta:hover { text-decoration-color: #FFFFFF; }

/* ---------- 5. Topbar e cabeçalho ---------- */
.topbar {
  background: var(--n950); color: var(--apoio-esc);
  font-size: 13.5px; line-height: 1.3;
  -webkit-font-smoothing: antialiased;
  --foco: var(--laranja);
}
.topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--top-h); }
.topbar a { color: rgba(255, 255, 255, .86); text-decoration: none; transition: color .15s; }
.topbar a:hover { color: #FFFFFF; }
.topbar-contatos { display: flex; gap: 26px; }
.topbar-contatos a { display: inline-flex; align-items: center; gap: 8px; }
.topbar-contatos .ic { width: 15px; height: 15px; color: var(--laranja); }

.cabecalho {
  position: sticky; top: 0; z-index: 60;
  background: var(--n900);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  -webkit-font-smoothing: antialiased;
  --foco: var(--laranja);
  transition: box-shadow .15s;
}
.cabecalho.rolado { box-shadow: 0 6px 22px rgba(10, 4, 20, .35); }
.cabecalho-in { display: flex; align-items: center; gap: 32px; height: var(--cab-h); }
.marca { flex: none; display: block; }
.marca img { height: 54px; width: auto; }
.menu { margin-left: auto; display: flex; align-items: center; gap: 30px; }
.menu-lista { display: flex; align-items: center; gap: 30px; }
.menu-lista a {
  position: relative; display: block; padding-block: 8px;
  font: 600 15px/1.3 var(--f-txt);
  color: rgba(255, 255, 255, .85);
  text-decoration: none;
  transition: color .15s;
}
.menu-lista a:hover { color: #FFFFFF; }
.menu-lista a[aria-current="page"] { color: #FFFFFF; }
.menu-lista a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--laranja);
}
.menu-destaque { padding: 12px 20px; }
.menu-contatos { display: none; }
.menu-botao { display: none; }

/* ---------- 6. Hero ---------- */
.hero {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column;
  min-height: clamp(480px, calc(100vh - var(--cab-h) - var(--top-h)), 940px);
  min-height: clamp(480px, calc(100svh - var(--cab-h) - var(--top-h)), 940px);
  background: var(--n900);
  color: var(--corpo-esc);
}
.hero-fundo img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 50%;
}
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(26, 12, 46, .94) 0%, rgba(26, 12, 46, .86) 34%, rgba(26, 12, 46, .5) 62%, rgba(26, 12, 46, .32) 100%),
    linear-gradient(0deg, rgba(18, 8, 32, .6) 0%, rgba(18, 8, 32, 0) 30%);
}
.hero-grade {
  flex: 1;
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 40px; align-items: center;
  padding-block: clamp(32px, 6vh, 96px) clamp(28px, 5vh, 72px);
}
.hero-tag {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 20px;
  font: 600 14.5px/1.4 var(--f-txt); color: rgba(255, 255, 255, .88);
}
.hero-tag .ic-seta { width: 9px; height: 11px; color: var(--laranja); }
.hero h1 { color: #FFFFFF; }
.h1-a {
  display: block;
  font: 600 clamp(40px, 3.4vw + 10px, 72px)/1.04 var(--f-tit);
  letter-spacing: -.022em;
}
.h1-b {
  display: block; margin-top: 12px;
  font: 500 clamp(20px, 1.4vw + 8px, 32px)/1.2 var(--f-tit);
  letter-spacing: -.01em;
  color: rgba(255, 255, 255, .88);
}
.hero-sub { margin-top: 22px; max-width: 56ch; font-size: 17.5px; line-height: 1.6; color: var(--corpo-esc); }
.hero-acoes { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }

.hero-data {
  justify-self: end;
  padding: 6px 0 8px 28px;
  border-left: 3px solid var(--laranja);
  color: #FFFFFF;
}
.data-dias {
  font: 700 clamp(96px, 10vw, 184px)/.84 var(--f-num);
  letter-spacing: -.005em;
  white-space: nowrap;
}
.data-e {
  display: inline-block;
  margin-inline: .12em;
  font-weight: 500; font-size: .36em;
  vertical-align: .62em;
  color: rgba(255, 255, 255, .72);
}
.data-mes {
  margin-top: 16px;
  font: 500 clamp(26px, 1.4vw + 10px, 36px)/1.1 var(--f-tit);
  letter-spacing: -.01em;
  color: var(--laranja);
}
.data-info { margin-top: 10px; font-size: 16px; line-height: 1.4; color: rgba(255, 255, 255, .72); }

.hero-faixa {
  border-top: 1px solid rgba(255, 255, 255, .14);
  background: rgba(18, 8, 32, .62);
}
.faixa-in { display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; padding-block: 16px; }
.faixa-dados { display: flex; flex-wrap: wrap; gap: 14px 0; }
.faixa-dados > div { position: relative; padding: 2px 32px 2px 36px; }
.faixa-dados > div + div { border-left: 1px solid rgba(255, 255, 255, .14); padding-left: 68px; }
.faixa-dados > div + div .faixa-ic { left: 32px; }
.faixa-dados > div:first-child { padding-left: 36px; }
.faixa-ic { position: absolute; left: 0; top: 50%; margin-top: -11px; color: var(--laranja); line-height: 0; }
.faixa-dados dt { font-size: 13.5px; line-height: 1.3; color: var(--apoio-esc); }
.faixa-dados dd { margin-top: 2px; font: 600 16.5px/1.3 var(--f-txt); color: #FFFFFF; white-space: nowrap; }

/* ---------- 7. Contagem regressiva ---------- */
.contagem { display: flex; align-items: center; gap: 18px; }
.contagem-rot { font-size: 13.5px; line-height: 1.3; color: var(--apoio-esc); }
.contagem-lista { display: flex; }
.contagem-lista li { display: flex; flex-direction: column; align-items: center; min-width: 56px; padding-inline: 12px; }
.contagem-lista li + li { border-left: 1px solid rgba(255, 255, 255, .14); }
.contagem-lista span { font: 600 30px/1 var(--f-num); color: #FFFFFF; font-variant-numeric: tabular-nums; }
.contagem-lista small { margin-top: 5px; font-size: 12.5px; line-height: 1; color: var(--apoio-esc); }
.contagem.acabou .contagem-lista, .contagem.acabou .contagem-rot { display: none; }
.contagem-fim { font-weight: 600; color: #FFFFFF; }

/* ---------- 8. Contexto ---------- */
.ctx-grade {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 48px clamp(40px, 6vw, 104px); align-items: start;
}
.ctx-texto h2 { font-size: clamp(36px, 3vw + 12px, 62px); line-height: 1.04; letter-spacing: -.022em; max-width: 14ch; }
.leitura { margin-top: 32px; max-width: 66ch; }
.leitura p + p { margin-top: 18px; }
.leitura-lead { font-size: 19px; line-height: 1.6; color: var(--tit); }
.ctx-texto .link-seta { margin-top: 30px; }
.camadas { padding-top: 22px; border-top: 2px solid var(--n800); }
.camadas h3 { font-size: 21px; line-height: 1.3; max-width: 24ch; }
.camadas-lista { margin-top: 10px; }
.camadas-lista li {
  display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 18px;
  padding-block: 20px; border-bottom: 1px solid var(--linha);
}
.camada-n { font: 600 42px/.9 var(--f-num); color: var(--telha); }
.camada-lead { margin-bottom: 6px; font: 600 17.5px/1.3 var(--f-tit); color: var(--tit); }
.camadas-lista li p:not(.camada-lead) { font-size: 15.5px; line-height: 1.6; }

/* ---------- 9. Números (faixa laranja chapada) ---------- */
.numeros { background: var(--degrade); color: var(--n900); padding-block: 44px; }
.numeros-lista { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.numeros-lista li { padding: 4px 28px; border-left: 1px solid rgba(26, 12, 46, .2); }
.numeros-lista li:first-child { padding-left: 0; border-left: 0; }
.n-valor { display: block; font: 700 clamp(60px, 4.6vw + 20px, 92px)/.88 var(--f-num); letter-spacing: -.005em; white-space: nowrap; }
.n-leg { display: block; margin-top: 10px; max-width: 20ch; font: 600 15px/1.35 var(--f-txt); }

/* ---------- 10. Dois regimes (colunas que sobem) ---------- */
.reg-cab {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 24px clamp(40px, 6vw, 96px); align-items: end;
  margin-bottom: 48px;
}
.reg-intro > p:first-child { font-size: 18.5px; line-height: 1.6; color: var(--tit); }
.reg-eixo { margin-top: 18px; padding-top: 16px; border-top: 1px solid #D8CCEA; font-size: 15.5px; line-height: 1.55; }
.reg-eixo-rot { display: block; margin-bottom: 2px; font-weight: 600; font-size: 14.5px; color: var(--roxo); }
.reg-paineis { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr); gap: 24px; }
.painel { background: #FFFFFF; border-radius: var(--raio); padding: clamp(24px, 3vw, 40px); }
.regime { display: flex; flex-direction: column; }
.regime-lei { font: 600 14.5px/1.4 var(--f-txt); color: var(--roxo); }
.regime h3 { margin-top: 6px; font-size: 22px; }
.colunata { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin-top: auto; padding-top: 40px; }
.col-area {
  display: flex; align-items: flex-end; justify-content: center;
  height: 260px; padding-inline: 13%;
  border-bottom: 2px solid var(--n800);
}
/* cada coluna é um pórtico: cornija (barra larga + barra estreita), fuste e base */
.coluna {
  display: block; width: 100%; height: calc(var(--a) * 1%);
  background:
    linear-gradient(var(--c), var(--c)) 50% 0 / 100% 12px no-repeat,
    linear-gradient(var(--c), var(--c)) 50% 18px / 82% 8px no-repeat,
    linear-gradient(var(--c), var(--c)) 50% 32px / 60% calc(100% - 46px) no-repeat,
    linear-gradient(var(--c), var(--c)) 50% 100% / 82% 8px no-repeat;
}
.col-1 { --c: #CDBDF0; }
.col-2 { --c: #9C7BE3; }
.col-3 { --c: var(--violeta); }
.col-4 { --c: var(--n800); }
.col-txt { display: block; min-height: 66px; padding: 14px 4px 0; text-align: center; }
.col-nome { display: block; font: 600 16.5px/1.25 var(--f-tit); color: var(--tit); }
.col-nota { display: block; margin-top: 4px; font-size: 14px; line-height: 1.4; color: var(--apoio); }
.reg-link { margin-top: 32px; }

/* ---------- 11. Programa (padrão do Orçamento) ---------- */
.cab-centro { max-width: 880px; margin: 0 auto 56px; text-align: center; }
.cab-centro h2 { margin-inline: auto; }
.cab-linha { margin-top: 16px; font-size: 18px; color: var(--corpo); }
.eixos {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, auto);
  grid-auto-flow: column; column-gap: 48px;
}
.eixos li { border-top: 1px solid var(--linha); }
.eixos li:nth-child(3), .eixos li:nth-child(6) { border-bottom: 1px solid var(--linha); }
.eixo {
  display: grid; grid-template-columns: 72px minmax(0, 1fr) 40px; gap: 20px; align-items: center;
  min-height: 100%;
  padding: 22px 16px;
  text-decoration: none;
  transition: background-color .15s;
}
.eixo:hover { background: var(--lilas); }
.eixo-n { font: 600 52px/.88 var(--f-num); color: var(--telha); }
.eixo-tit { display: block; font: 600 21px/1.25 var(--f-tit); letter-spacing: -.01em; color: var(--tit); text-wrap: balance; }
.eixo-meta { display: block; margin-top: 6px; font-size: 14.5px; line-height: 1.4; color: var(--apoio); }
.eixo-seta {
  display: grid; place-items: center; width: 40px; height: 40px;
  border: 1.5px solid var(--linha); border-radius: var(--raio);
  color: var(--telha);
  transition: border-color .15s;
}
.eixo-seta .ic-seta { width: 9px; height: 11px; }
.eixo:hover .eixo-seta { border-color: var(--roxo); }
.eixos-extra {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px;
  margin-top: 28px; padding: 18px 24px;
  background: var(--lilas); border-radius: var(--raio);
}
.extra-rot { font-weight: 700; font-size: 15.5px; color: var(--tit); }
.eixos-extra ul { display: flex; flex-wrap: wrap; gap: 8px 32px; }
.eixos-extra a { display: inline-flex; align-items: baseline; gap: 10px; font-size: 15.5px; color: var(--corpo); text-decoration: none; transition: color .15s; }
.eixos-extra a:hover { color: var(--roxo); text-decoration: underline; text-underline-offset: 4px; }
.extra-n { font: 600 18px/1 var(--f-num); color: var(--roxo); white-space: nowrap; }
.acoes-centro { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 44px; }
.aviso-centro { max-width: 860px; margin: 22px auto 0; text-align: center; font-size: 13.5px; line-height: 1.55; color: var(--apoio); }

/* ---------- 12. Kit de modelos (o rito: 5 folhas ligadas por um trilho) ---------- */
.mod-cab {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 20px clamp(40px, 6vw, 96px); align-items: end;
  margin-bottom: 56px;
}
.mod-cab h2 { max-width: 22ch; }
.mod-linha { font-size: 18px; line-height: 1.55; color: var(--corpo-esc); }
.rito { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 36px; }
.rito::before {
  content: ""; position: absolute; left: 0; right: 0; top: 50%;
  height: 1px; background: rgba(255, 255, 255, .26);
}
.folha {
  position: relative;
  display: flex; flex-direction: column;
  min-height: 340px;
  padding: 22px 22px 24px;
  background: #FFFFFF; color: var(--corpo);
  border-radius: var(--raio);
  -webkit-font-smoothing: auto;
}
.folha:not(:last-child)::after {
  content: ""; position: absolute; top: 50%; right: -23px;
  width: 10px; height: 12px; margin-top: -6px;
  background: var(--laranja);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.folha-n {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
  padding-bottom: 14px; margin-bottom: 16px;
  border-bottom: 1px solid var(--linha);
}
.folha-rot { font: 600 13.5px/1.2 var(--f-txt); color: var(--apoio); }
.folha-num { font: 700 48px/.8 var(--f-num); color: var(--telha); }
.escuro .folha h3 { color: var(--tit); font-size: 18px; line-height: 1.3; }
.folha-dados { display: grid; gap: 10px; margin-top: 18px; padding-bottom: 20px; }
.folha-dados dt { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--apoio); }
.folha-dados dd { margin-top: 1px; font-size: 14.5px; line-height: 1.4; color: var(--tit); }
.folha-linhas {
  display: block; flex: none; margin-top: auto; height: 33px;
  background:
    linear-gradient(#ECE6F3, #ECE6F3) 0 0 / 100% 5px no-repeat,
    linear-gradient(#ECE6F3, #ECE6F3) 0 14px / 86% 5px no-repeat,
    linear-gradient(#ECE6F3, #ECE6F3) 0 28px / 54% 5px no-repeat;
}
.mod-pe {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px;
  margin-top: 48px; padding-top: 28px;
  border-top: 1px solid var(--linha-esc);
}
.mod-legenda { font-size: 15px; color: var(--apoio-esc); }

/* ---------- 13. Professora ---------- */
.prof-grade {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 48px clamp(40px, 6vw, 104px); align-items: center;
}
.prof-foto { background: var(--n900); border-radius: 6px; overflow: hidden; }
.prof-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%; }
.prof-texto h2 { font-size: clamp(36px, 2.6vw + 14px, 58px); line-height: 1.04; }
.prof-cargo { margin-top: 14px; max-width: 46ch; font: 500 20px/1.45 var(--f-tit); color: var(--roxo); }
.marcos { margin-top: 30px; border-top: 1px solid var(--linha); }
.marcos li {
  display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 4px 28px;
  padding-block: 15px; border-bottom: 1px solid var(--linha);
}
.marco-lead { font: 600 16.5px/1.4 var(--f-tit); color: var(--tit); }
.marcos li p:not(.marco-lead) { font-size: 15.5px; line-height: 1.55; }
.prof-texto .botao { margin-top: 32px; }

/* ---------- 14. Justificativa ---------- */
.jus-cab {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: 20px clamp(40px, 6vw, 96px); align-items: end;
  margin-bottom: 52px;
}
.jus-cab h2 { max-width: 16ch; }
.jus-intro { font-size: 17px; line-height: 1.65; color: var(--corpo-esc); }
.motivos {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, auto);
  grid-auto-flow: column; column-gap: clamp(40px, 5vw, 80px);
}
.motivos li {
  display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 20px;
  padding-block: 26px; border-top: 1px solid var(--linha-esc);
}
.motivo-n { font: 700 56px/.82 var(--f-num); color: var(--laranja); }
.motivos h3 { font-size: 20px; line-height: 1.3; }
.motivos p { margin-top: 8px; font-size: 15.5px; line-height: 1.6; }
.motivos li:nth-child(4), .motivos li:nth-child(7) { border-bottom: 1px solid var(--linha-esc); }
.jus-pe { margin-top: 40px; }

/* ---------- 15. Investimento e pagamento ---------- */
.inv-cab { margin-bottom: 36px; }
.inv-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.inv-preco { display: flex; flex-direction: column; align-items: flex-start; }
.preco-grande { font: 700 clamp(56px, 3.6vw + 24px, 80px)/.9 var(--f-num); color: var(--tit); letter-spacing: -.005em; white-space: nowrap; }
.preco-moeda { margin-right: .06em; font-size: .5em; font-weight: 600; vertical-align: .62em; color: var(--roxo); }
.preco-por { margin-top: 12px; font-size: 15.5px; color: var(--apoio); }
.inv-preco > .botao { margin-top: 24px; }
.incluso-bloco { width: 100%; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--linha); }
.incluso-bloco h3 { margin-bottom: 14px; font-size: 18px; }
.incluso li { font-size: 15.5px; line-height: 1.55; }

.pagamento { display: flex; flex-direction: column; }
.pagamento h3 { font-size: 22px; }
.pag-intro { margin-top: 8px; font-size: 15px; line-height: 1.55; color: var(--apoio); }
.pag-dados { margin-top: 20px; border-top: 1px solid var(--linha); }
.pag-dados > div {
  display: grid; grid-template-columns: 124px minmax(0, 1fr) auto; gap: 4px 16px; align-items: center;
  padding-block: 11px; border-bottom: 1px solid var(--linha);
}
.pag-dados dt { font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--apoio); }
.pag-dados dd { font-size: 15.5px; font-weight: 600; line-height: 1.4; color: var(--tit); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.copiar-item {
  display: inline-flex; align-items: center; gap: 7px;
  height: 38px; padding: 0 12px;
  border: 1.5px solid var(--linha); border-radius: var(--raio);
  background: #FFFFFF; color: var(--roxo);
  font: 700 13.5px/1 var(--f-txt);
  cursor: pointer;
  transition: border-color .15s, background-color .15s, color .15s;
}
.copiar-item svg { width: 17px; height: 17px; }
.copiar-item:hover { border-color: var(--roxo); }
.copiar-item .ic-ok { display: none; }
.copiar-item.ok { border-color: var(--roxo); background: var(--lilas); }
.copiar-item.ok .ic-copiar { display: none; }
.copiar-item.ok .ic-ok { display: block; }
.copiar-tudo {
  display: flex; align-items: center; gap: 14px; width: 100%;
  margin-top: auto; padding: 15px 18px;
  border: 0; border-radius: var(--raio);
  background: var(--n800); color: #FFFFFF; text-align: left;
  cursor: pointer;
  transition: background-color .15s;
}
.pag-dados + .copiar-tudo { margin-top: 22px; }
.copiar-tudo:hover { background: var(--n700); }
.copiar-tudo .ic { width: 22px; height: 22px; color: var(--laranja); }
.copiar-tudo-tit { display: block; font-weight: 700; font-size: 15.5px; line-height: 1.3; }
.copiar-tudo-sub { display: block; font-size: 13.5px; line-height: 1.4; color: rgba(255, 255, 255, .74); }
.copiar-aviso { min-height: 20px; margin-top: 10px; font-size: 13.5px; line-height: 1.45; color: var(--roxo); }

/* ---------- 16. Presencial em Foz do Iguaçu + horários ---------- */
.foz { position: relative; isolation: isolate; overflow: hidden; background: var(--n900); }
.foz-fundo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.foz::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(26, 12, 46, .95) 0%, rgba(26, 12, 46, .84) 42%, rgba(26, 12, 46, .5) 100%);
}
.foz-grade { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px clamp(40px, 6vw, 104px); align-items: center; }
.foz h2 { font-size: clamp(46px, 4.4vw + 12px, 92px); line-height: .98; letter-spacing: -.025em; }
.foz-data { margin-top: 18px; font: 500 clamp(19px, .6vw + 14px, 23px)/1.4 var(--f-tit); color: #FFFFFF; }
.foz-local { display: flex; flex-wrap: wrap; gap: 16px 48px; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--linha-esc); max-width: 520px; }
.foz-local dt { font-size: 13.5px; line-height: 1.3; color: var(--apoio-esc); }
.foz-local dd { margin-top: 3px; font-weight: 600; font-size: 17px; color: #FFFFFF; }
.foz-texto .botao { margin-top: 34px; }
.foz-painel {
  padding: clamp(24px, 3vw, 40px);
  background: rgba(26, 12, 46, .88);
  border: 1px solid var(--linha-esc); border-radius: var(--raio);
}

.horarios { width: 100%; }
.horarios caption { margin-bottom: 10px; text-align: left; font: 600 22px/1.25 var(--f-tit); letter-spacing: -.01em; color: var(--tit); }
.horarios th, .horarios td { padding: 13px 0; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: baseline; }
.horarios tr:last-child th, .horarios tr:last-child td { border-bottom: 0; }
.horarios th { padding-right: 24px; white-space: nowrap; font-weight: 400; font-size: 14px; color: var(--apoio); }
.horarios th .num { font: 600 23px/1 var(--f-num); color: var(--tit); font-variant-numeric: tabular-nums; }
.horarios td { width: 100%; font-weight: 600; font-size: 16px; color: var(--tit); }
.h-nota { margin-left: 6px; font-weight: 500; font-size: 14px; color: var(--apoio); }
.horarios .h-pausa td { font-weight: 500; color: var(--corpo); }
.escuro .horarios caption { color: #FFFFFF; }
.escuro .horarios th, .escuro .horarios td { border-color: var(--linha-esc); }
.escuro .horarios th { color: var(--apoio-esc); }
.escuro .horarios th .num, .escuro .horarios td { color: #FFFFFF; }
.escuro .h-nota { color: var(--laranja); }
.escuro .horarios .h-pausa td { color: var(--corpo-esc); }

/* ---------- 17. Galeria (grade 3 × 2 de quadrados) ---------- */
.gal-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 48px; margin-bottom: 40px; }
.gal-cab p { max-width: 50ch; color: var(--apoio); }
.galeria-fotos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
.galeria-fotos li { background: var(--lilas); border-radius: 6px; overflow: hidden; }
.galeria-fotos img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }

/* ---------- 18. Rodapé ---------- */
.rodape { background: var(--n900); color: var(--corpo-esc); font-size: 15px; }
.rodape-grade {
  display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 40px clamp(32px, 4vw, 64px);
  padding-block: clamp(56px, 6vw, 88px) 44px;
}
.rodape-logo { display: inline-block; }
.rodape-logo img { width: 250px; }
.rodape-evento { margin-top: 20px; line-height: 1.55; color: var(--apoio-esc); }
.realizacao { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--linha-esc); max-width: 300px; }
.realizacao p { margin-bottom: 12px; font-size: 14px; color: var(--apoio-esc); }
.realizacao img { width: 150px; }
.rodape h2 { margin-bottom: 16px; font: 700 15px/1.4 var(--f-txt); letter-spacing: 0; color: #FFFFFF; }
.rodape-col ul { display: grid; gap: 10px; }
.rodape a { text-decoration: none; transition: color .15s; }
.rodape a:hover { color: #FFFFFF; }
.rodape-contatos a { display: inline-flex; align-items: center; gap: 10px; overflow-wrap: anywhere; }
.rodape-contatos .ic { width: 16px; height: 16px; color: var(--laranja); }
.rodape address { margin-top: 18px; line-height: 1.55; color: var(--apoio-esc); }
.rodape-redes { display: flex !important; gap: 10px !important; }
.rodape-redes a {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--raio);
  transition: border-color .15s, color .15s;
}
.rodape-redes a:hover { border-color: var(--laranja); color: var(--laranja); }
.rodape-site { display: inline-flex; align-items: center; gap: 9px; margin-top: 22px; color: #FFFFFF; }
.rodape-site .ic-seta { width: 9px; height: 11px; color: var(--laranja); }
.rodape-base p { padding-block: 22px; border-top: 1px solid var(--linha-esc); font-size: 14px; color: var(--apoio-esc); }
.com-barra .rodape { padding-bottom: var(--barra-h, 84px); }

/* ---------- 19. Barra fixa de inscrição + WhatsApp (aparecem sem animação) ---------- */
.barra-inscricao {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
  background: var(--n900);
  border-top: 1px solid rgba(255, 255, 255, .12);
  color: var(--corpo-esc);
  -webkit-font-smoothing: antialiased;
  --foco: var(--laranja);
  visibility: hidden;
}
html.barra-on .barra-inscricao { visibility: visible; }
.barra-in { display: flex; align-items: center; gap: 24px; padding-block: 13px; }
.barra-logo { height: 40px; width: auto; flex: none; }
.barra-txt { min-width: 0; padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .14); }
.barra-tit { font-weight: 700; line-height: 1.3; color: #FFFFFF; }
.barra-info { font-size: 14px; line-height: 1.35; color: var(--apoio-esc); }
.barra-preco { display: flex; align-items: baseline; gap: 8px; margin-left: auto; white-space: nowrap; }
.barra-valor { font: 700 30px/1 var(--f-num); color: #FFFFFF; }
.barra-por { font-size: 14px; color: var(--apoio-esc); }
.barra-inscricao .botao { padding-block: 13px; flex: none; }

.whats-flutuante {
  position: fixed; right: 20px; bottom: 20px; z-index: 65;
  display: grid; place-items: center;
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--whats); color: #FFFFFF;
  box-shadow: 0 6px 18px rgba(10, 4, 20, .3);
  visibility: hidden;
}
.whats-flutuante .ic { width: 30px; height: 30px; }
html.rolou .whats-flutuante { visibility: visible; }
html.barra-on .com-barra .whats-flutuante { bottom: calc(var(--barra-h, 72px) + 16px); }

/* ---------- 20. Páginas internas: topo, canais de contato, acordeão ---------- */
.topo { position: relative; isolation: isolate; overflow: hidden; background: var(--n900); }
.topo-fundo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; }
.topo::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(26, 12, 46, .95) 0%, rgba(26, 12, 46, .82) 50%, rgba(26, 12, 46, .45) 100%);
}
.topo-in { padding-block: clamp(44px, 5.5vw, 84px) clamp(48px, 6vw, 92px); }
.migalhas ol { display: flex; flex-wrap: wrap; gap: 6px 10px; font-size: 14.5px; line-height: 1.4; color: var(--apoio-esc); }
.migalhas li + li::before { content: "/"; margin-right: 10px; color: rgba(255, 255, 255, .35); }
.migalhas a { color: var(--corpo-esc); text-decoration: none; transition: color .15s; }
.migalhas a:hover { color: #FFFFFF; text-decoration: underline; text-underline-offset: 3px; }
.migalhas [aria-current] { color: #FFFFFF; }
.topo h1 { margin-top: 18px; font-size: clamp(40px, 3.4vw + 10px, 68px); line-height: 1.02; letter-spacing: -.022em; }
.topo-sub { margin-top: 16px; max-width: 64ch; font-size: 18px; line-height: 1.6; color: var(--corpo-esc); }
.topo-sub:empty { display: none; }
.topo-evento { margin-top: 22px; font: 500 18px/1.4 var(--f-tit); color: var(--laranja); }

.canais { border-top: 1px solid var(--linha); }
.canais li {
  display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 18px; align-items: center;
  padding-block: 18px; border-bottom: 1px solid var(--linha);
}
.canal-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--raio); background: var(--lilas); color: var(--roxo); }
.canal-ic .ic { width: 20px; height: 20px; }
.canal-rot { font-size: 14px; font-weight: 600; color: var(--apoio); }
.canal-valor { font: 600 19px/1.35 var(--f-tit); color: var(--tit); overflow-wrap: anywhere; }
.canal-valor a { text-decoration: none; }
.canal-valor a:hover { color: var(--roxo); }

.acordeao { border-top: 1px solid var(--linha); }
.ac-item { border-bottom: 1px solid var(--linha); }
.ac-botao {
  display: grid; grid-template-columns: 72px minmax(0, 1fr) auto 40px; gap: 20px; align-items: center;
  width: 100%; padding: 22px 16px;
  border: 0; background: transparent; text-align: left; color: inherit;
  cursor: pointer;
  transition: background-color .15s;
}
.ac-botao:hover { background: var(--lilas); }
.ac-n { font: 600 52px/.88 var(--f-num); color: var(--telha); }
.ac-rot { display: block; font-size: 14.5px; font-weight: 600; color: var(--roxo); }
.ac-tit { display: block; margin-top: 2px; font: 600 22px/1.25 var(--f-tit); letter-spacing: -.01em; color: var(--tit); }
.ac-qtd { font-size: 14.5px; color: var(--apoio); white-space: nowrap; }
.ac-sinal {
  position: relative; width: 40px; height: 40px;
  border: 1.5px solid var(--linha); border-radius: var(--raio);
}
.ac-sinal::before, .ac-sinal::after {
  content: ""; position: absolute; left: 50%; top: 50%;
  width: 14px; height: 2px; margin: -1px 0 0 -7px; background: var(--telha);
}
.ac-sinal::after { width: 2px; height: 14px; margin: -7px 0 0 -1px; }
.ac-botao[aria-expanded="true"] .ac-sinal::after { display: none; }
.ac-corpo { padding: 4px 16px 32px calc(72px + 36px); }
.ac-topicos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
.ac-topicos li { padding-block: 12px; border-top: 1px solid var(--linha); margin-top: 0 !important; }
.ac-topicos li::before { top: calc(12px + .58em); }

/* ---------- 21. Responsivo ---------- */
/* telas baixas (notebook 1366×768 / 1280×720): topbar sai para o hero + faixa caberem */
@media (max-height: 700px) {
  :root { --top-h: 0px; }
  .topbar { display: none; }
}

@media (max-width: 1240px) {
  .faixa-dados > div { padding-right: 24px; }
  .faixa-dados > div + div { padding-left: 60px; }
  .faixa-dados > div + div .faixa-ic { left: 24px; }
  .contagem-lista li { min-width: 50px; padding-inline: 10px; }
  .col-txt { min-height: 112px; }
}

@media (max-width: 1100px) {
  .ctx-grade { grid-template-columns: minmax(0, 1fr); }
  .camadas { max-width: 760px; }
  .camadas h3 { max-width: none; }
  .reg-cab, .mod-cab, .jus-cab { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .rito { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
  .rito::before { display: none; }
  .folha:not(:last-child)::after { right: -21px; }
  .folha:nth-child(3)::after { display: none; }
  .faixa-in { flex-wrap: wrap; }
  .rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1101px) {
  .camadas { position: sticky; top: calc(var(--cab-h) + 32px); }
}

/* cabeçalho compacto + menu em painel de tela cheia */
@media (max-width: 1040px) {
  :root { --cab-h: 70px; }
  .marca img { height: 42px; }
  .menu-botao {
    display: grid; place-items: center;
    margin-left: auto;
    width: 46px; height: 46px;
    border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--raio);
    background: transparent; cursor: pointer;
  }
  .menu-botao-linhas, .menu-botao-linhas::before, .menu-botao-linhas::after {
    display: block; width: 20px; height: 2px; border-radius: 2px; background: #FFFFFF;
  }
  .menu-botao-linhas { position: relative; }
  .menu-botao-linhas::before, .menu-botao-linhas::after { content: ""; position: absolute; left: 0; }
  .menu-botao-linhas::before { top: -6px; }
  .menu-botao-linhas::after { top: 6px; }
  .menu-aberto .menu-botao-linhas { background: transparent; }
  .menu-aberto .menu-botao-linhas::before { top: 0; rotate: 45deg; }
  .menu-aberto .menu-botao-linhas::after { top: 0; rotate: -45deg; }

  .menu {
    position: fixed; inset: 0; z-index: -1;
    display: none; flex-direction: column; align-items: stretch; gap: 0;
    padding: calc(var(--cab-h) + 40px) var(--respiro) 32px;
    background: var(--n900);
    overflow-y: auto;
  }
  .menu-aberto .menu { display: flex; }
  .menu-aberto { overflow: hidden; }
  .menu-aberto .barra-inscricao, .menu-aberto .whats-flutuante { visibility: hidden !important; }
  .menu-lista { flex-direction: column; align-items: stretch; gap: 0; border-top: 1px solid var(--linha-esc); }
  .menu-lista a {
    padding: 16px 0;
    font: 600 28px/1.2 var(--f-tit);
    letter-spacing: -.015em;
    color: #FFFFFF;
    border-bottom: 1px solid var(--linha-esc);
  }
  .menu-lista a[aria-current="page"] { color: var(--laranja); }
  .menu-lista a[aria-current="page"]::after { display: none; }
  .menu-destaque { margin-top: 28px; align-self: flex-start; padding: 16px 24px; }
  .menu-contatos { display: grid; gap: 14px; margin-top: auto; padding-top: 36px; font-size: 16px; }
  .menu-contatos a { display: inline-flex; align-items: center; gap: 10px; color: var(--corpo-esc); text-decoration: none; overflow-wrap: anywhere; }
  .menu-contatos .ic { color: var(--laranja); }

  .barra-txt { display: none; }
}

@media (max-width: 900px) {
  :root { --top-h: 0px; }
  .topbar { display: none; }
  .hero-grade { grid-template-columns: minmax(0, 1fr); gap: 36px; align-items: start; }
  .hero-data { justify-self: start; }
  .reg-paineis, .inv-grade { grid-template-columns: minmax(0, 1fr); }
  .eixos { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .eixos li:nth-child(3) { border-bottom: 0; }
  .motivos { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
  .motivos li:nth-child(4) { border-bottom: 0; }
  .prof-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-foto { max-width: 440px; }
  .foz-grade { grid-template-columns: minmax(0, 1fr); }
  .foz-painel { max-width: 560px; }
  .numeros-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .numeros-lista li:nth-child(3) { padding-left: 0; border-left: 0; }
  .ac-topicos { grid-template-columns: minmax(0, 1fr); }
  .ac-corpo { padding-left: 16px; }
}

@media (max-width: 820px) {
  .barra-logo { display: none; }
  .barra-in { gap: 14px; padding-block: 11px; }
  .barra-preco { margin-left: 0; flex-direction: column; gap: 3px; }
  .barra-valor { font-size: 26px; }
  .barra-por { font-size: 13px; }
  .barra-inscricao .botao { margin-left: auto; }
}

@media (max-width: 760px) {
  :root { --top-h: 0px; }
  .topbar { display: none; }
  .hero { min-height: 0; }
  .hero-fundo img { object-position: 50% 30%; }
  .hero::before {
    background: linear-gradient(180deg, rgba(26, 12, 46, .9) 0%, rgba(26, 12, 46, .8) 55%, rgba(26, 12, 46, .7) 100%);
  }
  .hero-grade { padding-block: 40px 36px; }
  .hero-sub { font-size: 16.5px; }
  .data-dias { font-size: clamp(96px, 30vw, 150px); }
  .h-nota { display: block; margin-left: 0; }
  .faixa-in { flex-direction: column; align-items: stretch; gap: 18px; padding-block: 20px; }
  .faixa-dados { flex-direction: column; gap: 14px; }
  .faixa-dados > div, .faixa-dados > div + div { padding: 0 0 0 36px; border-left: 0; }
  .faixa-dados > div + div .faixa-ic { left: 0; }
  .faixa-dados dd { white-space: normal; }
  .contagem { padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .14); justify-content: space-between; }
  .contagem-lista li:first-child { padding-left: 0; }
  .ac-botao { grid-template-columns: 52px minmax(0, 1fr) 40px; gap: 14px; padding-inline: 8px; }
  .ac-n { font-size: 40px; }
  .ac-qtd { grid-column: 2; grid-row: 2; margin-top: -8px; }
  .ac-sinal { grid-column: 3; grid-row: 1 / span 2; }
}

@media (max-width: 640px) {
  h3 { font-size: 20px; }
  .rito { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .rito::before { display: block; left: 30px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .folha { min-height: 0; padding: 20px; }
  .folha:not(:last-child)::after, .folha:nth-child(3)::after {
    display: block; top: auto; right: auto; bottom: -20px; left: 25px; margin: 0;
    width: 12px; height: 10px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }
  .folha-linhas { display: none; }
  .folha-dados { padding-bottom: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
  .eixo { grid-template-columns: 50px minmax(0, 1fr) 36px; gap: 14px; padding: 20px 8px; }
  .eixo-n { font-size: 40px; }
  .eixo-tit { font-size: 19px; }
  .eixo-seta { width: 36px; height: 36px; }
  .eixos-extra { flex-direction: column; align-items: flex-start; padding: 18px 20px; }
  .eixos-extra ul { flex-direction: column; gap: 10px; }
  .acoes-centro .botao { width: 100%; }
  .marcos li { grid-template-columns: minmax(0, 1fr); }
  .motivos li { grid-template-columns: 40px minmax(0, 1fr); gap: 16px; }
  .motivo-n { font-size: 46px; }
  .galeria-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; }
  .pag-dados dt { grid-column: 1; }
  .pag-dados dd { grid-column: 1; grid-row: 2; }
  .copiar-item { grid-column: 2; grid-row: 1 / span 2; }
  .horarios th { padding-right: 14px; }
  .horarios th .num { font-size: 20px; }
  .rodape-grade { grid-template-columns: minmax(0, 1fr); }
  .canais li { grid-template-columns: 44px minmax(0, 1fr); }
  .canal-acao { grid-column: 2; }
}

@media (max-width: 560px) {
  /* as colunas viram barras horizontais com o rótulo embaixo */
  .colunata { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); gap: 16px; padding-top: 28px; }
  .col-area { height: 26px; padding: 0; justify-content: flex-start; align-items: center; border-bottom: 0; border-left: 2px solid var(--n800); }
  .coluna {
    width: calc(var(--a) * 1%); height: 24px;
    background:
      linear-gradient(var(--c), var(--c)) 100% 50% / 9px 100% no-repeat,
      linear-gradient(var(--c), var(--c)) calc(100% - 14px) 50% / 6px 80% no-repeat,
      linear-gradient(var(--c), var(--c)) 0 50% / calc(100% - 26px) 60% no-repeat;
  }
  .col-txt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 6px 0 0; text-align: left; }
  .col-nota { margin-top: 0; }
  .col-txt { min-height: 0; }
  .reg-intro > p:first-child { font-size: 17px; }
}

@media (max-width: 480px) {
  .n-valor { font-size: clamp(42px, 13vw, 60px); }
  .numeros-lista li { padding-inline: 14px; }
  .numeros-lista li:nth-child(odd) { padding-left: 0; }
}

@media (max-width: 400px) {
  .h1-a { font-size: 36px; }
  .contagem { gap: 12px; }
  .contagem-lista li { min-width: 0; padding-inline: 8px; }
  .contagem-lista span { font-size: 26px; }
  .botao { padding: 14px 18px; }
  .hero-acoes .botao { flex: 1 1 auto; }
  .barra-inscricao .botao { padding: 12px 14px; font-size: 14.5px; }
  .preco-grande { font-size: 52px; }
  .copiar-item { padding: 0 10px; }
}

@media (max-width: 360px) {
  .barra-in { gap: 10px; }
  .barra-inscricao .botao { padding: 12px; gap: 0; }
  .barra-inscricao .botao .ic-seta { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}

@media print {
  .topbar, .cabecalho, .barra-inscricao, .whats-flutuante, .hero-fundo, .foz-fundo, .topo-fundo { display: none !important; }
  .escuro, .hero, .foz, .topo, .rodape { background: #FFFFFF !important; color: #000000 !important; }
  .escuro h1, .escuro h2, .escuro h3, .hero h1 { color: #000000 !important; }
}

/* ==========================================================================
   22. Páginas internas (fase 2): programação, professora, contato, investimento
   ========================================================================== */
.sem-legenda caption {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* apresentação: coluna de leitura + quatro camadas ao lado */
.apr-grade {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  column-gap: clamp(40px, 6vw, 104px); align-items: start;
}
.apr-a { grid-column: 1; grid-row: 1; }
.apr-grade .camadas { grid-column: 2; grid-row: 1 / span 2; }
.apr-b { grid-column: 1; grid-row: 2; }
.apr-b.leitura { margin-top: 18px; }
.apr-fecho { font: 500 20px/1.45 var(--f-tit); color: var(--roxo); }
.apr-b .link-seta { margin-top: 26px; }
.jus-cab-simples { grid-template-columns: minmax(0, 1fr); margin-bottom: 40px; }

/* os dois dias: Dia × Turno × Eixo */
.dias-cab { margin-bottom: 36px; }
.dias { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.dia-tit {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px;
  padding-bottom: 18px; border-bottom: 2px solid var(--n800);
  font-size: 20px;
}
.dia-n { font: 700 36px/1 var(--f-num); color: var(--telha); }
.dia-tit .num { font: 600 23px/1 var(--f-num); color: var(--tit); }
.turnos li {
  display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 6px 20px; align-items: baseline;
  padding-block: 18px; border-bottom: 1px solid var(--linha);
}
.turnos li:last-child { border-bottom: 0; padding-bottom: 0; }
.turno { display: flex; flex-direction: column; gap: 2px; }
.turno-nome { font-weight: 600; font-size: 14.5px; color: var(--apoio); }
.turno-hora { font: 600 24px/1.05 var(--f-num); color: var(--roxo); }
.turno-eixo { font: 600 18px/1.35 var(--f-tit); color: var(--tit); text-decoration: none; transition: color .15s; }
.turno-eixo:hover { color: var(--roxo); text-decoration: underline; text-underline-offset: 4px; }
.turno-num { font-family: var(--f-num); font-weight: 700; font-size: 1.12em; color: var(--telha); }

/* acordeão dos eixos (padrão do Orçamento) */
.ac-ferramentas { display: flex; justify-content: flex-end; gap: 10px; margin-bottom: 16px; }
.no-js .ac-ferramentas { display: none; }
.ac-ferr {
  padding: 9px 14px;
  border: 1.5px solid var(--linha); border-radius: var(--raio);
  background: #FFFFFF; color: var(--roxo);
  font: 700 14px/1.2 var(--f-txt);
  cursor: pointer;
  transition: border-color .15s;
}
.ac-ferr:hover { border-color: var(--roxo); }
.ac-cab { margin: 0; font: inherit; letter-spacing: 0; }
.ac-botao { font-family: var(--f-txt); }
.ac-txt { display: block; min-width: 0; }
.ac-topicos li { font-size: 15.5px; line-height: 1.55; }
.eixos-mais .em-item { border-bottom: 1px solid var(--linha); }
.em-cab {
  display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 20px; align-items: center;
  margin: 0; padding: 22px 16px;
  font: inherit; font-family: var(--f-txt); letter-spacing: 0;
}
.em-corpo { padding: 0 16px 36px calc(72px + 36px); }
.kit-intro { margin-bottom: 14px; font-weight: 600; color: var(--tit); }
.kit-tabela { width: 100%; }
.kit-tabela th, .kit-tabela td {
  padding: 14px 20px 14px 0; border-bottom: 1px solid var(--linha);
  text-align: left; vertical-align: top; font-size: 15.5px; line-height: 1.45;
}
.kit-tabela thead th { padding-block: 10px; border-bottom: 2px solid var(--n800); font: 600 13.5px/1.3 var(--f-txt); color: var(--apoio); }
.kit-tabela tbody th { font: 600 17px/1.35 var(--f-tit); color: var(--tit); }
.kit-tabela .kit-n { width: 64px; font: 700 32px/1 var(--f-num); color: var(--telha); }
.kit-tabela td:last-child { min-width: 180px; }

/* horários (seção escura da programação) */
.hor-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 40px clamp(40px, 6vw, 104px); align-items: center; }
.hor-texto h2 { font-size: clamp(40px, 3vw + 14px, 68px); line-height: 1; }
.hor-data { margin-top: 16px; font: 500 20px/1.4 var(--f-tit); color: #FFFFFF; }

/* chamada final (lilás) */
.chamada-in { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 64px; }
.chamada h2 { max-width: 22ch; }
.chamada-info { margin-top: 14px; font-size: 17px; color: var(--corpo); }
.chamada-info strong { color: var(--tit); }
.chamada-acoes { display: flex; flex-wrap: wrap; gap: 14px; }
.aviso-esq { max-width: none; margin: 36px 0 0; padding-top: 22px; border-top: 1px solid #DDD2EC; text-align: left; }
.foz-local-claro { border-top-color: #DDD2EC; }
.foz-local-claro dt { color: var(--apoio); }
.foz-local-claro dd { color: var(--tit); }

/* professora (página) */
.bio-grade { align-items: start; }
.bio-texto h2 { font-size: clamp(26px, 1.1vw + 17px, 36px); line-height: 1.22; max-width: 30ch; }
.bio-texto .leitura { margin-top: 26px; }
.marcos-esc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(40px, 5vw, 80px); }
.marcos-esc li {
  display: grid; grid-template-columns: minmax(0, 210px) minmax(0, 1fr); gap: 6px 24px;
  padding-block: 20px; border-top: 1px solid var(--linha-esc);
}
.marcos-esc li:nth-last-child(-n+2) { border-bottom: 1px solid var(--linha-esc); }
.marcos-esc .marco-lead { color: #FFFFFF; }
.marcos-esc p:not(.marco-lead) { font-size: 15.5px; line-height: 1.55; color: var(--corpo-esc); }

/* contato */
.contato-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px clamp(40px, 6vw, 104px); align-items: start; }
.contato-grade h2 { margin-bottom: 28px; }
.contato-lado { display: grid; gap: 20px; }
.contato-bloco { padding: clamp(22px, 2.4vw, 32px); background: var(--lilas); border-radius: var(--raio); }
.contato-bloco h3 { margin-bottom: 12px; font-size: 20px; }
.contato-bloco address { margin-bottom: 16px; line-height: 1.6; color: var(--corpo); }
.redes-claro { display: flex; gap: 10px; }
.redes-claro a {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1.5px solid #D8CCEA; border-radius: var(--raio);
  background: #FFFFFF; color: var(--roxo);
  transition: border-color .15s;
}
.redes-claro a:hover { border-color: var(--roxo); }
.canal-acao { white-space: nowrap; }

/* investimento (página) */
.topo-grade { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px 64px; align-items: end; }
.topo .contagem { flex-direction: column; align-items: flex-start; gap: 10px; }
.topo .contagem-lista li:first-child { padding-left: 0; }
.insc-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px clamp(40px, 6vw, 104px); align-items: start; }
.insc-grade h2 { margin-bottom: 24px; }

/* home: foto da professora mais estreita, topo da foto alinhado ao rótulo */
@media (min-width: 1101px) {
  .prof-grade { grid-template-columns: minmax(0, 440px) minmax(0, 1fr); align-items: start; }
}

@media (max-width: 1100px) {
  .apr-grade { grid-template-columns: minmax(0, 1fr); }
  .apr-a, .apr-grade .camadas, .apr-b { grid-column: 1; grid-row: auto; }
  .apr-grade .camadas { margin-block: 44px 8px; }
  .marcos-esc { grid-template-columns: minmax(0, 1fr); }
  .marcos-esc li:nth-last-child(2) { border-bottom: 0; }
}
@media (max-width: 900px) {
  .dias, .hor-grade, .contato-grade, .insc-grade, .topo-grade { grid-template-columns: minmax(0, 1fr); }
  .hor-painel { max-width: 560px; }
  .em-corpo { padding-left: 16px; }
}
@media (max-width: 760px) {
  .kit-tabela thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .kit-tabela, .kit-tabela tbody { display: block; }
  .kit-tabela tr {
    display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 14px;
    padding-block: 16px; border-bottom: 1px solid var(--linha);
  }
  .kit-tabela tbody tr:first-child { border-top: 2px solid var(--n800); }
  .kit-tabela th, .kit-tabela td { display: block; padding: 0; border: 0; min-width: 0 !important; }
  .kit-tabela .kit-n { grid-row: 1 / span 3; width: auto; font-size: 28px; }
  .kit-tabela tbody th { margin-bottom: 8px; }
  .kit-tabela td[data-rot] { grid-column: 2; font-size: 15px; }
  .kit-tabela td[data-rot] + td[data-rot] { margin-top: 6px; }
  .kit-tabela td[data-rot]::before { content: attr(data-rot); display: block; font-size: 13px; font-weight: 600; color: var(--apoio); }
  .em-cab { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; padding-inline: 8px; }
  .em-cab .ac-n { font-size: 40px; }
  .em-corpo { padding-inline: 8px; }
  .ac-ferramentas { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .marcos-esc li { grid-template-columns: minmax(0, 1fr); }
  .turnos li { grid-template-columns: minmax(0, 1fr); }
  .turno { flex-direction: row; align-items: baseline; gap: 10px; }
  .chamada-acoes, .chamada-acoes .botao { width: 100%; }
}

/* menu do celular em telas baixas (320×568): tudo cabe sem rolar */
@media (max-width: 1040px) and (max-height: 640px) {
  .menu { padding-top: calc(var(--cab-h) + 18px); padding-bottom: 20px; }
  .menu-lista a { padding: 11px 0; font-size: 24px; }
  .menu-destaque { margin-top: 20px; padding: 14px 22px; }
  .menu-contatos { gap: 9px; padding-top: 22px; font-size: 15px; }
}

/* ==========================================================================
   23. Fase 3 — revisão de responsividade (relatorios.md, "DECISÕES DO ORQUESTRADOR" 1–17)
   Tudo aqui é ajuste de layout/toque/legibilidade; nenhuma animação, visual aprovado mantido.
   ========================================================================== */

/* --- 1. hero + faixa com folga (≥ 8px) na primeira tela: desconta a borda do cabeçalho + respiro --- */
.hero {
  min-height: clamp(480px, calc(100vh - var(--cab-h) - var(--top-h) - 10px), 940px);
  min-height: clamp(480px, calc(100svh - var(--cab-h) - var(--top-h) - 10px), 940px);
}

/* --- 5. quebras: títulos e rótulos equilibrados; valores de pagamento numa linha --- */
h1, h2, h3, .rotulo, .n-leg, .col-nome, .col-nota, .eixo-meta, .ac-rot, .camada-lead, .marco-lead { text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
.pag-dados dd.num { white-space: nowrap; overflow-wrap: normal; }

/* --- 13. ordem de cores da home: Dois regimes sobre branco (cartões lilás), Programa sobre lilás --- */
.regimes .painel { background: var(--lilas); }
.programa.lilas .eixos li { border-color: #DCD0EB; }
.programa.lilas .eixo:hover { background: #FFFFFF; }
.programa.lilas .eixo-seta { border-color: #D8CCEA; background: #FFFFFF; }
.programa.lilas .eixos-extra { background: #FFFFFF; }

/* --- 9. Dois regimes: base e rótulos dos dois gráficos na mesma linha (subgrid: cabeçalho | gráfico) --- */
.reg-paineis { grid-template-rows: auto auto; }
.regime { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
.regime .colunata { margin-top: 0; align-self: start; }
.col-txt { min-height: 0 !important; }

/* --- 7. professora: topo da foto alinhado ao rótulo em qualquer largura com 2 colunas --- */
.prof-grade { align-items: start; }

/* --- 10. painel do preço não estica com vazio no pé --- */
.inv-grade { align-items: start; }

/* --- 14. alvos de toque ≥ 44px sem mudar o visual --- */
.marca { display: flex; align-items: center; min-height: 44px; }
.menu-lista a { display: flex; align-items: center; min-height: 44px; padding-block: 0; }
.menu-lista a[aria-current="page"]::after { bottom: 6px; }
.topbar a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -3px; }
.migalhas a, .migalhas [aria-current] { display: inline-flex; align-items: center; min-height: 44px; margin-block: -12px; }
.link-seta { min-height: 44px; margin-block: -12px; }
.ctx-texto .link-seta { margin-top: 18px; }
.apr-b .link-seta { margin-top: 14px; }
.rodape-col ul { gap: 0; }
.rodape-col ul a, .rodape-contatos a, .rodape-site { display: inline-flex; align-items: center; min-height: 44px; }
.rodape-site { margin-top: 12px; }
.eixos-extra a { align-items: center; min-height: 44px; margin-block: -9px; }
.copiar-item { height: 44px; }
.ac-ferr { min-height: 44px; }
.turno-eixo { display: inline-block; padding-block: 10px; margin-block: -10px; }
/* canal de contato: a linha inteira é clicável (o link "Ligar/Conversar/Escrever" cobre o bloco) */
.canais li { position: relative; }
.canal-acao { position: static; }
.canal-acao::after { content: ""; position: absolute; inset: 0; }
.canal-valor a { position: relative; z-index: 1; }

/* --- 15. piso de 15px em texto e rótulos (só as unidades da contagem ficam menores) --- */
.rotulo, .hero-tag, .regime-lei, .reg-eixo-rot, .eixo-meta, .ac-rot, .ac-qtd, .migalhas ol, .turno-nome,
.faixa-dados dt, .contagem-rot, .folha-rot, .folha-dados dt, .col-nota, .copiar-item, .copiar-tudo-sub, .copiar-aviso,
.aviso-centro, .horarios th, .h-nota, .pag-dados dt, .canal-rot, .rodape-base p, .realizacao p, .barra-info, .barra-por,
.kit-tabela thead th, .ac-ferr, .topbar { font-size: 15px; }
.kit-tabela td[data-rot]::before { font-size: 15px; }
.folha-dados dd { font-size: 15px; }

/* --- 16. página atual = Investimento: estado discreto no botão do menu --- */
.menu-destaque[aria-current="page"] { box-shadow: 0 0 0 2px var(--n900), 0 0 0 4px rgba(239, 119, 50, .55); }

/* --- 17. "Foz do Iguaçu/PR" no máximo ~80px; contato: botões logo abaixo de Local/Hotel --- */
.foz h2 { font-size: clamp(46px, 4.2vw + 12px, 80px); }
.chamada-acoes-abaixo { margin-top: 28px; }

/* --- 3. WhatsApp alinhado ao container nas telas largas --- */
.whats-flutuante { right: max(20px, calc((100vw - 1320px) / 2 - 80px)); }

/* --- 4. hero ≥ 1800px: H1 numa linha; ≥ 1921px: arte posicionada pelo container --- */
@media (min-width: 1800px) {
  .hero-grade { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
  .h1-a { white-space: nowrap; }
  .data-dias { font-size: 164px; }
}
@media (min-width: 1921px) {
  .hero-fundo img {
    left: 50%; width: 1920px; margin-left: -960px;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%);
  }
}

/* --- 2. telas baixas (notebook 1366×768 / 1280×720): cabeçalho, barra e topos internos mais baixos --- */
@media (max-height: 700px) {
  .topo-in { padding-block: clamp(26px, 3.3vw, 50px) clamp(30px, 3.6vw, 56px); }
  .topo h1 { margin-top: 10px; font-size: clamp(36px, 2.6vw + 10px, 54px); }
  .topo-sub { margin-top: 10px; }
  .topo-evento { margin-top: 12px; }
  .topo + .secao, .topo + section { padding-top: calc(var(--secao) * .6); }
}
@media (max-height: 700px) and (min-width: 1041px) {
  :root { --cab-h: 64px; }
  .marca img { height: 44px; }
  .menu-destaque { padding-block: 10px; }
}
@media (max-height: 700px) {
  .barra-in { padding-block: 8px; }
  .barra-logo { height: 34px; }
  .barra-valor { font-size: 26px; }
  .barra-inscricao .botao { padding-block: 11px; min-height: 44px; }
}
/* celular deitado */
@media (max-height: 500px) {
  :root { --cab-h: 56px; }
  .marca img { height: 34px; }
  .menu-botao { width: 44px; height: 44px; }
  .barra-in { padding-block: 6px; }
  .barra-logo { display: none; }
  .barra-preco { margin-left: 0; }
  .barra-inscricao .botao { margin-left: auto; }
}
@media (max-height: 500px) and (max-width: 1040px) {
  .menu-aberto .menu {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px; align-content: start;
    padding-top: calc(var(--cab-h) + 14px);
  }
  .menu-lista { grid-column: 1; grid-row: 1 / span 2; }
  .menu-lista a { padding-block: 0; min-height: 44px; font-size: 21px; }
  .menu-destaque { grid-column: 2; grid-row: 1; margin-top: 0; justify-self: start; align-self: start; }
  .menu-contatos { grid-column: 2; grid-row: 2; margin-top: 0; padding-top: 20px; align-self: start; }
  .menu-contatos a { min-height: 44px; }
}

/* --- 12. painel do menu em tela alta (tablet em pé): contatos perto do conteúdo --- */
@media (max-width: 1040px) and (min-height: 1001px) {
  .menu-contatos { margin-top: clamp(36px, 8vh, 96px); }
}

/* --- 4 (C3). contagem regressiva em linha própria, de ponta a ponta (tablet / notebook estreito) --- */
@media (min-width: 761px) and (max-width: 1100px) and (min-height: 701px) {
  .faixa-in { flex-wrap: wrap; }
  .hero-faixa .contagem {
    flex: 1 1 100%; justify-content: space-between;
    padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .14);
  }
}
/* --- 4 (C2). tablet em pé: hero pela altura do conteúdo, sem vazios --- */
@media (max-width: 1100px) and (orientation: portrait) {
  .hero { min-height: 0; }
  .hero-grade { align-items: start; padding-block: 64px 56px; }
}

/* --- 8. contexto/apresentação: 2 colunas até 961px --- */
@media (min-width: 961px) and (max-width: 1100px) {
  .ctx-grade, .apr-grade { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 40px; }
  .apr-a { grid-column: 1; grid-row: 1; }
  .apr-grade .camadas { grid-column: 2; grid-row: 1 / span 2; margin-block: 0; }
  .apr-b { grid-column: 1; grid-row: 2; }
  .camadas { position: sticky; top: calc(var(--cab-h) + 24px); max-width: none; }
}
@media (max-width: 960px) {
  .leitura, .camadas { max-width: none; }
}
@media (min-width: 641px) and (max-width: 960px) {
  .camadas-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
}

/* --- 6. kit de modelos: 5 colunas só ≥ 1241; 761–1240 em 3 + 2 centralizado; ≤ 760 lista --- */
@media (min-width: 761px) and (max-width: 1240px) {
  .rito { display: flex; flex-wrap: wrap; justify-content: center; gap: 32px; }
  .rito::before { display: none; }
  .folha { flex: 0 1 calc((100% - 64px) / 3); min-height: 320px; }
  .folha:not(:last-child)::after { display: block; right: -21px; }
  .folha:nth-child(3)::after { display: none; }
}
@media (max-width: 760px) {
  .rito { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .rito::before { display: block; left: 30px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .folha { min-height: 0; padding: 20px; }
  .folha:not(:last-child)::after, .folha:nth-child(3)::after {
    display: block; top: auto; right: auto; bottom: -20px; left: 25px; margin: 0;
    width: 12px; height: 10px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }
  .folha-linhas { display: none; }
  .folha-dados { padding-bottom: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
}

/* --- 9. Dois regimes: 2 colunas até 701px (barras horizontais ≤ 900 para caber), 1 coluna abaixo --- */
@media (max-width: 900px) {
  .reg-paineis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .colunata { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); gap: 16px; padding-top: 28px; }
  .col-area { height: 26px; padding: 0; justify-content: flex-start; align-items: center; border-bottom: 0; border-left: 2px solid var(--n800); }
  .coluna {
    width: calc(var(--a) * 1%); height: 24px;
    background:
      linear-gradient(var(--c), var(--c)) 100% 50% / 9px 100% no-repeat,
      linear-gradient(var(--c), var(--c)) calc(100% - 14px) 50% / 6px 80% no-repeat,
      linear-gradient(var(--c), var(--c)) 0 50% / calc(100% - 26px) 60% no-repeat;
  }
  .col-txt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 6px 0 0; text-align: left; }
  .col-nota { margin-top: 0; }
}
@media (max-width: 700px) {
  .reg-paineis { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .regime { display: flex; flex-direction: column; grid-row: auto; }
}

/* --- 7 / 10. tablet 761–900: professora em 2 colunas (foto 300px | texto); horários em largura total --- */
@media (min-width: 761px) and (max-width: 900px) {
  .prof-grade { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 40px; }
  .prof-foto { max-width: none; }
  .marcos li { grid-template-columns: minmax(0, 1fr); }
  .foz-painel, .hor-painel { max-width: none; }
  .data-dias { font-size: clamp(120px, 20vw, 180px); }
  /* 11. "Também no programa" sem item órfão */
  .eixos-extra { flex-direction: column; align-items: flex-start; }
  .eixos-extra ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 24px; width: 100%; }
}

/* --- 10. pagamento em 901–1100: rótulo acima do valor (coluna do valor mais larga) --- */
@media (min-width: 901px) and (max-width: 1100px) {
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; }
  .pag-dados dt { grid-column: 1; }
  .pag-dados dd { grid-column: 1; grid-row: 2; }
  .copiar-item { grid-column: 2; grid-row: 1 / span 2; }
}

/* --- 4 (D5, D17). celular: data gigante logo depois do título; botões do hero em largura total --- */
@media (max-width: 760px) {
  .hero { min-height: 0; }
  .hero-grade { gap: 0; }
  .hero-texto { display: contents; }
  .hero-tag { order: 1; }
  .hero h1 { order: 2; }
  .hero-data { order: 3; margin-top: 30px; }
  .hero-sub { order: 4; margin-top: 30px; }
  .hero-acoes { order: 5; }
  /* 3. o WhatsApp nunca cobre o copyright no fim da página */
  .rodape-base p { padding-bottom: 92px; }
  /* 3 (D10). coluna dos botões Copiar com respiro à direita para o WhatsApp (48px) */
  .whats-flutuante { width: 48px; height: 48px; right: 8px; }
  .whats-flutuante .ic { width: 26px; height: 26px; }
  .pagamento { padding-inline: 18px; }
  .pag-dados > div { padding-right: 26px; }
  .copiar-tudo { width: calc(100% - 26px); }
}
@media (max-width: 560px) {
  .hero-acoes .botao { flex: 1 1 100%; }
}

/* --- 10 / 11 / 17. telas de 360px ou menos --- */
@media (max-width: 360px) {
  .copiar-item { width: 44px; padding: 0; justify-content: center; }
  .copiar-item-txt { display: none; }
  .ac-botao { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 12px; }
  .ac-botao .ac-n, .em-cab .ac-n { font-size: 32px; }
  .em-cab { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }
  .eixo { grid-template-columns: 40px minmax(0, 1fr) 36px; gap: 12px; }
  .eixo-n { font-size: 34px; }
  .botao { padding-inline: 14px; gap: 8px; }
}

/* ajustes finais da fase 3 (medição) */
.menu-destaque, .barra-inscricao .botao { min-height: 44px; }
.foz-local dt { font-size: 15px; }
@media (max-width: 400px) { .barra-inscricao .botao { font-size: 15px; } }
@media (max-width: 360px) { .so-largo { display: none; } }
