/* ============================================================
   Layout — container, grid, page shell
   ============================================================ */

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

.site-main {
  min-height: calc(100vh - var(--header-height));
}

/* Page top offset when header is fixed */
.page-with-header {
  padding-top: var(--header-height);
}

/* Vertical section rhythm */
.section {
  padding-block: var(--spacing-3xl);
}

.section--paper {
  background-color: var(--color-bg-paper);
}

.section--primary {
  background-color: var(--color-accent);
  color: var(--color-accent-contrast);
}

.section__inner {
  display: grid;
  gap: var(--spacing-lg);
}

.section__footer {
  margin-top: var(--spacing-lg);
}

/* Simple responsive grids */
.grid {
  display: grid;
  gap: var(--spacing-md);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .section {
    padding-block: var(--spacing-4xl);
  }

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

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

@media (min-width: 1024px) {
  .grid--3 {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
  }
}

/* Placeholder page (sub-routes) */
.placeholder-page {
  padding-block: var(--spacing-4xl);
  text-align: center;
}

.placeholder-page__title {
  font-size: var(--font-size-3xl);
  margin-bottom: var(--spacing-md);
}

.placeholder-page__desc {
  color: var(--color-text-secondary);
  margin-bottom: var(--spacing-xl);
}
