/* ==========================================================================
   OBJECTS · STACK — vertical rhythm. Owns the space BETWEEN its children and
   nothing else, via a single --gap (the lobotomised-owl pattern). Change the
   gap per instance with the --gap custom property.
   ========================================================================== */

.o-stack {
  display: flex;
  flex-direction: column;
  --gap: var(--gap-stack);
}

.o-stack > * + * { margin-top: var(--gap); }

.o-stack--3xs { --gap: var(--space-3xs); }
.o-stack--2xs { --gap: var(--space-2xs); }
.o-stack--xs  { --gap: var(--space-xs); }
.o-stack--sm  { --gap: var(--space-sm); }
.o-stack--md  { --gap: var(--space-md); }
.o-stack--lg  { --gap: var(--space-lg); }
.o-stack--xl  { --gap: var(--space-xl); }
.o-stack--2xl { --gap: var(--space-2xl); }

/* Push everything after a flagged child to the bottom of a fixed-height stack */
.o-stack--split > [data-stack-end] { margin-top: auto; }
