/* ==========================================================================
   Layout
   ========================================================================== */

.container {
  margin: 0 auto;
  width: min(var(--container-width), 90%);
}

main {
  min-height: 100vh;
}


/* ==========================================================================
   Sections
   ========================================================================== */

.section {
  padding: 64px 0;
}

.section-compact {
  padding: 48px 0;
}

.section-muted {
  background: rgba(255, 255, 255, 0.02);
}

.section-heading {
  margin-bottom: 32px;
  max-width: 760px;
}

.section-heading h2 {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  line-height: 1.15;
  margin-bottom: 16px;
}

.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: 1000px) {
  .grid-three,
  .grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .grid-two,
  .grid-three,
  .grid-four {
    grid-template-columns: 1fr;
  }

  .section {
    padding: 52px 0;
  }

  .section-compact {
    padding: 40px 0;
  }

  .section-heading {
    margin-bottom: 28px;
  }
}