.work-carousel {
  position: relative;
  width: 100%;
  min-width: 0;
  margin-top: clamp(1rem, 2vh, 2rem);
  outline: none;
}
.carousel-viewport {
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--wp--preset--color--theme-4, #c8c4ba);
  background: #111;
}
.carousel-track {
  display: flex;
  width: 100%;
  min-width: 0;
  transition: transform 650ms cubic-bezier(.2,.8,.2,1);
}
.carousel-slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(18rem, .72fr);
}
.carousel-media {
  height: clamp(24rem, calc(100svh - 20rem), 38rem);
  min-height: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #111;
}
.carousel-media > img { width: 100%; height: 100%; object-fit: contain; }
.pbw-video { width: 100%; height: 100%; }
.pbw-video iframe { width: 100%; height: 100%; border: 0; }
.pbw-placeholder {
  width: 100%;
  min-height: 28rem;
  display: grid;
  place-items: center;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.carousel-copy {
  min-width: 0;
  padding: clamp(2rem, 4vw, 4rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--wp--preset--color--theme-6, #faf8f2);
}
.carousel-copy h2 {
  margin: .5rem 0 1.25rem;
  font-size: clamp(1.75rem, 3vw, 3.5rem);
  line-height: .95;
  overflow-wrap: anywhere;
}
.carousel-copy h2 a { color: inherit; text-decoration: none; }
.carousel-copy > p:not(.work-kicker) { margin: 0; font-size: clamp(.95rem, 1.1vw, 1.1rem); line-height: 1.5; }
.work-kicker {
  margin: 0;
  color: var(--wp--preset--color--theme-3, #3157ff);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.carousel-controls {
  position: absolute;
  left: 50%;
  right: auto;
  top: auto;
  bottom: 1rem;
  z-index: 3;
  width: max-content;
  max-width: calc(100% - 2rem);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .35rem;
  border-radius: 999px;
  background: #161616;
  color: #fff;
  box-shadow: 0 .4rem 1.5rem rgba(0,0,0,.24);
  pointer-events: auto;
  transform: translateX(-50%);
}
.carousel-controls button {
  position: static;
  width: 3.5rem;
  min-width: 3.5rem;
  height: 2.6rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  background: #161616;
  color: #fff;
  cursor: pointer;
  pointer-events: auto;
  transform: none;
  transition: background-color 180ms ease, color 180ms ease;
}
.carousel-controls button:hover:not(:disabled),
.carousel-controls button:focus-visible:not(:disabled) {
  background: #fff;
  color: #161616;
}
.carousel-controls button:first-child,
.carousel-controls button:last-child { left: auto; right: auto; }
.carousel-controls button:disabled { opacity: .35; cursor: default; }
.carousel-controls [data-carousel-status] {
  position: static;
  min-width: 4.8rem;
  padding: 0 .45rem;
  background: transparent;
  color: #fff;
  text-align: center;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
}
.carousel-single .carousel-controls { display: none; }

@media (max-width: 782px) {
  .carousel-slide { grid-template-columns: 1fr; }
  .carousel-media { height: 60vw; min-height: 15rem; max-height: 22rem; }
  .carousel-copy { min-height: 0; padding: 1.25rem 1.25rem 5rem; }
  .carousel-controls { bottom: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .carousel-track { transition: none !important; }
}

.pbw-lightbox-open { overflow: hidden; }
.pbw-lightbox {
  width: min(94vw, 84rem);
  max-width: none;
  max-height: 94vh;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  overflow: visible;
}
.pbw-lightbox::backdrop { background: rgba(0, 0, 0, .9); }
.pbw-lightbox__panel {
  position: relative;
  min-height: min(84vh, 48rem);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  place-items: center;
  padding: 3.75rem 1rem 5.25rem;
  border-radius: 1.25rem;
  background: #111;
  box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, .45);
}
.pbw-lightbox__image {
  display: block;
  max-width: 100%;
  max-height: calc(84vh - 9rem);
  object-fit: contain;
}
.pbw-lightbox__caption {
  max-width: 54rem;
  margin: 1rem auto 0;
  color: #fff;
  text-align: center;
  line-height: 1.45;
}
.pbw-lightbox__close,
.pbw-lightbox__controls button {
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 999px;
  background: #111;
  color: #fff;
  cursor: pointer;
}
.pbw-lightbox__close {
  position: absolute;
  top: .85rem;
  right: .85rem;
  width: 2.8rem;
  height: 2.8rem;
  font-size: 1.9rem;
  line-height: 1;
}
.pbw-lightbox__controls {
  position: absolute;
  left: 50%;
  bottom: 1rem;
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem;
  border-radius: 999px;
  background: #111;
  transform: translateX(-50%);
}
.pbw-lightbox__controls button { width: 3.25rem; height: 2.55rem; }
.pbw-lightbox__controls button:hover,
.pbw-lightbox__controls button:focus-visible,
.pbw-lightbox__close:hover,
.pbw-lightbox__close:focus-visible {
  background: #fff;
  color: #111;
}
.pbw-lightbox__controls [data-pbw-lightbox-status] {
  min-width: 4.8rem;
  text-align: center;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
}

@media (max-width: 600px) {
  .pbw-lightbox { width: 96vw; }
  .pbw-lightbox__panel { min-height: 88vh; padding-inline: .5rem; }
  .pbw-lightbox__image { max-height: calc(88vh - 9rem); }
}
