body.bazarek-lightbox-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

.bazarek-gallery-host {
  position: relative;
}

.bazarek-gallery-main-image {
  cursor: zoom-in;
  user-select: none;
  -webkit-user-drag: none;
}

.bazarek-gallery-main-image:focus-visible {
  outline: 3px solid rgb(23 118 92 / 0.9);
  outline-offset: -4px;
}

.bazarek-inline-gallery-controls[hidden],
.bazarek-lightbox-nav[hidden],
.bazarek-lightbox-thumbnails[hidden] {
  display: none !important;
}

.bazarek-inline-gallery-controls {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0.65rem;
}

.bazarek-inline-gallery-button {
  pointer-events: auto;
  display: inline-flex;
  width: 2.85rem;
  height: 2.85rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(255 255 255 / 0.72);
  border-radius: 999px;
  background: rgb(18 24 21 / 0.76);
  box-shadow: 0 6px 22px rgb(0 0 0 / 0.25);
  color: #fff;
  cursor: pointer;
  font: 500 2rem/1 Arial, sans-serif;
  opacity: 0.92;
  transition: background-color 140ms ease, opacity 140ms ease, transform 140ms ease;
  -webkit-tap-highlight-color: transparent;
}

.bazarek-inline-gallery-button:hover,
.bazarek-inline-gallery-button:focus-visible {
  background: rgb(23 118 92 / 0.94);
  opacity: 1;
  outline: 3px solid rgb(255 255 255 / 0.9);
  outline-offset: 2px;
  transform: scale(1.05);
}

.bazarek-inline-gallery-counter {
  position: absolute;
  right: 0.8rem;
  bottom: 0.75rem;
  min-width: 3.4rem;
  border: 1px solid rgb(255 255 255 / 0.42);
  border-radius: 999px;
  background: rgb(18 24 21 / 0.74);
  color: #fff;
  font: 700 0.78rem/1.2 "Source Sans 3", Arial, sans-serif;
  letter-spacing: 0.03em;
  padding: 0.42rem 0.65rem;
  text-align: center;
}

.bazarek-inline-zoom-hint {
  pointer-events: none;
  position: absolute;
  left: 0.8rem;
  bottom: 0.75rem;
  z-index: 3;
  border: 1px solid rgb(255 255 255 / 0.42);
  border-radius: 999px;
  background: rgb(18 24 21 / 0.74);
  color: #fff;
  font: 700 0.78rem/1.2 "Source Sans 3", Arial, sans-serif;
  padding: 0.42rem 0.65rem;
}

.bazarek-photo-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-width: 0;
  min-height: 0;
  background: rgb(10 15 13 / 0.97);
  color: #fff;
  opacity: 0;
  visibility: hidden;
  transition: opacity 160ms ease, visibility 160ms ease;
}

.bazarek-photo-lightbox[hidden] {
  display: none !important;
}

.bazarek-photo-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}

.bazarek-lightbox-toolbar {
  position: relative;
  z-index: 3;
  display: flex;
  min-height: 4.25rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: max(0.8rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) 0.75rem max(1rem, env(safe-area-inset-left));
  background: linear-gradient(to bottom, rgb(0 0 0 / 0.52), transparent);
}

.bazarek-lightbox-counter {
  font: 700 0.95rem/1.2 "Source Sans 3", Arial, sans-serif;
  letter-spacing: 0.02em;
}

.bazarek-lightbox-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.bazarek-lightbox-action,
.bazarek-lightbox-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(255 255 255 / 0.42);
  border-radius: 999px;
  background: rgb(255 255 255 / 0.13);
  color: #fff;
  cursor: pointer;
  font-family: Arial, sans-serif;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 140ms ease, border-color 140ms ease, transform 140ms ease;
}

.bazarek-lightbox-action {
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.7rem;
  line-height: 1;
}

.bazarek-lightbox-action:hover,
.bazarek-lightbox-action:focus-visible,
.bazarek-lightbox-nav:hover,
.bazarek-lightbox-nav:focus-visible {
  border-color: rgb(255 255 255 / 0.9);
  background: rgb(23 118 92 / 0.92);
  outline: 3px solid rgb(255 255 255 / 0.9);
  outline-offset: 2px;
  transform: scale(1.04);
}

.bazarek-lightbox-stage {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  outline: none;
  touch-action: pan-y pinch-zoom;
  user-select: none;
}

.bazarek-lightbox-stage.is-zoomed {
  cursor: grab;
  touch-action: none;
}

.bazarek-lightbox-stage.is-dragging {
  cursor: grabbing;
}

.bazarek-lightbox-image-wrap {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0.4rem clamp(1rem, 7vw, 6rem);
}

.bazarek-lightbox-image {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  cursor: zoom-in;
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  transform-origin: center center;
  transition: transform 180ms ease, opacity 120ms ease;
  will-change: transform;
  -webkit-user-drag: none;
}

.bazarek-lightbox-image.is-loading {
  opacity: 0.58;
}

.bazarek-lightbox-stage.is-zoomed .bazarek-lightbox-image {
  cursor: inherit;
}

.bazarek-lightbox-stage.is-dragging .bazarek-lightbox-image {
  transition: none;
}

.bazarek-lightbox-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 3.25rem;
  height: 3.25rem;
  margin-top: -1.625rem;
  font-size: 2.4rem;
  line-height: 1;
}

.bazarek-lightbox-prev {
  left: max(0.75rem, env(safe-area-inset-left));
}

.bazarek-lightbox-next {
  right: max(0.75rem, env(safe-area-inset-right));
}

.bazarek-lightbox-footer {
  position: relative;
  z-index: 3;
  padding: 0.65rem max(1rem, env(safe-area-inset-right)) max(0.75rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  background: linear-gradient(to top, rgb(0 0 0 / 0.58), transparent);
}

.bazarek-lightbox-help {
  margin: 0 0 0.55rem;
  color: rgb(255 255 255 / 0.76);
  font: 500 0.82rem/1.25 "Source Sans 3", Arial, sans-serif;
  text-align: center;
}

.bazarek-lightbox-thumbnails {
  display: flex;
  max-width: min(100%, 58rem);
  align-items: center;
  gap: 0.55rem;
  margin: 0 auto;
  padding: 0.2rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}

.bazarek-lightbox-thumbnail {
  flex: 0 0 4.35rem;
  width: 4.35rem;
  height: 3.45rem;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 0.55rem;
  background: rgb(255 255 255 / 0.1);
  cursor: pointer;
  opacity: 0.68;
  padding: 0;
  scroll-snap-align: center;
  transition: border-color 140ms ease, opacity 140ms ease, transform 140ms ease;
}

.bazarek-lightbox-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bazarek-lightbox-thumbnail:hover,
.bazarek-lightbox-thumbnail:focus-visible,
.bazarek-lightbox-thumbnail.is-active {
  border-color: #6ee7b7;
  opacity: 1;
  outline: none;
  transform: translateY(-1px);
}

@media (max-width: 640px) {
  .bazarek-inline-gallery-controls {
    padding-inline: 0.45rem;
  }

  .bazarek-inline-gallery-button {
    width: 2.65rem;
    height: 2.65rem;
    font-size: 1.85rem;
  }

  .bazarek-inline-zoom-hint {
    left: 0.6rem;
    bottom: 0.55rem;
  }

  .bazarek-inline-gallery-counter {
    right: 0.6rem;
    bottom: 0.55rem;
  }

  .bazarek-lightbox-toolbar {
    min-height: 3.8rem;
  }

  .bazarek-lightbox-image-wrap {
    padding: 0.25rem 0.3rem;
  }

  .bazarek-lightbox-nav {
    top: auto;
    bottom: 0.65rem;
    width: 3rem;
    height: 3rem;
    margin-top: 0;
    background: rgb(12 18 15 / 0.72);
    font-size: 2.15rem;
  }

  .bazarek-lightbox-help {
    display: none;
  }

  .bazarek-lightbox-thumbnail {
    flex-basis: 3.85rem;
    width: 3.85rem;
    height: 3.15rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bazarek-photo-lightbox,
  .bazarek-lightbox-image,
  .bazarek-inline-gallery-button,
  .bazarek-lightbox-action,
  .bazarek-lightbox-nav,
  .bazarek-lightbox-thumbnail {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
