/* ============================================================
 * farpa DS · component · rule · v1.0.0 · 2026-05-10
 * ------------------------------------------------------------
 * Filete editorial blood-700 · 2px · com label opcional (mono mini caps).
 *
 * Padrão:
 *   <hr class="farpa-rule">                              · simples
 *   <hr class="farpa-rule" data-label="ADR 008">         · com label automático
 *   <div class="farpa-rule">                             · forma flex (label como child)
 *     <span class="farpa-rule__label">ADR 008</span>
 *   </div>
 *
 * Modifiers:
 *   --short      · 24px
 *   --full-bleed · estende além do container (use com cuidado)
 *
 * Themes:
 *   light · blood-700
 *   dark  · blood-200
 *   HC    · black 3px
 * ============================================================ */

.farpa-rule {
  display: flex;
  align-items: center;
  height: 2px;
  background: var(--accent-rule);
  border: 0;
  margin: 0;
  width: 100%;
  max-width: var(--container-max);
  position: relative;
  overflow: visible;
}

/* Label posicionado sobre o filete · mascarado pelo bg do papel.
 * Forma <hr data-label="..."> usa ::after para renderizar sem child node. */
.farpa-rule[data-label]::after {
  content: attr(data-label);
  position: absolute;
  right: var(--sp-5);
  top: 50%;
  transform: translateY(-50%);
  background: var(--bg);
  padding: 0 var(--sp-2);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  line-height: 1;
}

/* Label como elemento child (forma <div><span class="farpa-rule__label">) */
.farpa-rule__label {
  margin-left: auto;
  background: var(--bg);
  padding: 0 var(--sp-2);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  line-height: 1;
}

/* Modifiers */
.farpa-rule--short {
  width: 24px;
  max-width: 24px;
}

.farpa-rule--full-bleed {
  max-width: none;
}

/* HC · 3px · preto · zero label color override (já é black) */
[data-theme="hc"] .farpa-rule {
  height: 3px;
}
