.btn-link {
    max-width: 260px;
    margin-left: auto;
    margin-right: auto
}

.btn-link a {
    position: relative;
    display: block;
    text-align: center;
    background: #242424;
    color: #fff;
    padding: 13px 12px 11px 12px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 1.6px
}

.btn-link a:after {
    content: "";
    position: absolute;
    background: url("../img/shared/icon_arrow2.svg") no-repeat;
    width: 26px;
    height: 5px;
    background-size: 100%;
    top: 50%;
    right: 16px;
    transform: translateY(-50%)
}

@media screen and (min-width: 768px) {
    .btn-link {
        max-width: 584px
    }

    .btn-link a {
        padding: 14px;
        font-size: 20px;
        letter-spacing: 2px
    }

    .btn-link a:after {
        right: 26px
    }

    .btn-link a:hover {
        opacity: .8
    }
}

#sec1 {
    background: url("../img/shared/bg1.jpg") repeat center top/100%;
    padding: 63px 0 92px
}

#sec1 h2 {
    color: #000;
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: 2.4px
}

#sec1 .txt {
    color: #242424;
    margin-top: 24px
}

@media screen and (min-width: 768px) {
    #sec1 {
        text-align: center;
        padding: 80px 0 118px
    }

    #sec1 h2 {
        font-size: 32px;
        letter-spacing: 3.2px
    }
}

#sec2 {
    position: relative;
    margin-top: -27px;
    padding-bottom: 92px
}

#sec2::before {
    content: "";
    position: absolute;
    background: #e9e1d8;
    top: 27px;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1
}

#sec2 .group-link {
    margin-top: 28px
}

#sec2 .group-link li a {
    position: relative;
    display: block
}

#sec2 .group-link li a::before {
    content: "";
    position: absolute;
    background: url("../img/shared/icon_plus.svg") no-repeat;
    width: 33px;
    height: 33px;
    background-size: 100%;
    bottom: 0;
    right: 0;
    z-index: 2;
    transition: 0.3s linear;
}

#sec2 .group-link li a::after {
    content: "";
    position: absolute;
    background: #242424;
    width: 33px;
    height: 33px;
    bottom: 0;
    right: 0;
    z-index: 1
}

#sec2 .group-link li a:hover::before {
    transform: rotate(90deg);
}

#sec2 .group-link li a span {
    display: block;
    position: absolute;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #242424;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    max-width: 180px;
    width: 100%;
    min-height: 76px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 2px
}

#sec2 .group-link li a span small {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    letter-spacing: 1.5px
}

#sec2 .group-link li+li {
    margin-top: 16px
}

#sec2 .btn-link {
    margin-top: 23px
}

#sec2 .box {
    background: #fff;
    color: #242424;
    margin-top: 40px;
    padding: 33px 20px 23px
}

#sec2 .box h4 {
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 2px
}

#sec2 .box .list {
    margin-top: 7px
}

#sec2 .box .list li {
    display: flex
}

#sec2 .box .list li span {
    margin-right: 7px
}

@media screen and (min-width: 768px) {
    #sec2 {
        margin-top: -38px;
        padding-bottom: 150px
    }

    #sec2::before {
        top: 38px
    }

    #sec2 .wrap {
        max-width: 1240px;
        padding: 0 20px
    }

    #sec2 .ttl-shared span.jp {
        margin-top: -30px
    }

    #sec2 .group-link {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        row-gap: 8px;
        margin-top: 54px
    }

    #sec2 .group-link li {
        width: calc(50% - 4px)
    }

    #sec2 .group-link li a span {
        max-width: 240px;
        font-size: 24px;
        letter-spacing: 2.4px
    }

    #sec2 .group-link li a span small {
        font-size: 16px;
        letter-spacing: 1.6px
    }

    #sec2 .group-link li a:hover {
        opacity: .8
    }

    #sec2 .group-link li+li {
        margin-top: 0
    }

    #sec2 .btn-link {
        margin-top: 40px
    }

    #sec2 .box {
        margin-top: 80px;
        padding: 60px 0
    }

    #sec2 .box h4 {
        font-size: 24px;
        letter-spacing: 2.4px
    }

    #sec2 .box .list {
        box-sizing: content-box;
        width: -moz-fit-content;
        width: fit-content;
        margin: 28px 25px 0 auto;
        padding-left: 25px
    }

    #sec2 .box .list li {
        display: flex
    }

    #sec2 .box .list li span {
        margin-right: 13px
    }
}

#sec3 {
    position: relative;
    margin-top: -27px;
    padding-bottom: 104px
}

#sec3::before {
    content: "";
    position: absolute;
    background: url("../img/shared/bg2.jpg") repeat center top/100%;
    top: 27px;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1
}

#sec3 .ttl-shared span.en {
    color: #d1c5b6
}

#sec3 .ttl-shared span.jp {
    color: #fff
}

#sec3 .list-option {
    margin-top: 28px
}

#sec3 .list-option .item {
    background: #fff
}

#sec3 .list-option .item+.item {
    margin-top: 16px
}

#sec3 .list-option .item .group-txt {
    padding: 16px 20px 23px
}

#sec3 .list-option .item h3 {
    text-align: center;
    border-top: 1px solid #242424;
    border-bottom: 1px solid #242424;
    color: #242424;
    padding: 8px 0;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 2px
}

#sec3 .list-option .item .txt {
    margin-top: 8px;
    font-size: 12px;
    letter-spacing: 1.2px
}

#sec3 .btn-link {
    margin-top: 18px
}

@media screen and (min-width: 768px) {
    #sec3 {
        margin-top: -9px;
        padding-bottom: 207px
    }

    #sec3::before {
        top: 35px
    }

    #sec3 .wrap {
        max-width: 1240px;
        padding: 0 20px
    }

    #sec3 .ttl-shared span.jp {
        margin-top: -39px
    }

    #sec3 .list-option {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        row-gap: 32px;
        margin-top: 55px
    }

    #sec3 .list-option .item {
        width: calc(33.3333333333% - 22px);
        max-width: 379px
    }

    #sec3 .list-option .item+.item {
        margin-top: 0
    }

    #sec3 .list-option .item .group-txt {
        padding: 31px 31px 27px
    }

    #sec3 .list-option .item h3 {
        padding: 8px 0;
        font-size: 24px;
        letter-spacing: 2.4px
    }

    #sec3 .list-option .item .txt {
        margin-top: 8px;
        font-size: 14px;
        letter-spacing: 1.4px
    }

    #sec3 .btn-link {
        margin-top: 40px
    }
}

@media screen and (min-width: 768px)and (max-width: 1000px) {
    #sec3 .list-option {
        row-gap: 20px
    }

    #sec3 .list-option .item {
        width: calc(50% - 10px);
        max-width: 100%
    }
}