body>* {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: all 2s ease;
    -moz-transition: all 2s ease;
    -webkit-transition: all 2s ease
}

body.visible>* {
    opacity: 1;
    pointer-events: all;
    visibility: visible
}

body.visible #open {
    opacity: 0;
    pointer-events: none;
    visibility: hidden
}

body.intro #open {
    opacity: 1;
    pointer-events: all;
    visibility: visible
}

body.intro {
    overflow: hidden
}

#open {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: url("../img/index/open_bg.jpg") no-repeat center/cover
}

#open h2 {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 25px;
    line-height: 2.1;
    letter-spacing: .2em;
    opacity: 0;
    transition: opacity 0.3s linear;
    will-change: tranform;
}

#open h2 span {
    margin-top: 59px;
    letter-spacing: .2em
}

#open h2.active {
    opacity: 1
}

#open .skip {
    position: absolute;
    bottom: 50px;
    right: 25px;
    width: -moz-fit-content;
    width: fit-content;
    border-bottom: 1px solid rgba(255, 255, 255, .4);
    padding: 0 10px 6px 0;
    font-size: 16.5px;
    line-height: 1;
    letter-spacing: .05em;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: .3s linear
}

#open .skip::before {
    content: "";
    position: absolute;
    background: #fff;
    width: 4.5px;
    height: 6.5px;
    top: 5px;
    right: 1px;
    -webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
    clip-path: polygon(0 0, 0% 100%, 100% 50%)
}

#open .skip.active {
    opacity: 1;
    visibility: visible;
    pointer-events: all
}

@media screen and (min-width: 768px) {
    #open h2 {
        font-size: 36px;
        line-height: 65px
    }

    #open h2 span {
        margin-top: 87px
    }

    #open .skip {
        cursor: pointer;
        bottom: 60px;
        right: 114px;
        padding: 0 15px 7px 0;
        font-size: 22px
    }

    #open .skip::before {
        content: "";
        position: absolute;
        background: #fff;
        width: 6px;
        height: 9px;
        top: 6px;
        right: 0
    }

    #open .skip:hover {
        opacity: .7
    }
}

#header .logo {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    width: 27.5%;
    transform: translate(-50%, -50%)
}

@media screen and (min-width: 768px) {
    #header h1 {
        inset: 34px auto auto 47px
    }

    #header .logo {
        width: 105px
    }
}

#keyvisual {
    position: relative
}

#keyvisual::before {
    content: "";
    position: absolute;
    background: url("../img/shared/shadow.png") no-repeat center/80%;
    inset: 0;
    z-index: 1
}

@media screen and (min-width: 768px) {
    #keyvisual::before {
        background-size: 380px auto
    }
}

section {
    background: url("../img/shared/bg1.png") repeat center top, url("../img/index/deco_line_sp.png") no-repeat left top/100%, url("../img/index/bg_deco_sp.png") no-repeat center top/100%
}

@media screen and (min-width: 768px) {
    section {
        background: url("../img/shared/bg1.png") repeat center top, url("../img/index/deco_line_pc.png") no-repeat left top/auto, url("../img/index/bg_deco_pc.png") no-repeat right top/100%
    }
}

.remodal {
    width: 80%
}

@media screen and (min-width: 768px) {
    .remodal {
        width: 1060px
    }
}

#sec1 {
    padding: 23.5vw 0 14.5vw
}

#sec1 .wrap {
    padding: 0
}

#sec1 h2 {
    text-align: center;
    font-size: 5.33vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .1em
}

#sec1 .txt {
    text-align: center;
    margin-top: 10.5vw
}

#sec1 .remodal-slider {
    margin-top: 4vw;
    padding-left: 19.5vw
}

#sec1 .remodal-slider .slick-prev {
    position: absolute;
    top: 29.5vw;
    left: 3.5vw
}

#sec1 .remodal-slider .slick-next {
    display: none !important
}

#sec1 .remodal-slider .slick-slide {
    width: 59vw !important;
    margin: 0 2.4vw
}

#sec1 .note {
    margin: 8vw 3% 0 7%;
    font-size: 13px;
    line-height: 22.5px
}

@media screen and (min-width: 768px) {
    #sec1 {
        padding: 134px 0px 28px
    }

    #sec1 .wrap {
        max-width: 1100px;
        padding: 0 20px
    }

    #sec1 h2 {
        font-size: 26px
    }

    #sec1 .txt {
        margin-top: 43px;
        font-size: 15px
    }

    #sec1 .remodal-slider {
        display: flex;
        justify-content: space-evenly;
        margin-top: 18px;
        padding-left: 0
    }

    #sec1 .remodal-slider .slick-slide {
        width: 32.0754716981% !important;
        margin: 0
    }

    #sec1 .note {
        text-align: center;
        margin: 31px 0 0;
        font-size: 15px;
        line-height: 35px
    }
}

#sec2 {
    position: relative;
    padding: 0 3% 28vw
}

#sec2 .deco {
    position: absolute;
    bottom: -12vw;
    right: 0;
    width: 35%
}

#sec2 .wrap {
    background: url("../img/shared/bg2.jpg") repeat center;
    border: 3px solid rgba(246, 246, 246, .05);
    padding: 14vw 6% 17vw
}

#sec2 h2 {
    text-align: center;
    font-size: 5.33vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .1em
}

#sec2 #feed {
    margin-top: 6vw
}

#sec2 #feed dl {
    border-bottom: 1px solid rgba(255, 255, 255, .5);
    padding: 14px 0 15px 2%;
    font-size: 13px;
    line-height: 18px
}

#sec2 #feed dl dd {
    margin-top: 6px
}

#sec2 .more {
    width: 150px;
    margin: 14vw auto 0
}

#sec2 .more a {
    position: relative;
    display: block;
    text-align: center;
    background: rgba(255, 255, 255, .1);
    font-size: 13px;
    line-height: 40px;
    letter-spacing: .1em
}

#sec2 .more a::before {
    content: "";
    position: absolute;
    background: #fff;
    top: 50%;
    right: 13px;
    transform: translateY(-50%);
    -webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    width: 6px;
    height: 8.5px
}

@media screen and (min-width: 768px) {
    #sec2 {
        padding: 0 30px 197px
    }

    #sec2 .deco {
        bottom: -132px;
        width: auto
    }

    #sec2 .wrap {
        max-width: 1060px;
        border-width: 6px;
        padding: 68px 0 63px
    }

    #sec2 .inner {
        max-width: 600px;
        margin: 0 auto
    }

    #sec2 h2 {
        font-size: 26px
    }

    #sec2 #feed {
        margin-top: 35px
    }

    #sec2 #feed dl {
        display: flex;
        padding: 10px 0 7px;
        font-size: 16px;
        line-height: 42px
    }

    #sec2 #feed dl dt {
        width: 160px
    }

    #sec2 #feed dl dd {
        flex: 1;
        margin-top: 0
    }

    #sec2 #feed dl dd a:hover {
        text-decoration: underline
    }

    #sec2 .more {
        width: 143px;
        margin: 47px 0 0 auto
    }

    #sec2 .more a {
        font-size: 14px;
        line-height: 30px
    }

    #sec2 .more a::before {
        right: 6px;
        width: 6px;
        height: 9px
    }

    #sec2 .more a:hover {
        opacity: .7
    }
}

#sec3 {
    position: relative;
    overflow: hidden
}

#sec3 h2 {
    position: relative;
    z-index: 2;
    min-height: 135vw;
    padding-top: 45vw;
    margin: 0 auto 30vw;
    font-size: 6.67vw;
    line-height: 2.1;
    letter-spacing: .2em
}

#sec3 .overlay {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #000;
    opacity: 0;
}

#sec3 .bg {
    position: absolute;
    height: 135vw;
    top: 0;
    left: 0;
    right: 0;
    width: 90%;
    margin: 0 auto;
}

#sec3 .bg img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

#sec3 .txt {
    position: relative;
    z-index: 2;
    margin: 0 7%
}

#sec3 .btn-shared {
    position: relative;
    z-index: 2;
    margin: 15vw 11% 0;
    padding-bottom: 17vw
}

@media screen and (min-width: 768px) {
    #sec3 {
        position: relative
    }

    #sec3 h2 {
        min-height: 730px;
        padding-top: 260px;
        margin-bottom: 150px;
        font-size: 30px;
        line-height: 65px
    }

    #sec3 .bg {
        height: 730px;
        width: 1215px
    }

    #sec3 .txt {
        text-align: center;
        width: 648px;
        margin: 0 auto
    }

    #sec3 .btn-shared {
        width: 170px;
        margin: 120px auto 0;
        padding-bottom: 190px
    }
}

#sec4 {
    position: relative;
    padding: 11vw 0 23vw;
    background: url("../img/shared/bg1.png") repeat center
}

#sec4 .deco {
    position: absolute;
    top: -23vw;
    left: 0;
    width: 44%;
    z-index: 1
}

#sec4 .group-txt {
    margin: 9.5vw 7% 0
}

#sec4 .group-txt h2 {
    margin: 0 13%
}

#sec4 .group-txt h2 span {
    display: block;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .2em
}

#sec4 .group-txt h2 span:nth-child(1) {
    margin-left: 6%;
    font-size: 4vw
}

#sec4 .group-txt h2 span:nth-child(2) {
    position: relative;
    text-align: center;
    padding: 3.5vw 0 4.5vw;
    font-size: 6.67vw
}

#sec4 .group-txt h2 span:nth-child(2)::before,
#sec4 .group-txt h2 span:nth-child(2):after {
    content: "";
    position: absolute;
    background: linear-gradient(273deg, rgba(255, 255, 255, 0.25) 0%, rgb(255, 255, 255) 20%, rgb(255, 255, 255) 80%, rgba(255, 255, 255, 0.25) 100%);
    left: 0;
    right: 0;
    height: 1px;
    opacity: .6
}

#sec4 .group-txt h2 span:nth-child(2)::before {
    top: 0
}

#sec4 .group-txt h2 span:nth-child(2):after {
    bottom: 0
}

#sec4 .group-txt .txt {
    margin-top: 10vw
}

#sec4 .group-txt .btn-shared {
    margin: 11.5vw 5.5% 0
}

@media screen and (min-width: 768px) {
    #sec4 {
        padding: 82px 0;
        z-index: 1
    }

    #sec4 .deco {
        top: -340px;
        width: auto
    }

    #sec4 .bg {
        position: absolute;
        top: 82px;
        bottom: 82px;
        left: 0;
        right: 0;
        z-index: -1
    }

    #sec4 .bg img {
        -o-object-position: left;
        object-position: left
    }

    #sec4 .group-txt {
        position: relative;
        z-index: 1;
        box-sizing: content-box;
        width: 393px;
        padding: 111px 0 133px 149px;
        margin: 0
    }

    #sec4 .group-txt h2 {
        margin: 0
    }

    #sec4 .group-txt h2 span:nth-child(1) {
        margin-left: 24px;
        font-size: 20px
    }

    #sec4 .group-txt h2 span:nth-child(2) {
        padding: 18px 0 22px;
        font-size: 30px
    }

    #sec4 .group-txt .txt {
        margin: 50px 0 0 21px
    }

    #sec4 .group-txt .btn-shared {
        width: 245px;
        margin: 58px auto 0
    }
}

#sec5 {
    position: relative;
    padding: 24.5vw 0
}

#sec5 .bg {
    position: absolute;
    top: 47vw;
    left: 0;
    right: 0;
}

#sec5 h2 {
    position: relative;
    text-align: center;
    margin: 0 11%;
    padding-bottom: 3.5vw;
    font-size: 5.33vw;
    line-height: 1;
    letter-spacing: .2em
}

#sec5 h2::before,
#sec5 h2:after {
    content: "";
    position: absolute;
    background: rgba(255, 255, 255, .5);
    height: 1px;
    width: 77%
}

#sec5 h2::before {
    bottom: 2.5px;
    left: 0
}

#sec5 h2:after {
    bottom: 0;
    right: 0
}

#sec5 .group {
    margin-top: 18.5vw
}

#sec5 .group .item .box-img {
    position: relative
}

#sec5 .group .item .box-img dt {
    position: absolute;
    z-index: 1;
    top: 0;
    left: 3.5%;
    background: url("../img/shared/bg3.jpg") repeat center;
    color: #b29d54;
    padding: 8vw 2.5vw 7vw 2.5vw;
    font-size: 4.84vw;
    line-height: 1;
    font-weight: 500;
    letter-spacing: .2em
}

#sec5 .group .item .box-img dt small {
    font-size: 2.53vw;
    letter-spacing: .2em
}

#sec5 .group .item .txt {
    margin-top: 8vw
}

#sec5 .group .item .btn-shared {
    margin: 7.5vw 5.5% 0
}

#sec5 .group .item+.item {
    margin-top: 20vw
}

#sec5 .group .item:nth-child(4) .box-img dt small {
    display: block;
    border-left: 1px solid #b29d54;
    height: -moz-fit-content;
    height: fit-content;
    margin-left: 1.5vw;
    padding-left: 1vw;
    font-size: 3.06vw
}

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

    #sec5 .bg {
        top: auto;
        bottom: 0;
        left: 0;
        right: auto
    }

    #sec5 .wrap {
        display: flex;
        justify-content: space-between;
        -moz-column-gap: 40px;
        column-gap: 40px;
        max-width: 1080px;
        padding: 0 20px
    }

    #sec5 h2 {
        text-align: left;
        margin: 0 0 0 34px;
        padding: 70px 0 0 16px;
        font-size: 26px
    }

    #sec5 h2::before,
    #sec5 h2:after {
        width: 1px;
        height: 270px
    }

    #sec5 h2::before {
        inset: 0 auto auto 4px
    }

    #sec5 h2:after {
        inset: 80px auto auto 0
    }

    #sec5 .group {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        max-width: 884px;
        gap: 121px 20px;
        flex: 1;
        margin-top: 128px
    }

    #sec5 .group .item {
        width: 45.2488687783%
    }

    #sec5 .group .item .box-img dt {
        left: 16px;
        padding: 37px 12px 35px 13px;
        font-size: 22px
    }

    #sec5 .group .item .box-img dt small {
        font-size: 16px
    }

    #sec5 .group .item .txt {
        margin: 26px 2px 0 11px
    }

    #sec5 .group .item .btn-shared {
        width: 268px;
        margin: 29px auto 0
    }

    #sec5 .group .item+.item {
        margin-top: 0
    }

    #sec5 .group .item:nth-child(4) .box-img dt small {
        margin-left: 5px;
        padding-left: 6px;
        font-size: 14px
    }
}