@charset "utf-8";

/*===========================================================*/
/* loading（左から右）　 */
/*===========================================================*/

#splash {
	position: fixed;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,1);
	z-index: 9999999;
	text-align:center;
	color:#fff;
}

#splash-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.splashbg{
	display: none;
}

body.appear .splashbg{
  display: block;
  content: "";
  position:fixed;
	z-index: 9999;
  width: 100%;
  height: 100vh;
  top: 0;
	left: 0;
  transform: scaleX(0);
  background:rgba(153,0,0,1);
	animation-name:PageAnime;
	animation-duration:.8s;
	animation-timing-function:ease-in-out;
	animation-fill-mode:forwards;
}

@keyframes PageAnime{
	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);
	}
}

#container{opacity: 0;}

body.appear #container{
	animation-name:PageAnimeAppear;
	animation-duration:1s;
	animation-delay: 0.8s;
	animation-fill-mode:forwards;
	opacity: 0;
}

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


/*===========================================================*/
/* nav */
/*===========================================================*/

nav ul{
	list-style: none;
	display: flex;
	justify-content: center;
}
nav ul ul{display: block;}
nav ul li{
  position: relative;
  color: #000;
}
nav ul li a{
	display: block;
	text-decoration: none;
	color: initial;
	padding:20px 35px;
	transition:all .3s;
}
nav ul li li a{padding:10px 35px;}

@media screen and (max-width:1200px) {
  nav ul li a{padding:20px;}
  nav ul li li a{padding:10px 20px;}
}
nav ul li.has-child::before{
	content:'';
	position: absolute;
	left:15px;
	top:30px;
	width:6px;
	height:6px;
	border-top: 2px solid #99000;
  border-right:2px solid #99000;
  transform: rotate(135deg);
}

@media screen and (max-width:1200px) {
  nav ul li.has-child::before{left:0;}
}

nav li.has-child ul{
	position: absolute;
	left:0;
	top:62px;
	z-index: 4;
	background:#990000;
	width:200px;
	visibility: hidden;
	opacity: 0;
	transition: all .3s;
}

nav li.has-child:hover > ul,
nav li.has-child ul li:hover > ul,
nav li.has-child:active > ul,
nav li.has-child ul li:active > ul{
  visibility: visible;
  opacity: 1;
}

nav li.has-child ul li a{
	color: #fff !important;
	border-bottom:solid 1px #990000;
}

nav li.has-child ul li:last-child a{
	border-bottom:none;
}

nav li.has-child ul li a:hover,
nav li.has-child ul li a:active{
	background:#DBDBDB;
	color: #990000 !important;
}

@media screen and (max-width:960px){
	nav{padding: 0;}
	nav ul{display: block;}
  nav ul li a{border-bottom:1px solid #ccc;}
  nav ul li.has-child::before{left:20px;}
  nav ul ul li.has-child::before{
    transform: rotate(135deg);
	  left:20px;
  }
  nav ul li.has-child.active::before{transform: rotate(-45deg);  }
}

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

#header{
	position: fixed;
	height: 70px;
	width:100%;
  z-index: 999;
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-align: center;
	padding: 20px 100px 20px 0;
}

#header.UpMove{
	position: fixed;
	width:100%;
	animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime{
  from {
    opacity: 1;
	  transform: translateY(0);
  }
  to {
    opacity: 0;
	  transform: translateY(-100px);
  }
}

#header.DownMove{
	position: fixed;
	width:100%;
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 0;
	  transform: translateY(-100px);
  }
  to {
  	opacity: 1;
	  transform: translateY(0);
  }
}

@media screen and (max-width:960px) {
  #header,
  #header.UpMove,
  #header.DownMove{
    animation:none;
  	height: auto;
    padding: 0;
    display: block;
  }
}


/*===========================================================*/
/* bugernav */
/*===========================================================*/

@media screen and (max-width:960px) {
  #g-nav{
    position:fixed;
    z-index: 999;
  	top:-120%;
    left:0;
  	width:100%;
    height: 100vh;
  	background:rgba(0,0,0,0.8);
  	transition: all 0.6s;
  }
  
  #g-nav.panelactive{top: 0;}
  
  #g-nav.panelactive #g-nav-list{
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  #g-nav ul {
    width: 90%;
    margin:100px auto 0 auto;
  }
      
  #g-nav ul ul{
    width: 100%;
    margin: 0;
  }
   
  #g-nav ul li.has-child ul{
    position: relative;
  	left:0;
  	top:0;
  	width:100%;
  	visibility:visible;
  	opacity:1;
  	display: none;
  	transition:none;
    transform: none;
  }
  
  #g-nav li{
  	list-style: none;
    text-align: center; 
  }
  
  #g-nav li a{
  	color: #fff;
  	text-decoration: none;
  	padding:10px;
  	display: block;
  	text-transform: uppercase;
  	letter-spacing: 0.1em;
  	font-weight: bold;
  }
}

/* open */

.g-nav-openbtn{
    display: none;
}
 
@media screen and (max-width:960px) {
  .g-nav-openbtn{
    display: block;
	  position:fixed;
    z-index: 9999;
	  top:10px;
	  right: 10px;
	  cursor: pointer;
    width: 50px;
    height:50px;
  }

  .g-nav-openbtn .openbtn-area{
    transition: all .4s;
  }

  .g-nav-openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 3px;
    border-radius: 2px;
	  background: #990000;
  	width: 45%;
  }

  .g-nav-openbtn span:nth-of-type(1) {top:15px;}
  .g-nav-openbtn span:nth-of-type(2) {top:23px;}
  .g-nav-openbtn span:nth-of-type(3) {top:31px;}
  
  .g-nav-openbtn.active .openbtn-area{
  	transform: rotateY(-360deg);
  }
  
  .g-nav-openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-135deg);
    width: 30%;
  }
  
  .g-nav-openbtn.active span:nth-of-type(2) {
  	opacity: 0;
  }
  
  .g-nav-openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(135deg);
    width: 30%;
  }
}

/*===========================================================*/
/* nav line */
/*===========================================================*/
.nav01c li a{
	position: relative;
	width: 100%;
	max-width: 100%;
}

.nav01c li.current a,
.nav01c li a:hover{
  background: #990000;
	color: #fff !important;
}

.nav01c li a::after {
  content: '';
  position: absolute;
  bottom: 16px;
  left: 25%;
  width: 50%;
  height: 1px;
  background:#fff;
  transition: all .3s;
  transform: scale(0, 1);
  transform-origin: left top;
}

.nav01c li li a::after {display: none;}

.nav01c li.current a::after,
.nav01c li a:hover::after {
    transform: scale(1, 1);
}
@media screen and (max-width:960px) {
  .nav01c li a::after {
    display: none;
  }  
}

/*===========================================================*/
/* scrolldown1 */
/*===========================================================*/

.scrolldown1{
	position:absolute;
	right:40px;
	bottom:3%;
	height:50px;
}

.scrolldown1 span{
	position: absolute;
	left:-15px;
	top: -15px;
	color: #fff;
	font-size: 0.7rem;
	letter-spacing: 0.05em;
}

.scrolldown1::after{
	content: "";
	position: absolute;
	top: 0;
	width: 1px;
	height: 30px;
	background: #eee;
	animation: pathmove 1.4s ease-in-out infinite;
	opacity:0;
}

@keyframes pathmove{
	0%{
		height:0;
		top:0;
		opacity: 0;
	}
	30%{
		height:30px;
		opacity: 1;
	}
	100%{
		height:0;
		top:50px;
		opacity: 0;
	}
}

/*===========================================================*/
/* more */
/*===========================================================*/

.btnlinestretches2{
	position:relative;
	color:#990000;
  padding:5px 40px;
	display:inline-block;
  text-decoration: none;
  outline: none;
}

.btnlinestretches2::before,
.btnlinestretches2::after {
	content:'';
	position:absolute;
	border:solid #990000;
	width:10px;
	height:10px;
	transition:all 0.3s ease-in-out;
}

.btnlinestretches2::before{
	top:0;
	left:0;
	border-width:1px 0 0 1px;
}

.btnlinestretches2::after{
 	bottom:0;
	right:0;
	border-width:0 1px 1px 0;
}

.btnlinestretches2:hover::before,
.btnlinestretches2:hover::after{
    width:calc(100% - 2px);
	height:calc(100% - 2px);
	border-color:#990000;
}

/*===========================================================*/
/* page-top */
/*===========================================================*/
#page-top {background: #990000;}

#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	width: 50px;
	height: 50px;
  border:1px solid #adadad;
	color: #fff;
	text-align: center;
	text-transform: uppercase; 
	text-decoration: none;
	font-size:0.6rem;
	transition:all 0.3s;
}

#page-top a:hover{background: #777;}

#page-top {
	position: fixed;
	right: 10px;
	bottom:10px;
	z-index: 2;
	opacity: 0;
	transform: translateX(100px);
}

#page-top span{
  display: inline-block;
  width: 13px;
  height: 13px;
  border-top:1px solid #fff;
  border-left: 1px solid #fff;
  transform: rotate(45deg);
  margin: 8px 0 0 0;
}

/*　左の動き　*/

#page-top.LeftMove{
	animation: LeftAnime 0.5s forwards;
}

@keyframes LeftAnime{
  from {
    opacity: 0;
	transform: translateX(100px);
  }
  to {
    opacity: 1;
	transform: translateX(0);
  }
}

/*　右の動き　*/

#page-top.RightMove{
	animation: RightAnime 0.5s forwards;
}
@keyframes RightAnime{
  from {
  	opacity: 1;
	transform: translateX(0);
  }
  to {
  	opacity: 1;
	transform: translateX(100px);
  }
}


/*==================================================
/*tab*/
/*===================================*/

.tab-area{width: 70%;}

.tab{
	display: flex;
	flex-wrap: wrap;
}
.tab li{
  text-align: center;
  white-space: nowrap;
}
.tab li a{
	display: block;
  border-top:transparent 1px solid;
  border-right:#000 1px solid;
  border-left:transparent 1px solid;
	padding:8px 30px;
  background:#333;
	color: #fff;
}

@media screen and (max-width:400px) {
  .tab li a {padding:8px 20px;}
}

.tab li.active a{
  background: #990000;
  border-top:#aaa 1px solid;
	border-color:#aaa;
}

.area {
	display: none;
	opacity: 0;
  padding: 20px 40px;
}

.area.is-active {
  display: block;
  animation-name: displayAnime;
  animation-duration: 2s;
  animation-fill-mode: forwards;
}

@keyframes displayAnime{
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/*===========================================================*/
/* slider */
/*===========================================================*/
#slider {
    width: 100%;
    height: 91vh;
}

/*==================================================
/* gallery */
/*===========================================================*/
.gallery{
  columns: 4;
  padding:0 15px;
}
.gallery li {margin-bottom: 20px;}

.gallery img{
	width:100%;
	height:auto;
	vertical-align: bottom;}

@media only screen and (max-width: 600px) {
	.gallery{
	  columns: 2;
	}	
}

/*==================================================*/

/*背景色が伸びて出現（左から・右から）　*/
.bgextend{
	animation-name:bgextendAnimeBase;
	animation-duration:1s;
	animation-fill-mode:forwards;
	position: relative;
	overflow: hidden;
	opacity:0;
}

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

.bgLRextend::before{
	animation-name:bgLRextendAnime;
	animation-duration:1s;
	animation-fill-mode:forwards;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #111;
}
@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);
	}
}

.bgRLextend::before{
	animation-name:bgRLextendAnime;
	animation-duration:1s;
	animation-fill-mode:forwards;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #111;
}
@keyframes bgRLextendAnime{
	0% {
		transform-origin:right;
		transform:scaleX(0);
	}
	50% {
		transform-origin:right;
		transform:scaleX(1);
	}
	50.001% {
		transform-origin:left;
	}
	100% {
		transform-origin:left;
		transform:scaleX(0);
	}
}

.bgappearTrigger,
.bgUDextendTrigger,
.bgDUextendTrigger,
.bgRLextendTrigger,
.bgLRextendTrigger{
    opacity: 0;
}


/*==================================================*/

/*　画像が拡大＋回転　*/

.zoomInRotate{
    backface-visibility: hidden;
}
.zoomInRotate img{
	transform: scale(1);
	transition: .3s ease-in-out;
}

.zoomInRotate a:hover img{
	transform:rotate(5deg) scale(1.2);
}


/*写真と文章のセット*/

.area{
  position:relative;
  margin:0 auto 5% auto;
  padding: 0 30px;
  max-width:1000px;
  width:100%;
}

.area figure{
  position:relative;
  left:0;
  top:0;
  width:40%;
  line-height: 0;
}

.area:nth-child(2n) figure{
  left:50%;
}

.area .box{
  position:absolute;
  top:20%;
  left:30%;
  background:#fff;
  padding:30px;
  box-shadow: 0 0 40px rgba(0,0,0,0.1);
}

.area:nth-child(2n) .box{
  left:inherit;
  right:30%;
}

.pankuzu {
	background-color: #F6F6F6;
	margin-bottom: 20px;
	font-size: 14px;
	line-height: 30px;
	color: #333;
	width: 100%;
	padding-top: 10px;
	padding-bottom: 10px;
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: #E5E5E5;
	border-top-width: 1px;
	border-top-style: solid;
	border-top-color: #FFF;
}

.pankuzu ul {
	width: 96%;
	max-width: 1100px;
	margin-right: auto;
	margin-left: auto;
}

.pankuzu li {
	display: inline-block;
}

.pankuzu li a {
	text-decoration: none;
	color: #990000;
}

.pankuzu li a::after {
	content: ">";
	padding-left: 10px;
	padding-right: 10px;
}

.pankuzu li a:hover {
	color: #999;
}

.pankuzu li i {
	padding-right: 5px;
}


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


#other {
    width: 100%;
    height: 20vh;
}

#form a {
  width: 100%;
	max-width: 100%;
}
#form:hover {
  background: #990000;
	color: #fff !important;
}

#form a:hover {
	color: #fff !important;
}

/*===========================================================*/
/* with */
/*===========================================================*/
input[type="submit"], input[type="reset"], input[type="button"] {
  width:100%;
  padding:20px 40px;
}
.w-rest,.w-btn {
	position:relative;
	color:#990000;
	display:inline-block;
  text-decoration: none;
  outline: none;
	margin: 0 10px;
	width: 30%;
}
.w-rest {
 color: #949494;
}
.w-rest::before,
.w-rest::after,
.w-btn::before,
.w-btn::after{
	content:'';
	position:absolute;
	border:solid #990000;
	width:10px;
	height:10px;
	transition:all 0.3s ease-in-out;
  pointer-events: none;
}
.w-rest::before,
.w-rest::after{
	border:solid #949494;
}

.w-rest::before,
.w-btn::before{
	top:0;
	left:0;
	border-width:1px 0 0 1px;
}

.w-rest::after,
.w-btn::after{
 	bottom:0;
	right:0;
	border-width:0 1px 1px 0;
}

.w-rest:hover::before,
.w-rest:hover::after,
.w-btn:hover::before,
.w-btn:hover::after{
  width:calc(100% - 2px);
	height:calc(100% - 2px);
	border-color:#990000;
	background-color: rgba(153,0,0,0.2);
	color: white !important;
}
.w-rest:hover::before,
.w-rest:hover::after{
	border-color:#949494;
}

@media only screen and (max-width: 450px) {
  .w-rest,.w-btn {
   	width:100%;
		margin: 10px auto;
  }
  input[type="submit"], input[type="reset"], input[type="button"] {
  	width:100%;
  	height:60px;
  }
}
