/* ===================================
   SEMANTIC GRID SYSTEM
   =================================== */

/* Container - wraps your grid rows */
.grid-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Row - contains your columns */
.grid-row {
  display: grid;
  gap: 20px; /* Space between columns */
  margin-bottom: 20px;
}

/* Three Column Layout (equal width) */
.grid-row.three-col {
  grid-template-columns: 1fr 1fr 1fr;
}

/* Two Column Layout */
.grid-row.two-col {
  grid-template-columns: 1fr 1fr;
}

/* Four Column Layout */
.grid-row.four-col {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}

/* Single Column (full width) */
.grid-row.one-col {
  grid-template-columns: 1fr;
}

/* Column - individual grid items */
.grid-col {
  padding: 20px;
  background-color: #f5f5f5;
  border: 1px solid #ddd;
  border-radius: 8px;
}

/* ===================================
   RESPONSIVE BEHAVIOR
   =================================== */

/* Tablets - stack 3 & 4 column layouts to 2 columns */
@media (max-width: 768px) {
  .grid-row.three-col,
  .grid-row.four-col {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile - stack everything to single column */
@media (max-width: 480px) {
  .grid-row.two-col,
  .grid-row.three-col,
  .grid-row.four-col {
    grid-template-columns: 1fr;
  }
}

/* ===================================
   CUSTOM GAP UTILITIES
   =================================== */

.grid-row.gap-small {
  gap: 10px;
}

.grid-row.gap-large {
  gap: 40px;
}

.grid-row.gap-none {
  gap: 0;
}