html,
body {
    height: auto;
    overflow-x: hidden;
}

.banner {
    width: 100vw;
    overflow: hidden;
    margin: 0 0 2em 0;
    position: relative;
}

.banner a,
.banner a:link,
.banner a:hover,
.banner a:active,
.banner a:visited {
    text-decoration: none;
}

.banner .row {
    margin-bottom: 0;
}

.banner__link {
    display: flex;
    position: relative;
    padding: 0;
    overflow: hidden;
}

.banner__link:hover {
    text-decoration: none;
}

.banner__row {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
}

.banner__image {
    display: flex;
    min-height: 100%;
    width: auto;
    height: auto;
    position: absolute;
    right: 0;
}


.banner__image img,
.banner__image source {
    position: absolute;
    width: 100%;
    height: 100%;
    min-width: 100%;
    max-width: 100%;
    object-fit: cover;
    object-position: 50% 50%;
}

.banner--wpy .banner__image img,
.banner--wpy.banner__image source {
    object-position: left center;
}

.banner__credit {
    position: absolute;
    transform: rotate(-90deg) translate(0, -100%);
    transform-origin: right top;
    top: 10px;
    right: 20px;
    color: black;
    text-shadow: 0 0 4px white, 0 0 5px white, 0 0 6px white;
    font-family: "Elysio-Light",Helvetica,Arial,sans-serif;
    -webkit-font-smoothing: antialiased;
    font-size: 1em;
    font-weight: 600;

}

.banner__credit .copyright {
    font-family: Arial, Helvetica, sans-serif;
}

.banner__color-spill {
    position: relative;
    display: flex;
}

.banner__color-spill::before {
    content: '';
    position: absolute;
    width: 9000px;
    display: block;
    top: 0;
    bottom: 0;
    left: -8900px;
    z-index: 0;
}

.banner--black .banner__color-spill::before {
    background-color: black;
}

.banner--white .banner__color-spill::before {
    background-color: white;
}

.banner__color-spill::after {
    position: absolute;
    z-index: -1;
}

.banner__overlay ::selection {
    background: white;
}

.banner--black .banner-overlay ::selection {
    color: black;
}

.banner--white .banner-overlay ::selection {
    color: white;
}


.banner__overlay {
    z-index: 200;
    overflow: visible;
    display: flex;
    flex-direction: column;
    position: relative;
}

.banner--black .banner__overlay  {
    background: black;
}

.banner--white .banner__overlay  {
    background: white;
}


.banner__overlay--with-arrow::after {
    content: '';
    border-top: 50px transparent solid;
    border-bottom: 50px transparent solid;
    position: absolute;
    top: 50%;
    margin-top: -50px;
    right: -50px;
}

.banner--black .banner__overlay--with-arrow::after {
    border-left: 50px black solid;
}

.banner--white .banner__overlay--with-arrow::after {
    border-left: 50px white solid;
}

.banner__overlay-content {
    width: 100%;
}


.banner__title {
    /*font-size: 4.5vw;*/
    margin: 50px 0;
    line-height: 1.1em;
    letter-spacing: -0.01em;
    box-sizing: border-box;
    padding-right: 40px;
    overflow-wrap: break-word;
    word-wrap: break-word;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
    padding-bottom: 0;
    display: inline-block;
    max-width: 100%;
}

.banner--large .banner__title {
    margin: 100px 0;
}

.banner--standard .banner__title {
    font-size: calc(30px + (52 - 30) * ((100vw - 300px) / (1600 - 300)));
}

.banner--wpy .banner__title {
    text-transform: uppercase;
}


.banner--black .banner__title {
    color: white;
}

.banner--white .banner__title {
    color: black;
}


.banner__title:hover {
    text-decoration: none;
}

.banner--standard .banner__title-line-1,
.banner--standard .banner__title-line-2 {
    font-family: Elysio-Medium, sans-serif;
    display: block;
}

.banner--wpy .banner__title-line-1,
.banner--wpy .banner__title-line-2 {
    font-weight: bold;
}

.banner--standard .banner__title-line-3 {
    display: block;
    font-family: Elysio-Light, sans-serif;
}


.banner__cta {
    margin-bottom: 50px;
}


@media screen and (min-width: 1401px) {
    .banner--wpy .large-4 .banner__overlay-content {
        width: 125%;
        margin-left: -25%;
    }
}

@media screen and (min-width: 1101px) and (max-width: 1200px) {
    .banner--wpy .large-4 .banner__title {
        font-size: 2.8em;
    }
}

@media screen and (min-width: 981px) and (max-width: 1100px) {
    .banner--wpy .large-4 .banner__title {
        font-size: 2.5em;
    }
}

@media screen and (min-width: 769px) and (max-width: 980px) {
    .banner--wpy .large-4 .banner__title {
        font-size: 1.9em;
    }
}



@media screen and (max-width: 768px) {
    .banner__link {
        display: block;
        position: static;
        height: auto;
        overflow: visible;
    }

    .banner--large .banner__title {
        margin: 40px 0;
    }

    .banner__image {
        width: 100%;
        min-width: auto;
        min-height: auto;
        position: static;
        object-fit: none;
        object-position: center;
        display: block;
    }

    .banner--wpy .banner__image {
        border-bottom: 13px white solid;
    }

    .banner__image img,
    .banner__image source {
        position: static;
        width: 100%;
        height: auto;
        object-fit: unset;
        object-position: 50% 50%;
    }

    .banner__credit {
        right: 15px;
    }

    .banner__color-spill::before {
        z-index: -1;
        left: -50%;
    }


    .banner__overlay {
        z-index: 200;
        position: relative;
        width: 100%;
    }

    .banner--black .banner__overlay {
        background: black;
    }

    .banner--white .banner__overlay {
        background: white;
    }

    .banner .banner__overlay--with-arrow::after {
        content: '';
        border-top: none;
        border-left: 50px transparent solid;
        border-right: 50px transparent solid;
        position: absolute;
        top: 0px;
        left: 50%;
        right: auto;
        margin-left: -50px;
        z-index: 200;
    }

    .banner--black .banner__overlay--with-arrow::after {
        border-bottom: 50px black solid;
    }

    .banner--white .banner__overlay--with-arrow::after {
        border-bottom: 50px white solid;
    }

    .banner__title {
        margin: 40px 0;
        padding: 0;
        display: block;
    }

    .banner--wpy .banner__title {
        border-top: none;
        margin-top: 6px;
    }

    .banner__title,
    .banner__cta {
        text-align: center;
    }

    .banner--wpy .banner__title,
    .banner--wpy .banner__cta {
        text-align: left;
    }

    .banner__cta {
        margin-bottom: 40px;
    }

}

@media screen and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    /* IE10+ CSS styles go here */
    .banner__image img {
        position: absolute;
        top: 50%;
        left: 50%;
        width: auto;
        height: auto;
        max-height: none;
        max-width: none;
        min-height: 100%;
        min-width: 100%;
        transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
    }
}

@media screen and (-ms-high-contrast: none) and (max-width: 768px),  (-ms-high-contrast: active) and (max-width: 768px) {
    .banner__image,
    .banner__image img,
    .banner__image source {
        transform: none;
        -ms-transform: none;
        position: static;
        max-width: 100%;
        min-height: auto;
        height: auto;
        min-width: auto;
    }
}