@charset "UTF-8";

/*共通部分CSS*/
html {
  font-size: 62.5%; /* 16px * 62.5% = 10px */
  width: 100%;
  box-sizing: border-box;
}
body {
  color: #fff; /* RGB */
  font-family: "Roboto", 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, 'sans-serif';
  font-weight: 500;
  font-size: 1.6em;
  text-align: center;
}

a{
  color:inherit;
  text-decoration: none;
}

img{
	width:100%;
}
.none {
  display: none;
}
.pc {
	display:block;
}
.sp {
	display:none;
}
@media only screen and (max-width:768px) {
.pc {
	display:none;
}
.sp {
	display:block;
}
}

/*.section{
	hight: 100vh;
}

.section_main{
	height: 100vh;
}

/*===========================================================*/
/* スクロールに連動した動き*/
/*===========================================================*/


/*== じわっ ==*/

/* blur */
.blur{
	animation-name: blurAnime;
	animation-duration:1s;
	animation-fill-mode:forwards;
}

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

  to {
	filter: blur(0);
	transform: scale(1);
	opacity: 1;
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.blurTrigger{
    opacity: 0;
}

/*===========================================================*/
/* テキストが1文字づつ出現*/
/*===========================================================*/

/*========= 1文字づつ出現させるためのCSS ===============*/

.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;}
}

/* PC用FixedMenu
 * --------------------------------------- */
#menu li {
	position:relative;
	display:block;
	margin: 5px;
	color: #fff;
	text-align: right;
	z-index: 200;
	font-size: 90%;
	letter-spacing:0.1rem;
	font-weight: 200;
	text-transform: uppercase;
}

#menu li.active{
	font-weight: 500;
}
#menu li a{
	text-decoration:none;
	color: #fff;
}
#menu li a:hover{
	color: #fff;
	opacity: 0.7;
}
#menu li:hover{
}
#menu li a,
#menu li.active a{
	padding: 4px 18px;
	display:block;
}
#menu li.active a{
	color: #fff;
}
#menu{
	display: flex;
	justify-content: flex-end;
	position:fixed;
	top:20px;
	right: 30px;
	height: 30px;
	z-index: 70;
	width: 100%;
	padding: 0;
	margin:0;
}
#pp-nav ul{
	display: none;
}

.current a {
  font-weight: 900;
}


/* Hamburger Menu
 * --------------------------------------- */

.header{
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}
.header_inner{
  max-width: 1500px;
  padding:20px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.logo_stick{
	z-index:1000;
}
.logo{
	width: 200px;
	position: absolute;
	top:7px;
	left:86px;
	z-index: 12;
	backface-visibility:hidden;
}
/*.logo img{
  width: 200px;
	position: absolute;
	top:28px;
	left:86px;
	z-index: 12;
	backface-visibility:hidden;
}*/

#menu_checkbox{
  display: none;
}
#background{
  display: block;
  z-index: 9;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  transition: .4s;
  background-color: #000000;
}
.gnav{
  position: fixed;
  top: 60px;
  left: 0;
  width: 100%;
  height: 0;
  overflow-y: hidden;
  padding:0;
  transition: .4s;
  z-index: 10;
}
.gnav_item {
  font-weight: 400;
  text-align: left;
  opacity: 0;
  transition: .4s .4s;
	list-style: none;
}

.gnav_link{
  text-decoration: none;
  color: #fff;
	font-size: 1.8rem;
	letter-spacing:0.2rem;
	text-transform: uppercase;
}
.menu_btn {
  display: inline-block;
  position: absolute;
	top:31px;
	left:40px;
  width: 26px;
  height: 21px;
  cursor: pointer;
}

.menu_btn span {
  display: inline-block;
  width: 100%;
  height: 2px;
  background-color: #fff;
  transition: .4s;
  box-sizing: border-box;
  position: absolute;
  right: 0;
  border-radius: 3px;
}

.menu_btn span:nth-of-type(1) {
  top: 0;
  width: calc(100% - 4px);
  animation:line1 1s linear infinite;
}

.menu_btn span:nth-of-type(2) {
  top: 9px;
  width: calc(100% - 7px);
  animation:line2 1s linear infinite;
}

.menu_btn span:nth-of-type(3) {
  bottom: 0;
  animation:line3 1s linear infinite;
}

@keyframes line1{
  0%{
    width: calc(100% - 4px);
  }
  25%{
    width: calc(100% - 2px);
  }
  50%{
    width: calc(100% - 4px);
  }
  75%{
    width: calc(100% - 6px);
  }
  100%{
    width: calc(100% - 4px);
  }
}

@keyframes line2{
  0%{
    width: calc(100% - 7px);
  }
  25%{
    width: calc(100% - 9px);
  }
  50%{
    width: calc(100% - 7px);
  }
  75%{
    width: calc(100% - 5px);
  }
  100%{
    width: calc(100% - 7px);
  }
}

@keyframes line3{
  0%{
    width: 100%;
  }
  50%{
    width: calc(100% - 9px);
  }
  100%{
    width: 100%;
  }
}
/*.header_bk{
	width: 100%;
	height: 80px;
	background-color:#000;
	position:fixed; 
	top:0;
	left:0;
	z-index:100;
}*/


@media screen and (max-width: 1200px) {
	#menu{
		display: none;
	}
	.header_bk{
	opacity: 0.16;
}
	}

#menu_checkbox:checked ~ #menu_label .menu_btn span:nth-of-type(1) {
  transform: translateY(9px) rotate(-225deg);
  width: 100%;
  animation:none;
	z-index:10;
}

#menu_checkbox:checked ~ #menu_label .menu_btn span:nth-of-type(2) {
  right: 100%;
  opacity: 0;
  width: 100%;
  animation:none;
}

#menu_checkbox:checked ~ #menu_label .menu_btn span:nth-of-type(3) {
  transform: translateY(-9px) rotate(225deg);
  width: 100%;
  animation:none;
	z-index:10;
}

#menu_checkbox:checked ~ #background{
  height: 100%;
}

#menu_checkbox:checked ~ .gnav {
  max-height: calc(100vh - 60px);
  height: auto;
  padding: 60px 85px;
}

#menu_checkbox:checked ~ .gnav .gnav_item {
  opacity: 1;
  margin-bottom: 24px;
	text-align: left;
}
/*Page Title*/
.page_title {
    font-size: 54px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .8rem;
    color: #fff;
	  text-align: center;
	  padding-top: 10%;
    margin-top: 0;
}
.page_title_1 {
    font-size: 54px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .8rem;
    color: #fff;
	  text-align: center;
	  padding-top: 20%;
    margin-top: 0;
}
.page_title_2 {
    font-size: 54px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .8rem;
    color: #fff;
	  text-align: center;
	  padding-top: 10%;
    margin-top: 0;
}
.sub_ttl{
	font-size:20px;
	font-weight:200;
	color: #fff;
	text-align: center;
	margin-top: -30px;
}
.sub_ttl_form {
    text-align: left;
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.8;
    font-weight: 200;
	  font-size: 16px;
}
.title_p{
	max-width:800px;
	padding: 10px;
	margin: 0 auto;
	text-align: left;
	color:#fff;
	font-weight: 200;
	line-height: 1.4;
	padding-bottom: 40px;
  text-shadow: 2px 2px 13px #000;
}
@media only screen and (max-width:768px) {
	.page_title{
		font-size: 32px;
		letter-spacing: 0.6rem;
		margin-right: 0;
}
	.page_title_1{
		font-size: 32px;
		letter-spacing: 0.6rem;
		margin-right: 0;
		padding-top: 0;
}
	.page_title_2{
		font-size: 28px;
		letter-spacing: 0.6rem;
		margin-right: 0;
		padding-top: 20%;
}
	.menu_btn {
    top: 25px;
    left: 15px;
}
.logo {
    width: 150px;
    top: -4px;
    left: 56px;
	}
#menu_checkbox:checked ~ .gnav {
    padding: 60px 0;
}
#menu_checkbox:checked ~ .gnav .gnav_item {
    margin-bottom: 40px;
}
	.sub_ttl{
	font-size:18px;
	padding-top:40px;
}
.sub_ttl_form {
    margin: 50px auto;
    width: 90%;
	}
}

/*ボタンの基本形*/
* {
  box-sizing: border-box;
}

.buttonBox{
  margin: 0 auto;
  position:absolute;
	bottom: 0;
	left:50%;
  max-width: 300px;
  min-width: 150px;
  flex: 20%;
	-ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
}
.buttonBox2{
  margin: 40px auto;
  position:relative;
  max-width: 300px;
  min-width: 150px;
  flex: 20%;
}

button {
    width: 300px;
    height: 80px;
    position: relative;
    background: none;
    text-transform: uppercase;
    color: white;
    font-weight: 500;
    letter-spacing: 1rem;
    letter-spacing: 0.8rem;
    border: none;
    font-size: 16px;
    outline: none;
    cursor: pointer;
    padding: 3px 30px;
}

.border{
    position:absolute;
    background:none;
    transition:all .5s ease-in-out;
}
/*各ボタンの装飾*/

/* LINE BUTTON 1 */

#LB1>.border:nth-of-type(1){
  top:0;
  left:0;
  width:0;
  height:0;
  border-top:1.2px solid white;
}

#LB1>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:0;
  border-right:1px solid white;
}

#LB1>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:0;
  height:0;
  border-bottom:1px solid white;
}

#LB1>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:0;
  border-left:1px solid white;
}

#LB1:hover .border:nth-of-type(1){
  width:100%;
}

#LB1:hover .border:nth-of-type(2){
  height:80px;
}

#LB1:hover .border:nth-of-type(3){
  width:100%;
}

#LB1:hover .border:nth-of-type(4){
  height:80px;
}

/* LINE BUTTON 2 */

#LB2>.border:nth-of-type(1){
  top:0;
  left:0;
  width:0;
  height:0;
  border-top:1px solid white;
}

#LB2>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:0;
  border-right:1px solid white;
}

#LB2>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:0;
  height:0;
  border-bottom:1px solid white;
}

#LB2>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:0;
  border-left:1px solid white;
}

#LB2:hover .border:nth-of-type(1){
  width:100%;
}

#LB2:hover .border:nth-of-type(2){
  height:80px;
}

#LB2:hover .border:nth-of-type(3){
  width:100%;
}

#LB2:hover .border:nth-of-type(4){
  height:80px;
}

/* LINE BUTTON 3 */

#LB3>.border:nth-of-type(1){
  top:0;
  left:0;
  width:0;
  height:0;
  border-top:1px solid white;
}

#LB3>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:0;
  border-right:1px solid white;
}

#LB3>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:0;
  height:0;
  border-bottom:1px solid white;
}

#LB3>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:0;
  border-left:1px solid white;
}

#LB3:hover .border:nth-of-type(1){
  width:100%;
}

#LB3:hover .border:nth-of-type(2){
  height:80px;
}

#LB3:hover .border:nth-of-type(3){
  width:100%;
}

#LB3:hover .border:nth-of-type(4){
  height:80px;
}

/* LINE BUTTON 4 */

#LB4>.border:nth-of-type(1){
  top:0;
  left:0;
  width:0;
  height:0;
  border-top:1px solid white;
}

#LB4>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:0;
  border-right:1px solid white;
}

#LB4>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:0;
  height:0;
  border-bottom:1px solid white;
}

#LB4>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:0;
  border-left:1px solid white;
}

#LB4:hover .border:nth-of-type(1){
  width:100%;
}

#LB4:hover .border:nth-of-type(2){
  height:80px;
}

#LB4:hover .border:nth-of-type(3){
  width:100%;
}

#LB4:hover .border:nth-of-type(4){
  height:80px;
}


@media only screen and (max-width:768px) {
	
/* LINE BUTTON 1 SP*/
	
	#LB1>.border:nth-of-type(1){
  top:0;
  left:0;
  width:100%;
  height:0;
  border-top:1px solid white;
}

#LB1>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:80px;
  border-right:1px solid white;
}

#LB1>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:100%;
  height:0;
  border-bottom:1px solid white;
}

#LB1>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:80px;
  border-left:1px solid white;
}
	
/* LINE BUTTON 2 SP*/

#LB2>.border:nth-of-type(1){
  top:0;
  left:0;
  width:100%;
  height:0;
  border-top:1px solid white;
}

#LB2>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:80px;
  border-right:1px solid white;
}

#LB2>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:100%;
  height:0;
  border-bottom:1px solid white;
}

#LB2>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:80px;
  border-left:1px solid white;
}

/* LINE BUTTON 3 */

#LB3>.border:nth-of-type(1){
  top:0;
  left:0;
  width:100%;
  height:0;
  border-top:1px solid white;
}

#LB3>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:80px;
  border-right:1px solid white;
}

#LB3>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:100%;
  height:0;
  border-bottom:1px solid white;
}

#LB3>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:80px;
  border-left:1px solid white;
}
	
/* LINE BUTTON 4 */

#LB4>.border:nth-of-type(1){
  top:0;
  left:0;
  width:100%;
  height:0;
  border-top:1px solid white;
}

#LB4>.border:nth-of-type(2){
  top:0;
  right:0;
  width:10px;
  height:80px;
  border-right:1px solid white;
}

#LB4>.border:nth-of-type(3){
  bottom:0;
  right:0;
  width:100%;
  height:0;
  border-bottom:1px solid white;
}

#LB4>.border:nth-of-type(4){
  bottom:0;
  left:0;
  width:0;
  height:80px;
  border-left:1px solid white;
}
	
	
}


/* CROSS BUTTON 1 */

#CB1>.border:nth-of-type(1){
  top:0;
  left:0;
  border-top:1px solid white;
  width:100%;
  height:100%;
}

#CB1>.border:nth-of-type(2){
  bottom:0;
  left:0;
  width:100%;
  height:100%;
  border-bottom:1px solid white;
}

#CB1>.border:nth-of-type(3){
  left:0;
  top:0;
  height:100%;
  width:100%;
  border-left:1px solid white;
}

#CB1>.border:nth-of-type(4){
  top:0;
  right:0;
  height:100%;
  width:100%;
  border-right:1px solid white;
}

#CB1:hover .border:nth-of-type(1){
  transform:translate(0, 99%);
}

#CB1:hover .border:nth-of-type(2){
  transform:translate(0, -99%);
}

#CB1:hover .border:nth-of-type(3){
  transform:translate(99.5%, 0);
}

#CB1:hover .border:nth-of-type(4){
  transform:translate(-99.5%, 0);
}


/* CROSS BUTTON 2 */

#CB2>.border:nth-of-type(1){
  top:0;
  left:0;
  border-top:1px solid white;
  width:100%;
  height:100%;
}

#CB2>.border:nth-of-type(2){
  bottom:0;
  left:0;
  width:100%;
  height:100%;
  border-bottom:1px solid white;
}

#CB2>.border:nth-of-type(3){
  left:0;
  top:0;
  height:100%;
  width:100%;
  border-left:1px solid white;
}

#CB2>.border:nth-of-type(4){
  top:0;
  right:0;
  height:100%;
  width:100%;
  border-right:1px solid white;
}

#CB2:hover .border:nth-of-type(1){
  transform:translate(0, 99%);
}

#CB2:hover .border:nth-of-type(2){
  transform:translate(0, -99%);
}

#CB2:hover .border:nth-of-type(3){
  transform:translate(99.5%, 0);
}

#CB2:hover .border:nth-of-type(4){
  transform:translate(-99.5%, 0);
}

/*copyright*/

small{
    position: fixed;
    left:20px;
    top:40%;
    color: #fff;
	font-size:13px;
	font-weight: 200;
    letter-spacing: 0.1em;
    line-height: 1;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
	z-index:100;
}

@keyframes blur {
    from {
        filter: blur(3px);
    }
    
    to {
        filter: blur(0);
    }
}

.blur2 {
    font-size: 1.6rem;
    color: #fff;
    animation: blur 1s both ease-in;
}
@media only screen and (max-width:768px) {
	
small{
    -ms-writing-mode: horizontal-tb;
    -webkit-writing-mode: horizontal-tb;
    writing-mode: horizontal-tb;
	width:100%;
	line-height: 2.6rem;
	z-index:100;
	position: absolute;
	top: 90%;
  left: 0px;
}
}

/*===========================================================*/
/* 4-2-7 背景色が伸びる（斜め） */
/*===========================================================*/

/*========= ローディング画面のためのCSS ===============*/
/* Loading背景画面設定　*/
#splash {
    /*fixedで全面に固定*/
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 9999;
	background:#000000;
	text-align:center;
	color:#fff;
}

/* Loading画像中央配置　*/
#splash_logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* Loading アイコンの大きさ設定　*/
#splash_logo svg{
    width:700px;
}
@media only screen and (max-width:768px) {
#splash_logo svg{
    width:320px;
}
}

/*========= 画面遷移のためのCSS ===============*/

/*画面遷移アニメーション*/
.splashbg{
    display: none;
}

/*bodyにappearクラスがついたら出現*/
body.appear .splashbg{
	display:block;
}

body.appear .splashbg{
	animation-name:PageAnime;
	animation-duration:1.2s;
	animation-timing-function:ease-in-out;
	animation-fill-mode:forwards;
    content: "";
    position:fixed;
	z-index: 999;
    width: 50%;
    height: 100vh;
    top: 0;
	left: 0;
    transform: translateX(-300%) skewX(-45deg);
    background-color: #000;/*伸びる背景色の設定*/
}

@keyframes PageAnime{
	0% {
		transform-origin:left;
		transform:translateX(-300%) skewX(-45deg);
	}
	100% {
		transform-origin:left;
		transform:translateX(500%) skewX(-45deg);
	}
}

/*画面遷移の後現れるコンテンツ設定*/
#container{
  position: relative;
	opacity: 0;/*はじめは透過0に*/
}

/*bodyにappearクラスがついたら出現*/
body.appear #container{
	animation-name:PageAnimeAppear;
	animation-duration:1s;
	animation-delay: 0.6s;
	animation-fill-mode:forwards;
	opacity: 0;
}

@keyframes PageAnimeAppear{
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
}
}

/*===========================================================*/
/* 5-1-24 クリックしたら円形背景が拡大（中央から） */
/*===========================================================*/


/*==================================================
　5-2-8 3本線が横方向に回転して×に
===================================*/


/*==================================================
　9-1-3	マウスが動いてスクロールを促す
===================================*/


/*==================================================
　7-1-9	くるっと回転（手前に回転）
===================================*/


/*==================================================
スクロールに連動した動き
===================================*/

/*==================================================
にょろっ
===================================*/

/* smooth */
.smooth{
	animation-name: smoothAnime;
	animation-duration:1s;
	animation-fill-mode:forwards;
  　transform-origin: left;
	opacity:0;
}

@keyframes smoothAnime{
  from {
  transform: translate3d(0, 100%, 0) skewY(12deg);
  opacity:0;
  }

  to {
  transform: translate3d(0, 0, 0) skewY(0);
  opacity:1;
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.smoothTrigger{
    opacity: 0;
}


/*==================================================
　テキストが滑らかに出現
===================================*/

span.smoothText {
	overflow: hidden;
	display: block;
}

span.smoothTextTrigger{
	transition: 1s ease-in-out;
	transform: translate3d(0,100%,0) skewY(10deg);
	transform-origin: left;
	display: block;
}
span.smoothTextTrigger.smoothTextAppear{
    transform: translate3d(0,0,0) skewY(0);
}


div.smoothText {
	overflow: hidden;
	display: block;
}

div.smoothTextTrigger{
	transition: 1s ease-in-out;
	transform: translate3d(0,100%,0) skewY(10deg);
	transform-origin: left;
	display: block;
}
div.smoothTextTrigger.smoothTextAppear{
    transform: translate3d(0,0,0) skewY(0);
}


/*==================================================
　スクロールをすると紙芝居風に展開する（CSS）
===================================*/

.fixed{
    position: -webkit-sticky;/*Safari*/
    position: sticky;
	top:0;/*Header高さ分で止まるようにする*/
}

/*@media screen and (max-width:768px) {
  .fixed{
    position: relative!important;/*JSでボタンをクリックした際にposition:sticky;に戻す記述を上書きするため!importantをつける
    }
}*/

@media only screen and (max-width:768px) {
.blurTrigger{
    opacity: 1;
}
}

/*-----------------------------
 *
 * fade
 *
-----------------------------*/

.effect-fade{
  opacity: 0;
  transform: translate(0, 30px);
  transition:all 1000ms;
}
.effect-fade.scrollin{
  opacity: 1;
  transform: translate(0, 0);
}




