/* Swiper
================================================================================================= */

/* Custom */
.swiper-overflow-visible .swiper { overflow: visible !important; }

.swiper-h-100 .swiper { display: flex; }
.swiper-h-100 .swiper .swiper-wrapper { align-items: stretch; height: auto; }

.swiper.swiper-vertical-full { height: 100vh; }

.swiper-button-next.swiper-button-disabled, 
.swiper-button-prev.swiper-button-disabled { display: none; }

.swiper-horizontal > .swiper-pagination-bullets, 
.swiper-pagination-bullets.swiper-pagination-horizontal, 
.swiper-pagination-custom, 
.swiper-pagination-fraction { bottom: auto; }

.swiper-button-disabled { opacity: 0.3; filter: grayscale(100%); transform: scale(0.95); transition: all 0.2s ease; }

.swiper-button {
  &-prev, 
  &-next {
    color: #333;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 45px;
    width: 45px;
    background-size: 100%;
  }

  &-prev {
    left: 1rem !important;
  }

  &-next {
    right: 1rem !important;
  }

  &-next,
  &-prev {
    svg {
      width: 16px;
      height: 16px;
      fill: currentColor;
      transition: transform .25s ease, opacity .25s ease;
    }
  }
}

@media (max-width: 991.98px) {
  .swiper-button {
    &-prev,
    &-next {
      width: 30px;
      height: 30px;
    }

    &-prev {
      left: .5rem !important;
    }

    &-next {
      right: .5rem !important;
    }

    &-next,
    &-prev {
      svg {
        width: 14px;
        height: 14px;
      }
    }
  }
}

.swiper-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  bottom: auto;
  margin-top: 2rem;
  gap: .5rem;

  &-bullet {
    width: .4rem;
    height: .4rem;
    margin: 0;
    background-color: #d3d3d3;
    border-radius: 50rem;
    opacity: 1;
    transition: width .2s ease-in-out, height 0.2s ease-in-out, background-color .2s ease-in-out;
  }

  &-bullet-active {
    width: 1.5rem;
    background-color: #333;
  }
}

/* Swiper Center Slides */
.swiper-center-scale > .swiper-slider {

  & .swiper-wrapper .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 200ms linear;
    transform: scale(0.8);
    opacity: .5;
  }

  & .swiper-wrapper .swiper-slide-active {
    transform: scale(1);
    opacity: 1;
  }
}

/* Style Center */
.swiper-center {
  > .swiper-slider {
    margin-left: 70px;
    margin-right: 70px;
  }

  > .swiper-button-prev {
    left: 10px;
  }

  > .swiper-button-next {
    right: 10px;
  }

  @media screen and (max-width: 768px) {
    > .swiper-slider {
      margin-left: 0;
      margin-right: 0;
    }

    > .swiper-button-prev,
    > .swiper-button-next {
      display: none;
    }
  }
}

/* Style Nav Square */
.swiper-nav-square {
  & .swiper-button-next,
  & .swiper-button-prev {
    position: absolute;
    top: 50%;
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #111;
    background: rgba(255, 255, 255, 0.5);

    &:hover {
      background: #ffffff;
    }
  }
}

/* Style Nav Square – Dark */
.swiper-nav-square-dark {
  & .swiper-button-next,
  & .swiper-button-prev {
    position: absolute;
    top: 50%;
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(0, 0, 0, 0.5);

    &:hover {
      background: #222;
    }
  }
}

/* Style Nav Circle */
.swiper-nav-circle {
  & > .swiper-button-next,
  & > .swiper-button-prev {
    color: #111;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 100%;
    transition: all 0.5s ease;

    &:hover {
      background: #ffffff;
    }
  }
}

/* Style Nav Circle – Dark */
.swiper-nav-circle-dark {
  & > .swiper-button-next,
  & > .swiper-button-prev {
    color: #fff;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 100%;
    transition: all 0.5s ease;

    &:hover {
      background: #222;
    }
  }
}

/* Style Nav Circle */
.swiper-nav-circle > .swiper-button-next,
.swiper-nav-circle > .swiper-button-prev { color: #111; background: rgba(255, 255, 255, 0.5); width: 45px; height: 45px; border-radius: 100%; transition: all 0.5s ease; }
.swiper-nav-circle .swiper-button-next svg,
.swiper-nav-circle .swiper-button-prev svg { width: 20px; height: 20px; }
.swiper-nav-circle > .swiper-button-next:hover, 
.swiper-nav-circle > .swiper-button-prev:hover { background: #ffffff; }

/* Thumbs */
.swiper-thumbs { margin-top: .5rem; }
.swiper-thumbs .swiper-wrapper .swiper-slide { opacity: 0.5; transition: all 0.5s ease; }
.swiper-thumbs .swiper-wrapper .swiper-slide.swiper-slide-thumb-active,
.swiper-thumbs .swiper-wrapper .swiper-slide:hover { opacity: 1; cursor: pointer; border: 1px solid #999; }
.swiper-thumbs .swiper-wrapper .swiper-slide img { width: 100% !important; height: 100px !important; object-fit: cover; object-position: center; aspect-ratio: 16/9; }
.swiper-thumbs .swiper-wrapper .swiper-slide.slide-thumb-video:before { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-family: "Font Awesome 6 Brands"; content: "\f167"; color: #fff; font-size: 2rem; display: inline-block; padding-right: 3px; vertical-align: middle; font-weight: 900; }

/* Swiper Marquee */
.swiper-marquee .swiper-wrapper { -webkit-transition-timing-function: linear !important; -o-transition-timing-function: linear !important; transition-timing-function: linear !important; }

/* Swiper Auto Columns */
.swiper-auto-columns,
.swiper-auto-columns .swiper-wrapper,
.swiper-auto-columns .swiper-slide { align-items: flex-start; height: auto; min-height: 0; }
.swiper-auto-columns .swiper-slide { display: inline-flex; }

.swiper-auto-columns figure.swiper-slide img { width: auto !important; max-width: none; height: auto !important; max-height: 450px; object-fit: contain; display: block; }

@media (max-width: 991.98px) {
  .swiper-auto-columns .swiper-slide img { max-height: 320px; }
}

/* Progressbar */
.swiper-pagination-progressbar { position: relative; left: auto; top: auto; background: #e5e5e5; height: 2px !important; }
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { background: #000; }

/* Timeline
================================================================================================= */

.swiper-timeline { overflow: hidden; }

.wp-site-blocks .swiper-timeline .swiper-slide { opacity: 0.3; transition: opacity 0.3s ease; }
.wp-site-blocks .swiper-timeline .swiper-slide.swiper-slide-active { opacity: 1; }

.swiper-pagination-custom { display: flex; gap: 160px; overflow-x: auto; padding: 20px 0; justify-content: flex-start; scrollbar-width: none; position: relative; }
.swiper-pagination-custom::-webkit-scrollbar { display: none; }

.swiper-pagination-switch { position: relative; padding: 6px 12px; font-weight: bold; font-size: clamp(1rem, .746rem + .6349vw, 1.5rem); color: #333; cursor: pointer; white-space: nowrap; opacity: 0.5; transition: all 0.3s ease; flex-shrink: 0; }
.swiper-pagination-switch.active { opacity: 1; color: #0073aa; }
.swiper-pagination-switch::after { content: ''; position: absolute; top: 50%; width: 160px; height: 1px; background-color: #ccc; margin-left: 12px; z-index: 0; }
.swiper-pagination-switch:last-child::after { display: none; }

.gallery-logos .swiper-wrapper .swiper-slide,
.gallery-logos .grid figure { display: flex; align-items: center; justify-content: center; padding: 1rem; border-radius: .5rem; }
.gallery-logos .swiper-wrapper figure img,
.gallery-logos .grid figure img { width: 130px !important; height: 75px !important; object-fit: contain; }