/* ============================================================
   03 — BASE: fontes, tipografia, elementos nativos
   ============================================================ */

/* ---- Fontes auto-hospedadas (briefing 13.3 — sem Google Fonts via CDN) ----
   Variable fonts em .woff2, subset latin + latin-ext (garante ç ã õ é â ê).
   Arquivos em /assets/fonts/ · licença SIL Open Font License 1.1.
   O subset latin é o único pré-carregado: latin-ext só baixa se a página
   realmente usar um caractere daquela faixa.                            */

@font-face {
  font-family: 'Manrope';
  src: url('../fonts/Manrope-Variable-latin.woff2') format('woff2');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
                 U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Manrope';
  src: url('../fonts/Manrope-Variable-latin-ext.woff2') format('woff2');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                 U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
                 U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter-Variable-latin.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
                 U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter-Variable-latin-ext.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                 U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
                 U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---- Corpo ---- */

body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  font-weight: var(--fw-regular);
  line-height: var(--lh-body);
  color: var(--text-primary);
  background-color: var(--bg-light);
  overflow-x: hidden;
  animation: page-in var(--dur-base) var(--ease-out) both;
}

@keyframes page-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ---- Títulos ---- */

h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading);
  text-wrap: balance;
  hyphens: none;
}

h1 {
  font-size: var(--fs-h1);
  font-weight: var(--fw-extrabold);
  line-height: 1.10;
  letter-spacing: var(--ls-display);
}

h2 {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  line-height: var(--lh-heading);
}

h3 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  line-height: 1.22;
}

h4 {
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  line-height: 1.30;
  letter-spacing: -0.01em;
}

/* Destaque cromático parcial dos títulos — assinatura do Manual de Marca.
   1ª parte na cor do texto, 2ª parte em azul.

   Qual azul depende da superfície, e isso vem do manual:
   · fundo CLARO  → Azul C.B. #2544A6. É o azul dos títulos das 16 páginas do
     manual ("identidade visual", "Imagery", "Aplicações de Cores"). Sobre o
     papel cinza dá 8:1 — e não vibra como o #184BF5.
   · fundo ESCURO → Azul #184BF5, como na peça de out-of-home ("padrão
     controlado e capacidade de escala!"). Só em corpo grande (≥28px), sobre
     o campo em gradiente — nunca em texto pequeno sobre preto chapado. */
.hl { color: var(--color-cb-blue); }

.section--dark .hl,
.section--deep .hl,
.section--field .hl,
.section--dark-gradient .hl,
.hero .hl,
.hero-inner .hl,
.cta-band .hl { color: var(--color-blue); }

/* Sobre superfície de cor CHAPADA da marca (Azul C.B. e Verde), o destaque
   não pode ser azul: #184BF5 sobre o Verde #0C3B4C dá 1,9:1. Nesses fundos o
   contraste vem do próprio branco em dois pesos — que é como o manual trata
   a logo nesses dois ladrilhos de "Aplicações de Cores". */
.section--brand .hl,
.section--deep .hl { color: rgba(255, 255, 255, 0.64); }

/* ---- Parágrafos e texto corrido ---- */

p {
  max-width: 68ch;
  text-align: left;
  hyphens: none;
}

p + p { margin-top: var(--space-4); }

strong, b { font-weight: var(--fw-semibold); }

/* ---- Links ---- */

/* Link em texto corrido usa o Azul C.B. sobre claro (8:1). O #184BF5 fica
   reservado para elementos de ação preenchidos. */
a {
  color: var(--color-cb-blue);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-in-out);
}

a:hover { color: var(--action); }

.prose a,
a.link-inline {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* ---- Listas semânticas dentro de conteúdo ---- */

.prose ul,
.prose ol {
  max-width: 68ch;
  padding-left: var(--space-5);
  margin-top: var(--space-4);
}

.prose li + li { margin-top: var(--space-2); }

/* ---- Citação ---- */

blockquote.quote {
  border-left: 3px solid var(--color-blue);
  padding-left: var(--space-5);
  margin: var(--space-6) 0;
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  line-height: 1.4;
  color: var(--text-primary);
}

/* ---- Regra horizontal técnica ---- */

hr {
  border: 0;
  height: 1px;
  background: var(--border-subtle);
  margin: var(--space-8) 0;
}

/* ---- Seleção ---- */

::selection {
  background: var(--color-blue);
  color: var(--color-white);
}

/* ---- Âncoras com header fixo ---- */

[id] { scroll-margin-top: calc(var(--header-h-scroll) + var(--space-5)); }
