/* Reset mínimo e tipografia base */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, p, ul, ol, li, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img, video, picture { display: block; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  background: var(--ivoire);
  color: var(--noir);
  font-family: var(--texte);
  font-size: var(--fs-corpo);
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

h1, h2 {
  font-family: var(--display);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1.05;
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 {
  font-family: var(--texte);
  font-size: var(--fs-h3);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

p { max-width: 62ch; }

a { color: inherit; }

.env { width: 100%; max-width: var(--largura); margin-inline: auto; padding-inline: var(--calha); }
.secao { padding-block: var(--secao); }
.fundo-2 { background: var(--ivoire-2); }
.fundo-escuro { background: var(--noir); color: var(--ivoire); }
.fundo-escuro h1, .fundo-escuro h2 { color: var(--ivoire); }

.sobrelinha {
  font-family: var(--texte);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sable);
  margin-bottom: var(--s3);
}
.legenda { font-size: var(--fs-legenda); line-height: 1.5; color: var(--bronze); }
.fundo-escuro .legenda { color: var(--sable); }

.corpo + .corpo { margin-top: var(--s3); }

/* Aviso de imagem gerada por IA */
.aviso-ia {
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--bronze);
  margin-top: var(--s1);
}
.fundo-escuro .aviso-ia { color: var(--or-clair); }
.aviso-ia--sobre {
  position: absolute;
  right: var(--s2);
  bottom: var(--s2);
  margin: 0;
  padding: 4px 8px;
  background: var(--noir);
  color: var(--or-clair);
}

/* Filete assinatura */
.filete {
  height: 1px;
  background: var(--or);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 900ms var(--ease);
}
.visivel .filete, .filete.visivel { transform: scaleX(1); }

/* Entrada */
.revelar {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 600ms var(--ease), transform 600ms var(--ease);
}
.revelar.visivel { opacity: 1; transform: none; }

/* CTA */
.cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 22px 44px;
  border: 0;
  border-radius: 2px;
  background: var(--noir);
  color: var(--ivoire);
  font-family: var(--texte);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: letter-spacing 260ms var(--ease);
}
.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--bronze);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 260ms var(--ease);
  z-index: -1;
}
.cta:hover::before, .cta:focus-visible::before { transform: scaleX(1); }
.cta:hover { letter-spacing: 0.16em; }
.cta:focus-visible { outline: 2px solid var(--or); outline-offset: 3px; }
.cta--claro { background: var(--or-clair); color: var(--noir); }
.cta--claro::before { background: var(--ivoire); }

.microcopy { margin-top: var(--s2); font-size: 15px; color: var(--sable); }

.bloco-cta { margin-top: var(--s5); }

@media (max-width: 720px) {
  .cta { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition-duration: 200ms !important;
    transition-property: opacity !important;
  }
  .revelar { transform: none; }
  .filete { transform: scaleX(1); }
}

.pular {
  position: absolute; left: -9999px;
}
.pular:focus {
  left: var(--s3); top: var(--s3); z-index: 100;
  background: var(--noir); color: var(--ivoire); padding: 12px 20px;
}
