/* ============================================================
 * farpa DS · component · hero · v1.0.0 · 2026-05-10
 * ------------------------------------------------------------
 * Hero editorial: eyebrow (mono uppercase blood-700) + h1 (Fraunces
 * opsz alta · weight 600) + filete blood-700 (opcional) + lede.
 *
 * Padrão de uso:
 *   <header class="farpa-hero farpa-hero--with-rule">
 *     <p class="farpa-hero__eyebrow">CARTILHA · ADR 008</p>
 *     <h1 class="farpa-hero__title">Cada decisão tem ADR público.</h1>
 *     <hr class="farpa-rule" data-label="2026-05-10">
 *     <p class="farpa-hero__lede">Lede em Plex Sans · max 60ch.</p>
 *   </header>
 *
 * ADR 005 · zero CSS custom fora deste arquivo.
 * Themes: light/dark/HC respondidos via tokens semantic.
 * ============================================================ */

.farpa-hero {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  max-width: var(--container-max);
  margin-inline: auto;
  padding-block: var(--sp-9) var(--sp-8);
  padding-inline: var(--sp-5);
}

.farpa-hero__eyebrow {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
  margin: 0;
}

.farpa-hero__title {
  font-family: var(--font-display);
  font-variation-settings: var(--font-variation-display-hero);
  font-weight: var(--fw-display-strong);
  font-size: var(--fs-display-1);
  letter-spacing: -0.025em;
  line-height: 1.05;
  color: var(--fg);
  margin: 0;
  max-width: 22ch;
}

/* Desktop editorial: hero h1 ocupa largura do hero container (container-max).
   22ch é trava útil em mobile/tablet · em ≥1024px vira limitação visual. */
@media (min-width: 1024px) {
  .farpa-hero__title {
    max-width: none;
  }
}

.farpa-hero__lede {
  font-family: var(--font-sans);
  font-size: var(--fs-lg);
  line-height: var(--lh-relaxed);
  color: var(--fg-soft);
  max-width: 60ch;
  margin: 0;
}

/* Variantes */
.farpa-hero--with-rule .farpa-rule {
  margin-block: var(--sp-3) var(--sp-4);
}

/* Modifier sobrio: ditado utilitário · sem opsz alto · h1 menor */
.farpa-hero--sober .farpa-hero__title {
  font-family: var(--font-sans);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-3xl);
  letter-spacing: -0.01em;
  font-variation-settings: normal;
}

/* Mobile · respiro mais discreto + afrouxa letter-spacing tipográfico */
@media (max-width: 720px) {
  .farpa-hero {
    padding-block: var(--sp-7) var(--sp-6);
    padding-inline: var(--sp-4);
  }
  .farpa-hero__title {
    max-width: none;
    letter-spacing: -0.015em;
    /* word-break protege contra estouro de palavras longas (URL/nomes) */
    overflow-wrap: break-word;
    word-break: normal;
  }
  .farpa-hero__lede {
    font-size: var(--fs-md);
  }
}

@media (max-width: 380px) {
  .farpa-hero {
    padding-inline: var(--sp-3);
  }
  .farpa-hero__title {
    letter-spacing: 0;
  }
}

/* HC · sem letter-spacing negativo · clareza acima de elegância */
[data-theme="hc"] .farpa-hero__title {
  letter-spacing: 0;
}
