/* === LAYOUT SYSTEM === */

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

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

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

.container--full {
  max-width: none;
  padding: 0;
}

/* Grid System */
.grid {
  display: grid;
  gap: var(--space-md);
}

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

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

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

/* Asymmetric grids - modern */
.grid--asymmetric {
  grid-template-columns: 1.2fr 0.8fr;
}

.grid--asymmetric-reverse {
  grid-template-columns: 0.8fr 1.2fr;
}

/* Masonry-like stagger */
.grid--stagger > *:nth-child(even) {
  transform: translateY(var(--space-lg));
}

/* Section spacing */
.section {
  padding: var(--space-section) 0;
  position: relative;
  overflow: hidden;
}

.section--dark {
  background: var(--color-black);
  color: var(--color-white);
}

.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4 {
  color: var(--color-white);
}

.section--anthracite {
  background: var(--color-anthracite);
  color: var(--color-white);
}

.section--anthracite h1, .section--anthracite h2, .section--anthracite h3, .section--anthracite h4 {
  color: var(--color-white);
}

.section--light {
  background: var(--color-cream);
}

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

/* Section with diagonal/angled edge */
.section--angled::before {
  content: '';
  position: absolute;
  top: -60px;
  left: 0;
  right: 0;
  height: 120px;
  background: inherit;
  transform: skewY(-2deg);
  z-index: 1;
}

/* Section header */
.section__header {
  text-align: center;
  margin-bottom: var(--space-xl);
  max-width: var(--container-narrow);
  margin-left: auto;
  margin-right: auto;
}

.section__header p {
  font-size: var(--font-size-body-lg);
  color: var(--color-medium-gray);
  margin-top: var(--space-sm);
}

/* Alleinstehender Sektionskopf: kein zusaetzlicher Abstand unter dem Text */
.section__header:last-child {
  margin-bottom: 0;
}

/* Seiten ohne Hero (Entwuerfe, 404): Inhalt nicht unter der fixen Navbar */
main > .section:first-child {
  padding-top: calc(85px + 3rem);
}

.section--dark .section__header p,
.section--anthracite .section__header p {
  color: #D7D2CB;
}

/* Horizontal Scroll Container */
.horizontal-scroll {
  display: flex;
  gap: var(--space-md);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: var(--space-md) var(--container-padding);
}

.horizontal-scroll::-webkit-scrollbar { display: none; }

.horizontal-scroll > * {
  scroll-snap-align: start;
  flex-shrink: 0;
}

/* Flex utilities */
.flex { display: flex; }
.flex--center { display: flex; align-items: center; justify-content: center; }
.flex--between { display: flex; align-items: center; justify-content: space-between; }
.flex--column { display: flex; flex-direction: column; }
.flex--gap-sm { gap: var(--space-sm); }
.flex--gap-md { gap: var(--space-md); }
.flex--gap-lg { gap: var(--space-lg); }

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

/* Divider */
.divider {
  display: none;
}

.divider--left {
  margin-left: 0;
}
