@charset "utf-8";
html     ,
body     ,
article  ,
section  ,
div      ,
h1       ,
h2       ,
h3       ,
h4       ,
h5       ,
dl       ,
dt       ,
dd       ,
ul       ,
ol       ,
li       ,
p        ,
input    ,
select   ,
textarea
{
	margin:0;
	padding:0;
    font-family: "Noto Sans JP", serif;
    font-optical-sizing: auto;
    font-style: normal;
	color: #402922;
	font-size: 15px;
	font-feature-settings: "palt"1;
	line-height: 1.3;
	letter-spacing: 0.1em;
	-webkit-text-size-adjust: 100%;
	border:none;
}

h1{font-size: 2.5rem;}
h2{font-size: 2rem;}
h3{font-size: 1.5rem;}
p{font-size: 1rem; margin-top: 10px; line-height: 1.6;}
a{text-decoration: none;}

@media (max-width:640px){
    h2{font-size: 2.2rem;}
    h3{font-size: 1.7rem;}
    p{font-size: 1.1rem; margin-top: 12px; line-height: 1.8;}  
}

html {
	overflow-y:scroll;
	margin-bottom:1px;
	height:100%;
}

@media only screen and (min-width:641px){.sp { display:none !important;}}
@media only screen and (max-width:640px){.pc { display:none !important;}}


.fadeIn{
    transition: all 2000ms;
    opacity: 0;
    visibility: hidden;
    transform: translate(0px, 30px);
}
.fadeInTop {
    opacity: 1;
    visibility: visible;
    transform: translate(0px, 0px);
} 

h2.title{text-align: center; margin-bottom: 30px;}
h2.title small{display: block; font-size: 1rem;}

/* btn */
.btn {
    position: relative;
    overflow: hidden;
    border: solid 1px #402922;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 250px;
    background: #402922;
    margin: auto;
    padding: 10px 30px;
    font-family: "Noto Sans Japanese";
    font-weight: 500;
    text-align: center;
    line-height: 1.8;
    outline: none;
    transition: ease .2s;
}
.btn span{
    position: relative;
    z-index: 3;
    color:#fff;
}
.btn:hover span{color:#402922;}
.btn::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  background:#fff;
  width: 100%;
  height: 100%;
  transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform: scale(0, 1);
  transform-origin: right top;
}
.btn:hover::before{transform-origin:left top; transform:scale(1, 1);}
.btn::after{
    transform: rotate(45deg);
    width: 5px;
    height: 5px;
    margin-left: 10px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    content: '';
}
.btn:hover::after{border-color: #402922; z-index: 10;}
/* freeats-color */
.b01{background: #a97461; border: solid 1px #a97461;}
.b01:hover span{color:#a97461;}
.b01:hover::after {border-color: #a97461;}
.b02{background: #93885b; border: solid 1px #93885b;}
.b02:hover span{color:#93885b;}
.b02:hover::after {border-color: #93885b;}
.b03{background: #b38967; border: solid 1px #b38967;}
.b03:hover span{color:#b38967;}
.b03:hover::after {border-color: #b38967;}
.b04{background: #9d8e86; border: solid 1px #9d8e86;}
.b04:hover span{color:#9d8e86;}
.b04:hover::after {border-color: #9d8e86;}
.b05{background: #b2807b; border: solid 1px #b2807b;}
.b05:hover span{color:#b2807b;}
.b05:hover::after {border-color: #b2807b;}
.b06{background: #838f8f; border: solid 1px #838f8f;}
.b06:hover span{color:#838f8f;}
.b06:hover::after {border-color: #838f8f;}
.b07{background: #9d9c7a; border: solid 1px #9d9c7a;}
.b07:hover span{color:#9d9c7a;}
.b07:hover::after {border-color: #9d9c7a;}

/* 固定クッキー */
.top_return{
position: fixed;
bottom: 30px;
right: 20px;
width:140px;
height:120px;
background:url('../img/share/top.png');
z-index: 100;
}
.top_return:hover{background:url('../img/share/top-h.png');}
.top_return img{width: 100%;}
.top_return p{display: none;}
.top_return:hover p{display: block; text-align: center; font-weight: 700; position: relative; bottom:15px; font-size: 1.8rem;}


@media (max-width:640px){
	.btn {
    padding: 10px 20px;
}
    .top_return{
    position: fixed;
    bottom: 50px;
    right: 0;
    transition: 0.3s;
    }
}



/* header */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 2000;
  background: #fff;
  padding: 10px 15px;
  transition: 0.5s;
}
header .logo:hover,header nav ul li a:hover{opacity: .5;}
header .logo {transition: 0.5s; margin-left: 30px;}
header .logo img{width: 80%;}
header ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}
header a {
  display: inline-block;
  margin-left: 12px;
  color: #402922;
  font-size: 1.2rem;
  text-decoration: none;
  letter-spacing: 1px;
  transition: 0.5s;
}
header nav ul li{margin: 0 20px 0;}
header nav ul li:nth-child(5){border-left: solid 1px #402922; padding: 0 20px 0 40px;}
header nav ul li a img{max-width: 80%;}


@media (max-width:640px){
    header .logo {margin-left: 10px;}
    header .logo img{width: 80%;}
    header nav.index ul li a{color: #402922; text-shadow: none;}
    .hamburger {
      position: fixed;
      top: 30px;
      right: 70px;
      z-index: 10000;
      cursor: pointer;
      background: none;
      border: none;
    }
    .hamburger__line {
      position: absolute;
      left: 0;
      width: 40px;
      height: 3px;
      background-color: #fff;
      transition: all .4s;
    }    
    .con{
      position: absolute;
      left: 0;
      width: 40px;
      height: 3px;
      background-color: #402922;
      transition: all .4s;
    }
    header.scroll-nav .hamburger__line .in{background-color: #402922;}
    .hamburger__line:nth-of-type(1) {top: 20px;}
    .hamburger__line:nth-of-type(2) {top: 30px;}
    .hamburger__line:nth-of-type(3) {top: 39px;}

    /* メニューオープン時 */
    .hamburger.active .hamburger__line:nth-of-type(1) {transform: translateY(9px) rotate(-45deg); background-color: #402922;}
    .hamburger.active .hamburger__line:nth-of-type(2) 
    {opacity: 0; background-color: #402922;}
    .hamburger.active .hamburger__line:nth-of-type(3) {transform: translateY(-9px) rotate(45deg); background-color: #402922;}
    header nav {
      position: fixed;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background-color: #fff;
      transform: translateY(-100%);
      transition: transform .6s;
      z-index: 100;
      display: flex; 
      align-content: center; 
      align-items: center;
      justify-content: center;
    }
    header nav ul {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    header nav.active {transform: translateY(0); z-index: 100;}
    header nav ul{margin: 0; padding:0; }
    header nav ul li{width: 100%; text-align: center; padding-bottom:80px; margin: 0;}
    header nav ul li a,header nav ul li a p{color: #402922; text-shadow: none; font-size: 2rem; font-family: "Noto Serif JP", serif; line-height: 1.3; letter-spacing: 0.1em; margin: auto;}
    header a {margin-left: 0;}
    header nav ul li:nth-child(5){border-left: none; padding: 0;}
    header nav ul li a img{max-width: 100%;}
    header.scroll-nav nav img.scroll{display: none;}
    header.scroll-nav ul li:nth-child(5){border-left: none;}
}


/* footer */
footer{display: flex; flex-wrap: wrap; align-content: center; align-items: center; justify-content: center; background: url("../img/share/footer.jpg"); background-size: cover;
position: relative; background-repeat: no-repeat; padding:80px 0 0; margin: 150px 0 0;}
footer::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.2);
}
footer .grandex{width: 35%; z-index: 10; padding-left: 20px;}
footer .grandex p{color: #fff;}
footer nav{width: 60%; z-index: 10;}
footer nav ul{display: flex; flex-wrap: wrap; align-content: center; align-items: center;}
footer nav ul li{padding:0 30px;}
footer nav ul li img{max-width: 80%;}
footer a{color: #fff; transition: .6s;}
footer a:hover{opacity: .5;}
footer small{width: 100%; color: #fff; background: #402922; z-index: 10; padding:8px 10px; margin-top: 50px; text-align: right;}

@media (max-width:640px){
    footer{padding:30px 0 0; margin: 100px 0 0; background-position: center;}
    footer .grandex{width: 100%; z-index: 10; padding-left: 0;}
    footer .grandex img{margin: 0 auto 30px; text-align: center; display: block;}
    footer nav{width: 100%;}
    footer nav ul{justify-content: center;}
    footer nav ul li{text-align: center; padding:0 15px;}
    footer small{margin-top: 35px;}
}
