/*----------------------
  MythicRealmsPL Gallery Styles
------------------------*/
.gallery-hero {
  background: linear-gradient(90deg, #221e2b 80%, #6854a6 100%);
  padding: var(--space-16) 0 var(--space-12) 0;
  text-align: center;
}
.gallery-title {
  margin-bottom: var(--space-4);
  color: var(--color-primary);
  letter-spacing: 0.03em;
  font-size: var(--font-size-3xl);
}
.gallery-intro {
  color: var(--color-gray-200);
  max-width: 55ch;
  margin: 0 auto;
  font-size: var(--font-size-lg);
  margin-bottom: var(--space-6);
}
.gallery-section {
  margin: var(--space-16) 0;
}
.gallery-section .container {
  padding-top: var(--space-6);
  padding-bottom: var(--space-6);
}
.gallery-featured-artworks .artwork-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-8);
  margin-top: var(--space-6);
}
.artwork-item {
  box-shadow: var(--shadow-md);
  overflow: hidden;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  transition: box-shadow var(--transition-fast);
}
.artwork-item img {
  width: 100%;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.artwork-item figcaption {
  padding: var(--space-4);
  font-size: var(--font-size-md);
  background: var(--color-gray-700);
  color: var(--color-gray-100);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  min-height: 80px;
}
.pantheon-portraits .pantheon-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--space-8);
  list-style: none;
  padding: 0;
  margin-top: var(--space-6);
}
.pantheon-item {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  min-height: 360px;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-md);
  overflow: hidden;
  transition: box-shadow var(--transition-fast);
}
.pantheon-item img {
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
  width: 100%;
  max-height: 215px;
  object-fit: cover;
}
.pantheon-desc {
  padding: var(--space-4);
  flex: 1;
}
.artist-credit {
  font-style: italic;
  color: var(--color-primary);
}
.game-in-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--space-8);
  margin-top: var(--space-6);
}
.action-item {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.action-item img, .action-item video {
  width: 100%;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  display: block;
  max-height: 250px;
  object-fit: cover;
}
.action-item figcaption {
  background: var(--color-gray-700);
  color: var(--color-gray-100);
  padding: var(--space-4);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  min-height: 60px;
}
.collectors-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  justify-content: flex-start;
  margin-top: var(--space-6);
}
.collector-item {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  flex: 1 1 330px;
  max-width: 410px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.collector-item .zoom-btn {
  display: block;
  background: transparent;
  border: none;
  padding: 0;
  cursor: zoom-in;
  outline: none;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.collector-item .zoom-btn img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  transition: filter var(--transition-fast);
}
.collector-item .zoom-btn:focus-visible img,
.collector-item .zoom-btn:hover img {
  filter: brightness(1.08) drop-shadow(0 0 14px #b5852b88);
}
.collector-desc {
  padding: var(--space-4);
  background: var(--color-gray-700);
  color: var(--color-gray-100);
  flex: 1 1 120px;
}
.zoom-modal {
  position: fixed;
  inset: 0;
  background: rgba(18,12,28,0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3000;
  backdrop-filter: blur(3px);
  animation: fadeInZoom 0.22s var(--transition-base);
}
@keyframes fadeInZoom { 0% { opacity: 0; } 100% { opacity: 1; } }
.zoom-modal-backdrop {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 1;
  cursor: pointer;
}
.zoom-modal-content {
  z-index: 2;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  max-width: 730px;
  padding: var(--space-6);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.zoom-modal-content img {
  max-width: 100%;
  max-height: 66vh;
  border-radius: var(--radius-md);
  margin-bottom: var(--space-4);
}
.zoom-modal-content figcaption {
  color: var(--color-gray-200);
  font-size: var(--font-size-lg);
  margin-bottom: var(--space-4);
}
.zoom-close {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  background: var(--color-danger);
  color: #fff;
  border: none;
  font-size: 2rem;
  border-radius: var(--radius-sm);
  width: 2.4rem;
  height: 2.4rem;
  z-index: 6;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zoom-close:focus-visible,
.zoom-close:hover {
  background: var(--color-warning);
}
.behind-scenes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
  gap: var(--space-8);
  margin-top: var(--space-6);
}
.bts-item {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.bts-item img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.bts-item figcaption {
  color: var(--color-gray-200);
  background: var(--color-gray-700);
  padding: var(--space-4);
  font-size: var(--font-size-md);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}
.bts-artist {
  font-style: italic;
  color: var(--color-warning);
}
.community-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-8);
  margin-top: var(--space-6);
}
.community-item {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
}
.community-item img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}
.community-item figcaption {
  background: var(--color-gray-700);
  color: var(--color-gray-100);
  padding: var(--space-4);
  min-height: 70px;
}
.community-comment {
  display: inline-block;
  color: var(--color-primary);
  font-style: italic;
  margin-top: var(--space-2);
}
.cultural-highlights-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: var(--space-8);
  margin-top: var(--space-6);
}
.cultural-card {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.cultural-card img {
  width: 100%;
  object-fit: cover;
  height: 150px;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.cultural-card > div {
  padding: var(--space-4);
}
.cultural-card h3 {
  font-size: var(--font-size-lg);
  margin-bottom: var(--space-2);
  color: var(--color-primary);
}
@media (max-width: 700px) {
  .gallery-title { font-size: var(--font-size-2xl); }
  .artwork-item figcaption, .action-item figcaption, .pantheon-desc, .collector-desc, .bts-item figcaption, .community-item figcaption, .cultural-card > div { font-size: var(--font-size-md); }
  .collectors-grid { flex-direction: column; align-items: stretch; }
  .collector-item, .cultural-card { max-width: unset; }
}
