@charset "UTF-8";

/* all */

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
p{
    font-size: 20px;
}
html{
    scroll-behavior: smooth;
}
body{
    font-family: "kiwimaru-r", serif;
    color: #333;
    background-color: #fff;
    line-height: 1.8;
}
img{
    display: block;
    width: 100%;
    height: auto;
}
a{
    color: inherit;
    text-decoration: none;
}
ul,ol{
    list-style: none;
}
.inner{
    width: min(1200px, calc(100% - 40px));
    margin: 0 auto;
}
section{
    width: 100%;
}
h1,h2,h3,p{
    margin: 0;
}

/* all */

/* font */

@font-face{
    font-family: kiwimaru-m;
    src: url(../fonts/KiwiMaru-Medium.ttf) format("truetype");
    font-display: swap;
}
@font-face{
    font-family: kiwimaru-r;
    src: url(../fonts/KiwiMaru-Regular.ttf) format("truetype");
    font-display: swap;
}

/* font */

/* section */

.about,.floor,.rooms,.memory,.around,.access{
    padding: 120px 0;
}
.todays-moon{
    padding: 80px 0;
}
.reservation{
    padding: 70px 0 180px;
    text-align: center;
}
/* .about{
    border-bottom: 3px solid #fdc9f8;
} */
.section-title{
    display: flex;
    justify-content: space-around;
    padding-bottom: 100px;
    max-width: 1050px;
    margin: 0 auto;
    text-align: center;
}
.section-moon{
    padding-bottom: 30px;
}
.section-h2{
    font-family: vdl-logojrblack, sans-serif;
    font-size: 75px;
    line-height: 1;
    letter-spacing: 0.08em;
    color: #000;
    -webkit-text-stroke: 5px #fff;
}
.section-p{
    font-family: "kiwimaru-r", serif;
    font-size: 30px;
    color: #0000ff;
    -webkit-text-stroke: 1px #0000ff;
}

/* section */

/* section color */

.about{
    background-color: #f6d8e4;
}
.floor{
    background-color: #f6d8e4;
}
.rooms{
    background-color: #f5f0fa;
}
.todays-moon{
    background: linear-gradient(
        to bottom,
        #514a8a 0%,
        #302d70 50%,
        #17184b 100%
    );
}
.memory{
    background-color: #fff9f2;
}
.around{
    background-color: #edf7fa;
}
.access{
    background-color: #fffcf8;
}
.reservation{
    background-color: #17184b;
}
.footer{
    background-color: #000041;
}

/* section color */

/* loading */

.loading{
    position: fixed;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(
        to bottom,
        #514a8a,
        #302d70,
        #17184b
    );
    z-index: 9999;
    animation: loading-out 0.7s ease 1.8s forwards;
}
.loading-logo{
    width: 180px;
    height: auto;
    position: relative;
    z-index: 2;
    animation:
        logo-start 0.8s ease-out 0s 1 both,
        logo-last 1.8s ease-in-out 0.8s infinite;
}
@keyframes logo-start{
    0%{
        opacity: 0;
        transform: scale(0.6);
    }
    60%{
        opacity: 1;
        transform: scale(1.12);
    }
    100%{
        opacity: 1;
        transform: scale(1);
    }
}
@keyframes logo-last{
    0%,100%{
        transform: translateY(0) scale(1);
    }
    50%{
        transform: translateY(-8px) scale(1.02);
    }
}
.loading-star{
    position: absolute;
    color: #fff0a8;
    animation: loading-star 1.2s ease-in-out infinite;
}
.star-a{
    top: 32%;
    left: 35%;
    font-size: 26px;
}
.star-b{
    top: 42%;
    right: 34%;
    font-size: 18px;
    animation-delay: 0.3s;
}
.star-c{
    bottom: 32%;
    left: 40%;
    font-size: 20px;
    animation-delay: 0.6s;
}
.star-d{
    bottom: 38%;
    right: 38%;
    font-size: 14px;
    animation-delay: 0.9s;
}
@keyframes loading-star{
    0%,100%{
        opacity: 0.2;
        transform: scale(0.7);
    }
    50%{
        opacity: 1;
        transform: scale(1.2);
    }
}
@keyframes loading-out{
    0%{
        opacity: 1;
        visibility: visible;
    }
    100%{
        opacity: 0;
        visibility: hidden;
    }
}

/* loading */

/* header */

.header{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
}
.header-inner{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 30px 40px;
}
.logo{
    width: 100px;
    position: fixed;
    top: 10px;
    left: 20px;
    z-index: 1002;
}
.logo img{
    transition: transform 0.3s ease;
}
.logo:hover img{
    transform: scale(1.08) rotate(-3deg);
}
#menu-toggle{
    display: none;
}
.menu-btn{
    position: fixed;
    top: 30px;
    right: 40px;
    width: 56px;
    height: 56px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    z-index: 1005;
    border: 1.5px solid rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    transition: 0.3s;
    background-color: rgba(23, 24, 75, 0.4);
    backdrop-filter: blur(6px);
}
.menu-btn span{
    width: 28px;
    height: 1.5px;
    background-color: #fff;
    border-radius: 10px;
    transition: 0.4s;
}
.nav-menu{
    position: fixed;
    top: 0;
    right: -100%;
    width: 40%;
    height: 100vh;
    background-color: rgba(23, 24, 75, 0.95);
    display: flex;
    justify-content: center;
    align-items: center;
    transition: 0.5s;
    z-index: 1004;
}
.nav-menu-list{
    text-align: center;
}
.header-nav-item{
    margin: 25px 0;
}
.nav-menu a{
    position: relative;
    display: inline-block;
    color: #fff;
    font-family: "source-han-serif-japanese", serif;
    font-size: 24px;
    letter-spacing: 0.1em;
}
.nav-menu a::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 2px;
    background-color: #fff0a8;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.2s ease;
}
.nav-menu a:hover::after{
    transform: scaleX(1);
}
#menu-toggle:checked~ .nav-menu{
    right: 0;
}
#menu-toggle:checked + .menu-btn span:nth-child(1){
    transform: translateY(9px) rotate(45deg);
}
#menu-toggle:checked + .menu-btn span:nth-child(2){
    opacity: 0;
}
#menu-toggle:checked + .menu-btn span:nth-child(3){
    transform: translateY(-9px) rotate(-45deg);
}
.menu-btn:hover{
    opacity: 0.6;
    background-color: rgba(23, 24, 75, 0.55);
}

/* header */

/* TOP */

.top{
    position: relative;
    min-height: 100vh;
    background-image: url("../img/late-mh-out.webp");
    background-size: cover;
    background-position: center;
    color: #fff;
}
.top-copy{
    position: absolute;
    top: 50%;
    left: 8%;
    transform: translateY(-50%);
}
.top-h1{
    font-family:"source-han-serif-japanese", serif;
    font-weight: 900;
    font-style: normal;
    font-size: clamp(36px, 5vw, 72px);
    line-height: 1.4;
}
.top-p{
    margin-top: 24px;
    font-size: 20px;
    font-family:"kiwimaru-r", serif;
    font-style: normal;
}
.top-scroll{
    position: absolute;
    right: 40px;
    bottom: 30px;
    text-align: center;
    font-family: "source-han-serif-japanese", serif;
    font-weight: 900;
    font-size: 30px;
}
.top-arrow{
    display: inline-block;
    animation: scroll-arrow 1.5s ease-in-out infinite;
}
@keyframes scroll-arrow{
    0%{
        transform: translateY(0);
        opacity: 0.5;
    }
    50%{
        transform: translateY(8px);
        opacity: 1;
    }
    100%{
        transform: translateY(0);
        opacity: 0.5;
    }
}

/* TOP */

/* ABOUT */

.about-content{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 60px;
    max-width: 1050px;
    margin: 40px auto 0;
}
.about .inner{
    max-width: 1200px;
    margin: 0 auto;
}
.about-image{
    width: 47%;
}
.about-image img{
    width: 100%;
    border-radius: 20px;
}
.about-text{
    width: fit-content;
    font-family: "kiwimaru-r", serif;
    line-height: 2.2;
    transform: translateY(10px);
}
.about-text p{
    display: inline-block;
}
.br1090{
    display: none;
}
.about-mh{
    font-family: vdl-logojrblack, sans-serif;
    font-size: 24px;
    color: #59658f;
}

/* ABOUT */

/* FLOOR */

.floor{
    padding-bottom: 0;
}
.floor-block{
    width: 100%;
}
.floor .section-title{
    margin-bottom: 50px;
}
.floor-intro{
    text-align: center;
    margin-bottom: 50px;
    font-family: "kiwimaru-r", serif;
}
.floor-catch{
    font-size: 40px;
    margin-bottom: 15px;
    font-family:"source-han-serif-japanese", serif;
    font-weight: 900;
    font-style: normal;
}
.floor-catch span:first-child{
    color:#ff7bac;
}
.floor-catch span:last-child{
    color: #0071bc;
}
.floor-item{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 70px;
    padding-bottom: 60px;
    padding-top: 60px;
}
.floor-image{
    width: 40%;
}
.floor-image img{
    width: 100%;
    border-radius: 20px;
}
.floor-text{
    width: 38%;
}
.floor-02 .floor-text,.floor-04 .floor-text{
    text-align: right;
}
.floor-number{
    font-family: "source-han-serif-japanese", serif;
    font-size: 72px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 20px;
}
.floor-name{
    font-family: "source-han-serif-japanese", serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 25px;
}
.room-many{
    margin-top: 25px;
    font-family: source-han-serif-japanese, serif;
    font-size: 28px;
    line-height: 1.8;
}
.cloud-names,.star-names,.moon-names{
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    font-weight: bold;
    letter-spacing: 0.1em;
    font-size: 28px;
}
.cloud-names{
    color: #005bac;
}
.star-names{
    color: #fcee21;
}
.moon-names{
    color: #fff;
    font-size: 46px;
}
.floor-02{
    background-color: #eccbd3;
}
.floor-03{
    background-color: #d3edfb;
}
.floor-04{
    background-color: #55649A;
    color: #fff;
}
.floor-05{
    background-color: #1d1f87;
    color: #fff;
}
.star-terrace{
    position: relative;
}
.star-terrace img{
    width: 100%;
    display: block;
}
.star-terrace-text{
    position: absolute;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: #fff;
    width: 100%;
}
.st{
    font-family: source-han-serif-japanese, serif;
    font-size: 60px;
    font-weight: 900;
    line-height: 1.2;
    margin-bottom: 8px;
    text-shadow: 0 2px 6px rgba(0,0,0,0.35);
}
.st-p{
    font-family: "kiwimaru-r", serif;
    font-size: 35px;
    font-weight: normal;
    line-height: 1.6;
    text-shadow: 0 2px 6px rgba(0,0,0,0.35);
}
.floor-p{
    font-size: 24px;
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    line-height: 1.5em;
}
.moon-p{
    color: #fcee21;
}

/* 縦線 */

.floor-stair{
    position: relative;
}
.floor-stair::before{
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    background-color: rgba(80, 80, 100, 0.6);
    z-index: 1;
}
.floor-item,.floor-intro,.floor .section-title{
    position: relative;
    z-index: 2;
}
.floor-block{
    position: relative;
}
.floor-block::before,.star-terrace::before{
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    background-color: #fff;
    border: 2px solid #666;
    border-radius: 50%;
    z-index: 3;
}

/* 縦線 */

/* FLOOR */

/* ROOMS */

.rooms{
    background-color: #f5f0fa;
    padding: 120px 0 0;
}
.rooms-intro{
    text-align: center;
    margin-top: 40px;
    margin-bottom: 60px;
}
.rooms-en{
    font-family: "source-han-serif-japanese", serif;
    font-size: 28px;
    margin-bottom: 10px;
}
.rooms-ja{
    font-family: "kiwimaru-r", serif;
    font-size: 16px;
}
.rooms-top{
    display: flex;
    justify-content: center;
    gap: 36px;
    padding-bottom: 80px;
}
.room-card{
    text-align: center;
    transition: transform 0.3s ease;
}
.room-card:hover{
    transform: translateY(-6px);
}
.small-card{
    width: 380px;
}
.room-heading{
    font-family: "kiwimaru-r", serif;
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 6px;
    position: relative;
    display: inline-block;
    letter-spacing: 0.03em;
}
.room-subname{
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    font-size: 28px;
    margin-bottom: 16px;
}
.room-image-box{
    width: 100%;
    aspect-ratio: 3 / 2;
    background-color: #777;
    color: #fff;
    overflow: hidden;
    border-radius: 8px 8px 0 0;
}
.room-image-box img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.room-image-box img{
    transform: scale(1.04);
}
.room-card-text{
    width: 100%;
    background-color: #fff;
    border: 2px solid #4c3a3a;
    border-top: none;
    padding: 20px 16px;
    border-radius: 0 0 8px 8px;
    font-family: "kiwimaru-r", serif;
}
.room-card-text p{
    font-size: 16px;
    margin-bottom: 16px;
}
.more-close{
    display: none;
}
.more-toggle:checked + .view-more .more-open{
    display: none;
}
.more-toggle:checked + .view-more .more-close{
    display: inline;
}
.view-more{
    display: inline-block;
    font-size: 14px;
    color: #4c57a8;
    border: 1px solid #b9b9c9;
    padding: 4px 10px;
    border-radius: 6px;
    transition: 0.3s;
    cursor: pointer;
}
.view-more:hover{
    background-color: #4c57a8;
    color: #fff;
}
.modal-toggle{
    display: none;
}
.more-toggle{
    display: none;
}
.room-detail{
    text-align: left;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin-top: 0;
    transition:
        max-height 0.5s ease,
        opacity 0.4s ease,
        margin-top 0.4s ease;
}
.room-detail p{
    font-size: 15px;
    line-height: 1.8;
}
.room-detail dl{
    margin-top: 20px;
}
.room-detail dt{
    margin-top: 12px;
    font-family: "kiwimaru-m", serif;
    font-size: 14px;
    color: #59658f;
}
.room-detail dd{
    margin-left: 0;
    font-size: 15px;
}
.more-toggle:checked ~ .room-detail{
    max-height: fit-content;
    opacity: 1;
    margin-top: 25px;
}
.cloud-heading::before,.cloud-heading::after{
    content: "☁️";
    font-size: 20px;
    color: #7fcfff;
    margin: 0 6px;
}
.star-heading::before,.star-heading::after{
    content: "⭐";
    font-size: 20px;
    color: #f6c437;
    margin: 0 6px;
}
.moon-heading::before,.moon-heading::after{
    content: "🌙";
    font-size: 22px;
    color: #f4c542;
    margin: 0 6px;
}
.moon-card{
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}
.moon-image-box{
    aspect-ratio: 3 / 2;
}
.moon-text p{
    font-size: 18px;
    line-height: 1.8;
}
.moon-view{
    font-size: 22px;
    padding: 8px 16px;
}
.moon-area{
    position: relative;
    background-color: #ece7f7;
    padding: 110px 0 100px;
    margin-top: 50px;
}
.moon-area::before{
    content: "";
    position: absolute;
    top: -45px;
    left: 0;
    width: 100%;
    height: 90px;
    background-color: #ece7f7;
    border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.moon-area .inner{
    position: relative;
    z-index: 1;
}


/* ROOMS */

/* TODAY'S MOON */

.todays-moon-sec{
    color: #ffff00;
    -webkit-text-stroke: 1px #ffff00;
}
.moon-content{
    position: relative;
    min-height: 230px;
}
.moon-content p:first-child{
    position: absolute;
    top: 0;
    left: 0;
    font-family: "kiwimaru-r", serif;
    font-size: 50px;
    color: #fff;
}

/* 月 */

.moon-icon{
    position: absolute;
    top: 20px;
    right: 24%;
    font-size: 150px;
    line-height: 1;
    color: #fff0a8;
    -webkit-text-stroke: 3px #fff0a8;
    animation: moon-float 4s ease-in-out infinite;
}
@keyframes moon-float{
    0%,
    100%{
        transform: translateY(0);
    }
    50%{
        transform: translateY(-8px);
    }
}

/* 月 */

.moon-kind{
    position: absolute;
    top: 65px;
    left: 40%;
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    font-size: 80px;
    color: #fff;
}
.moondate{
    color: #fff500;
    font-family: "kiwimaru-m", serif;
    text-align: center;
    font-size: 24px;
    letter-spacing: 0.05em;
    padding-top: 60px;
}

/* 星 */

.moon-star{
    position: absolute;
    color: #fff0a8;
    animation: moon-star-twinkle 2s ease-in-out infinite;
}
.star-01{
    top: 75px;
    left: 5%;
    font-size: 36px;
}
.star-02{
    bottom: 10px;
    left: 25%;
    font-size: 28px;
    animation-delay: 0.5s;
}
.star-03{
    top: 30px;
    right: 5%;
    font-size: 34px;
}
@keyframes moon-star-twinkle{
    0%,
    100%{
        opacity: 0.35;
        transform: scale(0.8);
    }
    50%{
        opacity: 1;
        transform: scale(1.15);
    }
}

/* 星 */

/* TODAY'S MOON */

/* MEMORY */

.memory-list{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 55px;
}
.memory-card{
    width: 300px;
    background-color: #fff;
    padding: 0 0 20px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
    font-family: tk-takumi-shokei-font-r, sans-serif;
    text-align: center;
    transition: 0.3s;
}
.memory-card:nth-child(1){
    transform: rotate(-3deg);
    margin-top: 10px;
}
.memory-card:nth-child(2){
    transform: translateY(-15px);
}
.memory-card:nth-child(3){
    transform: rotate(3deg);
    margin-top: 10px;
}
.memory-card img{
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    display: block;
}
.memory-card p{
    margin: 20px 18px 10px;
    font-size: 20px;
    line-height: 1.8;
    font-weight: 500;
}
.memory-card span{
    display: block;
    margin-top: 10px;
    color: #1d2278;
    font-size: 18px;
    line-height: 1.6;
}
.memory-card:hover{
    transform: translateY(-20px) rotate(0deg);
}
.memory-card:nth-child(2):hover{
    transform: translateY(-25px);
}
.memory-reservation{
    margin-top: 80px;
    text-align: center;
}
.memory-reserv-p{
    color: #0071bc;
    font-family: tk-takumi-shokei-font-r, sans-serif;
    font-size: 35px;
    margin-bottom: 25px;
}
.memory-reservation a{
    display: inline-block;
    padding: 6px 40px;
    border: 2px solid #1d2278;
    border-radius: 10px;
    color: #0071bc;
    background-color: #fff;
    font-family: tk-takumi-shokei-font-r, sans-serif;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.3;
    transition: 0.3s;
}
.memory-reservation a:hover{
    background-color: #1d2278;
    color: #fff;
}
.memory-arrow{
    display: inline-block;
    margin-top: 3px;
    font-size: 24px;
}

/* MEMORY */

/* AROUND */

.around{
    background-color: #edf7fa;
    padding-bottom: 100px;
}

.around-intro{
    margin: 50px 0 60px;
    text-align: center;

    font-family: "kiwimaru-m", serif;
    font-size: 28px;
    line-height: 1.6;
}


/* 3列 */

.around-list{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 45px;
}
.around-item{
    width: 300px;
    text-align: center;
    font-family: "kiwimaru-r", serif;
}
.around-item img{
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 0;
    display: block;
    margin-bottom: 18px;
}
.around-jp{
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    font-size: 28px;
    line-height: 1.4;
    margin-bottom: 0;
    padding-bottom: 0;
}
.around-en{
    padding-top: 0;
    margin-top: 0;
    margin-bottom: 24px;
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    font-size: 20px;
    letter-spacing: 0.08em;
}
.around-p{
    min-height: 90px;
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    font-size: 22px;
    line-height: 1.5;
}
.around-item span{
    display: inline-block;
    font-family: "kiwimaru-r", serif;
    font-size: 20px;
    padding-top: 30px;
    text-align: left;
    margin: 0 auto;
}
.around-intro span ,.around-jp{
    text-decoration: underline;
    text-decoration-color: #fff200;
    text-decoration-thickness: 6px;
    text-underline-offset: 3px;
}

/* AROUND */

/* ACCESS */

.access{
    background-color: #fffcf8;
    padding-bottom:100px;
}
.access-content{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 70px;
    margin-top: 70px;
}
.access-map{
    width: 48%;
    border: 3px solid #000;
}
.access-map img{
    width: 100%;
    display: block;
}
.access-text{
    width: fit-content;
    transform: translateY(-10px);
    text-align: right;
}
.access-text h3{
    font-family: vdl-logojrblack, sans-serif;
    font-size: 50px;
    font-weight: 900;
    color: #5e6a9a;
    margin-bottom: 25px;
    text-align: center;
}
.address{
    font-family: "kiwimaru-m", serif;
    font-size: 36px;
    line-height: 1.8;
}
.access-p{
    margin-top: 25px;
    font-family: "kiwimaru-r", serif;
    font-size: 24px;
    color: #777;
}
.map-btn{
    display: inline-block;
    margin-top: 30px;
    padding: 10px 22px;
    border: 2px solid #1d2278;
    border-radius: 10px;
    background-color: #fff;
    color: #111;
    font-family: "source-han-serif-japanese", serif;
    font-size: 20px;
    font-weight: 700;
    transition: 0.3s;
}
.map-btn:hover{
    background-color: #1d2278;
    color: #fff;
}
.access-btn{
    margin-left: 3px;
    display: inline-block;
    transition: transform 0.3s ease;
}
.map-btn:hover .access-btn{
    transform: translateX(6px);
}

/* ACCESS */

/* RESERVATION */

.reservation .section-h2{
    text-shadow:
        0 0 4px #fff500,
        0 0 8px #fff500,
        0 0 14px rgba(255, 245, 0, 0.8);
}
.reservation-content{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.reservation-star{
    color: #fff0a8;
    font-size: 60px;
    line-height: 1;
    margin-bottom: 70px;
}
.reserv-catch{
    font-family: tk-takumi-okiraku-markertaip, sans-serif;
    color: #fff500;
    font-size: 38px;
    line-height: 1.5;
    margin-bottom: 12px;
}
.reserv-p{
    font-family: "kiwimaru-r", serif;
    font-size: 24px;
    line-height: 1.6;
    margin-bottom: 35px;
    color: #fff;
}
.reservation-btn{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 520px;
    padding: 24px 34px;
    background-color: #fff;
    color: #111;
    border-radius: 999px;
    font-family: "kiwimaru-m", serif;
    font-size: 28px;
    transition: 0.3s;
}
.reserv-arrow{
    font-size: 28px;
}
.reservation-btn:hover{
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}
.reservation-moon{
    color: #fff0a8;
    font-size: 80px;
    line-height: 1;
    margin-top: 70px;
    -webkit-text-stroke: 2px #fff0a8;
}
.reserv-arrow{
    display: inline-block;
    transition: transform 0.3s ease;
}
.reservation-btn:hover .reserv-arrow{
    transform: translateX(8px);
}

/* RESERVATION */

/* FOOTER */

.footer .inner{
    text-align: center;
    padding-block: 30px;
}
.footer-nav{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    max-width: 700px;
    margin: 0 auto 25px;
    gap: 0 14px;
}
.footer-nav-item{
    font-family: vdl-logojrblack, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.6;
}
.footer-nav-item a{
    color: #000;
    -webkit-text-stroke: 2px #fff;
    transition: 0.1s;
}
.footer-nav-item a:hover{
    text-shadow:
        0 0 4px #fff500,
        0 0 8px #fff500,
        0 0 14px rgba(255, 245, 0, 0.8);
}
.footer-nav-item:not(:last-child,:nth-child(3))::after{
    content: "|";
    margin-left: 14px;
    color: #fff;
}
.footer-nav-item:last-child{
    flex-basis: 100%;
    margin-top: 15px;
    font-size: 40px;
}
.footer-nav-item:nth-last-child(2)::after{
    content: "";
    margin: 0;
}
.footer-logo{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 70px;
    margin-top: 25px;
    padding-bottom: 20px;
}
.footer-logo img{
    width: 90px;
    height: auto;
}
.copyright{
    font-family: "kiwimaru-r", serif;
    font-size: 18px;
    letter-spacing: 0.08em;
    color: #fff;
}
.back{
    font-family: "kiwimaru-r", serif;
    font-size: 16px;
    color: #000;
    background-color: #febbe9;
    padding: 5px 10px;
    border-radius: 10px;
    border: #fff solid 1px;
}

/* FOOTER */


@media screen and (max-width: 1090px){

    /* section */

    .section-title{
        max-width: 100%;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 10px;
        padding-bottom: 50px;
    }
    .section-h2{
        font-size: 60px;
        text-align: center;
    }
    .section-p{
        text-align: center;
    }

    /* section */
    
    /* loading */

    .star-a{
        top: 22%;
        left: 25%;
    }
    .star-b{
        top: 22%;
        right: 24%;
        font-size: 18px;
        animation-delay: 0.3s;
    }
    .star-c{
        bottom: 22%;
        left: 40%;
        font-size: 20px;
        animation-delay: 0.6s;
    }
    .star-d{
        bottom: 28%;
        right: 28%;
        font-size: 14px;
        animation-delay: 0.9s;
    }

    /* TOP */

    .logo{
        width: 85px;
    }

    /* TOP */

    /* ABOUT */

    .about-text p{
        font-size: 16px;
    }
    .br1090{
        display: block;
    }

    /* ABOUT */

    /* TODAY'S MOON */

    .moon-content p:first-child{
        font-size: 36px;
    }
    .moon-kind{
        font-size: 60px;
    }
    .moon-icon{
        font-size: 80px;
    }
    .moon-date{
        font-size: 20px;
    }

    /* TODAY'S MOON */

    /* MEMORY */

    .memory-card p{
        font-size: 16px;
    }
    .memory-card span{
        font-size: 14px;
    }

    /* MEMORY */

    /* ACCESS */

    .access-text h3{
        font-size: 42px;
    }
    .address{
        font-size: 28px;
    }

    /* ACCESS */
}


/* SP */

@media screen and (max-width: 768px){

    /* section title */

    .section-title{
        padding-bottom: 55px;
    }
    .section-h2{
        font-size: 44px;
        -webkit-text-stroke: 3px #fff;
        letter-spacing: 0.05em;
    }
    .section-p{
        font-size: 20px;
        -webkit-text-stroke: 0;
        line-height: 1.5;
    }

    /* header */

    .nav-menu{
        width: 100%;
    }

    /* header */

    /* top */

    .top{
        min-height: 100svh;
        background-position: center;
    }
    .top-copy{
        top: 45%;
        left: 8%;
        right: 8%;
        transform: translateY(-50%);
    }
    .top-h1{
        font-size: 30px;
        line-height: 1.5;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
    }
    .top-p{
        margin-top: 18px;
        font-size: 16px;
        line-height: 1.8;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
    }
    .top-scroll{
        right: 20px;
        bottom: 20px;
        font-size: 20px;
    }
    .logo{
        width: 70px;
    }
    .menu-btn{
        top: 20px;
        right: 20px;
        width: 50px;
        height: 50px;
    }

    /* TOP */

    /* ABOUT */

    .about{
        padding: 80px 0;
    }
    .about-content{
        flex-direction: column;
        gap: 35px;
        width: 100%;
        margin: 0 auto;
    }
    .about-image{
        width: 90%;
        margin: 0 auto;
    }
    .about-image img{
        width: 100%;
        border-radius: 15px;
    }
    .about-text{
        width: 90%;
        margin: 0 auto;
        text-align: center;
        font-size: 15px;
        line-height: 2;
        transform: none;
    }
    .about-mh{
        font-size: 28px;
    }

    /* ABOUT */

    /* FLOOR */

    .floor{
        padding-top: 80px;
    }
    .floor-intro{
        margin-bottom: 40px;
    }
    .floor-catch{
        font-size: 24px;
    }
    .floor-p{
        font-size: 18px;
    }
    .floor-item{
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
        padding: 50px 30px 50px 55px;
    }
    .floor-image{
        width: 100%;
    }
    .floor-image img{
        width: 100%;
        border-radius: 15px;
    }
    .floor-text{
        width: 100%;
        text-align: left;
    }
    .floor-02 .floor-text,.floor-04 .floor-text{
        text-align: left;
    }
    .floor-02 .floor-image,.floor-04 .floor-image{
        order: 1;
    }
    .floor-02 .floor-text,.floor-04 .floor-text{
        order: 2;
    }
    .floor-number{
        font-size: 50px;
        margin-bottom: 10px;
    }
    .floor-name{
        font-size: 26px;
        margin-bottom: 15px;
    }
    .room-many{
        font-size: 24px;
    }
    .cloud-names,.star-names{
        font-size: 18px;
    }
    .moon-names{
        font-size: 30px;
    }
    .floor-stair::before{
        left: 18px;
        transform: none;
    }
    .floor-block::before,.star-terrace::before{
        left: 18px;
        transform: translate(-50%, -50%);
        width: 14px;
        height: 14px;
    }
    .star-terrace-text{
        top: 20px;
    }
    .st{
        font-size: 36px;
    }
    .st-p{
        font-size: 22px;
    }
    .star-terrace img{
        height: 420px;
        object-fit: cover;
        object-position: center;
    }

    /* FLOOR */

    /* ROOMS */

    .rooms{
        padding-top: 80px;
    }
    .rooms-intro{
        margin-top: 20px;
        margin-bottom: 40px;
    }
    .rooms-en{
        font-size: 22px;
    }
    .rooms-ja{
        font-size: 14px;
    }
    .rooms-top{
        flex-direction: column;
        align-items: center;
        gap: 30px;
        padding-bottom: 60px;
    }
    .small-card{
        width: 90%;
        max-width: 420px;
    }
    .room-heading{
        font-size: 26px;
    }
    .room-subname{
        font-size: 20px;
    }
    .room-card-text p{
        font-size: 14px;
    }
    .view-more{
        font-size: 13px;
    }
    .moon-area{
        margin-top: 35px;
        padding-top: 60px;
        padding-bottom: 80px;
    }
    .moon-card{
        width: 90%;
        max-width: 460px;
    }
    .moon-heading{
        font-size: 28px;
    }
    .moon-text p{
        font-size: 15px;
    }
    .moon-view{
        font-size: 16px;
        padding: 6px 14px;
    }
    .moon-area::before{
        top: -30px;
        height: 60px;
    }

    /* ROOMS */

    /* TODAY'S MOON */

    .todays-moon{
        padding: 70px 0 60px;
    }
    .section-moon{
        padding-bottom: 25px;
        gap: 10px;
    }
    .section-moon h2{
        font-size: 30px;
    }
    .moon-content{
        min-height: 320px;
    }
    .moon-content p:first-child{
        top: 0;
        left: 0;
        font-size: 28px;
    }
    .moon-icon{
        top: 95px;
        right: 10%;
        font-size: 88px;
    }
    .moon-kind{
        top: 125px;
        text-align: center;
        font-size: 40px;
    }
    .moon-date{
        left: 50%;
        bottom: 24px;
        transform: translateX(-50%);
        font-size: 18px;
        white-space: nowrap;
    }
    .star-01{
        top: 75px;
        left: 8%;
        font-size: 26px;
    }
    .star-02{
        bottom: 45px;
        left: 18%;
        font-size: 22px;
    }
    .star-03{
        top: 65px;
        right: 5%;
        font-size: 24px;
    }

    /* TODAY'S MOON */

    /* MEMORY */

    .memory{
        padding: 80px 0;
    }
    .memory-list{
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }
    .memory-card{
        width: 86%;
        max-width: 360px;
    }
    .memory-card:nth-child(1){
        transform: rotate(-2deg);
        margin-top: 0;
    }
    .memory-card:nth-child(2){
        transform: rotate(1deg);
    }
    .memory-card:nth-child(3){
        transform: rotate(-1.5deg);
        margin-top: 0;
    }
    .memory-card p{
        line-height: 1.7;
        margin: 18px 15px 8px;
    }
    .memory-reservation{
        margin-top: 60px;
    }
    .memory-reserv-p{
        font-size: 20px;
    }
    .memory-reservation a{
        font-size: 18px;
        padding: 8px 28px;
    }
    .memory-card:hover,.memory-card:nth-child(2):hover{
        transform: none;
    }

    /* MEMORY */

    /* AROUND */

    .around{
        padding: 80px 0;
    }
    .around-intro{
        margin: 20px 0 45px;
        font-size: 22px;
        line-height: 1.7;
    }
    .around-list{
        flex-direction: column;
        align-items: center;
        gap: 45px;
    }
    .around-item{
        width: 88%;
        max-width: 420px;
    }
    .around-item img{
        width: 100%;
        margin-bottom: 15px;
    }
    .around-jp{
        font-size: 24px;
    }
    .around-en{
        font-size: 17px;
        margin-bottom: 18px;
    }
    .around-p{
        min-height: auto;
        font-size: 18px;
        line-height: 1.6;
    }
    .around-item span{
        font-size: 16px;
        padding-top: 12px;
        text-align: center;
    }

    /* AROUND */

    /* ACCESS */

    .access{
        padding: 80px 0;
    }
    .access-content{
        flex-direction: column;
        gap: 20px;
        margin-top: 20px;
    }
    .access-map{
        width: 95%;
        max-width: 420px;
        margin: 0 auto;
    }
    .access-text{
        width: 90%;
        margin: 0 auto;
        transform: none;
        text-align: center;
    }
    .access-text h3{
        font-size: 36px;
        margin-bottom: 20px;
    }
    .address{
        font-size: 20px;
        line-height: 1.8;
    }
    .access-p{
        margin-top: 18px;
        font-size: 16px;
    }
    .map-btn{
        margin-top: 24px;
        padding: 8px 18px;
        font-size: 16px;
    }

    /* ACCESS */

    /* RESERVATION */

    .reservation{
        padding: 70px 0 90px;
    }
    .reservation .section-title{
        padding-bottom: 40px;
    }
    .reservation .section-h2{
        font-size: 30px;
        text-shadow:
            0 0 3px #fff500,
            0 0 6px #fff500,
            0 0 10px rgba(255, 245, 0, 0.7);
    }
    .reservation-star{
        font-size: 42px;
        margin-bottom: 30px;
    }
    .reserv-catch{
        font-size: 26px;
        line-height: 1.5;
        margin-bottom: 14px;
    }
    .reserv-p{
        font-size: 16px;
        line-height: 1.8;
        margin-bottom: 30px;
    }
    .reservation-btn{
        width: 88%;
        max-width: 420px;
        padding: 18px 24px;
        font-size: 20px;
    }
    .reserv-arrow{
        font-size: 22px;
    }
    .reservation-moon{
        font-size: 58px;
        margin-top: 30px;
    }

    /* RESERVATION */

    /* FOOTER */

    .footer .inner{
        padding-block: 35px;
    }
    .footer-nav{
        max-width: 350px;
        gap: 6px 10px;
        margin-bottom: 20px;
    }
    .footer-nav-item{
        font-size: 16px;
        line-height: 1.5;
    }
    .footer-nav-item a{
        -webkit-text-stroke: 1px #fff;
    }
    .footer-nav-item:last-child{
        flex-basis: 100%;
        margin-top: 12px;
        font-size: 24px;
    }
    .footer-logo{
        flex-direction: column;
        gap: 18px;
        margin-top: 10px;
    }
    .footer-logo img{
        width: 75px;
    }
    .copyright{
        font-size: 14px;
        opacity: 0.8;
    }

}