/* text-box */

div.text-box {
    width: 100%;
    max-width: max(880px, -webkit-calc(880vw / 19.2));
    max-width: max(880px, -moz-calc(880vw / 19.2));
    max-width: max(880px, calc(880vw / 19.2));
}

div.text-box>*:not(:last-child) {
    margin-bottom: max(30px, -webkit-calc(40vw / 19.2));
    margin-bottom: max(30px, -moz-calc(40vw / 19.2));
    margin-bottom: max(30px, calc(40vw / 19.2));
}

/* text */

div.text {
    padding: 0 0 0 31.25vw;
    margin: max(60px, -webkit-calc(100vw / 19.2)) 0;
    margin: max(60px, -moz-calc(100vw / 19.2)) 0;
    margin: max(60px, calc(100vw / 19.2)) 0;
}

div.text.last {
    margin: 0;
}

div.text.bg-gray {
    padding: max(60px, -webkit-calc(100vw / 19.2)) 0 max(60px, -webkit-calc(100vw / 19.2)) 31.25vw;
    padding: max(60px, -moz-calc(100vw / 19.2)) 0 max(60px, -moz-calc(100vw / 19.2)) 31.25vw;
    padding: max(60px, calc(100vw / 19.2)) 0 max(60px, calc(100vw / 19.2)) 31.25vw;
    background: whitesmoke;
}

div.text.bg-black {
    padding: max(60px, -webkit-calc(100vw / 19.2)) 0 max(60px, -webkit-calc(100vw / 19.2)) 31.25vw;
    padding: max(60px, -moz-calc(100vw / 19.2)) 0 max(60px, -moz-calc(100vw / 19.2)) 31.25vw;
    padding: max(60px, calc(100vw / 19.2)) 0 max(60px, calc(100vw / 19.2)) 31.25vw;
    background: var(--gradient-1);
}

div.text h3 {
    font-size: max(30px, -webkit-calc(40vw / 19.2));
    font-size: max(30px, -moz-calc(40vw / 19.2));
    font-size: max(30px, calc(40vw / 19.2));
    font-weight: 700;
}

div.text img {
    display: block;
    width: 100%;
    height: auto;
}

/* image 5 */

div.image-5 {
    padding: 0 0 0 25vw;
    position: relative;
    background: var(--gradient-1);
}

div.image-5 div.image-box {
    width: 100%;
    position: relative;
}

div.image-5 div.image-box div.copy {
    position: absolute;
    bottom: 0;
    right: 0;
    font-size: 75%;
    color: white;
    transform: rotate(-90deg) translate(50%, 150%);
    z-index: 2;
}

div.image-5 div.image-box img {
    display: block;
    width: 100%;
    height: auto;
    z-index: 1;
}

/* final image */

div.final-img {
    position: relative;
}

div.final-img div.copy {
    position: absolute;
    bottom: 0;
    right: 0;
    font-size: 75%;
    color: white;
    transform: rotate(-90deg) translate(50%, 150%);
    z-index: 3;
}

div.final-img img {
    display: block;
    width: 100%;
    height: auto;
    z-index: 1;
    position: relative
}

div.final-img>div:not(.copy) {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -webkit-align-items: flex-end;
    -moz-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 0 max(30px, -webkit-calc(100vw / 19.2)) max(60px, -webkit-calc(170vw / 19.2)) 31.25vw;
    padding: 0 max(30px, -moz-calc(100vw / 19.2)) max(60px, -moz-calc(170vw / 19.2)) 31.25vw;
    padding: 0 max(30px, calc(100vw / 19.2)) max(60px, calc(170vw / 19.2)) 31.25vw;
    font-size: max(24px, -webkit-calc(40vw / 19.2));
    font-size: max(24px, -moz-calc(40vw / 19.2));
    font-size: max(24px, calc(40vw / 19.2));
    font-weight: 700;
    color: white;
    z-index: 2;
}

/* link arrow */

a.link-arrow {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: max(30px, -webkit-calc(30vw / 19.2));
    gap: max(30px, -moz-calc(30vw / 19.2));
    gap: max(30px, calc(30vw / 19.2));
    padding-right: 30px;
    color: var(--dark-blue);
    -webkit-transition: .25s;
    -o-transition: .25s;
    -moz-transition: .25s;
    transition: .25s;
}

a.link-arrow span {
    font-size: max(24px, -webkit-calc(30vw / 19.2));
    font-size: max(24px, -moz-calc(30vw / 19.2));
    font-size: max(24px, calc(30vw / 19.2));
    font-weight: 700;
    line-height: 1.25;
}

a.link-arrow span.arrow {
    width: max(40px, calc(50vw / 19.2));
    position: relative;
    -webkit-transition: .25s;
    -o-transition: .25s;
    -moz-transition: .25s;
    transition: .25s;
}

a.link-arrow span.arrow span:nth-child(1) {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--dark-blue);
}

a.link-arrow span.arrow span:nth-child(2),
a.link-arrow span.arrow span:nth-child(3) {
    position: absolute;
    top: 50%;
    right: 4px;
    width: max(20px, -webkit-calc(20vw / 19.2));
    width: max(20px, -moz-calc(20vw / 19.2));
    width: max(20px, calc(20vw / 19.2));
    height: 1px;
    background: var(--dark-blue);
}

a.link-arrow span.arrow span:nth-child(2) {
    -webkit-transform: rotate(45deg) translate(0, min(-10px, -webkit-calc(-10vw / 19.2)));
    -moz-transform: rotate(45deg) translate(0, min(-10px, -moz-calc(-10vw / 19.2)));
    -ms-transform: rotate(45deg) translate(0, min(-10px, calc(-10vw / 19.2)));
    -o-transform: rotate(45deg) translate(0, min(-10px, calc(-10vw / 19.2)));
    transform: rotate(45deg) translate(0, min(-10px, calc(-10vw / 19.2)));
}

a.link-arrow span.arrow span:nth-child(3) {
    -webkit-transform: rotate(-45deg) translate(0, max(10px, -webkit-calc(10vw / 19.2)));
    -moz-transform: rotate(-45deg) translate(0, max(10px, -moz-calc(10vw / 19.2)));
    -ms-transform: rotate(-45deg) translate(0, max(10px, calc(10vw / 19.2)));
    -o-transform: rotate(-45deg) translate(0, max(10px, calc(10vw / 19.2)));
    transform: rotate(-45deg) translate(0, max(10px, calc(10vw / 19.2)));
}

/* gallery */

div.gallery {
    display: -ms-grid;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: max(30px, calc(62vw / 19.2));
    padding: 0 max(60px, -webkit-calc(130vw / 19.2)) 0 0;
    padding: 0 max(60px, -moz-calc(130vw / 19.2)) 0 0;
    padding: 0 max(60px, calc(130vw / 19.2)) 0 0;
    margin: max(60px, -webkit-calc(100vw / 19.2)) 0;
    margin: max(60px, -moz-calc(100vw / 19.2)) 0;
    margin: max(60px, calc(100vw / 19.2)) 0;
}

div.gallery div.photo {
    display: block;
    width: 100%;
    height: auto;
}

div.gallery div.photo img {
    display: block;
    width: 100%;
    height: auto;
}

/* responsive */

@media only screen and (min-width: 1025px) {
    a.link-arrow:hover span.arrow {
        width: max(60px, calc(100vw / 19.2));
    }
}

@media only screen and (max-width: 1023px) {

    div.text,
    div.image-5 {
        padding: 30px 30px 0 30px;
    }

    div.text.bg-gray,
    div.text.bg-black {
        padding: 60px 30px;
    }

    div.final-img>div {
        padding: 0 100px 20px 30px;
        line-height: 1.5;
    }
}

@media only screen and (max-width: 767px) {
    div.gallery {
        grid-template-columns: repeat(1, 1fr);
        padding: 0;
    }

    div.final-img {
        position: relative;
        height: 0;
        padding-top: 75vw;
    }

    div.final-img img {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover;
    }

    div.final-img>div {
        padding: 30px;
        line-height: 1.5;
    }
}