.px-imageslider {
  position: relative;
  container-type: inline-size;
  /*
   * Pause control for the logo marquee (WCAG 2.2.2 Pause, Stop, Hide).
   *
   * Same silhouette as the play/pause button on every video without native
   * controls (see #scss/_video-controls.scss): 50x50, 15px corners, the same
   * two icons. The colouring is its own, because the context is: that one
   * floats over footage and needs white on a blurred pane to hold up, this
   * one sits on the page below the slider. Greyscale throughout, and kept
   * quiet - it is a secondary control next to a wall of client logos, so
   * nothing here is at full strength. The light frame and the soft fill carry
   * the shape, the icon carries the contrast.
   */
}
.px-imageslider .image img {
  transition: var(--baseTransition);
}
.px-imageslider .image a::before {
  content: none;
}
.px-imageslider .image a:hover img {
  transform: scale(1.05);
}
.px-imageslider .swiper[data-has_logos=false] .images .swiper-slide {
  width: clamp(13.3333333333rem, 12.1321321321rem + 6.7567567568vw, 17.7777777778rem);
  max-width: 100%;
}
.px-imageslider .swiper[data-has_logos=false] .images .image img {
  margin: 0 auto;
  width: 100%;
  height: 100%;
  min-height: 200px;
  max-height: 200px;
  object-fit: cover;
  border-radius: var(--baseBorderRadiusBig);
}
.px-imageslider .swiper[data-has_logos=false] .images .image a {
  display: block;
  width: 100%;
  height: 100%;
}
.px-imageslider .swiper[data-has_logos=false] .images .image a:hover img {
  transform: none;
}
.px-imageslider .swiper[data-has_logos=true] .swiper-wrapper {
  transition-timing-function: linear !important;
}
.px-imageslider .swiper[data-has_logos=true] .swiper-wrapper {
  align-items: center;
}
.px-imageslider .swiper[data-has_logos=true] .swiper-slide {
  width: auto;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.px-imageslider .swiper[data-has_logos=true] .navigation-controls {
  display: none;
}
.px-imageslider .swiper[data-has_logos=true] .images .image img {
  border: 0;
  min-height: inherit;
  max-height: 130px;
  max-width: 150px;
  object-fit: contain;
}
.px-imageslider .swiper {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  box-sizing: border-box;
  position: static;
}
.px-imageslider .slider-motion-controls {
  display: flex;
  justify-content: center;
  margin-top: 5px;
}
.px-imageslider .slider-play-button,
.px-imageslider .slider-pause-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  padding: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--light-grey, #E3E3E3);
  border-radius: 15px;
  background: var(--contrastColorInverted, #fff);
  box-shadow: var(--boxShadowSmall);
  cursor: pointer;
  transition: var(--baseTransition);
}
.px-imageslider .slider-play-button img,
.px-imageslider .slider-pause-button img {
  display: block;
  width: 30px;
  height: 30px;
  pointer-events: none;
  /*
   * The two icons ship with different fills, so they are flattened to
   * one colour. Held at 70% rather than let out to full black, which
   * is what made the button read hard next to the soft frame - it
   * lands on a charcoal that still holds 8.4:1 against the white,
   * far past the 3:1 that 1.4.11 asks of the graphic identifying a
   * control.
   */
  filter: brightness(0);
  opacity: 0.7;
}
.px-imageslider .slider-play-button.is-hidden,
.px-imageslider .slider-pause-button.is-hidden {
  display: none;
}
.px-imageslider .slider-play-button:hover,
.px-imageslider .slider-pause-button:hover {
  border-color: var(--gray, #A5A5A5);
  background: var(--lightGray, #f9f9f9);
}
.px-imageslider .slider-play-button:hover img,
.px-imageslider .slider-pause-button:hover img {
  opacity: 1;
}
.px-imageslider .slider-play-button:focus-visible,
.px-imageslider .slider-pause-button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 var(--focusRingHaloWidth) var(--focusRingContrast), 0 0 0 calc(var(--focusRingHaloWidth) + var(--focusRingWidth)) var(--focusRingColor), var(--boxShadowSmall);
}
.px-imageslider .navigation-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-top: clamp(1.6666666667rem, 0.9159159159rem + 4.222972973vw, 4.4444444444rem);
}
@container (width < 450px) {
  .px-imageslider .navigation-controls {
    gap: 20px;
  }
}
.px-imageslider .navigation-controls.navigation-disabled {
  display: none;
}
.px-imageslider .navigation-controls .btn-next,
.px-imageslider .navigation-controls .btn-prev {
  background: var(--contrastColorInverted, #fff);
  border: 1px solid var(--main-color);
  opacity: 1;
  border-radius: 100%;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  cursor: pointer;
  transition: var(--baseTransition);
}
@container (width < 450px) {
  .px-imageslider .navigation-controls .btn-next,
  .px-imageslider .navigation-controls .btn-prev {
    width: 32px;
    height: 32px;
  }
}
.px-imageslider .navigation-controls .btn-next svg,
.px-imageslider .navigation-controls .btn-prev svg {
  transition: var(--baseTransition);
  width: 12px;
  height: 9px;
  fill: var(--main-color);
}
.px-imageslider .navigation-controls .btn-next.swiper-button-disabled,
.px-imageslider .navigation-controls .btn-prev.swiper-button-disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.px-imageslider .navigation-controls .btn-next:hover,
.px-imageslider .navigation-controls .btn-prev:hover {
  border-color: var(--second-color);
}
.px-imageslider .navigation-controls .btn-next:hover svg,
.px-imageslider .navigation-controls .btn-prev:hover svg {
  fill: var(--second-color);
}
.px-imageslider .navigation-controls .btn-prev svg {
  transform: rotate(180deg);
}
.px-imageslider .navigation-controls .swiper-pagination {
  position: static !important;
  width: auto !important;
  display: flex;
  gap: 12px;
}
@container (width < 450px) {
  .px-imageslider .navigation-controls .swiper-pagination {
    gap: 7px;
  }
}
.px-imageslider .navigation-controls .swiper-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background: var(--main-color-light);
  opacity: 0.5;
  transition: var(--baseTransition);
  margin: 0 !important;
}
.px-imageslider .navigation-controls .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: var(--main-color);
  opacity: 1;
}