@charset "utf-8";


html{scroll-behavior: smooth;overflow-x: hidden;}
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #fff;
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
}

	a{
    letter-spacing: 0.1em;
    -webkit-transition:ease .5s;
     transition:ease .5s;}
	a:hover{
    opacity:0.5;
    -webkit-transition:ease .5s;
     transition:ease .5s;
     text-decoration: none;
    }

    .pc-none {display:none!important;}
    .sp-none {display:contents!important;}

    @media only screen and (max-width:768px){
    	.pc-none {display:contents!important;}
    	.sp-none {display:none!important;}
    	}

.red{color:#ff0000;}
.white{color:#fff;}
.black{color:#000;}

.bg-red{background-color:#ff0000;}
.bg-white{background-color:#fff;}
.bg-black{background-color:#000;}

small{line-height:100%;font-size:85%;}
table{line-height:160%;width: 100%;}

small.kana-name{font-size:45%;letter-spacing: 0.15em;margin:0 5px;}

/*========▼▼header▼▼========*/

header {
  width: 100%;
  transition: 1s;
  -webkit-transition:ease .5s;
   transition:ease .5s;
  position: fixed;
  z-index: 99;
}

body#home header{
  display:none;
}


/* CSSアニメーションの指定 */
body#home header{
  animation: SlideIn 0.5s;
}

/* CSSアニメーションの設定 */
@keyframes SlideIn {
  0% {
    opacity: 0;/*初期状態では透明に*/
    transform: translateX(64px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.wrapper {
  height: 100%;
  /*overflow-x: hidden;*/
  position: relative;
}
.overlay {
  content: "";
  display: block;
  width: 0;
  height: 0;
  background-color: rgba(0, 0, 0, 0.5);
  position:fixed;
  top: -10%;
  left: 0;
  z-index: 2;
  opacity: 0;
  transition: opacity .5s;
}
.overlay.open {
  width: 100%;
  height: 110%;
  opacity: 1;
}
main {
  transition: all .5s;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index:1;
  width: 100vw;
}
main.open {
  transform: translateX(-250px)!important;
  /*margin-left: -250px;*/
}
main h1 {
  text-align: center;
  font-weight: 500;
}

.menu-trigger {
  display: inline-block;
  width: 58px;
  height: 50px;
  vertical-align: middle;
  cursor: pointer;
  position: fixed;
  top:0px;
  right:0px;
  z-index: 100;
  transform: translateX(0);
  transition: transform .5s;
  z-index: 99;
  background:#707070;
  padding: 16px;
  transition: transform .5s;
   }
   .menu-trigger.active {
    transform: translateX(-192px);
  }



.menu-trigger span {
  display: flex;
  box-sizing: border-box;
  position: relative;
  left: 0;
  width: 100%;
  height: 2px;
  background-color:#fff;
  -webkit-transition:ease .5s;
   transition:ease .5s;
}
.menu-trigger.active span {
  background-color: #fff;
  -webkit-transition:ease .5s;
   transition:ease .5s;
}
.menu-trigger span:nth-of-type(1) {
  top: 0px;
}
.menu-trigger.active span:nth-of-type(1) {
  transform: translateY(6px) rotate(-45deg);
}
.menu-trigger span:nth-of-type(2) {
  top: 4px;
}
.menu-trigger.active span:nth-of-type(2) {
  opacity: 0;
}
.menu-trigger span:nth-of-type(3) {
    top: 8px;
}
.menu-trigger.active span:nth-of-type(3) {
  transform: translateY(-6px) rotate(45deg);
}

nav {
  width: 250px;
  height: 100vh;
  padding-top: 12vh;
  background-color:#fff;
  position: fixed;
  top: 0;
  right: 0;
  z-index:66;
  transform: translate(250px);
  transition: all .5s;
}
nav.open {
  transform: translateZ(0);
  transition: all .5s;
}
nav li {
  color: #000;
  text-align: left;
  padding: 2vh 0 2vh 12%;
}

nav li a{
  color: #000;
  position: relative;
  display: inline-block;
  text-decoration: none;
  padding-bottom:5px;
}
nav li a::after {
  position: absolute;
  bottom: -3px;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  background: #333;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform .3s;
}
/*body#home nav li a::after{bottom: -3px;}*/

nav li.active a::after {bottom: 0px;}

nav li a:hover::after {
  transform: scale(1, 1);
}

nav li.active a{border-bottom:1px solid #999;padding-bottom:4px;}

@media screen and (min-width:1024px) {
    body.pages .menu-trigger{display: none;}
    body.pages nav {
        width: 100%;
        height: auto;
        padding-top: 0;
        background-color: rgb(255, 255, 255, 0.8);
        position: fixed;
        top: 0;
        right: 0;
        z-index: 66;
         transform: translate(0px);
        transition: all .5s;
    }

    body.pages nav ul{
        float: right;
        margin-right:1.5vw;
    }

    body.pages nav li {
        padding: 4vh 10px;
        display: inline-block;
        font-size: 90%;
    }

    body.pages .overlay.open {opacity: 0;}
    body.pages main.open {margin-left: 0;}

}
@media screen and (max-width:1024px) {
  body.pages header{position: relative;}
}



/*========▼▼main▼▼========*/

/* スクロールCSS */
.fade-in {
  opacity: 0;
  transition-duration: 1200ms;
  transition-property: opacity, transform;
}

.fade-in-up {
  transform: translate(0, 50px);
}

.fade-in-down {
  transform: translate(0, -50px);
}

.fade-in-left {
  transform: translate(-50px, 0);
}

.fade-in-right {
  transform: translate(50px, 0);
}

.scroll-in {
  opacity: 1;
  transform: translate(0, 0);
}

/* フェードイン(初期値) */
.js-fadeUp {
  opacity: 0; /* 最初は非表示 */
  transform: translateY(30px); /* 下に30pxの位置から */
  transition: opacity 1.6s, transform 1.6s; /* 透過率と縦方向の移動を0.8秒 */
}
.js-fadeDown {
  opacity: 0; /* 最初は非表示 */
  transform: translateY(-30px); /* ↑に30pxの位置から */
  transition: opacity 1.6s, transform 1.6s; /* 透過率と縦方向の移動を0.8秒 */
}
.js-fadeLeft {
  opacity: 0; /* 最初は非表示 */
  transform: translateX(-30px); /* 下に30pxの位置から */
  transition: opacity 1.6s, transform 1.6s; /* 透過率と縦方向の移動を0.8秒 */
}
.js-fadeRight {
  opacity: 0; /* 最初は非表示 */
  transform: translateX(30px); /* 下に30pxの位置から */
  transition: opacity 1.6s, transform 1.6s; /* 透過率と縦方向の移動を0.8秒 */
}
.js-fadebg {
  opacity: 0.05; /* 最初は非表示 */
  transition: opacity 1.6s, transform 1.6s; /* 透過率と縦方向の移動を0.8秒 */
}
/* フォントカラー(初期値) */
.js-color {
  color: #f6f6f6; /* 最初は青色 */
  font-size: 15px; /* 最初は15px */
  transition: color .8s, font-size .8s; /* 色の変化を0.8秒かける */
}
/* フェードイン(スクロールした後) */
.js-fadeUp.is-inview {
  opacity: 1; /* 表示領域に入ったら表示 */
  transform: translateY(0); /* 30px上に移動する */
  transition-delay: .5s; /* フェード開始を0.5秒遅らせる */
}
.js-fadeDown.is-inview {
  opacity: 1; /* 表示領域に入ったら表示 */
  transform: translateY(0); /* 30px上に移動する */
  transition-delay: .5s; /* フェード開始を0.5秒遅らせる */
}
.js-fadeLeft.is-inview {
  opacity: 1; /* 表示領域に入ったら表示 */
  transform: translateX(0); /* 30px上に移動する */
  transition-delay: .5s; /* フェード開始を0.5秒遅らせる */
}
.js-fadeRight.is-inview {
  opacity: 1; /* 表示領域に入ったら表示 */
  transform: translateX(0); /* 30px上に移動する */
  transition-delay: .5s; /* フェード開始を0.5秒遅らせる */
}
/* フォントカラー変更(スクロールした後) */
.js-color.is-inview {
  color: #000; /* 表示領域に入ったら色を変える */
  font-size: 25px; /* 表示領域に入ったら25px */
  transition-delay: .5s; /* 開始を0.5秒遅らせる */
}
.js-fadebg.is-inview {
  opacity: 1; /* 表示領域に入ったら表示 */
  transition-delay: .5s; /* フェード開始を0.5秒遅らせる */
}

/*========▼▼#footer▼▼========*/
#footer{
    width: 100%;
    min-width: 320px;
    margin:0 auto;
    position:relative;
    z-index: 1;
    bottom: 0;
    background: #ddd;
}

#footer ul{padding:26px 0;max-width: 1140px;margin:auto;}
#footer ul li{text-align:center;padding:3vh 1vw;letter-spacing: 0.05em;font-size:14px;display: inline-block;line-height:160%; width:24%;}
#footer ul li a small{font-size:60%;}
#footer ul li a span{font-size:80%;}
#footer ul li a{color:#000;display:block;}
#footer ul li a:hover{color:#c5c5c5;text-decoration: none;}

#footer copyright{
	text-align:center;
	letter-spacing:0.1em;
	font-size:80%;
	display:block;
  padding-bottom:3vh;
  color: #fff;
  width: 100%;
}

@media screen and (max-width: 768px) {
  #footer ul li{width: 49%;}
  main{overflow-x:hidden;}
}

@media screen and (max-width: 480px) {

}


/*========▼▼PC,SP改行▼▼========*/
