@charset 'UTF-8';

/* --------------------------------------------------------------------- */
/* Font : inport */
/* --------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:wght@400;500&display=swap');

/* --------------------------------------------------------------------- */
/* Layout : Base */
/* --------------------------------------------------------------------- */
html {
 color: rgba(51, 51, 51, 1);
 font-family: 'EB Garamond',Noto Serif JP, Hiragino Sans, 'ヒラギノ角ゴシック', Hiragino Kaku Gothic ProN, 'ヒラギノ角ゴ ProN W3', 'Meiryo', sans-serif;
}
body {
 background: rgba(248,247,247,1);
 line-height: 2;
 font-size: 1.4rem;
 letter-spacing: 0.2em;
}
a {
 text-decoration: none;
}
a:hover {
 opacity: .7;
}

/* main */
#main{
 background: url(../../img/main.jpg) no-repeat center center;
 background-size: cover;
 width: 100%;
 height: 100vh;
 position: relative;
 color: white;
}
#siteId{
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translateX(-50%) translateY(-50%);
 text-align: center;
}
#siteId p{
 margin: 0;
 line-height: 1;
 font-size: 6.8rem;
 letter-spacing: 0.5rem !important;
}
#siteId p.sub{
 margin: 10px 0 0 0;
 font-size: 2.4rem;
 letter-spacing: 0.4rem !important;
}

/* otherContents */
#otherContents{
 margin: 0;
 padding: 0;
 position: fixed;
 top: 50%;
 right: 20px;
 transform: translateY(-50%);
 z-index: 10;
}
#otherContents li{
 width: 40px;
}
#otherContents li + li{
 margin: 20px 0 0 0;
}
#otherContents li a{
 background: rgba(0,0,0,.8);
 display: block;
 text-align: center;
 line-height: 40px;
 border-radius: 20px;
}
#otherContents li a:hover{
 background: rgba(73,107,50,.8);
}
#otherContents li a i{
 font-size: 1,6rem;
}
#reserveBtn{
 background: rgba(73,107,50,.8);
 width: 80px;
 line-height: 60px;
 text-align: center;
 letter-spacing: 0.1rem;
 position: fixed;
 top: 0;
 right: 0;
 z-index: 10;
}

/* section common */
section{
 width: 1000px;
 margin: 150px auto 0;
}
section h1{
 margin:0 0 50px 0;
 font-size: 3rem;
 font-weight: normal;
 text-align: center;
 letter-spacing: 0.5rem;
}
section h1::before{
 content: '- ';
}
section h1::after{
 content: ' -';
}
section h2{
 margin:0 0 20px 0;
 padding: 0 0 20px 0;
 font-size: 2.2rem;
 font-weight: normal;
 text-align: left;
 letter-spacing: 0.5rem;
 border-bottom: 1px solid rgba(0,0,0,.2);
 line-height: 1.4rem;
} 
section p.read{
 margin:20px 0 50px 0;
 text-align: center;
 font-size: 1.8rem;
 letter-spacing: 0.2rem;
}

/* philosophy */
section#philosophy h1{
 margin: 0;
}
section#philosophy .wrap{
 background: rgba(255,255,255,1);
 height: 360px;
 position: relative;
}
section#philosophy .wrap #imgBox{
 background: url(../../img/img01.jpg) no-repeat center center;
 background-size: cover;
 width: 100%;
 height: 360px;
 position: absolute;
 top: 0;
 right: 380px;
}
section#philosophy .wrap #philosophyTxt{
 width: 380px;
 height: 360px;
 position: absolute;
 top: 0;
 right: 0;
}
section#philosophy .wrap #philosophyTxt .catch{
  margin: 60px 0 0 0;
  text-align: center;
  font-weight: bold;
}
section#philosophy .wrap #philosophyTxt ul{
  width: 300px;
  margin: 40px auto 0;
  font-size: 1.2rem;
  letter-spacing: 0.1rem;
}
section#philosophy .wrap #philosophyTxt ul li{
  padding: 10px 0;
  text-align: center;
  border-bottom: 1px solid rgba(0,0,0,.1);
}

/* concept & staff */
#conceptMain{
 position: relative;
}
#conceptImg{
 background: url(../../img/img02.jpg) no-repeat center center;
 background-size: cover;
 height: 380px;
 border-radius: 4px;
}
#conceptMain .catch{
 font-size: 1.6rem;
 letter-spacing: 0.2rem;
 line-height: 40px;
 position: absolute;
 top: 50%;
 right: 60px;
 transform: translateY(-50%);
}
#staff{
 position: relative;
}
#staff p{
 margin: 30px 0 0 0;
}
#staff #profImg{
 width: 280px;
 position: absolute;
 top: 0;
 right: 0;
 text-align: right;
}
#staff #profImg img{
 border-radius: 4px; 
}
#staff #profImg p{
 margin: 10px 0 0 0;
 letter-spacing: 0.2rem;
}

/* menu */
#menu .wrap{
 padding: 0 0 0 380px;
 position: relative;
 min-height: 490px;
}
#menuImg{
 width: 330px;
 position: absolute;
 top: 0;
 left: 0;
} 
#menu img{
 width: 100%;
 border-radius: 4px;
}
#menu ul{
 margin: 0 0 50px 0;
 display: flex;
 flex-wrap: wrap;
}
#menu li{
 width: 300px;
 margin: 0 20px 0 0;
 position: relative;
 border-bottom: 2px dotted rgba(0,0,0,.2);
}
#menu li:nth-child(even){
 margin: 0; 
}
#menu li p{
 margin: 0 0 0 10px;
}
#menu li p.price{
 margin: 0 10px 0 0;
 position: absolute;
 top: 0;
 right: 0;
}
#menu li p.up{
 margin: 0 0 0 0;
 text-align: right;
 content: '-';
}
#menu li p.up::after{
 width: 10px;
 content: '-';
 display: inline-block;
}
#menu p.att{
 font-size: 1.2rem;
}

/* instagram */
#instagram ul{
 margin: 50px -50px 0 0;
 display: flex;
 flex-wrap: wrap;
}
#instagram ul li{
 width: 160px;
 height: 160px;
 margin: 0 50px 0 0;
 display: block;
}
#instagram ul li:nth-child(6){
  display: none;
}
#instagram ul li a{
 width: 100%;
 height: 100%;
 background: center center no-repeat;
 background-size: cover;
 display: block;
 border-radius: 4px;
}

/* blog */
#blogList ul li{
  text-align: center;
}
#blogList ul li + li{
  margin: 20px 0 0 0;
}
#blogList ul li a{
  padding: 0 20px 10px;
  border-bottom: 1px solid rgba(0,0,0,.2);
}
#blogList ul li a i{
  margin: 0 10px 0 0;
}

/* calendar */
#calendar #schWrap{
 background:rgba(0,0,0,0.02);
 padding: 20px;
}
#calendar #schWrap iframe{
 width: 960px;
 height: 560px;
}
#calendar #reserveTxt{
  margin: 30px 0 0 0;
  position: relative;
}
#calendar #reserveTxt #qr{
  width: 93px;
  position: absolute;
  bottom: 0;
  right: 0;
}

/* access */
#access{
  margin: 150px auto 0;
}
#access iframe{
 width: 1000px;
 height: 600px;
 -webkit-filter:grayscale(100%);
 -moz-filter:grayscale(100%);
 -ms-filter:grayscale(100%);
 -o-filter:grayscale(100%);
 filter:grayscale(100%); 
}
#access #infoBlock{
  margin: 50px 0 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}
#access #infoBlock dl{
  width: 550px;
  margin: 0 50px 0 0;
  display: flex;
  flex-wrap: wrap;
  line-height: 1.4;
}
#access #infoBlock dl dt{
  width: 85px;
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,5);
  font-size: 1.6rem;
  font-weight: bold;
}
#access #infoBlock dl dd{
  width: 465px;
  margin: 0;
  padding: 10px 0 10px 10px;
  border-bottom: 1px solid rgba(0,0,0,.2);
}
#access #infoBlock #root{
  background: rgba(255,255,255,1);
  width: 400px;
  padding: 0 20px;
  border-radius: 4px;
  font-size: 1.2rem;
  line-height: 1.9;
}
#access #infoBlock #root li{
  margin: 20px 0 0 0;
}
#access #infoBlock #root p.att{
  margin: 20px 0;
  font-size: 1rem;
}

/* footer */
footer{
  margin: 100px 0 50px;
  text-align: center;
}


/* SMARTPHONE */
@media screen and (max-width:480px) {
  /* main */
    #siteId p{
     font-size: 5rem;
    }
    #siteId p.sub{
     font-size: 2rem;
     letter-spacing: 0.2rem !important;
    }
  /* otherContents */
    #otherContents{
     top: auto;
     bottom: 10px;
     right: 10px;
     transform: translateY(0);
    }
    #otherContents li + li{
     margin: 10px 0 0 0;
    }
    #otherContents li i{
      letter-spacing: 0;
    }
    #reserveBtn{
     width: 60px;
     line-height: 50px;
    }
  /* section common */
    section{
     width: 100%;
     margin: 100px auto 0;
    }
    section h1{
     font-size: 2rem;
     margin:0 0 30px 0;
    }
    section h2{
     width:calc(100% - 40px);
     margin:30px 0 10px 20px;
     padding: 0 0 10px 0;
     font-size: 1.8rem;
     letter-spacing: 0.15rem;
    } 
    section p.read{
     margin:10px 0 50px 0;
     text-align: center;
     font-size: 1.2rem;
     letter-spacing: 0.05rem;
    }
  /* philosophy */
    section#philosophy .wrap{
     padding: 0 0 30px 0;
     height: auto;
    }
    section#philosophy .wrap #imgBox{
     height: 200px;
     position: relative;
     top: auto;
     right: auto;
    }
    section#philosophy .wrap #philosophyTxt{
     width: 100%;
     height: auto;
     position: relative;
     top: auto;
     right: auto;
    }
    section#philosophy .wrap #philosophyTxt .catch{
      margin: 30px 0 0 0;
    }
    section#philosophy .wrap #philosophyTxt ul{
      width: calc(100% - 40px);
      margin: 20px auto 0;
    }
  /* concept & staff */
    #conceptImg{
     background-position: top left;
     margin: 0 0 20px 0;
     height: 200px;
     border-radius: 0;
    }
    #conceptMain .catch{
     font-size: 1.3rem;
     letter-spacing: 0.02rem;
     line-height: 2;
     position: relative;
     top: auto;
     right: auto;
     transform: translateY(0);
     text-align: center;
    }
    #staff p{
     width: calc(100% - 40px);
     font-size: 1.3rem;
     margin: 30px auto 0;
     letter-spacing: 0.05em;
    }
    #staff p br{
      display: none;
    }
    #staff #profImg{
     width: 50%;
     margin: 30px auto 0;
     position: relative;
     top: auto;
     right: auto;
    }
    #staff #profImg img{
     border-radius: 4px; 
    }
    #staff #profImg p{
     margin: 10px 0 0 0;
     letter-spacing: 0.05rem;
    }
  /* menu */
    #menu .wrap{
     padding: 0;
     position: relative;
     min-height: auto;
    }
    #menuImg{
     width: 100%;
     height: 200px;
     margin: 0 0 50px 0;
     overflow: hidden;
     position: relative;
     top: auto;
     left: auto;
    } 
    #menu img{
     border-radius: 0;
    }
    #menu ul{
     width: calc(100% - 40px);
     margin: 0 0 50px 20px;
     display: block;
     flex-wrap: nowrap;
    }
    #menu li{
     width: 100%;
     margin: 0;
    }
    #menu p.att{
     margin: 0 20px;
     font-size: 1rem;
    }
  /* instagram */
    #instagram ul{
     width: calc(100% - 40px);
     margin: -20px 20px 0;
    }
    #instagram ul li{
     width: calc(50% - 10px);
     height: auto;
     margin: 20px 20px 0 0;
    }
    #instagram ul li:nth-child(6){
      display: block;
    }
    #instagram ul li:nth-child(even){
      margin: 20px 0 0 0;
    }
    #instagram ul li a{
     height: auto;
     padding: 100% 0 0 0;
    }
  /* blog */
    #blogList ul{
      width: calc(100% - 40px);
      margin: 0 auto;
      font-size: 1.2rem;
    }
    #blogList ul li{
      text-align: left;
    }
    #blogList ul li + li{
      margin: 10px 0 0 0;
    }
    #blogList ul li a{
      padding: 0 10px 10px;
      display: block;
    }
    #blogList ul li a i{
      margin: 0 10px 0 0;
    }
    
  /* calendar */
    #calendar #schWrap iframe{
     width: 100%;
     height: 560px;
    }
    #calendar #reserveTxt{
      width: calc(100% - 40px);
      margin: 30px 100px 0 20px;
      font-size: 1.2rem;
      letter-spacing: 0.01rem;
    }
    #calendar #reserveTxt #qr{
      width: 80px;
      margin: 20px auto 0;
      position: relative;
      bottom: auto;
      right: auto;
    }
  /* access */
    #access{
      margin: 100px auto 0;
    }
    #access iframe{
      width: 100%;
    }
    #access #infoBlock{
      width: calc(100% - 40px);
      margin: 30px auto 0;
      display: block;
      flex-wrap: wrap;
      align-items: flex-start;
    }
    #access #infoBlock dl{
      width: 100%;
      margin: 0;
      display: block;
    }
    #access #infoBlock dl dt{
      width: 100%;
      padding: 10px 0 0;
      border-bottom:none;
      font-size: 1.4rem;
    }
    #access #infoBlock dl dd{
      width: 100%;
      margin: 0;
      padding: 5px 0 10px;
      border-bottom: 1px solid rgba(0,0,0,.2);
      line-height: 1.6;
    }
    #access #infoBlock #root{
      width: 100%;
      margin: 30px 0 0 0;
      padding: 20px 20px;
      border-radius: 4px;
      font-size: 1.2rem;
      line-height: 1.8;
    }
    #access #infoBlock #root li{
      margin: 0 0 20px 0;
    }
    #access #infoBlock #root p.att{
      margin: 0;
      font-size: 1rem;
    }
    
}