/* ==========================================================================
   Masterclass SCDP na Prática — ContaGov · Foz do Iguaçu, 25 e 26/01/2027 (v2)
   Direção visual exclusiva: "Cartão de embarque" — noite quente + âmbar da logo + papel de bilhete.
   Fontes: Funnel Display (títulos e numerais) + Funnel Sans (texto).
   Motivos: canto côncavo de bilhete (.bilhete), picote, rota com avião, painel de embarque.
   ZERO animação (nenhuma regra de quadros-chave); só transições de cor (≤ .15s) em hover/foco.
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  --n950: #0F0B07;
  --n900: #17110B;
  --n850: #1F170F;
  --n800: #2A1F15;
  --n700: #3A2B1D;
  --ambar: #FFB02E;
  --ambar-h: #FFC35C;
  --laranja: #F28A1A;
  --brasa: #E35F0F;
  --cobre: #A8470A;
  --papel: #FBF6EE;
  --papel2: #F3EADD;
  --linha: #E6D9C6;
  --linha-forte: #CDBBA3;
  --branco: #FFFFFF;
  --tit: #1C140C;
  --corpo: #4A3C2E;
  --apoio: #6E5E4D;
  --tit-esc: #FFFFFF;
  --corpo-esc: #E9DCCB;
  --apoio-esc: rgba(255, 255, 255, .64);
  --linha-esc: rgba(255, 255, 255, .12);
  --whats: #25D366;

  --titulo: "Funnel Display", "Funnel Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --texto: "Funnel Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --recipiente: 1320px;
  --respiro: clamp(16px, 4vw, 32px);
  --secao: clamp(64px, 7vw, 112px);
  --cab-h: 88px;
  --raio-botao: 10px;
  --r: 16px;            /* raio do canto côncavo de bilhete */
  --foco: var(--cobre);
}

/* ---------- 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;
  background: var(--branco);
  color: var(--corpo);
  font: 400 17px/1.65 var(--texto);
  overflow-x: clip;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p, ul, ol, dl, dd, figure, h1, h2, h3, h4, address, table { margin: 0; }
ul, ol { padding: 0; list-style: none; }
address { font-style: normal; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4 {
  font-family: var(--titulo);
  font-weight: 600;
  color: var(--tit);
  letter-spacing: -.02em;
  text-wrap: balance;
}
h2 { font-size: clamp(32px, 3.3vw, 50px); line-height: 1.08; letter-spacing: -.025em; }
h3 { font-size: clamp(21px, .6vw + 15px, 25px); line-height: 1.22; letter-spacing: -.012em; }
strong, b { font-weight: 600; }
::selection { background: var(--ambar); color: var(--n900); }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 3px; border-radius: 4px; }

.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;
}
.pular {
  position: absolute; left: 16px; top: -60px; z-index: 200;
  background: var(--ambar); color: var(--n900); padding: 10px 16px; border-radius: var(--raio-botao);
  font-weight: 600; text-decoration: none;
}
.pular:focus { top: 12px; }

.recipiente {
  width: 100%;
  max-width: calc(var(--recipiente) + 2 * var(--respiro));
  margin-inline: auto;
  padding-inline: var(--respiro);
}
.secao { padding-block: var(--secao); }

.escuro {
  --foco: var(--ambar);
  color: var(--corpo-esc);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.escuro h1, .escuro h2, .escuro h3 { color: var(--tit-esc); }

/* rótulo de seção: caixa mista, sem tracinho, cobre no claro / âmbar no escuro */
.rotulo {
  font: 500 14.5px/1.4 var(--texto);
  color: var(--cobre);
  margin-bottom: 14px;
}
.escuro .rotulo { color: var(--ambar); }

/* cabeçalho de seção: título à esquerda, apoio à direita */
.cab-secao {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 24px clamp(32px, 5vw, 96px); align-items: end;
  margin-bottom: clamp(40px, 4.5vw, 64px);
}
.cab-secao h2 { max-width: 760px; }
.cab-lead { font-size: 18px; color: var(--corpo); max-width: 520px; }
.escuro .cab-lead { color: var(--corpo-esc); }
.cab-simples { grid-template-columns: minmax(0, 1fr); }

/* ---------- 3. Motivo: canto côncavo de bilhete ----------
   4 recortes côncavos (raio --r) via mask, sem sombra. Dois .bilhete encostados formam o picote:
   os quartos de círculo se juntam em meia-lua de cada lado da emenda. */
.bilhete {
  --mk: #0000 calc(var(--r) - .5px), #000 var(--r);
  -webkit-mask:
    radial-gradient(circle at 0 0, var(--mk)) 0 0 / 51% 51% no-repeat,
    radial-gradient(circle at 100% 0, var(--mk)) 100% 0 / 51% 51% no-repeat,
    radial-gradient(circle at 0 100%, var(--mk)) 0 100% / 51% 51% no-repeat,
    radial-gradient(circle at 100% 100%, var(--mk)) 100% 100% / 51% 51% no-repeat;
  mask:
    radial-gradient(circle at 0 0, var(--mk)) 0 0 / 51% 51% no-repeat,
    radial-gradient(circle at 100% 0, var(--mk)) 100% 0 / 51% 51% no-repeat,
    radial-gradient(circle at 0 100%, var(--mk)) 0 100% / 51% 51% no-repeat,
    radial-gradient(circle at 100% 100%, var(--mk)) 100% 100% / 51% 51% no-repeat;
}
/* picote: linha tracejada (::before) na emenda entre dois .bilhete — ver .emb-canhoto, .bp-canhoto */

/* ---------- 4. Ícones e botões ---------- */
.ic { flex: none; }
.ic-seta { width: 16px; height: 16px; }

.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font: 600 15.5px/1.2 var(--texto);
  padding: 15px 22px;
  border-radius: var(--raio-botao);
  border: 1.5px solid transparent;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color .15s, color .15s, border-color .15s;
}
.botao .ic:not(.ic-seta) { width: 18px; height: 18px; }
.botao-ambar { background: var(--ambar); color: var(--n900); }
.botao-ambar:hover { background: var(--ambar-h); }
.botao-escuro { background: var(--n900); color: var(--branco); }
.botao-escuro:hover { background: var(--n800); }
.botao-contorno-claro { border-color: rgba(255, 255, 255, .45); color: var(--branco); }
.botao-contorno-claro:hover { border-color: var(--branco); background: rgba(255, 255, 255, .08); }
.botao-contorno { border-color: var(--n900); color: var(--n900); }
.botao-contorno:hover { background: var(--n900); color: var(--branco); }

.link-seta {   /* alvo de 44px; o sublinhado é um fundo de 1,5px logo abaixo do texto */
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding-block: 8px 10px;
  font: 600 15.5px/1.3 var(--texto);
  color: var(--cobre);
  text-decoration: none;
  background: linear-gradient(var(--linha), var(--linha)) 0 calc(100% - 4px) / 100% 1.5px no-repeat;
  transition: background-color .15s;
}
.link-seta:hover { background-image: linear-gradient(var(--cobre), var(--cobre)); }

/* ---------- 5. Topbar + cabeçalho ---------- */
.topbar {
  background: var(--n950);
  color: rgba(255, 255, 255, .74);
  font-size: 13.5px;
  line-height: 1.3;
  -webkit-font-smoothing: antialiased;
  --foco: var(--ambar);
}
.topbar-in { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar a { text-decoration: none; transition: color .15s; }
.topbar a:hover { color: var(--branco); }
.topbar p a { color: var(--branco); }
.topbar-contatos { display: flex; gap: 26px; }
.topbar-contatos a { display: inline-flex; align-items: center; gap: 7px; }
.topbar-contatos .ic { width: 15px; height: 15px; color: var(--ambar); }

.cabecalho {
  position: sticky; top: 0; z-index: 60;
  background: var(--n900);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  --foco: var(--ambar);
}
.cabecalho.rolado { box-shadow: 0 6px 24px rgba(15, 11, 7, .32); }
.cabecalho-in { height: var(--cab-h); display: flex; align-items: center; gap: 32px; }
.marca { display: block; flex: none; }
.marca img { height: 60px; width: auto; }
.menu { margin-left: auto; display: flex; align-items: center; gap: 38px; }
.menu-lista { display: flex; gap: 34px; }
.menu-lista a {
  position: relative; display: block; padding: 8px 0;
  font: 500 15.5px/1.3 var(--texto);
  color: rgba(255, 255, 255, .85);
  text-decoration: none;
  -webkit-font-smoothing: antialiased;
  transition: color .15s;
}
.menu-lista a:hover, .menu-lista a[aria-current="page"] { color: var(--branco); }
.menu-lista a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--ambar);
}
.menu-destaque { padding: 13px 20px; }
.menu-contatos { display: none; }
.menu-botao { display: none; }

/* ---------- 6. Hero: cartaz + cartão de embarque ---------- */
.hero {
  position: relative; isolation: isolate;
  background: var(--n900);
  overflow: hidden;
}
.hero-fundo, .hero-fundo img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%;
}
.hero-fundo img { object-fit: cover; object-position: 100% 62%; filter: brightness(1.32) saturate(1.12); }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(15, 11, 7, .93) 0%, rgba(15, 11, 7, .84) 30%, rgba(15, 11, 7, .38) 54%, rgba(15, 11, 7, .06) 78%, rgba(15, 11, 7, 0) 100%),
    linear-gradient(0deg, rgba(15, 11, 7, .55) 0%, rgba(15, 11, 7, 0) 22%);
}
.hero-grade {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 40px clamp(32px, 4vw, 72px); align-items: center;
  padding-block: clamp(44px, 6.4vh, 84px);
}
.hero-tag {
  display: inline-flex; align-items: center; gap: 10px;
  font: 500 14.5px/1.4 var(--texto); color: var(--ambar);
  margin-bottom: 22px;
}
.hero-tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ambar); }
.hero h1 {
  font-size: clamp(42px, 5.6vw, 88px);
  line-height: .98;
  letter-spacing: -.03em;
  font-weight: 600;
}
.h1-pre {
  display: block;
  font-size: .5em; line-height: 1.1;
  font-weight: 500;
  letter-spacing: -.015em;
  margin-bottom: .14em;
}
.hero-sub {
  margin-top: 24px; max-width: 620px; text-wrap: balance;
  font-size: clamp(18px, 1.2vw + 8px, 21px); line-height: 1.5;
  color: var(--corpo-esc);
}
.hero-acoes { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }

/* cartão de embarque — UM só painel com máscara: 4 cantos côncavos + 2 meias-luas do picote (mesmo raio),
   recortados por camadas que se intersectam; o fundo papel é contínuo (sem emenda entre corpo e canhoto). */
.embarque {
  --r: 15px;
  --px: 26px;            /* respiro lateral interno */
  --vao: 16px;           /* ritmo vertical entre blocos */
  --canhoto: 64px;       /* altura do canhoto (centro das meias-luas fica na emenda) */
  --mk: #0000 calc(var(--r) - .5px), #000 calc(var(--r) + .5px);
  position: relative;
  width: 100%; max-width: 470px; justify-self: end;
  background: var(--papel);
  color: var(--n900);
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  -webkit-mask:
    radial-gradient(circle at 0 0, var(--mk)), radial-gradient(circle at 100% 0, var(--mk)),
    radial-gradient(circle at 0 100%, var(--mk)), radial-gradient(circle at 100% 100%, var(--mk)),
    radial-gradient(circle at 0 calc(100% - var(--canhoto)), var(--mk)),
    radial-gradient(circle at 100% calc(100% - var(--canhoto)), var(--mk));
  -webkit-mask-composite: source-in;
  mask:
    radial-gradient(circle at 0 0, var(--mk)), radial-gradient(circle at 100% 0, var(--mk)),
    radial-gradient(circle at 0 100%, var(--mk)), radial-gradient(circle at 100% 100%, var(--mk)),
    radial-gradient(circle at 0 calc(100% - var(--canhoto)), var(--mk)),
    radial-gradient(circle at 100% calc(100% - var(--canhoto)), var(--mk));
  mask-composite: intersect;
}
.emb-corpo { padding: 0 0 var(--vao); }
.emb-faixa {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 42px; padding: 0 var(--px);
  background: linear-gradient(90deg, var(--ambar) 0%, var(--laranja) 100%);
  font: 600 13.5px/1 var(--texto);
  color: var(--n900);
}
.emb-faixa-tit { display: inline-flex; align-items: center; gap: 9px; }
.emb-faixa-tit .ic { width: 16px; height: 16px; transform: rotate(-30deg); }
/* trajeto: De/Para em cima, "Seu órgão" e "IGU" na mesma linha de base, avião centrado na altura do código */
.emb-rota {
  display: grid; grid-template-columns: auto minmax(40px, 1fr) auto; grid-template-rows: auto auto auto;
  column-gap: 16px; align-items: baseline;
  padding: 18px var(--px) 0;
}
.emb-ponto { display: contents; }
.emb-rot { grid-row: 1; font: 500 12.5px/1.3 var(--texto); color: var(--apoio); }
.emb-orig { grid-row: 2; grid-column: 1; font: 600 21px/1 var(--titulo); letter-spacing: -.01em; white-space: nowrap; }
.emb-dest .emb-rot { grid-column: 3; text-align: right; }
.emb-cod { grid-row: 2; grid-column: 3; text-align: right; font: 700 46px/1 var(--titulo); letter-spacing: -.02em; margin-top: 2px; }
.emb-cid { grid-row: 3; grid-column: 3; text-align: right; font-size: 13px; line-height: 1.3; color: var(--apoio); margin-top: 4px; white-space: nowrap; }
.emb-voo {
  grid-row: 2; grid-column: 2; align-self: center;
  position: relative; height: 24px; margin-top: 2px;
  display: grid; place-items: center;
  color: var(--cobre);
}
.emb-voo::before {
  content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; margin-top: -.75px;
  background: linear-gradient(90deg, var(--linha-forte) 0 4px, transparent 4px 9px) 0 0 / 9px 1.5px repeat-x;
}
.emb-voo .ic { position: relative; width: 24px; height: 24px; background: var(--papel); padding: 0 5px; box-sizing: content-box; }
.emb-data {
  display: flex; align-items: center; gap: 18px;
  margin: var(--vao) var(--px) 0; padding-top: var(--vao);
  border-top: 1px solid var(--linha);
}
.emb-dias { font: 700 clamp(54px, 4.6vw, 66px)/.82 var(--titulo); letter-spacing: -.035em; white-space: nowrap; }
.emb-e { font-size: .55em; font-weight: 400; letter-spacing: 0; margin-inline: .26em; }
.emb-mes { display: grid; gap: 4px; font: 600 17px/1.2 var(--titulo); letter-spacing: -.005em; padding-top: 2px; }
.emb-mes small { font: 400 14px/1.3 var(--texto); color: var(--apoio); letter-spacing: 0; }
.emb-dados {
  display: grid; grid-template-columns: repeat(3, auto); justify-content: space-between; gap: 12px;
  margin: var(--vao) var(--px) 0; padding-top: var(--vao);
  border-top: 1px solid var(--linha);
}
.emb-dados dt { font: 500 12.5px/1.3 var(--texto); color: var(--apoio); }
.emb-dados dd { font: 600 17px/1.3 var(--titulo); margin-top: 3px; white-space: nowrap; }
.emb-dados dd small { display: block; font: 400 12.5px/1.3 var(--texto); color: var(--apoio); }
/* canhoto: altura fixa; picote = tracejado na emenda, começando e terminando antes das meias-luas */
.emb-canhoto {
  position: relative;
  display: flex; align-items: center; gap: 18px;
  height: var(--canhoto); padding: 0 var(--px);
  font-size: 14px; line-height: 1.3; color: var(--corpo);
}
.emb-canhoto::before {
  content: ""; position: absolute; top: -.75px; height: 1.5px;
  left: calc(var(--r) + 14px); right: calc(var(--r) + 14px);
  background: linear-gradient(90deg, var(--linha-forte) 0 5px, transparent 5px 10px) 0 0 / 10px 1.5px repeat-x;
}
.emb-canhoto strong { color: var(--n900); }
.emb-barras {
  --barra: var(--n800);
  flex: none; width: 124px; height: 26px;
  background: linear-gradient(90deg, transparent 0px, var(--barra) 0px 1.5px, transparent 1.5px, transparent 3px, var(--barra) 3px 4px, transparent 4px, transparent 5.5px, var(--barra) 5.5px 8.0px, transparent 8.0px, transparent 9.5px, var(--barra) 9.5px 10.5px, transparent 10.5px, transparent 12px, var(--barra) 12px 13px, transparent 13px, transparent 14.5px, var(--barra) 14.5px 17.5px, transparent 17.5px, transparent 19px, var(--barra) 19px 20px, transparent 20px, transparent 21.5px, var(--barra) 21.5px 23.0px, transparent 23.0px, transparent 25px, var(--barra) 25px 26px, transparent 26px, transparent 27px, var(--barra) 27px 29.5px, transparent 29.5px, transparent 31px, var(--barra) 31px 32px, transparent 32px, transparent 33.5px, var(--barra) 33.5px 34.5px, transparent 34.5px, transparent 36px, var(--barra) 36px 38px, transparent 38px, transparent 39.5px, var(--barra) 39.5px 40.5px, transparent 40.5px, transparent 42px, var(--barra) 42px 45px, transparent 45px, transparent 46.5px, var(--barra) 46.5px 47.5px, transparent 47.5px, transparent 49px, var(--barra) 49px 50.5px, transparent 50.5px, transparent 52px, var(--barra) 52px 53px, transparent 53px, transparent 54.5px, var(--barra) 54.5px 56.5px, transparent 56.5px, transparent 58px, var(--barra) 58px 59px, transparent 59px) 0 0 / 62px 100% repeat-x;
}

/* faixa no pé do hero */
.hero-faixa {
  border-top: 1px solid rgba(255, 255, 255, .14);
  background: rgba(15, 11, 7, .5);
}
.faixa-in {
  display: flex; align-items: center; justify-content: space-between; gap: 20px 40px;
  min-height: 84px; padding-block: 14px;
}
.faixa-dados { display: flex; flex-wrap: wrap; gap: 12px clamp(24px, 3vw, 48px); }
.faixa-dados div { position: relative; padding-left: 32px; }
.faixa-dados dt { font-size: 13px; line-height: 1.3; color: var(--apoio-esc); }
.faixa-dados dt .ic { position: absolute; left: 0; top: 50%; translate: 0 -50%; width: 21px; height: 21px; color: var(--ambar); }
.faixa-dados dd { font: 600 16.5px/1.3 var(--texto); color: var(--branco); white-space: nowrap; margin-top: 2px; }

/* contagem regressiva */
.contagem { display: flex; align-items: center; gap: 18px; font-variant-numeric: tabular-nums; }
.contagem-rot { font: 500 14.5px/1.3 var(--texto); color: var(--ambar); }
.contagem-lista { display: flex; gap: 6px; }
.contagem-lista li {
  display: grid; justify-items: center; min-width: 60px;
  padding: 7px 8px 6px; border-radius: 6px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .1);
}
.contagem-lista span { font: 600 26px/1 var(--titulo); color: var(--branco); letter-spacing: -.01em; }
.contagem-lista small { font-size: 12px; line-height: 1.2; color: var(--apoio-esc); margin-top: 4px; }
.contagem.acabou .contagem-lista, .contagem.acabou .contagem-rot { display: none; }
.contagem-fim { font-weight: 600; color: var(--branco); }

/* ---------- 7. Apresentação + números ---------- */
.apr-grade {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 48px clamp(40px, 6vw, 112px); align-items: center;
}
.apr-texto h2 { max-width: 640px; }
.leitura { display: grid; gap: 18px; margin-top: 28px; max-width: 690px; }
.destaque {
  margin-top: 36px; padding-left: 26px; max-width: 690px;
  border-left: 2px solid var(--cobre);
}
.destaque-frase {
  font: 500 clamp(24px, 1.5vw + 8px, 30px)/1.25 var(--titulo);
  letter-spacing: -.015em; color: var(--tit);
  margin-bottom: 14px;
}
.apr-foto { --r: 18px; }
.apr-foto img { width: 100%; aspect-ratio: 1; object-fit: cover; }

.numeros {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(56px, 6vw, 88px);
  border-top: 1px solid var(--linha);
}
.numeros li { display: grid; gap: 6px; padding: 30px 28px 4px; border-left: 1px solid var(--linha); }
.numeros li:first-child { border-left: 0; padding-left: 0; }
.num {
  font: 500 clamp(44px, 3.9vw, 58px)/1 var(--titulo);
  letter-spacing: -.03em; color: var(--cobre);
  white-space: nowrap; font-variant-numeric: tabular-nums;
}
.num-txt { font-size: 16px; color: var(--apoio); line-height: 1.4; }

/* ---------- 8. A rota (mapa com avião) ---------- */
.rota { background: var(--n850); }
.rota-mapa {
  position: relative;
  padding: 0 48px 0 76px;
}
.rota-mapa::before {   /* a rota: linha tracejada */
  content: ""; position: absolute; left: 30px; right: 18px; top: 13px; height: 2px;
  background: linear-gradient(90deg, rgba(255, 176, 46, .7) 0 8px, transparent 8px 16px) 0 0 / 16px 2px repeat-x;
}
.rota-aviao {
  position: absolute; left: 0; top: -9px;
  color: var(--ambar);
  background: var(--n850); padding-right: 6px;
}
.rota-aviao .ic { width: 44px; height: 44px; }
.rota-destino {
  position: absolute; right: 0; top: -2px;
  display: grid; place-items: center;
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--n850); border: 1.5px solid var(--ambar); color: var(--ambar);
}
.rota-destino .ic { width: 18px; height: 18px; }
.rota-paradas { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 22px; }
.rota-paradas li { position: relative; display: grid; align-content: start; gap: 10px; padding-top: 44px; }
.rota-paradas li::before {   /* parada: bolinha âmbar sobre a linha */
  content: ""; position: absolute; left: 0; top: 5px;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--ambar); border: 4px solid var(--n850); box-sizing: content-box; margin-left: -4px; margin-top: -4px;
}
.parada-num { font: 500 30px/1 var(--titulo); color: var(--branco); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.parada-nome { font-size: 16px; line-height: 1.4; color: var(--corpo-esc); max-width: 180px; }

.regra-pratica {
  display: grid; grid-template-columns: 1fr 1fr;
  margin-top: clamp(56px, 6vw, 88px);
  border: 1px solid var(--linha-esc); border-radius: 4px;
  position: relative;
}
.regra-pratica::after {   /* picote vertical entre Regra e Prática */
  content: ""; position: absolute; top: 18px; bottom: 18px; left: 50%; width: 2px; margin-left: -1px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .22) 0 6px, transparent 6px 12px) 0 0 / 2px 12px repeat-y;
}
.rp-lado { padding: clamp(28px, 3vw, 44px); display: flex; flex-direction: column; gap: 12px; }
.rp-palavra { font: 600 clamp(34px, 3vw, 46px)/1 var(--titulo); color: var(--branco); letter-spacing: -.03em; }
.rp-lado:last-child .rp-palavra { color: var(--ambar); }
.rp-txt { font-size: 17px; color: var(--corpo-esc); max-width: 480px; margin-bottom: 10px; }
.rp-bloco { font-size: 14.5px; color: var(--apoio-esc); margin-top: auto; padding-top: 14px; border-top: 1px solid var(--linha-esc); }

/* ---------- 9. Programa (módulos em painéis-bilhete) ---------- */
.programa { background: var(--papel); }
.prog-cab { text-align: center; max-width: 820px; margin: 0 auto clamp(40px, 4.5vw, 60px); }
.prog-cab h2 { margin-inline: auto; }
.prog-linha { margin-top: 16px; font: 500 16.5px/1.4 var(--texto); color: var(--cobre); text-wrap: balance; }

/* home: dois módulos em lista limpa */
.prog-mods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px clamp(32px, 4vw, 64px); }
.prog-mod { display: flex; flex-direction: column; border-top: 2px solid var(--n900); padding-top: 26px; }
.pm-cab { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: start; margin-bottom: 22px; }
.pm-num { font: 600 44px/.9 var(--titulo); color: var(--cobre); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.pm-rot { font: 500 14.5px/1.4 var(--texto); color: var(--cobre); margin-bottom: 4px; }
.pm-cab h3 { font-size: clamp(21px, .5vw + 16px, 24px); }
.pm-linhas { border-top: 1px solid var(--linha); flex: 1; }
.pm-linhas li { display: grid; gap: 2px; padding: 14px 0; border-bottom: 1px solid var(--linha); }
.pm-li-rot { font: 500 13.5px/1.4 var(--texto); color: var(--cobre); }
.pm-li-tit { font: 500 17px/1.45 var(--texto); color: var(--tit); }
.pm-marca {
  display: inline-flex; align-items: center; gap: 7px; justify-self: start;
  font: 500 13px/1.3 var(--texto); color: var(--cobre); margin-bottom: 6px;
}
.pm-marca .ic { width: 17px; height: 17px; }
.pm-pratica .pm-li-rot { color: var(--apoio); }
.pm-link { align-self: flex-start; margin-top: 12px; }

/* programação: acordeão dos módulos (padrão do Orçamento) — abre/fecha sem transição de altura */
.ac-ferramentas { display: none; justify-content: center; gap: 10px; margin-bottom: 22px; }
html.js .ac-ferramentas { display: flex; }
.ac-ferramentas button {
  padding: 10px 16px;
  border: 1.5px solid var(--linha-forte); border-radius: 8px;
  background: var(--branco); color: var(--tit);
  font: 600 15px/1.2 var(--texto); cursor: pointer;
  transition: border-color .15s, background-color .15s;
}
.ac-ferramentas button:hover { border-color: var(--n900); }
.acordeao { display: grid; gap: 14px; max-width: 1080px; margin-inline: auto; }
.ac-item { background: var(--branco); border: 1px solid var(--linha); border-radius: 10px; overflow: hidden; }
.ac-item:has(.ac-botao[aria-expanded="true"]) { border-color: var(--n900); }
.ac-cab { font: inherit; letter-spacing: 0; }
.ac-botao {
  display: grid; grid-template-columns: 76px minmax(0, 1fr) 44px; align-items: center; gap: 22px;
  width: 100%; padding: 22px 26px;
  border: 0; background: var(--branco); color: var(--tit); text-align: left; cursor: pointer;
  transition: background-color .15s, color .15s;
}
.ac-botao:hover { background: var(--papel); }
.ac-botao:focus-visible { outline-offset: -4px; }
.ac-num { font: 600 44px/1 var(--titulo); letter-spacing: -.03em; color: var(--cobre); font-variant-numeric: tabular-nums; }
.ac-txt { display: grid; gap: 3px; }
.ac-rot { font: 500 14px/1.4 var(--texto); color: var(--cobre); }
.ac-tit { font: 600 clamp(19px, .6vw + 14px, 24px)/1.25 var(--titulo); letter-spacing: -.015em; }
.ac-qt { font-size: 14.5px; color: var(--apoio); margin-top: 2px; }
.ac-ic {
  position: relative; display: block; width: 44px; height: 44px;
  border: 1.5px solid var(--linha-forte); border-radius: 8px;
  transition: background-color .15s, border-color .15s;
}
.ac-ic::before, .ac-ic::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; margin: -1px 0 0 -7px;
  border-radius: 2px; background: currentColor;
}
.ac-ic::after { transform: rotate(90deg); }
/* aberto: cabeça escura, número âmbar */
.ac-botao[aria-expanded="true"] { background: var(--n900); color: var(--branco); --foco: var(--ambar); -webkit-font-smoothing: antialiased; }
.ac-botao[aria-expanded="true"]:hover { background: var(--n800); }
.ac-botao[aria-expanded="true"] .ac-num, .ac-botao[aria-expanded="true"] .ac-rot { color: var(--ambar); }
.ac-botao[aria-expanded="true"] .ac-qt { color: var(--apoio-esc); }
.ac-botao[aria-expanded="true"] .ac-ic { border-color: rgba(255, 255, 255, .3); }
.ac-botao[aria-expanded="true"] .ac-ic::after { display: none; }
.ac-corpo { padding: 26px 26px 30px calc(26px + 76px + 22px); }
.ac-bloco { font: 600 15.5px/1.4 var(--texto); letter-spacing: 0; color: var(--tit); margin-bottom: 4px; }
.ac-linhas + .ac-bloco { margin-top: 26px; }
.ac-linhas li { display: grid; gap: 2px; padding: 13px 0; border-bottom: 1px solid var(--linha); }
.ac-linhas li:last-child { border-bottom: 0; }
.ac-li-rot { font: 500 13.5px/1.4 var(--texto); color: var(--cobre); }
.ac-li-tit { font: 500 17px/1.45 var(--texto); color: var(--tit); }
.ac-pratica {
  position: relative; padding: 14px 18px 14px 62px !important;
  background: var(--papel2); border-radius: 8px; margin-top: 8px;
}
.ac-pratica .ic { position: absolute; left: 20px; top: 50%; translate: 0 -50%; width: 26px; height: 26px; color: var(--cobre); }
.prog-acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: clamp(40px, 4vw, 56px); }
.aviso { font-size: 14px; line-height: 1.55; color: var(--apoio); max-width: 860px; margin: 26px auto 0; text-align: center; }
.aviso-esq { text-align: left; margin-inline: 0; }

/* ---------- 10. Reserve sua vaga (foto + noite) ---------- */
.reserve { position: relative; isolation: isolate; background: var(--n900); overflow: hidden; }
.reserve-fundo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; filter: saturate(.55); }
.reserve::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(15, 11, 7, .94) 0%, rgba(23, 15, 8, .8) 50%, rgba(42, 22, 8, .66) 100%),
    linear-gradient(0deg, rgba(227, 95, 15, .16), rgba(227, 95, 15, .16));
}
.reserve-in {
  display: flex; align-items: center; justify-content: space-between; gap: 32px 56px; flex-wrap: wrap;
  padding-block: clamp(56px, 6vw, 92px);
}
.reserve h2 { font-size: clamp(32px, 3.6vw, 54px); max-width: 640px; }
.reserve-evento { font: 500 21px/1.3 var(--titulo); color: var(--ambar); margin-top: 16px; }
.reserve-info { color: var(--corpo-esc); margin-top: 4px; }
.reserve-acao { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.reserve-preco { display: grid; text-align: right; }
.reserve-valor { font: 600 clamp(36px, 3.2vw, 48px)/1 var(--titulo); color: var(--branco); letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.reserve-por { font-size: 15px; color: var(--apoio-esc); margin-top: 6px; }

/* ---------- 11. Professor ---------- */
.prof-grade {
  display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
  gap: 48px clamp(40px, 6vw, 104px); align-items: start;
}
.prof-foto { --r: 18px; max-width: 420px; }
.prof-foto img { width: 100%; }
.prof-cargo { font: 500 17px/1.4 var(--texto); color: var(--cobre); margin-top: 10px; }
.prof-lead { margin-top: 24px; max-width: 720px; }
.marcos { margin: 32px 0 36px; border-top: 1px solid var(--linha); max-width: 760px; }
.marcos li {
  display: grid; grid-template-columns: minmax(0, 210px) minmax(0, 1fr); gap: 6px 28px; align-items: baseline;
  padding: 15px 0; border-bottom: 1px solid var(--linha);
}
.marco-lead { font: 500 19px/1.3 var(--titulo); color: var(--tit); letter-spacing: -.01em; }
.marco-txt { font-size: 16.5px; line-height: 1.5; }

/* ---------- 12. Público-alvo ---------- */
.publico { background: var(--n850); }
.pub-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); gap: 40px clamp(40px, 6vw, 112px); align-items: start; }
.pub-cab h2 { max-width: 480px; }
.pub-lista { border-top: 1px solid var(--linha-esc); }
.pub-lista li {
  display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 18px; align-items: baseline;
  padding: 17px 0; border-bottom: 1px solid var(--linha-esc);
  font-size: 17px; line-height: 1.5; color: var(--corpo-esc);
}
.pub-num { font: 500 22px/1 var(--titulo); color: var(--ambar); font-variant-numeric: tabular-nums; }
.ao-final {
  margin-top: clamp(56px, 6vw, 88px); padding-top: clamp(32px, 3vw, 44px);
  border-top: 1px solid var(--linha-esc);
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); gap: 16px clamp(40px, 6vw, 112px);
}
.ao-final-txt { font: 400 clamp(21px, 1.2vw + 8px, 25px)/1.45 var(--titulo); color: var(--branco); letter-spacing: -.01em; }

/* ---------- 13. Investimento ---------- */
.investimento { background: var(--papel2); }
.inv-grade { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(20px, 2.4vw, 36px); align-items: start; }
.inv-esq .aviso { margin-top: 22px; }
.bilhete-preco { --r: 18px; display: flex; flex-direction: column; }
.bp-principal, .bp-canhoto { background: var(--branco); padding: clamp(28px, 3vw, 44px); }
.bp-principal {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 0 32px;
  padding-bottom: clamp(26px, 2.6vw, 36px);
}
.bp-principal .bp-rot { grid-column: 1 / -1; }
.bp-canhoto { position: relative; flex: 1; padding-top: clamp(26px, 2.6vw, 34px); }
.bp-canhoto::before {   /* picote */
  content: ""; position: absolute; top: -1px; left: calc(var(--r) + 8px); right: calc(var(--r) + 8px); height: 2px;
  background: linear-gradient(90deg, var(--linha-forte) 0 6px, transparent 6px 12px) 0 0 / 12px 2px repeat-x;
}
.bp-rot { font: 500 14.5px/1.4 var(--texto); color: var(--cobre); }
.bp-valor {
  font: 600 clamp(46px, 4.4vw, 64px)/1 var(--titulo); color: var(--tit); letter-spacing: -.035em;
  margin-top: 22px; white-space: nowrap; font-variant-numeric: tabular-nums;
}
.bp-moeda { font-size: .5em; letter-spacing: -.01em; vertical-align: .62em; margin-right: .08em; }
.bp-por { color: var(--apoio); font-size: 16px; margin-top: 12px; }
.bp-principal .botao { grid-column: 2; grid-row: 2 / span 2; align-self: center; }
.bp-valor, .bp-por { grid-column: 1; }
.bp-canhoto h3 { font-size: 19px; }
.incluso { display: grid; gap: 14px; margin-top: 18px; max-width: 560px; }
.incluso li { position: relative; padding-left: 20px; font-size: 16px; line-height: 1.5; }
.incluso li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--cobre); }

.pagamento { --r: 18px; background: var(--branco); padding: clamp(28px, 3vw, 40px); }
.pagamento h3 { font-size: 21px; }
.pag-intro { font-size: 15.5px; color: var(--apoio); margin-top: 8px; }
.pag-dados { margin-top: 18px; border-top: 1px solid var(--linha); font-variant-numeric: tabular-nums; }
.pag-dados > div {
  display: grid; grid-template-columns: minmax(0, 132px) minmax(0, 1fr) auto; gap: 4px 16px; align-items: center;
  padding: 9px 0; border-bottom: 1px solid var(--linha); min-height: 56px;
}
.pag-dados dt { font-size: 14.5px; color: var(--apoio); }
.pag-dados dd { font: 600 17px/1.35 var(--texto); color: var(--tit); overflow-wrap: anywhere; }
.copiar-item {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1px solid var(--linha); border-radius: 8px; background: var(--branco); color: var(--cobre);
  cursor: pointer; transition: background-color .15s, border-color .15s, color .15s;
}
.copiar-item svg { width: 18px; height: 18px; }
.copiar-item:hover { border-color: var(--cobre); background: var(--papel); }
.copiar-item .ic-ok { display: none; }
.copiar-item.ok { border-color: var(--n900); background: var(--n900); color: var(--branco); }
.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: 20px; text-align: left;
  padding: 14px 18px; border-radius: var(--raio-botao);
  background: var(--n900); color: var(--branco); border: 0; cursor: pointer;
  transition: background-color .15s;
}
.copiar-tudo:hover { background: var(--n800); }
.copiar-tudo .ic { width: 22px; height: 22px; color: var(--ambar); }
.copiar-tudo-txt { display: grid; }
.copiar-tudo-tit { font-weight: 600; font-size: 16px; line-height: 1.3; }
.copiar-tudo-sub { font-size: 13.5px; line-height: 1.35; color: rgba(255, 255, 255, .7); }
.copiar-aviso { font-size: 14px; color: var(--apoio); margin-top: 10px; min-height: 1.4em; }
.no-js .copiar-tudo { display: none; }

/* ---------- 14. Destino Foz + painel de embarque ---------- */
.destino { position: relative; isolation: isolate; background: var(--n900); overflow: hidden; }
.destino-fundo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.destino::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(15, 11, 7, .93) 0%, rgba(15, 11, 7, .8) 30%, rgba(15, 11, 7, .34) 56%, rgba(15, 11, 7, .12) 100%);
}
.dest-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 48px clamp(40px, 5vw, 96px); align-items: center; }
.dest-texto h2 { font-size: clamp(36px, 4vw, 60px); }
.dest-data { font: 500 19px/1.4 var(--titulo); color: var(--branco); margin-top: 18px; }
.dest-local { display: grid; gap: 14px; margin: 28px 0 34px; padding-top: 24px; border-top: 1px solid var(--linha-esc); }
.dest-local div { position: relative; padding-left: 34px; }
.dest-local dt { font-size: 14px; color: var(--apoio-esc); line-height: 1.3; }
.dest-local dt .ic { position: absolute; left: 0; top: 50%; translate: 0 -50%; width: 22px; height: 22px; color: var(--ambar); }
.dest-local dd { font-weight: 600; color: var(--branco); line-height: 1.35; }

.painel-embarque {
  background: var(--n950);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 10px;
  padding: 22px 24px 10px;
  font-variant-numeric: tabular-nums;
}
.pe-topo {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding-bottom: 16px; border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.pe-tit { font: 600 21px/1.2 var(--titulo); color: var(--branco); letter-spacing: -.01em; }
.pe-voo { font: 500 14px/1.3 var(--texto); color: var(--ambar); }
.pe-tabela { width: 100%; border-collapse: collapse; }
.pe-tabela th {
  font: 500 13px/1.3 var(--texto); color: var(--apoio-esc); text-align: left;
  padding: 14px 12px 10px 0;
}
.pe-tabela td { padding: 11px 12px 11px 0; border-top: 1px solid rgba(255, 255, 255, .07); vertical-align: middle; }
.pe-hora { white-space: nowrap; }
.placas { display: inline-flex; align-items: center; gap: 3px; vertical-align: middle; }
.placas b {   /* plaquinha do painel de palhetas: dígito âmbar, filete no meio (estático) */
  position: relative; display: grid; place-items: center;
  width: 25px; height: 34px; border-radius: 3px;
  background: linear-gradient(180deg, #2A2017 0 50%, #1E170F 50% 100%);
  font: 600 21px/1 var(--titulo); color: var(--ambar);
}
.placas b::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(0, 0, 0, .75); }
.placas i { font: 500 14px/1 var(--titulo); font-style: normal; color: var(--apoio-esc); padding-inline: 2px; }
.pe-ate { font-size: 13.5px; color: var(--apoio-esc); margin-left: 10px; vertical-align: middle; }
.pe-prog { font: 600 17px/1.3 var(--texto); color: var(--branco); }
.pe-obs { font-size: 14.5px; color: var(--apoio-esc); padding-right: 0 !important; }
.pe-incluso { color: var(--ambar); }

/* ---------- 15. Galeria ---------- */
.gal-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gal-grade li { overflow: hidden; border-radius: 10px; background: var(--papel2); }
.gal-grade img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: filter .15s; }
.gal-grade li:hover img { filter: brightness(1.08); }
.galeria .cab-secao { align-items: end; }

/* ---------- 16. Rodapé ---------- */
.rodape { background: var(--n900); color: var(--corpo-esc); font-size: 15.5px; }
.rodape-grade {
  display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
  gap: 40px clamp(32px, 4vw, 64px);
  padding-block: clamp(56px, 6vw, 88px) 44px;
}
.rodape-logo img { width: 190px; }
.rodape-evento { margin-top: 16px; color: var(--apoio-esc); font-size: 15px; line-height: 1.55; }
.realizacao { display: flex; flex-wrap: wrap; align-items: stretch; gap: 24px 30px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--linha-esc); }
.realizacao-item { display: flex; flex-direction: column; justify-content: space-between; gap: 12px; }
.realizacao-item p { font-size: 13.5px; color: var(--apoio-esc); max-width: 170px; line-height: 1.4; }
.realizacao-item a { display: inline-block; align-self: flex-start; }
.logo-contagov { width: 160px; }
.logo-np { width: 112px; }
.rodape h2 { font: 600 15px/1.4 var(--texto); letter-spacing: 0; color: var(--ambar); margin-bottom: 16px; }
.rodape-col ul { display: grid; gap: 0; }
.rodape-col > ul:not(.rodape-redes) a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.rodape a { text-decoration: none; transition: color .15s; }
.rodape a:hover { color: var(--branco); }
.rodape-contatos a, .rodape-sites a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; white-space: nowrap; }
.rodape-contatos .ic { width: 16px; height: 16px; color: var(--ambar); }
.rodape-sites .ic { width: 14px; height: 14px; color: var(--apoio-esc); }
.rodape address { margin-top: 18px; color: var(--apoio-esc); font-size: 14.5px; line-height: 1.55; }
.rodape-redes { display: flex !important; gap: 10px !important; margin-top: 22px; }
.rodape-redes a {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1px solid rgba(255, 255, 255, .2); border-radius: 8px;
  transition: border-color .15s, color .15s;
}
.rodape-redes a:hover { border-color: var(--ambar); color: var(--ambar); }
.rodape-base {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px;
  font-size: 13.5px; color: var(--apoio-esc);
}
.rodape-base {
  padding-block: 22px;
  background: linear-gradient(var(--linha-esc), var(--linha-esc)) var(--respiro) 0 / calc(100% - 2 * var(--respiro)) 1px no-repeat;
}
.com-barra .rodape { padding-bottom: var(--barra-h, 84px); }

/* ---------- 17. 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(--ambar);
  visibility: hidden;
}
html.barra-on .barra-inscricao { visibility: visible; }
.barra-in { display: flex; align-items: center; gap: 24px; padding-block: 12px; }
.barra-logo { height: 44px; width: auto; flex: none; }
.barra-txt { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .14); min-width: 0; }
.barra-tit { font-weight: 600; color: var(--branco); line-height: 1.3; font-size: 16px; }
.barra-info { font-size: 14px; color: var(--apoio-esc); line-height: 1.35; }
.barra-preco { margin-left: auto; display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.barra-valor { font: 600 26px/1 var(--titulo); color: var(--branco); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.barra-por { font-size: 14px; color: var(--apoio-esc); }
.barra-inscricao .botao { padding-block: 13px; }
/* tablet: a barra continua em uma linha só (sem isso o texto quebrava e a barra chegava a 200px em 768) */
@media (min-width: 761px) and (max-width: 1100px) {
  .barra-por { display: none; }
  .barra-txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .barra-inscricao .botao { flex: none; }
}
@media (min-width: 761px) and (max-width: 960px) {
  .barra-logo { display: none; }
  .barra-txt { padding-left: 0; border-left: 0; }
}

.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(15, 11, 7, .3);
  visibility: hidden;
  --foco: var(--cobre);
}
.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); }

/* ---------- 18. Páginas internas ---------- */
/* topo curto (escuro, img/topo.jpg) + trilha + H1 */
.topo { position: relative; isolation: isolate; background: var(--n900); overflow: hidden; }
.topo-fundo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 100% 55%; filter: brightness(1.3) saturate(1.1); }
.topo::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(15, 11, 7, .93) 0%, rgba(15, 11, 7, .82) 36%, rgba(15, 11, 7, .3) 70%, rgba(15, 11, 7, .1) 100%);
}
.topo-in { padding-block: clamp(36px, 4.4vw, 64px) clamp(40px, 5vw, 72px); }
.trilha ol { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 14px; color: var(--apoio-esc); }
.trilha li { display: inline-flex; align-items: center; gap: 10px; }
.trilha li + li::before { content: "/"; color: rgba(255, 255, 255, .35); }
.trilha a { color: var(--corpo-esc); text-decoration: none; transition: color .15s; }
.trilha a:hover { color: var(--branco); }
.trilha [aria-current] { color: var(--ambar); }
.topo h1 { font-size: clamp(40px, 5vw, 72px); line-height: 1; letter-spacing: -.03em; margin-top: 22px; max-width: 900px; }
.topo-sub { margin-top: 16px; font-size: clamp(17px, .8vw + 11px, 20px); color: var(--corpo-esc); max-width: 860px; text-wrap: pretty; }
.topo-acoes { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }

/* leitura longa (apresentação completa) */
.leitura-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr); gap: 32px clamp(40px, 6vw, 112px); align-items: start; }
.leitura-grade .leitura { margin-top: 0; max-width: 760px; }
.leitura-grade .destaque { margin-block: 14px; }

/* rota compacta (programação) */
.rota-compacta .cab-secao { margin-bottom: clamp(36px, 4vw, 56px); }

/* público-alvo em seção clara */
.pub-claro .pub-lista { border-color: var(--linha); }
.pub-claro .pub-lista li { border-color: var(--linha); color: var(--corpo); }
.pub-claro .pub-num { color: var(--cobre); }
.pub-claro .ao-final { border-color: var(--linha); }
.pub-claro .ao-final-txt { color: var(--tit); }

/* horários (seção escura sem foto) */
.horarios { background: var(--n850); }
.horarios .dest-data { margin-top: 14px; }

/* chamada final (papel) */
.chamada { background: var(--papel); text-align: center; }
.chamada h2 { margin-inline: auto; max-width: 760px; }
.chamada-evento { font: 500 21px/1.35 var(--titulo); color: var(--cobre); margin-top: 16px; }
.chamada-info { color: var(--corpo); margin-top: 4px; }
.chamada-preco { font: 600 clamp(38px, 3.4vw, 50px)/1 var(--titulo); color: var(--tit); letter-spacing: -.03em; margin-top: 26px; font-variant-numeric: tabular-nums; }
.chamada-preco small { display: block; font: 400 15px/1.4 var(--texto); color: var(--apoio); letter-spacing: 0; margin-top: 8px; }
.chamada .prog-acoes { margin-top: 30px; }

/* palestrante */
.bio-grade { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 48px clamp(40px, 6vw, 104px); align-items: start; }
.bio-texto .leitura { margin-top: 24px; max-width: 760px; }
.atuacao { margin-top: 36px; padding-top: 26px; border-top: 1px solid var(--linha); }
.atuacao h3 { font-size: 19px; }
.atuacao ul { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.atuacao li {
  font: 500 15.5px/1.3 var(--texto); color: var(--tit);
  padding: 10px 16px; border: 1px solid var(--linha); border-radius: 8px; background: var(--papel);
}
.marcos-escuro { background: var(--n850); }
.marcos-escuro .marcos { border-color: var(--linha-esc); max-width: none; margin: 0; }
.marcos-escuro .marcos li { border-color: var(--linha-esc); grid-template-columns: minmax(0, 260px) minmax(0, 1fr); padding: 20px 0; }
.marcos-escuro .marco-lead { color: var(--branco); font-size: 21px; }
.marcos-escuro .marco-txt { color: var(--corpo-esc); font-size: 17px; }

/* contato */
.contato-grade { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 104px); align-items: start; }
.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: 20px 0; border-bottom: 1px solid var(--linha);
}
.canal-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 10px; background: var(--papel2); color: var(--cobre); }
.canal-ic .ic { width: 22px; height: 22px; }
.canal-rot { font-size: 14px; color: var(--apoio); line-height: 1.3; }
.canal-valor { font: 600 clamp(19px, 1vw + 11px, 23px)/1.3 var(--titulo); color: var(--tit); letter-spacing: -.01em; white-space: nowrap; }
.canal-valor a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.canal-valor a:hover { color: var(--cobre); }
.contato-endereco { margin-top: 28px; display: grid; gap: 6px; }
.contato-endereco h3 { font-size: 19px; }
.contato-endereco address { color: var(--corpo); }
.contato-endereco .link-seta { justify-self: start; margin-top: 2px; }
.cartao-local { --r: 18px; background: var(--papel); padding: clamp(28px, 3vw, 40px); }
.cartao-local .bp-rot { margin-bottom: 14px; }
.cartao-local h2 { font-size: clamp(28px, 2.6vw, 38px); }
.cartao-local dl { margin-top: 22px; border-top: 1px solid var(--linha); }
.cartao-local dl div { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--linha); }
.cartao-local dt { color: var(--apoio); font-size: 15px; }
.cartao-local dd { font-weight: 600; color: var(--tit); text-align: right; }
.sites-redes { margin-top: 28px; }
.sites-redes h3 { font-size: 19px; margin-bottom: 12px; }
.sites-redes ul { display: grid; gap: 8px; }
.sites-redes a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding-block: 8px 10px;
  color: var(--cobre); font-weight: 600; text-decoration: none;
  background: linear-gradient(var(--linha), var(--linha)) 0 calc(100% - 6px) / 100% 1.5px no-repeat;
}
.sites-redes a:hover { background-image: linear-gradient(var(--cobre), var(--cobre)); }
.sites-redes .ic { width: 15px; height: 15px; }

/* inscrição: contagem + horários + contato */
.insc-tempo .contagem { margin-top: 30px; }
.insc-contato { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 32px clamp(40px, 6vw, 104px); align-items: start; }
.insc-contato .botao { margin-top: 28px; }
.insc-contato .cab-lead { margin-top: 18px; }
.canais-bloco { margin-top: 28px; }

@media (max-width: 1040px) {
  .leitura-grade, .contato-grade, .insc-contato { grid-template-columns: minmax(0, 1fr); }
  .marcos-escuro .marcos li { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .bio-grade { grid-template-columns: minmax(0, 1fr); }
  .bio-grade .prof-foto { max-width: 380px; }
}
@media (max-width: 760px) {
  .topo::before { background: linear-gradient(90deg, rgba(15, 11, 7, .9) 0%, rgba(15, 11, 7, .72) 100%); }
  .marcos-escuro .marcos li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .canais li { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
  .canal-ic { width: 44px; height: 44px; }
  .canal-acao { grid-column: 2; justify-self: start; }
  .chamada .prog-acoes .botao { width: 100%; }
}

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */

/* notebook de tela baixa (1366×657, 1280×610): sem topbar, cabeçalho e hero compactos */
@media (min-width: 1041px) and (max-height: 760px) {
  .topbar { display: none; }
}
@media (min-width: 1041px) and (max-height: 700px) {
  :root { --cab-h: 76px; }
  .marca img { height: 52px; }
  .hero-grade { padding-block: 30px; gap: 32px 56px; }
  .hero h1 { font-size: clamp(42px, 5.4vw, 76px); }
  .hero-tag { margin-bottom: 16px; }
  .hero-sub { margin-top: 16px; font-size: 18px; }
  .hero-acoes { margin-top: 26px; }
  .embarque { --vao: 12px; --canhoto: 54px; }
  .emb-rota { padding-top: 14px; }
  .emb-cod { font-size: 40px; }
  .emb-dias { font-size: 52px; }
  .emb-barras { height: 22px; }
  .faixa-in { min-height: 74px; padding-block: 10px; }
}

@media (max-width: 1240px) {
  .menu-lista { gap: 26px; }
  .menu { gap: 28px; }
  .faixa-dados { gap: 12px 28px; }
  .rota-paradas { gap: 16px; }
  .parada-nome { font-size: 15px; }
}

/* 961–1100: tudo continua em 2 colunas / rota horizontal, só mais compacto */
@media (min-width: 961px) and (max-width: 1100px) {
  .rota-mapa { padding: 0 40px 0 60px; }
  .rota-aviao .ic { width: 38px; height: 38px; }
  .rota-mapa::before { left: 26px; }
  .rota-paradas { gap: 12px; }
  .parada-num { font-size: 26px; }
  .parada-nome { font-size: 14.5px; }
  .dest-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr); gap: 40px; }
  .dest-texto h2 { font-size: 40px; }
  .painel-embarque { padding-inline: 18px; }
  .placas { gap: 2px; }
  .placas b { width: 21px; height: 30px; font-size: 18px; }
  .pe-ate { margin-left: 6px; }
  .inv-grade { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
  .bp-principal { grid-template-columns: minmax(0, 1fr); }
  .bp-principal .botao { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 22px; }
}
/* 901–1100: faixa do hero numa linha só (Investimento já está no cartão), contagem compacta */
@media (min-width: 901px) and (max-width: 1100px) {
  .faixa-dados > div:last-child { display: none; }
  .faixa-in { gap: 20px; }
  .faixa-dados { gap: 12px 22px; }
  .contagem { gap: 12px; }
  .contagem-lista li { min-width: 52px; padding-inline: 6px; }
  .contagem-lista span { font-size: 23px; }
}
/* dados para pagamento: rótulo em cima do valor quando a coluna é estreita */
@media (min-width: 761px) and (max-width: 1100px) {
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; }
  .pag-dados dt, .pag-dados dd { grid-column: 1; }
  .pag-dados .copiar-item { grid-column: 2; grid-row: 1 / span 2; }
}

@media (max-width: 960px) {
  /* rota vira linha vertical */
  .rota-mapa { padding: 64px 0 52px; max-width: 640px; }
  .rota-mapa::before {
    left: 21px; right: auto; top: 30px; bottom: 30px; width: 2px; height: auto;
    background: linear-gradient(180deg, rgba(255, 176, 46, .7) 0 8px, transparent 8px 16px) 0 0 / 2px 16px repeat-y;
  }
  .rota-aviao { left: 0; top: 0; padding: 0 0 6px; }
  .rota-aviao .ic { transform: rotate(90deg); }
  .rota-destino { left: 5px; right: auto; top: auto; bottom: 0; }
  .rota-paradas { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .rota-paradas li {
    grid-template-columns: 52px minmax(0, 1fr); align-items: baseline; gap: 12px;
    padding: 14px 0 14px 60px;
  }
  .rota-paradas li::before { left: 13px; top: 28px; margin-top: -13px; }
  .parada-num { font-size: 24px; }
  .parada-nome { max-width: none; font-size: 17px; }
  .dest-grade { grid-template-columns: minmax(0, 1fr); }
  .dest-texto { max-width: 640px; }
  .inv-grade { grid-template-columns: minmax(0, 1fr); }   /* bilhete e pagamento na largura toda */
}
@media (max-width: 900px) {
  .faixa-in { flex-wrap: wrap; }
}

/* cabeçalho compacto + menu em painel */
@media (max-width: 1040px) {
  :root { --cab-h: 72px; }
  .marca img { height: 46px; }
  .topbar p { display: none; }
  .topbar-in { justify-content: flex-end; }
  .menu-botao {
    display: grid; place-items: center;
    margin-left: auto;
    width: 46px; height: 46px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 8px;
    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: var(--branco);
  }
  .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 { transform: translateY(6px) rotate(45deg); }
  .menu-aberto .menu-botao-linhas::after { transform: translateY(-6px) 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-lista { flex-direction: column; gap: 0; border-top: 1px solid var(--linha-esc); }
  .menu-lista a {
    padding: 16px 0;
    font: 600 28px/1.2 var(--titulo);
    letter-spacing: -.02em;
    color: var(--branco);
    border-bottom: 1px solid var(--linha-esc);
  }
  .menu-lista a[aria-current="page"] { color: var(--ambar); }
  .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: 12px; margin-top: auto; padding-top: 32px; font-size: 16px; }
  .menu-contatos a { display: inline-flex; align-items: center; gap: 10px; color: var(--corpo-esc); text-decoration: none; }
  .menu-contatos .ic { color: var(--ambar); }

  .hero-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); }
  .apr-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 320px); }
  .cab-secao { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .pub-grade, .ao-final { grid-template-columns: minmax(0, 1fr); }
  .rodape-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rodape-marca { grid-column: 1 / -1; }
  .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .numeros li:nth-child(3) { border-left: 0; padding-left: 0; }
  .numeros li:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .numeros li { padding-bottom: 26px; }
}

/* menu em painel em tela baixa (celular deitado) */
@media (max-width: 1040px) and (max-height: 640px) {
  .menu { padding-top: calc(var(--cab-h) + 16px); }
  .menu-lista a { padding: 10px 0; font-size: 22px; }
  .menu-destaque { margin-top: 18px; }
  .menu-contatos { padding-top: 20px; }
}

@media (max-width: 900px) {
  .hero-grade { grid-template-columns: minmax(0, 1fr); }
  .embarque { justify-self: start; max-width: 520px; }
  .hero h1 { font-size: clamp(42px, 8vw, 66px); }
  .apr-grade { grid-template-columns: minmax(0, 1fr); }
  .apr-foto { max-width: 520px; }
  .prog-mods { grid-template-columns: minmax(0, 1fr); }
  .prof-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-foto { max-width: 380px; }
  .regra-pratica { grid-template-columns: minmax(0, 1fr); }
  .regra-pratica::after { display: none; }
  .rp-lado + .rp-lado { position: relative; }
  .rp-lado + .rp-lado::before {   /* picote horizontal entre Regra e Prática */
    content: ""; position: absolute; top: -1px; left: 18px; right: 18px; height: 2px;
    background: linear-gradient(90deg, rgba(255, 255, 255, .22) 0 6px, transparent 6px 12px) 0 0 / 12px 2px repeat-x;
  }
  .reserve-in { flex-direction: column; align-items: flex-start; }
  .reserve-preco { text-align: left; }
}

/* celular */
@media (max-width: 760px) {
  body { font-size: 16.5px; }
  .topbar { display: none; }
  .hero::before {
    background: linear-gradient(180deg, rgba(15, 11, 7, .86) 0%, rgba(15, 11, 7, .74) 34%, rgba(15, 11, 7, .3) 58%, rgba(15, 11, 7, .45) 82%, rgba(15, 11, 7, .88) 100%);
  }
  .hero-grade { padding-block: 36px 32px; gap: 32px; }
  .hero h1 { font-size: clamp(38px, 10.5vw, 54px); }
  .hero-sub { font-size: 18px; }
  .hero-acoes { margin-top: 26px; }
  .hero-acoes .botao { flex: 1 1 auto; }
  .embarque { max-width: none; }
  .faixa-in { flex-direction: column; align-items: stretch; padding-block: 22px 24px; gap: 20px; }
  .faixa-dados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
  .contagem { justify-content: space-between; gap: 12px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .12); }
  .contagem-lista li { min-width: 0; width: 56px; }
  .contagem-lista span { font-size: 23px; }

  .numeros { margin-top: 48px; }
  .numeros li { padding: 22px 16px 20px; }
  .numeros li:nth-child(odd) { padding-left: 0; }
  .num { font-size: clamp(36px, 10vw, 44px); }
  .num-txt { font-size: 15px; }

  .ac-botao { grid-template-columns: minmax(0, 1fr) 40px; gap: 14px; padding: 18px; }
  .ac-num { display: none; }
  .ac-ic { width: 40px; height: 40px; }
  .ac-corpo { padding: 18px 18px 22px; }
  .ac-pratica { padding-left: 54px !important; }
  .ac-pratica .ic { left: 16px; }
  .pm-num { font-size: 38px; }
  .marcos li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .pub-lista li { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; }

  .bp-principal { grid-template-columns: minmax(0, 1fr); }
  .bp-principal .botao { grid-column: 1; grid-row: auto; margin-top: 24px; justify-self: start; }
  .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; }

  /* painel de embarque: linhas viram blocos */
  .painel-embarque { padding: 18px 16px 6px; }
  .pe-tabela thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .pe-tabela, .pe-tabela tbody, .pe-tabela tr, .pe-tabela td { display: block; }
  .pe-tabela tr { padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, .08); }
  .pe-tabela tr:first-child { border-top: 0; }
  .pe-tabela td { border: 0; padding: 0; }
  .pe-prog { margin-top: 10px; }
  .pe-obs:empty { display: none; }
  .pe-obs { margin-top: 2px; }

  .gal-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .gal-grade li { border-radius: 8px; }

  .rodape-grade { grid-template-columns: minmax(0, 1fr); }
  .rodape-base { flex-direction: column; }

  .barra-in { gap: 12px; padding-block: 10px; }
  .barra-logo, .barra-txt { display: none; }
  .barra-preco { margin-left: 0; flex-direction: column; gap: 2px; }
  .barra-valor { font-size: 22px; }
  .barra-por { font-size: 13px; }
  .barra-inscricao .botao { margin-left: auto; padding: 12px 16px; }
  .whats-flutuante { right: 14px; bottom: 14px; width: 52px; height: 52px; }
}

@media (max-width: 420px) {
  .embarque { --px: 18px; --r: 13px; }
  .emb-canhoto { gap: 14px; }
  .emb-barras { width: 88px; }
  .emb-orig { font-size: 18px; }
  .emb-cod { font-size: 38px; }
  .emb-dias { font-size: 48px; }
  .emb-data { gap: 12px; }
  .emb-mes { font-size: 15.5px; }
  .emb-dados { grid-template-columns: repeat(2, auto); }
  .emb-dados div:last-child { grid-column: 1 / -1; }
  .faixa-dados { grid-template-columns: minmax(0, 1fr); }
  .contagem-rot { display: none; }
  .contagem { justify-content: flex-start; }
  .contagem-lista { width: 100%; justify-content: space-between; }
  .contagem-lista li { width: auto; flex: 1; }
  .placas b { width: 22px; height: 30px; font-size: 18px; }
}

@media (max-width: 374px) {
  .hero-tag { font-size: 13px; gap: 8px; }
  .emb-rota { column-gap: 10px; grid-template-columns: auto minmax(28px, 1fr) auto; }
  .emb-orig { font-size: 16px; white-space: nowrap; }
  .emb-cid { font-size: 12px; white-space: nowrap; }
  .emb-cod { font-size: 34px; }
  .emb-data { flex-direction: column; align-items: flex-start; gap: 8px; }
  .emb-dias { font-size: 50px; }
  .emb-barras { width: 64px; }
}

@media (max-width: 359px) {
  .barra-inscricao .botao { padding-inline: 12px; font-size: 14.5px; gap: 6px; }
  .barra-valor { font-size: 20px; }
  .hero-acoes .botao { width: 100%; }
}

/* ==========================================================================
   19. RODADA 4 — revisão de responsividade (15/10): desktops, notebooks, tablets, celulares
   ========================================================================== */
.nw { white-space: nowrap; }
p, li, dd, .cab-lead, .marco-txt, .parada-nome { text-wrap: pretty; }
.num-txt, .rotulo, .prog-linha, .hero-sub { text-wrap: balance; }

/* linhas longas: ~66 caracteres no texto corrido, ~72 nos avisos */
.leitura p, .prof-lead, .destaque p, .bio-texto .leitura p { max-width: 66ch; }
.aviso { max-width: 72ch; }
.galeria .cab-lead { max-width: 46ch; }

/* áreas de toque ≥ 44px (sem mudar o desenho: alvo ampliado por pseudo-elemento ou altura mínima) */
.topbar-in { min-height: 44px; }
.topbar a { display: inline-flex; align-items: center; min-height: 44px; }
.trilha a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; }
.trilha ol { align-items: center; }
.ac-ferramentas button { min-height: 44px; }
.menu-lista a { padding-block: 12px; }
.sites-redes ul { gap: 0; }
.sites-redes li { display: flex; align-items: center; min-height: 44px; }
.realizacao-item a { padding-block: 9px; min-height: 44px; }
.rodape-redes { margin-top: 14px; }
.rodape address a { display: inline-block; padding-block: 6px; }

/* WhatsApp flutuante: no fim da página não cobre o CNPJ/copyright (espaço reservado à direita) */
@media (max-width: 1520px) {
  .rodape-base { padding-right: calc(var(--respiro) + 72px); }
}

/* notebook de tela baixa: cabeçalho ~64px, barra ~60px, topos internos e respiros compactos */
@media (min-width: 1041px) and (max-height: 700px) {
  :root { --cab-h: 64px; --secao: 64px; }
  .marca img { height: 44px; }
  .menu-destaque { padding-block: 11px; }
  .barra-in { padding-block: 8px; gap: 20px; }
  .barra-logo { height: 34px; }
  .barra-txt { display: flex; align-items: baseline; gap: 12px; white-space: nowrap; }
  .barra-tit { font-size: 15px; }
  .barra-valor { font-size: 23px; }
  .barra-inscricao .botao { padding: 10px 18px; }
  .topo-in { padding-block: 26px 34px; }
  .topo h1 { font-size: clamp(40px, 4.4vw, 58px); margin-top: 12px; }
  .topo-sub { margin-top: 10px; }
  .topo-acoes { margin-top: 20px; }
  .topo-acoes .botao { padding-block: 12px; }
}

/* rodapé: 3 colunas (marca em linha inteira) também entre 1041 e 1180, para o e-mail caber */
@media (min-width: 1041px) and (max-width: 1180px) {
  .rodape-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rodape-marca { grid-column: 1 / -1; }
}

/* professor: foto menor ao lado do texto entre 901 e 1240 (marcos não ficam espremidos) */
@media (min-width: 901px) and (max-width: 1240px) {
  .prof-grade, .bio-grade { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 48px; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .prof-grade .marcos li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
/* tablet em pé (701–900): foto ao lado do texto, menor */
@media (min-width: 701px) and (max-width: 900px) {
  .prof-grade, .bio-grade { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 32px; }
  .prof-grade .prof-foto, .bio-grade .prof-foto { max-width: 260px; }
  .prof-grade .marcos li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
@media (max-width: 700px) {
  .prof-foto { margin-inline: auto; }
}

/* tablet: hero mais baixo (a contagem cabe na 1ª tela do iPad em pé) e foto da apresentação larga */
@media (min-width: 761px) and (max-width: 900px) {
  .hero-grade { padding-block: 36px 32px; gap: 28px; }
  .hero-acoes { margin-top: 24px; }
  .embarque { max-width: none; --vao: 13px; --canhoto: 56px; }
  .emb-dias { font-size: 56px; }
  .faixa-in { padding-block: 12px; gap: 12px 32px; }
  .faixa-dados > div:last-child { display: none; }
  .apr-foto { max-width: none; }
  .apr-foto img { aspect-ratio: 16 / 9; }
}

/* rodapé em 2 colunas a partir de 560px (celular deitado, tablet pequeno) */
@media (min-width: 560px) and (max-width: 760px) {
  .rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rodape-marca { grid-column: 1 / -1; }
}

/* celular */
@media (max-width: 760px) {
  .whats-flutuante { right: 12px; bottom: 12px; width: 48px; height: 48px; }
  .whats-flutuante .ic { width: 27px; height: 27px; }
  html.barra-on .com-barra .whats-flutuante { bottom: calc(var(--barra-h, 64px) + 12px); }
  .rodape-base { padding-right: calc(var(--respiro) + 60px); }
  .hero-grade { padding-block: 28px; gap: 26px; }
  .faixa-in { padding-block: 18px 20px; gap: 16px; }
  .contagem { padding-top: 14px; }
  .gal-grade li:nth-child(1) img { object-position: 30% 50%; }
  .gal-grade li:nth-child(4) img { object-position: 22% 50%; }
}
@media (max-width: 560px) {
  .prog-acoes .botao, .topo-acoes .botao { width: 100%; }
}
@media (max-width: 420px) {
  /* faixa do hero em grade 2×2 (ícone na linha do rótulo) + contagem embaixo */
  .faixa-dados { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .faixa-dados div { padding-left: 0; }
  .faixa-dados dt .ic { position: static; translate: none; display: inline-block; vertical-align: -3px; width: 15px; height: 15px; margin-right: 6px; }
  .faixa-dados dd { font-size: 15px; }
  /* bilhetes e painéis com recuo menor */
  .bp-principal, .bp-canhoto, .pagamento, .cartao-local { padding-inline: 20px; }
  .ac-corpo { padding-inline: 16px; }
  /* acordeão: título do módulo com mais largura */
  .ac-botao { padding: 16px; gap: 10px; grid-template-columns: minmax(0, 1fr) 36px; align-items: start; }
  .ac-ic { width: 36px; height: 36px; }
  .ac-tit { font-size: 18.5px; }
}
@media (max-width: 359px) {
  .canal-valor { font-size: 17px; }
  .canais li { gap: 12px; grid-template-columns: 40px minmax(0, 1fr); }
  .canal-ic { width: 40px; height: 40px; }
}

/* celular e tablet DEITADOS (tela baixa): cabeçalho rola junto, barra compacta, hero em 2 colunas */
@media (orientation: landscape) and (max-height: 500px) {
  .topbar { display: none; }
  .cabecalho { position: relative; }
  .menu-aberto .cabecalho { position: sticky; }
  .barra-in { padding-block: 6px; gap: 12px; }
  .barra-logo, .barra-txt, .barra-por { display: none; }
  .barra-preco { margin-left: 0; flex-direction: row; align-items: baseline; }
  .barra-valor { font-size: 21px; }
  .barra-inscricao .botao { margin-left: auto; padding: 9px 16px; }
  .whats-flutuante { width: 44px; height: 44px; }
  .whats-flutuante .ic { width: 25px; height: 25px; }
  .hero-grade { padding-block: 26px; }
  .faixa-in { padding-block: 14px; }
}
@media (orientation: landscape) and (max-height: 500px) and (min-width: 800px) {
  .hero-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 390px); gap: 28px; }
  .hero h1 { font-size: 46px; }
  .hero-sub { font-size: 17px; margin-top: 14px; }
  .hero-acoes { margin-top: 20px; }
  .hero-acoes .botao { flex: 0 1 auto; }
  .embarque { --px: 20px; --vao: 11px; --canhoto: 52px; max-width: 390px; justify-self: end; }
  .emb-cod { font-size: 38px; }
  .emb-dias { font-size: 46px; }
  .emb-mes { font-size: 15px; }
  .emb-orig { font-size: 18px; }
}

/* menu do celular/tablet: o painel começa ABAIXO do cabeçalho e rola sem passar por cima do logo */
@media (max-width: 1040px) {
  .menu { inset: var(--menu-top, var(--cab-h)) 0 0 0; padding-top: 24px; }
  .menu-contatos { gap: 0; }
  .menu-contatos a { min-height: 44px; }
}
@media (max-width: 1040px) and (max-height: 640px) {
  .menu { padding-top: 12px; }
}

/* monitores grandes: escala moderada (o conteúdo não fica "pequeno no meio da tela") */
@media (min-width: 2000px) {
  body { zoom: 1.12; }
  .prof-foto { max-width: 410px; }               /* 410 × 1,12 ≈ 460px na tela */
  .prof-grade, .bio-grade { grid-template-columns: minmax(0, 410px) minmax(0, 1fr); }
  .faixa-dados { gap: 12px clamp(28px, 3vw, 56px); }
}
@media (min-width: 2400px) {
  body { zoom: 1.2; }
  .prof-foto { max-width: 383px; }               /* 383 × 1,2 ≈ 460px */
  .prof-grade, .bio-grade { grid-template-columns: minmax(0, 383px) minmax(0, 1fr); }
}
/* pisos de tamanho de texto no celular (rótulos ≥13px, rodapé 14px) */
.emb-dados dd small { font-size: 13px; }
.contagem-lista small { font-size: 12.5px; }
.rodape-base, .realizacao-item p { font-size: 14px; }
.pm-marca { font-size: 13.5px; }
