/**
 * ELA media display — keep gallery media visible; do not collapse video height.
 */
.ela-vsot .img-wrap img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: center;
}

.ela-vsot .img-wrap video {
  width: 100%;
  max-width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  background: #0a0a0a;
}

.ela-vsot .img-wrap:not([class*="aspect-"]):has(> video) {
  aspect-ratio: 16 / 9;
}

/* Absolute fill media must be contained by the aspect box.
 * Beat theme `.wos-canvas-shell img { height:auto }` so cover tiles do not blow past the slot. */
.wos-canvas-shell .ela-vsot .img-wrap[class*="aspect-"],
.ela-vsot .img-wrap[class*="aspect-"] {
  position: relative;
  overflow: hidden;
}

.wos-canvas-shell .ela-vsot .img-wrap[class*="aspect-"] img,
.wos-canvas-shell .ela-vsot .img-wrap[class*="aspect-"] video,
.ela-vsot .img-wrap[class*="aspect-"] img,
.ela-vsot .img-wrap[class*="aspect-"] video {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Beat per-section `.is-enhanced .anim-fade:not(.is-visible) { opacity:0 }` rules. */
.ela-vsot.is-enhanced .anim-fade,
.ela-vsot.is-enhanced .anim-fade:not(.is-visible),
.ela-vsot .fade-up,
.ela-vsot .fade-up:not(.is-visible),
section.ela-vsot.is-enhanced .anim-fade:not(.is-visible),
section.ela-vsot[data-wos-library].is-enhanced .anim-fade:not(.is-visible) {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

body.single-wos_work .ela-vsot .img-wrap img {
  cursor: zoom-in;
}

body.single-wos_work [data-wos-library="ela-03-project-single-v1-hero"] img,
body.single-wos_work [data-wos-library="ela-03-project-single-v2-hero"] img {
  cursor: default;
}

.ela-work-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  isolation: isolate;
  background: rgba(10, 10, 10, 0.96);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.ela-work-lightbox[hidden] {
  display: none !important;
}

.ela-work-lightbox__close {
  position: absolute;
  top: 1.25rem;
  inset-inline-end: 1.25rem;
  z-index: 1;
  background: rgba(10, 10, 10, 0.7);
  border: 1px solid rgba(237, 221, 209, 0.45);
  border-radius: 999px;
  color: #edddd1;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
}

.ela-work-lightbox__close:hover,
.ela-work-lightbox__close:focus-visible {
  color: #fff;
  outline: 2px solid #edddd1;
  outline-offset: 4px;
}

.ela-work-lightbox__img {
  max-width: 96vw;
  max-height: 92vh;
  width: auto;
  height: auto;
  object-fit: contain;
}

body.ela-work-lightbox-open {
  overflow: hidden;
}
