/* ==========================================================================
   COMPONENTS · CALLOUT — an editor's aside set off from the column: a hairline
   box with a small-caps label and a left rule. Note (neutral), caution (ochre),
   critical (brick), and the editor's-note (rubric). "Poor"/critical stays its
   own brick, decoupled from the rubric editor's-note, so a warning never reads
   as brand.
   ========================================================================== */

.op-callout {
  --co-line: var(--rule-strong);
  --co-wash: var(--surface-sunken);
  background: var(--co-wash);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--co-line);
  border-radius: var(--radius-xs);
  padding: var(--space-md);
}

.op-callout__label {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-family: var(--font-furniture);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--co-line);
  margin-bottom: var(--space-2xs);
}

.op-callout__body {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--text);
}
.op-callout__body > * + * { margin-top: var(--space-2xs); }

/* — Variants — */
.op-callout--note     { --co-line: var(--rule-strong); --co-wash: var(--surface-sunken); }
.op-callout--caution  { --co-line: var(--warning);  --co-wash: var(--warning-wash); }
.op-callout--critical { --co-line: var(--critical); --co-wash: var(--critical-wash); }
/* the editor's note carries the rubric on its rule + label only — a NEUTRAL
   wash keeps the red box exclusive to --critical (a warning never reads as brand) */
.op-callout--rubric   { --co-line: var(--accent);   --co-wash: var(--surface-sunken); }
.op-callout--note .op-callout__label { color: var(--text-secondary); }
