main > article.banner {
    font-family: var(--primary-font);
    font-weight: 400;
    color: var(--black);
    width: calc(100% - 2rem);
    max-width: calc(var(--max-content-width) - 2em);
    margin: 3rem 1rem 1rem 1rem;
    background-size: cover;
    background-position: right;
}

main > article.banner:first-child {
    margin: calc(3rem + 60px) 1rem 1rem 1rem;
}

main > article.banner > section {
    flex-direction: column;
    padding: 4rem 1rem 2rem 1rem;
}

main > article.banner .top > img {
    display: none;
}

main > article.banner .top.label:before {
    position: absolute;
    display: block;
    margin: -80px 0 1rem 0px;
    background: var(--primary);
    color: var(--white);
    font-weight: 700;
    text-align: center;
    box-shadow: 0 2px 4px var(--dark-gray);
    z-index: 1;
    font-size: 1.15rem;
    width: fit-content;
    padding: 0.75rem 1.5rem;
}

main > article.banner .top.brandNew:before {
    content: 'NEU';
}

main > article.banner .top.sales:before {
    content: 'ANGEBOT';
}

main > article.banner .top.action:before {
    content: 'AKTION';
}

main > article.banner .top.recommended:before {
    content: 'EMPFEHLUNG';
}

main > article.banner h2 {
    font-size: 2rem;
    margin: 0 0 1rem 0;
}

main > article.banner h3 {
    font-size: 1.6rem;
    margin: 0 0 1rem 0;
}

main > article.banner h3:empty {
    display: none;
}

main > article.banner ul {
    padding: 0 0 0 1rem;
}

main > article.banner h2 ~ h3 {
    margin: -1rem 0 1rem 0;
}

main > article.banner p {
    font-size: .9rem;
    margin: 0 0 .5rem 0;
}

main > article.banner h3.price {
    font-size: 1.8rem;
    margin: 0 0 1rem 0;
}

main > article.banner .bottom > span.small:first-of-type {
    margin: 2rem 0 0 0;
}

main > article.banner h3.price > span.small {
    margin: auto 0.5em 0 0;
}

main > article.banner h3.price > span.small:last-child {
    margin: auto 0 0 0.5em;
}

main > article.banner span.small,
main > article.banner h3.price > span.small {
    position: revert;
    display: block;
    font-size: .8rem;
}

main > article.banner h3.price > span.small {
    line-height: 1.8rem;
}

main > article.banner m-button {
    font-family: var(--secondary-font);
    font-weight: 500;
    margin: 0 8px 8px 0;
}

@media (min-width: 768px) {

    main > article.banner:first-child {
        margin: calc(3rem + 60px) auto 4rem auto;
    }

    main > article.banner {
        margin: 2rem auto;
    }

    main > article.banner > section {
        flex-direction: row;
        gap: 1rem;
        padding: 2rem 1rem;
        min-height: 300px;
    }

    main > article.banner .top {
        max-width: 50%;
    }

    main > article.banner .top.label:before {
        left: 90px;
        margin: -50px 0 1rem 0;
    }

    main > article.banner .top > img {
        display: block;
        top: calc(100% - 200px);
        bottom: -70px;
        max-width: 50%;
        margin: calc(-70px - 4rem) 0 0 0;
        max-height: 400px;
        width: 100%;
    }

    main > article.banner .bottom {
        width: 50%;
    }

}