@charset "utf-8";

/* CSS INFORMATION -====================================================
File name : cast.css
Description :
===================================================================== */

/* =====================================================================
*    cast
* =================================================================== */
.cast {
	padding: calc(215 / 750 * 100%) 0 0;
}

.cast::before {
	content: '';
	position: absolute;
	background: url(../images/cast/bg_cast_sp.jpg) no-repeat center top/contain;
	width: 100%;
	height: calc(385 / 750 * 100vw);
	top: 0;
	left: 0;
	margin: calc(45 / 750 * 100%) auto 0;
}

.cast .sec_ttl {
	margin: 0 0 calc(228 / 750 * 100%);
}

.cast_box::before {
	content: '';
	position: absolute;
	background: url(../images/cast/bg_content1_sp.jpg) no-repeat right top/100% auto;
	width: 100%;
	height: calc(356 / 750 * 100vw);
	top: 0;
	right: 0;
}

.cast_box {
	padding: calc(150 / 750 * 100%) 0 calc(70 / 750 * 100%);
}

.cast_box h3 {
	text-align: right;
}

.sec_subttl {
	display: block;
	font-family: 'Playfair Display', serif;
	font-size: 9rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.15rem;
	color: #b1b0b0;
}

.sec_subttl::before {
	content: '';
	position: absolute;
	width: 60%;
	height: 1px;
	background-color: #b1b0b0;
	top: 0;
	bottom: 0;
	margin: auto;
}

.cast_box .sec_subttl::before {
	left: 0;
	width: 4.1em;
}

.sec_subttl_ja {
	display: block;
	font-size: 2.2rem;
	font-weight: 700;
	color: #5e5e5e;
	margin-top: .3em;
}

.cast_list {
	margin: calc(75 / 630 * 100%) auto 0;
}

.cast_list li:not(:last-child) {
	margin: 0 0 calc(45 / 630 * 100%);
}

.cast_list li.line::after {
	content: "";
	display: block;
	bottom: 0;
	width: 2em;
	padding-top: 2px;
	margin: calc(45/ 750 * 100%) auto 0;
	background-color: #3b3e3e;
}

.cast_list_box {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.cast_list_box dt {
	width: calc(295 / 630 * 100%);
	letter-spacing: 0.05em;
	text-align: right;
}

.cast_list_box dd {
	width: calc(310 / 630 * 100%);
	line-height: 1.7;
	letter-spacing: 0.05em;
	text-align: left;
}

.cast_box .cast_list_box dd,
.staff_box .cast_list_box dd {
	font-size: 3.2rem;
}

.cast_list_box .black {
	font-size: 3.2rem;
	color: #fff;
    padding: .02em .3em .1em;
	background-color: #000;
}

.staff_box .cast_list_box .black {
    font-size: 2.6rem!important;
}

.cast_list_box dd:not(:first-of-type) {
	margin: 0 0 0 calc(321 / 630 * 100%);
}

.cast_list_box dd small {
	font-size: 90%;
	margin-left: .5em;
	font-weight: 700;
}

@media screen and (min-width: 768px) {
	.cast {
		padding: calc(135 / 1200 * 100%) 0 0;
	}

	.cast::before {
		background: url(../images/cast/bg_cast_pc.jpg) no-repeat center/cover;
		width: 100%;
		height: calc(195 / 1200 * 100vw);
		left: 0;
		right: 0;
		margin: calc(50 / 1200 * 100%) auto 0;
	}

	.cast .sec_ttl {
		margin: 0 0 calc(119 / 1000 * 100%);
	}

	.cast .sec_ttl img {
		width: calc(670 / 1000 * 100%);
	}

	.cast .sec_subttl {
		width: calc(690 / 1000 * 100%);
		margin: 0 auto;
		font-size: 8.5rem;
	}

	.cast_box {
		padding: calc(78 / 1200 * 100%) 0;
	}

	.cast_box .sec_subttl::before {
		width: calc(640 / 1000 * 100%);
	}

	.sec_subttl_ja {
		width: calc(690 / 1000 * 100%);
		margin: 0 auto;
		font-size: 1.6rem;
	}

	.cast_box::before {
		background: url(../images/cast/bg_content1.jpg) no-repeat right top/contain;
		width: 100%;
		height: calc(378 / 1200 * 100vw);
	}

	.cast_list {
		margin: calc(45 / 1000 * 100%) auto 0;
	}

	.cast_list li:not(:last-child) {
		margin: 0 0 calc(35 / 1000 * 100%);
	}

	.cast_list li.line::after {
		margin: calc(35 / 1000 * 100%) auto 0;
	}

	.cast_list_box dt {
		width: calc(490 / 1000 * 100%);
	}

	.cast_list_box dd {
		width: calc(490 / 1000 * 100%);
	}

	.cast_box .cast_list_box dd,
	.staff_box .cast_list_box dd {
		font-size: 2.2rem;
	}

	.cast_list_box .black {
		font-size: 2.2rem;
	}

    .staff_box .cast_list_box .black {
        font-size: 1.8rem!important;
    }

	.cast_list_box dd:not(:first-of-type) {
		margin: 0 0 0 calc(510 / 1000 * 100%);
	}

	.cast_list_box dd span {
		font-size: 88%;
	}

	.cast_list li.flex {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		padding-bottom: calc(18 / 1000 * 100%);
	}

	.cast_list li.flex dl {
		width: calc(300 / 1000 * 100%);
	}

	.cast_list li.flex dt {
		width: calc(130 / 300 * 100%);
	}

	.cast_list li.flex dd {
		width: calc(130 / 300 * 100%);
	}

}

@media screen and (min-width: 1200px) {
	.cast {
		padding: 135px 0 0;
	}

	.cast::before {
		max-width: 1600px;
		max-height: 195px;
		margin: 50px auto 0;
	}

	.cast_box {
		padding: 78px 0;
	}

	.cast_box::before {
		max-height: 378px;
	}
}


/* =====================================================================
*    staff
* =================================================================== */
.staff_box {
	padding: calc(160 / 750 * 100%) 0 calc(120 / 750 * 100%);
	background-color: #f9f9f9;
}

.staff_box::before {
	content: '';
	position: absolute;
	background: url(../images/cast/bg_content2_sp.jpg) no-repeat left top/100% auto;
	width: 100%;
	height: calc(356 / 750 * 100vw);
	top: 0;
	left: 0;
}

.staff_box .sec_subttl::before {
	right: 0;
	width: 3.8em;
}

@media screen and (min-width: 768px) {
	.staff_box {
		padding: calc(60 / 1200 * 100%) 0 calc(125 / 1200 * 100%);
	}

	.staff_box::before {
		background: url(../images/cast/bg_content2.jpg) no-repeat top left/contain;
		width: 100%;
		height: calc(378 / 1200 * 100vw);
	}

	.staff_box .sec_subttl::before {
		width: calc(600 / 1000 * 100%);
	}

	.staff_box .cast_list li:not(:last-child) {
		margin: 0 0 calc(20 / 1000 * 100%);
	}
}

@media screen and (min-width: 1200px) {
	.staff_box {
		padding: 60px 0 125px;
	}

	.staff_box::before {
		max-height: 378px;
	}
}
