/* =========================
   BASE
========================= */

html {
  font-size: 16px;
}

body {
  background: var(--color-background);
  color: var(--color-text);
  font-family: var(--font-body);
  line-height: 1.7;
  overflow-x: hidden;
}

/* =========================
   CONTAINER
========================= */

.container {
  width: 100%;
  max-width: calc(var(--container-width) + (var(--container-padding) * 2));
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

/* =========================
   SECTION
========================= */

.section {
  padding: var(--space-3xl) 0;
}

/* =========================
   TYPOGRAPHY
========================= */

h1,
h2,
h3,
h4 {
  font-family: var(--font-heading);
  color: var(--color-primary);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: 0;
}

h1 {
  font-size: clamp(2.65rem, 5.2vw, 4.8rem);
}

h2 {
  font-size: clamp(1.9rem, 3.3vw, 3.25rem);
}

h3 {
  font-size: clamp(1.2rem, 1.75vw, 1.65rem);
}

p {
  color: var(--color-muted);
  font-size: 1rem;
}

/* =========================
   GRID HELPERS
========================= */

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 64px;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 992px) {
  .section {
    padding: 88px 0;
  }

  .grid-2,
  .grid-3 {
    grid-template-columns: 1fr;
  }

  h1 {
    font-size: 2.85rem;
  }
}

@media (max-width: 768px) {
  :root {
    --container-padding: 20px;
  }

  .section {
    padding: 72px 0;
  }

  h1 {
    font-size: 2.35rem;
  }

  h2 {
    font-size: 1.9rem;
  }
}
