.shell {
  width: 100%;
  max-width: var(--page-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.shell--editorial { max-width: var(--editorial-max); }
.shell--narrow { max-width: 900px; }

.stack-lg > * + * { margin-top: var(--space-lg); }

/* Sections are separated by rules and space, not by boxes. */
.band { padding-block: clamp(3rem, 6vw, var(--space-2xl)); }
.band--tight { padding-block: var(--space-xl); }
.band--sunken {
  background: linear-gradient(135deg, rgba(11, 26, 22, 0.92), rgba(7, 16, 13, 0.96));
  border-block: 1px solid var(--line-hair);
}
.band + .band { border-top: 1px solid rgba(31, 66, 56, 0.34); }

/* Split: text column against a data column, with a hairline between them. */
.split-data {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
}
@media (min-width: 52rem) {
  .split-data {
    grid-template-columns: minmax(0, 1.6fr) minmax(240px, 0.9fr);
    gap: var(--space-xl);
  }
  .split-data > :last-child {
    border-left: 1px solid var(--line-strong);
    padding-left: var(--space-lg);
  }
}

.flow-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-sm) var(--space-md);
}

.push-right { margin-left: auto; }
