#header {
    padding: 8px 8px 0
}

#header .logo a img.off {
    opacity: 1
}

#header .logo a img.on {
    opacity: 0
}

#hamburger .inner span {
    background: #fff
}

@media screen and (max-width: 767px) {
    main {
        overflow: hidden;
    }
}

@media screen and (min-width: 768px) {
    #menu-toggle {
        background: #fff
    }

    #menu-toggle .nav-list li.parent a {
        background: rgba(0, 0, 0, 0) !important;
        color: #1a36c8 !important
    }

    #menu-toggle .nav-list li.parent a:hover::before {
        background-image: url("../img/shared/icon_drop_up.png") !important
    }

    #menu-toggle .nav-list li.parent:hover a::before {
        background-image: url("../img/shared/icon_drop_up.png")
    }

    body.active #menu-toggle {
        background: #f7f7f7
    }
}

#sec1 {
    background: url("../img/top/sec1_deco.png") no-repeat left bottom/182px auto;
    padding: 79px 0 40px
}

#sec1 h2 {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 30px
}

#sec1 .sec1-js {
    margin-top: 95px
}

#sec1 .sec1-js img {
    width: auto;
    height: 62px
}

@media screen and (min-width: 768px) {
    #sec1 {
        background-size: 320px auto;
        padding: 119px 0 62px
    }

    #sec1 h2 {
        width: 648px;
        margin: 0 72px 0 auto
    }

    #sec1 .sec1-js {
        margin-top: 183px
    }

    #sec1 .sec1-js img {
        width: 1360px;
        height: auto
    }
}

#sec2 {
    background: #1a36c8;
    color: #fff;
    border-radius: 16px;
    padding: 77px 0 80px;
    margin: 0 8px
}

#sec2 .wrap {
    padding: 0 20px
}

#sec2 .col-r {
    margin-top: 50px
}

#sec2 .col-r .item .photo img {
    border-radius: 16px
}

#sec2 .col-r .item .group {
    margin-top: 39px
}

#sec2 .col-r .item .num {
    width: 52px
}

#sec2 .col-r .item h3 {
    margin-top: 22px
}

#sec2 .col-r .item h3 span {
    display: block;
    font-weight: bold
}

#sec2 .col-r .item h3 span.en {
    font-size: 14px;
    line-height: 1;
    letter-spacing: .04em
}

#sec2 .col-r .item h3 span.jp {
    margin-top: 9px;
    font-size: 34px;
    line-height: 45.9px;
    letter-spacing: .08em
}

#sec2 .col-r .item .txt {
    margin-top: 42px
}

#sec2 .col-r .item+.item {
    margin-top: 62px
}

#sec2 .btn-shared {
    margin-top: 52px
}

@media screen and (min-width: 768px) {
    #sec2 {
        padding: 117px 0 120px;
        border-radius: 24px
    }

    #sec2 .wrap {
        display: flex;
        justify-content: space-between;
        -moz-column-gap: 30px;
        column-gap: 30px;
        max-width: 1256px;
        padding: 0 20px
    }

    #sec2 .col-l {
        position: sticky;
        top: 100px;
        left: 0;
        height: -moz-fit-content;
        height: fit-content;
        padding-bottom: 150px
    }

    #sec2 .col-r {
        width: 788px;
        margin-top: 71px
    }

    #sec2 .col-r .item {
        display: flex;
        justify-content: space-between;
        -moz-column-gap: 30px;
        column-gap: 30px
    }

    #sec2 .col-r .item .photo {
        max-width: 360px
    }

    #sec2 .col-r .item .group {
        margin: -6px 14px 0 0
    }

    #sec2 .col-r .item .num {
        width: 49px
    }

    #sec2 .col-r .item h3 {
        margin-top: 29px
    }

    #sec2 .col-r .item h3 span.jp {
        margin-top: 14px;
        font-size: 40px;
        line-height: 54px
    }

    #sec2 .col-r .item .txt {
        max-width: 332px;
        margin-top: 44px
    }

    #sec2 .col-r .item+.item {
        margin-top: 72px
    }

    #sec2 .btn-shared {
        position: absolute;
        bottom: 0;
        left: 20px;
        margin-top: 0
    }
}

@media screen and (min-width: 768px)and (max-width: 1250px) {
    #sec2 .wrap {
        justify-content: center
    }

    #sec2 .col-r {
        width: -moz-fit-content;
        width: fit-content
    }

    #sec2 .col-r .item {
        display: block
    }

    #sec2 .col-r .item .group {
        margin-top: 40px
    }
}

@media screen and (min-width: 768px)and (max-width: 900px) {
    #sec2 .col-r .item h3 span.jp {
        font-size: 30px;
        line-height: 50px
    }
}

#sec3 {
    padding: 77px 0 80px
}

#sec3 .wrap {
    padding: 0 30px
}

#sec3 .ttl-shared {
    position: relative;
    z-index: 1
}

#sec3 .photo {
    margin-top: -90px
}

#sec3 .group-point {
    margin-top: 60px
}

#sec3 .group-point .item {
    border-top: 1px solid #ccc;
    padding: 45px 0 42px 7px;
    display: flex;
    align-items: center;
    font-weight: bold
}

#sec3 .group-point .item .num {
    color: #1a36c8;
    width: 71px;
    font-size: 60px;
    line-height: 1;
    letter-spacing: 0
}

#sec3 .group-point .item .txt {
    flex: 1;
    margin-top: -6px;
    font-size: 18px;
    line-height: 27px;
    letter-spacing: .08em
}

#sec3 .group-point .item:last-child {
    border-bottom: 1px solid #ccc
}

@media screen and (min-width: 768px) {
    #sec3 {
        padding: 117px 0 120px
    }

    #sec3 .wrap {
        max-width: 1276px;
        padding: 0 30px
    }

    #sec3 .photo {
        position: absolute;
        top: 146px;
        left: calc(50% - 124px);
        right: 28px
    }

    #sec3 .group-point {
        position: relative;
        z-index: 1;
        width: 589px;
        margin-top: 226px
    }

    #sec3 .group-point .item {
        padding: 42px 0 35px 4px
    }

    #sec3 .group-point .item .num {
        width: 76px
    }

    #sec3 .group-point .item .txt {
        margin-top: -11px;
        letter-spacing: 0
    }
}

@media screen and (min-width: 768px)and (max-width: 1050px) {
    #sec3 .photo {
        position: unset;
        max-width: 724px;
        margin: 50px auto 0
    }

    #sec3 .group-point {
        margin: 50px auto 0
    }
}

#sec4 {
    background: #f7f7f7;
    border-radius: 16px;
    margin: 0 8px;
    padding: 0 0 80px
}

#sec4 .wrap {
    padding: 0
}

#sec4 .ttl-shared {
    padding: 77px 22px 0
}

#sec4 h3 {
    margin: 28px 25px 0;
    font-size: 38px;
    font-weight: bold;
    line-height: 51.3px;
    letter-spacing: .08em
}

#sec4 h3 span {
    margin-right: -18px
}

#sec4 .sec4-js {
    margin-top: 51px
}

#sec4 .sec4-js .slick-slide {
    margin: 0 6px
}

#sec4 .sec4-js .slick-slide img {
    border-radius: 16px;
    width: 190px
}

#sec4 .txt {
    margin: 54px 22px 0;
    font-weight: 500
}

#sec4 .btn-shared {
    margin-top: 53px
}

@media screen and (min-width: 768px) {
    #sec4 {
        overflow: hidden;
        border-radius: 24px;
        padding: 0 0 137px
    }

    #sec4 .wrap {
        max-width: 1276px;
        padding: 0 30px
    }

    #sec4 .ttl-shared {
        padding: 116px 0 0
    }

    #sec4 h3 {
        margin: 49px 0 0 7px;
        font-size: 28px;
        line-height: 39.2px
    }

    #sec4 h3 span {
        margin-right: -12px
    }

    #sec4 .sec4-js {
        position: absolute;
        top: 0;
        bottom: 0;
        left: calc(50% + 122px);;
        margin: 0;
    }

    #sec4 .sec4-js .slick-list {
        overflow: visible;
    }

    #sec4 .sec4-js .slick-slide {
        margin: 7px 0
    }

    #sec4 .sec4-js .slick-slide img {
        width: 308px
    }

    #sec4 .txt {
        max-width: 480px;
        margin: 38px 0 0 7px
    }

    #sec4 .btn-shared {
        max-width: 308px;
        margin: 65px 0 0 6px
    }
}

@media screen and (min-width: 768px)and (max-width: 950px) {
    #sec4 .sec4-js {
        width: 260px;
        left: auto;
        right: calc(-50vw + 50% + 40px)
    }

    #sec4 .sec4-js .slick-slide img {
        width: 260px
    }

    #sec4 .txt {
        width: auto;
        margin-right: 300px
    }
}

#sec5 {
    padding: 77px 0 80px
}

#sec5 .wrap {
    padding: 0 30px
}

#sec5 .ttl-shared {
    text-align: center
}

#sec5 .ttl-shared span.jp {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto
}

#sec5 .txt {
    text-align: center;
    margin-top: 34px;
    font-weight: 500;
    line-height: 32px
}

#sec5 .photo1 {
    margin-top: 57px
}

#sec5 .btn-shared {
    max-width: 306px;
    margin-top: 60px
}

@media screen and (min-width: 768px) {
    #sec5 {
        padding: 157px 0 120px
    }

    #sec5 .wrap {
        max-width: 1320px;
        padding: 0 20px
    }

    #sec5 .txt {
        margin-top: 52px;
        line-height: 34px
    }

    #sec5 .photo1 {
        position: absolute;
        top: -37px;
        left: 20px;
        margin-top: 0;
        width: 369px
    }

    #sec5 .photo2 {
        position: absolute;
        top: 8px;
        right: 100px;
        width: 263px
    }

    #sec5 .btn-shared {
        margin-top: 93px
    }
}

@media screen and (min-width: 768px)and (max-width: 1150px) {
    #sec5 .photo1 {
        width: calc(50% - 198px)
    }

    #sec5 .photo2 {
        width: calc(50% - 198px);
        right: 20px
    }
}

@media screen and (min-width: 768px)and (max-width: 1000px) {
    #sec5 .list-photo {
        display: flex;
        align-items: center;
        justify-content: center;
        -moz-column-gap: 50px;
        column-gap: 50px;
        margin-top: 50px
    }

    #sec5 .photo1 {
        position: unset;
        width: 369px
    }

    #sec5 .photo2 {
        position: unset;
        width: 269px
    }
}

#sec6 {
    background: #f7f7f7;
    border-radius: 16px;
    padding: 77px 0 40px;
    margin: 0 8px
}

#sec6 .wrap {
    padding: 0 20px
}

#sec6 .row {
    margin-top: 50px
}

#sec6 .info dl {
    border-top: 1px solid #ccc;
    padding: 22px 0 23px
}

#sec6 .info dl * {
    letter-spacing: .08em
}

#sec6 .info dl dt {
    color: #1a36c8;
    font-weight: bold;
    font-size: 17px;
    line-height: 23.8px
}

#sec6 .info dl dt small {
    font-size: 11px
}

#sec6 .info dl dd {
    color: #303030;
    margin-top: 11px;
    font-size: 15px;
    line-height: 26.25px
}

#sec6 .info dl dd p+p {
    margin-top: 25px
}

#sec6 .btn-entry {
    margin: 9px 0 0 -5px;
    width: 136px
}

@media screen and (min-width: 768px) {
    #sec6 {
        border-radius: 24px;
        padding: 117px 0 121px
    }

    #sec6 .wrap {
        max-width: 1260px;
        padding: 0 30px
    }

    #sec6 .row {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        -moz-column-gap: 30px;
        column-gap: 30px;
        margin-top: 19px
    }

    #sec6 .info {
        order: 2;
        max-width: 691px;
        flex: 1
    }

    #sec6 .info dl {
        display: flex;
        padding: 26px 0
    }

    #sec6 .info dl dt {
        max-width: 209px;
        width: 100%
    }

    #sec6 .info dl dt small {
        margin-left: -5px;
        font-size: 12px
    }

    #sec6 .info dl dd {
        flex: 1;
        margin-top: 0
    }

    #sec6 .info dl dd p+p {
        margin-top: 16px
    }

    #sec6 .btn-entry {
        order: 1;
        margin: 0 0 -73px 0;
        width: 136px
    }
}