.stack,
.stack-m,
.stack-s,
.stack-xs,
.stack-xxs,
.stack-xxxs,
.stack-xl,
.stack-xxl,
.stack-xxxl,
.stack-xxxxl {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.stack > *,
.stack-m > *,
.stack-s > *,
.stack-xs > *,
.stack-xxs > *,
.stack-xxxs > *,
.stack-xl > *,
.stack-xxl > *,
.stack-xxxl > *,
.stack-xxxxl > * {
  margin-block: 0;
}

.stack > * + *,
.stack-m > * + *,
.stack-s > * + *,
.stack-xs > * + *,
.stack-xxs > * + *,
.stack-xxxs > * + *,
.stack-xl > * + *,
.stack-xxl > * + *,
.stack-xxxl > * + *,
.stack-xxxxl > * + * {
  margin-block-start: var(--space-l, 1.5rem);
}

.stack--l > * + *,
.stack-l > * + * {
  margin-block-start: var(--space-l, 1.5rem);
}


.stack--m > * + *,
.stack-m > * + * {
  margin-block-start: var(--space-m, 1.5rem);
}

.stack--s > * + *,
.stack-s > * + * {
  margin-block-start: var(--space-s, 1.5rem);
}

.stack--xs > * + *,
.stack-xs > * + * {
  margin-block-start: var(--space-xs, 1.5rem);
}

.stack--xxs > * + *,
.stack-xxs > * + * {
  margin-block-start: var(--space-xxs, 1.5rem);
}

.stack--xxxs > * + *,
.stack-xxxs > * + * {
  margin-block-start: var(--space-xxxs, 1.5rem);
}

.stack--xl > * + *,
.stack-xl > * + * {
  margin-block-start: var(--space-xl, 1.5rem);
}

.stack--xxl > * + *,
.stack-xxl > * + * {
  margin-block-start: var(--space-xxl, 1.5rem);
}

.stack--xxxl > * + *,
.stack-xxxl > * + * {
  margin-block-start: var(--space-xxxl, 1.5rem);
}

.stack--xxxxl > * + *,
.stack-xxxxl > * + * {
  margin-block-start: var(--space-xxxxl, 1.5rem);
}

.stack--space-between {
  height: 100%;
}

.stack--padding {
  padding: var(--gutter, 1.5rem);
}
