/* Shared photo gallery grid (library-style) — used on library, campus life, and resource pages */

.lib-gallery-grid {
  display: grid;
  gap: 1.15rem;
  width: 100%;
  margin: 0.5rem 0 1rem;
}

.lib-gallery-grid-item {
  margin: 0;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid var(--gray-200);
  box-shadow: 0 16px 40px rgba(30, 58, 95, 0.1);
  background: var(--white);
  min-height: 200px;
}

.lib-gallery-grid-item img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 200px;
  object-fit: cover;
}

.lib-gallery-grid--one {
  grid-template-columns: 1fr;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.lib-gallery-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lib-gallery-grid--many {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

@media (min-width: 992px) {
  .lib-gallery-grid--many {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 210px;
  }

  .lib-gallery-grid--many .lib-gallery-grid-item:first-child {
    grid-column: span 2;
    grid-row: span 2;
    min-height: 430px;
  }

  .lib-gallery-grid--many .lib-gallery-grid-item:first-child img {
    min-height: 430px;
  }
}

@media (max-width: 640px) {
  .lib-gallery-grid--two {
    grid-template-columns: 1fr;
  }
}
