/* Cópia do canon para os capítulos 4, 5 e 11 (tamanho, pensar, novo) do site IA explicada: idêntica a site/comum-agentes/farol.css em 28/10/2026, para os três não dependerem do módulo de outra sessão. Não acrescente cor aqui. */
/* ==========================================================================
   farol.css — o canon CIn-UFPE como código
   Fonte da verdade: farol-materiais/diagnosticos/software/02-fase-1-discovery/DESIGN-cinufpe-canon.md
   Decisões: FAROL-0287 (o design system do FAROL é o canon), FAROL-0299 (gráfico: rampa de um
   vermelho, identidade por posição), AX-0012 (sem modo escuro).
   Exemplo aplicado: farol-ia-site/db1/devolutiva/ — os nomes de classe seguem os de lá.

   Quatro cores, sem escala tonal. Superfície chapada: profundidade vem de TROCAR O FUNDO
   (branco ↔ vermelho ↔ preto), nunca de sombra ou gradiente. Não acrescente cor aqui.
   A fonte vem de fora: <link> do Google Fonts para Hanken Grotesk (ver inicio.html).
   ========================================================================== */

:root {
  /* --- as quatro cores do canon, e o branco implícito --- */
  --farol-vermelho: #DB1E2F;        /* PANTONE 1795 C */
  --farol-vermelho-escuro: #AF0421; /* PANTONE 200 C — hover/ativo; nunca figura sobre o vermelho */
  --farol-preto: #231F20;           /* PANTONE 419 C — não é #000 */
  --farol-cinza: #E0E1E0;           /* PANTONE 664 C — o único cinza */
  --farol-branco: #FFFFFF;

  /* --- papéis (use estes nos componentes) --- */
  --fundo: var(--farol-branco);
  --tinta: var(--farol-preto);
  --acento: var(--farol-vermelho);
  --acento-ativo: var(--farol-vermelho-escuro);
  --linha: var(--farol-cinza);
  --foco: var(--farol-vermelho);

  /* aliases com os nomes da devolutiva DB1, para páginas que já existem */
  --red: var(--farol-vermelho);
  --red-dark: var(--farol-vermelho-escuro);
  --black: var(--farol-preto);
  --gray: var(--farol-cinza);
  --white: var(--farol-branco);

  /* --- rampa SÓ para dado (FAROL-0299): um matiz, claro → escuro, monotônica --- */
  --dado-1: #FDE7E9;
  --dado-2: #F6AEB5;
  --dado-3: #EC6B77;
  --dado-4: #DB1E2F;
  --dado-5: #AF0421;

  /* --- tipografia: Proxima Nova é a oficial (licenciada, Adobe); Hanken Grotesk na web --- */
  --fonte: 'Proxima Nova', 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font: var(--fonte);

  /* --- forma: quase retangular. Nada acima de 8px --- */
  --raio-xs: 2px;  /* botão, etiqueta */
  --raio-sm: 4px;  /* cartão */
  --raio-md: 6px;  /* cartão de destaque — teto prático */

  /* --- espaço: base 8px --- */
  --e-xs: 4px; --e-sm: 8px; --e-md: 16px; --e-lg: 32px; --e-xl: 80px;
  --maxw: 1180px;
  --gut: clamp(20px, 5vw, 80px);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--fonte);
  color: var(--tinta);
  background: var(--fundo);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gut); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* --- rótulo: sempre Bold/Black, caixa alta, espaçado --- */
.label { font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: 11px; line-height: 1.15; }
.label--red { color: var(--acento); }
.label--white { color: var(--farol-branco); }
.label--black { color: var(--tinta); }

/* --- a régua: `rótulo ————— assunto`, no alto de TODA página ---
   <div class="masthead">
     <span class="label label--red">Rótulo</span>
     <span class="rule" aria-hidden="true"></span>
     <span class="label label--black">Assunto</span>
   </div>
   A linha é um elemento, não um travessão digitado. */
.masthead { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--linha); }
.masthead .rule { flex: 1; height: 1px; background: var(--tinta); }
.hero .masthead, .dark .masthead { border-bottom-color: rgba(255,255,255,.25); }
.hero .masthead .rule, .dark .masthead .rule { background: var(--farol-branco); }

/* --- capítulo: fundo cheio vermelho (ou preto), texto branco --- */
.hero { background: var(--farol-vermelho); color: var(--farol-branco); padding: clamp(48px,9vw,96px) 0 clamp(40px,7vw,72px); }
.hero .masthead { margin-bottom: clamp(40px,7vw,72px); }
.hero h1 { font-weight: 900; letter-spacing: -.01em; line-height: 1.04; font-size: clamp(44px,9vw,92px); text-transform: uppercase; }
.hero__sub { font-size: clamp(16px,2.2vw,21px); font-weight: 500; max-width: 52ch; margin-top: 24px; line-height: 1.4; }
.dark { background: var(--farol-preto); color: var(--farol-branco); }
.dark h2 { color: var(--farol-branco); }
.dark .lead { color: rgba(255,255,255,.85); }

/* --- números-manchete no capítulo --- */
.stats { display: flex; flex-wrap: wrap; gap: clamp(28px,5vw,64px); margin-top: clamp(40px,6vw,64px); }
.stat__num { font-weight: 900; font-size: clamp(40px,6vw,64px); line-height: 1; }
.stat__lab { margin-top: 8px; }

/* --- página de conteúdo: branca, rótulo vermelho pequeno no alto --- */
section { padding: clamp(48px,7vw,80px) 0; }
.section__head { margin-bottom: clamp(28px,4vw,40px); }
h2 { font-weight: 800; font-size: clamp(28px,4.4vw,40px); line-height: 1.12; letter-spacing: -.005em; }
h3 { font-weight: 800; font-size: 17px; margin-bottom: 10px; }
.lead { font-size: clamp(16px,1.9vw,18px); max-width: 70ch; margin-top: 18px; }
b, strong { font-weight: 800; }

/* --- chamada: fio vermelho à esquerda sobre o cinza --- */
.keynote { border-left: 4px solid var(--acento); background: var(--linha); padding: 20px 24px; margin: 28px 0; border-radius: 0 var(--raio-sm) var(--raio-sm) 0; }
.keynote b { color: var(--acento-ativo); }
.keynote--quiet { background: var(--farol-branco); border: 1px solid var(--linha); border-left: 4px solid var(--tinta); }

/* --- cartões: fio cinza de 1px, sem sombra --- */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio-md); overflow: hidden; }
.card { background: var(--farol-branco); padding: 22px; }
.card__t { font-weight: 800; font-size: 14px; margin-bottom: 8px; }
.card__d { font-size: 13.5px; line-height: 1.5; }

/* --- botões e etiqueta --- */
.btn { display: inline-block; font-family: var(--fonte); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 12px; padding: 12px 32px; border-radius: var(--raio-xs); border: 0; text-decoration: none; cursor: pointer; }
.btn--primario { background: var(--acento); color: var(--farol-branco); }
.btn--primario:hover { background: var(--acento-ativo); }
.btn--secundario { background: var(--farol-preto); color: var(--farol-branco); } /* sobre fundo vermelho */
.btn--contorno { background: var(--farol-branco); color: var(--acento); border: 1px solid var(--acento); padding: 11px 31px; }
.etiqueta { display: inline-block; background: var(--acento); color: var(--farol-branco); font-weight: 800; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; padding: 4px 8px; border-radius: var(--raio-xs); }

a { color: var(--acento-ativo); text-decoration: none; border-bottom: 1px solid var(--linha); }
a:hover { border-bottom-color: var(--acento-ativo); }

/* --- rodapé: preto cheio --- */
footer { background: var(--farol-preto); color: var(--farol-branco); padding: clamp(48px,7vw,80px) 0; }
footer .sig { font-weight: 900; font-size: clamp(28px,5vw,44px); letter-spacing: -.01em; line-height: 1.05; text-transform: uppercase; }
footer .sig .dot { color: var(--acento); }
footer .meta { margin-top: 24px; font-size: 13px; color: rgba(255,255,255,.7); max-width: 60ch; line-height: 1.55; }

:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* --- impressão: o fundo cheio é a identidade; não deixe o navegador apagá-lo --- */
@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  section, .hero, footer { break-inside: avoid-page; }
}
