/* Layout system */

/* Keep the footer at the viewport edge on short pages, in normal flow. */
body {
  min-block-size: 100vh;
  min-block-size: 100dvh;
  display: flex;
  flex-direction: column;
}

body > main {
  flex: 1 0 auto;
}

.container {
  width: min(calc(100% - (2 * var(--page-gutter))), var(--container-max));
  margin-inline: auto;
}

/* Mobile: 4 columns */
.grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem; /* ~12px */
}

/* Tablet: 8 columns */
@media (min-width: 52.125rem) { /* ~834px */
  .grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 1.25rem; /* ~20px */
  }
}

/* Desktop: 12 columns */
@media (min-width: 75rem) {  /* ~1200px */
  .grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.5rem; /* ~24px */
  }
}

.section {
  padding-block: clamp(var(--space-12), 7vw, var(--space-24));
}

.reading-width {
  max-width: 47.5rem; /* 760px */
}
