@charset "utf-8";
/* ------------------------------
 インタビュー詳細ページ用CSS
------------------------------ */
/* ------------------------------
 見出し・テキスト（PC）
------------------------------ */
/* -- h1 -- */
.heading {
	padding-top: 0;
	margin-bottom: 80px;
}
.heading .mainimg img:not([class^="parts"]) {
	height: 690px;
	border-radius: 20px;
	margin-top: 0;
}
/* -- h1 -- */
.contents h1:not(.heading h1) {
	font-size: 3.8rem;
	border-bottom: none;
	padding-bottom: 0;
}
.contents h1:not(.heading h1)::after {
	content: "";
	display: block;
	width: 100%;
	height: 3px;
	background: #0A7FD3;
	background: linear-gradient(90deg, rgba(10, 127, 211, 1) 0%, rgba(10, 127, 211, 1) 50%, rgba(0, 50, 123, 1) 100%);
	margin-top: 25px;
}
/* -- h2 -- */
.interviewBlock h2 {
	font-size: 3.0rem;
	border-bottom: solid 1px #999;
	padding-bottom: 20px;
	margin-bottom: 20px;
}
.interviewBlock h2::after {
	content: none;
}
.interviewBlock h2 span {
	display: block;
	font-size: 1.8rem;
	color: var(--blue-light-color);
	margin-bottom: 15px;
}
.interviewBlock h2 span::before,
.scheduleBlock h2 span::before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 14px;
    background: url(../img/icon_heading.svg) no-repeat center / 24px 8px;
    margin-right: 8px;
}
.partsImg1 {
	position: absolute;
	bottom: -125px;
	left: calc(50% + 1140px / 2 - 145px);
}
@media print, screen and (min-width: 768px) {
	/* -- h1 -- */
	.cms_block.profileBlock {
		display: flex;
		justify-content: flex-start;
		align-items: flex-end;
		width: 96.875%;
		max-width: 1860px;
		height: 690px;
		padding: 50px;
		position: absolute;
		top: 96px;
		left: 0;
		right: 0;
		margin: auto;
		z-index: 1;
	}
	.profileBlock .inBox {
		width: fit-content;
		background-color: #fff;
		border-radius: 12px;
		padding: 50px;
		margin-bottom: 0;
	}
	.cms_block.profileBlock.right {
		justify-content: flex-end;
	}
	.cms_block.profileBlock.right .partsImg1 {
		left: auto;
		right: calc(50% + 1140px / 2 + 65px);
	}
}
/* ------------------------------
 見出し・テキスト（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	/* -- h1 -- */
	.heading {
		padding-top: 20px;
		margin-bottom: 20px;
	}
	.heading .mainimg img:not([class^="parts"]) {
		height: 175px;
		border-radius: 12px;
	}
	/* -- h1 -- */
	.cms_block.profileBlock {
		position: relative;
		z-index: 1;
	}
	.cms_block.profileBlock {
		position: relative;
		z-index: 1;
	}
	.contents h1:not(.heading h1) {
		font-size: 2.8rem;
		margin-bottom: 15px;
	}
	.contents h1:not(.heading h1)::after {
		margin-top: 15px;
	}
	/* -- h2 -- */
	.interviewBlock h2 {
		font-size: 2.2rem;
		padding-bottom: 15px;
		margin-bottom: 15px;
	}
	.interviewBlock h2 span {
		font-size: 1.6rem;
		margin-bottom: 5px;
	}
	.partsImg1 {
		width: 78px;
		height: auto;
		left: auto;
		bottom: auto;
		top: -38px;
		right: 0;
	}
}
/* ------------------------------
 インタビュー（PC）
------------------------------ */
.interviewBlock:has(.interviewNo) {
	position: relative;
	z-index: 1;
}
.interviewNo {
	font-size: 7.0rem;
	margin-bottom: 0;
	right: auto;
	bottom: auto;
	top: 35px;
	left: calc(50% + 1140px / 2 + 30px);
}
.interviewNo::before {
	width: 60px;
	height: 15px;
	mask-size: 60px, 15px;
	margin-right: 15px;
	margin-bottom: 45px;
}
.inImgBlock > .cms_image,
.inImgBlock > .cms_image > img {
	border-radius: 0 12px 12px 0;
}
.inImgBlock > .cms_image > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media print, screen and (min-width: 768px) {
	.inImgBlock {
		min-height: 456px;
	}
	.inImgBlock > .cms_image {
		position: absolute;
		right: calc(50% + 22px);
		height: 456px;
	}
	.partsImgBox::before {
		content: "";
		width: 122px;
		height: 70px;
		background: url(../img/parts_interview_img02.png) no-repeat center / cover;
		position: absolute;
		bottom: -38px;
		right: calc(50% + 122px);
	}
}
@media print, screen and (min-width: 1921px) {
	.inImgBlock > .cms_image,
	.inImgBlock > .cms_image > img {
		border-radius: 12px;
	}
}
/* ------------------------------
 インタビュー（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.profile .division {
		width: 100%;
	}
	.interviewNo {
		font-size: 5.5rem;
		top: 15px;
		left: auto;
		right: -8.5%;
		z-index: -1;
	}
	.interviewNo::before {
		width: 30px;
		height: 8px;
		mask-size: 30px, 8px;
		margin-right: 13px;
		margin-bottom: 25px;
	}
	.inImgBlock > .cms_image {
		margin-left: -5.5%;
	}
}
/* ------------------------------
 スケジュール（PC）
------------------------------ */
.cms_block.scheduleBlock {
	position: relative;
	z-index: 1;
	padding: 50px;
}
.cms_block.scheduleBlock::before {
	content: "";
	width: 96.875%;
	max-width: 1860px;
	height: 100%;
	background: linear-gradient(45deg, rgba(93, 240, 254, 1) 0%, 20%, rgba(0, 50, 123, 1) 50%, 80%, rgba(10, 127, 211, 1) 100%);
	border-radius: 30px;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	z-index: -1;
}
.contents .scheduleBlock h2 {
	font-family: var(--font-family-en);
	font-size: 4.0rem;
	font-weight: normal;
	color: #fff;
}
.contents .scheduleBlock h2::after {
	content: none;
}
.contents .scheduleBlock h2 span {
	font-family: var(--font-family);
	font-size: 1.8rem;
	font-weight: bold;
	margin-left: 35px;
}
/* -- スライド -- */
.cms_block.wide > *:not(.wide).scheduleSwiper {
	position: relative;
	left: calc(50% - 1140px / 2);
	margin-left: 0;
	margin-right: 0;
}
.scheduleBlock .swiper-slide {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	width: 255px;
	height: auto;
	min-height: 260px;
	text-align: left;
	background-color: #fff;
	border-radius: 10px;
	box-shadow: var(--box-shadow);
	padding: 42px 30px;
	margin-bottom: 0;
}
.contents .scheduleBlock .swiper-slide h3 {
	width: 100%;
	font-size: 2.0rem;
	text-align: center;
	border-bottom: dashed 1px #999;
	padding-left: 0;
	padding-bottom: 15px;
	margin-bottom: 10px;
}
.contents .scheduleBlock .swiper-slide h3::before {
	content: none;
}
.scheduleBlock .swiper-slide img {
	width: 104px;
	height: 26px;
}
.scheduleBlock .swiper-slide .cms_caption_b {
	width: 100%;
	font-size: 1.6rem;
	margin-top: 0;
}
@media print, screen and (min-width: 768px) {
}
/* ------------------------------
 スケジュール（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_block.scheduleBlock {
		padding: 25px 8%;
	}
	.cms_block.scheduleBlock::before {
		width: 90%;
		max-width: unset;
		border-radius: 12px;
	}
	.contents .scheduleBlock h2 {
		font-size: 2.8rem;
	}
	.contents .scheduleBlock h2 span {
		display: block;
		margin-left: 0;
		margin-top: 10px;
	}
	/* -- スライド -- */
	.cms_block.wide > *:not(.wide).scheduleSwiper {
		left: 5%;
	}
}
/* ------------------------------
 他のインタビュー（PC）
------------------------------ */
.lowerLink.interviewLink .profile p::before {
	content: none;
}
.lowerLink.interviewLink a .interviewNo {
	position: static;
	font-size: 1.6rem;
	font-weight: normal;
	writing-mode: inherit;
}
.lowerLink.interviewLink .profile .division::after {
	bottom: 20px;
}