/* ===============================
	Async image loading
=============================== */
.async-image-holder {
  position: relative;
  overflow: hidden;
}

.async-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.3s ease-out 0s;
}

.async-image.loaded {
  opacity: 1;
}

.async-image.low-res {
  filter: blur(3px);
}

/* ===============================
	BEGIN GALLERY
=============================== */
.gallery {
  display: flex;
  flex-flow: wrap row;
  justify-content: space-between;
  width: 100%;
  margin: 50px auto;
}

/* These three lines are incredibly useful for flexbox.
Kudos to https://stackoverflow.com/a/34816625*/
.gallery:after {
  content: "";
  display: inline-block;
  flex: auto;
}

/* =========================================
    Gallery image sizes
========================================== */
/*Setting height by padding-top maintains aspect ratio when window is resized*/
/* 2 columns */
.gallery-image {
  width: 100%;
  padding-top: 100%;
  margin: 0.2%;
	margin-bottom: 20px;
  background-color: rgba(20, 20, 20, 0.3);
	box-shadow: -3px 0px 22px -7px rgba(0,0,0,0.54);
-webkit-box-shadow: -3px 0px 22px -7px rgba(0,0,0,0.54);
-moz-box-shadow: -3px 0px 22px -7px rgba(0,0,0,0.54);
}


/* ===============================
	BEGIN LIGHTBOX
=============================== */
/* ===========================
    Transition vars
============================ */
/* =========================
    Overlay
========================= */
#swgl-overlay {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  opacity: 0;
  background-color: rgba(0, 0, 0, 0.9);
  transition: max-height 0s linear 270ms, opacity 250ms linear 0s;
  max-height: 0px;
  overflow: hidden;
}

#swgl-overlay.active {
  opacity: 1;
  max-height: 100vh;
  transition: max-height 0s linear 0s, opacity 250ms linear 0s;
}

/* =========================
    CONTROLS
========================= */
#swgl-controls {
  position: absolute;
  top: 0px;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5000;
}

.swgl-digitizer {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.swgl-btn {
  position: absolute;
  border-width: 0;
  font-size: 35px;
  color: white;
  text-shadow: 1px 2px 5px rgba(0, 0, 0, 0.2);
  padding: 156px 16px;
  text-align: center;
  background-color: rgba(0, 0, 0, 0);
  cursor: pointer;
}

.swgl-btn:focus, .swgl-btn:active {
  outline: none !important;
}

.swgl-nav-btn {
  top: 50%;
  transform: translateY(-50%);
  width: 110px;
  color: rgba(255, 255, 255, 0.6);
  transition: background-color 0.4s ease 0s, color 0.4s ease 0s;
}

.swgl-nav-btn:hover {
  color: white;
  background-color: rgba(60, 60, 60, 0.4);
}

#swgl-close-btn {
  top: 0px;
  right: 0px;
  padding: 7px 15px;
  font-size: 45px;
  z-index: 4000;
}

#swgl-prev-btn {
  left: 0px;
  text-align: left;
}

#swgl-next-btn {
  right: 0px;
  text-align: right;
}

/* =========================
    Slide wrapper
========================= */
#swgl-slide-wrapper {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* ==========================
    Loading spinner
===========================*/
.swgl-loading-spinner {
  position: absolute;
  display: block;
  width: 65px;
  height: auto;
  top: 50%;
  left: 50%;
  animation-name: swgl-spinner;
  animation-iteration-count: infinite;
  animation-duration: 2s;
}

/* The animation code */
@keyframes swgl-spinner {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
/* =========================
    SLIDE
========================= */
.swgl-slide {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  max-width: 400px;
  max-height: 260px;
  top: 50%;
  left: 50%;
  border-radius: 2px;
  border: 2px solid white;
  background: #e4e4e4;
  overflow: hidden;
  transform: translate(-50%, -50%);
  transform-origin: 50% 50%;
  transition: opacity 500ms linear 0s, transform 500ms ease-out 0s, max-height 500ms ease 0s, max-width 500ms ease 0s;
}

.swgl-slide.loaded {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}

.swgl-left {
  opacity: 0;
  transform: translate(-155%, -50%) !important;
}

.swgl-right {
  opacity: 0;
  transform: translate(55%, -50%) !important;
}

.swgl-center {
  opacity: 0;
}

.swgl-slide-img {
  display: block;
  width: auto;
  height: auto;
  max-height: 98vh;
  max-width: 98vw;
  opacity: 0;
  transition: opacity 0.4s ease-out 0s;
}

.swgl-slide-img.loaded {
  opacity: 1;
  width: auto;
  height: auto;
}

.swgl-caption {
  display: none;
}


/* ======================
   LIGHTBOX Z-INDEX FIX
====================== */

/* Overlay covers entire screen */
#swgl-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(10, 10, 10, 0.9);
  z-index: 9999; /* ✅ Ensures overlay is always on top */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

/* When active */
#swgl-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* Digitizer (click background to close) */
#swgl-digitizer {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* Image slides appear above the dim background */
#swgl-slide-wrapper {
  position: relative;
  z-index: 2;
}

/* Navigation & close buttons */
#swgl-controls {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3; /* ✅ Buttons above slides */
  pointer-events: none;
}

#swgl-controls .swgl-btn {
  pointer-events: all;
  z-index: 4;
}
