.l-stack {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.l-stack > * {
  margin-block: 0;
}

/* Spacing is set per variant on the children, not through an inherited
   custom property: a nested stack would otherwise read its own value. */
.l-stack--space-small > * + * {
  margin-block-start: var(--s-2);
}

.l-stack--space-medium > * + * {
  margin-block-start: var(--s-3);
}

.l-stack--space-large > * + * {
  margin-block-start: var(--s-4);
}

.l-stack--space-x-large > * + * {
  margin-block-start: var(--s-5);
}

.l-stack--space-xx-large > * + * {
  margin-block-start: var(--s-6);
}
