/*Reset =============================================*/
*{
    box-sizing: border-box;
    background-repeat: no-repeat;
  }
  html,body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,dl,dt,dd,figure,figcaption,button{
    margin: 0;
    padding: 0;
  }
  ul,li{
  list-style: none;
  }
  a{
  text-decoration: none;
  color: inherit;
  }
  a[href^="tel:"] {
    pointer-events: all;
  }
  img,svg{
  vertical-align: bottom;
  border: none;
  width: 100%;
  max-width:100%;
  height:auto;
  }
  svg{
    /* fill: currentColor; */
    vertical-align: bottom;
  }
  button{
    background-color: inherit;
    border: none;
  }
  table {
    border-collapse: collapse;
  }
  
  /* @font-face {
    font-family: "YakuHanJP"; font-style: normal; font-display: swap;
    font-weight: 400;
    src: url("/font/YakuHanJP/YakuHanJP-Regular.woff2") format("woff2");
  }
  @font-face {
    font-family: "YakuHanJP"; font-style: normal; font-display: swap;
    font-weight: 500;
    src: url("/font/YakuHanJP/YakuHanJP-Medium.woff2") format("woff2");
  }
  @font-face {
    font-family: "YakuHanJP"; font-style: normal; font-display: swap;
    font-weight: 600;
    src: url("/font/YakuHanJP/YakuHanJP-Bold.woff2") format("woff2");
  } */
  
  @font-face {
    font-family: "NotoSansCJKjp"; font-style: normal; font-display: swap;
    font-weight: 400;
    src:  local('Noto Sans CJK JP'),
    local('NotoSansCJKjp-Regular'),
    local('NotoSansJP-Regular'),
    url('/font/NotoSansCJKJP/NotoSansCJKjp-Regular.woff2') format('woff2');
  }
  @font-face {
    font-family: "NotoSansCJKjp"; font-style: normal; font-display: swap;
    font-weight: 500;
    src: local('NotoSansCJKjp-Medium'),
    local('NotoSansJP-Medium'),
    url('/font/NotoSansCJKJP/NotoSansCJKjp-Medium.woff2') format('woff2');
  }
  @font-face {
    font-family: "NotoSansCJKjp"; font-style: normal; font-display: swap;
    font-weight: 700;
    src: local('NotoSansCJKjp-Bold'),
    local('NotoSansJP-Bold'),
    url('/font/NotoSansCJKJP/NotoSansCJKjp-Bold.woff2') format('woff2');
  }
    
  /* Module =============================================*/
    :root{
      --font-comp: "YakuHanJP",'Noto Serif JP',serif;
      --font-ja: "YakuHanJP",'Noto Serif JP',serif;
      --font-en: "Cinzel",serif;
        --filter-w: invert(100%) sepia(19%) saturate(377%) hue-rotate(316deg) brightness(100%) contrast(91%);
        --filter-wg: invert(96%) sepia(8%) saturate(14%) hue-rotate(314deg) brightness(86%) contrast(111%);
        --filter-red: invert(33%) sepia(39%) saturate(3362%) hue-rotate(347deg) brightness(84%) contrast(106%);
        --inn-w: 2rem;
        --inn-w-minus: -2rem;
      
        --kv-fill-color: #fff;
      }
  
  
  
  html {
      font-size: 3.125vw;
      /*
        計算式：　10(px) / 320(px) * 100 = 3.125
        画面幅320pxの時に "font-size: 10px" 相当になる
      */
  }
  
    .pc{
      display: none;
    }
  
    .pc-nav {
      display: none;
    }

    
  .b_wide{
    max-width:  1200px;
    margin: auto;
  }
    
  .c_wide{
    max-width:  1000px;
    margin: auto;
  }
  
  .sec_bloc{
    padding-top: 4rem;
    padding-bottom: 4rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
  
  .sec_bloc_bottom{
    padding-bottom: 14rem;
  }

  body{
    font-family: var(--font-comp);
  }

  .en{
    font-family: var(--font-en);
    letter-spacing: .15rem;
  }
  
  
  @media screen and (min-width: 769px) {
    html {
      font-size:  clamp(10px,1.302083333vw,14px);
      /*
        計算式：　10(px) / 320(px) * 100 = 3.125
        画面幅320pxの時に "font-size: 10px" 相当になる
      */
    }
  
    body {
      font-size: 1.0rem;
    }
  
    .sec_bloc{
      padding-top: 10rem;
      padding-bottom: 10rem;
      padding-left: 2rem;
      padding-right: 2rem;
    }
  
    .sec_bloc_bottom{
      padding-bottom: 10rem;
    }
  
    .sp{display: none;}
    .pc{display: block;}
    .pc-nav {display: block;}
  
  }


/* header =============================================*/
.header{
    position: relative;
    top: 142vw;
}

.hed_logo{
  position: absolute;
  width: 20rem;
  top:1rem;
  left: 1rem;
  z-index:1;
}

.header_box{
  position: absolute;
  height: 12vw;
  width: 100%;
  z-index: 1000;
}

.header_logo{
  position: relative;
  z-index: 1000;
  width: 20rem;
}

.header_box .header_logo{
  top: 1rem;
  left: 1rem;
}

.menu_all {
  font-weight: 100;
  margin: 8rem 0 6rem;
  text-align: center;
  font-size: 1.4rem;
}

.menu_all img {
  width: 5.5rem;
  padding-bottom: 2rem;
  filter: invert(1);
}

.menu_all_w {
  font-weight: 100;
  margin: 8rem 0 6rem;
  text-align: center;
  font-size: 1.4rem;
}

.menu_all_w img {
  width: 5.5rem;
  padding-bottom: 2rem;
}

/*========= 上部固定させるためのCSS ===============*/
#header{
  position: absolute;
  height: .1px;/*高さ指定*/
  width:100%;/*横幅指定*/
}

/*JSを使いfixedクラスが付与された際の設定*/
#header.fixed{
  position: fixed;/*fixedを設定して固定*/
    z-index: 999;/*最前面へ*/
    top:0;/*位置指定*/
    left:0;/*位置指定*/
}


@media screen and (min-width: 769px) {
  .header{
    position: relative;
    top: 60vw;
}

.hed_logo{
  width: 30vw;
}

  .header_box{
    height: 6vw;
  }

  .header_logo {
    width: 25vw;
    top: 1.25vw;
    left: 2vw;
}
}

/* SP BTN ================*/
.nav_btn_block{
    position: absolute;
    right: 0;
    top: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: fit-content;
    height: 6rem;
    z-index: 10;
  }
  .sp_btn{
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    width: 5rem;
    height: 4rem;
    z-index: 10000;
  }
  
  .sp_btn_bar,.sp_btn_bar::before,.sp_btn_bar::after{
    display: block;
    width: 2rem;
    height: .15rem;
    border-bottom: 0.07rem solid currentColor ;
    position: absolute;
    margin: auto;
    transition: background-color .3s , transform .3s , top .3s;
  }
  .sp_btn_bar{
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 2rem;
    border-bottom: black solid 1px;
  }

  .header_box .sp_btn_bar{
    border-bottom: white solid 1px;
  }

  .sp_btn_bar::before{
    content: "";
    left: 0;
    top: .55em;
    transform-origin: top right;
    border-bottom: black solid 1px;
  }

  .header_box .sp_btn_bar::before{
    content: "";
    border-bottom: white solid 1px;
  }

  .sp_btn_bar::after{
    content: "";
    top: -.6em;
    left: 0;
    height: 1px;
    transform-origin: bottom right;
    color: black;
  }

  .header_box .sp_btn_bar::after{
    content: "";
    color: white;
  }
  
  body.sp_nav_open{
    overflow: hidden;
  }
  .sp_nav_open .sp_btn{
    filter: var(--filter-w) !important;
    top: 0;
    right: -.25rem;
    position: fixed;
  }


  .sp_nav_open .sp_btn_bar{
    border-color: transparent;
  }
  .sp_nav_open .sp_btn_bar::before{
    transform: rotate(45deg);
    border-bottom: black solid 0.1rem;
  }
  .sp_nav_open .sp_btn_bar::after{
    transform: rotate(-45deg);
    top: -0.825em;
    border-bottom: black solid 0.1rem;
  
  }
  .sp_nav_open .sp_btn_bar::after,
  .sp_nav_open .sp_btn_bar::before{
    left: -0.3em;
  }
  
  
  /* SP NAV MODAL MENU ================*/
  .sp_nav_modal{
    position: fixed;
    top: 100%;
    display: block;
    width: 100%;
    height: 100vh;
    opacity: 0;
    transition: opacity .5s , top .5s;
    color: #fff;
    overflow-y: scroll;
    background-color: black;
    padding-top: 0.5rem;
    z-index: 1000;
  }
  .reserve_modal{
    padding: 6rem 0 6rem;
    background-color: var(--color-bg-d);
    z-index: 1;
  }
  .sp_nav_open .sp_nav_modal{
    top: 0;
    opacity: 1;
  }
  .reserve_open .reserve_modal{
    top: 0;
    opacity: 1;
  }
  
  .sp_nav_open .sp_nav_modal img{
    display: block;
    width: 20rem;
    padding: 0.5rem 0 0 1rem;  }
  
  .sp_nav .nav_ul{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 6rem 0 5rem 3rem;
    font-size: 1.6rem;
    font-weight: 500;
  }

  .header_box .sp_nav .nav_ul{
    padding: 8rem 0 5rem 3rem;
  }
  
  .sp_nav .nav_li{
  margin-bottom: 4rem;
  }
  
  .sp_nav .underbar{
    width: 300%;
    margin-left: 5%;
    margin-right: 5%;
    padding-bottom: 1rem;
  }
  
  .sp_nav .nav_link{
    font-weight: 500;
  }

  .nav_txt_sub{
    padding-left: 1rem;
    font-size: 1.25rem;
  }
  
  
  /* SP NAV MODAL MENU  開閉ボタン================*/
  .accshow li a{
    width: 100%;
    font-size: .95em;
    padding: 1.2rem 0 1rem 0;
  }
  
  .cssacc{
    display: none;
  }
  
  .cssacc_label{
    position: relative;
    padding-right: 1rem;
    cursor: pointer;
  }
  
  .cssacc_label::before {
    content: "";
    position: absolute;
    top: 0.65rem;
    right: -0.75rem;
    width: 0;
    height: 0;
    border-left: 0.75rem solid transparent;
    border-right: 0.75rem solid transparent;
    border-top: 1rem solid white;
  }
  
  /* ボタン開閉リスト */
  .accshow {
    overflow: hidden;
    height: 0;
    opacity: 0;
    transition: opacity 0.8s;
  }
  .accshow li {
    width: 100%;
    display: flex;
    font-size: 1.6rem;
    text-align: left;
  }
  .cssacc:checked + label + .accshow {
    height: auto;
    opacity: 1;
    padding-bottom: 1rem;
  }
  .cssacc:checked + .cssacc_label::before {
    transform: rotateZ(180deg);
  }
  
  @keyframes infinity-scroll-left {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(-100%);
    }
  }
  
  @media screen and (min-width: 769px){  
    .sp_btn{
      display: none;
    }
  
    #hamburger{
     display: none;
    }
  
    .header_logo_box{
      width: 20%;
    }
  
    .pc_head_brand li {
      text-align: end;
    }
  
    .pc_head_brand {
      position: fixed;
      right: 17.75rem;
    }
  
    .accshow li a {
      width: 100%;
      font-size: .75em;
      padding: 1rem 0 0 0;
  }
  
    .nav_li{
      font-size: 1rem;
      padding: 0 1.25rem;
    }
  }
  
  @media screen and (min-width: 1200px){
    .header_logo_box{
      width: 200px;
    }
  
  }

.sp_en{
  position: absolute;
  color: black;
  font-size: 1rem;
  border: solid .5px black;
  padding: .4rem .75rem;
  top: 1rem;
  right: 5rem;
  z-index: 100;
}

.sp_en2{
  position: absolute;
  color: white;
  font-size: 1rem;
  border: solid 1px white;
  padding: .4rem .75rem;
  top: .9rem;
  right: 5rem;
  z-index: 1000;
}

.header_box .sp_en2{
  color: white;
  border: solid 1px white;
  z-index: 1000;
}

@media screen and (min-width: 769px){
.pc_nav {
  position: absolute;
  z-index: 100;
  color: black;
  text-align: center;
  height: 5vw;
  width: 100%;
  display: flex;
  justify-content: end;
  align-items: center;
}

.pc_nav2 {
  position: absolute;
  z-index: 100;
  color: white;
  text-align: center;
  height: 6vw;
  width: 100%;
  display: flex;
  justify-content: end;
  align-items: center;
}

.pc_nav_box{
  display: flex;
  align-items: center;
}

.pc_nav_txt{
  padding: 0 2rem;
  font-size: 1.25vw;
}

.pc_nav_txt2{
  padding: 0 3vw;
  font-size: 1vw;
}

.navtxt_sub{
  position: relative;
  top: -.25rem;
}

.pc_en {
  position: relative;
  color: black;
  font-size: 1vw;
  border: solid 1px black;
  padding: 0.5vw 1vw;
  z-index: 10;
}

.header_box .pc_en {
  position: relative;
  color: white;
  font-size: 1vw;
  border: solid 1px white;
  padding: 0.5vw 0.75vw;
  z-index: 10;
}

}


/* main =============================================*/
.bg_ph {
  background-image: url(/images/bg_ph.jpg);
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: -10000;
}

@media screen and (min-width: 769px){
.bg_ph{
background-image: url(/images/bg_ph.jpg);
background-attachment: fixed;
background-size: cover;
background-position: center;
top: 0;
width: 100%;
height: 100%;
position: fixed;
z-index: -10000;
}
}

/* TOPKEY =============================================*/
.top_logo{
    position: absolute;
    z-index: 2;
    width: 5rem;
    mix-blend-mode: overlay;
}

.sec_key{
  position: relative;
}

.top_key_ph_box{
  display: flex;
  justify-content: center;
  align-items: center;
}

.top_key_ph{
  padding: 12rem 4rem;
}

.key_half{
  display: flex;
}

.key_left{
  width: 4350px;
}

.top_about_bg {
  position: absolute;
  z-index: -100;
  top: 0;
  left: 0;
  width: 100vw;
}

.top_wa{
  position: absolute;
  z-index: 10;
  margin: auto;
  width: 100%;
  padding: 12rem 4rem;
}

#mask path{
  fill:none;
  stroke:#ffffff;
  stroke-width:50;
  stroke-dasharray: 2500px;
  stroke-dashoffset: 3000px;
  animation: line 1.5s 0s forwards;
  }
  @keyframes line{
  0%{stroke-dashoffset: 2500px;}
  100%{stroke-dashoffset: 0;}
  }
  
  #text{
  mask: url(#mask-wrapper);
  fill: #000;
  }

@media screen and (min-width: 769px){
  .sec_key {
    position: relative;
    padding-bottom: 14rem;
}

.top_key_ph {
  width: 58vw;
  padding: 4rem;
}

.top_wa {
width: 59vw;
}

.top_logo {
  width: 9vw;
}
}

@media screen and (min-width: 1600px){
  .sec_key {
    padding-bottom: 16rem;
}
}


/* TOPABOUT =============================================*/
.sec_about{
  position: relative;
  overflow: hidden;
  padding: 14rem 0;
}

.key_ttl{
    writing-mode: vertical-rl;
    font-weight: 100;
    margin: auto;
    font-size: 1rem;
    letter-spacing: .25em;
    position: absolute;
    top: 3.5rem;
    right: 4rem;
    z-index: 100;
    line-height: 2.5;
}

.key_ttl span{
  border-left: .5px solid black;
}

.about_main{
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.top_about_ph_box{
padding: 12rem 0;
}

.top_about_ph img{
  padding-bottom: .1rem;
}

.top_about_matcha1{
  position: absolute;
  top: 5rem;
  left: 0;
  z-index: 110;
}

.top_about_matcha2{
  position: absolute;
  bottom: 8rem;
  right: 0;
  z-index: 110;
}

.wrapper{
  text-align: center;
}

.about_txt_box{
  text-align: left;
  display: inline-block;
  padding-left: 1rem;
}

.about_ttl{
font-size: 3rem;
font-weight: 100;
letter-spacing: .1rem;
padding-bottom: 2rem;
}

.about_txt{
  position: relative;
  font-size: 1rem;
  font-weight: 100;
  line-height: 2.5;
  letter-spacing: .1em;
  padding: 4rem 0;
}

.about_logo{
    position: absolute;
    top: 50.5rem;
    right: 25%;
    width: 50%;
    mix-blend-mode: exclusion;
    z-index: -1;
}

.about_line{
  position: absolute;
  left: -8rem;
  width: 100%;
}

.top_scroll{
  width: 10%;
  position: relative;
  left: 42%;
  padding-bottom: 6rem;
}

.more_btn{
  position: absolute;
  right: .5rem;
  top: 87vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.more_btn p{
  position: absolute;
  font-size: 1.25rem;
  font-weight: 100;
}

.more_btn img{
  width: 6.5rem;
  animation: 2s linear infinite rotation1;
}
@keyframes rotation1{
  0%{ transform:rotate(0);}
  100%{ transform:rotate(360deg); }
}

@media screen and (min-width: 769px){
.sec_about {
  position: relative;
  overflow: hidden;
  padding: 12rem 0 0;
}

.top_about_matcha1{
  top: 0;
  width: 45%;
}

.top_about_matcha2{
  bottom: 0;
  width: 50%;
}


.key_ttl {
  font-size: 1.5vw;
  top: 8vw;
  right: 8vw;
}
  
.top_scroll {
  width: 5%;
  position: relative;
  left: 46%;
  padding-bottom: 8rem;
}

.about_box{
  display: flex;
  justify-content: center;
}

.about_txt_box {
  padding: 0 4rem 0 0;
}

.about_ph{
  width: 60vw;
  padding-bottom: 10rem;
}

.about_line{
  width: 25vw;
  left: -1rem;
}

}

@media screen and (min-width: 1600px){
.sec_about {
  padding: 20rem 0 0;
}
}

/* TOPFEATURE =============================================*/
.sec_feature{
    padding: 0 2rem 6rem;
}

.feature_ttl_box{
  position: relative;
  padding-bottom: 6rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.feature_ttl{
    display: flex;
    color: white;
    position: absolute;
    left: 50%;
    font-size: 2rem;
    font-weight: 100;
    transform: translateX(-50%);
    z-index: 1;
}

.feature_ttl p{
    writing-mode: vertical-rl;
}

.feature_ttl img{
    width: .85rem;
}

.top_feature_cnt{
  position: relative;
  padding-bottom: 6rem;
}

.feature_box{
    padding: 0 3rem 5rem;
    position: relative;
}

.feature_txt{
    font-size: 1.2rem;
    font-weight: 400;
    padding: 0 0 1rem 1rem;
    writing-mode: vertical-lr;
}

.feature_cnt{
  margin: auto;
  writing-mode: vertical-rl;
  height: 11rem;
  margin-top: 1rem;
  margin-bottom: 2rem;
  line-height: 1.6;
}

.feature_cnt img{
  filter: invert(1);
}

.chasoba img{
  height: 55%;
}

.feature_bg_1{
  padding: 0 0 0 60%;
  position: absolute;
  top: 23rem;
  z-index: 100;
}

.feature_bg_2{
  padding: 0 45% 0 0;
  position: absolute;
  top: -3rem;
  left: 0;
  z-index: 100;
}

.feature_bg_3{
  padding: 0 60% 0 0;
  position: absolute;
  bottom: 2rem;
  left: -1.5rem;
}
.feature_bg_3 img{
  transform: scale(-1, 1);
}

.top_feature_ph_box_left{
  padding: 2rem 4rem 2rem 0;
}

.top_feature_ph_box_right{
  padding: 2rem 0 2rem 4rem;
}

.ph_box_up{
  padding-bottom: .5rem;
}

.ph_box_down{
  display: flex;
  justify-content: space-between;
}

.ph_box_down img{
width: 49%;
}

.top_feature_txt h3{
  font-weight: 100;
  font-size: 2rem;
  text-decoration: underline .5px;
  padding-bottom: 2rem;
  letter-spacing: .1rem;
}

.top_feature_txt p{
font-size: 1.2rem;
line-height: 1.75;
}

.feature_matcha{
  position: absolute;
  top: 0;
  right: -2rem;
  width: 8rem;
  z-index: 1;
}

.feature_soba{
  position: absolute;
  top: 0;
  left: -2rem;
  width: 8rem;
  z-index: 1;
}

/* --- テキスト --- */
.on path {
  fill: black; /* 1,塗りの色 */
  stroke: black; /* 2,線の色 */
  stroke-dasharray: 2000; /* 3,破線の間隔 */
  stroke-dashoffset: 2000; /* 4,破線の開始位置 */
  stroke-width: .25; /* 5,線の太さ */
  animation: handwriting 4s ease-in forwards; /* 6,名前 時間 タイミング 終了後の状態 */
}

/* --- アニメーション --- */
@keyframes handwriting {
  0% {
      fill: transparent; /* 1,塗りの色 */
      stroke-dashoffset: 2000; /* 4,破線の開始位置 */
  }
  50% {
      fill: transparent; /* 1,塗りの色 */
  }
  100% {
      fill: black; /* 1,塗りの色 */
      stroke-dashoffset: 0; /* 4,破線の開始位置 */
  }
}

@media screen and (min-width: 769px){
  .sec_feature{
    padding: 0 4rem 6rem;
  }

  .feature_ttl_box{
    position: relative;
    padding-bottom: 14rem;
  }

  .feature_box {
    padding: 0 4rem 8rem;
}

  .feature_cnt p{
    font-size: 1rem;
    height: 26rem;
    line-height: 2;
}
  
  .feature_pc_right{
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    position: relative;
  }

  .feature_pc_left{
    display: flex;
    justify-content: center;
  }

  .feature_ph{
    width: 40rem;
  }

  .feature_soba {
    width: 16rem;
    top: -30rem;
    left: 0;
  }

  .feature_shiru {
    width: 20rem;
    top: -30rem;
    right: 0;
  }

  .feature_na {
    width: 20rem;
    top: -35rem;
    left: 0;
  }

  .feature_bg_1 {
    padding: 0 0 0 75%;
    top: 25vw;
  }

  .feature_bg_2 {
    padding: 0 70% 0 0;
    top: -6vw;
  }

  .feature_bg_3 {
  padding: 0 70% 0 0;
  top: 35vw;
  }

  .feature_cnt {
    height: inherit;
    margin: 0 0 0 2rem;
}

.feature_pc_left .feature_cnt{
  margin: 0 1rem 0 0;
}

.feature_cnt img {
  width: 1rem;
}

.feature_txt {
  font-size: 2rem;
  padding: 0 0 1rem;
}

.feature_cnt_ttl{
  padding: 0 1rem;
}

.top_feature_cnt{
  display: flex;
  flex-direction: row-reverse;
  align-items: end;
  padding: 0 0 15rem 4rem;
  }

.top_feature_cnt:nth-child(even){
display: flex;
flex-direction: row;
padding: 0 4rem 15rem 0;
}

.top_feature_txt_box{
  position: relative;
  bottom: 0;
}

.top_feature_txt{
  position: relative;
  bottom: 0;
}

.top_feature_txt h3{
writing-mode: vertical-rl;
position: relative;
top: 0;
left: 35%;
padding-bottom: 6rem;
letter-spacing: .4rem;
line-height: 1.5;
font-size: 2.5rem;
}

.top_feature_txt p{
 width: 22rem;
  }

.top_feature_ph_box_left {
  padding: 0 8rem 0 1rem;
}

.top_feature_ph_box_right {
  padding: 0 2rem 0 8rem;
}

.feature_matcha{
  top: -5rem;
  right: -2rem;
  width: 15rem;
}

.feature_soba{
  top: -5rem;
  left: -2rem;
  width: 15rem;
}
}

/* TOPMENU =============================================*/
.top_menu_ttl {
  position: relative;
  z-index: 100;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top_menu_bg{
  position: relative;
  width: 100%;
  height: 100%;
  top: 0;
  background-image: url(/images/menu_bg_sp.jpg);
}

.top_menu_ttl_cnt{
  display: flex;
  color: white;
  position: absolute;
  font-size: 1.4rem;
  font-weight: 100;
  transform: translateX(-50%);
  line-height: 1.2;
  width: 0.7rem;
}

.menu_ttl_cnt{
  display: flex;
  color: white;
  position: absolute;
  font-size: 1.4rem;
  font-weight: 100;
  transform: translateX(-50%);
  line-height: 1.2;
  width: 0.7rem;
}

.top_menu_bg_line{
  width: 100vw;
  mix-blend-mode: overlay;
  filter: invert(1);
  left: 0;
  padding: 12rem 0 6rem;
}

#mask2 path{
  fill:none;
  stroke:#ffffff;
  stroke-width:2rem;
  stroke-dasharray: 2500px;
  stroke-dashoffset: 3000px;
  animation: line 3s 0s forwards;
  animation-direction:alternate;
  animation-iteration-count: infinite;
  }
  @keyframes line{
  0%{stroke-dashoffset: 2500px;}
  100%{stroke-dashoffset: 0;}
  }
  
  #text2{
  mask: url(#mask2-wrapper);
  fill: #fff;
  }

/* 円→（角丸四角形を経由）→正方形 にマスクの形状を変化させるキーフレーム */
@keyframes reveal-image {
  0% {
    clip-path: circle(15% at center);
  }
  50% {
    clip-path: circle(60% at center);
    }
  100% {
    clip-path: circle(100% at center);
  }
}

.animationElement {
  /* スクロールアニメーションの設定 */
  animation: reveal-image linear both; /* アニメーションを指定。イージングはlinear。animation-fill-modeはboth */
  animation-timeline: view();
  animation-range: contain 50% contain 100%; /* 開始: 要素がビューポートに完全に入った時、終了: ビューポートの真ん中 */
}

/* 横スクロールセクション */
.side-scroll {
  /* display: flex; */
  justify-content: center;
  align-items: center;
  position: relative;
}

.side-scroll-list-wrapper {
  position: relative;
  width: 100%;
  height: 100vh;
}

.wide{
  overflow: visible;
}


.menu_txt_box{
  font-size: 1rem;
  font-weight: 100;
  writing-mode: vertical-rl;
  padding: 0 0 2rem;
}

.menu_txt_box h4{
  font-size: 2rem;
  font-weight: 100;
  border-left: solid 0.5px #fff;
  padding-bottom: 3rem;
}

.menu_txt{
  padding-right: .5rem;
}

.menu_txt p{
  padding-right: .5rem;
}

.side-scroll-item {
  color: #fff; 
  position: relative;
  display: flex;
  align-items: center;
  padding: 2rem 3rem;
}

.side-scroll-item:last-child {
padding-bottom: 6rem;
}

.side-scroll-item:nth-child(even) {
  flex-direction: row-reverse;
}

.menu_ph{
  position: relative;
  /* width: 100vw; */
}

.menu_ph img{
  width: 120vw;
}

.menu_btn{
  position: relative;
  color: #fff;
  font-weight: 100;
  padding: 6rem 2rem 14rem;
  border-radius: 50%;
  text-align: center;
  white-space: nowrap;
  display: flex;
  justify-content: center;
  align-items: center;
}

.menu_btn img{
  filter: invert(1);
  width: 13rem;
  animation: 2s linear infinite rotation1;
  position: absolute;
}


.menu_more_btn{
border: solid .5px #fff;
text-align: center;
padding: .8rem 1.7rem;
}

.all_menu_line{
  border-top: solid .5px #fff;
  width: 10rem;
  position: absolute;
  right: 20rem;
  top: 47vh;
}

@media screen and (min-width: 769px){
  .side-scroll-item {
    padding: 0rem 5rem;
  }

  .top_menu_cnt{
    padding: 1rem;
  }  
  .top_menu_ttl_cnt {
    font-size: 2rem;
    width: 1rem;
}
.top_menu_bg_line {
  padding: 12rem 0;
}

.top_menu_bg {
  position: relative;
  width: 100%;
  height: 100%;
  top: 0;
  background-image: url(/images/menu_bg_sp.jpg);
  background-size: cover;
}

.menu_btn img{
  filter: invert(1);
  width: 13rem;
  animation: 2s linear infinite rotation1;
  position: absolute;
}

.menu_txt_box h4 {
  font-size: 2.5rem;
}

.menu_txt p{
  font-size: 1.2rem;
}

.menu_more_btn {
  padding: 1.4rem 2.5rem;
  font-size: 1.2rem;
}

.menu_ph img{
  width: 40rem;
}
}
 

/* TOPACCESS =============================================*/
.top_access{
  padding:  15vw 2rem 10vw;
  position: relative;
}

.top_access h2{
  font-weight: 100;
  font-size: 1.5rem;
  padding-bottom: 1.5rem;
}

.top_access h2::before{
  content: "";
  background-color: #000;
  width: 66vw;
  height: 1px;
  display: block;
  right: 2rem;
  top: 5.8rem;
  position: absolute;
}

.top_access li{
  padding-bottom: 1.5rem;
  font-size: 1.2rem;
}

.access_post,.access_add,.access_time,.access_phone{
  position: relative;
  padding-left: 1.5rem;
}

.access_post::before{
content:"";
display: block;
background-image: url(/images/access_post_icon.svg);
width: 1rem;
height: 1.25rem;
background-repeat: no-repeat;
background-size: contain;
background-position: center;
position: absolute;
top: .2rem;
left: 0;
}

.access_add::before{
  content:"";
  display: block;
  background-image: url(/images/access_add_icon.svg);
  width: 1.1rem;
  height: 1.5rem;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  top: .2rem;
  left: 0;
  }

.access_time::before{
  content:"";
  display: block;
  background-image: url(/images/access_time_icon.svg);
  width: 1.1rem;
  height: 1.75rem;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
}

.access_phone::before{
  content:"";
  display: block;
  background-image: url(/images/access_phone_icon.svg);
  width: 1.1rem;
  height: 1.5rem;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
}

.top_gmap{
padding-top: 1.5rem;
}

.top_gmap iframe{
  width: 100%;
  height: 28rem;
}


@media screen and (min-width: 769px){
.top_access_pc{
  display: flex;
  justify-content: center;
}

.top_access_pc ul{
padding-right: 2rem;
}

.top_access_pc li{
font-size: 1.5rem;
padding-bottom: 2.5rem;
}  

.top_access h2 {
  font-size: 2rem;
  padding-bottom: 6rem;
  text-align: center;
}

.top_access h2::before{
  content: "";
  display: none;
}

.top_gmap {
  padding-top: 0;
  width: 30rem;
  height: 30rem;
}
 
.top_gmap iframe{
  width: 100%;
  height: 100%;
}

.access_post::before{
  width: 1.25rem;
  top: .6rem;
}
  
.access_add::before{
  width: 1.25rem;
  top: .4rem;
}
  
.access_time::before{
  width: 1.25rem;
  top: .2rem;
}
  
.access_phone::before{
  width: 1.25rem;
  top: .4rem;
}
}

/* FOOTER =============================================*/
footer{
    /* background:#223f09;
    color:#fff; */
    padding:1.5em 1.5em 1.75em;
}

.sec-foot p{
    padding: 1em 0; 
    line-height:1.8;
}

.sec-foot p.logo{ 
    width: 20%;
    margin:0 auto;
    display:block;
}

.sec-foot .bar{
  position: relative;
  border-bottom: solid 1px black;
  top: -.5rem;
}


.sec-foot p.logo img{
    width:6rem;
    margin:0 auto 1em;
    display:block;
}

.sec-foot p.logo2{ 
    width: 90%;
    margin:0 auto;
    display:block;
    border-top:1px dotted #fff;
}

.sec-foot p.logo2 img{
    width:120px;;
    margin:0.5em auto 0;
    display:block;
}
	
.footer_line{
  filter: invert(1);
  transform: scale(1,.3);
}

footer p.copy{
    font-size: .6rem;
    font-weight:normal;
    letter-spacing:2px;
    text-align:center;
    font-family:'Roboto', sans-serif;
}

footer .policy{
    padding:.75em 0 .25em;
    color:#bbb;
}

.top-sns-box {
    margin: 0.5em 0 1em;
}

.top-sns-box li p {
    position: relative;
    margin: 0 auto;
    padding: 1em 0;
}

.top-sns-box li i {
    /* color: #fff; */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

.top-sns-box ul {
    display: flex;
    justify-content: center;
    padding: 0 1em;
    width: 100%;
}

.top-sns-box li {
    width: 30%;
    text-align: center;
    font-size: 1.75em;
}

.related-txt {
  font-size: 1.2em;
  text-align: center;
  padding-top: 2rem;
}

.related-logo-box {
  padding: 0 0 4rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.related-logo {
  width: 45%;
  padding: 1.5rem;
}

@media screen and (min-width: 769px){
.top-sns-box li {
  width: 10%;
}

.footer_line{
  transform: scale(1,.125);
}

.related-logo {
  width: 20%;
  padding: 1.5rem;
}
}

/* MENU CONTENTS =============================================*/
.sec_menucnt {
  padding: 2rem;
}

.sec_menu_key{
  position: relative;
}

.menu_key{
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.menu_key img{
z-index: -2;
position: relative;
}

.menu_key h1{
  position: absolute;
  background-image: url(/images/menu_bg_sp.jpg);
  padding: 5.5rem;
  border-radius: 50%;  
  display: flex;
  justify-content: center;
  align-items: center;
}

.menu_bg_line{
  position: absolute;
  width: 100vw;
}

.menu_box {
  display: flex;
  position: relative;
  bottom: 5rem;
  justify-content: center;
  padding: 0 1rem;
}

.menu_cnt {
  color: white;
  padding: 1rem 0;
  text-align: center;
}

.menu_cnt h3{
font-weight: 100;
font-size: 1.2rem;
}

.menu_type_line{
  position: relative;
  top: -1rem;
  transform: scale(.5,1);
}

.menucnt_type {
  font-weight: 100;
  font-size: 1.8rem;
  padding-left: 1rem;
}

.menucnt_type_line {
  filter: invert(1);
  position: relative;
  top: -1rem;
  left: 1rem;
  width: 6rem;
  padding-bottom: 1.5rem;
}

.menu_annotation {
  position: relative;
  top: -1rem;
  left: 1rem;
  font-size: .8rem;
  letter-spacing: .05rem;
}

.menucnt_ttl{
  padding: 2rem 0 .25rem 1rem;
  font-weight: 100;
  font-size: 1.5rem;
}

.menucnt_ttl_sub{
  position: relative;
  top: -.25rem;
  left: 1rem;
}

.menucnt_ph{
  padding: 0 10rem 2rem;
}

.menu_list_box{
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding: 1rem 0 2rem;
}

.menu_list_cnt{
  width: 50%;
  padding: 1rem 1rem 1.5rem 1rem;
}

.menu_name{
  padding: .5rem 0 0;
  font-size: 1rem;
}
  
.menu_price{
  position: relative;
  font-size: 1rem;
  padding: .5rem 0 0;
}

.menu_under{
  display: flex;
  justify-content: space-between;
  padding: 0 1rem 1rem;
}

.menu_under p{
padding: 0 0 1.5rem;
}

.menu_under_box{
  padding:1rem .5rem 2rem 2rem;
  width: 100%;
}

.menu_under_list{
  border-left: solid .5px#000;
}

.othermenu{
  writing-mode: vertical-rl;
  position: absolute;
  top: 1rem;
  left: 1rem;
  font-size: .7rem;
  font-weight: 100;
}

@media screen and (min-width: 769px){
.sec_menucnt {
  padding: 6rem 2rem;
}

.menucnt_ttl{
  font-size: 2rem;
  padding-top: 2rem;
}

.menucnt_ph{
  padding: 0 26rem 6rem;
}

.menu_list_box{
  padding: 2rem 0;
}

.menu_under_box{
  width: 66%;
}

.menu_list_cnt{
  font-size: 1.5rem;
  width: 33%;
  padding: 1rem 1rem 3rem;
}

.menu_name{
  font-size: 1.3rem;
}

.menu_price{
  font-size: 1.2rem;
}

.menu_type_line {
  transform: scale(.3,1);
}

.menucnt_type {
  font-size: 2.2rem;
}

.menu_cnt h3{
  font-size: 1.5rem;
}

.menucnt_type_line {
width: 6.5rem;
}

.menu_box {
  max-width: 800px;
  bottom: 6rem;
}

.menu_annotation {
  font-size: 1rem;
  padding-bottom: 1rem;
}

}

  /* EN =============================================*/

.key_ttl_en{
  font-weight: 100;
  margin: auto;
  font-size: 1rem;
  position: absolute;
  top: 4.5rem;
  right: 1rem;
  z-index: 100;
  line-height: 2.5;
  text-align: right;
  z-index: 1000;
  letter-spacing: .1rem;
}

.key_ttl_en span{
  border-bottom: .5px solid black;
}

.about_ttl_en {
  font-size: 2.5rem;
  font-weight: 100;
  letter-spacing: .1rem;
  padding-bottom: 2rem;
  line-height: 1.5;
}

.sub_en{
  font-size: 1.6rem;
  font-weight: 100;
}

.feature_ttl_en {
  color: white;
  position: absolute;
  left: 51%;
  font-size: 2rem;
  font-weight: 100;
  transform: translateX(-50%);
  z-index: 1;
  padding-top: 2rem;
}

.feature_ttl_en img {
  position: relative;
  top: -2rem;
  width: 11rem;
}

.top_feature_txt_en h3 {
  font-weight: 100;
  font-size: 2rem;
  text-decoration: underline .5px;
  padding-bottom: 2rem;
  letter-spacing: .1rem;
}

.top_menu_ttl_en {
  position: relative;
  z-index: 100;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top_menu_ttl_cnt_en {
  color: white;
  position: absolute;
  font-size: 1.4rem;
  font-weight: 100;
  line-height: 1.2;
  width: 5rem;
}

.top_menu_ttl_cnt_en img {
  position: relative;
  top: -1rem;
}

.menu_txt_box_en {
  font-size: 1rem;
  font-weight: 100;
  padding: 0 0 2rem;
}

.menu_txt_box_en h4 {
  font-size: 2rem;
  font-weight: 100;
  border-bottom: solid 0.5px #fff;
}

.menu_txt_en {
padding-top: 1.5rem;
}

.menu_txt_en p {
  padding-bottom: .5rem;
}

@media screen and (min-width: 769px){
.key_ttl_en {
    font-size: 1.5vw;
    top: 10vw;
    right: 6vw;
}

.top_feature_txt_en h3 {
  position: relative;
  top: 0;
  left: 0;
  padding-bottom: 3rem;
  line-height: 2;
  font-size: 2rem;
  font-weight: 400;
}

.menu_txt_box_en h4 {
  font-size: 2.5rem;
}

.top_menu_ttl_cnt_en {
  font-size: 2rem;
  width: 7rem;
}

}
