@charset "UTF-8";
/* grossmann · _breakpoints.scss — Partial (wird NICHT eigenständig kompiliert).
 * Verbindliches Breakpoint-System (Tobi 2026-06-13), an Elementor ausgerichtet:
 *   mobile      ≤ 767px
 *   tablet      768 – 1024px
 *   desktop     1025 – 1219px
 *   desktop-xl  ≥ 1220px
 * IMMER diese Mixins benutzen — keine ad-hoc px-Breakpoints mehr.
 * Nutzung:  .x { @include mobile { … } }  bzw.  @include tablet-down { … } */
/* „down" = max-width (desktop-first Overrides) · „up" = min-width · sonst = Bereich */
/* ≤ 767 */
/* 768–1024 */
/* ≤ 1024 (Tablet + Mobile) */
/* ≥ 768 */
/* 1025–1219 */
/* ≥ 1025 */
/* ≥ 1220 */
/* GROSSMANN SLIDER — Skin für das native Elementor-Widget (mu-plugins/gm-slider.php).
 * Swiper-basiert. Zwei Modi: Marquee (durchlaufend, z.B. Logos) + Carousel. */
.e-con.section--partners .elementor-widget-gm-slider,
.e-con.section--partners .partner-gmslider {
  width: 100%;
}

.gm-slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}
.gm-slider .swiper-wrapper {
  align-items: center;
}
.gm-slider .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
  box-sizing: border-box;
}
.gm-slider--marquee, .gm-slider--marquee .gm-slide {
  cursor: grab;
}
.gm-slider--marquee:active {
  cursor: grabbing;
}
.gm-slider--marquee {
  /* Marquee: lineares Timing → durchlaufender, ruckelfreier Lauf */
}
.gm-slider--marquee .swiper-wrapper {
  transition-timing-function: linear;
}
.gm-slider--marquee .swiper-slide {
  width: auto;
}
.gm-slider {
  /* Logo-Modus: höhen-normalisiert, kein Cropping, bunt.
   * Caption = nur alt/aria + Repeater-Titel → visuell ausgeblendet. */
}
.gm-slider--logos .gm-slide__cap {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.gm-slider--logos .swiper-slide img {
  height: var(--gm-logo-h, 52px);
  width: auto;
  max-width: 240px;
  object-fit: contain;
  display: block;
  filter: saturate(0.92);
  opacity: 0.85;
  transition: opacity 0.2s ease, filter 0.2s ease;
}
.gm-slider--logos .swiper-slide:hover img {
  opacity: 1;
  filter: saturate(1);
}
@media (max-width: 767px) {
  .gm-slider--logos .swiper-slide img {
    height: 44px;
    max-width: 140px;
  }
}
.gm-slider {
  /* Pfeile / Pagination (Carousel-Modus) */
}
.gm-slider .swiper-button-prev,
.gm-slider .swiper-button-next {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(20, 16, 28, 0.12);
  color: var(--ink);
  margin-top: -20px;
}
.gm-slider .swiper-button-prev::after,
.gm-slider .swiper-button-next::after {
  font-size: 15px;
  font-weight: 800;
}
.gm-slider .swiper-button-prev:hover,
.gm-slider .swiper-button-next:hover {
  background: var(--pink);
  color: #fff;
}
.gm-slider .swiper-pagination-bullet {
  background: var(--ink);
  opacity: 0.25;
  width: 8px;
  height: 8px;
  transition: width 0.2s ease;
}
.gm-slider .swiper-pagination-bullet-active {
  background: var(--pink);
  opacity: 1;
  width: 24px;
  border-radius: 999px;
}

.gm-slide__lnk {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.gm-slider-empty {
  padding: 24px;
  text-align: center;
  color: var(--muted);
  border: 1px dashed var(--line);
  border-radius: 12px;
}
