/* ==========================================================================
   base.css — Elementos globais e tipografia
   Ordem de carregamento: 3/7
   ========================================================================== */

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 1.25rem);
}

body {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: 400;
  line-height: var(--leading-normal);
  background: var(--paper);
  color: var(--ink);
  overflow-x: clip;
}

body.nav-open {
  overflow: hidden;
}

main {
  display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

strong,
b {
  font-weight: 700;
}

em {
  font-style: italic;
}

small {
  font-size: 0.8em;
}

a {
  transition: color var(--duration-fast) ease, opacity var(--duration-fast) ease;
}

a:hover {
  text-decoration-thickness: 1px;
}

/* Foco visível e consistente ---------------------------------------------- */
:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 3px;
  border-radius: 4px;
}

::selection {
  background: var(--coral);
  color: var(--ink-deep);
}

/* Tipografia de apoio ----------------------------------------------------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: var(--space-4);
  color: var(--accent-text);
  font-size: var(--text-xs);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.eyebrow::before {
  content: "";
  width: 1.7rem;
  height: 1px;
  flex: none;
  background: currentColor;
  opacity: 0.85;
}

.eyebrow--plain::before {
  display: none;
}

.section-title {
  max-width: 20ch;
  font-size: var(--h2);
  line-height: 1.03;
  letter-spacing: -0.04em;
}

.section-title--wide {
  max-width: 26ch;
}

.section-lead {
  max-width: 40rem;
  margin-top: var(--space-5);
  color: var(--muted);
  font-size: var(--text-lg);
  line-height: 1.62;
}

.text-accent {
  color: var(--accent-text);
}

.text-coral {
  color: var(--coral);
}

.text-muted {
  color: var(--muted);
}

.lead {
  max-width: 40rem;
  color: var(--muted);
  font-size: var(--text-lg);
  line-height: 1.62;
}

.body-copy {
  color: var(--muted);
  font-size: 0.97rem;
  line-height: 1.75;
}

.body-copy + .body-copy {
  margin-top: var(--space-4);
}

.body-copy a {
  color: var(--accent-text);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* Marcadores de atenção --------------------------------------------------- */
.req {
  color: var(--coral-deep);
}

/* Scrollbar discreta (Chromium/WebKit) ------------------------------------ */
@media (pointer: fine) {
  * {
    scrollbar-width: thin;
    scrollbar-color: rgba(93, 95, 124, 0.45) transparent;
  }

  ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }

  ::-webkit-scrollbar-thumb {
    background: rgba(93, 95, 124, 0.4);
    border: 3px solid var(--paper);
    border-radius: 999px;
  }
}
