.ledger {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2.5rem, 6vw, 5rem);
}

.ledger__col h3 {
  font-family: var(--font-mono);
  font-size: var(--fs-mono-sm);
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-2);
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--basalt);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.ledger__col h3 b {
  color: var(--basalt);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.ledger__list {
  list-style: none;
  padding: 0;
}

.ledger__row {
  padding-block: 1.05rem;
  border-bottom: 1px solid var(--hairline-soft);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 3.5rem;
  align-items: center;
  gap: 1rem;
}

.ledger__label {
  font-size: 0.9875rem;
}

.ledger__pct {
  font-family: var(--font-mono);
  font-size: var(--fs-mono);
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: var(--ink-2);
}

.ledger__bar {
  grid-column: 1 / -1;
  height: 9px;
  border: 1px solid var(--hairline);
  background: var(--pumice);
  margin-top: 0.55rem;
  overflow: hidden;
}

.ledger__bar i {
  display: block;
  height: 100%;
  background-color: var(--olivine-mid);
  background-image: var(--lith-ash);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.9s var(--ease-core);
  transition-delay: calc(var(--i, 0) * 90ms);
}

.is-in .ledger__bar i {
  transform: scaleX(var(--pct, 0));
}

/* Sans JS les barres ne peuvent pas être remplies, et une barre vide à côté de
   « 54 % » se lit comme un faux zéro. On n'affiche alors que les chiffres. */
.no-js .ledger__bar {
  display: none;
}

.ledger__row--zero .ledger__label,
.ledger__row--zero .ledger__pct {
  color: var(--olivine);
}

.ledger__note {
  margin-top: 1.5rem;
  color: var(--ink-2);
  font-size: 0.9375rem;
}

@media (max-width: 820px) {
  .ledger {
    grid-template-columns: 1fr;
  }
}
