/* =========================================================
   SECTION — Culture grid (COLLINS arts-culture layout)
   Grouped sections, each a responsive grid of small square
   thumbnails with a title beneath. Whitespace-separated.
   Self-contained .cl-* classes.
   ========================================================= */

.cl-group {
  margin-bottom: var(--space-section-y-tight);
}

.cl-group:last-child {
  margin-bottom: 0;
}

.cl-group-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-row-sm) var(--space-row-lg);
  margin-bottom: var(--space-section-head);
  padding-bottom: var(--space-row-md);
  border-bottom: 1.5px solid color-mix(in srgb, var(--page-fg), transparent 78%);
}

.cl-group-head h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--type-heading-md);
  letter-spacing: var(--tracking-heading-soft);
  line-height: var(--leading-heading);
}

.cl-group-head .cl-count {
  font-size: var(--type-micro);
  font-weight: 700;
  letter-spacing: var(--tracking-kicker);
  text-transform: uppercase;
  opacity: 0.45;
}

.cl-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-grid-md) var(--space-row-lg);
}

.cl-item {
  display: block;
  text-decoration: none;
  color: inherit;
}

.cl-thumb {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--radius-media);
  background: color-mix(in srgb, var(--page-fg), transparent 88%);
}

.cl-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--duration-slower) var(--ease);
}

.cl-item:hover .cl-thumb img,
.cl-item:focus-visible .cl-thumb img {
  transform: scale(1.05);
}

.cl-item strong {
  display: block;
  margin-top: var(--space-row-sm);
  font-weight: 600;
  font-size: var(--type-body);
  line-height: var(--leading-body-tight);
  transition: color var(--duration-hover-fast) var(--ease);
}

.cl-item:hover strong,
.cl-item:focus-visible strong {
  color: var(--pr-rocket);
}

.cl-item span {
  display: block;
  margin-top: calc(var(--radius-xs) / 2);
  font-size: var(--type-micro);
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  opacity: 0.45;
}

@media (max-width: 900px) {
  .cl-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .cl-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
