/* ==========================================================================
   Layout
   ========================================================================== */

body {
  display: flex;
  flex-direction: column;
}

.container {
  margin: 0 auto;
  width: min(var(--container-width), 90%);
}

main {
  flex: 1;
}


/* ==========================================================================
   Sections
   ========================================================================== */

.section {
  padding: 36px 0;
}

.section-compact {
  padding: 24px 0;
}

.section-muted {
  background: var(--color-background-alt);
}

.section-heading {
  margin-bottom: 24px;
  max-width: 760px;
}

.section-heading h2 {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  line-height: 1.15;
  margin-bottom: 12px;
}

.section-heading p:last-child {
  margin-bottom: 0;
}


/* ==========================================================================
   Grid
   ========================================================================== */

.grid {
  display: grid;
  gap: 24px;
}

.grid-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* ==========================================================================
   Responsive
   ========================================================================== */


@media (max-width: 700px) {
  .grid-two,
  .grid-three,
  .grid-four {
    grid-template-columns: 1fr;
  }

  .section {
    padding: 28px 0;
  }

  .section-compact {
    padding: 20px 0;
  }

  .section-heading {
    margin-bottom: 20px;
  }
}