/* ==========================================================================
   UA Living Spec Book: mood board section styles (.sb-mood)
   Collage grids for the standalone mood-board section type: auto-fill
   columns, an editorial 2x2 lead tile on wide viewports, captions and
   credits under each image, and ink-background word tiles. Consumes tokens
   from css/tokens.css only; independent of the concept section's
   .sb-moodboard styles.
   ========================================================================== */

.sb-mood + .sb-mood {
  margin-top: var(--ua-s7);
}

.sb-mood__note {
  margin: calc(-1 * var(--ua-s2)) 0 var(--ua-s4);
  max-width: 62ch;
  font-size: var(--ua-fs-small);
  font-weight: 200;
  line-height: 1.6;
}

/* ----------------------------------------------------------------------
   Collage grid
   ---------------------------------------------------------------------- */
.sb-mood__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  grid-auto-flow: dense;
  gap: var(--ua-s4);
}

.sb-mood__item {
  display: flex;
  flex-direction: column;
  gap: var(--ua-s2);
  margin: 0;
  min-width: 0;
}

/* The image slot: square by default, stretching to even out each row. */
.sb-mood__trigger {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  aspect-ratio: 1 / 1;
  padding: 0;
  border: 0;
  border-radius: var(--ua-radius);
  background: var(--ua-line-soft);
  overflow: hidden;
  cursor: zoom-in;
}

.sb-mood__trigger img,
.sb-mood__trigger .ua-img-fallback {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--ua-slow) var(--ua-ease);
}

.sb-mood__trigger:hover img,
.sb-mood__trigger:focus-visible img {
  transform: scale(1.03);
}

/* Editorial lead: the first tile of each board reads 2x2 on wide screens. */
@media (min-width: 760px) {
  .sb-mood__grid > .sb-mood__item:first-child {
    grid-column: span 2;
    grid-row: span 2;
  }

  .sb-mood__grid > .sb-mood__item:first-child .sb-mood__trigger,
  .sb-mood__grid > .sb-mood__item:first-child .sb-mood__words {
    min-height: 16rem;
  }
}

/* ----------------------------------------------------------------------
   Caption + credit under the tile
   ---------------------------------------------------------------------- */
.sb-mood__meta {
  display: grid;
  gap: 2px;
  padding-inline: var(--ua-s1);
}

.sb-mood__caption {
  font-size: var(--ua-fs-small);
  font-weight: 200;
  line-height: 1.5;
  color: var(--ua-text);
}

.sb-mood__credit {
  font-size: var(--ua-fs-tiny);
  letter-spacing: 0.03em;
}

/* ----------------------------------------------------------------------
   Word tiles: caption-only items on the ink background
   ---------------------------------------------------------------------- */
.sb-mood__words {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  aspect-ratio: 1 / 1;
  padding: var(--ua-s5);
  border-radius: var(--ua-radius);
  background: var(--ua-ink);
  color: var(--ua-text-on-ink);
  text-align: center;
}

.sb-mood__words p {
  margin: 0;
  font-family: var(--ua-font-display);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 400;
  letter-spacing: var(--ua-tracking-display);
  line-height: 1.35;
}

/* ----------------------------------------------------------------------
   Responsive
   ---------------------------------------------------------------------- */
@media (max-width: 560px) {
  .sb-mood__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ua-s3);
  }

  .sb-mood__words {
    padding: var(--ua-s4);
  }

  .sb-mood__words p {
    font-size: 1.05rem;
  }
}

/* ----------------------------------------------------------------------
   Reduced motion
   ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .sb-mood__trigger img,
  .sb-mood__trigger .ua-img-fallback {
    transition: none;
  }

  .sb-mood__trigger:hover img,
  .sb-mood__trigger:focus-visible img {
    transform: none;
  }
}
