/* ==========================================================================
   Masterclass de Formação e Atualização de Agentes de Contratação, Pregoeiros e Equipe de Apoio
   Foz do Iguaçu/PR · 26 a 28 de abril de 2027 — site v2, direção "Molduras"
   Petróleo-ardósia + laranja da logo + concreto neutro · Albert Sans + Instrument Sans + Big Shoulders Display
   Cantos vivos de 2px · colchete "[" da logo como marcador · faixa laranja do pé do banner
   Sem animação: nenhuma @keyframes, nenhuma transição além de cor (≤ .15s) em hover/foco.
   Gerado à mão (não pelo build): editar aqui mesmo.
   Sumário
     1. Tokens              2. Base                 3. Tipografia, rótulos e marcador "["
     4. Botões e links      5. Topbar e cabeçalho   6. Hero (data + faixa)       7. Contagem
     8. Introdução e números                        9. Programa (teoria × prática)
    10. Leve seu notebook  11. Professora          12. Público-alvo (laranja)
    13. Investimento e pagamento                    14. Foz do Iguaçu + horários  15. Galeria
    16. Rodapé             17. Barra fixa + WhatsApp
    18. Internas (topo, migalhas, canais, acordeão) 18b. Programação/professora/contato/inscrição
    19. Responsivo (largura e altura)   20. Fase 3 — responsividade (correções dos revisores, no fim)
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  /* petróleo (escuros) */
  --p950: #061820;           /* topbar */
  --p900: #0A202C;           /* cabeçalho, rodapé, barra fixa, texto sobre laranja */
  --p850: #0E2A39;           /* seções escuras */
  --p800: #143648;           /* superfícies sobre escuro / botão escuro em fundo claro */
  --p700: #1E4A60;           /* bordas e hover */
  --ardosia: #2C5468;        /* molduras */
  --traco-esc: rgba(140, 180, 200, .16);
  /* laranja da logo — nunca como texto pequeno sobre claro */
  --laranja: #FF6A13;
  --ambar: #FF8A00;
  --fogo: #FF3D00;
  --brasa: #D2470A;          /* numerais grandes (≥32px) sobre claro */
  --degrade-logo: linear-gradient(45deg, #FF3D00 0%, #FF8A00 100%);  /* só em elementos gráficos grandes */
  /* destaque de texto sobre claro */
  --azul: #1A5677;
  /* claros: concreto neutro */
  --branco: #FFFFFF;
  --concreto: #F1F1EF;
  --concreto-2: #E6E6E2;
  --linha: #DADBD7;
  /* textos sobre claro */
  --tit: #0A202C;
  --corpo: #3B4E5A;
  --apoio: #5E6E78;
  /* textos sobre escuro */
  --tit-esc: #FFFFFF;
  --corpo-esc: #CCDBE3;
  --apoio-esc: rgba(255, 255, 255, .66);
  --linha-esc: rgba(255, 255, 255, .12);
  --whats: #25D366;
  /* fontes */
  --f-tit: "Albert Sans", "Segoe UI", system-ui, sans-serif;
  --f-txt: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
  --f-num: "Big Shoulders Display", "Arial Narrow", "Segoe UI", sans-serif;
  /* medidas */
  --max: 1320px;
  --respiro: clamp(16px, 4vw, 32px);
  --secao: clamp(64px, 7vw, 112px);
  --raio: 2px;
  --cab-h: 84px;
  --top-h: 38px;
  --faixa-laranja: 10px;
  --foco: var(--azul);
}

/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--cab-h) + 16px); }
body {
  margin: 0;
  font: 400 16.5px/1.65 var(--f-txt);
  color: var(--corpo);
  background: var(--branco);
  text-rendering: optimizeLegibility;
}
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; color: inherit; }
table { border-collapse: collapse; }
strong { font-weight: 600; color: var(--tit); }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 3px; }
.escuro, .laranja { --foco: var(--laranja); }
.laranja { --foco: var(--p900); }
.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(--p850); color: var(--corpo-esc); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.escuro strong { color: #FFFFFF; }
.concreto { background: var(--concreto); }
.laranja { background: var(--laranja); color: var(--p900); }
.num { font-family: var(--f-num); font-weight: 600; letter-spacing: .01em; }
.pular {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  padding: 12px 18px; border-radius: var(--raio);
  background: var(--laranja); color: var(--p900); font-weight: 600; text-decoration: none;
}
.pular:focus { top: 12px; }
.ic { flex: none; }

/* ---------- 3. Tipografia, rótulos e marcador "[" ---------- */
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, 50px); line-height: 1.1; }
h3 { font-size: 21px; line-height: 1.3; letter-spacing: -.01em; }
.escuro h1, .escuro h2, .escuro h3 { color: var(--tit-esc); }
.laranja h2, .laranja h3 { color: var(--p900); }
p { text-wrap: pretty; }
/* rótulo de seção: caixa mista, sem tracinho, sem ícone */
.rotulo { margin-bottom: 14px; font: 600 15px/1.4 var(--f-txt); color: var(--azul); }
.escuro .rotulo { color: var(--laranja); }
.laranja .rotulo { color: var(--p900); }

/* colchete "[" da logo como marcador de lista (6×12px, borda de 2px à esquerda, em cima e embaixo) */
.lista-colchete li { position: relative; padding-left: 22px; }
.lista-colchete li + li { margin-top: 10px; }
.lista-colchete li::before {
  content: ""; position: absolute; left: 1px; top: .42em;
  width: 6px; height: 12px;
  border: 2px solid var(--brasa); border-right: 0;
}
.escuro .lista-colchete li::before { border-color: var(--laranja); }

/* ---------- 4. Botões e links ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px;
  padding: 13px 24px;
  border: 1.5px solid transparent; border-radius: var(--raio);
  font: 600 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-luz { background: var(--laranja); color: var(--p900); }
.botao-luz:hover { background: var(--ambar); }
.botao-escuro { background: var(--p800); color: #FFFFFF; }
.botao-escuro:hover { background: var(--p700); }
.botao-escuro .ic-seta { color: var(--laranja); }
.botao-contorno { border-color: var(--p800); color: var(--p800); }
.botao-contorno:hover { background: var(--p800); 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, .07); }
.botao-contorno-claro .ic { color: var(--laranja); }

.link-seta {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 44px;
  font: 600 15.5px/1.3 var(--f-txt);
  color: var(--azul);
  text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px;
  text-decoration-color: rgba(26, 86, 119, .3);
  transition: color .15s, text-decoration-color .15s;
}
.link-seta .ic-seta { width: 18px; height: 18px; color: var(--brasa); }
.link-seta:hover { text-decoration-color: var(--azul); }
.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(--p950); color: var(--apoio-esc);
  font-size: 15px; 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: 24px; }
.topbar-contatos a { display: inline-flex; align-items: center; gap: 8px; min-height: var(--top-h); }
.topbar-contatos .ic { width: 15px; height: 15px; color: var(--laranja); }

.cabecalho {
  position: sticky; top: 0; z-index: 60;
  background: var(--p900);
  border-bottom: 1px solid rgba(255, 255, 255, .07);
  -webkit-font-smoothing: antialiased;
  --foco: var(--laranja);
  transition: box-shadow .15s;
}
.cabecalho.rolado { box-shadow: 0 6px 22px rgba(3, 12, 18, .38); }
.cabecalho-in { display: flex; align-items: center; gap: 32px; height: var(--cab-h); }
.marca { flex: none; display: block; }
.marca img { height: 60px; width: auto; }
.menu { margin-left: auto; display: flex; align-items: center; gap: 28px; }
.menu-lista { display: flex; align-items: center; gap: 30px; }
.menu-lista a {
  position: relative;
  display: inline-flex; align-items: center; min-height: 44px;
  font: 600 15px/1.2 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: 4px;
  height: 2px; background: var(--laranja);
}
.menu-destaque { min-height: 46px; padding: 11px 20px; }
.menu-destaque[aria-current="page"] { background: #FFFFFF; }
.menu-contatos { display: none; }
.menu-botao { display: none; }

/* ---------- 6. Hero ---------- */
.hero {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column;
  min-height: min(calc(100svh - var(--cab-h) - 1px - var(--top-h)), 880px);
  background: var(--p900);
}
.hero-fundo, .hero-fundo img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; }
.hero-fundo img { object-fit: cover; object-position: 50% 50%; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(10, 32, 44, .94) 0%, rgba(10, 32, 44, .82) 42%, rgba(10, 32, 44, .42) 100%);
}
.hero-grade {
  flex: 1;
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(32px, 4vw, 72px); align-items: center;
  padding-block: clamp(36px, 7vh, 96px);
}
.hero-tag { font: 600 15.5px/1.4 var(--f-txt); color: var(--laranja); }
.hero h1 {
  margin-top: 18px;
  max-width: 20ch;
  font-size: clamp(34px, 2.4vw + 14px, 56px);
  line-height: 1.08;
  letter-spacing: -.02em;
}
.h1-pre {
  display: block; margin-bottom: .32em;
  font-size: max(15px, .44em); font-weight: 500; line-height: 1.2; letter-spacing: 0;
  color: rgba(255, 255, 255, .72);
}
.hero-sub { margin-top: 22px; max-width: 52ch; font-size: 18px; line-height: 1.55; color: rgba(255, 255, 255, .85); }
.hero-acoes { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }

/* bloco da data: o colchete laranja da logo "abre" a data, com as duas tampas */
.hero-data {
  position: relative; justify-self: end;
  padding: 22px 8px 22px clamp(40px, 3.4vw, 58px);
}
.hero-data::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0;
  width: clamp(20px, 1.7vw, 30px);
  border: clamp(7px, .62vw, 10px) solid var(--laranja); border-right: 0;
}
.data-rot { font: 600 15.5px/1.4 var(--f-txt); color: rgba(255, 255, 255, .72); }
.data-dias {
  margin-top: 8px;
  font: 700 clamp(96px, 10vw, 180px)/.84 var(--f-num);
  letter-spacing: -.005em;
  color: #FFFFFF;
  white-space: nowrap;
}
.data-a { margin-inline: .26em; font-size: .4em; font-weight: 600; color: rgba(255, 255, 255, .6); }
.data-mes { margin-top: 16px; font: 500 clamp(26px, 1.6vw + 8px, 34px)/1.15 var(--f-tit); letter-spacing: -.01em; color: var(--laranja); }
.data-info { margin-top: 8px; font-size: 16px; line-height: 1.45; color: rgba(255, 255, 255, .72); }

/* faixa de informações + faixa laranja do pé do banner */
.hero-faixa {
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, .14);
  border-bottom: var(--faixa-laranja) solid var(--laranja);
  background: rgba(6, 24, 32, .62);
}
.faixa-in { display: flex; align-items: center; justify-content: space-between; gap: 24px 32px; padding-block: 16px; }
.faixa-dados { display: flex; flex-wrap: wrap; }
.faixa-dados > div {
  display: grid; grid-template-columns: 24px auto; column-gap: 12px; align-items: center;
  padding-right: 32px;
}
.faixa-dados > div + div { padding-left: 32px; border-left: 1px solid rgba(255, 255, 255, .14); }
.faixa-dados dt { display: contents; font-size: 15px; font-weight: 500; color: var(--apoio-esc); }
.faixa-ic { grid-row: 1 / span 2; color: var(--laranja); }
.faixa-ic .ic { width: 24px; height: 24px; }
.faixa-dados dd { grid-column: 2; font: 600 18.5px/1.3 var(--f-tit); color: #FFFFFF; white-space: nowrap; }

/* ---------- 7. Contagem regressiva ---------- */
.contagem { display: flex; align-items: center; gap: 18px; }
.contagem-rot { font-size: 15px; font-weight: 500; color: var(--apoio-esc); }
.contagem-lista { display: flex; }
.contagem-lista li { min-width: 62px; padding-inline: 12px; text-align: center; }
.contagem-lista li + li { border-left: 1px solid rgba(255, 255, 255, .14); }
.contagem-lista span { display: block; font: 600 38px/1 var(--f-num); color: #FFFFFF; font-variant-numeric: tabular-nums; }
.contagem-lista small { display: block; margin-top: 4px; font-size: 13px; line-height: 1.2; color: var(--apoio-esc); }
.contagem-fim { font: 600 17px/1.4 var(--f-tit); color: #FFFFFF; }
.contagem.acabou .contagem-rot, .contagem.acabou .contagem-lista { display: none; }

/* ---------- 8. Introdução e números ---------- */
.intro-grade {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(40px, 6vw, 104px); align-items: start;
}
.intro-texto h2 { max-width: 16ch; }
.leitura { margin-top: 30px; max-width: 66ch; }
.leitura p + p { margin-top: 1.05em; }
.leitura-lead { font-size: 19px; line-height: 1.6; color: var(--tit); }
.intro-texto .link-seta { margin-top: 22px; }

.intro-painel {
  margin-top: 6px;
  padding: clamp(26px, 2.6vw, 40px);
  background: var(--concreto);
  border: 1px solid var(--linha);
  border-radius: var(--raio);
}
.ip-rot { font: 600 15px/1.4 var(--f-txt); color: var(--azul); }
.ip-ch { padding-bottom: 24px; border-bottom: 1px solid var(--linha); }
.ip-num { display: flex; align-items: baseline; margin-top: 14px; color: var(--tit); line-height: .8; }
.ip-num .num { font-size: 104px; font-weight: 700; color: var(--brasa); }
.ip-h { margin-left: 4px; font: 600 38px/1 var(--f-tit); color: var(--brasa); }
.ip-material { padding-block: 22px 24px; }
.ip-material ul { margin-top: 12px; color: var(--tit); }
.ip-notebook {
  position: relative;
  padding: 22px 24px 22px 54px;
  background: var(--p900); color: #FFFFFF;
  border-radius: var(--raio);
  font: 600 20px/1.3 var(--f-tit); letter-spacing: -.01em;
  -webkit-font-smoothing: antialiased;
}
.ip-notebook::before {
  content: ""; position: absolute; left: 24px; top: 22px; bottom: 22px;
  width: 11px; border: 3px solid var(--laranja); border-right: 0;
}

.numeros {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(56px, 6vw, 96px);
  border-top: 1px solid var(--linha);
}
.numeros li { display: flex; flex-direction: column; padding: 30px 24px 0 0; }
.numeros li + li { padding-left: clamp(20px, 2.4vw, 36px); border-left: 1px solid var(--linha); }
.n-valor {
  display: flex; align-items: baseline;
  font: 700 clamp(64px, 5.4vw, 88px)/.86 var(--f-num);
  color: var(--tit);
}
.n-menor { font-size: .5em; font-weight: 600; }
.n-mil { margin-left: .14em; }
.n-leg { margin-top: 12px; max-width: 22ch; font-size: 15.5px; line-height: 1.45; color: var(--apoio); }

/* ---------- 9. Programa: módulo teórico (claro) × módulo prático (escuro) ---------- */
.cab-centro { max-width: 980px; margin: 0 auto clamp(40px, 5vw, 64px); text-align: center; }
.cab-centro h2 { max-width: 30ch; margin-inline: auto; }
.cab-linha { margin-top: 18px; font-size: 18px; line-height: 1.55; color: var(--corpo); }

.modulos {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto auto;
}
.modulo {
  display: grid; grid-row: span 2; grid-template-rows: subgrid;
  padding: clamp(26px, 3vw, 48px) clamp(20px, 3vw, 48px) clamp(26px, 3vw, 44px);
}
.modulo-teoria { background: var(--branco); border: 1px solid var(--linha); border-right: 0; border-radius: var(--raio) 0 0 var(--raio); }
.modulo-pratica { background: var(--p900); border-radius: 0 var(--raio) var(--raio) 0; }
.modulo-cab { padding-bottom: 26px; }
.modulo-rot { margin-bottom: 10px; font: 600 15px/1.4 var(--f-txt); color: var(--azul); }
.modulo-pratica .modulo-rot { color: var(--laranja); }
.modulo h3 { max-width: 24ch; font-size: clamp(22px, 1vw + 12px, 27px); line-height: 1.22; }
.temas { align-self: start; border-top: 1px solid var(--linha); }
.modulo-pratica .temas { border-top-color: var(--linha-esc); }
.tema {
  display: grid; grid-template-columns: 58px minmax(0, 1fr) 38px; gap: 18px; align-items: center;
  min-height: 76px;
  padding: 12px 12px 12px 8px;
  border-bottom: 1px solid var(--linha);
  text-decoration: none; color: inherit;
  transition: background-color .15s;
}
.modulo-teoria .tema:hover { background: var(--concreto); }
.modulo-pratica .tema { border-bottom-color: var(--linha-esc); }
.modulo-pratica .tema:hover { background: var(--p800); }
.tema-n { font: 600 44px/.9 var(--f-num); color: var(--brasa); }
.modulo-pratica .tema-n { color: var(--laranja); }
.tema-tit { display: block; font: 600 18.5px/1.3 var(--f-tit); letter-spacing: -.005em; color: var(--tit); }
.modulo-pratica .tema-tit { color: #FFFFFF; }
.tema-meta { display: block; margin-top: 2px; font-size: 15px; line-height: 1.4; color: var(--apoio); }
.modulo-pratica .tema-meta { color: var(--apoio-esc); }
.tema-seta {
  display: grid; place-items: center; width: 38px; height: 38px;
  border: 1.5px solid var(--linha); border-radius: var(--raio);
  color: var(--p800);
  transition: border-color .15s, color .15s;
}
.tema-seta .ic { width: 17px; height: 17px; }
.modulo-teoria .tema:hover .tema-seta { border-color: var(--p800); }
.modulo-pratica .tema-seta { border-color: rgba(255, 255, 255, .22); color: var(--laranja); }
.modulo-pratica .tema:hover .tema-seta { border-color: var(--laranja); }

.acoes-centro { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: clamp(40px, 4vw, 56px); }
.aviso-centro { max-width: 880px; margin: 24px auto 0; text-align: center; font-size: 15px; line-height: 1.55; color: var(--apoio); }

/* ---------- 10. Leve seu notebook (seção-assinatura) ---------- */
.pratica { position: relative; isolation: isolate; overflow: hidden; }
.moldura { position: absolute; z-index: -1; border: clamp(12px, 1.3vw, 22px) solid rgba(44, 84, 104, .34); pointer-events: none; }
.moldura-a { left: -16vw; top: 58%; bottom: -36px; width: 44vw; }
.moldura-b { left: calc(-16vw + clamp(40px, 4vw, 64px)); top: calc(58% + clamp(40px, 4vw, 64px)); bottom: -36px; width: calc(44vw - 2 * clamp(40px, 4vw, 64px)); border-bottom: 0; border-color: rgba(44, 84, 104, .22); }
.pra-grade {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: clamp(40px, 6vw, 104px); align-items: start;
}
.pra-cartaz h2 {
  font-size: clamp(40px, 4vw + 4px, 78px);
  line-height: 1.03;
  letter-spacing: -.028em;
}
.pra-cartaz::after { content: ""; display: block; width: 96px; height: var(--faixa-laranja); margin-top: 40px; background: var(--laranja); }
.pra-texto { padding-top: 6px; }
.pra-texto > p { font-size: 17px; line-height: 1.65; }
.pra-texto > p + p { margin-top: 1em; }
.pra-quadro { margin-top: 34px; padding: 28px clamp(20px, 2.4vw, 32px) 26px; border: 1px solid rgba(140, 180, 200, .3); border-radius: var(--raio); }
.pra-quadro h3 { margin-bottom: 18px; font-size: 20px; }
.pra-lista { columns: 2; column-gap: 28px; color: #FFFFFF; }
.pra-lista li { break-inside: avoid; }
.pra-lista li + li { margin-top: 0; }
.pra-lista li:not(:last-child) { margin-bottom: 10px; }
.pra-pe {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px 40px;
  margin-top: clamp(48px, 5vw, 80px); padding-top: 32px;
  border-top: 1px solid var(--linha-esc);
}
.modalidades { display: flex; flex-wrap: wrap; row-gap: 12px; }
.modalidades li {
  padding-inline: 22px;
  font: 500 clamp(19px, .8vw + 10px, 23px)/1.3 var(--f-tit); letter-spacing: -.01em;
  color: #FFFFFF;
  border-left: 1px solid rgba(255, 255, 255, .2);
}
.modalidades li:first-child { padding-left: 0; border-left: 0; }
.modalidades .modalidade-dc { flex-basis: 100%; padding-left: 0; border-left: 0; color: var(--laranja); }

/* ---------- 11. Professora ---------- */
.prof-grade {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(40px, 6vw, 104px); align-items: start;
}
.prof-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--raio); background: var(--concreto); }
.prof-cargo { margin-top: 12px; font: 500 20px/1.35 var(--f-tit); color: var(--azul); }
.prof-bio { margin-top: 20px; max-width: 62ch; font-size: 17px; }
.marcos { margin-top: 30px; border-top: 1px solid var(--linha); }
.marcos li {
  display: grid; grid-template-columns: minmax(0, 210px) minmax(0, 1fr); gap: 8px 28px;
  padding-block: 16px; border-bottom: 1px solid var(--linha);
}
.marco-lead { font: 600 17px/1.4 var(--f-tit); color: var(--tit); }
.prof-texto .botao { margin-top: 34px; }

/* ---------- 12. Público-alvo (faixa laranja chapada) ---------- */
.pub-cab h2 { max-width: 18ch; }
.publicos {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(36px, 4vw, 56px);
  border-top: 2px solid var(--p900);
}
.publicos li { padding: 26px 28px 4px; border-left: 1px solid rgba(10, 32, 44, .2); }
.publicos li:first-child { padding-left: 0; border-left: 0; }
.pub-n { display: block; font: 700 58px/.9 var(--f-num); color: var(--p900); }
.publicos p { margin-top: 18px; font: 500 clamp(19px, .7vw + 12px, 22px)/1.35 var(--f-tit); letter-spacing: -.01em; color: var(--p900); }

/* ---------- 13. Investimento e pagamento ---------- */
.inv-cab { margin-bottom: clamp(32px, 4vw, 48px); }
.inv-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.painel { padding: clamp(26px, 3vw, 44px); background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); }
.preco-rot { font: 600 15px/1.4 var(--f-txt); color: var(--azul); }
.preco-grande { margin-top: 10px; font: 700 clamp(64px, 5vw + 8px, 88px)/.86 var(--f-num); color: var(--tit); white-space: nowrap; }
.preco-moeda { margin-right: .12em; font: 600 .36em/1 var(--f-tit); letter-spacing: 0; vertical-align: .12em; }
.preco-por { margin-top: 12px; font-size: 16px; color: var(--apoio); }
.inv-preco .botao { margin-top: 26px; }
.incluso-bloco { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--linha); }
.incluso-bloco h3 { margin-bottom: 16px; font-size: 19px; }
.incluso li + li { margin-top: 12px; }

.pagamento { display: flex; flex-direction: column; border-color: rgba(10, 32, 44, .28); }
.pagamento h3 { font-size: 21px; }
.pag-intro { margin-top: 8px; font-size: 16px; color: var(--apoio); }
.pag-dados { margin-top: 18px; border-top: 1px solid var(--linha); }
.pag-dados > div {
  display: grid; grid-template-columns: 128px minmax(0, 1fr) auto; gap: 4px 16px; align-items: center;
  padding-block: 10px; border-bottom: 1px solid var(--linha);
}
.pag-dados dt { font-size: 15px; font-weight: 500; color: var(--apoio); }
.pag-dados dd { font: 600 17px/1.4 var(--f-tit); color: var(--tit); overflow-wrap: anywhere; }
.pag-dados dd.num { font-family: var(--f-tit); letter-spacing: .005em; font-variant-numeric: tabular-nums; }
.copiar-item {
  display: inline-flex; align-items: center; gap: 7px;
  min-height: 44px; padding: 0 12px;
  border: 1.5px solid var(--linha); border-radius: var(--raio);
  background: transparent; color: var(--p800);
  font-size: 15px; font-weight: 600; cursor: pointer;
  transition: border-color .15s, color .15s, background-color .15s;
}
.copiar-item svg { width: 17px; height: 17px; }
.copiar-item:hover { border-color: var(--p800); }
.copiar-item .ic-ok { display: none; }
.copiar-item.ok { border-color: var(--azul); color: var(--azul); background: #EAF1F5; }
.copiar-item.ok .ic-ok { display: block; }
.copiar-item.ok .ic-copiar { display: none; }
.copiar-tudo {
  display: flex; align-items: center; gap: 14px;
  width: 100%; margin-top: auto; padding: 15px 20px;
  border: 0; border-radius: var(--raio);
  background: var(--p800); color: #FFFFFF; text-align: left; cursor: pointer;
  transition: background-color .15s;
}
.pag-dados + .copiar-tudo { margin-top: 24px; }
.copiar-tudo:hover { background: var(--p700); }
.copiar-tudo.ok { background: var(--p900); }
.copiar-tudo .ic { width: 22px; height: 22px; color: var(--laranja); }
.copiar-tudo-txt { display: grid; }
.copiar-tudo-tit { font-size: 16px; font-weight: 600; }
.copiar-tudo-sub { font-size: 15px; color: rgba(255, 255, 255, .72); }
.copiar-aviso { margin-top: 10px; font-size: 15px; color: var(--azul); }
.copiar-aviso:empty { display: none; }

/* ---------- 14. Presencial em Foz do Iguaçu + horários ---------- */
.foz { background: var(--p900); }
.foz-foto { position: relative; isolation: isolate; aspect-ratio: 21 / 8; min-height: 320px; max-height: 720px; width: 100%; overflow: hidden; background: var(--p800); }
.foz-foto img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.foz-foto::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(10, 32, 44, 0) 30%, rgba(10, 32, 44, .62) 62%, rgba(10, 32, 44, .97) 100%);
}
.foz-titulo { position: absolute; left: 0; right: 0; bottom: clamp(20px, 3vw, 48px); }
.foz-titulo h2 { font-size: clamp(46px, 4.6vw + 6px, 96px); line-height: .98; letter-spacing: -.03em; }
.foz-grade {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .8fr) minmax(0, 1.15fr);
  padding-block: clamp(36px, 4vw, 64px) var(--secao);
}
.foz-col { padding-right: clamp(20px, 3vw, 48px); }
.foz-col + .foz-col { padding-left: clamp(20px, 3vw, 48px); border-left: 1px solid var(--linha-esc); }
.foz-data { font: 600 clamp(24px, 1vw + 14px, 30px)/1.2 var(--f-tit); letter-spacing: -.01em; color: #FFFFFF; }
.foz-data .num { font-family: inherit; font-weight: inherit; letter-spacing: inherit; }
.foz-quando > p:not(.foz-data):not(.foz-modo) { margin-top: 14px; }
.foz-modo { margin-top: 14px; font-weight: 600; color: var(--laranja); }
.foz-quando .botao { margin-top: 28px; }
.foz-local > div { padding-block: 13px; border-bottom: 1px solid var(--linha-esc); }
.foz-local > div:first-child { padding-top: 0; }
.foz-local dt { font-size: 15px; font-weight: 500; color: var(--apoio-esc); }
.foz-local dd { margin-top: 2px; font: 600 21px/1.3 var(--f-tit); color: #FFFFFF; }

.horarios { width: 100%; }
.horarios caption { margin-bottom: 10px; text-align: left; font: 600 21px/1.3 var(--f-tit); color: var(--tit); }
.escuro .horarios caption { color: #FFFFFF; }
.horarios th, .horarios td { padding-block: 10px; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: baseline; }
.escuro .horarios th, .escuro .horarios td { border-bottom-color: var(--linha-esc); }
.horarios tbody tr:first-child th, .horarios tbody tr:first-child td { border-top: 1px solid var(--linha); }
.escuro .horarios tbody tr:first-child th, .escuro .horarios tbody tr:first-child td { border-top-color: var(--linha-esc); }
.horarios th { padding-right: 20px; font-size: 15px; font-weight: 400; color: var(--apoio); white-space: nowrap; }
.escuro .horarios th { color: var(--apoio-esc); }
.horarios th .num { font-size: 24px; line-height: 1; color: var(--tit); }
.escuro .horarios th .num { color: #FFFFFF; }
.horarios td { font-size: 16.5px; color: var(--tit); }
.escuro .horarios td { color: #FFFFFF; }
.h-nota { display: block; font-size: 15px; color: var(--azul); }
.escuro .h-nota { color: var(--laranja); }
.h-pausa td { color: var(--apoio); }
.escuro .h-pausa td { color: var(--apoio-esc); }

/* ---------- 15. Galeria ---------- */
.gal-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 32px; margin-bottom: clamp(28px, 3vw, 40px); }
.gal-cab p { max-width: 52ch; color: var(--apoio); }
.galeria-fotos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(8px, 1vw, 16px); }
.galeria-fotos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--raio); background: var(--concreto); }

/* ---------- 16. Rodapé ---------- */
.rodape { background: var(--p900); border-top: 6px solid var(--laranja); font-size: 15.5px; }
.rodape-grade {
  display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
  gap: 40px; padding-block: clamp(56px, 6vw, 80px) 44px;
}
.rodape-logo { display: inline-block; }
.rodape-logo img { height: 74px; width: auto; }
.rodape-evento { margin-top: 20px; line-height: 1.55; color: var(--apoio-esc); }
.rodape-evento .num { font-family: inherit; font-weight: inherit; letter-spacing: 0; }
.realizacao { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--linha-esc); max-width: 300px; }
.realizacao p { margin-bottom: 12px; font-size: 15px; color: var(--apoio-esc); }
.realizacao a { display: inline-block; }
.realizacao img { width: 140px; }
.rodape h2 { margin-bottom: 14px; font: 600 15.5px/1.4 var(--f-txt); letter-spacing: 0; color: #FFFFFF; }
.rodape-col ul { display: grid; gap: 0; }
.rodape-col li a { display: inline-flex; align-items: center; min-height: 44px; }
.rodape a { text-decoration: none; transition: color .15s, border-color .15s; }
.rodape a:hover { color: #FFFFFF; }
.rodape-contatos a { gap: 10px; overflow-wrap: anywhere; }
.rodape-contatos .ic { width: 16px; height: 16px; color: var(--laranja); }
.rodape address { margin-top: 14px; line-height: 1.55; color: var(--apoio-esc); }
.rodape-redes { display: flex !important; gap: 10px !important; }
.rodape-redes a {
  display: grid !important; place-items: center; width: 44px; height: 44px;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--raio);
}
.rodape-redes a:hover { border-color: var(--laranja); color: var(--laranja); }
.rodape-site { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 16px; color: #FFFFFF; }
.rodape-site .ic-seta { width: 16px; height: 16px; color: var(--laranja); }
.rodape-base p { padding-block: 22px; padding-right: 84px; border-top: 1px solid var(--linha-esc); font-size: 15px; color: var(--apoio-esc); }
.com-barra .rodape { padding-bottom: var(--barra-h, 76px); }

/* ---------- 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(--p900);
  border-top: 3px solid var(--laranja);
  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: 11px; }
.barra-logo { height: 46px; width: auto; flex: none; }
.barra-txt { min-width: 0; padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .14); }
.barra-tit { font: 600 16px/1.3 var(--f-tit); color: #FFFFFF; }
.barra-info { font-size: 15px; 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 32px/1 var(--f-num); color: #FFFFFF; }
.barra-moeda { margin-right: 2px; font: 600 max(15px, .5em)/1 var(--f-tit); }
.barra-por { font-size: 15px; color: var(--apoio-esc); }
.barra-inscricao .botao { 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(3, 12, 18, .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); }

/* ---------- 18. Páginas internas: topo, migalhas, canais de contato, acordeão ---------- */
.topo { position: relative; isolation: isolate; overflow: hidden; background: var(--p900); border-bottom: var(--faixa-laranja) solid var(--laranja); }
.topo-fundo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.topo::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(10, 32, 44, .95) 0%, rgba(10, 32, 44, .82) 50%, rgba(10, 32, 44, .45) 100%);
}
.topo-in { padding-block: clamp(40px, 5vw, 80px) clamp(44px, 5.5vw, 88px); }
.migalhas ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; margin-block: -12px; font-size: 15px; line-height: 1.4; color: var(--apoio-esc); }
.migalhas li { display: flex; align-items: center; min-height: 44px; }
.migalhas li + li::before { content: "/"; margin-right: 10px; color: rgba(255, 255, 255, .35); }
.migalhas a { display: inline-flex; align-items: center; min-height: 44px; 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.2vw + 10px, 66px); line-height: 1.04; 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); }
.topo-evento .num { font-family: inherit; font-weight: inherit; letter-spacing: 0; }
/* ação opcional do topo (programação: "Ver a programação em PDF"); no desktop fica à direita, sem aumentar o topo */
.topo-acoes { margin-top: 26px; }
@media (min-width: 901px) {
  .topo-in:has(.topo-acoes) { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 48px; }
  .topo-in:has(.topo-acoes) > * { grid-column: 1; }
  .topo-in > .topo-acoes { grid-column: 2; grid-row: 2 / span 3; align-self: end; margin-top: 0; }
}

.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(--concreto); color: var(--azul); }
.canal-ic .ic { width: 20px; height: 20px; }
.canal-rot { font-size: 15px; font-weight: 500; 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(--azul); }

.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%; min-height: 76px; padding: 18px 16px 18px 8px;
  border: 0; background: transparent; text-align: left; color: inherit;
  cursor: pointer;
  transition: background-color .15s;
}
.ac-botao:hover { background: var(--concreto); }
.ac-n { font: 600 50px/.88 var(--f-num); color: var(--brasa); }
.ac-rot { display: block; font-size: 15px; font-weight: 600; color: var(--azul); }
.ac-tit { display: block; margin-top: 2px; font: 600 21px/1.28 var(--f-tit); letter-spacing: -.01em; color: var(--tit); }
.ac-qtd { font-size: 15px; 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(--brasa);
}
.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 + 28px); }
.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 + .42em); }

/* ---------- 18b. Internas: programação, professora, contato, inscrição ---------- */
/* botões pequenos (Abrir todos / Fechar todos) — só com JS (sem JS tudo já vem aberto) */
.botao-mini {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px;
  border: 1.5px solid var(--linha); border-radius: var(--raio);
  background: transparent; color: var(--p800);
  font: 600 15px/1.2 var(--f-txt); cursor: pointer;
  transition: border-color .15s, color .15s, background-color .15s;
}
.botao-mini:hover { border-color: var(--p800); }
.escuro .botao-mini { border-color: rgba(255, 255, 255, .26); color: #FFFFFF; }
.escuro .botao-mini:hover { border-color: var(--laranja); }
.no-js .ac-ferramentas { display: none; }
.ac-ferramentas { display: flex; flex-wrap: wrap; gap: 10px; }

/* programação: introdução completa com a coluna lateral do PDF */
.intro-lado { align-self: stretch; }
.intro-lado .intro-painel { position: sticky; top: calc(var(--cab-h) + 32px); }

/* programação: cabeçalho de cada módulo + acordeão claro (teoria) e escuro (prática) */
.mod-cab {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 40px;
  margin-bottom: clamp(28px, 3vw, 44px);
}
.mod-cab > div:first-child { max-width: 760px; }
.mod-sub { margin-top: 12px; font: 500 clamp(20px, .8vw + 13px, 26px)/1.3 var(--f-tit); letter-spacing: -.01em; color: var(--azul); }
.escuro .mod-sub { color: var(--laranja); }
.mod-linha { margin-top: 12px; font-size: 17px; line-height: 1.55; }
.programa-modulo.concreto .acordeao { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); }
.programa-modulo.concreto .ac-item:last-child { border-bottom: 0; }
.ac-cab { margin: 0; font: inherit; letter-spacing: 0; text-wrap: initial; }
.ac-txt { display: block; min-width: 0; }
.ac-corpo { padding-top: 0; }
.escuro .acordeao { border-top-color: var(--linha-esc); }
.escuro .ac-item { border-bottom-color: var(--linha-esc); }
.escuro .ac-botao:hover { background: var(--p800); }
.escuro .ac-n { color: var(--laranja); }
.escuro .ac-rot { color: var(--laranja); }
.escuro .ac-tit { color: #FFFFFF; }
.escuro .ac-qtd { color: var(--apoio-esc); }
.escuro .ac-sinal { border-color: rgba(255, 255, 255, .26); }
.escuro .ac-sinal::before, .escuro .ac-sinal::after { background: var(--laranja); }
.escuro .ac-topicos li { border-top-color: var(--linha-esc); color: var(--corpo-esc); }
.programa-modulo.escuro { background: var(--p900); }

/* data, local e horários (programação e inscrição) */
.hor-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 104px); align-items: start; }
.hor-linha { margin-top: 16px; max-width: 46ch; font-size: 17px; }
.local-dados { margin-top: 28px; border-top: 1px solid var(--linha); }
.local-dados > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; padding-block: 13px; border-bottom: 1px solid var(--linha); }
.local-dados dt { font-size: 15px; font-weight: 500; color: var(--apoio); }
.local-dados dd { font: 600 19px/1.3 var(--f-tit); color: var(--tit); }
.escuro .local-dados { border-top-color: var(--linha-esc); }
.escuro .local-dados > div { border-bottom-color: var(--linha-esc); }
.escuro .local-dados dt { color: var(--apoio-esc); }
.escuro .local-dados dd { color: #FFFFFF; }
.quando-contagem { margin-top: 36px; }
.quando .contagem-lista span { font-size: 44px; }

/* chamada final centralizada */
.cha-in { text-align: center; }
.cha-in h2 { margin-inline: auto; }
.cha-linha { margin-top: 14px; font-size: 18px; color: var(--corpo); }

/* professora (página) */
.prof-pagina .prof-foto img { aspect-ratio: 4 / 5; }
.prof-leitura { margin-top: 26px; }
.prof-acoes { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.prof-texto .prof-acoes .botao { margin-top: 0; }
.marcos-faixa { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 2px solid var(--p900); }
.marcos-faixa li { padding: 26px 24px 4px; border-left: 1px solid var(--linha); }
.marcos-faixa li:first-child { padding-left: 0; border-left: 0; }
.mf-lead { display: flex; align-items: flex-end; min-height: 52px; font: 600 21px/1.2 var(--f-tit); letter-spacing: -.01em; color: var(--tit); }
.mf-lead .num { margin-right: 8px; font-size: 60px; font-weight: 700; line-height: .86; color: var(--brasa); }
.mf-lead + p { margin-top: 12px; font-size: 16px; line-height: 1.5; }

/* contato e bloco de atendimento da inscrição */
.contato-grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 104px); align-items: start; }
.contato-canais h2 { margin-bottom: 28px; }
.contato-extra { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; margin-top: 36px; }
.contato-extra h3 { margin-bottom: 10px; font-size: 18px; }
.contato-extra address { line-height: 1.6; }
.redes-claro { display: flex; gap: 10px; }
.redes-claro a {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1.5px solid var(--linha); border-radius: var(--raio); color: var(--p800);
  transition: border-color .15s, color .15s;
}
.redes-claro a:hover { border-color: var(--p800); }
.painel-local, .painel-cta {
  padding: clamp(28px, 3vw, 44px);
  background: var(--p900);
  border-top: var(--faixa-laranja) solid var(--laranja);
  border-radius: var(--raio);
}
.painel-local h2, .painel-cta h2 { font-size: clamp(30px, 1.6vw + 14px, 40px); }
.pl-data { margin-top: 10px; font: 500 19px/1.4 var(--f-tit); color: rgba(255, 255, 255, .85); }
.painel-local .botao, .painel-cta .botao { margin-top: 28px; }
.painel-cta .link-seta { display: flex; width: max-content; margin-top: 14px; }

/* ---------- 19. Responsivo ---------- */
/* telas grandes: a data pode crescer um pouco além do container */
@media (min-width: 1800px) {
  .hero h1 { max-width: 21ch; }
}

/* telas baixas (notebook 1366×657 / 1280×610 úteis): topbar sai para o hero + faixa caberem */
@media (max-height: 700px) {
  :root { --top-h: 0px; }
  .topbar { display: none; }
}
@media (max-height: 820px) and (min-width: 901px) {
  .hero-grade { padding-block: 28px; }
  .hero h1 { margin-top: 12px; font-size: clamp(34px, 2.2vw + 12px, 48px); }
  .hero-sub { margin-top: 16px; font-size: 17px; }
  .hero-acoes { margin-top: 24px; }
  .data-dias { font-size: clamp(96px, 21vh, 150px); }
  .data-mes { margin-top: 12px; }
  .hero-data { padding-block: 16px; }
  .faixa-in { padding-block: 12px; }
}
@media (max-height: 640px) and (min-width: 901px) {
  .hero-grade { padding-block: 22px; }
  .hero h1 { font-size: clamp(32px, 2vw + 12px, 42px); }
  .h1-pre { margin-bottom: .2em; }
  .hero-sub { margin-top: 12px; font-size: 16.5px; line-height: 1.5; }
  .hero-acoes { margin-top: 20px; }
  .data-rot { display: none; }
  .data-dias { margin-top: 0; }
}

@media (max-width: 1240px) {
  .faixa-dados > div { padding-right: 22px; }
  .faixa-dados > div + div { padding-left: 22px; }
  .contagem-lista li { min-width: 54px; padding-inline: 9px; }
  .contagem-lista span { font-size: 34px; }
}

@media (max-width: 1100px) {
  .faixa-in { flex-wrap: wrap; }
  .intro-grade { grid-template-columns: minmax(0, 1fr); }
  .intro-painel { max-width: 640px; }
  .pra-grade { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .moldura { display: none; }
  .pra-cartaz h2 { max-width: 16ch; }
  .rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .foz-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
  .foz-horarios { grid-column: 1 / -1; padding-left: 0 !important; border-left: 0 !important; max-width: 620px; }
}

/* cabeçalho compacto + menu em painel de tela cheia */
@media (max-width: 1040px) {
  :root { --cab-h: 70px; }
  .marca img { height: 48px; }
  .menu-botao {
    display: grid; place-items: center;
    margin-left: auto;
    width: 48px; height: 48px;
    border: 1px solid rgba(255, 255, 255, .24); 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; 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) + 36px) var(--respiro) 32px;
    background: var(--p900);
    overflow-y: auto;
  }
  .menu-aberto .menu { display: flex; }
  html.menu-travado, .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 {
    display: flex; min-height: 64px; padding: 12px 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; min-height: 52px; padding: 14px 24px; }
  .menu-contatos { display: grid; gap: 4px; margin-top: auto; padding-top: 36px; font-size: 16px; }
  .menu-contatos a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--corpo-esc); text-decoration: none; overflow-wrap: anywhere; }
  .menu-contatos .ic { color: var(--laranja); }

  .barra-txt { display: none; }
}

@media (max-width: 960px) {
  .modulos { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .modulo { grid-row: auto; grid-template-rows: none; }
  .modulo-teoria { border-right: 1px solid var(--linha); border-bottom: 0; border-radius: var(--raio) var(--raio) 0 0; }
  .modulo-pratica { border-radius: 0 0 var(--raio) var(--raio); }
  .inv-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .publicos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .publicos li { padding: 24px 24px 28px; }
  .publicos li:nth-child(odd) { padding-left: 0; border-left: 0; }
  .publicos li:nth-child(n+3) { border-top: 1px solid rgba(10, 32, 44, .2); }
}

@media (max-width: 900px) {
  :root { --top-h: 0px; }
  .topbar { display: none; }
  .hero { min-height: 0; }
  .hero-grade { grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start; padding-block: 48px 44px; }
  .hero-data { justify-self: start; }
  .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .numeros li:nth-child(3) { padding-left: 0; border-left: 0; }
  .numeros li:nth-child(n+3) { margin-top: 28px; }
  .prof-grade { grid-template-columns: minmax(0, 1fr); }
  .prof-foto { max-width: 460px; }
  .marcos li { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .hero::before { background: linear-gradient(180deg, rgba(10, 32, 44, .86) 0%, rgba(10, 32, 44, .62) 55%, rgba(10, 32, 44, .82) 100%); }
  .hero-sub { font-size: 17px; }
  .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; border: 0; }
  .contagem { padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .14); justify-content: space-between; }
  .pra-pe { grid-template-columns: minmax(0, 1fr); }
  .pra-pe .botao { justify-self: start; }
  .pra-lista { columns: 1; }
  .modalidades { flex-direction: column; }
  .modalidades li, .modalidades li:first-child { padding: 0 0 0 16px; border-left: 2px solid rgba(255, 255, 255, .2); }
  .modalidades .modalidade-dc { border-left-color: var(--laranja); }
  .foz-foto { aspect-ratio: 4 / 3; min-height: 0; }
  .foz-grade { grid-template-columns: minmax(0, 1fr); }
  .foz-col, .foz-col + .foz-col { padding-inline: 0; border-left: 0; }
  .foz-col + .foz-col { padding-top: 32px; border-top: 1px solid var(--linha-esc); }
  .foz-local > div:first-child { padding-top: 0; }
  .galeria-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .barra-logo { display: none; }
  .barra-in { gap: 16px; }
  .barra-preco { margin-left: 0; flex-direction: column; gap: 2px; }
  .barra-valor { font-size: 28px; }
  .barra-inscricao .botao { margin-left: auto; }
  .ac-botao { grid-template-columns: 52px minmax(0, 1fr) 40px; gap: 4px 14px; }
  .ac-qtd { grid-column: 2; grid-row: 2; }
  .ac-sinal { grid-column: 3; grid-row: 1 / span 2; }
  .ac-n { font-size: 40px; }
  .ac-corpo { padding: 0 8px 28px; }
  .ac-topicos { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .rodape-grade { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .tema { grid-template-columns: 44px minmax(0, 1fr) 36px; gap: 14px; padding-inline: 4px; }
  .tema-n { font-size: 36px; }
  .tema-seta { width: 36px; height: 36px; }
  .pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; }
  .pag-dados dt { grid-column: 1; }
  .pag-dados dd { grid-column: 1; }
  .pag-dados .copiar-item { grid-column: 2; grid-row: 1 / span 2; }
}

@media (max-width: 560px) {
  .hero h1 { font-size: clamp(30px, 6.4vw + 6px, 38px); }
  .data-dias { font-size: clamp(88px, 30vw, 132px); }
  .publicos { grid-template-columns: minmax(0, 1fr); }
  .publicos li, .publicos li:nth-child(odd) { padding: 22px 0 24px; border-left: 0; }
  .publicos li + li { border-top: 1px solid rgba(10, 32, 44, .2); }
  .pub-n { font-size: 48px; }
  .publicos p { margin-top: 12px; }
  .ip-num .num { font-size: 88px; }
  .contagem-lista li { min-width: 0; flex: 1; padding-inline: 6px; }
  .contagem-lista span { font-size: 32px; }
  .barra-por { display: none; }
}

@media (max-width: 400px) {
  .hero-acoes .botao { width: 100%; }
  .contagem { flex-direction: column; align-items: stretch; gap: 8px; }
  .contagem-lista li:first-child { padding-left: 0; }
  .barra-inscricao .botao { padding-inline: 16px; font-size: 15px; }
  .barra-valor { font-size: 25px; }
  .copiar-item-txt { display: none; }
}
@media (max-width: 360px) { .so-largo { display: none; } }

/* internas */
@media (max-width: 1100px) {
  .marcos-faixa { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 28px; }
  .marcos-faixa li:nth-child(4) { padding-left: 0; border-left: 0; }
}
@media (max-width: 960px) {
  .contato-grade { grid-template-columns: minmax(0, 1fr); }
  .painel-local, .painel-cta { max-width: 560px; }
}
@media (max-width: 900px) {
  .hor-grade { grid-template-columns: minmax(0, 1fr); }
  .intro-lado .intro-painel { position: static; }
}
@media (max-width: 640px) {
  .marcos-faixa { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .marcos-faixa li, .marcos-faixa li:nth-child(4) { padding: 20px 0 22px; border-left: 0; }
  .marcos-faixa li + li { border-top: 1px solid var(--linha); }
  .contato-extra { grid-template-columns: minmax(0, 1fr); }
  .quando .contagem-lista span { font-size: 34px; }
}


@media print {
  .topbar, .menu, .menu-botao, .barra-inscricao, .whats-flutuante, .hero-fundo { display: none !important; }
  .cabecalho { position: static; }
}

/* ==========================================================================
   Fase 3 — responsividade (correções dos 4 revisores; ver _trabalho/provas/resp/correcoes.md)
   ========================================================================== */

/* --- segmentos que não quebram por dentro (data · local); no celular o separador some e cada um vira linha --- */
.seg { white-space: nowrap; }
.hero-quando { display: none; }

/* --- valores curtos nunca quebram no meio; e-mail só quebra no "@" (<wbr>) --- */
.pag-dados dd.num, .canal-valor a[href^="tel:"], .rodape-contatos a[href^="tel:"], .menu-contatos a[href^="tel:"] { white-space: nowrap; }
.canal-valor, .rodape-contatos a, .menu-contatos a { overflow-wrap: normal; }

/* --- WhatsApp menor, colado à borda (no vão fora do container quando há espaço) e acima da barra fixa.
       Abaixo de ~1440px pode passar sobre um controle alinhado à direita só enquanto a linha rola por baixo dele
       (sobreposição transitória, documentada) --- */
.whats-flutuante { right: max(12px, calc((100vw - var(--max)) / 2 - 64px)); bottom: 16px; width: 48px; height: 48px; }
.whats-flutuante .ic { width: 26px; height: 26px; }
html.barra-on .com-barra .whats-flutuante { bottom: calc(var(--barra-h, 64px) + 12px); }
.com-barra .rodape { padding-bottom: calc(var(--barra-h, 76px) + 16px); }

/* --- barra fixa: rótulo curto do botão só em telas estreitas --- */
.bt-curto { display: none; }

/* --- programa da home: a linha do PDF fica no cabeçalho do módulo prático (equilibra as duas colunas) --- */
.modulo-linha { margin-top: 12px; max-width: 46ch; font-size: 16px; line-height: 1.55; color: var(--corpo-esc); }
.mod-sub { text-wrap: balance; }

/* --- notebook: as 3 modalidades numa linha e o Novo DC numa 2ª linha deliberada; botão centrado na vertical --- */
.modalidades .modalidade-dc { margin-top: 2px; }
.pra-pe { align-items: center; }

/* --- investimento: os dois painéis terminam na ação ("Faça sua inscrição" × "Copiar todos os dados") --- */
.inv-preco { display: flex; flex-direction: column; align-items: flex-start; }
.inv-preco .incluso-bloco { order: 2; align-self: stretch; }
.inv-preco .botao { order: 3; margin-top: auto; }
.inv-preco .incluso-bloco { margin-bottom: 30px; }

/* --- professora (página): títulos dos marcos alinhados pela base (2 linhas reservadas) --- */
.mf-lead { min-height: 58px; }

/* --- topo da programação: botão do PDF alinhado à linha da data --- */
@media (min-width: 901px) {
  .topo-in > .topo-acoes { grid-row: 4; align-self: center; }
  .topo-in:has(.topo-acoes) .topo-evento { margin-top: 18px; }
}

/* --- rodapé de 4 colunas: coluna de contato mais larga (e-mail e endereço não espremem) --- */
@media (min-width: 1101px) and (max-width: 1366px) {
  .rodape-grade { grid-template-columns: minmax(0, 1.25fr) minmax(0, .8fr) minmax(0, 1.35fr) minmax(0, .9fr); gap: 32px; }
}

/* --- cabeçalho: logo um pouco maior no desktop --- */
@media (min-width: 1041px) and (min-height: 701px) { .marca img { height: 64px; } }

/* --- tablets com toque: alvos da topbar com 44px --- */
@media (pointer: coarse) and (min-width: 901px) {
  :root { --top-h: 44px; }
}

/* --- painel lateral da introdução (programação): só gruda quando cabe inteiro entre o cabeçalho e a barra --- */
.intro-lado .intro-painel { top: calc(var(--cab-h) + 24px); }
@media (max-height: 759px) { .intro-lado .intro-painel { position: static; } }

/* --- hero em 5:4 / 4:3 no desktop: menos vazio --- */
@media (min-width: 1101px) and (max-aspect-ratio: 4/3) {
  .hero { min-height: min(calc(100svh - var(--cab-h) - 1px - var(--top-h)), 760px); }
}

/* --- ≤1100: módulos, investimento e painel da introdução empilham cedo; painel em largura total --- */
@media (max-width: 1100px) {
  .modulos { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .modulo { grid-row: auto; grid-template-rows: none; }
  .modulo-teoria { border-right: 1px solid var(--linha); border-bottom: 0; border-radius: var(--raio) var(--raio) 0 0; }
  .modulo-pratica { border-radius: 0 0 var(--raio) var(--raio); }
  .inv-grade { grid-template-columns: minmax(0, 1fr); }
  .inv-preco .botao { margin-top: 0; }
  .intro-painel { max-width: none; }
  .foz-horarios { max-width: none; }
  .contagem { margin-left: auto; }
}
@media (min-width: 641px) and (max-width: 1100px) {
  .intro-painel { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: 32px; }
  .ip-ch { padding-bottom: 0; border-bottom: 0; border-right: 1px solid var(--linha); }
  .ip-material { padding-top: 0; }
  .ip-notebook { grid-column: 1 / -1; margin-top: 8px; }
}

/* --- tablets em retrato: hero sem vazio, data abaixo dos botões --- */
@media (orientation: portrait) and (min-width: 761px) and (max-width: 1100px) {
  .hero { min-height: 0; }
  .hero-grade { grid-template-columns: minmax(0, 1fr); gap: 44px; padding-block: 64px 56px; }
  .hero-data { justify-self: start; }
}

/* --- ≤960: contato e painéis escuros em largura total --- */
@media (max-width: 960px) {
  .painel-local, .painel-cta { max-width: none; }
}

/* --- ≤900: modalidades em coluna e botão em linha própria; tópicos do acordeão em 1 coluna;
       professora mantém 2 colunas (foto estreita) até 641px --- */
@media (max-width: 900px) {
  .modalidades { flex-direction: column; }
  .modalidades li, .modalidades li:first-child { padding: 0 0 0 16px; border-left: 2px solid rgba(255, 255, 255, .2); }
  .modalidades .modalidade-dc { margin-top: 8px; border-left-color: var(--laranja); }
  .pra-pe { grid-template-columns: minmax(0, 1fr); }
  .pra-pe .botao { justify-self: start; }
  .ac-topicos { grid-template-columns: minmax(0, 1fr); }
  .ac-corpo { padding-bottom: 24px; }
}
@media (min-width: 641px) and (max-width: 900px) {
  .prof-grade { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 32px; }
  .prof-foto { max-width: none; }
}

/* --- cabeçalho: logo maior no celular de altura normal; compacto em telas baixas --- */
@media (max-width: 760px) and (min-width: 360px) and (min-height: 701px) {
  :root { --cab-h: 78px; }
  .marca img { height: 56px; }
}
@media (max-height: 780px) {
  :root { --cab-h: 64px; }
  .marca img { height: 44px; }
  .menu-destaque { min-height: 44px; padding-block: 9px; }
  /* barra fixa numa linha só (~56px) */
  .barra-in { padding-block: 6px; gap: 18px; }
  .barra-logo { height: 34px; }
  .barra-txt { padding-left: 18px; }
  .barra-info { display: none; }
  .barra-tit { font-size: 15px; }
  .barra-valor { font-size: 26px; }
  .barra-inscricao .botao { min-height: 44px; padding-block: 9px; }
  /* topos internos mais baixos */
  .topo-in { padding-block: 28px 34px; }
  .topo h1 { margin-top: 10px; }
  .topo-sub { margin-top: 10px; font-size: 17px; line-height: 1.5; max-width: 80ch; }
  .topo-evento { margin-top: 12px; }
  .topo-in:has(.topo-acoes) .topo-evento { margin-top: 12px; }
}
@media (max-width: 760px) and (max-height: 700px) {
  :root { --cab-h: 58px; }
  .marca img { height: 42px; }
  .menu-botao { width: 44px; height: 44px; }
  .barra-in { padding-block: 5px; }
}
@media (max-height: 620px) and (min-width: 761px) {
  :root { --cab-h: 60px; }
  .marca img { height: 42px; }
  .barra-in { padding-block: 4px; }
}
/* paisagem de celular: piso de ~100px (cabeçalho 48 + barra 53) por causa dos alvos de 44px — exceção documentada */
@media (max-height: 420px) {
  :root { --cab-h: 48px; }
  .marca img { height: 34px; }
  .menu-botao { width: 44px; height: 44px; }
  .barra-inscricao { border-top-width: 2px; }
  .barra-in { padding-block: 3px; }
  .barra-logo, .barra-txt, .barra-por { display: none; }
  .barra-preco { margin-left: 0; flex-direction: row; }
  .barra-valor { font-size: 24px; }
}
.marca { display: flex; align-items: center; min-height: 44px; }

/* --- menu em tela cheia sem rolar em 320×568 e em paisagem --- */
@media (max-width: 1040px) {
  .menu-lista { margin-top: 16px; }
}
@media (max-width: 1040px) and (max-height: 600px) {
  .menu { padding-top: calc(var(--cab-h) + 12px); padding-bottom: 20px; }
  .menu-lista { margin-top: 0; }
  .menu-lista a { min-height: 52px; padding-block: 8px; font-size: 24px; }
  .menu-destaque { margin-top: 18px; }
  .menu-contatos { padding-top: 18px; gap: 0; }
}
@media (max-width: 1040px) and (max-height: 500px) and (orientation: landscape) {
  .menu-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
  .menu-contatos { grid-template-columns: repeat(3, auto); justify-content: start; column-gap: 24px; }
}

/* --- celular: data/local logo no topo do hero; título mais equilibrado; data gigante ocupando a largura --- */
@media (max-width: 760px), (max-height: 500px) and (max-width: 1040px) {
  .hero-quando { position: relative; display: block; margin-bottom: 14px; padding: 2px 0 2px 18px; font: 600 16px/1.35 var(--f-tit); color: #FFFFFF; }
  .hero-quando::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7px; border: 3px solid var(--laranja); border-right: 0; }
  .hero-quando .sep { display: none; }
  .hero-quando .seg { display: block; }
}
@media (max-width: 760px) {
  .hero h1 { font-size: clamp(26px, 8.2vw, 38px); text-wrap: balance; }
  .data-rot { margin-bottom: 8px; }
  .data-dias { font-size: clamp(88px, 38vw, 150px); }
  .topo-in { padding-bottom: 40px; }
  .topo-evento .sep, .pl-data .sep { display: none; }
  .topo-evento .seg, .pl-data .seg { display: block; }
  .foz-foto::after { background: linear-gradient(180deg, rgba(10, 32, 44, .2) 0%, rgba(10, 32, 44, .55) 40%, rgba(10, 32, 44, .94) 78%); }
  .foz-local > div:last-child { border-bottom: 0; }
  .prof-foto img { max-height: 72svh; object-position: 50% 20%; }
  .realizacao { max-width: none; }
}
/* celular baixo (320×568, 375×667) e paisagem: "Inscreva-se" na 1ª tela */
@media (max-width: 760px) and (max-height: 700px) {
  .hero-grade { padding-block: 22px 36px; }
  .hero h1 { margin-top: 10px; }
  .hero-sub { margin-top: 12px; font-size: 16px; line-height: 1.5; }
  .hero-acoes { margin-top: 18px; gap: 10px; }
}
@media (max-height: 500px) and (min-width: 561px) and (max-width: 1040px) {
  .hero-grade { padding-block: 20px 32px; gap: 32px; }
  .hero h1 { margin-top: 8px; max-width: none; font-size: clamp(28px, 3.6vw, 34px); }
  .h1-pre { margin-bottom: .15em; }
  .hero-sub { margin-top: 10px; max-width: none; font-size: 16px; line-height: 1.45; }
  .hero-acoes { margin-top: 16px; }
  .hero-quando .sep, .hero-quando .seg { display: inline; }
}

/* --- celular: pares de botões com a mesma largura --- */
@media (max-width: 600px) {
  .acoes-centro .botao, .prof-acoes .botao, .prof-texto > .botao, .inv-preco .botao, .pra-pe .botao, .foz-quando .botao,
  .painel-local .botao, .painel-cta .botao, .topo-acoes .botao, .hero-acoes .botao { width: 100%; justify-self: stretch; align-self: stretch; }
}

/* --- ≤400: canais de contato com a ação numa 2ª linha; temas com número menor; barra fixa com rótulo curto --- */
@media (max-width: 400px) {
  .canais li { grid-template-columns: 44px minmax(0, 1fr); gap: 4px 14px; }
  .canal-ic { width: 44px; height: 44px; grid-row: 1 / span 2; }
  .canal-acao { grid-column: 2; justify-self: start; }
  .canal-valor { font-size: 18px; }
  .painel { padding: 22px 18px; }
  .copiar-tudo { padding: 14px 16px; gap: 12px; }
  .bt-longo { display: none; }
  .bt-curto { display: inline; }
  .barra-in { gap: 12px; }
}
@media (max-width: 360px) {
  .tema { grid-template-columns: 36px minmax(0, 1fr) 36px; gap: 10px; }
  .tema-n { font-size: 32px; }
  .ac-botao { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 4px 10px; padding-inline: 4px; }
  .ac-n { font-size: 34px; }
}
