body {
  font-family: var(--ns-font-text);
  font-size: var(--ns-fs-base);
  line-height: 1.6;
  color: var(--ns-text);
  background: var(--ns-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-kerning: normal;
}

h1, h2, h3, h4, .ns-display, .ns-h2, .ns-h3 {
  font-family: var(--ns-font-display);
  font-weight: 500;
  color: inherit;
  text-wrap: balance;
}

.ns-display { font-size: var(--ns-fs-display); line-height: 1; letter-spacing: -0.035em; font-weight: 500; }
.ns-h2 { font-size: var(--ns-fs-h2); line-height: 1.05; letter-spacing: -0.03em; font-weight: 500; }
.ns-h3 { font-size: var(--ns-fs-h3); line-height: 1.2; letter-spacing: -0.015em; font-weight: 600; }

/* Destaque de palavra: verde só como traço/sublinhado (verde como texto sobre branco não passa em contraste). */
.ns-mark { position: relative; white-space: nowrap; color: var(--ns-blue); }
.ns-dark .ns-mark { color: var(--ns-green); }

/* Eyebrow do manual: Hanken 12, caixa alta, +32%. */
.ns-eyebrow {
  font-family: var(--ns-font-text);
  font-size: var(--ns-fs-eyebrow);
  font-weight: 600;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ns-blue);
  line-height: 1.4;
}
.ns-dark .ns-eyebrow { color: var(--ns-green); }

.ns-lead { font-size: var(--ns-fs-lead); line-height: 1.6; color: var(--ns-text-2); max-inline-size: 44ch; text-wrap: pretty; }
.ns-dark .ns-lead { color: var(--ns-text-on-dark-2); }

p { text-wrap: pretty; }

.ns-sr-only {
  position: absolute !important; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
