/* =================================
   GALLERY SLIDER – FINAL STABLE
================================= */

.gallery-slider {
  position: relative;

  width: 100%;
  max-width: 100%;
  margin: 0 auto;

  overflow: hidden;
  border-radius: 26px;
  background: #000;

  box-sizing: border-box;
}

.gallery-track {
  display: flex;
  flex-wrap: nowrap;

  transition: transform .6s cubic-bezier(.2,.8,.2,1);
  box-sizing: border-box;

}

.gallery-item {
  flex: 0 0 100%;
  max-width: 100%;

  height: 90vh;

  display: flex;
  justify-content: center;
  align-items: center;

  box-sizing: border-box;
}

/* MEDIA */

.gallery-item img,
.gallery-item video {
  width: 100%;
  max-width: 100%;
  height: 100%;

  object-fit: contain;
  display: block;
}

/* =================================
   ARROWS
================================= */

.gallery-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  background: rgba(0,0,0,.5);
  color: white;
  border: none;

  width: 44px;
  height: 44px;
  border-radius: 50%;

  cursor: pointer;
  font-size: 2rem;

  transition: .2s;
  z-index: 3;
}

.gallery-btn:hover {
  background: rgba(255,180,60,.9);
}

.gallery-btn.prev { left: 12px; }
.gallery-btn.next { right: 12px; }

/* =================================
   PROGRESS BAR
================================= */

.gallery-progress {
  position:absolute;
  bottom:0;
  left:0;

  height:4px;
  width:100%;
  background:rgba(255,255,255,.15);
}

.gallery-progress span {
  display:block;
  height:100%;
  width:0%;
  background:linear-gradient(to right,#ffb400,#ffd36a);
}

/* =================================
   LIGHTBOX
================================= */

.gallery-lightbox {
  position:fixed;
  inset:0;

  background:rgba(0,0,0,.95);
  z-index:9999;

  display:flex;
  justify-content:center;
  align-items:center;

  opacity:0;
  pointer-events:none;
  transition:.3s;

  max-width: 100vw;
  overflow-x: hidden;
}

.gallery-lightbox.active {
  opacity:1;
  pointer-events:auto;
}

/* wrapper */

.gallery-lightbox-inner {
  display:flex;
  flex-direction:column;
  align-items:center;

  width:90vw;
  max-width: 100%;
  height:90vh;

  overflow: hidden;
}

.gallery-lightbox-media {
  flex:1;
  width:100%;

  display:flex;
  justify-content:center;
  align-items:center;
}

.gallery-lightbox-media img,
.gallery-lightbox-media video {
  width:100%;
  max-width:100%;
  height:100%;
  max-height: 70vh;

  object-fit:contain;
  display: block;
}

/* close */

.gallery-lightbox-close {
  position:absolute;
  top:24px;
  right:30px;

  font-size:3rem;
  color:white;
  cursor:pointer;

  z-index:5;
}

/* arrows */

.gallery-lightbox-arrow {
  position:absolute;
  top:50%;
  transform:translateY(-50%);

  width:56px;
  height:56px;
  border-radius:50%;

  background:rgba(0,0,0,.6);
  color:white;

  display:flex;
  justify-content:center;
  align-items:center;

  font-size:2.4rem;
  cursor:pointer;

  transition:.25s;
  z-index:5;
}

.gallery-lightbox-arrow:hover {
  background:rgba(255,180,60,.9);
}

.gallery-lightbox-arrow.prev { left:20px; }
.gallery-lightbox-arrow.next { right:20px; }

/* counter */

.gallery-lightbox-counter {
  margin-top:14px;
  font-size:.95rem;
  letter-spacing:.08em;
  opacity:.75;
}

/* =================================
   MOBILE
================================= */

@media (max-width:700px) {

  .gallery-item {
    height:280px;
  }

  .gallery-lightbox-arrow {
    width:44px;
    height:44px;
    font-size:1.9rem;
  }

  .gallery-slider::after{
    content:"⇆ swipe";
    position:absolute;
    bottom:14px;
    right:18px;
    font-size:.85rem;
    opacity:.6;
  }
}

/* =================================
   PROCESS MEDIA – OVERRIDE
================================ */

.process-media .gallery-slider {
  max-width: none;
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: inherit;
}

.process-media .gallery-track {
  height: 100%;
}

.process-media .gallery-item {
  height: 100%;
}

.process-media .gallery-item img,
.process-media .gallery-item video {
  object-fit: cover;
}

/* arrows smaller */

.process-media .gallery-btn {
  width: 38px;
  height: 38px;
  font-size: 1.6rem;
}

/* progress subtle */

.process-media .gallery-progress {
  height: 3px;
}
