/* ===== Containers ===== */
.container {
    width: 100%;
    max-width: var(--container-width); /* 1200px */
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--gutter-width);
    padding-right: var(--gutter-width);
  }
  
  /* Fluid Container (100% width with padding) */
  .container-fluid {
    width: 100%;
    padding-left: var(--gutter-width);
    padding-right: var(--gutter-width);
  }
  
  /* ===== Rows ===== */
  .row {
    display: flex;
    flex-wrap: wrap;
    margin-left: calc(-1 * var(--gutter-width) / 2);
    margin-right: calc(-1 * var(--gutter-width) / 2);
  }
  
  /* ===== Columns ===== */
  .col {
    flex: 1 1 0%;
    padding-left: calc(var(--gutter-width) / 2);
    padding-right: calc(var(--gutter-width) / 2);
  }
  
  /* ===== Section Defaults ===== */
  section {
    padding-top: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
  }
  
  /* Tighter Sections */
  .section-tight {
    padding-top: var(--spacing-md);
    padding-bottom: var(--spacing-md);
  }
  
  /* Loose Sections (Hero, CTAs) */
  .section-loose {
    padding-top: var(--spacing-xl);
    padding-bottom: var(--spacing-xl);
  }
  
  /* Space Between Consecutive Sections */
  section + section {
    margin-top: var(--spacing-md);
  }
  
  /* Remove Section Padding */
  .section-no-padding {
    padding-top: 0;
    padding-bottom: 0;
  }
  
  /* ===== Full Page Wrapper ===== */
  .page-wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
  }
  
  /* ===== Centering Utilities ===== */
  .center-content {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  
  /* ===== Max Width Helper ===== */
  .max-width-sm {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }
  
  .max-width-md {
    max-width: 768px;
    margin-left: auto;
    margin-right: auto;
  }
  
  .max-width-lg {
    max-width: 1024px;
    margin-left: auto;
    margin-right: auto;
  }
  
  /* ===== Padding Helpers ===== */
  .px-0 {
    padding-left: 0;
    padding-right: 0;
  }
  
  .px-sm {
    padding-left: var(--spacing-sm);
    padding-right: var(--spacing-sm);
  }
  
  .px-md {
    padding-left: var(--spacing-md);
    padding-right: var(--spacing-md);
  }
  
  .px-lg {
    padding-left: var(--spacing-lg);
    padding-right: var(--spacing-lg);
  }
  
  /* ===== Margin Helpers ===== */
  .mx-auto {
    margin-left: auto;
    margin-right: auto;
  }
  
  /* ===== Responsive Adjustments ===== */
  @media (max-width: 768px) {
    .container,
    .container-fluid {
      padding-left: var(--spacing-md);
      padding-right: var(--spacing-md);
    }
  
    section {
      padding-top: var(--spacing-md);
      padding-bottom: var(--spacing-md);
    }
  
    .section-loose {
      padding-top: var(--spacing-lg);
      padding-bottom: var(--spacing-lg);
    }
  }