@charset "UTF-8";

.ftMainBlock__lb {
    margin-bottom: 1.1em;
    color: #27a47f;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.857;
}

.ftSubBlock {
    position: relative;
}

.ftSubBlock::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    display: block;
    width: 100vw;
    height: 100%;
    margin-left: -50vw;
    background: #ecf7f3;
}

.ftSubBlock > * {
    position: relative;
}

.ftSubBlock .ftMainBlock__lb {
    margin-bottom: .5em;
}


@media screen and (min-width: 900px) {

    .ftMainBlock {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
    }

    .ftMainBlock.is-reverse {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
            -ms-flex-direction: row-reverse;
                flex-direction: row-reverse;
    }

    .ftMainBlock + .ftMainBlock {
        margin-top: 100px;
    }

    .ftMainBlock__img {
        -ms-flex-preferred-size: 45.166%;
            flex-basis: 45.166%;
    }

    .ftMainBlock__img figure {
        margin-left: -17%;
    }

    .is-reverse .ftMainBlock__img figure {
        margin-left: 0;
        margin-right: -17%;
    }

    .ftMainBlock__txt {
        -ms-flex-preferred-size: 48.333%;
            flex-basis: 48.333%;
        padding-top: 9.583%;
    }

    .ftMainBlock__lb {
        font-size: 28px;
    }

    #feature01 .ftMainBlock {
        position: relative;
        z-index: 1;
        margin-bottom: -37px;
    }

    #feature01 .ftMainBlock__txt {
        padding-top: 5.416%;
    }

    .ftSubBlock {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        padding: 45px 0;
        margin-bottom: 100px;
    }

    .ftSubBlock__txt,
    .ftSubBlock__img {
        -ms-flex-preferred-size: 48.333%;
            flex-basis: 48.333%;
    }

    .ftSubBlock__txt {
        padding-top: 50px;
    }

}

@media screen and (min-width: 1400px) {

    .ftMainBlock__img figure {
        margin-left: calc((100vw - 1200px) / 2 * -1);
    }

    .is-reverse .ftMainBlock__img figure {
        margin-right: calc((100vw - 1200px) / 2 * -1);
    }

}

@media screen and (max-width: 899px) {

    .ftMainBlock + .ftMainBlock {
        margin-top: 65px;
    }

    .ftMainBlock__img figure {
        margin: 0 -7.64%;
    }

    .ftMainBlock__txt {
        margin-top: 35px;
    }

    .ftMainBlock__lb {
        font-size: min(6vw, 28px);
    }

    .ftSubBlock {
        padding: 30px 0;
        margin: 35px 0 65px;
    }

    .ftSubBlock__img {
        margin-top: 20px;
    }

}