.schwan-home-hero {
    --schwan-hero-height: clamp(390px, 34vw, 560px);
    --schwan-hero-red: #ca171f;
    position: relative;
    width: 100%;
    background: #222323;
    color: #fff;
    text-align: left;
}

.schwan-home-hero::after {
    position: absolute;
    /* The following #wrapper has z-index: 10. */
    z-index: 11;
    inset: 100% 0 auto;
    height: 14px;
    background: linear-gradient(to bottom, rgba(0, 0, 0, .2), transparent);
    pointer-events: none;
    content: '';
}

.schwan-home-hero .schwan-home-hero__viewport {
    min-height: var(--schwan-hero-height);
}

.schwan-home-hero .swiper-wrapper {
    display: flex;
    align-items: stretch;
}

.schwan-home-hero:not([data-hero-ready]) .swiper-wrapper {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
}

.schwan-home-hero .schwan-home-hero__slide {
    position: relative;
    isolation: isolate;
    display: grid;
    align-items: center;
    flex: 0 0 100%;
    min-width: 0;
    min-height: var(--schwan-hero-height);
    height: auto;
    overflow: hidden;
    scroll-snap-align: start;
}

.schwan-home-hero__picture,
.schwan-home-hero__picture::after {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.schwan-home-hero__picture {
    z-index: -1;
    display: block;
    overflow: hidden;
}

.schwan-home-hero__picture::after {
    content: '';
    background: linear-gradient(90deg, rgba(13, 15, 17, .93), rgba(13, 15, 17, .76) 36%, rgba(13, 15, 17, .16) 76%);
}

.schwan-home-hero__picture img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.schwan-home-hero__content {
    position: relative;
    display: flex;
    align-items: center;
    align-self: stretch;
    width: 100%;
    padding-top: 36px;
    padding-bottom: 92px;
}

.schwan-home-hero__copy {
    width: min(100%, 590px);
}

.schwan-home-hero__logo {
    display: block;
    width: 106px;
    height: auto;
    margin: 0 0 12px;
}

.schwan-home-hero__title {
    margin: 0 0 .16em;
    color: #fff;
    font: 400 clamp(3.1rem, 4.6vw, 7rem)/1.02 'Bebas Neue', 'Open Sans', sans-serif;
    overflow-wrap: break-word;
}

.schwan-home-hero__text {
    max-width: 36ch;
    margin: 0 0 1.25em;
    color: #fff;
    font-size: clamp(1.55rem, 1.6vw, 2.15rem);
    line-height: 1.45;
}

.schwan-home-hero .schwan-home-hero__cta {
    display: inline-flex;
    align-items: center;
    min-height: 46px;
    max-width: 100%;
    padding: .7em 1.2em;
    border-radius: 3px;
    background: var(--schwan-hero-red);
    color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
}

.schwan-home-hero .schwan-home-hero__cta:hover {
    background: #a9121a;
    text-decoration: underline;
}

.schwan-home-hero__credit {
    position: absolute;
    right: 15px;
    bottom: 8px;
    max-width: calc(100% - 30px);
    padding: 2px 5px;
    border-radius: 2px;
    background: rgba(12, 14, 15, .85);
    color: #fff;
    font-size: 11px;
    line-height: 1.3;
}

.schwan-home-hero__controls {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 31px;
    left: 0;
    pointer-events: none;
}

.schwan-home-hero__controls[hidden] {
    display: none;
}

.schwan-home-hero__controls-inner,
.schwan-home-hero__navigation,
.schwan-home-hero__indicators {
    display: flex;
    align-items: center;
}

.schwan-home-hero__controls-inner {
    justify-content: flex-end;
    gap: 8px;
}

.schwan-home-hero__navigation {
    border-radius: 3px;
    background: rgba(12, 14, 15, .88);
    pointer-events: auto;
}

.schwan-home-hero__controls button {
    display: inline-grid;
    min-height: 44px;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    font: inherit;
    cursor: pointer;
}

.schwan-home-hero__controls .schwan-home-hero__arrow {
    min-width: 44px;
    font-size: 2.8rem;
    line-height: 1;
}

.schwan-home-hero__controls .schwan-home-hero__indicator {
    min-width: 26px;
}

.schwan-home-hero__indicator-label {
    display: none;
}

.schwan-home-hero__indicator::before {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border: 1px solid #fff;
    border-radius: 50%;
}

.schwan-home-hero__indicator[aria-current="true"]::before {
    background: #fff;
    box-shadow: 0 0 0 2px #222323, 0 0 0 3px #fff;
}

.schwan-home-hero__controls button:hover {
    background-color: #424447;
}

.schwan-home-hero a:focus,
.schwan-home-hero button:focus {
    outline: 3px solid #fff;
    outline-offset: -4px;
    box-shadow: 0 0 0 2px #141517;
}

.schwan-home-hero [data-hero-motif="master"] {
    --schwan-hero-pan-origin: 65% 48%;
    --schwan-hero-pan-x: -.75%;
    --schwan-hero-pan-y: .38%;
}

.schwan-home-hero [data-hero-motif="spt"] {
    --schwan-hero-pan-origin: 60% 56%;
    --schwan-hero-pan-x: -.5%;
    --schwan-hero-pan-y: -.8%;
}

.schwan-home-hero [data-hero-motif="maurer"] {
    --schwan-hero-pan-origin: 68% 55%;
    --schwan-hero-pan-x: -.95%;
    --schwan-hero-pan-y: .15%;
}

@media (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .schwan-home-hero .swiper-slide-active[data-hero-animate] .schwan-home-hero__picture img {
        transform-origin: var(--schwan-hero-pan-origin, center);
        animation: schwan-home-hero-pan 4.8s ease-in-out both;
    }
}

@keyframes schwan-home-hero-pan {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to {
        transform: translate3d(var(--schwan-hero-pan-x, 0), var(--schwan-hero-pan-y, 0), 0) scale(1.035);
    }
}

@media (min-width: 768px) {
    .schwan-home-hero__content { max-width: calc(100% - 30px); }
}

@media (min-width: 1200px) {
    .schwan-home-hero__controls .schwan-home-hero__indicator {
        position: relative;
        min-width: 44px;
        padding-inline: 12px;
        font-size: 1.4rem;
        white-space: nowrap;
    }

    .schwan-home-hero__indicator::before { display: none; }
    .schwan-home-hero__indicator-label { display: inline; }

    .schwan-home-hero__indicator[aria-current="true"]::after {
        position: absolute;
        right: 12px;
        bottom: 6px;
        left: 12px;
        height: 2px;
        border-radius: 1px;
        background-color: currentColor;
        content: '';
    }
}

@media (min-width: 1440px) and (min-height: 900px) {
    .schwan-home-hero {
        --schwan-hero-height: clamp(420px, calc(34vw + 30px), 590px);
    }
}

@media (max-width: 767px) {
    .schwan-home-hero {
        --schwan-hero-height: clamp(370px, 105vw, 470px);
    }

    .schwan-home-hero__picture::after {
        background: linear-gradient(0deg, rgba(13, 15, 17, .96), rgba(13, 15, 17, .78) 52%, rgba(13, 15, 17, .10) 100%);
    }

    .schwan-home-hero__content {
        align-items: flex-end;
        padding-top: 124px;
        padding-bottom: 86px;
    }

    .schwan-home-hero__logo {
        width: 85px;
        margin-bottom: 8px;
    }

    .schwan-home-hero__title {
        font-size: clamp(3.2rem, 8.8vw, 4.5rem);
    }

    .schwan-home-hero__controls-inner {
        justify-content: center;
        gap: 4px;
    }
}

@media (max-width: 340px) {
    .schwan-home-hero__controls .schwan-home-hero__indicator { min-width: 24px; }
    .schwan-home-hero__controls .schwan-home-hero__arrow { min-width: 39px; }
}
