@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: 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;
	}

	.contents_wrap-sp-0 {
		padding: 0 !important;
	}
}

.container_main p {
	font-size: 1.8rem;
	font-weight: 400;
	color: #000;
	line-height: 1.5;
}

@media screen and (max-width: 750px) {
	.container_main p {
		font-size: 1.4rem;
	}
}

.o-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
}


.o-grid.gap-40 {
	gap: 40px;
}


.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-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-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
------------------------------------------------- */

.u-font-32 {
	font-size: 32px;
}

.u-font-b {
	font-weight: bold;
}

@media screen and (max-width: 750px) {


	.u-font-32 {
		font-size: 18px;
	}
}

.color-red {
	color: #eb4124 !important;
}

.u-align-center {
	text-align: center;
}


.--bg01 {
	background-color: #F9F8EE;
}

.--bg02 {
	background-color: #EDE9D0;
}


hgroup.ttl {
	margin-bottom: 40px;
}

hgroup.ttl h1 {
	font-family: "Dela Gothic One", sans-serif;
	color: transparent;
	font-size: 10rem;
	line-height: 1.0;
}

hgroup.ttl h1.--red {
	opacity: 0.5;
	-webkit-text-stroke: 1px rgb(187, 51, 35);
}

hgroup.ttl h1.--white {
	opacity: 0.5;
	-webkit-text-stroke: 1px rgb(249, 248, 238);
}

hgroup.ttl h1.--blue {
	opacity: 0.5;
	-webkit-text-stroke: 1px rgb(2, 12, 69);
}

hgroup.ttl img {
	width: auto;
	height: 70px;
	margin-top: -40px;
}

@media screen and (max-width: 750px) {
	hgroup.ttl {
		margin-bottom: 20px;
	}

	hgroup.ttl h1 {
		font-size: 4.5rem;
	}



	hgroup.ttl img {
		width: auto;
		height: 40px;
		margin-top: -20px;
	}
}




/* MV
------------------------------------------------- */

.container_mv {
	background-image: url(../images/top_bg.jpg);
	background-position: top center;
	background-size: cover;
	background-repeat: no-repeat;
	padding-bottom: 40px;
}

.top {
	padding: 0 100px;
	margin-bottom: 20px;
}

.top_date {
	color: #fff;
	text-align: center;
}

.top_date .date {
	font-family: "Dela Gothic One", sans-serif;
	line-height: 1.0;
	font-size: 6.0rem;
	margin-bottom: 10px;
}

.top_date .date span {
	font-size: 9.0rem;
}

.top_date .copy {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: bold;
	font-size: 3.5rem;
}

@media screen and (max-width: 750px) {

	.top {
		padding: 0;
		margin-bottom: 10px;
	}

	.container_mv {
		padding-bottom: 20px;
	}

	.top_date .date {
		font-size: 2.1rem;
	}

	.top_date .date span {
		font-size: 3.0rem;
	}

	.top_date .copy {
		font-size: 1.8rem;
	}
}




/* SNS
------------------------------------------------- */


.contents_sns .sns_ttl {
	font-family: "Dela Gothic One", sans-serif;
	line-height: 1.0;
	font-size: 12rem;
	color: #EDE9D0;
	text-align: center;
}


.contents_sns_inner {
	background-color: #EDE9D0;
	border-radius: 10px;
	padding: 40px 60px;
}

.sns_box {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 20px;
	margin-bottom: 20px;
}

.sns_txt{
	text-align: center;
}

.sns_txt p{
	font-size: 2.4rem;
	font-weight: 600;
	color: #020C45;
}

.sns_box-item {
	grid-column: auto / span 3;
	background-color: #fff;
	border-radius: 10px;
	border: solid 2px #F9F8EE;
	padding: 30px 0;
	text-align: center;
}

.sns_box-item img {
	width: auto;
	max-height: 60px;
}

.sns_box-item:hover {
	transform: translateY(-10px);
}


@media screen and (max-width: 750px) {
	.contents_sns .sns_ttl {
		font-size: 4.5rem;
	}

	.contents_sns_inner {
		padding: 20px;
	}

	.sns_box {
		gap: 10px;
	}

	.sns_box-item {
		grid-column: auto / span 6;
		padding: 20px 0;
	}

	.sns_box-item img {
		width: auto;
		max-height: 40px;
	}

	.sns_txt p{
		font-size: 1.6rem;
	}
}





/* INTRO
------------------------------------------------- */

.contents_intro {
	background-image: url(../images/intro_bg.png);
	background-size: 100vw auto;
	background-repeat: no-repeat;
	background-position: center;
}

.intro_txt {
	text-align: center;
}

.intro_txt p {
	font-size: 2.0rem;
	color: #56423D;
	line-height: 1.7;
	font-weight: bold;
	margin-bottom: 40px;
}

.intro_txt strong {
	font-size: 3.5rem;
	color: #56423D;
	line-height: 1.5;
	font-weight: 900;
}

.intro_txt strong span {
	color: #BB3323;
	font-size: 4.0rem;
}

@media screen and (max-width: 750px) {

	.contents_intro {
		background-size: 100vw auto;
	}

	.intro_txt p {
		font-size: 1.6rem;
		margin-bottom: 20px;
		text-align: left;
	}

	.intro_txt strong {
		font-size: 1.8rem;
		text-align: center;
	}

	.intro_txt strong span {
		color: #BB3323;
		font-size: 2.0rem;
	}
}



/* cast
------------------------------------------------- */

.contents_cast {
	background-image: url(../images/cast_bg.jpg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
}

.contents_cast-inner {
	list-style: none;
	display: flex;
	gap: 20px;
	justify-content: center;
	width: 100%;
	margin-bottom: 40px;
}

.contents_cast-inner .cast_box {
	background-image: url(../images/cast_parts-bg.jpg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	border-radius: 10px;
	padding: 20px;
	padding-bottom: 30px;
	max-width: 500px;
}

.cast_img {
	width: 100%;
	margin-bottom: 30px;
}

.cast_img img {
	border: solid 2px #BB3323;
	border-radius: 10px;
}

.cast_txt {
	text-align: center;
}

.cast_txt strong {
	font-size: 3.2rem;
	color: #BB3323;
	font-weight: 900;
	line-height: 1.0;
}

.cast_txt strong span {
	font-size: 2.4rem;
}

.cast_txt p {
	font-size: 2.4rem;
	color: #000;
	font-weight: 500;
}

@media screen and (max-width: 750px) {
	.contents_cast-inner {
		display: flex;
		flex-direction: column;
		margin-bottom: 20px;
	}

	.cast_txt strong {
		font-size: 3.0rem;
	}

	.cast_txt strong span {
		font-size: 1.8rem;
	}

	.cast_txt p {
		font-size: 2.0rem;
	}
}



/* stream
------------------------------------------------- */

h2 {
	padding: 10px 20px;
	background-color: #fff;
	border: solid 2px #020C45;
	font-size: 4.5rem;
	font-weight: 900;
	line-height: 1.0;
	width: fit-content;
	color: #020C45;
	margin-bottom: 30px;
}

.contents_stream-inner {
	margin-bottom: 60px;
}


.stream_txt {
	margin-bottom: 20px;
}

.stream_txt p {
	font-size: 1.8rem;
	color: #000;
	line-height: 1.5;
	font-weight: 500;
}

.stream_txt strong {
	font-size: 3.0rem;
	font-weight: 900;
}

.stream_link {
	font-family: "Dela Gothic One", sans-serif;
	font-size: 6.0rem;
	color: #BB3323;
	line-height: 1.0;
	position: relative;
	z-index: 2;
	padding: 0 10px;
}

.stream_link::before {
	background: #BB3323;
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	bottom: 0;
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .3s;
	z-index: -2;
}

.stream_link:hover {
	color: #fff;
}

.stream_link:hover::before {
	transform-origin: left top;
	transform: scale(1, 1);
}

.stream_logo {
	display: flex;
	gap: 35px;
}

.stream_logo img {
	width: auto;
	height: 50px;
}


@media screen and (max-width: 750px) {
	h2 {
		font-size: 3.0rem;
		margin-bottom: 15px;
	}

	.stream_txt {
		margin-bottom: 10px;
	}

	.stream_txt p {
		font-size: 1.6rem;
	}

	.stream_txt strong {
		font-size: 2.4rem;
	}

	.stream_link {
		font-size: 3.0rem;
	}

	.stream_logo img {
		width: auto;
		height: 30px;
	}
}


/* staff
------------------------------------------------- */

h3 {
	font-size: 3.0rem;
	font-weight: 900;
	color: #000;
	margin-bottom: 10px;
}

h3.--small {
	font-size: 2.4rem;
}

.contents_staff-inner {
	padding: 60px 0;
	width: 100%;
	border: solid 2px #BB3323;
	border-radius: 20px;
}

.contents_staff hr {
	border: solid 1px #BB3323;
	margin: 40px 0;
}

.staff_box {
	margin-bottom: 40px;
	height: auto;
	text-align: center;
}

.staff_box p {
	font-size: 2.0rem;
	font-weight: 500;
	color: #000;
}

@media screen and (max-width: 750px) {

	h3 {
		font-size: 2.0rem;
		margin-bottom: 0;
	}

	h3.--small {
		font-size: 1.6rem;
	}

	.contents_staff-inner {
		padding: 30px 0;
	}

	.staff_box {
		margin-bottom: 20px;
		width: 100%;
		height: auto;
	}

	.staff_box p {
		font-size: 1.6rem;
	}

	.contents_staff hr {
		border: solid 1px #BB3323;
		margin: 20px 0;
	}
}




.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;
	}
}