/* Container, page header pattern, grids, sections. */

.container {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--page-pad);
}

.main {
  min-height: 60vh;
}

/* Page header: title left, actions clustered top-right. Wraps on mobile. */
.page-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6) 0 var(--space-5);
}

.page-header__title h1 {
  margin: 0;
}

.page-header__subtitle {
  color: var(--color-muted);
  font-size: var(--text-sm);
  margin-top: var(--space-1);
}

.page-header__actions {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
  align-items: center;
}

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

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

.section__heading {
  margin-bottom: var(--space-5);
}

/* Product grid: 1 / 2 / 3 / 4 cols across breakpoints. */
.product-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}
@media (min-width: 480px)  { .product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px)  { .product-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .product-grid { grid-template-columns: repeat(4, 1fr); } }

/* Two-column layout used by cart + product detail. */
.split-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}

@media (min-width: 768px) {
  .split-layout {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-7);
  }
  .split-layout--rail {
    grid-template-columns: 1fr 320px;
    align-items: start;
  }
}
