@charset "UTF-8";
html{
    font-size: 62.5%;
    scroll-behavior: smooth;
    /* -webkit-font-smoothing: antialiased; */
}
body{
	font-size: 1.6rem;
    font-family: "Shippori Mincho", serif;
    margin: 0;
    padding: 0;
}
p,h1,h2,h3{
    margin: 0;
    padding: 0;
}
h1,h2,h3{
    font-weight: normal;
}
li{
    list-style: none;
}
a{
    color: inherit; 
    text-decoration: none;
}

/*--- 共通 --------------------------------*/
.section_title{
    font-family: "Italiana", sans-serif;
    font-size: clamp(34px, 32.8px + 0.31vw, 36px);
    letter-spacing: 2px;
    padding-bottom: 15px;
    color: #222;
}
.sub_title{
    letter-spacing: 0.3rem;
    font-size: clamp(14px, 12.85px + 0.308vw, 16px);
}
.section_text{
    color: #222;
    margin-bottom: 30px;
    line-height: 3.2rem;
    font-size: clamp(14px, 12.85px + 0.308vw, 16px);
}

/*--- button ---------------------------------*/
.button{
    position: relative;
    border-bottom: 1px solid #c2c2c2;
    padding: 8px 6px;
	display: inline-flex;
	gap: 30px;
    font-family: "Italiana", sans-serif;
    letter-spacing: 1px;
}
.arrow{
    stroke: #222;
    position: absolute;
    left: 0;
    width: 20px;
    transition: transform 0.45s ease;
}
.arrow_wrap{
    position: relative;
    width: 20px;
    height: 20px;
    overflow: hidden;
    display: flex;
	align-items: center;
}
.arrow.default{
	transform: translateX(0%);
}
.arrow.hover{
	transform: translateX(-100%);
}

.button:hover .arrow.default{
	transform: translateX(100%);
}
.button:hover .arrow.hover{
	transform: translateX(0%);
}

/*--- hover ----------------------*/
.button::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 0;              
    height: 1px;
    background-color: #222;    
    transition: width 0.3s ease;
}
.button:hover::after{
    width: 100%;               
}

/*--- title_wrap --------------------------------*/
.title_wrap{
    margin-bottom: 80px;
}
.title_wrap_flex{
    display: flex;
    align-items: baseline;
    margin-bottom: 30px;
}
.title_wrap_left{
    font-size: 16px;
    margin: 0;
}

/*--- header --------------------------------*/
header{
    width: 100%;
    padding: 5px 20px 5px;
    position: fixed;
    top: 0;
    left: 0;  
    box-sizing: border-box;
    z-index: 1000;

    background: #fff;
}
.nav_list{
    display: flex;
    align-items: center;
}
.logo{
    width: 160px;
    height: auto;
    margin-right: auto;
}
.logo h1 img{
    width: 100%;
    height: 100%;
}
.header_link{
    gap: 20px;
    display: flex;
    align-items: center;
}
/*--- resarvation --------------------------------*/
.resarv{
    display: inline;
    border: 1px solid #222;
    border-radius: 25px;
    padding: 8px 30px;
    font-size: 16px;
    letter-spacing: 1px;
    font-family: "Italiana", sans-serif;

    transition: all 0.4s ease;
}
.resarv:hover{
    border: 1px solid #222;
    background: #222;
    color: white;
}

/*--- hamburger --------------------------------*/
.hamburger{
    width: 45px;
    height: 45px;
    display: inline;
    position: relative;
    background: none;
    border: none;
    cursor: pointer;
    
    border: 1px solid #222;
    border-radius: 50px;
    z-index: 1001;
}
.hamburger_line{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 15px;
    height: 1px;
    background: #222;

    transition: all 0.6s ease;
}
.hamburger_line:nth-child(1){ top: 15px;}
.hamburger_line:nth-child(2){ top: 21px;}
.hamburger_line:nth-child(3){ top: 27px;}

.hamburger.active .hamburger_line:nth-child(1) {
    transform: translateX(-50%) rotate(45deg);
    top: 21px;
}

.hamburger.active .hamburger_line:nth-child(2) {
    opacity: 0; 
}

.hamburger.active .hamburger_line:nth-child(3) {
    transform: translateX(-50%) rotate(-45deg);
    top: 21px; 
}

/*---- hamburger open -------------------------------*/
.menu-items{
    position: absolute;
    top: 0px;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #ffffff;
    position: fixed;
    z-index: 1000;

    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s ease, visibility 0.6s ease;
}
.menu-items ul {
    padding: 0;
    margin: 0;
    margin-top: 100px;
    position: absolute;
    right: 30vw;
}
.menu-items li {
    padding: 15px;
    /* border-bottom: 1px solid #c2c2c2; */
    transition: color 0.5s ease;
}

/* .menu-items li::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 0;              
    height: 1px;
    background-color: #222;    
    transition: width 0.3s ease;
}
.menu-items li:hover::after{
    width: 100%;               
}

.menu-items a {
    text-decoration: none;
    color: #222;
    font-size: 20px;
    font-family: "Italiana", sans-serif;
    letter-spacing: 2px;
}
.menu-items li:hover{
	transform: translateX(100%);
}
.menu-items li:hover{
	transform: translateX(0%);
} */
.menu-items li:hover{
    color: #f8b811;
    color: #E87B4C;
}
.menu-items.active{
    opacity: 1;
    visibility: visible;
}
/*--- top -----------------------------------*/
.top{
    width: 100%;
    min-height: 100vh;
    margin-bottom: 200px;
    position: relative;
}
.top_image_wrap{
    position: absolute;
	inset: 0;
    filter: brightness(70%);
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.top_image{
    width: 100%;
    height: 100vh;
    position: absolute;
	inset: 0;
	opacity: 0;
	animation: 
        heroFade 15s infinite,
        scaleFade 15s infinite;
}
.t_image1{
    background: url(../image/shop_outside1.png) no-repeat center center/cover;
    animation-delay: 0s;
}
.t_image2{
    background: url(../image/menu5.png) no-repeat center center/cover;
    animation-delay: 5s;
}
.t_image3{
    background: url(../image/shop_inside3.png) no-repeat center center/cover;
    animation-delay: 10s;
}
@keyframes heroFade{
	0%   { opacity: 0; }
	10%  { opacity: 1; }
	30%  { opacity: 1; }
	40%  { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes scaleFade{
	0%   { scale: 1.2; }
    80%  { scale: 1; }
	100% { scale: 1; }
}
.main_title_wrap{
    position: absolute;
    left: 80px;
    bottom: 80px;
    color: #fff;
    -webkit-font-smoothing: antialiased;
}
.top_title{
    color: #fff;
    /* font-size: 34px; */
    font-size: clamp(22px, 15.07px + 1.85vw, 34px);
    padding-bottom: 20px;
}
.top_sub_title{
    font-size: 16px;
}
.scroll_down{
    position: absolute;
    right: 80px;
    bottom: 80px;
    color: #fff;
    font-family: "Italiana", sans-serif;
    font-size: 14px;
    letter-spacing: 1px;
    -webkit-font-smoothing: antialiased;
}
/*--- concept --------------------------------*/
.concept{
    width: 100%;
    min-height:  50vh;

    display: flex;
    align-items: center;
    margin-bottom: 100px;
}
.concept_inner{
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}
.concept_text_wrap{
    margin-bottom: 100px;
}
.concept_inner .button{
    margin-top: 60px;
    margin: 0 auto;
}
.concept_title{
    padding-bottom: 20px;
}

/*--- info --------------------------------*/
.info{
    width: 100%;
    height: 50vh;

    display: flex;
    align-items: center;
    /* margin-bottom: 80px; */
}
.info_inner{
    margin: 0 auto;
}
.info_title{
    vertical-align: top;
}
.info_content{
    display: block;
    border-bottom: 1px solid #CFCFCF;
    padding: 20px 10px 20px;
    transition: background 0.3s ease;
}
.day{
    color: #838383;
    margin: 0;
    padding-bottom: 15px;
}
.info_content_wrap .button{
    margin-top: 60px;
    margin-left: auto;
}
.info_content_wrap{
	display: flex;
    flex-direction: column;
}

/*--- hover ----------------------*/
.info_content:hover{
    background: #f5f5f5;
}

/*--- menu --------------------------------*/
.menu{
    display: flex;
    /* align-items: center; */
    min-height:  100vh;
}
.menu_inner{
    display: flex;
    margin: 0 auto;
}
.menu_title{
    margin-right: 15px;
}
.menu_image{
    aspect-ratio: 500 / 360;
    height: 500px;
    background: #D9D9D9;
    margin-bottom: 60px;
    background: url(../image/menu1.png) no-repeat center center/cover;
}
.text_area .button{
    margin-top: 60px;
    margin-left: auto;
}

/*--- floor --------------------------------*/
.floor_main_image{
    width: 100%;
    background: #D9D9D9;
    margin-bottom: 60px;

    background: url(../image/shop_inside1.png) no-repeat center center/cover;
}
.floor_inner{
    margin: 0 auto;
}
.floor_title{
    margin-right: 15px;
}
.floor_content{
    /* align-items: center; */
}
.floor_sub_image{
    width: 520px;
    margin-right: auto;
}
.floor_sub_image img{
    width: 100%;
}
/*--- access --------------------------------*/
.access{
    width: 100%;
}
.access_content{
    display: flex;
}
.access_inner{
    max-width: 800px;
    width: 80%;
    margin: 0 auto;
    margin-bottom: 200px;
}
.title_wrap{
    text-align: center;
}
.access_image{
    /* background: url(../image/shop_outside2.png) no-repeat center center/cover; */
}
.access_image img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/*--- footer --------------------------------*/
footer{
    width: 100%;
    min-height:  100vh;
    display: flex;
    flex-direction: column;
    text-align: center; 
    position: relative; 
}
.footer_image{
    width: 100%;
    height:  100vh;
    background: url(../image/shop_inside3.png) no-repeat fixed center/cover;
    filter: brightness(70%);
}
.copyright{
    font-size: 14px;
    margin-top: auto;
    padding-bottom: 10px;
    color: #fff;
    position: absolute;
    bottom: 20px;      
    left: 50%;
    transform: translateX(-50%); 
}

/*--- pc --------------------------------------------*/
@media screen and (min-width:1024px){
    /*--- top --------------------------------*/
    /*--- concept --------------------------------*/
    /*--- info --------------------------------*/
    .info{
        margin-bottom: 30px;
    }
    .info_inner{
        display: flex;
        max-width: 1200px;
        width: 90%;
        justify-content: space-between;
    }
    .info_content_wrap{
        width: 70%;
    }

    /*--- menu --------------------------------*/
    .menu_inner{
        max-width: 900px;
        width: 90%;
        align-items: center;

        justify-content: space-between;
    }
    .text_area{
        width: 40%;
    }
    .menu_image{
        width: 40%;
    }

    /*--- floor --------------------------------*/
    .floor{
        margin-bottom: 250px;
    }
    .floor_main_image{
        height: 400px;
    }
    .floor_inner{
        max-width: 1100px;
        width: 90%;
    }
    .floor_title{
        margin-bottom: 30px;
    }
    .floor_content{
        display: flex;
        justify-content: space-between;
        gap: 4vw;
    }
    .floor_sub_image{
        width: 520px;
    }
    .text_wrap{
        width: 520px;
    }

    /*--- access --------------------------------*/
    .access{
        margin-bottom: 200px;
    }
    /* .access_image{
        width: 100%;
        height: 60px;
    } */
    .access_content{
        gap: 8vh;
    }
    .access_image{
        width: 100%;
        height: 600px;
    }
}
/*--- TB -----------------------------------------*/
@media (max-width: 1024px) and (min-width: 560px) {
   /*--- header --------------------------------*/
    /* header{
    padding: 20px 15px 0;
    } */
    /*--- top --------------------------------*/
    .main_title_wrap{
        left: 20px;
        bottom: 80px;
    }
    .top_title{
        /* font-size: 22px; */
        padding-bottom: 14px;
    }
    .top_sub_title{
        font-size: 14px;
    }
    .scroll_down{
        right: 20px;
        bottom: 30px; 
        font-size: 12px;   
    }
    /*--- concept --------------------------------*/
    .concept{
        margin-bottom: 200px;
    }
    /*--- info --------------------------------*/
    .info{
        margin-bottom: 200px;
    }
    .info_inner{
        width: 80%;
    }
    .title_wrap_left{
        margin-bottom: 40px;
    }
    .info_content_wrap{
        width: 100%;
    }
    /*--- menu --------------------------------*/
    .menu{
        margin-bottom: 200px;
    }
    .menu_inner{
        width: 80%;
        flex-flow: column;
    }
    .menu_image{
        aspect-ratio: 360 / 400;
        height: auto;
        order: -1;
        margin-bottom: 60px;
    }

    /*--- floor --------------------------------*/
    .floor{
        width: 100%;
        margin-bottom: 200px;
    }
    .floor_main_image{

        height: 250px;
    }
    .floor_inner{
        width: 80%;
    }
    .floor_title{
        /* margin-right: 15px; */
    }
    .floor_sub_image{
        width: 100%;
        margin-bottom: 60px;
    }
    .text_wrap{
        width: 100%;
    }
    /*--- access --------------------------------*/
    .access{
        margin-bottom: 200px;
    }
    .access_content{
        flex-direction: column;
    }
    .access_image{
        width: 100%;
        height: 300px;
        margin-bottom: 60px;
        align-self: center; 
    }
    .access_image{
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}
/*--- SP -----------------------------------------*/
@media screen and (max-width:560px){
    .resarv{
        border-radius: 25px;
        padding: 8px 30px;
        font-size: 14px;
        letter-spacing: 1px;
    }
    /*--- top --------------------------------*/
    header{
        padding: 20px 15px 20px;
    }
    .logo{
       width: 100px;
    }
    .main_title_wrap{
        left: 20px;
        bottom: 80px;
    }
    .top_title{
        /* font-size: 22px; */
        padding-bottom: 14px;
    }
    .top_sub_title{
        font-size: 14px;
    }
    .scroll_down{
        right: 20px;
        bottom: 30px; 
        font-size: 12px;   
    }
    /*--- concept --------------------------------*/
    .concept{
        margin-bottom: 200px;
    }
    /*--- info --------------------------------*/
    .info{
        margin-bottom: 200px;
    }
    .info_inner{
        width: 80%;
    }
    .title_wrap_left{
        margin-bottom: 40px;
    }
    .info_content_wrap{
        width: 100%;
    }
    /*--- menu --------------------------------*/
    .menu{
        margin-bottom: 200px;
    }
    .menu_inner{
        width: 80%;
        flex-flow: column;
    }
    .menu_image{
        aspect-ratio: 360 / 400;
        height: auto;
        order: -1;
        margin-bottom: 60px;
    }

    /*--- floor --------------------------------*/
    .floor{
        width: 100%;
        margin-bottom: 200px;
    }
    .floor_main_image{

        height: 250px;
    }
    .floor_inner{
        width: 80%;
    }
    .floor_title{
        /* margin-right: 15px; */
    }
    .floor_sub_image{
        width: 100%;
        margin-bottom: 60px;
    }
    .text_wrap{
        width: 100%;
    }
    /*--- access --------------------------------*/
    .access{
        margin-bottom: 200px;
    }
    .access_content{
        flex-direction: column;
    }
    .access_image{
        width: 100%;
        height: 300px;
        margin-bottom: 60px;
        align-self: center; 
    }
    .access_image{
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}