/* ==========================================================================
   BASE — reset, tipografia, grid e acessibilidade
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--topo) + 1rem);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

body {
  margin: 0;
  background: var(--sup-clara);
  color: var(--tinta);
  font-family: var(--fonte-texto);
  font-size: var(--t-corpo);
  font-weight: var(--peso-normal);
  line-height: var(--entre-linhas-texto);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

body.menu-aberto { overflow: hidden; }

img, picture, svg, video { display: block; max-width: 100%; }
img { height: auto; }

h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--fonte-display);
  font-weight: var(--peso-extra);
  line-height: var(--entre-linhas-titulo);
  letter-spacing: var(--entre-letras-titulo);
  text-wrap: balance;
}

p { margin: 0 0 var(--e4); }
p:last-child { margin-bottom: 0; }

ul, ol { margin: 0; padding: 0; }
li { list-style: none; }

a { color: inherit; text-decoration: none; }

button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }

strong, b { font-weight: var(--peso-extra); }

hr {
  border: 0;
  border-top: 1px solid var(--linha);
  margin: var(--e6) 0;
}

::selection { background: var(--amarelo); color: var(--azul-noite); }

/* ---------- Foco visível: obrigatório, nunca removido ---------- */
:focus { outline: none; }
:focus-visible {
  outline: 3px solid var(--azul-vivo);
  outline-offset: 3px;
  border-radius: var(--raio-p);
}
.sobre-escuro :focus-visible,
.faixa-escura :focus-visible { outline-color: var(--amarelo); }

/* ---------- Utilidades de acessibilidade ---------- */
.so-leitor {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.pular-para-conteudo {
  position: absolute;
  left: var(--e4);
  top: -100px;
  z-index: var(--z-topo);
  padding: var(--e3) var(--e5);
  background: var(--amarelo);
  color: var(--azul-noite);
  font-weight: var(--peso-extra);
  border-radius: var(--raio-p);
  transition: top var(--tempo-rapido) var(--curva);
}
.pular-para-conteudo:focus { top: var(--e4); }

/* ==========================================================================
   LAYOUT
   ========================================================================== */

.envelope {
  width: 100%;
  max-width: var(--largura-max);
  margin-inline: auto;
  padding-inline: var(--goteira);
}
.envelope--estreito { max-width: 880px; }

.secao { padding-block: var(--secao-y); position: relative; }
.secao--compacta { padding-block: calc(var(--secao-y) * 0.62); }

.faixa-clara { background: var(--sup-clara); color: var(--tinta); }
.faixa-nevoa { background: var(--sup-nevoa); color: var(--tinta); }
.faixa-escura {
  background:
    radial-gradient(115% 90% at 82% 8%, rgba(10, 114, 201, 0.35) 0%, transparent 62%),
    linear-gradient(158deg, var(--azul-noite) 0%, var(--azul-tinta) 58%, #063e73 100%);
  color: var(--branco);
}
.faixa-escura h1, .faixa-escura h2, .faixa-escura h3 { color: var(--branco); }

.grade {
  display: grid;
  gap: var(--e5);
}
.grade--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.grade--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.grade--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }

.pilha { display: flex; flex-direction: column; gap: var(--e4); }
.linha { display: flex; flex-wrap: wrap; gap: var(--e3); align-items: center; }

/* ==========================================================================
   TIPOGRAFIA DE CAMPANHA
   ========================================================================== */

.etiqueta {
  display: inline-flex;
  align-items: center;
  gap: var(--e2);
  font-family: var(--fonte-texto);
  font-size: var(--t-mini);
  font-weight: var(--peso-extra);
  letter-spacing: var(--entre-letras-etiqueta);
  text-transform: uppercase;
  color: var(--azul);
  margin: 0 0 var(--e4);
}
.faixa-escura .etiqueta, .sobre-escuro .etiqueta { color: var(--amarelo); }
.etiqueta::before {
  content: "";
  width: 26px; height: 3px;
  background: currentColor;
  border-radius: var(--raio-pilula);
}

.display {
  font-family: var(--fonte-display);
  font-variation-settings: 'wght' 900, 'wdth' var(--larg-condensada);
  font-size: var(--t-display);
  line-height: var(--entre-linhas-apertado);
  letter-spacing: -0.022em;
  text-transform: uppercase;
}
.display--xl { font-size: var(--t-display-xl); }

.titulo-1 {
  font-size: var(--t-t1);
  font-variation-settings: 'wght' 800, 'wdth' var(--larg-media);
  text-transform: uppercase;
  letter-spacing: -0.018em;
}
.titulo-2 {
  font-size: var(--t-t2);
  font-variation-settings: 'wght' 800, 'wdth' var(--larg-media);
}
.titulo-3 {
  font-size: var(--t-t3);
  font-variation-settings: 'wght' 700, 'wdth' var(--larg-normal);
  letter-spacing: -0.01em;
}

.guia {
  font-size: var(--t-guia);
  line-height: 1.5;
  color: var(--tinta-suave);
  max-width: var(--largura-texto);
}
.faixa-escura .guia, .sobre-escuro .guia { color: var(--azul-claro); }

.texto { max-width: var(--largura-texto); }
.texto p + p { margin-top: var(--e4); }

.citacao {
  font-family: var(--fonte-serifa);
  font-size: clamp(1.375rem, 1.1rem + 1.2vw, 2rem);
  line-height: 1.32;
  font-style: italic;
  letter-spacing: -0.01em;
}

/* Palavra em destaque com a pincelada da identidade da campanha */
.pincel {
  position: relative;
  display: inline-block;
  white-space: nowrap;
  color: var(--amarelo);
}
.pincel::after {
  content: "";
  position: absolute;
  left: -2%;
  right: -2%;
  bottom: 0.02em;
  height: 0.16em;
  background: currentColor;
  -webkit-mask: var(--pincelada) no-repeat center / 100% 100%;
  mask: var(--pincelada) no-repeat center / 100% 100%;
  opacity: 0.9;
  pointer-events: none;
}
.pincel--verde { color: var(--verde); }
.faixa-clara .pincel, .faixa-nevoa .pincel { color: var(--azul); }
.faixa-clara .pincel--amarelo, .faixa-nevoa .pincel--amarelo { color: var(--amarelo-escuro); }

.realce-amarelo { color: var(--amarelo); }
.faixa-clara .realce-amarelo, .faixa-nevoa .realce-amarelo { color: var(--amarelo-escuro); }

.numero-urna {
  font-family: var(--fonte-display);
  font-variation-settings: 'wght' 900, 'wdth' 100;
  color: var(--amarelo);
  letter-spacing: -0.02em;
}
