@charset "utf-8";


/*
* {
	border: 1px red solid;
}
*/

/*ハンバーガーメニュー*/
/*https://www.asobou.co.jp/blog/web/css-menu#body-in*/

.menu-btn {
	position: fixed;
	top: 20px;
	right: 20px;
	display: flex;
	height: 60px;
	width: 60px;
	justify-content: center;
	align-items: center;
	z-index: 90;
	background-color: black;
	border-radius: 50%;
}

.menu-btn:hover {
	background: white;
	box-shadow: 0 0 10px white, 0 0 40px white;
	transition-delay: 0s;
	animation : infinite;
	font-weight: bold;
	background-color: white;
}

.menu-btn span,
.menu-btn span:before,
.menu-btn span:after {
    content: '';
    display: block;
    height: 3px;
    width: 25px;
    border-radius: 3px;
	background-color: gainsboro;
    position: absolute;
}

.menu-btn span:before {
    bottom: 8px;
}
.menu-btn span:after {
    top: 8px;
}
#menu-btn-check:checked ~ .menu-btn span {
    background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/
}
#menu-btn-check:checked ~ .menu-btn span::before {
    bottom: 0;
    transform: rotate(45deg);
}
#menu-btn-check:checked ~ .menu-btn span::after {
    top: 0;
    transform: rotate(-45deg);
}
#menu-btn-check {
    display: none;
}	
#menu-btn-check {
    display: none;
}	

.menu-content {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 100%;/*leftの値を変更してメニューを画面外へ*/
    z-index: 80;
    background-color: black;
    transition: all 0.5s;/*アニメーション設定*/
	overflow: auto;
	scroll-snap-type: y mandatory;
}

#menu-btn-check:checked ~ .menu-content {
    left: 0;/*メニューを画面内へ*/
}

@media screen and (max-width:499px){
.menu-content-rogo {
	width: 80%;
	}
}

@media screen and (min-width: 1000px) {
	.menu-content-in{
		width: 1000px;
		margin: 0 auto;
		padding-top: 150px;
	}
}


/*上部固定ナビゲーション*/

.navi-menu {
	position: fixed;
	top: 0;
	z-index: 10000;	
	width: 90%;
	height: 80px;
	margin: 0 auto;
}

.navi-menu ul {
	display: flex;
}

.navi-menu-li {
	display: inline-block;
	list-style: none;
	margin-left: 20px;
	width: 350px;
	padding-top: 10px;
	background-color: black;
	font-size: 0.8em;
	font-weight: bold;
	border: 1px solid #696969;
	line-height: 1.5em;
	opacity: 0.8;
}

.navi-menu-li:hover {
	color: #888;
	background: white;
	box-shadow: 0 0 10px white, 0 0 20px white;
	transition-delay: 0s;
	animation: infinite;
}

.navi-menu-rogo {
	width: 250px; 	
}

.navi-menu-rogo img {
	width: 200px;
	padding-left: 50px;	
}
	

/*ロゴ*/

.menu-content-rogo{

}

@media screen and (max-width:899px){
.menu-content-rogo {
	width: 60%;
	}
}

@media screen and (max-width:499px){
.menu-content-rogo {
	width: 80%;
	}
}


/*ブランドスライドショー*/

section.slider-part {
    position: relative;
    height: 600px;
    overflow: hidden;
}
section.slider-part .mySwiper {
    height: 100%;
    background: #f1f1f1;
}
.swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  -ms-touch-action: auto;
        touch-action: auto;
}

.swiper-slide.slide1 {
	background-image: url("../images/top/menu-space-flow01-star.jpg");    
}

.swiper-slide.slide2 {
	background-image: url("../images/top/menu-space-flow02-inside.jpg");    
}

.swiper-slide.slide3 {
	background-image: url("../images/top/menu-space-flow03-moonbase.jpg");    
}

.swiper-slide.slide4 {
	background-image: url("../images/top/menu-space-flow04-moonshuttle.jpg");    
}

.swiper-slide.slide5 {
	background-image: url("../images/top/menu-space-flow05-spacestation.jpg");    
}

.swiper-slide.slide6 {
	background-image: url("../images/top/menu-space-flow06-spaceelevator.jpg");    
}

.swiper-slide.slide7 {
	background-image: url("../images/top/menu-space-flow07-earth.jpg");    
}


/*検索ボックス*/

.search_container{
  box-sizing: border-box;
  position: relative;
  border: 1px solid dimgray;
  display: block;
  padding: 3px 10px;
  height: 2.3em;
  width: 300px;
  overflow: hidden;
  margin: 10px auto 20px;
  background-color: #ffffff;
}
.search_container input[type="text"]{
  border: none;
  height: 2.0em;
  color: gray;
  text-align: left;
}
.search_container input[type="text"]:focus {
  outline: 0;
}
.search_container input[type="submit"]{
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f002";
  font-size: 1.3em;
  border: none;
  background: black;
  color: #ffffff;
  position: absolute;
  width: 2.3em;
  height: 2.5em;
  right: 0;
  top: -10px;
  outline : none;
}
.search_container input[type="submit"]:hover{
	color: #888;
	background: white;
	box-shadow: 0 0 10px white, 0 0 40px white, 0 0 80px white;
	transition-delay: 0s;
	animation : infinite;
	font-weight: bold;
}



/*メニュータイトル*/

.menu-title{
	padding: 20px;
}


/*メニュー（横２枠）*/

.menu-2 {
  overflow: hidden;
  width: 100%;
  margin: 0 auto;
}

.menu-2-item {
  float: left;
  width: 45%;
  padding: 20px 20px;
  margin: 20px 10px;
  border: 1px solid #696969;
}

.menu-wrapper {
	margin: 50px auto 30px;
	padding-top: 10px;
}

.menu-gray {
	background-color: black;
}
.menu-title {
	font-size: 1.2em;
	font-weight: bold;	
}

.menu-2 img {
	width: 100%;
	height: 100%;
	margin-bottom: 5px;
}

.campaign {
	margin-top: 10px;
}


/*宇宙船予約*/
/*https://copypet.jp/codedescription/791/*/

@media screen and (min-width:898px){
.reserve-box img {
	width: 200px;
	float: left;
	padding-left: 20px;
	}
.reserve-box2 {
	float: left;
	padding-top: 20px;
	padding-left: 20px;	
	width: 50%;
	}
.reserve-box2 div {
	padding-bottom: 10px;	
	}	
.reserve-box2 iframe {
	width: 100%;	
	}	
	
}

@media screen and (min-width:1000px){
.reserve-box img {
	width: 180px;
	float: left;
	padding-left: 20px;
	}
}

.iframe-menu{
	height: 50px;
	width: 100%;
}

.cp_ipselect {
	overflow: hidden;
	width: 100%;
	margin: 5px auto;
}
.cp_ipselect select {
	width: 100%;
	padding-right: 1em;
	cursor: pointer;
	text-indent: 0.01px;
	text-overflow: ellipsis;
	border: 1px solid #696969;
	outline: none;
	background: transparent;
	background-image: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	background-color: white;	
}
.cp_ipselect select::-ms-expand {
    display: none;
}
.cp_ipselect.cp_sl03 {
	position: relative;
	border-radius: 2px;
	background: #ffffff;
	margin: 0 auto;
}
.cp_ipselect.cp_sl03::before {
	position: absolute;
	top: 0.8em;
	right: 0.8em;
	width: 0;
	height: 0;
	padding: 0;
	content: '';
	border-left: 6px solid transparent;
	border-right: 6px solid transparent;
	border-top: 6px solid black;
	pointer-events: none;
}
.cp_ipselect.cp_sl03::before:hover {
	position: absolute;
	top: 0.8em;
	right: 0.8em;
	width: 0;
	height: 0;
	padding: 0;
	content: '';
	border-left: 6px solid transparent;
	border-right: 6px solid transparent;
	border-top: 6px solid #007dff;
}

.cp_ipselect.cp_sl03 select {
	padding: 8px;
	color: black;
}

.cp_ipselect.cp_sl03 select:hover {
	color: #007dff;
}

.cp_ipselect.cp_sl03 select option[selected] {
	background: red;
}


/*キャンペーン スライダー*/
.campaign-banner {
	display: flex;
	overflow: hidden;	
}

.campaign-banner-paused:hover .campaign-slider {
	animation-play-state: paused;
}

.campaign-slider {
	display: flex;
}

.campaign-slider li img {
	width: 300px;
	padding-right: 10px;
}

.campaign-slider li img:hover {
	opacity: 0.5;
}

.campaign-slider {
  display: flex;
  animation: loop-slide 20s infinite linear 1s both;
}
@keyframes loop-slide {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/*搭乗案内（タブ）*/

/*タブ切り替え全体のスタイル*/
.boarding-tabs {
  margin-top: 50px;
  padding-bottom: 40px;
  background-color: red;
  width: 100%;
  margin: 0 auto;
  height: 450px;	
}

/*タブのスタイル*/
.boarding-tab_item {
  width: calc(100%/2);
  height: 50px;
  border-bottom: 1px solid dimgray;
  background-color: black;
  line-height: 50px;
  font-size: 16px;
  text-align: center;
  color: white;
  display: block;
  float: left;
  transition: all 0.2s ease;
}
.boarding-tab_item:hover {
	color: #888;
	background: white;
	box-shadow: 0 0 10px white, 0 0 40px white, 0 0 80px white;
	transition-delay: 0s;
	animation : infinite;
	font-weight: bold;
}

/*ラジオボタンを全て消す*/
input[name="tab_item"] {
  display: none;
}

/*タブ切り替えの中身のスタイル*/
.boarding-tab_content {
  display: none;
  padding: 0;
  clear: both;
  overflow: hidden;
}


/*選択されているタブのコンテンツのみを表示*/
#boarding-to-space:checked ~ #boarding-to-space_content,
#boarding-to-earth:checked ~ #boarding-to-earth_content {
  display: block;
}

/*選択されているタブのスタイルを変える*/
.boarding-tabs input:checked + .boarding-tab_item {
  background-color: black;
  color: white;
  border: 1px dimgray;
  border-style: solid solid none solid;	
}


/*タブの中の範囲を選択する*/
.boarding-tabs-inline {
 width: 100%;
 height: 400px;
 overflow-y: hidden;
 overflow-x: hidden;
}


/*搭乗案内（上下移動）*/
.infinity-slide {
  display: flex; /* 二つのスライドを横に並べる */
  width: 100%;
}


#slide-flow-movie img{
  width: 100%;
  height: 2800px;
}

#slide {
  animation: boarding-flow 20s 1 linear 3s both;
  display: column; /* スライドの要素を縦に並べる */
}

#slide2 {
  animation: boarding-flow2 20s 1 linear 3s both;
  display: column-reverse; /* スライドの要素を縦に並べる */
}

/* アニメーション */
@keyframes boarding-flow {
  from {
    transform: translateY(-2400px);
  }
  to {
    transform: translateY(0vw);
  }
}

@keyframes boarding-flow2 {
  from {
    transform: translateY(0vw);
  }
  to {
    transform: translateY(-2400px);
  }
}

.boarding-tabs-inline-half {
	width: calc(100%/2);
}

.boarding-flow-name{
  height: 400px;
  background-color: black;
  text-align:center;
  position:relative;	
}

.boarding-flow-point{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
	margin: 20px;
	border: 1px solid dimgray;
	width: 70%;
	padding: 20px 10px 10px;
}

.boarding-flow-point:hover{
	color: #888;
	background: white;
	box-shadow: 0 0 10px white, 0 0 40px white, 0 0 80px white;
	transition-delay: 0s;
	animation : infinite;
	font-weight: bold;
}

.boarding-flow-point img{
  width: 100%;
  margin-top: 10px;
}

.boarding-flow-point::after {
	border-top: solid 20px transparent;
	border-bottom: solid 20px transparent;
	border-right: solid 30px dimgray;
	left: -30px;
	content:"";
	display:block;
	height:0;
	top:50%;
	margin-top:-20px;
	position: absolute;
	width:0;
}















.boarding-inlineFrame {
 background-color: red;
 width: 100%;
 height: 300px;
 overflow-y: scroll;
 overflow-x: hidden;
}

.boarding-anime{
  animation: anim 5s ease 1s 1 normal backwards;		
}

@keyframes anim {
  0% {
  transform: translateX(0px);
  }

  100% {
  transform: translateX(50px);
  }
}


/*
.marquee {
background-color: #cee4ae; /* 背景色 */
width: 300px; /* 横幅 */
}

.marquee > span {
display: inline-block;
white-space: nowrap;
animation-name: MarqueeScroll;
animation-timing-function: linear;
animation-duration: 7s; /* 1周するのにかかる時間 */
animation-iteration-count: infinite; /* 繰り返す回数 */
}

@keyframes MarqueeScroll {
from { transform: translateY(-100%);}
to { transform: translateY(100%);}
}


.boarding-reload {
padding: 8x;
border: 1px solid gray;
margin: 10px auto;
width: 150px;
}

.boarding-reload:hover {
	color: #888;
	background: white;
	box-shadow: 0 0 10px white, 0 0 40px white, 0 0 80px white;
	transition-delay: 0s;
	animation : infinite;
	font-weight: bold;
}


/*
boarding {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 94%;
	margin: 0 auto;
}

@media screen and (max-width:629px){
.boarding  {
	display: block;
	position: relative;
	}
}

.boarding-flow {
	width: 200px;
	margin: 0px 0px;
	padding: 0px;
}

@media screen and (max-width:629px){
.boarding-flow  {
	width: 94%;
	text-align: left;
	}
}

.boarding-flow-arrow {
	font-size: 1.2em;
	display: table-cell;
	line-height: 90px;
}

@media screen and (max-width:629px){
.boarding-flow-arrow {
	display: none;
	}
.boarding-flow-arrow-sp {	
	padding: 0 50px;
	display: inline-block;
	font-size: 1.5em;
	}
}

@media screen and (min-width:630px){
.boarding-flow-arrow-sp {
	display: none;
	}
}

@media screen and (max-width:629px){
.boarding span {
	vertical-align: top;
	line-height: 100px;
	padding-left: 15px;
	}
}

.boarding-flow img {
	width: 20px;
}

@media screen and (max-width:629px){
.boarding-flow img  {
	width: 20px;
	}
}
*/


/*SFガイド*/

.menu-guide {
	width: 94%;
	margin: 10px auto;
	overflow: hidden;
}

.menu-guide-item {
  display: block;
  padding: 20px 30px;
  width: 47%;
  float: left;
  text-align: left;
  border: 1px solid #696969;
  margin: 10px;
}

@media screen and (max-width:499px){
.menu-guide-item {
	width: 100%;
	float: none;
	}
}

.menu-guide i {
	width: 2em;
}



/*コピーライト*/

.menu-home {
	margin-top: 50px;
}

.copylight {
	margin: 20px auto 10px;
}



