/* Album cover grid layout with breakpoint-controlled column counts */
.main-content .genre-grid {
  display: grid;
  padding: 0;
  margin: 1.75rem 0rem 0rem 0rem;
}

.genre-grid li {
  max-width: fit-content; /* match width of child figure */
}

.genre-grid {
  gap: 0rem min(7.5svw, 1.4rem);
  /* centre the figures */
  justify-items: center;
}

.genre-item {
  /* remove default <figure> padding and margin */
  margin: 0rem;
  padding: 0rem;
}

/* Genre Label Structure */
.genre-item figcaption {
  margin: 0.5rem 0rem 1rem 0rem;
  padding: 0rem;
  letter-spacing: 0.5px;
  text-align: center;
  line-height: 1.2rem;
  text-transform: capitalize;
}

/* Album Covers */
.genre-item img {
  max-width: 180px;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 0;
  opacity: 100%;
  transition: opacity 0.15s ease, filter 0.15s ease;
  filter: grayscale(0%);
}

/* === Container queries for body-container === */
/* ===
       NB. These are used as a "workaround" because
        container queries correctly support rem units,
        while media queries do not recognise scaled rems.
        
        Basically, "@container body-container" replaces "@media"
=== */

/* Change grid layout at key breakpoints */

/* 5×4 layout */
/* @media (min-width: 750px) { */
@container body-container (min-width: 46.876rem) {
  .genre-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}
/* 4×5 layout */
/* @media (min-width: 481px) and (max-width: 750px) { */
@container body-container (min-width: 30.001rem) and (max-width: 46.875rem) {
  .genre-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0rem min(7.5svw, 1.4rem);
  }
}
/* 2×10 layout */
/* @media (max-width: 480px) { */
@container body-container (max-width: 30rem) {
  .genre-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0rem 0rem;
  }
}
/* @media (max-width: 440px) { */
@container body-container (max-width: 27.5rem) {
  .genre-grid {
    gap: 0rem min(7.5svw, 1.4rem);
  }
}
/* 1×20 layout */
/* @media (max-width: 260px) { */
@container body-container (max-width: 16.25rem) {
  .genre-grid {
    grid-template-columns: 1fr;
  }
}

/* Desktop media query for hover and pointer */
@media (hover: hover) and (pointer: fine) {
  .genre-item:hover img {
	filter: grayscale(100%);
    /* opacity: 40%; */
  }
}

/* Mobile override media query */
@media (hover: none) and (pointer: coarse) {
  .genre-item img {
    opacity: 100%;
	filter: none;
  }
}
