body.intro #opening {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
}
body.visible #opening {
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
}
#opening .deco1 {
    position: absolute;
    top: 0;
    right: 0;
    width: 82.9333333333%;
}
#opening .deco2 {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 85.6%;
}
#opening .logo {
    position: absolute;
    top: 28.4vw;
    left: 0;
    right: 0;
    text-align: center;
    z-index: 9;
}
#opening .logo img {
    width: 29.8666666667%;
    filter: invert(31%) sepia(39%) saturate(623%) hue-rotate(182deg) brightness(93%) contrast(91%);
}
#opening .deco1,
#opening .deco2,
#opening .logo {
    opacity: 0;
    transition: opacity 0.8s ease;
}
#opening.show .deco1 {
    opacity: 1;
    transition-delay: 0s;
}
#opening.show .deco2 {
    opacity: 1;
    transition-delay: 0.8s;
}
#opening.show .logo {
    opacity: 1;
    transition-delay: 1.6s;
}
#opening {
    height: 100vh;
    background: url(../img/shared/bg3.jpg);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999999;
    opacity: 1;
    visibility: visible;
}
body {
    background: url(../img/shared/bg1.png);
}
#key-video {
    height: 100vh;
    position: relative;
}
#key-video .video {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
#key-video .video video {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
#key-video .scrolldown {
    position: absolute;
    left: 50%;
    bottom: 30px;
    z-index: 9;
}
#key-video .scrolldown::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 10;
    width: 1px;
    height: 18px;
    background: #e0b0b0;
    animation:
        circlemove 2s ease-in-out infinite,
        cirlemovehide 2s ease-out infinite;
}
#key-video .scrolldown::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 1px;
    height: 88px;
    background: #888;
}

.kvlogo-shadow {
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
}
#lead {
    padding: 55vw 0 0;
    background: url(../img/index/lead_deco1.png) no-repeat right top 8vw/83% auto;
}
#lead h2 {
    margin: 0 auto;
    line-height: 2.1;
    white-space: nowrap;
}
#lead h2 span {
    font-size: 8.5vw;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: var(--salmon);
    display: inline-block;
}
#lead h2 .t2 {
    margin: 17vw 7% 0 0;
}
#lead .deco {
    margin: 6vw -5vw 0;
}
#lead .txt {
    margin: 15vw auto 0;
    height: 54vw;
    line-height: 34px;
}
#news {
    padding: 29vw 0 0;
}
#news h2 {
    font-size: 8.5333vw;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-align: center;
    color: #353f9e;
    margin-bottom: 7vw;
}
#news .feed {
    --f-columns: 2;
    --f-gap: 11px;
    display: flex;
    flex-wrap: wrap;
    margin-left: calc(-1 * var(--f-gap));
    margin-bottom: -30px;
}
#news .feed .row {
    margin-left: var(--f-gap);
    margin-bottom: 30px;
    width: calc(100% / var(--f-columns) - var(--f-gap));
}
#news .feed .row .rss-img span {
    width: 100% !important;
    height: 32vw !important;
    border-radius: 10px;
}
#news .feed .row .rss-detail {
    margin-top: 1px;
    color: #262626;
}
#news .feed .row .rss-detail dt {
    font-family: "Zen Maru Gothic";
    font-size: 11px;
    letter-spacing: 0;
    margin-bottom: -2px;
}
#news .feed .row .rss-detail dd a {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 21px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}
#about {
    padding: 25vw 0 0;
    position: relative;
}
#about::before {
    content: "";
    background: url(../img/index/about_deco.png) no-repeat right top/100% auto;
    position: absolute;
    top: 33vw;
    right: 0;
    width: 40.6666666667%;
    bottom: 0;
    z-index: -1;
}
#about h2 {
    padding: 11vw 0 13.5vw !important;
}
#about h2 .t .mt {
    margin-top: 7vw;
}
#about .item1 {
    margin-bottom: 9vw;
}
#about .item1 .photo {
    margin: 0 -5vw 10vw 6%;
}
#about .item1 .gr-txt h3 {
    margin-bottom: 6vw;
}
#about .item2 .btn-link {
    margin-top: 5vw;
}
#marriage {
    padding: 26vw 0 0;
    position: relative;
}
#marriage::before {
    content: "";
    background: url(../img/index/marriage_deco1.png) no-repeat left top/100% auto;
    position: absolute;
    top: 36vw;
    left: 0;
    width: 54.6666666667%;
    bottom: 0;
    z-index: -1;
}
#marriage .set1 {
    margin-bottom: 9vw;
}
#marriage .set1 h2 {
    margin: 0 auto 11vw !important;
}
#marriage .set1 .photo {
    margin: 0 6% 9vw -5vw;
}
#marriage .set1 .gr-txt h3 {
    margin: 0 auto 6vw;
    width: -moz-fit-content;
    width: fit-content;
}
#marriage .set1 .gr-txt h3 span {
    margin-left: 13vw;
}
#marriage .set2 {
    position: relative;
    padding: 11vw 1% 19vw;
    margin-bottom: 8vw;
    background:
        url(../img/index/marriage_box_top.png) no-repeat center top/100% auto,
        url(../img/index/marriage_box_bot.png) no-repeat center bottom/100% auto,
        url(../img/index/marriage_bg_deco.png) repeat left top/15% auto;
}
#marriage .set2::before {
    content: "";
    border-left: 1px solid var(--blue);
    border-right: 1px solid var(--blue);
    position: absolute;
    top: 5vw;
    right: 0;
    bottom: 5vw;
    left: 0;
}
#marriage .set2 h2 {
    margin: 0 auto 11vw;
}
#marriage .set2 h2 span {
    display: inline-block;
    font-size: 8vw;
    font-weight: 500;
    letter-spacing: 0.025em;
    color: var(--blue);
    padding: 6vw 4% 4vw;
    background: #fff;
    border: 1px solid var(--blue);
}
#marriage .set2 h2 .mt {
    margin: 10vw 3% 0 0;
    padding: 4vw 4% 6vw;
}
#marriage .set2 .content .item:not(:last-child) {
    margin-bottom: 11vw;
}
#marriage .set2 .content .item h3 {
    font-family: "Shippori Mincho";
    font-size: 4.8vw;
    font-weight: 500;
    letter-spacing: 0.025em;
    line-height: 1.7;
    text-align: center;
    color: var(--blue);
    margin: 3vw 4% 0;
}
#marriage .set3 h3 {
    margin: 0 auto 8vw;
    width: -moz-fit-content;
    width: fit-content;
}
#marriage .set3 h3 span {
    margin-left: 6vw;
}
#marriage .set3 .txt {
    margin-top: 4vw;
}
#marriage .set3 .btn-link {
    margin: 8vw 8% 0;
}
#visit {
    padding: 26vw 0 0;
    background: url(../img/index/visit_deco1.png) no-repeat center top 30vw/100% auto;
}
#visit .set1 {
    margin-bottom: 5vw;
}
#visit .set1 h2 {
    margin: 0 auto 11vw !important;
}
#visit .set1 .photo {
    margin: 0 -5vw 0 3%;
}
#visit .set2 {
    margin-bottom: 13vw;
}
#visit .set2 h3 {
    margin: 0 auto 4vw;
    width: -moz-fit-content;
    width: fit-content;
    line-height: 2;
}
#visit .set2 h3 span {
    margin-left: 13vw;
}
#visit .set2 .photo {
    margin-top: 8vw;
}
#visit .set3 .item1 h3 {
    text-align: center;
    background: url(../img/index/visit_ttl_deco.png) no-repeat center top/100% auto;
    padding: 4vw 5%;
}
#visit .set3 .item1 .photo1 {
    margin: 7vw 9% 0 0;
}
#visit .set3 .item1 .photo2 {
    margin: -7vw 0 6vw auto;
    width: 52%;
}
#visit .set3 .item2 {
    margin: 7vw 6% 0;
}
#visit .set3 .item2 .content .col:not(:last-child) {
    margin-bottom: 5vw;
}
#visit .set3 .item2 .content .col .sub {
    font-size: 4vw;
    letter-spacing: 0.025em;
    margin-top: 1vw;
}
#visit .set3 .item2 .btn-link {
    margin: 7vw 2% 0;
}
#fortune {
    padding: 25vw 0 0;
    background: url(../img/index/fortune_deco1.png) no-repeat center top 26vw/100% auto;
}
#fortune h2 {
    padding: 12vw 0 9.5vw !important;
}
#fortune h2 .t {
    line-height: 1;
}
#fortune h2 .t small {
    font-size: 3.2vw;
    letter-spacing: 0.1em;
}
#fortune .photo {
    margin-left: -5vw;
}
#fortune .gr-txt {
    margin: 10vw 0 11vw;
}
#fortune .gr-txt h3 {
    margin: 0 auto 6vw;
    width: -moz-fit-content;
    width: fit-content;
}
#fortune .gr-txt h3 span {
    margin-left: 33vw;
}
#fortune .movie iframe {
    border-radius: 5px;
}
#fortune .btn-link {
    margin: 29px 9% 0;
}
#fortune .btn-link a {
    border-color: #dadada;
}
#fortune .box-parallax {
    height: 58vw;
    margin: 23vw -5vw 0;
}
#kito {
    padding: 26vw 0 0;
    background: url(../img/index/kito_deco.png) no-repeat right top 19vw/43.4666666667% auto;
}
#kito h2 {
    padding: 15vw 0 17.5vw !important;
}
#kito .item1 {
    margin-bottom: 6vw;
}
#kito .item1 .photo {
    margin: 0 -5vw 6vw 3%;
}
#kito .item1 .gr-txt h3 {
    margin: 0 auto 7vw;
    width: -moz-fit-content;
    width: fit-content;
}
#kito .item1 .gr-txt h3 span {
    margin-left: 7vw;
}
#kito .item2 h3 {
    text-align: center;
    letter-spacing: 0.2em;
    margin-bottom: 3.5vw;
}
#kito .item2 .gr-btn {
    background: #fff;
    --f-columns: 3;
    --f-gap: 1px;
    display: flex;
    flex-wrap: wrap;
    margin-left: calc(-1 * var(--f-gap));
    margin-bottom: calc(-1 * var(--f-gap));
}
#kito .item2 .gr-btn li {
    margin-left: var(--f-gap);
    margin-bottom: var(--f-gap);
    width: calc(100% / var(--f-columns) - var(--f-gap));
}
#kito .item2 .gr-btn li a {
    display: block;
    position: relative;
}
#kito .item2 .gr-btn li a::before {
    content: "";
    background: url(../img/shared/arr2.png) no-repeat 0 0/100% auto;
    width: 26px;
    height: 26px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 6vw;
    z-index: 1;
}
#kito .item2 .gr-btn li img {
    height: 56vw;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
#kito .item2 .gr-btn li .sub {
    position: absolute;
    top: 9vw;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Shippori Mincho";
    font-size: 5.33vw;
    font-weight: 500;
    letter-spacing: 0.025em;
    color: #fff;
}
#kuyo-grave {
    padding: 48vw 0 26vw;
    background: url(../img/index/kuyo-grave_deco.png) no-repeat center top 44vw/100% auto;
}
#kuyo-grave h2 {
    padding: 9vw 0 12.5vw !important;
    margin: 0 auto 11vw !important;
}
#kuyo-grave .photo {
    margin: 0 3% 7vw -5vw;
}
#kuyo-grave .gr-txt h3 {
    margin: 0 auto 7vw;
    width: -moz-fit-content;
    width: fit-content;
}
#kuyo-grave .gr-txt h3 span {
    margin-left: 7vw;
}
#kuyo-grave .btn-link {
    margin: 8vw 8% 0;
}
#bnr .gr-bnr li:not(:last-child) {
    margin-bottom: 5vw;
}
#bnr .gr-bnr li a {
    display: block;
    position: relative;
}
#bnr .gr-bnr li a::before {
    content: "";
    background: url(../img/shared/arr2.png) no-repeat 0 0/100% auto;
    width: 26px;
    height: 26px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 6%;
    z-index: 1;
}
#bnr .gr-bnr li img {
    border-radius: 5px;
}
#bnr .gr-bnr li .sub {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: "Shippori Mincho";
    font-size: 6.4vw;
    font-weight: 500;
    color: #fff;
}
@media screen and (min-width: 768px) {
    body {
        background: url(../img/shared/bg3.jpg);
    }
    #opening .deco1 {
        width: 573px;
    }
    #opening .deco2 {
        width: 668px;
    }
    #opening .logo {
        top: 189px;
    }
    #opening .logo img {
        width: 115px;
    }
    .side-content::before {
        background: url(../img/shared/bg1.png);
    }
    .global-container {
        position: relative;
    }
    .side-left,
    .side-right {
        position: absolute;
        top: 0;
    }
    .ft-fixed {
        top: 100vh;
    }
    .has_nav .side-left,
    .has_nav .side-right {
        position: fixed;
    }
    .has_nav .ft-fixed {
        top: auto;
    }
    #key-video .scrolldown {
        bottom: 40px;
    }
    #key-video .scrolldown::before {
        background: #dc8779;
    }
    #lead {
        padding: 262px 0 0;
        background: url(../img/index/lead_deco1.png) no-repeat right top 83px/83% auto;
    }
    #lead h2 {
        line-height: 67px;
    }
    #lead h2 span {
        font-size: 32px;
    }
    #lead h2 .t2 {
        margin: 64px 18px 0 0;
    }
    #lead .deco {
        margin: 22px -20px 0;
    }
    #lead .txt {
        margin: 53px auto 0;
        height: 209px;
    }
    #news {
        padding: 105px 0 0;
    }
    #news h2 {
        font-size: 32px;
        margin-bottom: 25px;
    }
    #news .feed .row .rss-img span {
        height: 120px !important;
    }
    #news .feed .row .rss-detail dt {
        font-size: 10px;
        margin-bottom: 0;
    }
    #news .feed .row .rss-detail dd a {
        font-size: 14px;
    }
    #news .feed .row .rss-detail dd a:hover {
        text-decoration: underline;
        text-underline-offset: 2px;
    }
    #about {
        padding: 96px 0 0;
    }
    #about::before {
        top: 126px;
    }
    #about h2 {
        padding: 41px 0 53px !important;
    }
    #about h2 .t .mt {
        margin-top: 25px;
    }
    #about .item1 {
        margin-bottom: 32px;
    }
    #about .item1 .photo {
        margin: 0 -20px 34px 20px;
    }
    #about .item1 .gr-txt h3 {
        margin-bottom: 23px;
    }
    #about .item2 .btn-link {
        margin-top: 21px;
    }
    #marriage {
        padding: 100px 0 0;
    }
    #marriage::before {
        top: 140px;
    }
    #marriage .set1 {
        margin-bottom: 33px;
    }
    #marriage .set1 h2 {
        margin: 0 auto 40px !important;
    }
    #marriage .set1 .photo {
        margin: 0 20px 33px -20px;
    }
    #marriage .set1 .gr-txt h3 {
        position: relative;
        left: -11px;
        margin: 0 auto 23px;
    }
    #marriage .set1 .gr-txt h3 span {
        margin-left: 50px;
    }
    #marriage .set2 {
        padding: 43px 0 71px;
        margin-bottom: 29px;
    }
    #marriage .set2::before {
        top: 20px;
        bottom: 20px;
    }
    #marriage .set2 h2 {
        margin: 0 auto 41px;
    }
    #marriage .set2 h2 span {
        font-size: 30px;
        padding: 23px 8px 14px;
    }
    #marriage .set2 h2 .mt {
        margin: 37px 20px 0 0;
        padding: 17px 7px 20px;
        position: relative;
        left: 11px;
    }
    #marriage .set2 .content .item:not(:last-child) {
        margin-bottom: 44px;
    }
    #marriage .set2 .content .item h3 {
        font-size: 18px;
        line-height: 30px;
        margin: 7px 10px 0;
    }
    #marriage .set3 h3 {
        margin: 0 auto 27px;
    }
    #marriage .set3 h3 span {
        margin-left: 24px;
    }
    #marriage .set3 .txt {
        margin-top: 14px;
    }
    #marriage .set3 .btn-link {
        margin: 27px auto 0;
    }
    #visit {
        padding: 100px 0 0;
        background: url(../img/index/visit_deco1.png) no-repeat center top 114px/100% auto;
    }
    #visit .set1 {
        margin-bottom: 20px;
    }
    #visit .set1 h2 {
        margin: 0 auto 40px !important;
    }
    #visit .set1 .photo {
        margin: 0 -20px 0 10px;
    }
    #visit .set2 {
        margin-bottom: 52px;
    }
    #visit .set2 h3 {
        margin: 0 auto 15px;
    }
    #visit .set2 h3 span {
        margin-left: 50px;
    }
    #visit .set2 .photo {
        margin-top: 30px;
    }
    #visit .set3 .item1 h3 {
        padding: 12px 10px;
    }
    #visit .set3 .item1 .photo1 {
        margin: 26px 28px 0 0;
    }
    #visit .set3 .item1 .photo2 {
        margin: -25px 0 21px auto;
        width: 175px;
    }
    #visit .set3 .item2 {
        margin: 26px 20px 0;
    }
    #visit .set3 .item2 .content .col:not(:last-child) {
        margin-bottom: 19px;
    }
    #visit .set3 .item2 .content .col .sub {
        font-size: 15px;
        margin-top: 5px;
    }
    #visit .set3 .item2 .btn-link {
        margin: 28px auto 0;
    }
    #fortune {
        padding: 100px 0 0;
        background: url(../img/index/fortune_deco1.png) no-repeat center top 105px/100% auto;
    }
    #fortune h2 {
        padding: 46px 0 34px !important;
    }
    #fortune h2 .t {
        line-height: 24px;
        position: relative;
        left: 11px;
    }
    #fortune h2 .t small {
        font-size: 12px;
    }
    #fortune .photo {
        margin-left: -20px;
    }
    #fortune .gr-txt {
        margin: 35px 0 42px;
    }
    #fortune .gr-txt h3 {
        margin: 0 auto 24px;
    }
    #fortune .gr-txt h3 span {
        margin-left: 123px;
    }
    #fortune .btn-link {
        margin: 29px auto 0;
    }
    #fortune .box-parallax {
        height: 216px;
        margin: 98px -20px 0;
    }
    #kito {
        padding: 100px 0 0;
        background: url(../img/index/kito_deco.png) no-repeat right top 75px/43.4666666667% auto;
    }
    #kito h2 {
        padding: 52px 0 67px !important;
    }
    #kito .item1 {
        margin-bottom: 24px;
    }
    #kito .item1 .photo {
        margin: 0 -20px 20px 10px;
    }
    #kito .item1 .gr-txt h3 {
        margin: 0 auto 25px;
    }
    #kito .item1 .gr-txt h3 span {
        margin-left: 26px;
    }
    #kito .item2 h3 {
        margin-bottom: 10px;
    }
    #kito .item2 .gr-btn li a::before {
        bottom: 23px;
        transition: 0.1s ease;
    }
    #kito .item2 .gr-btn li a:hover::before {
        left: 55%;
    }
    #kito .item2 .gr-btn li img {
        height: 209px;
    }
    #kito .item2 .gr-btn li .sub {
        top: 33px;
        font-size: 20px;
    }
    #kuyo-grave {
        padding: 183px 0 99px;
        background: url(../img/index/kuyo-grave_deco.png) no-repeat center top 169px/100% auto;
    }
    #kuyo-grave h2 {
        padding: 35px 0 44px !important;
        margin: 0 auto 40px !important;
    }
    #kuyo-grave .photo {
        margin: 0 9px 27px -20px;
    }
    #kuyo-grave .gr-txt h3 {
        margin: 0 auto 24px;
    }
    #kuyo-grave .gr-txt h3 span {
        margin-left: 25px;
    }
    #kuyo-grave .btn-link {
        margin: 30px auto 0;
    }
    #bnr .gr-bnr li:not(:last-child) {
        margin-bottom: 18px;
    }
    #bnr .gr-bnr li a::before {
        right: 18px;
        transition: 0.1s ease;
    }
    #bnr .gr-bnr li a:hover img {
        opacity: 0.8 !important;
    }
    #bnr .gr-bnr li a:hover::before {
        right: 13px;
    }
    #bnr .gr-bnr li .sub {
        font-size: 24px;
    }
}
