/* ==========================================================================
   Layout — Containers, Grid, Responsive Framework
   ========================================================================== */

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

.container--full {
  max-width: 100%;
}

.container--narrow {
  max-width: 74%;
  margin: 0 auto;
}

/* --- 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;
}

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

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

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

/* --- Row / Column System (matching LeadConnector) --- */
.row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
  padding: var(--space-sm) var(--space-xs);
  width: 100%;
}

.col {
  padding: var(--space-sm) var(--space-xs);
  width: 100%;
}

.col > .inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

/* --- Section Base --- */
section {
  position: relative;
  overflow: hidden;
}

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

/* --- Responsive Breakpoints --- */

/* Tablet (768px+) */
@media (min-width: 768px) {
  .grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }

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

  .col-half {
    width: 50%;
  }

  .col-52 {
    width: 51.8%;
  }

  .col-48 {
    width: 48.2%;
  }
}

/* Desktop (992px+) */
@media (min-width: 992px) {
  .container--narrow {
    max-width: 74%;
  }

  .row--wide {
    padding-left: 60px;
    padding-right: 60px;
  }
}

/* Large Desktop (1280px+) */
@media (min-width: 1280px) {
  .container {
    padding: 0;
  }
}

/* Mobile (480px and below) */
@media (max-width: 480px) {
  .container--narrow {
    max-width: 100%;
    padding: 0 15px;
  }

  .col-half,
  .col-52,
  .col-48 {
    width: 100%;
  }

  .text-center-mobile {
    text-align: center;
  }

  .row--wide {
    padding-left: 15px;
    padding-right: 15px;
  }
}
