@charset "utf-8";

html {
    scroll-behavior: smooth;
    background: #000000;
    max-width: 1920px;
    margin: 0 auto;
}

body {
    font-family: 'Shippori Mincho', serif;
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    line-height: 1.6rem;
    letter-spacing: 0.1em;
    color: #ffffff;
    background: #000000;
}


@media screen and (min-width: 768px) {
    body {
        font-size: 18px;
        line-height: 1.8rem;
    }
}

a {transition: 0.3s;}
a:hover {transition: 0.3s;}
body.active {
    height: 100%;
    overflow: hidden;
  }

/*----------------------------------------
共通
----------------------------------------*/
main {overflow:hidden;}
.wrap {padding: 0 5%; margin: 0 auto;}
.left {text-align: left;}
.top_text {
    font-size: 16px;
    line-height: 35px;
    letter-spacing: 0.1em;
    margin-bottom: 3rem;
}
.reserve_fix {
    position: absolute;
    right: 0;
    top: 17%;
    display: table-cell;
    width: 55px;
    height: 220px;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    background-color: #b89e2c;
    vertical-align: middle;
    text-align: center;
    z-index: 999;
}

.reserve_fix a {
    display: block;
}

.reserve_fix a span.text {
    font-size: 20px;
    letter-spacing: 0.5em;
    position: absolute;
    top: 29px;
    left: 0;
    right: 15px;
    margin: auto;
}

.reserve_fix a span.icon {
    letter-spacing: 0.5em;
    position: absolute;
    bottom: 0;
    background-color: #2D2F35;
    display: block;
    width: 55px;
    height: 55px;
}

.reserve_fix a span.icon svg {
    margin-right: 12px;
}


@media screen and (min-width: 768px) {
    .reserve_fix {
        top: 30%;
    }
    .top_text {
        font-size: 18px;
        line-height: 46px;
    }
    .reserve_fix {
        position: fixed;
    }
}

/*----------------------------------------
アニメーション
----------------------------------------*/
.eachTextAnime span {opacity: 0;}
.eachTextAnime.appeartext span { animation:text_anime_on 1s ease-out forwards; }
    @keyframes text_anime_on {
        0% {opacity:0;}
        100% {opacity:1;}
    }

/*じわっ*/
.blur {
    animation-name:blurAnime;
    animation-duration:2s;
    animation-fill-mode:forwards;
}

    @keyframes blurAnime{
        from {
        filter: blur(10px);
        transform: scale(1.02);
        }

        to {
        filter: blur(0);
        transform: scale(1);
        }
    }
    
.sa {
    opacity: 0;
    transition: all 1.5s ease;
    }
    
.sa.show {
    opacity: 1;
    transform: none;
    }

.sa--up {
    transform: translate(0, 100px);
  }

  .sa--lr {
    transform: translate(-100px, 0);
  }

  .sa--rl {
    transform: translate(100px, 0);
  }


/*左からシャッ*/

/*背景色が伸びて出現 共通*/
.bgextend{
	animation-name:bgextendAnimeBase;
	animation-duration:1s;
	animation-fill-mode:forwards;
	position: relative;
	overflow: hidden;
	opacity:0;
    margin-bottom: 1.5rem;
}

@keyframes bgextendAnimeBase{
    from {
      opacity:0;
    }
  
    to {
      opacity:1;  
  }
  }
  
  /*中の要素*/
  .bgappear{
      animation-name:bgextendAnimeSecond;
      animation-duration:1s;
      animation-delay: 0.6s;
      animation-fill-mode:forwards;
      opacity: 0;
  }
  
  @keyframes bgextendAnimeSecond{
      0% {
      opacity: 0;
      }
      100% {
      opacity: 1;
  }
  }

  .bgappear{
    animation-name: bgextendAnimeSecond;
    animation-duration: 1s;
    animation-delay: 0.6s;
    animation-fill-mode: forwards;
    opacity: 0;
}
  
  /*--------- 左から --------*/
  .bgLRextend::before{
      animation-name:bgLRextendAnime;
      animation-duration:1s;
      animation-fill-mode:forwards;
      content: "";
      position: absolute;
      width: 100%;
      height: 70px;
      background: -webkit-linear-gradient(0deg, rgba(80,150,204,0.5), rgba(151,97,222,0.5));
      bottom: 0;
    }
  @keyframes bgLRextendAnime{
      0% {
          transform-origin:left;
          transform:scaleX(0);
      }
      50% {
          transform-origin:left;
          transform:scaleX(1);
      }
      50.001% {
          transform-origin:right;
      }
      100% {
          transform-origin:right;
          transform:scaleX(0);
      }
  }

.bgappearTrigger {
    opacity: 0;
}


  
  /*=============== SVGアニメーション内の指定 =================*/
  
  /*アニメーション前の指定*/
  #mask path {
          fill-opacity: 0;/*最初は透過0で見えない状態*/
          transition: fill-opacity .5s;/*カラーがつく際のアニメーション0.5秒で変化*/
          fill: none;/*塗りがない状態*/
          stroke: #EBEBEB;/*線の色*/
      }
  
  /*アニメーション後に.doneというクラス名がで付与された時の指定*/
  #mask.done path{
        fill: #EBEBEB;/*塗りの色*/
        fill-opacity: 1;/*透過1で見える状態*/
        stroke: none;/*線の色なし*/
      }


/*========= ページ遷移 ===============*/
.fadein_wrap {
	animation: fadein 3s forwards;
}

@keyframes fadein {
	0% {opacity: 0}
	100% {opacity: 1}
}


/*=============== ロゴフェードイン =================*/
  .logo_fadein{
	background: #000000;
	position: fixed;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	z-index: 99999999;
}
.logo_fadein p {
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: none;
	z-index: 9999;
}

.logo_fadein p img {
    width: 170px;
}

/*========= ページトップのためのCSS ===============*/

/*スクロールリンクの形状*/
.scroll-top {
    /*表示位置*/
    position: fixed;
    right: 10px;
    bottom: 300px;
    z-index: 10;
    /*はじめは非表示*/
    opacity: 0;
    visibility: hidden; 
    transition: opacity .5s, visibility .5s; /*それぞれに0.5秒の変化のアニメーション*/
    /*縦書き*/
    -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
    /*改行禁止*/
      white-space: nowrap;
    /*矢印の動き*/
    animation: arrowmove 2s ease-in-out infinite;
  }
  
  @keyframes arrowmove{
        0%{bottom:300px;}
        50%{bottom:305px;}
       100%{bottom:300px;}
   }
  
  
  /*.scroll-viewクラスがついたら出現*/
  .scroll-top.scroll-view {
    opacity: 1;
    visibility: visible;
  }
  
  /*リンク全体の aタグの形状*/
  .scroll-top a {
    text-decoration: none;
    color: #ffffff;
    font-size: 13px;
    display: block;
    font-family: 'Cormorant Garamond', serif;
  }
  
  /*スクロールリンクの形状*/
  
  .js-scroll a::after{
    content:"";
    position: absolute;
    top:0;
    right:0;
    width:1px;
    height: 50px;
    background:#ffffff;
  }
  
  .js-scroll a::before {
    content: "";
    position: absolute;
    top: 41px;
    right: -3px;
    width: 1px;
    height: 9px;
    background: #ffffff;
    transform: skewX(-31deg);
  }
  
  /*Edge IE11 hack*/
  _:-ms-lang(x), .js-scroll a::before{
    right:-11px;
  }
  
  /*ページトップリンクの形状*/
  
  .js-pagetop a::after{
    content:"";
    position: absolute;
    top:0;
    right:0;
    width:1px;
    height: 50px;
    background:#ffffff;
  }
  
  .js-pagetop a::before {
    content: "";
    position: absolute;
    top: 0;
    right: -3px;
    width: 1px;
    height: 10px;
    background: #ffffff;
    transform: skewX(31deg);
  }
  
  /*Edge IE11 hack*/
  _:-ms-lang(x), .js-pagetop a::before{
    right:0;
  }
  
  @media screen and (min-width: 768px) {
    .scroll-top {right: 30px;}
    .scroll-top a {
        font-size: 23px;
        letter-spacing: 0.25em;
    }
    .scroll-top a span {
        display: block;
        margin-right: 20px;
    }
    .js-scroll a::before {
        height: 9px;
        top: 71px;
    }
    .js-scroll a::after {
        height: 80px;
    }
    .js-pagetop a::after {
        height: 80px;
    }
  }



/*----------------------------------------
ヘッダー
----------------------------------------*/
header {
    width: 100%;
    margin: 0 auto;
    height: 150px;
    position: fixed;
    inset: 0;
    margin: auto;
    margin-top: 0;
    z-index: 99;
    overflow: hidden;
    background: -moz-linear-gradient(top, rgba(0,0,0,0.6) ,rgba(255,255,255,0));
    background: -webkit-linear-gradiesnt(top, rgba(0,0,0,0.6) ,rgba(255,255,255,0));
    background: linear-gradient(to bottom, rgba(0,0,0,0.6) ,rgba(255,255,255,0));
    transition: all .4s;
    color: #ffffff;
}

h1 {
    width: 140px;
    position: absolute;
    top: 20px;
    left: 25px;
}

h1  a {
    display: block;
    z-index: 9999999999;
    position: relative;
}

h1 img {
    width: 130px;
    filter: drop-shadow(0px 0px 5px #000000);
}

@media screen and (min-width: 1280px) {
    header {
        
    }
    header .header_detail {
        max-width: 1280px;
        height: 150px;
        margin: 0 auto;
    }

    h1 {
        width: 194px;
        position: unset;
    }

    h1  a {
        z-index: 10000;
    }

    h1 img {
        width: 170px;
        margin-top: 20px;
    }
    .top_header #g-nav ul li {
        
    }
    
    .other_header #g-nav ul li {
        
    }

    .top_header .change-color #g-nav ul li {
        
    }
}


/*----------------------------------------
フッター固定問い合わせ
----------------------------------------*/
#footer_info {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    background: #b89e2c;
    height: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000000;
    text-align: center;
}

#footer_info a {
    font-size: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

#footer_info a .text {
    display: block;
    font-size: 15px;
    margin-right: 20px;
    letter-spacing: 0.05em;
}

#footer_info a .tel::before {
    content: url(../img/tel.svg);
    width: 20px;
    height: 20px;
    display: inline-block;
    margin-right: 10px;
}

@media screen and (min-width: 768px) {
    #footer_info a {
        font-size: 30px;
    }
    #footer_info a .text {
        font-size: 20px;
    }
    #footer_info a .tel::before {
        width: 27px;
        height: 27px;
    }
}

@media screen and (max-width: 350px) {
    #footer_info a {
        display: block;
        padding: 8px;
    }
    #footer_info a .text {
        text-align: center;
        margin-right: 0;
        font-size: 13px;
    }
    #footer_info a .tel {
        display: block;
    }
}

    


/*----------------------------------------
フッター
----------------------------------------*/
footer {
    height: 100px;
    background-color: #766d46;
    text-align: center;
    position: relative;
}

footer small {
    display: block;
    font-size: 10px;
    margin-top: 40px;
    color: #000000;
}




/*----------------------------------------
ハンバーガーメニュー
----------------------------------------*/
.openbtn {
	/*ボタン内側の基点となるためrelativeを指定。
追従するナビゲーションの場合はfixed＋top、rightといった位置をセットで指定*/
    position: fixed;
    margin: 15px 25px 0 auto;
	cursor: pointer;
    width: 50px;
    height: 65px;
	border-radius: 5px;
    z-index: 10000;
    right: 0;
}

#g-nav .nav_footer {
    display: none;
}

#g-nav.active .nav_footer {
    display: block;
}

@media screen and (max-width: 1279px) {
    #g-nav #g-nav-list {
        display: none;
    }
    #g-nav.active #g-nav-list {
        display: block;
    }
    #g-nav.active h1 {
        display: none;
    }
}


/*ボタン内側*/
.openbtn span {
    display: inline-block;
    transition: all .4s;/*アニメーションの設定*/
    position: absolute;
    left: 14px;
    height: 1px;
	background: #ffffff;
    width: 37px;
  }


.openbtn span:nth-of-type(1) {
	top: 12px;
}

.openbtn span:nth-of-type(2) {
	top: 23px;
}

.openbtn span:nth-of-type(3) {
	top: 34px;
}

.openbtn span:nth-of-type(3)::after {
	content:"Menu";/*3つ目の要素のafterにMenu表示を指定*/
	position: absolute;
	top:5px;
	left:-2px;
	color: #ffffff;
	font-size: 13px;
	text-transform: uppercase;
    font-family: 'Cormorant Garamond', serif;
    font-weight: 400;
    font-style: normal;
}

/*activeクラスが付与されると線が回転して×になり、Menu⇒Closeに変更*/
.openbtn.active span:nth-of-type(1) {
    top: 14px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 37px;
    background: #EBEBEB;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}

.openbtn.active span:nth-of-type(3){
    top: 26px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 37px;
    background: #EBEBEB;
}

.openbtn.active span:nth-of-type(3)::after {
	content:"Close";/*3つ目の要素のafterにClose表示を指定*/
    transform: translateY(0) rotate(-45deg);
	top: 10px;
    left: 14px;
    color: #EBEBEB;
}

#g-nav {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 400;
    font-style: normal;
    position:fixed;
    z-index: 1000;
    /*ナビのスタート位置と形状*/
	top:-120%;
    left:0;
	width:100%;
    height: 100vh;/*ナビの高さ*/
    /*動き*/
	transition: all 0.6s;
    opacity: 0.95;
}
#g-nav {
    background-color: rgba(0,0,0,0.8);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.active{
    top: 0;
}

/*ナビゲーションの縦スクロール*/
#g-nav.active #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 99999; 
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav ul.menu {
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top: 320px;
    left:50%;
    transform: translate(-50%,-50%);
    width: 80%;
}

#g-nav ul.menu li {
    position: relative;
    height: 55px;
    border-bottom: 1px solid #EBEBEB;
    margin-bottom: 26px;
    text-align: center;
}

#g-nav ul.menu li a {
    display: block;
    width: 100%;
    height: 100%;
}

#g-nav ul.menu li a span:nth-child(1) {
    font-size: 24px;
    letter-spacing: 0.25em;
}

#g-nav ul.menu li a span:nth-child(2) {
    font-size: 14px;
    display: block;
    width: 50%;
    margin-left: auto;
    margin-top: -26px;
    letter-spacing: 0.2em;
}

/*ハンバーガー内フッター*/
.nav_footer {
    width: 80%;
    margin: 0 auto;
    margin-top: 540px;
    text-align: center;
    margin-bottom: 200px;
}

.nav_footer .reserve {
    position: relative;
    margin: 0 auto;
    width: 200px;
    height: 45px;
    background-color: #b89e2c;
    font-size: 18px;
    letter-spacing: 0.3em;
    margin-bottom: 30px;
    text-align: left;
    padding-left: 25px;
}

.nav_footer .reserve a {
    width: 100%;
    height: 100%;
    padding: 10px;
    display: inline-block;
}

.nav_footer .reserve a span {
    content: '';
    display: block;
    position: absolute;
    width: 45px;
    height: 45px;
    background-color: #2D2F35;
    top: 0;
    right: 0;
}

.nav_footer .reserve a span svg {
    display: block;
    margin: 0 auto;
    margin-top: 11px;
}

.nav_footer .info {
    font-family: 'Shippori Mincho', serif;
    margin-bottom: 30px;
}

.nav_footer .info .name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 24px;
    line-height: 30px;
    text-align: center;
    letter-spacing: 0.2em;
    margin-bottom: 20px;
    color: #766d46;
}

.nav_footer .info .address {
    font-size: 16px;
    line-height: 2;
}

.nav_footer .sns_wrap {
    width: 210px;
    margin: 0 auto;
}

.nav_footer .sns_wrap ul {
    display: flex;
    justify-content: space-between;
}

.nav_footer .sns_wrap ul li a {
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgb(255 255 255 / 40%);
    border-radius: 50px
}

.nav_footer .sns_wrap ul li a img {
    width: 25px;
    height: 25px;
    display: block;
    margin: 0 auto;
}


#g-nav li.menu_sns {
    display: none;
}    

@media screen and (min-width: 1280px) {
    .openbtn {display: none;}
    #g-nav {
        position: relative;
        backdrop-filter: blur(0);
    }
    .webp #g-nav {
        background:none;
        height: 150px;
        margin-top: 30px;
    }
    .no-webp #g-nav {background:none;}
    .nav_footer {display: none;}
    #g-nav-list {position: relative;}
    #g-nav ul.menu {
        display: flex;
        transform: unset;
        position: absolute;
        right: 0;
        left: unset;
        justify-content: flex-end;
        top: 0;
        width: unset;
        margin-top: 70px;
    }
    #g-nav ul.menu li {
        border-bottom: none;
        left: 0;
        transform: unset;
        width: 100px;
        height: unset;
        position: unset;
        margin-bottom: unset;
    }
    #g-nav ul.menu li::after {
        display: none;
    }
    .btntextchange li a {
        display: block;
        position: relative;
        /*テキストの基点とするためrelativeを指定*/
        text-align: center;
        text-decoration: none;
        outline: none;
        /*アニメーションの指定*/
        transition: all .2s;
     }
    .btntextchange li a span {
        position: absolute;
        left: 50%;
        transform: translate(-50%, 0);
        /*アニメーションの指定*/
        transition: all .5s;
      /*ブロック要素にしてテキスト折り返しなし*/  
        display: block;
        white-space: nowrap;
     }
        /*hoverするとテキストが入れ替わる設定*/
    .btntextchange li a:hover span:nth-child(1){
        -ms-filter: blur(1px);
        filter: blur(1px);
    }
    #g-nav ul.menu li a span:nth-child(1) {
        font-size: 17px;
        letter-spacing: 0.2em;
    }
    #g-nav ul.menu li a span:nth-child(2) {
        width: unset;
        margin-top: 1px;
        letter-spacing: 0.1em;
        font-size: 13px;
    }
    #g-nav ul.menu li.access {
        display: block;
    }
    #g-nav ul.menu li.menu_sns {
        width: 20px;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: 4px;
        margin-left: 20px;
    }  
    #g-nav ul.menu li.menu_sns a {
        display: flex;
        justify-content: center;
        align-items: center;
    }      
    #g-nav ul.menu li.menu_sns img {
        width: 20px;
        height: 20px;
    }    
    #g-nav ul.menu li.menu_sns img {
        height: 18px;
        margin-right: 10px;
    }
    
}

/*----------------------------------------
ファーストビュー
----------------------------------------*/
#FV {
    height: 100vh;
}

#FV .audio_button {
    width: 20px;
    height: 20px;
    display: flex;
    justify-content: center;
    cursor: pointer;
    position: relative;
    bottom: 20px;
    background: url(../img/off.png) no-repeat center center;
    background-size: contain;
    cursor: pointer;
    left: 0;
    top: 0;
}

#FV .play .audio_button {
    background-image: url(../img/on.png);
}

#FV .audio_wrap {
    width: 30px;
    height: 30px;
    bottom: 90px;
    position: fixed;
    z-index: 100;
    right: 20px;
    /* top: 30px; */
    padding: 5px;
    border-radius: 20px;
    /* background-color: rgba(0,0,0,.5); */
}

@media screen and (min-width: 1280px) {
    #FV .audio_wrap {
        top: unset;
        right: 30px;
        width: 40px;
        height: 40px;
        border-radius: 80px;
        display: flex;
        justify-content: center;
        align-items: center;
        bottom: 100px;
    }
    #FV .audio_button {
        width: 25px;
        height: 25px;
    }

}

#FV figure {
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

#FV .FV_logo {
    display: block;
    max-width: 250px;
}

#FV .info {
    position: absolute;
    width: 80%;
    background: #2D2F35;
    opacity: 0.9;
    bottom: 7vh;
    padding: 15px;
    z-index: 2;
}

#FV .info p {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 400;
    font-style: normal;
    font-size: 20px;
    letter-spacing: 0.2em;
    border-bottom: 0.5px solid #EBEBEB;;
    margin-bottom: 4px;
    padding-bottom: 6px;
}

#FV .info dl {
    display: flex;
}

#FV .info dl dt {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 400;
    font-style: normal;
    font-size: 17px;
    margin-right: 1rem;
}

#FV .info dl dd {
    font-size: 13px;
    letter-spacing: 0;
}

/*========= FV スライダー ===============*/
@keyframes zoomUp {
    0% {
      transform: scale(1);
    }
    100% {
      transform: scale(1.15);
    }
  }
  .swiper-slide-active .swiper-img,
  .swiper-slide-duplicate-active .swiper-img,
  .swiper-slide-prev .swiper-img {
    animation: zoomUp 7s linear 0s normal both;
  }
  .swiper-slide img {
    width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: center;
  }
  #concept .swiper-slide img {
    height: unset;
  }
  
    #FV .swiper-pagination-bullet {
        background: #b89e2c;
    }

@media screen and (min-width: 1280px) {
    #FV .FV_logo {
        max-width: 300px;
    }
    #FV {margin-top: unset;}
    #FV .info {
        width: 40%;
        padding: 20px 40px;
    }
    
    #FV .info p {
        font-size: 23px;
        margin-bottom: 4px;
        padding-bottom: 6px;
    }
    
    #FV .info dl {
        display: flex;
    }
    
    #FV .info dl dt {
        font-size: 25px;
    }
    
    #FV .info dl dd {
        font-size: 15px;
        margin-top: 3px;
    }
    #FV .reserve_fix {
        width: 66px;
        height: 250px;
    }
    #FV .reserve_fix a span.icon {
        width: 66px;
        height: 66px;
    }
    #FV .reserve_fix a span.text {
        top: 37px;
        right: 18px;
    }
    #FV .reserve_fix a span.icon svg {
        margin-right: 15px;
    }
    
}

@media screen and (min-width: 1280px) {
    .swiper-slide img {
        height: unset;
      }
}

/*----------------------------------------
共通見出し
----------------------------------------*/
h2 {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 400;
    font-style: normal;
    line-height: 70px;
    letter-spacing: 0.13em;
    font-size: 50px;
    text-align: center;
    color: #b89e2c;
    margin: 0 auto;
    margin-bottom: 30px;
    position: relative;
}

h2::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background-color: #fff;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    z-index: 1;
    animation: pathmove 3s ease-in-out infinite;
}

/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes pathmove{
    0%{
      height:0;
      top: 70px;
      opacity: 0;
    }
    30%{
      height:100%;
      opacity: 1;
    }
    100%{
      height:0;
      top: 120px;
      opacity: 0;
    }
  }
  


@media screen and (min-width: 768px) {
    h2 {
        font-size: 70px;
        margin-bottom: 90px;
    }
    h2::after {
        top: 110px;
        height: 120%;
    }
    /*高さ・位置・透過が変化して線が上から下に動く*/
    @keyframes pathmove{
        0%{
        height:0;
        top: 110px;
        opacity: 0;
        }
        30%{
        height:120%;
        opacity: 1;
        }
        100%{
        height:0;
        top: 160px;
        opacity: 0;
        }
    }
  
}


/*----------------------------------------
about
----------------------------------------*/
#about {
    padding-top: 80px;
}

#about .about_img {
    width: 100%;
}

#about .message {
    width: 90%;
    max-width: 1024px;
    margin: 0 auto;
    margin-top: 30px;
    text-align: left;
    font-size: 13px;
    border: 1px solid #b89e2c;
    padding: 20px;
    padding-top: 40px;
}

#about h3 {
    text-align: center;
}

#about h3 img {
    width: 130px;
    margin-bottom: 20px;
}

#about .message .text {
    margin-top: 30px;
}

@media screen and (min-width: 768px) {
    #about {padding-top: 130px;}
    #about h3 {
        font-size: 27px;
        margin-bottom: 50px;
    }
    #about .message {
        padding: 60px;
        padding-top: 80px;
    }
    #about .message .text {
        font-size: 16px;
        line-height: 2.5;
        margin-top: 70px;
    }
    #about figure {
        text-align: center;
    }
    #about h3 img {
        width: 170px;
        margin-bottom: 0;
    }

}

@media screen and (min-width: 1280px) {
}


/*----------------------------------------
staff
----------------------------------------*/
#staff {
    padding-top: 80px;
    padding-bottom: 540px;
}

#staff .mama {
    position: relative;
}

#staff .mama .name {
    position: absolute;
    width: 80%;
    right: 0;
    padding: 10px;
    background-color: rgb(184 158 44 / 100%);
    top: 220px;
    color: #000000;
    z-index: 10;
}

#staff .mama .name .name2 {
    border: 1px solid #000000;
    padding: 10px;
    position: relative;
    right: 0px;
    width: 120%;
    display: flex;
    align-items: center;
}

#staff .mama .name .ja {
    font-weight: 500;
    font-size: 18px;
}

#staff .mama .name .en {
    display: block;
    font-size: 17px;
    font-weight: 400;
}

#staff .prof_img {
    width: 90%;
    max-width: 1024px;
}

#staff .prof {
    width: 90%;
    max-width: 1024px;
    margin: 0 auto;
    margin-top: 30px;
    text-align: left;
    font-size: 13px;
    border: 1px solid #b89e2c;
    padding: 20px;
    padding-top: 30px;
    position: absolute;
    left: -2px;
    top: 268px;
}

#staff .other_staff img {
    width: 90%;
    margin: 0 auto;
}

@media screen and (min-width: 450px) {
    #staff {
        padding-bottom: 0px;
        padding-top: 170px;
    } 
    #staff .mama {
        width: 90%;
        max-width: 1024px;
        margin: 0 auto;
        position: unset;
    }
    #staff .prof_img {width: 100%;}
    #staff .mama .name {
        margin: 0 auto;
        width: 70%;
        margin-top: -20px;
        z-index: 999;
        position: sticky;
    }
    #staff .mama .name .name2 {
        position: unset;
        width: 100%;
        text-align: center;
        justify-content: center;
    }
    #staff .prof {
        position: unset;
        width: 100%;
        top: 100px;
        margin-top: -30px;
        padding-top: 50px;
    }
}

@media screen and (min-width: 768px) {
    #staff .prof {
        padding: 60px;
        font-size: 16px;
        line-height: 2.5;
        padding-top: 90px;
    }
    #staff .mama .name {
        height: 113px;
    }
    #staff .mama .name .name2 {
        height: 93px;
    }
    #staff .mama .name .ja {
        font-size: 20px;
        margin-bottom: 3px;
    }
    #staff .mama .name .en  {
        font-size: 19px;
    }
}

/*----------------------------------------
Other staff
----------------------------------------*/
#other_staff {
    padding-top: 80px;
    text-align: center;
}

#other_staff img {
    width: 90%;
}

#other_staff img.other_staff_01 {
    margin-bottom: 30px;
}
@media screen and (min-width: 375px) {
    #other_staff {
        padding-top: 30px;
    }
}
@media screen and (min-width: 404px) {
    #other_staff {
        padding-top: 0px;
    }
    #staff {
        padding-bottom: 500px;
    }
}

@media screen and (min-width: 420px) {
    #staff {
        padding-bottom: 460px;
    }
}

@media screen and (min-width: 450px) {
    #staff {
        padding-bottom: 30px;
    }
}

@media screen and (min-width: 768px) {
    #staff {
        padding-bottom: 50px;
    }
}

@media screen and (min-width: 1024px) {
    #other_staff .img_wrap {
        display: flex;
        width: 90%;
        max-width: 1024px;
        margin: 0 auto;
    }
    #other_staff img {
        width: 100%;
    }
}

/*----------------------------------------
システム
----------------------------------------*/
#system {
    padding-top: 80px;
}

#system .table {
    width: 90%;
    max-width: 1024px;
    margin: 0 auto;
    margin-top: 30px;
    text-align: left;
    font-size: 13px;
    border: 1px solid #b89e2c;
    padding: 20px;
    padding-top: 60px;
}

#system .table h3 {
    font-size: 20px;
    margin-bottom: 20px;
    color: #766d46;
    text-align: center;
    line-height: 2;
}

#system .table h3 p {
    font-size: 15px;
    display: block;
}

#system .table ul li {
    font-size: 16px;
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
}

#system .table ul li span.left {
    width: 50%;
    display: inline-block;
}

#system .table .set,
#system .table .free,
#system .table .reserved {
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #b89e2c;
}

#system .table .attention {
    text-align: center;
    margin-bottom: 20px;
}

#system .table .drink {
    margin-top: 40px;
}

#system .table .drink h4 {
    font-size: 20px;
    margin-bottom: 20px;
    color: #766d46;
    text-align: center;
}

#system .table ul {
    max-width: 340px;
    margin: 0 auto;
    width: 90%;
}

#system .table .drink ul li {
    display: inline;
}

#system .table .drink ul li::after {
    content: '/';
    display: inline-block;
}

#system .table .reserved p {
    font-size: 16px;
    text-align: center;
    margin-bottom: 10px;
}

#system .table .piano p {
    font-size: 16px;
    text-align: center;
    margin-bottom: 10px;
}

@media screen and (min-width: 768px) {
    #system {
        padding-top: 170px;
    }
    #system .table {
        padding: 60px;
        padding-top: 100px;
    }
    #system .table h3 {
        font-size: 27px;
        text-align: center;
        margin-bottom: 60px;
    }
    #system .table h3 p {
        font-size: 20px;
    }
    #system .table ul {
        max-width: 500px;
        margin: 0 auto;
    }
    #system .table ul li {
        font-size: 20px;
        margin-bottom: 30px;
        justify-content: unset;
    }
    #system .table .set,
    #system .table .free,
    #system .table .reserved {
        margin-bottom: 70px;
        padding-bottom: 60px;
    }
    #system .table .reserved {
        margin-bottom: 70px;
        padding-bottom: 0px;
    }
    #system .table .attention {
        font-size: 16px;
        text-align: center;
        margin-top: 40px;
    }
    #system .table .drink {margin-top: 60px;}
    #system .table .drink h4 {
        font-size: 24px;
        text-align: center;
    }
    #system .table .drink ul li {
        font-size: 17px;
    }
    #system .table ul li span.left {
        width: 70%;
    }
    #system .table .reserved p {
        font-size: 20px;
        margin-bottom: 20px;
        padding-bottom: 60px;
    }
    #system .table .piano p {
        font-size: 20px;
        margin-bottom: 20px;
    }
}


/*----------------------------------------
SNS
----------------------------------------*/
#sns {
    padding-top: 80px;
    text-align: center;
}

#sns h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 25px;
    margin-bottom: 20px;
    color: #766d46;
    margin-top: 85px;
}

#sns .youtube iframe {
    width: 90%;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    max-width: 1024px;
    margin-bottom: 35px;
}

#sns .other {
    width: 90%;
    max-width: 1024px;
    margin: 0 auto;
}

#sns .other h3 {
    margin-top: 30px;
}

#sns .other .insta img,
#sns .other .tiktok img {
    width: 100%;
}

#sns .other .tiktok {
    margin-top: 35px;
}

#sns .youtube {
    padding-top: 30px;
}


@media screen and (min-width: 768px) {
    #sns {
        padding-top: 170px;
    }
    #sns h3 {
        font-size: 40px;
        margin-bottom: 30px;
        margin-top: 180px;
    }
    #sns .other {
        margin-top: 60px;
    }
    #sns .other .tiktok {
        margin-top: 60px;
    }
    #sns .youtube iframe {
        margin-bottom: 0;
    }
}

@media screen and (min-width: 1024px) {
    #sns h3 {margin-bottom: 50px;}
    #sns .other {margin-top: 100px;}
    #sns .other .tiktok {margin-top: 100px;}
}

/*----------------------------------------
リクルート
----------------------------------------*/
#recruit {
    padding-top: 80px;
}

#recruit h3 {
    text-align: center;
    font-size: 20px;
    margin-bottom: 20px;
    color: #766d46;
    margin-top: 85px;
    line-height: 1.7;
}

#recruit .detail .message {
    text-align: center;
    font-size: 13px;
    line-height: 1.7;
}

#recruit dl {
    width: 90%;
    max-width: 1024px;
    margin: 0 auto;
    margin-top: 30px;
    text-align: left;
    font-size: 13px;
    border: 1px solid #b89e2c;
    padding: 20px;
    text-align: center;
    margin-bottom: 30px;
}

#recruit dl dt {
    font-size: 15px;
    color: #766d46;
    text-align: center;
    margin-bottom: 10px;
}

#recruit dl dd {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #b89e2c;
    line-height: 1.7;
}

#recruit dl dd:last-child {
    border-bottom:none;
    margin-bottom: 0;
    padding-bottom: 0;
}

#recruit .bnr {
    width: 90%;
    max-width: 1024px;
    margin: 0 auto;
    display: block;
}

@media screen and (min-width: 768px) {
    #recruit {
        padding-top: 170px;
    }
    #recruit h3 {
        font-size: 27px;
        text-align: center;
        margin-top: 140px;
    }
    #recruit .detail .message {
        font-size: 16px;
        line-height: 2;
    }
    #recruit dl {
        padding: 60px;
        margin-bottom: 70px;
    }
    #recruit dl dt {
        font-size: 22px;
        margin-bottom: 20px;
    }
    #recruit dl dd {
        font-size: 16px;
        padding-bottom: 40px;
        margin-bottom: 40px;
    }
}



/*----------------------------------------
アクセス
----------------------------------------*/
#access {
    padding-top: 80px;
}

#access .map {
    margin-bottom: 50px;
}

#access .map iframe {
    width: 100%;
    height: 350px;
    height: ;
}

#access h3 {
    font-family: 'Cormorant Garamond', serif;
    text-align: center;
    font-size: 25px;
    margin-bottom: 20px;
    color: #766d46;
}


#access .address {
    text-align: center;
    line-height: 2;
    font-size: 13px;
}

#access .logo {
    margin: 0 auto;
    width: 130px;
    display: block;
    margin-bottom: 20px;
}

@media screen and (min-width: 768px) {
    #access {
        padding-top: 170px;
    }
    #access h3 {
        font-size: 27px;
        text-align: center;
        margin-bottom: 40px;
    }
    #access .map iframe {
        height: 600px;
    }
    #access .address {
        font-size: 16px;
    }
    #access .detail {
        margin: 80px 0;
    }
    #access .logo {
        width: 170px;
    }
}


