.vv-masonry {
  container-type: inline-size;
}

.vv-masonry--cols-2 {
  --vv-masonry-wide-columns: 2;
}

.vv-masonry--cols-3 {
  --vv-masonry-wide-columns: 3;
}

.vv-masonry--cols-4 {
  --vv-masonry-wide-columns: 4;
}

.vv-masonry--captions-overlay {
  --vv-masonry-caption-position: absolute;
  --vv-masonry-caption-inset: auto 0 0 0;
  --vv-masonry-caption-padding: var(--vv-masonry-overlay-padding, 2.5rem 0.875rem 0.75rem);
  --vv-masonry-caption-bg: var(--vv-masonry-overlay-bg, linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0)));
  --vv-masonry-caption-color: var(--vv-masonry-overlay-color, #fff);
  --vv-masonry-caption-title-color: var(--vv-masonry-overlay-color, #fff);
  --vv-masonry-caption-opacity: 0;
}

.vv-masonry__grid {
  -moz-columns: var(--vv-masonry-columns, 1);
  columns: var(--vv-masonry-columns, 1);
  -moz-column-gap: var(--vv-masonry-gap, 1rem);
  column-gap: var(--vv-masonry-gap, 1rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

@container (min-width: 20rem) {
  .vv-masonry__grid {
    --vv-masonry-columns: 2;
  }
}
@container (min-width: 48rem) {
  .vv-masonry__grid {
    --vv-masonry-columns: var(--vv-masonry-wide-columns, 3);
  }
}
.vv-masonry__item {
  margin: 0 0 var(--vv-masonry-gap, 1rem);
  -moz-column-break-inside: avoid;
  break-inside: avoid;
}

.vv-masonry__figure {
  position: relative;
  margin: 0;
}

.vv-masonry__figure:hover,
.vv-masonry__figure:focus-within {
  --vv-masonry-caption-opacity: 1;
}

.vv-masonry__link {
  display: block;
  overflow: hidden;
  border-radius: var(--vv-masonry-radius, 0.5rem);
  color: inherit;
}

.vv-masonry__link:hover {
  --vv-masonry-zoom: 1.03;
}

.vv-masonry__link:focus-visible {
  outline: var(--vv-masonry-focus-width, 2px) solid var(--vv-masonry-focus-color, currentColor);
  outline-offset: var(--vv-masonry-focus-offset, 2px);
}

.vv-masonry__image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--vv-masonry-radius, 0.5rem);
  transform: scale(var(--vv-masonry-zoom, 1));
  transition: transform 0.3s ease;
}

.vv-masonry__caption {
  position: var(--vv-masonry-caption-position, static);
  inset: var(--vv-masonry-caption-inset, auto);
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding: var(--vv-masonry-caption-padding, 0.5rem 0 0);
  border-radius: 0 0 var(--vv-masonry-radius, 0.5rem) var(--vv-masonry-radius, 0.5rem);
  background: var(--vv-masonry-caption-bg, none);
  color: var(--vv-masonry-caption-color, inherit);
  font-family: var(--vv-masonry-caption-font, inherit);
  font-size: var(--vv-masonry-caption-size, 0.875rem);
  line-height: 1.4;
  opacity: var(--vv-masonry-caption-opacity, 1);
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.vv-masonry__caption-title {
  color: var(--vv-masonry-caption-title-color, inherit);
  font-weight: var(--vv-masonry-caption-title-weight, 600);
}

.vv-lightbox {
  box-sizing: border-box;
  width: 100vw;
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  padding: var(--vv-lightbox-padding, 3.5rem 1rem 1rem);
  border: 0;
  overflow: hidden;
  background: var(--vv-lightbox-bg, rgba(12, 12, 12, 0.95));
  color: var(--vv-lightbox-color, #fff);
}

.vv-lightbox[open] {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.vv-lightbox::backdrop {
  background: var(--vv-lightbox-backdrop, rgba(0, 0, 0, 0.6));
}

.vv-lightbox__close {
  position: absolute;
  top: var(--vv-lightbox-close-offset, 0.75rem);
  right: var(--vv-lightbox-close-offset, 0.75rem);
  display: inline-grid;
  place-items: center;
  width: var(--vv-lightbox-close-size, 2.75rem);
  height: var(--vv-lightbox-close-size, 2.75rem);
  margin: 0;
  padding: 0;
  border: var(--vv-lightbox-close-border, 1px solid currentColor);
  border-radius: var(--vv-lightbox-close-radius, 50%);
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.vv-lightbox__close:focus-visible {
  outline: var(--vv-masonry-focus-width, 2px) solid var(--vv-lightbox-focus-color, currentColor);
  outline-offset: 2px;
}

.vv-lightbox__icon {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
}

.vv-carousel--lightbox {
  --vv-carousel-media-bg: transparent;
  --vv-carousel-control-hover-bg: rgba(255, 255, 255, 0.12);
  --vv-carousel-caption-padding: 0.75rem 0 0;
  width: 100%;
  max-width: var(--vv-lightbox-max-width, 1600px);
  margin-inline: auto;
}

.vv-lightbox__image {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100dvh - 11rem);
  margin-inline: auto;
  -o-object-fit: contain;
  object-fit: contain;
}

.vv-lightbox-open {
  overflow: hidden;
}

@media (hover: none) {
  .vv-masonry__figure {
    --vv-masonry-caption-opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .vv-masonry__image {
    transform: none;
    transition: none;
  }
  .vv-masonry__caption {
    transition: none;
  }
}