@media all {

  .ce-type-dw_galleryslider {
    overflow: visible;

    .ce-inner,
    .ce-media {
      grid-column: 3 / -3;
    }

    .ce-media {
      position: relative;
      overflow: visible;
    }

    .swiper-gallery {
      width: 100%;
      padding-bottom: 3rem;
      overflow: visible;
      -webkit-mask-image: none;
      mask-image: none;
    }

    .swiper-slide {
      width: 100%;
      flex-shrink: 0;
      transition: opacity 0.3s ease, filter 0.3s ease;
    }

    .swiper-gallery:not(.swiper-gallery--stacked) .swiper-slide {
      opacity: 0.25;
      filter: blur(2px);
    }

    .swiper-slide-active,
    .swiper-slide-prev,
    .swiper-slide-next {
      opacity: 1 !important;
      filter: blur(0) !important;
    }

    .swiper-gallery--stacked .swiper-wrapper {
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }

    .swiper-gallery--stacked .swiper-slide {
      width: 100% !important;
    }

    .swiper-button-prev,
    .swiper-button-next {
      width: 2.25rem;
      height: 2.25rem;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      background-color: var(--color-blue);
      border-radius: 50%;
      color: var(--color-white);
      transition: var(--transition-fast);
      z-index: 10;
    }

    .swiper-button-prev { left: .5rem; }
    .swiper-button-next { right: .5rem; }

    .swiper-button-prev::after,
    .swiper-button-next::after {
      font-size: 1rem;
      font-weight: 700;
      color: var(--color-white);
    }

    .swiper-button-prev:hover,
    .swiper-button-next:hover {
      opacity: .8;
    }

    .swiper-pagination {
      position: absolute;
      margin-top: var(--size-3);
      display: flex;
      justify-content: center;
    }

    .swiper-pagination-bullet {
      width: .5rem;
      height: .5rem;
      background: transparent;
      border: 2px solid var(--color-blue);
      border-radius: 50%;
      opacity: 1;
      transition: var(--transition-fast);
    }

    .swiper-pagination-bullet-active {
      background: var(--color-blue);
      border-color: var(--color-blue);
    }

    .ce-media-file {
      position: relative;
      width: 100% !important;
      overflow: clip;
    }

    .ce-media-file a,
    .ce-media-file .ce-media-image-inner {
      display: block;
      width: 100%;
      height: 100%;
    }

    .ce-media-file:has(> a.lightbox)::after {
      content: '';
      position: absolute;
      inset: 0;
      background-color: rgba(247, 247, 247, 0.3);
      opacity: 0;
      transition: opacity var(--transition-fast);
      pointer-events: none;
      z-index: 1;
    }

    .ce-media-file:has(> a.lightbox):hover::after {
      opacity: 1;
    }

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform var(--transition-fast);
      will-change: transform;
    }

    .ce-media-caption {
      text-align: center;
    }

  }

}

@media (min-width: 47.5rem) {

  .ce-type-dw_galleryslider {

    .ce-media {
      display: flex;
      align-items: center;
    }

    .swiper-gallery {
      flex: 1;
      min-width: 0;
    }

    .swiper-gallery--stacked {
      justify-content: flex-start;
    }

    .swiper-gallery--stacked .swiper-wrapper {
      flex-direction: row;
      gap: 0;
    }

    .swiper-gallery--stacked .swiper-slide {
      width: calc(100% / var(--slide-count, 2)) !important;
    }

    .swiper-button-prev,
    .swiper-button-next {
      width: 3rem;
      height: 3rem;
      position: static;
      flex-shrink: 0;
      align-self: center;
    }

    .swiper-button-prev::after,
    .swiper-button-next::after {
      font-size: 1.25rem;
    }

  }

}
