/* +++++太陽の光+++++++ */
.shine-rotate {
	position: absolute;
	top: -15%;
	right: -5%;
	z-index: 2;
	opacity: 0;
	mix-blend-mode: screen;
	transform-origin: 85% 28%;
	transition: opacity 1.5s ease 1s;
	animation: shineScale 8s ease-in-out 1s infinite;
	filter: brightness(1.75);
	transform: rotate(-5deg) scale(0.8);
}
@keyframes shineScale {
	0% {
		filter: brightness(0.7);
		transform: rotate(-5deg) scale(0.8);
	}
	25% {
		filter: brightness(1.4);
		transform: rotate(-5deg) scale(1);
	}
	75% {
		filter: brightness(1.4);
		transform: rotate(-5deg) scale(1);
	}
	100% {
		filter: brightness(0.7);
		transform: rotate(-5deg) scale(0.8);
	}
}
.loaded .shine-rotate{
	opacity: 1;
}
.shine-rotate img {
	width: 70vw;
	height: auto;
}
/*
.shine-bg {
  width: 100vw;
  height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
	position: absolute;
	top: 0;
	left: 0;
  overflow: hidden;
	z-index: 2;
  background: linear-gradient(
    110deg,
    rgba(255, 255, 255, 0.1) 0%,
    rgba(255, 255, 255, 0.4) 50%,
    rgba(255, 255, 255, 0.1) 100%
  );
  background-size: 200% 100%;
  animation: lightMove 5s linear infinite;
}

@keyframes lightMove {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
*/
.shine-bg {
	width: 100vw;
	height: 90vh;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	z-index: 2;
}
.shine-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 0.05) 35%, rgba(255, 255, 255, 0.18) 50%, rgba(255, 255, 255, 0.05) 65%, rgba(255, 255, 255, 0) 80%);
	background-size: 200% 100%;
	animation: lightMove01 10s linear infinite;
}
.shine-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(-110deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 0.05) 35%, rgba(255, 255, 255, 0.18) 50%, rgba(255, 255, 255, 0.05) 65%, rgba(255, 255, 255, 0) 80%);
	background-size: 200% 100%;
	animation: lightMove02 10s linear infinite;
}
@keyframes lightMove01 {
	0% { background-position: -200% 0; }
	50% { background-position: -200% 0; }
	100% { background-position: 200% 0; }
}
@keyframes lightMove02 {
	0% { background-position: -200% 0; }
	50% { background-position: 200% 0; }
	100% { background-position: 200% 0; }
}

/* +++#main-visual+++ */
#main-visual{
	height: 90vh;
	/*height:100vh;*/
	overflow: hidden;
	position: relative;
}
#main-visual:before{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(#6ebff5, 15%, #94d9f5, 50%, #baf7ff 95%);
	/*background: url(../images/web_mainvisual_background.jpg);*/
	/*background: url(../images/web_mainvisual_background2.jpg);*/
	/*background-size: cover;*/
	/*background-position: center 60%;*/
	/*background-repeat: repeat-x;*/
	opacity: 0;
	visibility: hidden;
	/*filter: brightness(0.85);*/
	/*animation:sky 1s linear 5s both;*/
	transition: opacity 1.5s ease;
}
@keyframes sky{
	from{filter:brightness(0.85);}
	to{filter:brightness(1.2); }
}
@keyframes bg-slide {
	0% {
		background-position: 0 85%;
	}
	100% {
		background-position: 300px 85%;
	}
}
.loaded #main-visual:before{
	opacity: 1;
	visibility: visible;
}
.mv-slide{
	/*font-size: 6rem;*/
	font-size: 5rem;
	font-weight: 700;
	white-space: nowrap;
	height: 1em;
	margin: auto;
	justify-content: flex-start;
	flex-wrap: nowrap;
	z-index: 2;
	overflow: hidden;
	transition: 1.2s opacity ease;
}
.mv-slide div{
	animation-name: mv-slide;
	animation-duration: 60s;
	animation-delay: -30s;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	animation-fill-mode: none;
	padding: 0 .5em;
	transition: .5s all ease;
}
.mv-slide div:nth-of-type(2){
	animation-name: mv-slide02;
	animation-duration: 60s;
	animation-delay: 0s;
}
.mv-text-area{
	position: absolute;
	left: auto;
	right: 0;
	/*bottom: min(6rem, 8.6vh);*/
	padding-inline: 2.5vw;
	bottom: 18%;
	/*padding-inline: 0;*/
	overflow: hidden;
	width: auto;
	z-index: 2;
}
#main-visual .text-red{
	color: #e60012;
	/*font-size: 4rem;*/
	/*margin-bottom: 4rem;*/
	font-size: 2vw;
	margin-bottom: 2vw;
	line-height: 1.2 !important;
	/*-webkit-text-stroke: 4px #fff;*/
	/*text-stroke: 4px #fff;*/
	/*paint-order: stroke;*/
}
#main-visual .text-red .large{
	font-size: 140%;
}
.sub-catch{
	/*margin-top: 5.6rem;*/
	/*font-size: 3rem;*/
	/*height: 6rem;*/
	width: fit-content;
	position: relative;
	/*line-height:5vw;*/
	height: 3vw;
	margin-top: 0;
	font-size: 1.5vw;
	line-height:3vw;
	letter-spacing: 0;
}
.sub-catch:before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	background: #0a66dd;
	z-index: 1;
	white-space: nowrap;
	overflow: hidden;
	transition: .5s all cubic-bezier(0.5, 0, 0, 1.42);
	transition-delay: 4.8s;
	transform: scaleX(0);
	transform-origin: left top;
	z-index: 1;
}
.loaded .sub-catch:before{
	transform: scaleX(1);
}
.sub-catch span{
	position: relative;
	z-index: 9;
	padding: 0 .75em;
	color: #fff;
}
.sub-catch .slide-up{
	transform: translateY(6rem);
	transition: .3s all ease;
}

@keyframes mv-slide{
	0%{
		transform: translateX(100%);
	}
	100%{
		transform: translateX(-100%);
	}
}

@keyframes mv-slide02{
	0%{
		transform: translateX(0);
	}
	100%{
		transform: translateX(-200%);
	}
}
.web_kyouka_text {
	position: absolute;
	top: 38%;
	right: 10vw;
	z-index: 3;
}
.web_kyouka_text .text-blue {
	color: #003567;
	font-size: 3.3vw;
	line-height: 1.2 !important;
}
.web_kyouka_text .text-blue:last-child {
	margin-left: 4rem;
}
.web_kyouka_girl{
	width: 374px;
	position: absolute;
	right: 200px;
	bottom: 555px;
	animation:visi_girl 3s both;
}
@keyframes visi_girl{
	from{opacity:0;}
	70%{opacity:0; }
	to{opacity:1; }
}
.web_kyouka_girl img{
	position:absolute;
	opacity:0;
	animation:girl0 2s linear 3s both;
}
.web_kyouka_girl img {
	width: 100%;
	position:absolute;
}
.web_kyouka_girl img:nth-child(1){
	animation:girl1 3s linear 3s both;
}
.web_kyouka_girl img:nth-child(2){
	animation:girl2 3s linear 4s both;
}
@keyframes girl0{
	from{opacity:0;}
	to{opacity:1; }
}
@keyframes girl1{
	from{ opacity:1;}
	to{ opacity:0; }
}
@keyframes girl2{
	from{ opacity:0;}
	to{ opacity:1; }
}
.new-mv01 {
	position: absolute;
	bottom: 0;
	left: -70px;
	z-index: 1;
	width: 45vw;
	opacity: 0;
	transition: opacity 1.5s ease 1s;
}
.new-mv01 img {
	width: 100%;
	height: auto;
	display: block;
}
.new-mv02 {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	height: 100%;
	width: 100%;
	overflow: hidden;
	transition: opacity 1.5s ease;
}
.new-mv02-track {
	display: flex;
	height: 100%;
	width: max-content;
	animation: mvpic-slide 30s linear infinite;
}
.new-mv02-track img {
	height: 100%;
	width: auto;
	flex-shrink: 0;
}
.loaded .new-mv01,
.loaded .new-mv02 {
	opacity: 1;
}
@keyframes mvpic-slide {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

/* +++募集期間の帯+++ */
.bosyukikan {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 10vh;
	color: #fff;
	text-shadow: 3px 3px 0 rgba(0, 0, 0, .4);
	font-size: 1.5vw;
	font-weight: 600;
	background-color: #ff9100;
}



@media screen and (max-width: 1024px){
/* +++#main-visual+++ */
	.shine-rotate {
		top: -10%;
		right: -10%;
	}
	.shine-rotate img {
		width: 120vw;
	}
	.hiyoko {
		top: 25rem;
	}
	.new-mv01 .pc-none {
		display: block !important;
	}
	.new-mv01 .sp-none {
		display: none;
	}
	.new-mv01 {
		left: -200px;
		width: 115vw;
	}
	.web_kyouka_text {
		top: auto;
		right: auto;
		bottom: 18%;
		left: 5vw;
		-webkit-text-stroke: 4px #fff;
		text-stroke: 4px #fff;
		paint-order: stroke;
	}
	.web_kyouka_text .text-blue {
		font-size: 5.3vw;
	}
	.mv-text-area {
		right: auto;
		padding-inline: 2.5vw;
		bottom: 5%;
	}
	#main-visual .text-red {
		font-size: 4vw;
	}
	.sub-catch {
		font-size: 2.5vw;
		height: 5vw;
		line-height: 5vw;
	}

/* +++募集期間の帯+++ */
	.bosyukikan {
		font-size: 2.5vw;
	}



@media screen and (max-width: 768px){
/* +++++太陽の光+++++++ */
.shine-rotate {
	right: -15%;
}
.shine-rotate img {
	width: auto;
	height: auto;
}

/* +++#main-visual+++ */
	#main-visual{
		/*height: 70vh;*/
		/*margin-top: 5rem;*/
		height: 90vh;
		margin-top: 0;
	}
	#main-visual:before{
		position: absolute;
		left: 0;
		background-position: 85% top;
	}
	.mv-text-area{
		left: 0;
		right: 0;
		padding-inline: 2.5vw;
		bottom: 5%;
	}
	.mv-slide{
		transition: 1.2s opacity ease;
	}
	#main-visual .text-red{
		/*font-size: 2.4rem;*/
		font-size: 4vw;
		margin-bottom: 1.8rem;
	}
	.sub-catch{
		/*margin-top: 2.2rem;*/
		/*font-size: 1.8rem;*/
		/*height: 6rem;*/
		height: 17vw;
		margin-top: 0;
		font-size: 4.5vw;
		line-height: 8vw;
	}
	.web_kyouka_text {
		position: absolute;
		top: 73%;
		left: 5vw;
		right: auto;
	}
	.web_kyouka_text .text-blue {
		font-size: 6vw;
	}
	.web_kyouka_girl {
	    width: 374px;
	    position: absolute;
	    right:60px;
	    bottom: 603px;
	}
	.new-mv01 {
		width: 145%;
		left: -38%;
	}

/* +++募集期間の帯+++ */
	.bosyukikan {
		font-size: 3.5vw;
	}