.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}

.split-main {
  container-type: inline-size;
  min-width: 0;
}

.split-side {
  container-type: inline-size;
  min-width: 0;
}

.split-main-after {
  container-type: inline-size;
  min-width: 0;
}

.split-foot {
  container-type: inline-size;
  min-width: 0;
}

@media (min-width: 64rem) {
  /* The second row takes the room a tall side leaves, so what follows the
     main column sits right under it rather than under a gap. */
  .split {
    grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
    grid-template-rows: auto 1fr auto;
    align-items: start;
  }

  .split-main {
    grid-column: 1;
    grid-row: 1;
  }

  .split-side {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .split-main-after {
    grid-column: 1;
    grid-row: 2;
  }

  .split-foot {
    grid-column: 1 / -1;
    grid-row: 3;
  }
}
