@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP&family=Noto+Serif+JP:wght@400;500;700&display=swap');

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

	structure CSS

========================================== */
html,body {
	height:100%;}

#container_ {
	position: relative;
	min-width: 1100px;
	width: 100%;
	height: 100%;
	min-height: 800px;

	@media screen and (max-width: 1150px) {
		min-width: auto;
	}
	@media screen and (max-width: 835px) {
		min-height: 700px;
	}
	@media screen and (max-width: 599px) {
		min-height: 100vh;
	}
	
	
	& a {
		text-underline-offset: .5ex;
	}
}

#headerarea {
	overflow: hidden;
	position:relative;
	width:100%;
	z-index: 1;}


#info_container {
	overflow: hidden;
	position: relative;
	background: none;}

.information_box {
	position: relative;
	padding: 0 0 80px;
	width: 1100px;
	margin: 0 auto;

	@media screen and (max-width: 1150px) {
		width: 94%;
	}
	@media screen and (max-width: 835px) {
		width: 94%;
		background-color: rgba(255,255,255,.3);
		padding: 20px 0;
	}
	@media screen and (max-width: 599px) {
		width: 100%;
		margin-bottom: 20px;
	}
}

#footer_ {
	position: absolute;
	z-index: 1;*/
	font-size: 1.2rem;
	text-align: center;
	padding: 20px 0 5px;
	width: 100%;
	bottom: 10px;
	/*background: rgba(68,79,151,.60);*/
	color: #77E7E9;
	
	& a { color: #77E7E9;}
}


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

	body

========================================== */
body.pre {
	color: #453B47;
	font-size: 15px;
	font-size: 1.5rem;
	line-height: 1.8em;
	font-family: "Noto Sans JP", sans-serif;
	background: #2d487c;

	&::before {
		background: linear-gradient(0deg, #2e9fd9 0%, #424d8d 40%, #2d487c 80%) #2d487c;
		background-size: cover;
		content: "";
		height: 100vh;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		z-index: -1;
	}
}

/*【SP】*/
@media screen and (max-width: 835px) {
	body.pre {
		position: relative;
		/*background: none;*/
	}
}
@media screen and (max-width: 420px) {
	body.pre {
		font-size: 1.3rem;
		line-height: 1.6em;
	}
}

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

	【01】#headerarea

========================================== */
#tw {
	position: relative;
	text-align: center;
	z-index: 999;
}
header#headerarea {
	display: grid;
	place-content: center;
	place-items: center;
	height: 100svh;
	background: url("../images/mv_pc.jpg") no-repeat top center;
	background-size: cover;
	
	@media screen and (max-width: 835px) {
		background: url("../images/mv_sp.jpg") no-repeat top center;
		background-size: cover;
	}
}

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

	pre

========================================== */
.pre_box {
	display: grid;
	place-content: center;
	place-items: center;
	height: 100svh;
	min-height: 800px;
	color: #fff;
	padding-bottom: 40px;
	
	@media screen and (max-width: 835px) {
		min-height: 700px;
	}
	@media screen and (max-width: 599px) {
		min-height: 100%;
	}
}
.pre_box a {
	color: #fff;
	text-decoration: none;
}
.pre_txt1 { font-size: 1.5em; line-height: 1.6em;
	@media screen and (max-width: 599px) {
		font-size: 1.25em;
	}
}

.pre_box h1 {
	@media screen and (max-width: 835px) {
		width: 400px;
		margin: 0 auto;
	}
	@media screen and (max-width: 599px) {
		width: 300px;
		margin: 0 auto;
	}
}

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

	animation

========================================== */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(150px);
  }
  
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.slideInRight {
  animation-name: slideInRight;
  animation-duration: 1s;
  animation-timing-function: ease-out;
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-150px);
  }
  
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.slideInLeft {
  animation-name: slideInLeft;
  animation-duration: 1s;
  animation-timing-function: ease-out;
}

@keyframes slideInTop {
  from {
    opacity: 0;
    transform: translateY(-150px);
  }
  
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.slideInTop {
  animation-name: slideInTop;
  animation-duration: 1s;
  animation-timing-function: ease-out;
}

#headerarea {
  overflow: hidden
}

@keyframes slideInBottom {
  from {
    opacity: 0;
    transform: translateY(150px);
  }
  
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.slideInBottom {
  animation-name: slideInBottom;
  animation-duration: 1s;
  animation-timing-function: ease-out;
}

#headerarea {
  overflow: hidden
}


@keyframes fade {
  from {
    opacity: 0;
  }
  
  to {
    opacity: 1;
  }
}
.fade {
  animation-name: fade;
  animation-duration: 3s;
  animation-timing-function: ease-out;
}
.fade2 {
  animation-name: fade;
  animation-duration: 5s;
  animation-timing-function: ease-out;
}
.fade3 {
  animation-name: fade;
  animation-duration: 7s;
  animation-timing-function: ease-out;
}

#info_container {
	padding-top: 20px;
	
	@media screen and (max-width: 835px) {
		padding-top: 0;
	}
}



/* ふわっと表示 */
.js-fadein {
	/* 最初は非表示 */
	opacity: 0;
	visibility: hidden;
	transform: translateY(30px);
	transition: opacity 1s, visibility 1s, transform 1s;
}
/* フェードイン時に入るクラス */
.is-fadein {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}




/* 星空の背景のスタイル */
.stars {
  position: relative;
  width: 100%; /* 星空の横幅 */
  height: 100vh; /* 星空の縦幅 */
  background-image: linear-gradient(0deg, #00dedc, #115d89, #080f1c); /* 星空の背景色 */
  overflow: hidden; /* 星が枠外にはみ出すのを防ぐ */
}

/* 星のスタイル */
.star {
  position: absolute;
  display: block;
  background-color: #fff; /* 星の色 */
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(#fff, 0.2); /* 星の影 */
  opacity: 0;
  animation: twinkle 5s infinite;
}

/* 星がキラキラ光るアニメーション */
@keyframes twinkle {
  0% {
    opacity: 0;
  }

  50% {
    transform: scale(1.1);
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: scale(1);
  }
}

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

	【02】#info_container

========================================== */
#info_container {
	position: relative;
}

.btn_w_ {
	margin-top: 10px;
	margin-bottom: 10px;
	
	& a {
		text-decoration: none;
		padding: 7px 12px;
		border: 1.5px solid #fff;
		border-radius: 5px;
		transition: .3s;
		background: #0A95AD;
		
		&:hover {
			border-color: #75DEFF;
			color: #75DEFF;
			background: #10678F;
		}
	}
}

.inline_b {display: inline-block;}

@media screen and (max-width: 740px) {
	.btn.sp_block {
		margin-top: 0;
		
		& a {
			display: block;
		}
	}
}
@media screen and (max-width: 835px) {
	#info_container .information_box h3.ttl {
		font-size: 2.1rem;
		line-height: 1.5em;
	}
}

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

	【#pageTop】

========================================== */
#pageTop{
	position:fixed;
	background: #6871AC;
	opacity: .9;
	/* Firefox v1.0+ */
	-moz-border-radius: 50%;
	/* Safari v3.0+ and by Chrome v0.2+ */
	-webkit-border-radius: 50%;
	/* Firefox v4.0+ , Safari v5.0+ , Chrome v4.0+ , Opera v10.5+  and by IE v9.0+ */
	border-radius: 50%;
	color:#fff;
	bottom:20px;
	right:30px;
	text-align: center;
	padding:25px 24px 20px 24px;
	z-index: 9999;}

#pageTop:hover{
	opacity: .5;}

@media screen and (max-width: 835px) {
	#pageTop {
		bottom:10px;
		right:10px;
		padding:18px 14px 15px 14px;}
}

.done { display: none;}






/* animation
========================================== */
/*ローディング画面*/
#loading {
  transition: all 3s; /*ローディングにかかる時間*/
  background-color: #264A86;
  z-index: 999;
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column; 
}

.loading-text {
  font-weight: bold;
  text-align: center;
	color: #fff;
	margin-bottom: 10px;
}

.spin {
  width: 300px;
  height: auto;
}

.loaded {
  opacity: 0;
  visibility: hidden;
}




