.container {
  width: min(var(--container), calc(100% - 32px));
  margin: 0 auto;
}

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

.section--tight {
  padding-top: var(--space-8);
  padding-bottom: var(--space-8);
}

.hero__layout,
.overview-grid,
.project-grid,
.architecture-grid,
.timeline-grid,
.content-grid {
  display: grid;
  gap: var(--space-5);
}

.hero__layout {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  align-items: stretch;
}

.overview-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.project-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.project-grid--uniform {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.project-grid--uniform > .project-card {
  height: 100%;
}

.project-grid--featured {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.architecture-grid,
.timeline-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.content-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.section-stack {
  display: grid;
  gap: var(--space-5);
}

.split-showcase {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: var(--space-6);
  padding: var(--space-8);
}

.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space-5);
  margin-bottom: var(--space-6);
}

.section-heading--compact {
  margin-bottom: var(--space-5);
}

.footer-meta {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
  padding-top: var(--space-5);
}

@media (max-width: 1200px) {
  .project-grid,
  .project-grid--featured,
  .project-grid--uniform {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .architecture-grid,
  .timeline-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .hero__layout,
  .split-showcase,
  .overview-grid,
  .content-grid,
  .pricing-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .section {
    padding: var(--space-8) 0;
  }

  .project-grid,
  .architecture-grid,
  .timeline-grid,
  .content-grid {
    grid-template-columns: 1fr;
  }

  .section-heading,
  .footer-meta {
    flex-direction: column;
    align-items: flex-start;
  }
}
