.main-visual {
    display: table;
    width: 100%;
    height: 70vh;
    background-image: url('../img/top/main.jpg');
    background-size: cover;
    background-position: top center;
}

.main-visual-inner {
    display: table-cell;
    vertical-align: middle;
}

.main-visual-text {
    width: 90%;
    margin: 0 auto;
    color: #fff;
    text-shadow: 0px 1px 2px rgba(35, 24, 21, 0.54);
}

.main-visual .lead-1 {
    font-size: 2.4rem;
    margin-bottom: 0;
}

.main-visual .lead-2 {
    font-size: 4rem;
    margin: 0;
}

.section-inner {
    padding: 100px 0;
}

.section-1 .row {
    margin: 50px 0 0;
    align-items: center;
}

/*.section-1 .image-wrapper {
    width: 60%;
}
*/
.section-1 .image-wrapper img {
    width: 100%;
}

/*.section-1 .text-wrapper {
    width: 40%;
    padding: 30px 70px 30px 30px;
    display: flex;
    align-items: center;
}*/

.section-1 .text-wrapper .description p {
    margin: 0 0 30px;
}

.section-1 .section-inner {
    padding: 100px 0 0;
}

.section-1 .heading-2 {
    text-shadow: -5px 5px 0px #efe8e7;
}

.section-2 {
    background: url(../img/top/sec2_bg.jpg) no-repeat;
    background-position: 50% 145px;
    background-size: 35%;
}

.section-2 .description {
    text-align: center;
}

.section-2 .image-wrapper {
    width: 90%;
    max-width: 1000px;
    margin: 50px auto 0;
}

.section-2 .row {
    margin: 0 auto 50px;
}

.section-2 .image {
    width: 30%;
}

.section-2 .image img {
    width: 100%;
}

.section-3 {
    background: url('../img/top/sec3_bg.jpg') no-repeat;
    background-position: right;
    background-size: cover;
    color: #efe8e7;
}

.section-3 .row {
    min-width: 800px;
    justify-content: center;
}

.section-3 .heading-2 {
    text-shadow: -5px 5px 0px #231815;
}

.section-3 .description {
    margin: 70px 0 0 70px;
    text-align: center;
    width: 40%;
}

.section-3 .description p {
    margin: 0 0 30px 0;
    text-align: left;
}

@media screen and (min-width: 961px) {
    .section-1 .text-wrapper .description {
        padding: 0 30px;
        float: left;
        width: 80%;
    }

    .section-1 .text-wrapper .heading-2 {
        float: left;
    }
}

@media screen and (max-width: 960px) {
    .main-visual {
        height: 35vh;
        margin-top: 60px;
        background: url('../img/top/sp/main.jpg') no-repeat;
        background-position: center;
        background-size: cover;
    }

    .main-visual-inner {
        vertical-align: top;
        padding: 80px 0 80px;
    }

    .main-visual-text {
        width: 95%;
    }

    .main-visual .lead-1 {
        font-size: 1.8rem;
    }

    .main-visual .lead-2 {
        font-size: 6vw;
    }

    .section-inner {
        padding: 60px 0;
    }

    .section-1 .section-inner {
        padding: 60px 0;
    }

    .section-1 .row {
        margin: 0;
    }

    .section-1 .image-wrapper {
        width: 100%;
        margin-bottom: 0;
    }

    .section-1 .text-wrapper {
        width: 100%;
        padding: 30px 0 0;
        display: flex;
        flex-direction: column-reverse;
    }

    .section-1 .text-wrapper .description {
        margin: 0;
    }

    .section-1 .text-wrapper .description p {
        margin: 10px 0 30px 0;
    }

    .section-1 .text-wrapper .heading-2 {
        width: auto;
    }

    .section-2 {
        background-position: 50% 100px;
        background-size: 85%;
    }

    .section-2 .image-wrapper {
        width: 90%;
        min-width: initial;
        margin: 30px auto 0;
    }

    .section-2 .image {
        width: 100%;
        margin: 0 0 30px;
    }

    .section-2 .image:last-of-type {
        margin: 0;
    }

    .section-3 {
        background: url('../img/top/sp/sec3_bg.jpg') no-repeat;
        background-position: top;
        background-size: cover;
    }

    .section-3 .row {
        min-width: initial;
    }

    .section-3 .description {
        margin: 30px 0 0;
        width: 100%;
    }
}