/* Photo strip under an article (mod_kunsangar_gallery). Uses the --ks-* tokens
 * of the kunsangar template and falls back to plain values without them. */

.ks-gallery {
  margin: var(--ks-space-7, 3rem) auto var(--ks-space-6, 2rem);
  max-width: 880px;
  padding: 0 var(--ks-space-2, 0.5rem);
}

.ks-gallery__heading {
  font-family: var(--ks-font-heading, Georgia, serif);
  font-size: var(--ks-fs-h3, 1.7rem);
  font-weight: 500;
  margin: 0 0 var(--ks-space-4, 1rem);
}

.ks-gallery__grid {
  display: grid;
  gap: var(--ks-space-3, 0.75rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.ks-gallery__item[hidden] {
  display: none;
}

.ks-gallery__open {
  aspect-ratio: 4 / 3;
  background: var(--ks-bg-soft, #eee9e0);
  border: 0;
  border-radius: var(--ks-radius-md, 12px);
  cursor: zoom-in;
  display: block;
  overflow: hidden;
  padding: 0;
  width: 100%;
}

.ks-gallery__open img {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 300ms ease;
  width: 100%;
}

.ks-gallery__open:hover img {
  transform: scale(1.03);
}

.ks-gallery__open:focus-visible {
  box-shadow: var(--ks-focus, 0 0 0 3px rgb(184 149 79 / 45%));
  outline: none;
}

.ks-gallery__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ks-space-4, 1rem);
  margin-top: var(--ks-space-4, 1rem);
}

.ks-gallery__archive {
  font-weight: 600;
  text-decoration: none;
}

.ks-gallery__archive:hover {
  text-decoration: underline;
}

.ks-gallery__caption a {
  color: #f3d9a4;
  margin-left: 0.5rem;
  white-space: nowrap;
}

.ks-gallery__dialog {
  background: transparent;
  border: 0;
  height: 100vh;
  margin: 0;
  max-height: none;
  max-width: none;
  padding: 0;
  width: 100vw;
}

.ks-gallery__dialog::backdrop {
  background: rgb(20 18 16 / 92%);
}

.ks-gallery__dialog[open] {
  align-items: center;
  display: flex;
  justify-content: center;
}

.ks-gallery__figure {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: var(--ks-space-3, 0.75rem);
  margin: 0;
  max-height: 100%;
  padding: var(--ks-space-6, 2rem) var(--ks-space-8, 4rem);
  pointer-events: none;
}

.ks-gallery__full {
  height: auto;
  max-height: calc(100vh - 7rem);
  max-width: 100%;
  object-fit: contain;
  pointer-events: auto;
  width: auto;
}

.ks-gallery__caption {
  color: #efe9df;
  font-family: var(--ks-font-body, Arial, sans-serif);
  font-size: var(--ks-fs-sm, 0.9rem);
  text-align: center;
}

.ks-gallery__nav,
.ks-gallery__close {
  background: rgb(255 255 255 / 12%);
  border: 0;
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  font-size: 2rem;
  height: 48px;
  line-height: 1;
  position: fixed;
  width: 48px;
}

.ks-gallery__nav:hover,
.ks-gallery__close:hover {
  background: rgb(255 255 255 / 24%);
}

.ks-gallery__nav:focus-visible,
.ks-gallery__close:focus-visible {
  box-shadow: var(--ks-focus, 0 0 0 3px rgb(184 149 79 / 45%));
  outline: none;
}

.ks-gallery__nav--prev {
  left: var(--ks-space-4, 1rem);
  top: 50%;
  transform: translateY(-50%);
}

.ks-gallery__nav--next {
  right: var(--ks-space-4, 1rem);
  top: 50%;
  transform: translateY(-50%);
}

.ks-gallery__close {
  right: var(--ks-space-4, 1rem);
  top: var(--ks-space-4, 1rem);
}

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

  .ks-gallery__figure {
    padding: var(--ks-space-7, 3rem) var(--ks-space-2, 0.5rem) var(--ks-space-5, 1.5rem);
  }

  .ks-gallery__nav {
    bottom: var(--ks-space-4, 1rem);
    top: auto;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ks-gallery__open img {
    transition: none;
  }
}
