/* Core grid container and column system for layout */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

.container-fluid {
  width: 100%;
  margin: 0 auto;
  padding: 0 1rem;
}

.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 16px;
  align-items: start;
  justify-items: stretch;
}

.col {
  padding: 8px;
  grid-column: span var(--col-span, 1);
  min-height: 150px;
  transition: transform 0.3s ease-in-out;
}

.col[data-col-span="6"] {
  --col-span: 6;
}

.col:hover {
  transform: scale(1.05);
}

.gap-small {
  gap: 0.5rem;
}

.gap-tiny {
  gap: 0.25rem;
}

@media (max-width: 768px) {
  .col {
    grid-column: span 12;
  }
}

@media (min-width: 768px) and (max-width: 992px) {
  .col {
    grid-column: span 6;
  }
}

@media (min-width: 992px) {
  .col {
    grid-column: span 3;
  }
}

@supports not (display: grid) {
  .grid-container {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
  }

  .col {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

.hidden-xs {
  display: none;
}

@media (min-width: 768px) {
  .hidden-xs {
    display: block;
  }
}

@media (max-width: 480px) {
  .col {
    grid-column: span 12;
  }
}
