@charset "utf-8";

/*
  common
--------------------------------------------------------*/
/* --- layout --- */

body {
	overflow-x: hidden;
}
#l-main {
	background: #567DC6 url("../img/bg-main.png");
	overflow: hidden;
}
#l-main * {
 transition: .3s ease all;
}
#l-main a {
	opacity: 1 !important;
}
#l-main img {
	vertical-align:bottom;
	visibility: visible !important;
}
@media only screen and (max-width: 767px) {
	#l-main {
		background-size: 35px 69px;
	}
}

/* --- component --- */
.c-ttl--lv1 {
	margin-bottom: 30px;
}
.c-ttl--lv2 {
	margin-bottom: 35px;
}
.c-ttl--lv3 {
	margin-bottom: 40px;
}
.c-ttl--lv4 {
	margin-top: 40px;
}
.c-btnarea {
	margin-top: 80px;
}
.c-credit {
	color: #fff;
}


[class^="c-char"] {
	transform: translateY(-100px);
 position: absolute;
	opacity: 0;
	z-index: 1;
}
[class^="c-char"].animation {
	animation: .4s .8s charAnime ease forwards;
}
@media only screen and (min-width: 768px) {
	.c-btnarea :hover img {
		transform: scale(1.2);
	}
}
@media only screen and (max-width: 767px) {
	.c-ttl--lv2 {
		margin-bottom: 20px;
	}
	.c-ttl--lv2 img {
		height: 4rem;
	}
	.c-ttl--lv3 {
		margin-bottom: 25px;
	}
	.c-ttl--lv4 img {
		height: 1.8rem;
	}
	.c-btnarea {
		margin: 10% 5%;
	}
}

/* --- utility --- */
.u-pc__block {
	display: block
}
.u-sp__block {
	display: none
}
.u-spacer {
	margin-bottom: 7%;
}

.mWidth--50per { max-width: 50% !important; }

@media only screen and (max-width: 767px) {
	.u-pc__block {
		display: none;
	}
	.u-sp__block {
		display: block
	}
	.u-sp__mWidth--60per { max-width: 60% !important; }
}



/*
	MV
--------------------------------------------------------*/
.p-rmomotetsuMv {
	background: url("../img/bg-mv--pc.png") center;
	background-size: cover;
}
.p-rmomotetsuMv__inner {
	padding: 100px 0 150px;
}
.p-rmomotetsuMv .c-ttl--lv1 {
	animation: .4s logoAnime ease forwards;
}

.p-rmomotetsuMv .c-ttl--lv1 img {
	width: 80%;           /* 画面幅に対する比率 */
	height: auto;         /* 比率維持 */
	display: block;
	 margin: 0 auto 40px;  /* 中央寄せ＋下余白 */
}

.p-rmomotetsuMv h3 {
	width: 72%;
	max-width: 1000px;
	margin: 0 auto;
}

@media only screen and (max-width: 767px) {
	.p-rmomotetsuMv {
	background: url("../img/bg-mv--sp.png") center top;
	background-size: cover;
}

	.p-rmomotetsuMv__inner {
		padding: 50px 0 130px;
	}
	.c-ttl--lv1 {
			margin-bottom: 20px;
	}

	.p-rmomotetsuMv .c-ttl--lv1 img {
	width: 100%;           /* 画面幅に対する比率 */
}
	.p-rmomotetsuMv h3 {
		width: 90%;
		margin: 0 auto;
	}
}



/*
	intro
--------------------------------------------------------*/
.p-rmomotetsuIntro {
	background: #FFCCE2 url("../img/bg-intro.png") center top ;
	border-bottom: 8px solid #FF7DAA;
	position: relative;
}
.p-rmomotetsuIntro::after {
		content: "";
		width: 100%;
		height: 91px;
		display: block;
		background: url("../img/bg-intro_top.png") top center no-repeat;
		position: absolute;
		top: -91px;
	}
.p-rmomotetsuIntro__inner {
	max-width: 1000px;
	margin: 0 auto;
	padding: 100px 0;
	position: relative;
}
.p-rmomotetsuIntro li {
	margin-top: 30px;
}
.c-char--saru {
	top: -80px;
	right: -20px;
}
.c-char--tori {
	top: -150px;
	right: 120px;
}
.c-char--inu {
	top: -80px;
	left: 100px;
}
@media only screen and (max-width: 767px) {
	.p-rmomotetsuIntro::after {
			display: none;
		}
	.p-rmomotetsuIntro {
		background: #fff;
		border-bottom: none;
	}
	.p-rmomotetsuIntro__inner {
			padding: 0;
	}
	.u-sp__block img {
		transform: translateY(-80px)
	}
	.p-rmomotetsuIntro	[class^="c-char"] img {
		transform: scale(.5)
	}
	.c-char--saru {
		top: -80px;
		right: 2vw;
	}
	.c-char--saru img {
		transform-origin: right center;
	}
	.c-char--tori {
		top: -150px;
		right: 2vw;
	}
	.c-char--inu {
		top: -80px;
		left: 0;
	}
}

/*
	movie
--------------------------------------------------------*/
.p-rmomotetsuMovie {
	background: #fff;
}
.p-rmomotetsuMovie__inner {
		padding: 100px 0;
}
.p-rmomotetsuMovie__movie {
	/*max-width: 800px;*/
	margin: 0 auto;
	display: flex;
	justify-content: center;
}
.p-rmomotetsuMovie__movie li {
	max-width: 1000px;
	margin-top: 60px;
}
.p-rmomotetsuMovie__movie-thumb a {
	width: 100%;
	height: 0.5625%;
	display: block;
	position: relative;
	background: #000;
	border: 10px solid #fa3278;
	border-radius: 20px;
	overflow: hidden;
}
.p-rmomotetsuMovie__movie-thumb a::after {
	width: 120px;
	height: 120px;
	margin: auto;
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: url("../img/icon-play.svg");
	background-size: contain;
	content: "";
}
.p-rmomotetsuMovie__movie-thumb img {
	opacity: .8;
}
.p-rmomotetsuMovie__movie-thumb + p {
	margin-top: 2px;
}
@media only screen and (min-width: 768px) {
	.p-rmomotetsuMovie__movie {
		padding: 0 30px;
	}
	.p-rmomotetsuMovie__movie ul {
		/*max-width: 1600px;*/
    max-width: 1800px;
		margin:0 0 0 -40px;
		display: flex;
		flex-wrap: wrap;
	}
	.p-rmomotetsuMovie__movie li {
		/*width: calc(50% - 40px);*/
    width: calc(33.3333% - 40px);
		max-width: 800px;
		margin: 40px 0 0 40px;
	}
	.p-rmomotetsuMovie__movie-thumb:hover img {
		transform: scale(1.1);
		opacity: 1;
		cursor: pointer;
	}
}
@media only screen and (max-width: 767px) {
	.p-rmomotetsuMovie__inner {
		padding: 0 4% 1%;
	}
	.p-rmomotetsuMovie__movie li {
		margin-top: 20px;
	}
	.p-rmomotetsuMovie__movie-thumb a {
		border-width: 5px;
		border-radius: 10px;
	}
	.p-rmomotetsuMovie__movie-thumb a::after {
		width: 80px;
		height: 80px;
	}
}



/*
	event
--------------------------------------------------------*/
.p-rmomotetsuEvent {
	background: linear-gradient(#fff 0%,rgba(255,255,255,0) 10%);
}
.p-rmomotetsuEvent__inner {
	padding: 100px 0;
}
.p-rmomotetsuEvent__card {
	max-width: 1000px;
	margin: 0 auto;
	padding: 4%;
	background: rgba(255,255,255,.7);
	position: relative;
}
.p-rmomotetsuEvent__box-attention {
	position: relative;
}
.c-char--momotaro {
	position: absolute;
	top: -200px;
	left: 100px;
}
.c-char--angel {
	position: absolute;
	top: 5%;
	right: 5%;
}
.map {
	transform: translateY(-10px);
}

@media only screen and (max-width: 767px) {
	.p-rmomotetsuEvent {
		background: linear-gradient(#fff 0%,rgba(255,255,255,0) 5%);
	}
.p-rmomotetsuEvent__inner {
		padding: 25% 4% 0;
	}
	.p-rmomotetsuEvent__card {
		padding: 8% 4%;
	}
	.c-char--momotaro {
	width: 20vw;
		top: -28vw;
		left: 0;
	}
	.c-char--angel {
		width:38%;
		top: 4%;
		right: 0;
	}
}



/*
	newcontent
--------------------------------------------------------*/
.p-rmomotetsunewcontent__inner {
	padding: 100px 0;
}
.p-rmomotetsunewcontent__card {
	max-width: 1000px;
	margin: 0 auto;
	padding: 3% 2% 4%;
	background: #fff;
	border-radius: 24px;
	border: 10px solid #003796;
}

.p-rmomotetsunewcontent__divider {
	border-top: 3px solid #000000;
	margin: 40px 0;
}

.p-rmomotetsunewcontent__imgwrap {
	position: relative;
	display: inline-block;
}

.p-rmomotetsunewcontent__char {
	position: absolute;
	right: -40px;
	bottom: -20px;
	transform: rotate(-2deg);
	width: 120px;
	z-index: 2;
}

@media only screen and (max-width: 767px) {
.p-rmomotetsunewcontent__inner {
			padding: 4% 4%;
	}
	.p-rmomotetsunewcontent__card {
		padding: 8% 4% 10%;
		border-width: 5px;
		border-radius: 12px;
	}

	.p-rmomotetsunewcontent__char {
    position: static;
    display: block;
    margin: 20px auto 0;
    transform: none;
    width: 40%;
	}
}




/*
	participation
--------------------------------------------------------*/
.p-rmomotetsuParticipation__inner {
	padding: 100px 0;
}
.p-rmomotetsuParticipation__card {
	max-width: 1000px;
	margin: 0 auto;
	padding: 3% 2% 2%;
	background: #fff;
	border-radius: 24px;
	border: 10px solid #003796;
}

@media only screen and (max-width: 767px) {
.p-rmomotetsuParticipation__inner {
			padding: 4% 4%;
	}
	.p-rmomotetsuParticipation__card {
		padding: 4%;
		border-width: 5px;
		border-radius: 12px;
	}
}



/*
	ticket
--------------------------------------------------------*/
.p-rmomoteTsuticket__inner {
			padding: 100px 0;
	}
.p-rmomoteTsuticket__card {
	max-width: 1000px;
	margin: 0 auto;
	padding: 3% 2% 2%;
	background: #fff;
	border-radius: 24px;
	border: 10px solid #003796;
}

@media only screen and (max-width: 767px) {
	.p-rmomoteTsuticket__inner {
			padding: 4% 4%;
	}
	.p-rmomoteTsuticket__card {
		padding: 4%;
		border-width: 5px;
		border-radius: 12px;
	}
	.p-rmomoteTsuticket__card .c-ttl--lv3 {
		margin-bottom: 10px;
	}
}



/*
	other
--------------------------------------------------------*/
.p-rmomotetsuOther {
	background: #b4b4ff url("../img/bg-other.png");
}
.p-rmomotetsuOther__inner {
	padding: 80px 0 40px;
}
.p-rmomotetsuOther li {
	margin-bottom: 80px;
}
.p-rmomotetsuOther li a > img {
	box-shadow: 20px 20px #000;
}
.p-rmomotetsuOther li p {
	margin-top: 60px;
}
@media only screen and (min-width: 768px) {
	.p-rmomotetsuOther li a:hover > img {
		transform: translate(10px,10px);
			box-shadow: none;
	}
}
@media only screen and (max-width: 767px) {
	.p-rmomotetsuOther {
		background-size: 60px 60px;
	}
	.p-rmomotetsuOther__inner {
		padding: 8% 4%;
	}
	.p-rmomotetsuOther li {
		margin-bottom: 40px;
	}
.p-rmomotetsuOther li a > img {
		width: 75%;
		box-shadow: 10px 10px #000;
	}
	.p-rmomotetsuOther li p {
		margin-top: 30px;
	}
}



/*animation
--------------------------------------------------------*/
@keyframes charAnime {
	0% {
		opacity: 0;
		transform: translateY(-100px);
	}
	50% {
		transform: translateY(10px);
	}
	75% {
		opacity: 1;
		transform: translateY(-10px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes logoAnime {
	0% {
		transform: scale(0);
	}
	100% {
		transform: scale(1);
		}
	}