.block-container {
    max-width: 1140px;
    margin: 0 auto;
}

#promo img:not(.product-item__image) {
    width: 100%;
    height: auto;
    display: block;
}

#promo h3:not(.product-item__title) {
    display: block;
    padding: 0;
    margin: 0;
}

@media(max-width: 991px) {
    .block-container {
        padding: 0 40px;
    }
}

@media(max-width: 670px) {
    .block-container {
        padding: 0;
    }
}

@media (max-width: 991px) and (min-width: 670px) {
    #promo .container {
        padding-left: 50px;
        padding-right: 50px;
    }
}

.cms-page-view .main-container>.container {
    width: unset;
    max-width: unset;
    padding: 0;
}

#promo .main-banner {
    min-height: 401px;
    background-image: url(/media/up/hansgrohe/promo/croma-e/main-banner.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
position: relative;
}

.promo__title {
font-family: var(--font-family-primary);
    font-style: normal;
    font-weight: 500;
    font-size: 46px;
    line-height: 55px;
    text-align: center;
    text-transform: uppercase;
    color: #FFFFFF;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    bottom: 30px;
    max-width: 1450px;
    width: 1450px;
}

.header__title-bold {
    color: #26A792;
}

@media (max-width: 1470px) {
    .promo__title {
        max-width: unset;
        width: 100%;
        font-size: 39px;
        line-height: 55px;
    }
}

@media (max-width: 1170px) {
    .promo__title {
        max-width: 970px;
    }
}

@media (max-width: 991px) {
    .promo__title {
        padding: 0 10px;
        max-width: 670px;
    }

    #promo .main-banner {
        background-image: url(/media/up/hansgrohe/promo/croma-e/tablet-banner.jpg);
    }
}

@media (max-width: 640px) {
    .promo__title {
        max-width: 590px;
        font-size: 28px;
        line-height: 48px;
    }

    #promo .main-banner {
        background-image: url(/media/up/hansgrohe/promo/croma-e/mobile-banner.jpg);
    }
}

.container.first {
    padding-top: 100px;
}

.safety {
    background: #26A792;
    margin-bottom: 40px;
}

.safety__text {
font-family: var(--font-family-primary);
    font-weight: 500;
    font-size: 48px;
    line-height: 55px;
    padding: 19px 10px 23px;
    text-align: center;
    color: #FFFFFF;
    max-width: 900px;
    margin: 0 auto;
}

.safety__text.mobile {
    display: none;
}

@media (max-width: 991px) {
    .container.first {
        padding: 55px 50px 0;
    }

    .safety {
        margin-bottom: 50px;
    }

    .safety__text.mobile {
        display: block;
    }

    .safety__text {
        padding: 25px 30px 42px;
        font-size: 48px;
        line-height: 60px;
    }

    .safety__text.desktop {
        display: none;
    }
}

@media (max-width: 670px) {
    .safety__text {
        padding: 14px 20px;
        font-size: 27px;
        line-height: 33px;
        max-width: 590px;
    }

    .container.first {
        padding: 50px 10px 0;
    }
}

@media (max-width: 500px) {
    .safety {
        margin-bottom: 15px;
    }

    .safety__text {
        padding: 14px 5px;
        font-size: 27px;
        line-height: 33px;
        max-width: 590px;
    }
}

.chroma {
font-family: var(--font-family-primary);
    font-style: normal;
    font-weight: 500;
    font-size: 28px;
    line-height: 42px;
    text-align: center;
    color: #BFBFBF;
    margin-bottom: 85px;
}

.chroma .block-container {
    max-width: 1000px;
}

@media(max-width: 991px) {
    .chroma {
        font-size: 18px;
        line-height: 23px;
        text-align: center;
        color: #BFBFBF;
        margin-bottom: 50px;
    }

    .chroma .block-container {
        max-width: 675px;
    }
}

/* video */
.video {
    position: relative;
    max-width: 1140px;
    margin: 0 auto 100px;
    height: auto;
    padding-top: calc(635 / 1140 * 100%);
}

.video__media {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.video__button {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    display: none;
    padding: 0;
    width: 142px;
    height: 97px;
    border-radius: 12px;
    background: rgba(66, 66, 66, 0.8);
    transform: translate(-50%, -50%);
    -webkit-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    cursor: pointer;
    align-items: center;
    justify-content: space-between;
}

.video__button:hover {
    background: rgba(66, 66, 66, 1);
}

/* Enabled */
.video--enabled {
    cursor: pointer;
}

.video--enabled .video__button {
    display: flex;
}

.video__button::after {
    content: ' ';
    background-image: url('/media/up/hansgrohe/promo/croma-e/play.svg');
    background-size: contain;
    background-repeat: no-repeat;
    width: 40px;
    height: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media (max-width: 700px) {
    .video__button {
        width: 79px;
        height: 54px;
    }

    .video__button::after {
        width: 24px;
        height: 24px;
    }
}

/* universal  */
.universal__text {
    width: 100%;
    border: 6px solid #26A792;
font-family: var(--font-family-primary);
    font-weight: 500;
    font-size: 48px;
    line-height: 55px;
    text-align: center;
    color: #26A792;
    padding: 27px 10px 37px;
    margin-bottom: 50px;
}

@media(max-width: 991px) {
    .universal__text {
        padding: 24px;
        font-size: 48px;
        line-height: 55px;
    }
}

@media(max-width: 700px) {
    .universal__text {
        border: 4px solid #26A792;
        padding: 21px 5px;
        font-size: 27px;
        line-height: 33px;
    }
}

/* hot water */
.hot-water {
    position: relative;
}

.hot-water .container {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    position: absolute;
    height: 100%;
    display: flex;
    align-items: center;
}

@media (max-width: 1023px) {
    .hot-water .container {
        width: 100%;
    }
}

.hot-water__img {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
}

.hot-water__text {
font-family: var(--font-family-primary);
font-weight: 300;
    font-size: 28px;
    line-height: 35px;
    color: #FFFFFF;
    text-align: center;
}

.brand-name {
font-family: var(--font-family-primary);
    font-weight: 500;
    color: #26A792;
}

@media (max-width: 991px) {
    .hot-water__text {
        font-size: 28px;
        line-height: 35px;
    }
}

@media (max-width: 600px) {
    .hot-water__img {
        width: 100%;
        height: 405px;
    }

    #promo img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        object-position: 40% 50%;
    }

    .hot-water__text {
        font-size: 27px;
        line-height: 35px;
    }

    .hot-water .container {
        align-items: flex-start;
        padding-top: 75px;
    }
}

/* coolcontact */
.cool-contact {
    padding: 100px 0;
}

.cool-contact__header {
    padding: 21px 10px 29px;
    margin: 0 auto;
    background: #26A792;
    margin-bottom: 50px;
}

.cool-contact__header-text {
font-family: var(--font-family-primary);
    font-weight: 500;
    font-size: 48px;
    line-height: 55px;
    text-align: center;
    color: #FFFFFF;
    margin: 0 auto;
}

.cool-contact .video {
    margin-bottom: 50px;
}

.cool-contact__explainer {
font-family: var(--font-family-primary);
    font-weight: 300;
    font-size: 28px;
    line-height: 35px;
    text-align: center;
    color: #1B1C1D;
}

@media (max-width: 991px) {
    .cool-contact__header-text {
        max-width: 580px;
    }

    .cool-contact__header {
        padding: 40px 0;
    }

    .cool-contact__explainer {
        font-size: 18px;
        line-height: 30px;
    }
}

@media (max-width: 600px) {
    .cool-contact__header-text {
        font-size: 27px;
        line-height: 33px;
    }

    .cool-contact__header {
        padding: 30px;
    }

    .cool-contact {
        padding: 50px 0 100px;
    }
}

/* comfort */
.comfort {
    max-width: 1920px;
    margin: 0 auto;
    background: #26A792;
    display: flex;
    min-height: 840px;
}

.comfort__img-wrapper {
    width: 50%;
    background-image: url('/media/up/hansgrohe/promo/croma-e/comfort_bkg.jpg');
    background-size: cover;
    background-position: 50% 50%;
}

.comfort__text-wrapper {
    width: 50%;
    padding: 75px 25px 0 65px;
    color: #FFFFFF;
}

.comfort__text-title {
font-family: var(--font-family-primary);
    font-weight: 500;
    font-size: 38px;
    line-height: 60px;
    margin-bottom: 65px;
    color: #FFFFFF;
}

.comfort__text {
font-family: var(--font-family-primary);
    font-weight: 300;
    font-size: 28px;
    line-height: 42px;
    color: #FFFFFF;
}

.comfort__text b {
font-family: var(--font-family-primary);
font-weight: 500;
}

.comfort__text:not(:last-child) {
    margin-bottom: 45px;
}

@media (max-width: 1650px) {
    .comfort {
        min-height: unset;
    }

    .comfort__text-wrapper {
        width: 50%;
        padding: 45px 25px 45px 45px;
        color: #FFFFFF;
    }

    .comfort__text-title {
        line-height: 50px;
        margin-bottom: 50px;
    }

    .comfort__text {
        font-size: 20px;
        line-height: 30px;
    }

    .comfort__text:not(:last-child) {
        margin-bottom: 30px;
    }
}

@media (max-width: 810px) {
    .comfort {
        flex-direction: column;
    }

    .comfort__text-title {
        font-size: 48px;
        margin-bottom: 30px;
    }

    .comfort__img-wrapper {
        width: 100%;
        padding-top: calc(527 / 768 * 100%);
        background-image: url('/media/up/hansgrohe/promo/croma-e/comfort_tablet_bkg.jpg');
    }

    .comfort__text-wrapper {
        width: 100%;
        padding: 45px 50px 100px;
    }
}

@media (max-width: 600px) {
    .comfort__text-wrapper {
        padding: 50px 10px 50px;
    }

    .comfort__text-title {
        font-size: 27px;
        line-height: 30px;
    }

    .comfort__text {
        font-size: 20px;
        line-height: 31px;
    }
}

@media (max-width: 380px) {
    .comfort__img-wrapper {
        padding-top: calc(320 / 320 * 100%)
    }
}

@media (max-width: 330px) {
    .comfort__text-title {
        max-width: 285px;
    }
}

/* switch */
.switch {
    padding: 100px 0 59px;
    background: url('/media/up/hansgrohe/promo/croma-e/switch_bkg.jpg');
    background-size: cover;
    background-position: 10% 50%;
    max-width: 1920px;
    margin: 0 auto;
}

.switch .container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.switch__title {
font-family: var(--font-family-primary);
font-weight: 300;
    max-width: 875px;
    margin: 0 auto;
    font-size: 48px;
    line-height: 55px;
    text-align: center;
    padding: 0 10px;
}

.switch__title br {
    display: none;
}

.switch__img-mobile__wrapper {
    display: none;
}

.switch__title-bold {
font-family: var(--font-family-primary);
    font-weight: 500;
    font-size: 50px;
    line-height: 55px;
    color: #11978D;
}

.switch__img {
    margin-left: 50px;
    width: 314px;
    margin-top: 85px;
    position: relative;
}

.switch__text {
    position: absolute;
font-family: var(--font-family-primary);
    font-weight: 300;
    font-size: 20px;
    line-height: 31px;
    color: #000000;
}

.switch__text-bold {
font-family: var(--font-family-primary);
    font-weight: 500;
    color: #11978D;
}

.switch__text.one {
    width: 300px;
    top: -10px;
    left: 280px;
}

.switch__text.two {
    width: 350px;
    top: 30px;
    left: -300px;
    text-align: end;
}

.line {
    position: absolute;
    background: #000000;
    height: 1px;
}

.line::after {
    content: '';
    position: absolute;
    background: #11978D;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    transform: translateY(-50%);
}

.switch__text.one .line {
    bottom: -15px;
    left: -55px;
    width: 344px;
}

.switch__text.one .line::after {
    left: 0;
    top: 50%;
}

.switch__text.one {
    width: 300px;
    top: -10px;
    left: 280px;
}

/* two */
.switch__text.two {
    width: 350px;
    top: 30px;
    left: -300px;
    text-align: end;
}

.switch__text.two .line {
    bottom: -15px;
    left: 35px;
    width: 344px;
}

.switch__text.two .line::after {
    right: 0;
    top: 50%;
}

/* three */
.switch__text.three {
    width: 330px;
    top: 120px;
    left: 190px;
}

.switch__text.three .line {
    bottom: -15px;
    left: -55px;
    width: 344px;
}

.switch__text.three .line::after {
    left: 0;
    top: 50%;
}

/* four */
.switch__text.four {
    width: 300px;
    top: 380px;
    left: 200px;
}

.switch__text.four .line {
    bottom: -15px;
    left: -55px;
    width: 344px;
}

.switch__text.four .line::after {
    left: 0;
    top: 50%;
}

/* five */
.switch__text.five {
    width: 350px;
    top: 400px;
    left: -310px;
    text-align: end;
}

.switch__text.five .line {
    bottom: -15px;
    left: 35px;
    width: 344px;
}

.switch__text.five .line::after {
    right: 0;
    top: 50%;
}

@media (max-width: 991px) {

    .switch__text.one .line,
    .switch__text.two .line,
    .switch__text.three .line,
    .switch__text.four .line,
    .switch__text.five .line {
        width: 0;
    }

    .switch__text.one .line::after,
    .switch__text.two .line::after,
    .switch__text.three .line::after,
    .switch__text.four .line::after,
    .switch__text.five .line::after {
        width: 0;
        height: 0;
        background: none;
    }

    .switch__img {
        width: 550px;
        margin-left: 0;
        align-self: flex-start;
        margin-left: 65px;
    }

    .switch__text {
        line-height: 25px;
    }

    .switch__text.one {
        width: 300px;
        top: 0px;
        left: 250px;
    }

    .switch__text.two {
        width: 350px;
        top: 130px;
        left: 155px;
        text-align: start;
    }

    .switch__text.three {
        width: 330px;
        top: 270px;
        left: 155px;
    }

    .switch__text.four {
        width: 330px;
        top: 450px;
        left: 155px;
    }

    .switch__text.five {
        width: 360px;
        top: 555px;
        left: 215px;
        text-align: start;
    }

    .switch__title {
        font-size: 47px;
        line-height: 55px;
        max-width: 610px;
    }

    .switch__title-bold {
        font-size: inherit;
        line-height: inherit;
    }

    .switch__title br {
        display: block;
    }
}

@media (max-width: 700px) {
    .switch__img {
        margin-left: 35px;
    }
}

@media (max-width: 650px) {
    .switch {
        padding: 100px 0 56px;
    }

    .switch__title {
        font-size: 27px;
        line-height: 35px;
        max-width: 605px;
    }

    .switch__title-bold {
        font-size: inherit;
        line-height: inherit;
    }

    .switch__img {
        display: none;
    }

    .switch__img-mobile__wrapper {
        width: calc(100% + 20px);
        margin: 0 -10px;
        display: flex;
        justify-content: center;
        position: relative;
    }

    .switch__img-mobile {
        width: 165px;
        position: relative;
    }

    .switch__dot {
        width: 11px;
        height: 11px;
        border-radius: 50%;
        background: #11978D;
        position: absolute;
    }

    .switch__dot::after {
        content: '';
        width: 30px;
        height: 30px;
        top: 50%;
        left: 50%;
        position: absolute;
        transform: translate(-50%, -50%)
    }

    .switch__dot#dot-one {
        top: 60px;
        right: 20px;
    }

    .switch__dot#dot-two {
        top: 85px;
        left: 20px;
    }

    .switch__dot#dot-three {
        top: 160px;
        right: 75px;
    }

    .switch__dot#dot-four {
        top: 340px;
        right: 75px;
    }

    .switch__dot#dot-five {
        top: 382px;
        left: 20px;
    }

    .switch__text {
        top: 50%;
        transform: translateY(-50%);
        width: 100%;
        height: 164px;
        background: rgba(255, 255, 255, 0.8);
        padding: 30px 10px;
        opacity: 0;
        display: flex;
        justify-content: center;
    }

    .expand {
        animation: expand_center .5s ease-in-out both;
    }

    .expand-text {
        animation: text_expand .5s cubic-bezier(.25, .46, .45, .94) .3s both;
    }

    @keyframes expand_center {
        0% {
            transform: translateY(-50%) scaleY(0);
            opacity: 1
        }

        100% {
            transform: translateY(-50%) scaleY(1);
            opacity: 1
        }
    }

    @keyframes text_expand {
        0% {
            transform: scale(.6);
            transform-origin: 50% 50%;
            filter: blur(12px);
            opacity: 0
        }

        100% {
            transform: scale(1);
            transform-origin: 50% 50%;
            filter: blur(0);
            opacity: 1
        }
    }
}

/* croma-e */

.croma-e {
    padding: 100px 0 50px;
}

#promo .croma-e__title {
font-family: var(--font-family-primary);
    font-weight: 500;
    font-size: 40px;
    line-height: 55px;
    text-align: center;
    color: #282528;
    margin-bottom: 40px;
}

@media (max-width: 861px) {
    .croma-e {
        padding: 87px 0 50px;
    }
}

@media (max-width: 600px) {
    #promo .croma-e__title {
        font-size: 24px;
        line-height: 35px;
        margin-bottom: 29px;
    }
}

@media (max-width: 460px) {
    .croma-e {
        padding: 100px 0 50px;
    }
}