@charset "UTF-8";


/* ページ全体調整 
-------------------------------------------------*/

.container_main {
	font-family: "M PLUS Rounded 1c", sans-serif;
}

.container_wrap {
	width: 100%;
	max-width: 1320px;
	margin-right: auto;
	margin-left: auto;
	padding-right: 40px;
	padding-left: 40px;
}

.contents_wrap {
	padding-left: 200px;
	padding-right: 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;
	}

	.contents_wrap-sp-0 {
		padding: 0 !important;
	}
}

.o-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
}


.o-grid.gap-40 {
	gap: 40px;
}

.o-grid.gap-20 {
	gap: 20px;
}

.o-grid.gap-80 {
	gap: 80px;
}

.o-grid.gap-60 {
	gap: 60px;
}


.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-grid.gap-40 {
		gap: 20px;
	}

	.o-grid.gap-20 {
		gap: 10px;
	}

	.o-grid.gap-80 {
		gap: 40px;
	}

	.o-grid.gap-60 {
		gap: 30px;
	}
}

.o-block-120 {
	padding: 120px 0;
}

.o-block-100 {
	padding: 100px 0;
}

.o-block-80 {
	padding-top: 80px;
	padding-bottom: 80px;
}

.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-block-0-sp {
		padding: 0 !important;
	}

	.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/fantastic2025/images/bg.png);
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
}



.container_box {
	width: 100%;
	/* padding: 60px 120px; */
	background-color: rgba(255, 255, 255, 0.8);
	border-radius: 30px;
}


.u-font-32 {
	font-size: 32px;
}

@media screen and (max-width: 750px) {
	.container_box {
		width: 100%;
		padding: 30px 20px;
		background-color: rgba(255, 255, 255, 0.8);
		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: #f52b2b !important;
}

.u-align-center {
	text-align: center;
}




/* INTRO
------------------------------------------------- */

.container_intro {
	position: relative;
}

.container_intro .intro_pc01 {
	position: absolute;
	top: 5%;
    right: 2%;
    width: 13%;
}

.container_intro .intro_pc02 {
	position: absolute;
	top: 0;
    left: 3%;
    width: 13%;
}

.container_intro .intro_pc03 {
	position: absolute;
	top: 35%;
	left: 2%;
	width: 10%;
}

.container_intro .intro_pc04 {
	position: absolute;
	top: 40%;
	right: 10%;
	width: 10%;
}

.container_intro .intro_mark {
	position: absolute;
	top: 0;
	right: -20%;
	width: 25%;
}

.container_intro .text_area {
	position: relative;
}

.container_intro .text_area .intro_mark {
	position: absolute;
	top: 0;
	right: -20%;
	width: 20%;
}


@media screen and (max-width: 750px) {
	.container_intro .text_area .intro_mark {
		position: absolute;
		top: 50%;
		right: -2%;
		width: 30%;
	}

	.intro_sp01 {
		display: flex;
		justify-content: space-around;
		align-items: flex-end;
		margin-bottom: 40px;
	}

	.intro_sp01 .intro_sp01-1 {
		width: 40%;
		height: 40%;
	}

	.intro_sp01 .intro_sp01-2 {
		width: 50%;
		margin-bottom: 30px;
	}

	.intro_sp02 {
		display: flex;
		justify-content: space-around;
		align-items: flex-end;
		margin-bottom: 40px;
	}

	.intro_sp02 .intro_sp02-1 {
		width: 50%;
		height: 50%;
	}

	.intro_sp02 .intro_sp02-2 {
		width: 40%;
		margin-bottom: 60px;
	}
}



.container_intro .intro_ttl {
	font-size: 35px;
	font-weight: 800;
	color: #000;
	text-align: left;
	line-height: 1.7;
}

.container_intro .intro_ttl strong {
	font-size: 4.1rem;
	font-weight: 800;
	color: #f52b2b;
	text-align: left;
}

.container_intro .intro_text p {
	font-size: 2.4rem;
	font-weight: 700;
	color: #000;
	text-align: left;
	line-height: 2.0;
}

.container_intro .intro_text p .intro_txt-img {
	margin: 0 5px;
	margin-bottom: 10px;
}

.container_intro .intro_text strong {
	font-size: 2.8rem;
	font-weight: 700;
	color: #f52b2b;
	text-align: left;
	line-height: 1.7;
}

.container_intro .intro_text strong.line {
	-webkit-text-stroke: 7px #ffd900;
	text-stroke: 7px #ffd900;
	paint-order: stroke;
	background: linear-gradient(transparent 60%, #ffd900 60%);
}



@media screen and (max-width: 750px) {
	.container_intro .intro_text p {
		font-size: 1.4rem;
		line-height: 2.0;
	}

	.container_intro .intro_text strong {
		font-size: 1.8rem;

	}

	.container_intro .intro_text strong.line {
		-webkit-text-stroke: 5px #ffd900;
		text-stroke: 5px #ffd900;
		paint-order: stroke;
		background: linear-gradient(transparent 60%, #ffd900 60%);
	}

	.container_intro .intro_text p .intro_txt-img {
		width: 30%;
	}

	.container_intro .intro_text p .intro_txt-img.--sp {
		width: 70%;
	}

	.container_intro .intro_ttl {
		font-size: 24px;
		font-weight: 800;
		color: #000;
		text-align: left;
		line-height: 1.5;
	}

	.container_intro .intro_ttl strong {
		font-size: 3.0rem;
		font-weight: 800;
		color: #f52b2b;
		text-align: left;
	}
}




/* MOVIE
------------------------------------------------- */


.program_movie {
	background-image: url(/special/fantastic2025/images/movie_bg.png);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	padding: 80px;
}

.frame-wrapper_video iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}


@media screen and (max-width: 750px) {
	.program_movie {
		padding: 30px;
	}
}



/* CAST
------------------------------------------------- */

.container_cast .container_cast-box {
	width: 100%;
	padding-top: 80px;
	padding-bottom: 80px;
	background-color: rgba(255, 255, 255, 0.8);
	border-radius: 30px;
}

.container_cast .container_cast-box .cast_ttl {
	text-align: center;
	padding: 10px;
	width: 100%;
	font-size: 3.5rem;
	color: #fff;
	font-weight: 800;
	background-color: #f52b2b;
	border-radius: 50vw;
}

.container_cast .container_cast-box .cast_txt {
	text-align: center;
	font-size: 4.0rem;
	color: #000;
	font-weight: 800;
	line-height: 1.2;
}

.container_cast .container_cast-box .cast_txt span {
	font-size: 2.4rem;
}


.container_cast .container_cast-box .o-grid {
	gap: 60px;
}


@media screen and (max-width: 750px) {
	.container_cast .container_cast-box {
		padding: 20px 0;
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.container_cast .container_cast-box .cast_ttl {
		font-size: 2.4rem;
		padding: 5px;
	}

	.container_cast .container_cast-box .cast_txt {
		font-size: 2.4rem;
	}

	.container_cast .container_cast-box .cast_txt span {
		font-size: 1.8rem;
	}

	.container_cast .container_cast-box .o-grid {
		gap: 20px;
		row-gap: 40px;
	}

}





.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;
	}
}