/* =============================================
   ZERØCRAFT — Layout System
   Container, sections, grid, responsive utilities
   ============================================= */

/* === Container === */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.container--wide {
  max-width: var(--container-wide);
}

.container--narrow {
  max-width: var(--container-narrow);
}

/* === Section === */
.section {
  padding: var(--section-gap) 0;
  position: relative;
}

.section--full {
  min-height: 100vh;
  display: flex;
  align-items: center;
}

/* === Flex Utilities === */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-center { align-items: center; justify-content: center; }
.flex-between { justify-content: space-between; }
.flex-wrap { flex-wrap: wrap; }
.gap-1 { gap: var(--space-1); }
.gap-2 { gap: var(--space-2); }
.gap-3 { gap: var(--space-3); }
.gap-4 { gap: var(--space-4); }
.gap-6 { gap: var(--space-6); }
.gap-8 { gap: var(--space-8); }

/* === Grid Utilities === */
.grid {
  display: grid;
  gap: var(--space-6);
}

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

/* === Text Utilities === */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-balance {
  text-wrap: balance;
}

/* === Responsive === */
@media (max-width: 1024px) {
  .container {
    padding: 0 var(--space-8);
  }

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

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

@media (max-width: 768px) {
  :root {
    --navbar-h: 64px;
    --section-gap: clamp(4rem, 10vh, 7rem);
  }

  .container {
    padding: 0 var(--space-5);
  }

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

@media (max-width: 480px) {
  .container {
    padding: 0 var(--space-4);
  }
}

/* === Spacer Utility === */
.spacer-sm { height: var(--space-8); }
.spacer-md { height: var(--space-16); }
.spacer-lg { height: var(--space-24); }
