/**
 * Galerie [[media-gallery:]] — kolory/cienie z palety (--color-*). Lightbox: media-gallery-lightbox.js.
 */
:root {
  --mg-shadow-soft: 0 10px 26px rgba(var(--color-shadow-rgb, 15 23 42), 0.09);
  --mg-shadow-elevated: 0 22px 50px rgba(var(--color-shadow-rgb, 15 23 42), 0.14);
}
.media-gallery-lb-open { overflow: hidden; }

.media-gallery {
  margin: 1.35rem 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--mg-shell-pad-y, 0) var(--mg-shell-pad-x, 0);
  gap: var(--mg-shell-inner-gap, 0);
  border-radius: var(--mg-shell-radius, 12px);
  border: var(--mg-shell-border-w, 1px) solid var(--mg-shell-border-color, var(--color-border));
  background: linear-gradient(color-mix(in srgb, var(--mg-surface, var(--color-surface-soft)) 92%, transparent), var(--mg-surface, var(--color-surface-soft)));
  box-shadow: var(--mg-shell-shadow, none);
  color: var(--mg-text, var(--color-text));
}
.media-gallery .media-gallery__figcaption {
  font-size: 0.82rem;
  color: var(--mg-muted, var(--color-text-muted));
  margin-top: 0.42rem;
  line-height: 1.32;
}
.media-gallery .media-gallery__figcaption.media-gallery__figcaption--hover:not(:hover):not(:focus-within) {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
}
.media-gallery .media-gallery__figcaption.media-gallery__figcaption-align--start { text-align: left; }
.media-gallery .media-gallery__figcaption.media-gallery__figcaption-align--center { text-align: center; }
.media-gallery .media-gallery__figcaption.media-gallery__figcaption-align--end { text-align: right; }
.media-gallery__hit {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  display: block;
  width: 100%;
  cursor: zoom-in;
  background: transparent;
  border-radius: var(--mg-img-radius, 8px);
  overflow: hidden;
}
.media-gallery__link {
  display: block;
  border-radius: var(--mg-img-radius, 8px);
  overflow: hidden;
}
.media-gallery .media-gallery__figure { margin: 0; position: relative; }
.media-gallery.media-gallery--img-contain { --mg-img-object: contain; }

.media-gallery .media-gallery__figure:not(.media-gallery__figure--ar-auto) picture,
.media-gallery .media-gallery__figure:not(.media-gallery__figure--ar-auto) .media-gallery__hit picture,
.media-gallery .media-gallery__figure:not(.media-gallery__figure--ar-auto) .media-gallery__link picture {
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: var(--mg-img-radius, 8px);
}
.media-gallery .media-gallery__figure:not(.media-gallery__figure--ar-auto) picture img,
.media-gallery .media-gallery__figure:not(.media-gallery__figure--ar-auto) .media-gallery__hit img,
.media-gallery .media-gallery__figure:not(.media-gallery__figure--ar-auto) .media-gallery__link img {
  width: 100%;
  height: 100%;
  object-fit: var(--mg-img-object, cover);
  aspect-ratio: var(--mg-aspect-ratio, auto);
  display: block;
  transition: transform var(--mg-slider-slide-ms, 460ms) ease;
}
.media-gallery:not(.media-gallery--hover-none) .media-gallery__hit:hover img,
.media-gallery:not(.media-gallery--hover-none) .media-gallery__link:hover img {
  transform: scale(var(--mg-hover-zoom, 1));
}
.media-gallery.media-gallery--hover-glow .media-gallery__hit:hover img {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--mg-accent, var(--color-primary)) 35%, transparent);
}
.media-gallery .media-gallery__slider-viewport {
  position: relative;
  border-radius: calc(max(4px, var(--mg-shell-radius, 14px) - 4px));
  overflow: hidden;
  background: color-mix(in srgb, var(--mg-surface, var(--color-surface-soft)) 55%, transparent);
}
.media-gallery .media-gallery__slider-track {
  display: flex;
  gap: var(--mg-slider-gap, 12px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--mg-accent, var(--color-primary)) 42%, transparent) transparent;
}
.media-gallery .media-gallery__slider-track { --mg-slide-spv: var(--mg-slider-spv-mobile, 1); }
@media (min-width: 768px) { .media-gallery .media-gallery__slider-track { --mg-slide-spv: var(--mg-slider-spv-tablet, 1.5); } }
@media (min-width: 992px) { .media-gallery .media-gallery__slider-track { --mg-slide-spv: var(--mg-slider-spv-desktop, 2.2); } }
.media-gallery .media-gallery__slide {
  flex: 0 0 calc((100% - (max(0, var(--mg-slide-spv, 1) - 1) * var(--mg-slider-gap))) / var(--mg-slide-spv, 1));
  min-width: 0;
  scroll-snap-align: start;
}
.media-gallery .media-gallery__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 2.55rem;
  height: 2.55rem;
  border: 1px solid var(--mg-shell-border-color, var(--color-border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-surface) 93%, transparent);
  box-shadow: 0 8px 22px rgba(var(--color-shadow-rgb, 0 0 0), 0.12);
  cursor: pointer;
  font-size: 1.35rem;
  line-height: 1;
  color: var(--mg-accent, var(--color-primary));
}
.media-gallery .media-gallery__nav--prev { left: 0.4rem; }
.media-gallery .media-gallery__nav--next { right: 0.4rem; }

.media-gallery .media-gallery__grid {
  display: grid;
  gap: var(--mg-gap, 0.65rem);
  grid-template-columns: repeat(var(--mg-cols-mobile, 2), minmax(0, 1fr));
}
@media (min-width: 768px) { .media-gallery .media-gallery__grid { grid-template-columns: repeat(var(--mg-cols-tablet, 3), minmax(0, 1fr)); } }
@media (min-width: 992px) { .media-gallery .media-gallery__grid { grid-template-columns: repeat(var(--mg-cols-desktop, 4), minmax(0, 1fr)); } }
.media-gallery.media-gallery--gap-sm { --mg-gap: 0.35rem; }
.media-gallery.media-gallery--gap-md { --mg-gap: 0.65rem; }
.media-gallery.media-gallery--gap-lg { --mg-gap: 1rem; }
.media-gallery.media-gallery--gap-xl { --mg-gap: 1.35rem; }

.media-gallery .media-gallery__strip { display: flex; gap: var(--mg-gap); overflow-x: auto; padding-bottom: 0.4rem; scroll-snap-type: x proximity; }
.media-gallery .media-gallery__strip-item { flex: 0 0 min(92vw, var(--mg-strip-w, 360px)); scroll-snap-align: start; }

.media-gallery .media-gallery__masonry {
  column-count: var(--mg-cols-mobile, 2);
  column-gap: var(--mg-gap);
}
@media (min-width:768px){ .media-gallery .media-gallery__masonry { column-count: var(--mg-cols-tablet, 3); } }
@media (min-width:992px){ .media-gallery .media-gallery__masonry { column-count: var(--mg-cols-desktop, 4); } }
.media-gallery .media-gallery__brick { break-inside: avoid; margin-bottom: var(--mg-gap); }

.media-gallery .media-gallery__collage {
  display: grid; grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: minmax(96px, auto); gap: var(--mg-gap);
}
.media-gallery.media-gallery--collage-dense .media-gallery__collage { gap: calc(var(--mg-gap) * 0.7); }
@media (max-width:767.98px){ .media-gallery .media-gallery__collage { grid-template-columns: repeat(2,1fr); grid-auto-rows:auto; } }
.media-gallery__collage-cell--0 { grid-column: span 3; grid-row: span 2; }
.media-gallery__collage-cell--1 { grid-column: span 3; }
.media-gallery__collage-cell--2 { grid-column: span 2; }
.media-gallery__collage-cell--3 { grid-column: span 2; }
.media-gallery__collage-cell--4 { grid-column: span 3; }
@media (max-width:767.98px){
  .media-gallery__collage-cell--0,.media-gallery__collage-cell--1,.media-gallery__collage-cell--2,.media-gallery__collage-cell--3,.media-gallery__collage-cell--4
  { grid-column: span 1; grid-row:auto; }
}
.media-gallery.media-gallery--anim-fade .media-gallery__cell { animation: mgFade 0.55s ease forwards; opacity:0; transform:translateY(6px);}
@keyframes mgFade { to { opacity:1; transform:none; }}

.media-gallery.media-gallery--error { padding: 1rem; border-radius: 10px; background: color-mix(in srgb,#c62828 8%,var(--color-surface)); color:#7f1d1d; }

.media-gallery-lb {
  position: fixed;
  inset: 0;
  z-index: 2147481646;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  padding: 0;
  animation: mgLbFadeIn 0.22s ease;
}
.media-gallery-lb[hidden] { display: none !important; }
@keyframes mgLbFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.media-gallery-lb__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 10, 16, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.media-gallery-lb__frame {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  min-height: 100dvh;
  padding: 0;
  margin: 0;
}
.media-gallery-lb__close {
  position: absolute;
  top: max(0.75rem, env(safe-area-inset-top, 0px));
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  z-index: 4;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  cursor: pointer;
  font-size: 1.65rem;
  line-height: 1;
  display: grid;
  place-items: center;
  transition: background 0.18s ease, border-color 0.18s ease;
}
.media-gallery-lb__close:hover {
  background: rgba(0, 0, 0, 0.72);
  border-color: rgba(255, 255, 255, 0.5);
}
.media-gallery-lb__stage {
  flex: 1 1 auto;
  display: grid;
  place-items: center;
  min-height: 0;
  width: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden;
  background: transparent;
}
.media-gallery-lb__pic {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.media-gallery-lb__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100vw;
  max-height: 100dvh;
  object-fit: contain;
  object-position: center center;
  margin: 0;
  padding: 0;
  user-select: none;
  -webkit-user-drag: none;
}
.media-gallery-lb__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(0, 0, 0, 0.42);
  color: #fff;
  cursor: pointer;
  font-size: 1.55rem;
  line-height: 1;
  display: grid;
  place-items: center;
  transition: background 0.18s ease, border-color 0.18s ease;
}
.media-gallery-lb__nav:hover {
  background: rgba(0, 0, 0, 0.72);
  border-color: rgba(255, 255, 255, 0.5);
}
.media-gallery-lb__nav--prev {
  left: max(0.65rem, env(safe-area-inset-left, 0px));
}
.media-gallery-lb__nav--next {
  right: max(0.65rem, env(safe-area-inset-right, 0px));
}
.media-gallery-lb__footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  padding: 2.75rem max(1rem, env(safe-area-inset-right, 0px)) max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
  background: linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.42) 55%, transparent 100%);
  pointer-events: none;
}
.media-gallery-lb__counter {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}
.media-gallery-lb__caption {
  margin: 0;
  max-width: min(720px, 100%);
  font-size: clamp(0.9375rem, 2.2vw, 1.0625rem);
  line-height: 1.45;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}
@media (min-width: 768px) {
  .media-gallery-lb__nav { width: 3rem; height: 3rem; font-size: 1.75rem; }
  .media-gallery-lb__close { width: 3rem; height: 3rem; }
}
