@charset "UTF-8";


/* ページ全体調整 
-------------------------------------------------*/

* {
	font-family: "M PLUS Rounded 1c", sans-serif;
}

.container_wrap {
	width: 100%;
	max-width: 1280px;
	margin-right: auto;
	margin-left: auto;
	padding-right: 40px;
	padding-left: 40px;
}

.contents_wrap {
	padding: 0 200px;
}

.contents_wrap.--lg {
	padding: 0 100px;
}

@media screen and (max-width: 750px) {
	.container_wrap {
		padding-right: 0;
		padding-left: 0;
	}

	.contents_wrap,
	.contents_wrap.--lg {
		padding: 0 20px;
	}

	.contents_wrap-sp {
		padding: 0 20px;
	}
}

.o-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
}



.o-grid .o-grid-item-6 {
	grid-column: auto / span 6;
}

.o-grid .o-grid-item-4 {
	grid-column: auto / span 4;
}

.o-grid .o-grid-item-12 {
	grid-column: auto / span 12;
}

@media screen and (max-width: 750px) {
	.o-grid .o-grid-item-12-sp {
		grid-column: auto / span 12;
	}
}

.o-block-120 {
	padding: 120px 0;
}

.o-block-100 {
	padding: 100px 0;
}

.o-block-80 {
	padding: 80px 0;
}

.o-block-60 {
	padding: 60px 0;
}

.o-block-40 {
	padding: 40px 0;
}

.o-pb120 {
	padding-bottom: 120px;
}

.o-pb300 {
	padding-bottom: 300px;
}

.o-mb80 {
	margin-bottom: 80px;
}

.o-mb60 {
	margin-bottom: 60px;
}

.o-mt60 {
	margin-top: 60px;
}

.o-mb40 {
	margin-bottom: 40px;
}

.o-mt40 {
	margin-top: 40px;
}

.o-mb20 {
	margin-bottom: 20px;
}

.o-mt20 {
	margin-top: 20px;
}

@media screen and (max-width: 750px) {
	.o-block-120 {
		padding: 60px 0;
	}

	.o-block-100 {
		padding: 50px 0;
	}

	.o-block-80 {
		padding: 40px 0;
	}

	.o-block-60 {
		padding: 30px 0;
	}

	.o-pb120 {
		padding-bottom: 60px;
	}

	.o-pb300 {
		padding-bottom: 200px;
	}

	.o-mb60 {
		margin-bottom: 30px;
	}

	.o-mb60-sp {
		margin-bottom: 60px;
	}

	.o-mt60 {
		margin-top: 30px;
	}

	.o-mb40 {
		margin-bottom: 20px;
	}

	.o-mt40 {
		margin-top: 20px;
	}

	.o-mb20 {
		margin-bottom: 10px;
	}

	.o-mt20 {
		margin-top: 10px;
	}

	.o-pb300-sp {
		padding-bottom: 300px;
	}
}

/* PARTS
------------------------------------------------- */

.--bg01 {
	background-image: url(/special/fantastic202503/images/bg01.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
}

.--bg02 {
	background-image: url(/special/fantastic202503/images/bg02.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
}

.container_box {
	width: 100%;
	/* padding: 60px 120px; */
	background-color: #fff;
	border: solid 5px #000;
	border-radius: 30px;
}

hr.box_line {
	height: 5px;
	background-color: #000;
	width: 100%;
	margin: 0 auto;
	border: none;
}

.u-font-32 {
	font-size: 32px;
}

@media screen and (max-width: 750px) {
	.container_box {
		width: 100%;
		padding: 30px 20px;
		background-color: #fff;
		border: solid 4px #000;
		border-radius: 15px;
	}

	hr.box_line {
		height: 4px;
		background-color: #000;
		width: 100%;
		margin: 0 auto;
		border: none;
	}

	.u-font-32 {
		font-size: 18px;
	}
}

.color-red {
	color: #dd141a !important;
}




/* INTRO
------------------------------------------------- */

.container_intro .container_box {
	background-color: #fff;
	padding-top: 0;
	position: relative;
}

.container_intro .intro_text {
	text-align: center;
	position: relative;
	z-index: 100;
}

.container_intro .intro_text p {
	font-size: 26px;
	font-weight: 800;
	color: #000;
	-webkit-text-stroke: 6px #fff;
	text-stroke: 6px #fff;
	paint-order: stroke;
}

.container_intro .intro_img .player01 {
	position: absolute;
	bottom: 0;
	width: 550px;
	left: -50px;
}

.container_intro .intro_img .player03 {
	position: absolute;
	bottom: 0;
	width: 250px;
	right: 50px;
}

@media screen and (max-width: 750px) {
	.container_intro .container_box {
		padding: 20px 0;
		padding-top: 0;
		padding-bottom: 0;

	}

	.container_intro .intro_text p {
		font-size: 16px;
		font-weight: 800;
		color: #000;
		transform: rotateZ(0.03deg);
	}

	.container_intro .intro_img .player01 {
		position: absolute;
		bottom: 0;
		width: 550px;
		left: -50px;
	}

	.container_intro .intro_img .player03 {
		position: absolute;
		bottom: 0;
		width: 130px;
		right: 5px;
	}
}


/* MOVIE
------------------------------------------------- */

.program_movie {
	/* padding-bottom: 100px; */
	text-align: center;
}

.program_movie_inner {
	/* width: 1240px; */
	margin: 0 auto;
}

.frame-wrapper_video {
	max-width: 900px;
	margin: 0 auto;
	position: relative;
	/* background-color: #000; */
	border: solid 5px #000;
	border-top: none;
	border-bottom: none;
}

.frame-wrapper_video_inner {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 56.25%;
	overflow: hidden;
}

.frame-wrapper_video_inner iframe {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

@media screen and (max-width: 750px) {

	.program_movie {
		padding-bottom: 40px;
	}

	.frame-wrapper_video {
		border: none;
		border-bottom: solid 4px #000;

	}

	.frame-wrapper_video_inner iframe {
		border-top-left-radius: 10px;
		border-top-right-radius: 10px;
	}
}





/* KIKAKU
------------------------------------------------- */


.container_kikaku .container_box {
	background-color: #ffcc04;
}

.container_kikaku .kikaku_inner {
	position: relative;
}

.container_kikaku .kikaku_inner .kikaku_img .player02 {
	position: absolute;
	top: -370px;
	width: 540px;
	left: 450px;
}


.container_kikaku .container_box .kikaku_boxttl {
	display: flex;
}

.container_kikaku .container_box .kikaku_boxttl .boxttl_left {
	padding: 10px;
	width: 200px;
	height: 100px;
	background-color: #000;
	border-top-left-radius: 20px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.container_kikaku .container_box .kikaku_boxttl .boxttl_left p {
	font-size: 32px;
	font-weight: 900;
	color: #ffcc04;
	text-align: center;
	line-height: 1.2;
}

.container_kikaku .container_box .kikaku_boxttl .boxttl_right {
	padding: 18px 100px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.container_kikaku .container_box .kikaku_contents .o-grid {
	column-gap: 20px;
	row-gap: 20px;
}

.container_kikaku .container_box .kikaku_contents .kikaku_img img {
	border-radius: 15px;
}

.container_kikaku .container_box .kikaku_contents .kikaku_img.--parts {
	position: relative;
}

.container_kikaku .container_box .kikaku_contents .kikaku_img .parts {
	position: absolute;
	width: 100px;
	bottom: -20px;
	right: 20px;
}

.container_kikaku .container_box .kikaku_contents .kikaku_text {
	text-align: center;
	position: relative;
}

.container_kikaku .container_box .kikaku_contents .kikaku_text p {
	font-size: 24px;
	font-weight: 800;
	color: #000;
	transform: rotateZ(0.03deg);
}

.container_kikaku .container_box .kikaku_contents .kikaku_text .bottom_parts .parts {
	position: absolute;
	bottom: -100px;
	right: -150px;
	width: 270px;
}

@media screen and (max-width: 750px) {
	.container_kikaku .container_box {
		padding: 0;
	}

	.container_kikaku .kikaku_inner {
		position: relative;
		padding-top: 150px;
	}

	.container_kikaku .kikaku_inner .kikaku_img .player02 {
		position: absolute;
		top: -120px;
		width: 300px;
		left: 10vw;
	}

	.container_kikaku .container_box .kikaku_boxttl .boxttl_left {
		padding: 5px;
		width: 150px;
		height: 150px;
		background-color: #000;
		border-top-left-radius: 10px;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.container_kikaku .container_box .kikaku_boxttl .boxttl_left p {
		font-size: 18px;
		font-weight: 900;
		color: #ffcc04;
		text-align: center;
		line-height: 1.2;
		transform: rotateZ(0.03deg);
	}

	.container_kikaku .container_box .kikaku_contents .kikaku_img .parts {
		position: absolute;
		width: 70px;
		bottom: -20px;
		right: 10px;
	}

	.container_kikaku .container_box .kikaku_boxttl .boxttl_right {
		padding: 10px 20px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.container_kikaku .container_box .kikaku_contents .kikaku_text p {
		font-size: 14px;
		font-weight: 800;
		color: #000;
		transform: rotateZ(0.03deg);
	}

	.container_kikaku .container_box .kikaku_contents .kikaku_text .bottom_parts .parts {
		position: absolute;
		bottom: -80px;
		right: -35px;
		width: 120px;
	}
}



/* CAST
------------------------------------------------- */

.container_cast .container_box {
	padding: 0;
}

.container_cast .container_box .cast_boxttl {
	width: 100%;
	height: 100px;
	padding: 10px 0;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.container_cast .container_box .cast_boxttl p {
	font-size: 45px;
	font-weight: 800;
	color: #000;
}

.container_cast .o-grid {
	row-gap: 20px;
	column-gap: 20px;
}

.container_cast .o-grid .cast_under img {
	border-radius: 15px;
}

.container_cast .container_box .o-grid {
	row-gap: 30px;
	column-gap: 30px;
}

.container_cast .container_box .cast_inner {
	position: relative;
}

.container_cast .container_box .cast_img img {
	border-radius: 20px;
}

.container_cast .container_box .cast_text {
	position: absolute;
	bottom: 0;
	background-color: #ffcc04;
	width: 100%;
	padding: 10px 0;
	border-bottom-left-radius: 18px;
	border-bottom-right-radius: 18px;
}

.container_cast .container_box .cast_text p {
	font-size: 19px;
	font-weight: 800;
	color: #000;
	text-align: center;
	transform: rotateZ(0.03deg);
}




@media screen and (max-width: 750px) {

	.container_cast .container_box .cast_boxttl {
		height: fit-content;
	}

	.container_cast .container_box .cast_boxttl p {
		font-size: 28px;
		font-weight: 800;
		color: #000;
	}

	.container_cast .container_box .o-grid {
		row-gap: 10px;
		column-gap: 10px;
	}
}



/* PRESENT
------------------------------------------------- */

.container_present .o-block-120 {
	padding-bottom: 0 !important;
}

.container_present .o-grid {
	row-gap: 40px;
	column-gap: 40px;
	/* justify-items: center; */
}

.container_present .present_boxttl {
	width: 100%;
	height: 100px;
	padding: 10px 0;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.container_present .present_boxttl p {
	font-size: 45px;
	font-weight: 900;
	color: #ffcc04;
	-webkit-text-stroke: 12px #000;
	text-stroke: 12px #000;
	paint-order: stroke;
	text-shadow: 0px 5px 0px #000;
}

.container_present .present_inner .present_text strong {
	font-size: 30px;
	font-weight: 800;
	color: #dd141a;
}

.container_present .present_inner .present_text p {
	font-size: 24px;
	font-weight: 800;
	color: #000;
	transform: rotateZ(0.03deg);
}

.container_present .present_inner .present_text p strong.js-tel-link {
	font-weight: 800;
	color: #dd141a;
}

.container_present .attention_ttl {
	font-weight: 800;
	font-size: 3.0rem;
	text-align: center;
	color: #ffcc04;
	-webkit-text-stroke: 8px #000;
	text-stroke: 8px #000;
	paint-order: stroke;
	text-shadow: 0px 4px 0px #000;
	text-align: center;
}

.container_present .attention_text li {
	font-weight: 800;
	color: #000;
	font-size: 1.4rem;
	transform: rotateZ(0.03deg);
	padding-left: 1em;
	text-indent: -1em;
}

.container_present .attention_text li a {
	text-decoration: underline;
}


@media screen and (max-width: 750px) {
	.container_present .container_box {
		padding: 0;
	}

	.container_present .o-grid {
		row-gap: 20px;
		column-gap: 10px;
	}

	.container_present .present_boxttl {
		padding: 5px 0;
		height: 60px;
	}

	.container_present .present_boxttl p {
		font-size: 26px;
		font-weight: 900;
		color: #ffcc04;
		-webkit-text-stroke: 10px #000;
		text-stroke: 10px #000;
		paint-order: stroke;
		text-shadow: 0px 5px 0px #000;
	}

	.container_present .present_inner .present_text strong {
		font-size: 20px;
		font-weight: 800;
		color: #dd141a;
	}

	.container_present .present_inner .present_text p {
		font-size: 18px;
		font-weight: 800;
		color: #000;
		transform: rotateZ(0.03deg);
	}

	.container_present .present_inner .present_text p strong.js-tel-link a {
		font-weight: 800;
		color: #dd141a !important;
	}

	.container_present .attention_ttl {
		font-size: 16px;
		-webkit-text-stroke: 6px #000;
		text-stroke: 6px #000;
		paint-order: stroke;
		text-shadow: 0px 3px 0px #000;
		transform: rotateZ(0.03deg);
	}

	.container_present .attention_text li {
		font-size: 12px;
		line-height: 1.5;
	}
}












.animation {
	animation: fadeTop .5s ease-out forwards;
}

/* フェードイン */
@-webkit-keyframes fadeIn {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

/* 上方向フェード */
@-webkit-keyframes fadeTop {
	0% {
		transform: translate3d(0, 100px, 0);
		opacity: 0;
	}

	100% {
		transform: translate3d(0, 0, 0);
		opacity: 1;
	}
}

@keyframes fadeTop {
	0% {
		transform: translate3d(0, 100px, 0);
		opacity: 0;
	}

	100% {
		transform: translate3d(0, 0, 0);
		opacity: 1;
	}
}