.gallery-2 {
  overflow: hidden;

  .gallery-container {
    padding: 20px 0 40px;
    position: relative;
  }

  .swiper-wrapper {
    height: auto !important;
    align-items: center;
    padding: 30px 0;
  }

  .gallery-item {
    position: relative;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    transition: all 0.4s ease;


  }

  .gallery-img {
    position: relative;
    overflow: hidden;

    img {
      transition: transform 0.6s ease;
      width: 100%;
      aspect-ratio: 4/3;
      object-fit: cover;
    }

    .gallery-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: color-mix(in srgb, var(--accent-color), transparent 70%);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: all 0.4s ease;

      i {
        color: var(--contrast-color);
        font-size: 3rem;
        transform: scale(0.5);
        transition: all 0.3s ease;
      }
    }

    &:hover {
      img {
        transform: scale(1.1);
      }

      .gallery-overlay {
        opacity: 1;

        i {
          transform: scale(1);
        }
      }
    }
  }

  .swiper-pagination {
    position: relative;
    margin-top: 20px;

    .swiper-pagination-bullet {
      width: 12px;
      height: 12px;
      background: transparent;
      border: 2px solid var(--accent-color);
      opacity: 0.7;
      transition: all 0.3s ease;

      &-active {
        background: var(--accent-color);
        opacity: 1;
        transform: scale(1.2);
      }
    }
  }

  .swiper-button-next,
  .swiper-button-prev {
    color: var(--accent-color);
    background: var(--surface-color);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    opacity: 0;
    transition: all 0.3s ease;

    &:after {
      font-size: 16px;
      font-weight: bold;
    }
  }

  &:hover {
    .swiper-button-next,
    .swiper-button-prev {
      opacity: 0.9;

      &:hover {
        background: var(--accent-color);
        color: var(--contrast-color);
      }
    }
  }

  @media (max-width: 991px) {
    .gallery-item {
      box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
    }

    .swiper-button-next,
    .swiper-button-prev {
      display: none;
    }
  }

  @media (max-width: 767px) {
    .swiper-wrapper {
      padding: 15px 0;
    }

    .gallery-img .gallery-overlay i {
      font-size: 2rem;
    }
  }
}

/* ── GLightbox: maximise image size on desktop ─────────────────────────────
   GLightbox injects width/height as inline styles (defaults: 900px / 506px).
   !important overrides are required to beat the inline style specificity.
   ──────────────────────────────────────────────────────────────────────── */
@media (min-width: 769px) {
  .glightbox-container .ginner-container {
    width:      auto   !important;
    max-width:  95vw   !important;
    height:     auto   !important;
    max-height: 95vh   !important;
  }

  .gslide-image img {
    max-width:  95vw   !important;
    max-height: 95vh   !important;
    width:      auto   !important;
    height:     auto   !important;
    object-fit: contain;
  }
}