/* Ingenieurbüro Schnell — Slider Revolution 7 parity runtime replacement.
 * Source proof: slider alias slider-01-1 / source SHA d444b4ab6536073520775a49e99dc7e2dbe41fe53b128ce740546d8d082ff9c8.
 * Scoped to the replacement only. No header/theme geometry is owned here.
 */
.wsb-schnell-slider {
    position: relative;
    width: 100%;
    height: 570px;
    max-width: none;
    margin: 0;
    padding: 0;
    font-family: "Source Sans Pro", Arial, sans-serif;
    line-height: 1;
    isolation: isolate;
}

.wsb-schnell-slider *,
.wsb-schnell-slider *::before,
.wsb-schnell-slider *::after {
    box-sizing: border-box;
}

.wsb-schnell-slider__viewport {
    position: relative;
    width: 100%;
    height: 570px;
    overflow: hidden;
    background: #111;
}

.wsb-schnell-slide {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--wsb-transition, 600ms) ease, visibility 0s linear var(--wsb-transition, 600ms);
}

.wsb-schnell-slide.is-active {
    z-index: 1;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity var(--wsb-transition, 600ms) ease, visibility 0s linear 0s;
}

.wsb-schnell-slide__bg {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none !important;
    object-fit: cover;
    object-position: 50% 50%;
    border: 0;
    margin: 0;
    padding: 0;
    transform: translate3d(var(--wsb-bg-x, 0px), var(--wsb-bg-y, 0px), 0) scale(1.002);
    transform-origin: center;
    transition: transform 220ms ease-out;
    user-select: none;
    -webkit-user-drag: none;
}

.wsb-schnell-slide__layers {
    position: absolute;
    inset: 0;
    z-index: 2;
    overflow: hidden;
}

.wsb-schnell-layer {
    --x: var(--x-d);
    --y: var(--y-d);
    --ax: var(--ax-d);
    --tx: var(--tx-d);
    --ay: var(--ay-d);
    --ty: var(--ty-d);
    --fs: var(--fs-d);
    --lh: var(--lh-d);
    --ls: var(--ls-d);
    --c: var(--c-d);
    --ta: var(--ta-d);
    --ws: var(--ws-d);
    --w: var(--w-d);
    --h: var(--h-d);
    --pt: var(--pt-d);
    --pr: var(--pr-d);
    --pb: var(--pb-d);
    --pl: var(--pl-d);
    --bt: var(--bt-d);
    --br: var(--br-d);
    --bb: var(--bb-d);
    --bl: var(--bl-d);
    --ts: var(--ts-d);
    --ex: var(--ex-d);
    --ey: var(--ey-d);

    position: absolute;
    left: calc(var(--ax) + var(--x));
    top: calc(var(--ay) + var(--y));
    z-index: 3;
    margin: 0;
    padding: 0;
    transform: translate(var(--tx), var(--ty));
    transform-origin: 50% 50%;
}

.wsb-schnell-layer__motion {
    display: block;
    width: var(--w);
    height: var(--h);
    margin: 0 !important;
    padding: var(--pt) var(--pr) var(--pb) var(--pl);
    color: var(--c) !important;
    background: var(--bg);
    border-style: solid;
    border-color: var(--bc);
    border-width: var(--bt) var(--br) var(--bb) var(--bl);
    border-radius: 0;
    font-family: "Source Sans Pro", Arial, sans-serif !important;
    font-size: var(--fs) !important;
    font-style: normal;
    font-weight: var(--fw, 400) !important;
    letter-spacing: var(--ls) !important;
    line-height: var(--lh) !important;
    text-align: var(--ta);
    text-decoration: none !important;
    text-shadow: var(--ts);
    text-transform: none;
    white-space: var(--ws);
    opacity: 0;
    transform: translate(var(--ex), var(--ey));
    transition:
        opacity var(--enter-duration, 500ms) ease var(--enter-delay, 0ms),
        transform var(--enter-duration, 500ms) cubic-bezier(.45, 0, .55, 1) var(--enter-delay, 0ms),
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease;
    will-change: opacity, transform;
}

.wsb-schnell-slide.is-active .wsb-schnell-layer__motion {
    opacity: 1;
    transform: translate(0, 0);
}

.wsb-schnell-layer--text .wsb-schnell-layer__motion strong {
    font: inherit;
    color: inherit;
}

.wsb-schnell-layer--button .wsb-schnell-layer__motion {
    display: inline-block;
    cursor: pointer;
    outline: none;
    box-shadow: none;
    vertical-align: top;
}

.wsb-schnell-layer--button .wsb-schnell-layer__motion:hover,
.wsb-schnell-layer--button .wsb-schnell-layer__motion:focus-visible {
    color: var(--c) !important;
    background: transparent;
    border-color: var(--bg);
}

.wsb-schnell-layer--button .wsb-schnell-layer__motion:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.wsb-schnell-slider__arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    min-width: 70px;
    min-height: 70px;
    margin: -35px 0 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .5);
    color: #fff;
    cursor: pointer;
    box-shadow: none;
    opacity: 1;
    appearance: none;
    -webkit-appearance: none;
}

.wsb-schnell-slider__arrow--prev { left: 10px; }
.wsb-schnell-slider__arrow--next { right: 10px; }

.wsb-schnell-slider__arrow span {
    display: block;
    width: 100%;
    height: 70px;
    font-family: Arial, sans-serif;
    font-size: 38px;
    font-weight: 300;
    line-height: 64px;
    text-align: center;
    transform: translateY(-1px);
}

.wsb-schnell-slider__arrow:hover,
.wsb-schnell-slider__arrow:focus-visible {
    background: rgba(0, 0, 0, .65);
}

.wsb-schnell-slider__arrow:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.wsb-schnell-slider__progress {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 6;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: transparent;
    pointer-events: none;
}

.wsb-schnell-slider__progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .15);
    transform: scaleX(0);
    transform-origin: left center;
}

.wsb-schnell-slider.is-running .wsb-schnell-slider__progress span {
    animation: wsb-schnell-progress var(--wsb-duration, 5000ms) linear forwards;
}

@keyframes wsb-schnell-progress {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

@media (max-width: 1199px) {
    .wsb-schnell-layer {
        --x: var(--x-t); --y: var(--y-t); --ax: var(--ax-t); --tx: var(--tx-t); --ay: var(--ay-t); --ty: var(--ty-t);
        --fs: var(--fs-t); --lh: var(--lh-t); --ls: var(--ls-t); --c: var(--c-t); --ta: var(--ta-t); --ws: var(--ws-t);
        --w: var(--w-t); --h: var(--h-t); --pt: var(--pt-t); --pr: var(--pr-t); --pb: var(--pb-t); --pl: var(--pl-t);
        --bt: var(--bt-t); --br: var(--br-t); --bb: var(--bb-t); --bl: var(--bl-t); --ts: var(--ts-t); --ex: var(--ex-t); --ey: var(--ey-t);
    }
}

@media (max-width: 778px) {
    .wsb-schnell-slider,
    .wsb-schnell-slider__viewport { height: 500px; }

    .wsb-schnell-layer {
        --x: var(--x-m); --y: var(--y-m); --ax: var(--ax-m); --tx: var(--tx-m); --ay: var(--ay-m); --ty: var(--ty-m);
        --fs: var(--fs-m); --lh: var(--lh-m); --ls: var(--ls-m); --c: var(--c-m); --ta: var(--ta-m); --ws: var(--ws-m);
        --w: var(--w-m); --h: var(--h-m); --pt: var(--pt-m); --pr: var(--pr-m); --pb: var(--pb-m); --pl: var(--pl-m);
        --bt: var(--bt-m); --br: var(--br-m); --bb: var(--bb-m); --bl: var(--bl-m); --ts: var(--ts-m); --ex: var(--ex-m); --ey: var(--ey-m);
    }
}

@media (max-width: 480px) {
    .wsb-schnell-layer {
        --x: var(--x-s); --y: var(--y-s); --ax: var(--ax-s); --tx: var(--tx-s); --ay: var(--ay-s); --ty: var(--ty-s);
        --fs: var(--fs-s); --lh: var(--lh-s); --ls: var(--ls-s); --c: var(--c-s); --ta: var(--ta-s); --ws: var(--ws-s);
        --w: var(--w-s); --h: var(--h-s); --pt: var(--pt-s); --pr: var(--pr-s); --pb: var(--pb-s); --pl: var(--pl-s);
        --bt: var(--bt-s); --br: var(--br-s); --bb: var(--bb-s); --bl: var(--bl-s); --ts: var(--ts-s); --ex: var(--ex-s); --ey: var(--ey-s);
    }
}

@media (prefers-reduced-motion: reduce) {
    .wsb-schnell-slide,
    .wsb-schnell-layer__motion,
    .wsb-schnell-slide__bg {
        transition-duration: 1ms !important;
    }
    .wsb-schnell-slider__progress span { animation: none !important; }
}

/* 0.10.7 mobile parity correction
 * BuildPlus applies responsive image rules that can force slider <img> elements
 * back to auto height. The legacy Slider Revolution module also fluid-scales
 * its 480/778 design grid on narrower canvases. Recreate both behaviours only
 * for the Schnell runtime slider; desktop geometry remains untouched.
 */
.wsb-schnell-slider .wsb-schnell-slide__bg {
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: 50% 50% !important;
}

.wsb-schnell-slider.is-fluid-mobile .wsb-schnell-slide__layers {
    inset: auto;
    left: 50%;
    top: 50%;
    width: var(--wsb-fluid-grid-width, 480px);
    height: 500px;
    overflow: hidden;
    transform: translate(-50%, -50%) scale(var(--wsb-fluid-grid-scale, 1));
    transform-origin: 50% 50%;
}

/* Use the source-proven 778 grid when the rendered slider itself is tablet width. */
.wsb-schnell-slider.is-grid-778 .wsb-schnell-layer {
    --x: var(--x-m); --y: var(--y-m); --ax: var(--ax-m); --tx: var(--tx-m); --ay: var(--ay-m); --ty: var(--ty-m);
    --fs: var(--fs-m); --lh: var(--lh-m); --ls: var(--ls-m); --c: var(--c-m); --ta: var(--ta-m); --ws: var(--ws-m);
    --w: var(--w-m); --h: var(--h-m); --pt: var(--pt-m); --pr: var(--pr-m); --pb: var(--pb-m); --pl: var(--pl-m);
    --bt: var(--bt-m); --br: var(--br-m); --bb: var(--bb-m); --bl: var(--bl-m); --ts: var(--ts-m); --ex: var(--ex-m); --ey: var(--ey-m);
}

/* Use the source-proven 480 grid on phones and fluid-scale the complete layer canvas. */
.wsb-schnell-slider.is-grid-480 .wsb-schnell-layer {
    --x: var(--x-s); --y: var(--y-s); --ax: var(--ax-s); --tx: var(--tx-s); --ay: var(--ay-s); --ty: var(--ty-s);
    --fs: var(--fs-s); --lh: var(--lh-s); --ls: var(--ls-s); --c: var(--c-s); --ta: var(--ta-s); --ws: var(--ws-s);
    --w: var(--w-s); --h: var(--h-s); --pt: var(--pt-s); --pr: var(--pr-s); --pb: var(--pb-s); --pl: var(--pl-s);
    --bt: var(--bt-s); --br: var(--br-s); --bb: var(--bb-s); --bl: var(--bl-s); --ts: var(--ts-s); --ex: var(--ex-s); --ey: var(--ey-s);
}

.wsb-schnell-slider.is-fluid-mobile .wsb-schnell-slider__arrow {
    top: 50%;
    margin: 0;
    transform: translateY(-50%) scale(var(--wsb-fluid-grid-scale, 1));
    transform-origin: 50% 50%;
}

.wsb-schnell-slider.is-fluid-mobile .wsb-schnell-slider__arrow--prev { left: 6px; }
.wsb-schnell-slider.is-fluid-mobile .wsb-schnell-slider__arrow--next { right: 6px; }

.wsb-schnell-slider.is-fluid-mobile .wsb-schnell-slider__progress {
    height: 3px;
}

/* WSB 0.10.27: Ingenieure Schnell cookie presentation mirrored into the already loaded front-page master stylesheet. Complianz keeps sole consent authority. */
body #cmplz-cookiebanner-container .cmplz-cookiebanner{left:12px!important;right:12px!important;margin-left:auto!important;margin-right:auto!important;max-width:min(520px,calc(100vw - 24px))!important;padding:14px!important;gap:8px!important;background:#ffffff!important;color:#171717!important;border:1px solid #90bc2e!important;border-radius:0!important;box-shadow:0 18px 48px rgba(0,0,0,.18)!important;font-family:"Source Sans Pro",Arial,sans-serif!important;}
body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-title{margin:0!important;color:#2612b6!important;font-size:16px!important;line-height:1.1!important;font-weight:700!important;letter-spacing:.01em!important;text-transform:uppercase!important;}
body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message p,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-description,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-description p,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-information{margin:0!important;color:#555!important;font-size:10px!important;line-height:1.42!important;}
body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn{min-height:36px!important;padding:7px 10px!important;border:1px solid #2612b6!important;border-radius:0!important;background:#fff!important;color:#2612b6!important;box-shadow:none!important;font-family:"Source Sans Pro",Arial,sans-serif!important;font-size:9px!important;line-height:1.1!important;font-weight:700!important;letter-spacing:.06em!important;text-transform:uppercase!important;}
body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-accept,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-save-preferences{background:#90bc2e!important;color:#171717!important;border-color:#90bc2e!important;}
body #cmplz-cookiebanner-container .cmplz-cookiebanner a,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-link,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links a{color:#2612b6!important;font-size:9px!important;}
body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-close{color:#2612b6!important;}
body #cmplz-manage-consent .cmplz-manage-consent{background:#fff!important;color:#2612b6!important;border:1px solid #90bc2e!important;border-radius:0!important;font-family:"Source Sans Pro",Arial,sans-serif!important;font-size:9px!important;font-weight:700!important;letter-spacing:.06em!important;text-transform:uppercase!important;}
@media(min-width:601px){body #cmplz-cookiebanner-container .cmplz-cookiebanner{left:14px!important;right:14px!important;max-width:min(520px,calc(100vw - 28px))!important;padding:18px!important;gap:10px!important;}body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-title{font-size:18px!important;}body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message,body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-message p{font-size:11px!important;}body #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn{min-height:38px!important;font-size:10px!important;}}
