/* Lightweight responsive grid and spacing utilities */

.container,
.container-sm,
.container-lg {
  width: min(100% - 32px, 1180px);
  margin-inline: auto;
}

.container-sm { max-width: 980px; }
.container-lg { max-width: 1400px; }

.row {
  display: flex;
  flex-wrap: wrap;
  margin-inline: -12px;
}

.col,
[class*="col-"] {
  min-width: 0;
  padding-inline: 12px;
}

.col { flex: 1 1 0; }
.col-1 { flex: 0 0 8.333%; max-width: 8.333%; }
.col-2 { flex: 0 0 16.666%; max-width: 16.666%; }
.col-3 { flex: 0 0 25%; max-width: 25%; }
.col-4 { flex: 0 0 33.333%; max-width: 33.333%; }
.col-5 { flex: 0 0 41.666%; max-width: 41.666%; }
.col-6 { flex: 0 0 50%; max-width: 50%; }
.col-7 { flex: 0 0 58.333%; max-width: 58.333%; }
.col-8 { flex: 0 0 66.666%; max-width: 66.666%; }
.col-9 { flex: 0 0 75%; max-width: 75%; }
.col-10 { flex: 0 0 83.333%; max-width: 83.333%; }
.col-11 { flex: 0 0 91.666%; max-width: 91.666%; }
.col-12 { flex: 0 0 100%; max-width: 100%; }

@media (max-width: 768px) {
  .container,
  .container-sm,
  .container-lg {
    width: min(100% - 24px, 1180px);
  }

  .col-sm-1 { flex: 0 0 8.333%; max-width: 8.333%; }
  .col-sm-2 { flex: 0 0 16.666%; max-width: 16.666%; }
  .col-sm-3 { flex: 0 0 25%; max-width: 25%; }
  .col-sm-4 { flex: 0 0 33.333%; max-width: 33.333%; }
  .col-sm-5 { flex: 0 0 41.666%; max-width: 41.666%; }
  .col-sm-6 { flex: 0 0 50%; max-width: 50%; }
  .col-sm-7 { flex: 0 0 58.333%; max-width: 58.333%; }
  .col-sm-8 { flex: 0 0 66.666%; max-width: 66.666%; }
  .col-sm-9 { flex: 0 0 75%; max-width: 75%; }
  .col-sm-10 { flex: 0 0 83.333%; max-width: 83.333%; }
  .col-sm-11 { flex: 0 0 91.666%; max-width: 91.666%; }
  .col-sm-12 { flex: 0 0 100%; max-width: 100%; }
}

@media (max-width: 480px) {
  .container,
  .container-sm,
  .container-lg {
    width: min(100% - 20px, 1180px);
  }

  .col-xs-1 { flex: 0 0 8.333%; max-width: 8.333%; }
  .col-xs-2 { flex: 0 0 16.666%; max-width: 16.666%; }
  .col-xs-3 { flex: 0 0 25%; max-width: 25%; }
  .col-xs-4 { flex: 0 0 33.333%; max-width: 33.333%; }
  .col-xs-5 { flex: 0 0 41.666%; max-width: 41.666%; }
  .col-xs-6 { flex: 0 0 50%; max-width: 50%; }
  .col-xs-7 { flex: 0 0 58.333%; max-width: 58.333%; }
  .col-xs-8 { flex: 0 0 66.666%; max-width: 66.666%; }
  .col-xs-9 { flex: 0 0 75%; max-width: 75%; }
  .col-xs-10 { flex: 0 0 83.333%; max-width: 83.333%; }
  .col-xs-11 { flex: 0 0 91.666%; max-width: 91.666%; }
  .col-xs-12 { flex: 0 0 100%; max-width: 100%; }
}

.m-0 { margin: 0; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mb-1 { margin-bottom: 8px; }
.mb-2 { margin-bottom: 16px; }
.mb-3 { margin-bottom: 24px; }
.mb-4 { margin-bottom: 32px; }
.p-0 { padding: 0; }
.p-1 { padding: 8px; }
.p-2 { padding: 16px; }
.p-3 { padding: 24px; }
.p-4 { padding: 32px; }
.d-flex { display: flex; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.align-center { align-items: center; }
.flex-wrap { flex-wrap: wrap; }
.gap-1 { gap: 8px; }
.gap-2 { gap: 16px; }
.gap-3 { gap: 24px; }
