/* ==========================================================================
   Semana Acadêmica de Física 2026: layout mobile-first
   Ordem: base, utilitários, botões, cabeçalho, hero, seções, rodapé, mídia.
   Regra de grade: toda trilha única é minmax(0, 1fr) e todo filho de grade
   tem min-width: 0, para nada vazar com zoom de texto ou espaçamento extra.
   ========================================================================== */

/* Base ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-h);
  background: var(--preto);
}

body {
  margin: 0;
  background: var(--preto);
  color: var(--branco);
  font-family: var(--fonte-texto);
  font-size: var(--t-corpo);
  line-height: 1.6;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

img, svg, iframe { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, p, ol, ul, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }
a { color: inherit; }
strong, b { font-weight: 600; }
::selection { background: var(--verde); color: var(--preto); }

:focus-visible {
  outline: 3px solid var(--verde);
  outline-offset: 3px;
  border-radius: 2px;
}
main:focus, [tabindex="-1"]:focus:not(:focus-visible) { outline: none; }

/* Utilitários ------------------------------------------------------------ */
.inteiro { white-space: nowrap; }  /* trechos curtos que não devem quebrar */

.sr {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.envelope {
  width: 100%;
  max-width: calc(var(--largura) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.hero__corpo > *, .tema__grade > *, .palestras > *, .dias > *, .local > *,
.chamada__grade > *, .rodape__logos > *, .rodape__info > *, .fato > * { min-width: 0; }

.pular {
  position: absolute;
  left: var(--gutter);
  top: -100px;
  z-index: 100;
  padding: 0.75rem 1rem;
  background: var(--verde);
  color: var(--preto);
  font-weight: 800;
  text-decoration: none;
  border-radius: var(--raio);
}
.pular:focus { top: calc(env(safe-area-inset-top) + 0.5rem); outline-color: var(--branco); }

/* Botões ----------------------------------------------------------------- */
.botao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  max-width: 100%;
  min-height: 44px;
  padding: 0.6rem 1.25rem;
  border: 2px solid var(--verde);
  border-radius: var(--raio);
  background: var(--verde);
  color: var(--preto);
  font-family: var(--fonte-texto);
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color var(--rapido) var(--ease), color var(--rapido) var(--ease),
              border-color var(--rapido) var(--ease), transform var(--rapido) var(--ease);
}
.botao:hover { background: var(--preto); color: var(--verde); }
.botao:active { transform: translateY(1px); }

.botao--grande {
  min-height: 56px;
  padding: 0.9rem 1.75rem;
  font-size: 1.125rem;
  width: 100%;
}
.botao--mini {
  padding: 0.5rem 0.85rem;
  font-size: 0.9375rem;
}
/* botões secundários (Lattes): neutros, o verde fica para a inscrição */
.botao--linha {
  border-color: var(--linha-forte);
  background: transparent;
  color: var(--branco);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
}
.botao--linha:hover { border-color: var(--verde); background: var(--verde); color: var(--preto); }

/* Cabeçalho -------------------------------------------------------------- */
.topo {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #000;
  border-bottom: 1px solid var(--linha);
  padding-top: env(safe-area-inset-top);
}
@supports (backdrop-filter: blur(1px)) {
  .topo { backdrop-filter: blur(10px); }
}

.topo__barra {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  max-width: calc(var(--largura) + 2 * var(--gutter));
  min-height: var(--header-h);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.topo__marca {
  display: flex;
  align-items: center;
  min-height: 44px;
  margin-right: auto;
}
.topo__marca img { height: 40px; width: auto; }

/* Sem JS: os links ficam sempre visíveis, numa segunda linha */
.topo__menu { display: none; }
.topo__nav { min-width: 0; }
.topo__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.25rem;
}
.topo__links a {
  display: flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
  font-weight: 600;
  text-decoration: none;
  color: var(--branco);
}
.topo__links a:hover { color: var(--verde); }

/* Com JS, no celular: botão Menu e painel sobreposto ao conteúdo */
.js .topo__menu {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 44px;
  min-height: 44px;
  padding: 0 0.7rem;
  border: 1px solid var(--linha-forte);
  border-radius: var(--raio);
  background: transparent;
  color: var(--branco);
  font: 600 0.9375rem/1 var(--fonte-texto);
  cursor: pointer;
}
.topo__menu svg { stroke: currentColor; stroke-width: 2; stroke-linecap: round; fill: none; }
.topo__menu .i-fecha { display: none; }
.topo__menu[aria-expanded="true"] .i-abre { display: none; }
.topo__menu[aria-expanded="true"] .i-fecha { display: block; }

.js .topo__links { display: none; }
.js .topo__links.is-aberto {
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: calc(100svh - var(--header-h));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.25rem var(--gutter) 1rem;
  background: var(--preto);
  border-bottom: 2px solid var(--verde);
}
.js .topo__links.is-aberto a {
  min-height: 52px;
  font-size: 1.25rem;
  border-bottom: 1px solid var(--linha);
}

@media (max-width: 24rem) {
  /* telas até 384px: menu só com ícone (o nome "Menu" continua para leitores de tela) */
  .js .topo__menu-rotulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .topo__marca img { height: 34px; }
}

/* Celular deitado: painel do menu em duas colunas */
@media (orientation: landscape) and (max-height: 32rem) {
  .js .topo__links.is-aberto { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--e-5); }
}

/* Hero ------------------------------------------------------------------- */
.hero {
  padding: clamp(1.25rem, 0.8rem + 2vw, 2.5rem) var(--gutter) var(--e-6);
  text-align: center;
}

.hero__cabeca {
  /* em telas baixas o título encolhe para datas e inscrição aparecerem na 1ª tela */
  width: 100%;
  max-width: min(50rem, 100%, 70svh);
  margin-inline: auto;
  container-type: inline-size;
}

.hero__titulo { font-weight: inherit; }

/* "SEMANA": texto em SVG com textLength, ocupa sempre a largura exata */
.semana {
  width: 100%;
  height: auto;
  overflow: visible;
}
.semana text {
  font-family: var(--fonte-display);
  font-size: 520px;
  fill: var(--verde);
}

.hero__sub {
  display: block;
  margin-top: 0.15em;
  font-family: var(--fonte-texto);
  font-weight: 800;
  font-size: var(--t-sub);
  line-height: 1.05;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
/* o subtítulo acompanha a largura de "SEMANA", como no pôster */
@supports (font-size: 1cqi) {
  .hero__sub { font-size: 7.6cqi; }
}

.hero__tema {
  margin-top: var(--e-3);
  padding: 0 0.25em 0.4em;
  font-size: var(--t-tema);
  font-size: clamp(1rem, 4.6cqi, 1.6rem);
  line-height: 1.35;
  border-bottom: clamp(4px, 0.5vw, 7px) solid var(--verde);
}
.hero__tema strong { font-weight: 800; }

/* celular em pé: datas e inscrição antes do gato, para caber na 1ª tela */
.hero__corpo {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: var(--e-4);
  max-width: 76rem;
  margin: var(--e-5) auto 0;
}

.fatos {
  display: grid;
  gap: var(--e-3);
  width: 100%;
  max-width: 26rem;
  text-align: left;
}
.fato {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  align-items: center;
  gap: var(--e-3);
  line-height: 1.35;
}
.fato p { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 24rem) { .fato .inteiro { white-space: normal; } }
.fato__icone { width: 2.5rem; height: 2.5rem; color: var(--verde); }
.fato strong { font-weight: 800; font-size: 1.0625rem; }
.fato__nota { color: var(--cinza); font-size: 0.9375rem; }

.hero__acao { width: 100%; max-width: 26rem; }

.gato { width: min(100%, 20rem); margin-top: var(--e-4); }
.gato img { width: 100%; }

/* Superposição: o gato "pisca" entre estados algumas vezes e para (só opacidade e transform) */
/* Gato animado: flutua sem parar e entra em "superposição" a cada ciclo */
@media (prefers-reduced-motion: no-preference) {
  .gato picture { display: block; animation: flutua 4.5s ease-in-out infinite; }
  .gato img { animation: superposicao 6s steps(1, end) 1.2s infinite; }
}
@keyframes flutua {
  0%, 100% { transform: translateY(0) rotate(0); }
  25%      { transform: translateY(-6px) rotate(-1.2deg); }
  50%      { transform: translateY(-10px) rotate(0); }
  75%      { transform: translateY(-6px) rotate(1.2deg); }
}
@keyframes superposicao {
  0%, 80%, 83%, 86%, 89%, 92%, 100% { opacity: 1; transform: none; }
  81%   { opacity: 0.3;  transform: translateX(-5px) skewX(-4deg); }
  84%   { opacity: 0.75; transform: translateX(4px) scaleX(-1); }
  87%   { opacity: 0.4;  transform: translateX(-2px) scaleX(-1) skewX(3deg); }
  90%   { opacity: 0.8;  transform: translateX(3px); }
}


/* Seções ----------------------------------------------------------------- */
.secao {
  padding-top: var(--e-8);
  /* o salto pelo menu para logo acima do título, sem faixa vazia sob o cabeçalho */
  scroll-margin-top: calc(var(--e-5) - var(--e-8));
}

.secao__titulo {
  font-family: var(--fonte-display);
  font-weight: 400;
  font-size: var(--t-h2);
  line-height: 1.25;  /* folga para Ç, Ã e Ö do Anton não se tocarem (1.14 ainda colidia em 390px) */
  text-transform: uppercase;
  color: var(--verde);
  letter-spacing: 0.005em;
  text-wrap: balance;
}
/* régua curta sob cada título: o traço verde do pôster */
/* Título do tema em 2 linhas fixas no celular: evita o Ç de EQUAÇÃO cair em cima do Ö de SCHRÖDINGER */
@media (max-width: 51.99rem) {
  .secao__titulo--tema { font-size: min(var(--t-h2), calc((100vw - 2 * var(--gutter)) / 8.6)); }
  .secao__titulo--tema .linha { display: block; white-space: nowrap; }
}
.secao__titulo::after {
  content: "";
  display: block;
  width: 4.5rem;
  height: 5px;
  margin-top: var(--e-3);
  background: var(--verde);
}

.secao__intro {
  max-width: var(--texto-max);
  margin-top: var(--e-4);
  color: var(--cinza);
  font-size: var(--t-corpo-g);
}

/* Tema */
.tema__grade {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-6);
  margin-top: var(--e-5);
}
.tema__texto { max-width: var(--texto-max); }
.tema__texto > p + p { margin-top: var(--e-4); }
.tema__texto .lead { font-size: var(--t-corpo-g); }
.tema__texto cite { font-style: italic; }
.tema__texto strong { color: var(--verde); }
.tema__texto a { color: var(--verde); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.tema__texto a:hover { text-decoration-thickness: 4px; }
.tema__texto .tema__nota { margin-top: var(--e-5); padding-left: var(--e-4); border-left: 3px solid var(--verde); color: var(--legenda); }

.equacao {
  container-type: inline-size;
  padding: var(--e-6) var(--e-4) var(--e-5);
  border: 1px solid var(--linha);
  border-top: 4px solid var(--verde);
  border-radius: var(--raio);
  text-align: center;
}
.equacao__formula {
  color: var(--verde);
  /* cabe sempre na caixa, mesmo com fonte do sistema ampliada */
  font-size: min(var(--t-equacao), 16cqi);
  line-height: 1.3;
  padding-block: 0.1em;
}
.equacao math {
  font-family: "STIX Two Math", "Cambria Math", "Latin Modern Math", "Times New Roman", serif;
  font-size: 1em;
  margin: 0 auto;
}
.onda {
  overflow: hidden;
  width: 100%;
  height: 3.5rem;
  margin-top: var(--e-4);
  fill: none;
  stroke: var(--verde);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  opacity: 0.85;
}
.equacao figcaption {
  margin-top: var(--e-4);
  color: var(--legenda);
  font-size: var(--t-pequeno);
  line-height: 1.5;
}
.equacao figcaption i { color: var(--branco); }

/* Palestrantes */
.palestras {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-4);
  margin-top: var(--e-6);
}

.palestra {
  display: flex;
  flex-direction: column;
  gap: var(--e-3);
  padding: var(--e-5);
  border: 1px solid var(--linha);
  border-radius: var(--raio);
}

.palestra__topo {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--e-3);
}

.monograma {
  font-family: var(--fonte-display);
  font-size: 3.5rem;
  line-height: 0.9;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--verde);
  letter-spacing: 0.02em;
}
.palestra--abertura .monograma {
  color: var(--verde);
  -webkit-text-stroke: 0;
  font-family: "STIX Two Math", "Cambria Math", "Times New Roman", serif;
  font-style: italic;
}

.selo {
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  background: var(--verde-veu);
  border: 1px solid var(--verde);
  color: var(--verde);
  font-weight: 800;
  font-size: 0.9375rem;
  line-height: 1.2;
}

.palestra__marca {
  align-self: flex-start;
  padding: 0.15rem 0.5rem;
  background: var(--verde);
  color: var(--preto);
  border-radius: 3px;
  font-weight: 800;
  font-size: 0.9375rem;
}

.palestra__titulo {
  font-size: var(--t-h3);
  font-weight: 800;
  line-height: 1.3;
  text-wrap: pretty;
}


.palestra__quando {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.75rem;
  margin-top: auto;
  padding-top: var(--e-3);
  border-top: 1px solid var(--linha);
  color: var(--cinza);
  font-size: var(--t-pequeno);
  font-variant-numeric: tabular-nums;
}
.palestra__quando time { color: var(--branco); font-weight: 600; }
.palestra .botao { align-self: flex-start; margin-top: var(--e-2); }

/* Programação */
.dias {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-6);
  margin-top: var(--e-6);
}

.dias__abas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--e-2);
}
.dias__abas[hidden] { display: none; }
.dias__abas button {
  min-height: 56px;
  padding: 0.35rem 0.25rem;
  border: 2px solid var(--linha-forte);
  border-radius: var(--raio);
  background: transparent;
  color: var(--branco);
  font: 600 1rem/1.1 var(--fonte-texto);
  cursor: pointer;
  touch-action: manipulation;
  transition: border-color var(--rapido) var(--ease), background-color var(--rapido) var(--ease);
}
.dias__abas button b {
  display: block;
  font-family: var(--fonte-display);
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 1.05;
}
.dias__abas button:hover { border-color: var(--verde); }
.dias__abas button[aria-selected="true"] {
  background: var(--verde);
  border-color: var(--verde);
  color: var(--preto);
}

.dia[hidden] { display: none; }
/* faixa vazia que só existe para nivelar as colunas no desktop (19:10–19:30 só tem atividade na segunda) */
.agenda .agenda__vazio { display: none; }
.dia__titulo {
  padding-bottom: var(--e-3);
  border-bottom: 3px solid var(--verde);
  font-size: var(--t-h3);
  font-weight: 800;
}

/* horário ao lado da atividade; com texto ampliado a atividade desce para baixo */
.agenda li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--e-1) var(--e-4);
  padding-block: var(--e-4);
  border-bottom: 1px solid var(--linha);
}
.agenda__hora {
  flex: 0 0 auto;
  min-width: 6.5rem;
  color: var(--cinza);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.agenda__item { flex: 1 1 11rem; min-width: 0; color: var(--branco); }

.agenda__palestra strong {
  display: block;
  color: var(--branco);
  font-weight: 800;
  line-height: 1.35;
}
.agenda__palestra em {
  display: block;
  margin-top: var(--e-1);
  font-style: normal;
  color: var(--verde);
  font-size: var(--t-pequeno);
}

/* Local */
.local {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-6);
}
.local__nome {
  margin-top: var(--e-5);
  font-weight: 600;
  font-size: var(--t-corpo-g);
  line-height: 1.45;
  max-width: var(--texto-max);
}
.local__endereco {
  margin: var(--e-3) 0 var(--e-5);
  color: var(--cinza);
}

.mapa {
  border: 2px solid var(--verde);
  border-radius: var(--raio-g);
  overflow: hidden;
  background: #0d1a14;
  aspect-ratio: 4 / 3;
}
.mapa iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* Chamada de inscrição */
.chamada {
  margin-top: var(--e-8);
  padding-block: var(--e-7);
  border-top: 1px solid var(--linha);
}
.chamada__grade {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-4);
}
.chamada__titulo {
  font-family: var(--fonte-display);
  font-weight: 400;
  font-size: clamp(3rem, 1.6rem + 7vw, 7rem);
  line-height: 0.95;
  text-transform: uppercase;
  color: var(--verde);
}
.chamada p { max-width: 32rem; margin-bottom: var(--e-4); font-size: var(--t-corpo-g); }

/* Rodapé (faixa verde, como a base do pôster) --------------------------- */
.rodape {
  background: var(--verde);
  color: var(--preto);
  padding-block: var(--e-6) calc(var(--e-5) + env(safe-area-inset-bottom));
}
.rodape :focus-visible { outline-color: var(--preto); }

.rodape__logos {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-5);
  padding-bottom: var(--e-5);
  border-bottom: 2px solid var(--preto);
}
.rodape__grupo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--e-3) var(--e-4);
}
.rodape__rotulo { font-size: var(--t-pequeno); }
.rodape__fisica { height: clamp(56px, 5vw, 84px); width: auto; }
.rodape__ueg { height: clamp(76px, 6.5vw, 100px); width: auto; }
.rodape__campus {
  max-width: 13rem;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
}

.rodape__info {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-5);
  padding-block: var(--e-5);
}
.rodape__titulo { font-size: 1rem; font-weight: 800; margin-bottom: var(--e-2); }
.rodape__comissao li { line-height: 1.7; }
.rodape__insta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  font-weight: 800;
  font-size: 1.125rem;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.rodape__insta:hover { text-decoration-thickness: 4px; }
.rodape__copy small { font-size: var(--t-pequeno); }

/* Tablets: 40rem (640px) ------------------------------------------------- */
@media (min-width: 40rem) {
  .nowrap { white-space: nowrap; }
  .botao--grande { width: auto; }
  .palestras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rodape__logos { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; }
  .rodape__info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chamada__grade {
    grid-template-columns: minmax(0, 1fr) minmax(0, auto);
    align-items: center;
    column-gap: var(--e-7);
  }
  .chamada p { margin-bottom: var(--e-4); }
}

/* Menu horizontal e hero em três colunas a partir de 52rem (832px) ------- */
@media (min-width: 52rem) {
  .js .topo__menu { display: none; }
  .topo__nav { margin-right: var(--e-3); }
  .topo__links, .js .topo__links { display: flex; gap: 0 1.5rem; }

  /* como no pôster: datas à esquerda, gato ao centro, inscrição à direita */
  .hero__corpo {
    grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr);
    grid-template-areas: "fatos gato acao";
    align-items: center;
    gap: var(--e-6);
    margin-top: var(--e-4);
  }
  .fatos { grid-area: fatos; justify-self: end; max-width: 24rem; }
  .gato { grid-area: gato; margin-top: 0; width: auto; }
  .gato img { width: auto; max-height: min(22rem, 34svh); }
  .hero__acao { grid-area: acao; justify-self: start; width: auto; }
  .hero__acao .botao--grande { width: auto; }

  .tema__grade { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; column-gap: var(--e-7); }
  .equacao { position: sticky; top: calc(var(--header-h) + var(--e-5)); }

  .local { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: center; }
}

/* Desktop: 64rem (1024px) ------------------------------------------------ */
@media (min-width: 64rem) {
  .palestras { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* programação em três colunas, como a tabela original */
  /* linhas niveladas entre os três dias: cada horário ocupa a mesma faixa (subgrid) */
  .dias { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--e-5); row-gap: 0; }
  .dia { display: grid; grid-row: 1 / span 6; grid-template-rows: subgrid; row-gap: 0; }
  .agenda { display: grid; grid-row: 2 / span 5; grid-template-rows: subgrid; row-gap: 0; }
  .agenda li { align-content: start; }
  .agenda .agenda__vazio { display: block; }
  .agenda__item { flex-basis: 100%; }
}

/* Celular deitado: título à esquerda, datas e inscrição à direita -------- */
@media (orientation: landscape) and (max-height: 32rem) and (max-width: 63.99rem) {
  .hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    column-gap: var(--e-6);
    padding-top: var(--e-4);
    padding-bottom: var(--e-5);
  }
  .hero > * { min-width: 0; }
  .hero__cabeca { max-width: min(100%, 72svh); }
  .hero__corpo {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: none;
    justify-items: start;
    margin-top: 0;
    gap: var(--e-3);
  }
  .fatos, .hero__acao, .gato { grid-area: auto; justify-self: start; }
  .hero__acao .botao--grande { width: 100%; min-height: 48px; padding-block: 0.6rem; }
  .fato__nota { display: none; }
  .fato { grid-template-columns: 2rem minmax(0, 1fr); }
  .fato__icone { width: 2rem; height: 2rem; }
  .gato { width: min(100%, 12rem); margin-top: var(--e-3); }
}

/* Movimento reduzido ----------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation: none !important; }
}

/* Fotos dos palestrantes (recortes quadrados de 288px; .monograma fica como reserva para quem não tiver foto) */
.palestra__foto {
  width: 5.5rem;
  height: 5.5rem;
  object-fit: cover;
  border: 2px solid var(--verde);
  border-radius: var(--raio);
  background: var(--linha);
}

/* Textos corridos justificados; a hifenização (lang="pt-BR") evita rios de espaço em telas estreitas */
.secao__intro,
.tema__texto p,
.chamada p {
  text-align: justify;
  -webkit-hyphens: auto;
  hyphens: auto;
}
