@charset "utf-8";
/*-----------------------------------------------------

/*  ================================================================================================

    PC TAB SP 共通パーツ

    ============================================================================================  */
		
/*general
-----------------------------------------------------*/	
.fontBold {
	font-weight:bold;
}
.textIndent {
	text-indent:-1em;
	padding-left:1em;
}
.borderTop {
	border-top: 1px solid #000;
	padding-top:100px;
}

/* セクション 余白指定
------------------------------------------------------------------ */
main section {
	padding: 80px 0;
}
/* mainHeader
------------------------------------------------------------------ */
.mainHeader {
	position: relative;
	width: 100%;
	background: #f6f7f7;
	margin-inline: auto;
}
.mainHeader .mainHeaderInner {
	width: calc(100% - 40px);
	max-width: 1200px;
	margin-inline: auto;
	padding: 190px 0 80px;
}
.mainHeader .mainHeaderInner p {
	font-size: 24px;
	padding-bottom: 20px;
}
.mainHeader .mainHeaderInner h2 {
	padding: 20px 20px 10px;
	width: fit-content;
	background: var(--story-color);
	color: #FFF;
}
/* main画像
------------------------------------------------------------------ */
.mainImageWrap {
	position: relative;
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
}
.mainImageWrap .mainImage {
	position: relative;
	z-index: 1;
}
.mainImageWrap .profileCase {
	width: 100%;
	height: 100%;
	z-index: 2;
	position: absolute;
	right: 0;
	top: 0;
	background: linear-gradient(90deg,rgba(145, 230, 245, 0) 0%,rgba(145, 230, 245, 0) 30%,rgba(145, 230, 245, 0.1) 55%,rgba(145, 230, 245, 1) 65%, rgba(145, 230, 245, 1) 100%);
}
.mainImageWrap .profileCase .profileDetail {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translate(0, -50%);
	background: rgb(255 255 255 / 0.8);
	border-radius: 14px 0 0 14px;
	padding: 50px 0 70px 40px;
	width: 46%;
}
.mainImageWrap .profileCase .profileDetail h3 {
	font-size: 34px;
	background: linear-gradient(transparent 70%, #FFFFFF 70%);
	width: fit-content;
	margin-bottom: 40px;
	padding: 0 10px;
}
.mainImageWrap .profileCase .profileDetail h4 {
	font-size: 24px;
	line-height: 1;
}
.mainImageWrap .profileCase .profileDetail h4 span.jobTitle {
	color: var(--story-color);
	display: block;
	margin-bottom: 20px;
}
.mainImageWrap .profileCase .profileDetail h4 span.nameJp {
	font-size: 30px;
	margin-right: 20px;
}
.mainImageWrap .profileCase .profileDetail h4 span.nameEn {
	font-weight: normal;
	color: #a1aab0;
	white-space: nowrap;
}

/* コンテンツ 
------------------------------------------------------------------ */
main .storyCase {
	background: #f6f7f7;
}
main .storyCaseInner {
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
}
main .storyCaseInner .storyWrap {
	margin: 80px auto;
}
main .storyCaseInner .storyWrap:last-child {
	margin-bottom: 0;
}
main .storyCaseInner .storyWrap .storyDetail {
	width: calc(100% - 40px);
	max-width: 850px;
	background: rgb(255 255 255 / 0.8);
	padding: 50px ;
	border-radius: 14px ;
}
main .storyCaseInner .storyWrap:not(:has(.storyImage)) .storyDetail {
	max-width: 900px;
	margin-inline: auto;
}
main .storyCaseInner dl.storyDetail dt {
	color: var(--story-color);
	font-weight: bold;
	font-size: 34px;
	margin-bottom: 30px;
}
main .storyCaseInner dl.storyDetail dd .voiceList {
	text-indent: -1em;
	padding-left: 1em;
	margin: 1em auto;
}

/* リンク 
------------------------------------------------------------------ */
.linkNavArea .linkNavWrap {
	background: #f6f7f7;
	width: 100%;
	max-width: 1200px;
	position: relative;
	margin: 0 auto 60px;
	padding: 100px 60px 60px;
}
.linkNavArea .linkNavWrap h3{
	position: absolute;
	top: 0;
	left: 0;
	font-weight: bold;
	font-size: 46px;
	line-height: 1;
	background: var(--story-color);
	color: #FFF;
	padding: 12px;
}
.linkNavArea .linkNavWrap .linkNavList li {
	margin-bottom: 30px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow {
	font-weight: bold;
	border: none;
	padding: 0;
	max-width: unset;
	text-align: left;
	line-height: 1;
	display: flex;
	align-items: center;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow::before {
	background: var(--story-color);
	right: 2px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow::after {
	border-top: 2px solid var(--story-color);
	border-right: 2px solid var(--story-color);
	right: 2px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.case {
	display: inline-block;
	background: var(--story-color);
	color: #FFF;
	padding: 12px 20px;
	border-radius: 4px;
	margin-right: 10px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.case .caseNum {
	padding-left: 10px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.nameJp {
	font-size: 26px;
	line-height: 1;
	white-space: nowrap;
	margin-right: 20px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.nameEn {
	font-size: 16px;
	font-weight: normal;
	color: #a1aab0;
	white-space: nowrap;
	padding-right: 30px;
}

/* pcのみスタイル
-------------------------------------------------*/
@media screen and (min-width: 768px) {
	/* pc時非表示*/
	.pcNone {
		display: none;
	}
	main .storyCaseInner .storyWrap:has(.storyImage) {
		display: flex;
		align-items: center;
		justify-content: flex-end;
	}
	main .storyCaseInner .storyWrap.reverse:has(.storyImage) {
		flex-direction: row-reverse;
	}
	main .storyCaseInner .storyWrap:has(.storyImage) .storyDetail {
		margin-right: -40px;
		z-index: 2;
	}
	main .storyCaseInner .storyWrap.reverse:has(.storyImage) .storyDetail {
		margin-left: -40px;
	}
	.linkNavArea .linkNavWrap .linkNavList {
		display: flex;
		gap: 6.6%;
	}
	.linkNavArea .linkNavWrap .linkNavList li:last-child {
		margin-bottom: 0;
	}
	.linkNavArea .linkNavWrap .linkNavList .block {
		display: flex;
		flex-direction: column;
		width: 100%;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.nameEn {
		padding-right: 30px;
	}
}

/* tablet
-------------------------------------------------*/
@media screen and (max-width: 1024px) and (min-width: 768px) {
	.mainImageWrap .profileCase .profileDetail {
		padding: 30px 0 50px 30px;
		width: 45%;
	}
	.mainImageWrap .profileCase .profileDetail h4 {
		line-height: 1.2;
	}
	main .storyCaseInner dl.storyDetail dt {
		font-size: 28px;
		margin-bottom: 20px;
	}
}
/* sp
-------------------------------------------------*/
@media screen and (max-width: 767px) {
	/* sp時非表示 */
	.spNone {
		display: none;
	}
	/* flex打消し */
	.spNoFlex {
		display: unset!important;
	}
	/* main */
	.mainHeader .mainHeaderInner {
		padding: 110px 0 40px;
	}
	.mainHeader .mainHeaderInner h2 {
		padding: 10px 10px 5px;
		line-height: 1;
	}
	.mainHeader .mainHeaderInner p {
		font-size: 20px;
		padding-bottom: 14px;
	}
	.mainImageWrap .profileCase {
		background: linear-gradient(180deg, rgba(145, 230, 245, 0) 0%, rgba(145, 230, 245, 0) 55%, rgba(145, 230, 245, 0.1) 65%, rgba(145, 230, 245, 1) 100%);
	}
	.mainImageWrap .profileCase .profileDetail {
		top: unset;
		bottom: 5%;
		transform: translate(0, 0);
		border-radius: 14px 0 0 14px;
		padding: 20px 0 40px 50px;
		width: 92%;
		max-width: 450px;
	}
	.mainImageWrap .profileCase .profileDetail h3 {
		font-size: 30px;
		margin-bottom: 17px;
	}
	.mainImageWrap .profileCase .profileDetail h4 {
		font-size: 20px;
		margin-bottom: 0;
	}
	.mainImageWrap .profileCase .profileDetail h4 span.jobTitle {
		font-size: 16px;
	}
	.mainImageWrap .profileCase .profileDetail h4 span.nameJp {
		font-size: 20px;
		margin-right: 10px;
	}
	.mainImageWrap .profileCase .profileDetail h4 span.nameEn {
		font-size: 14px;
	}
	/* section 余白設定
	------------------------------------------------------------------ */
	main section {
		padding: 40px 0;
	}
	main .storyCase {
		background: #f6f7f7;
		padding-top: 0;
	}
	/* コンテンツ 
	------------------------------------------------------------------ */
	main .storyCaseInner .storyWrap {
		margin: 40px auto;
	}
	main .storyCaseInner .storyWrap .storyDetail {
		padding: 40px 20px 50px;
		margin-inline: auto!important;
	}
	main .storyCaseInner dl.storyDetail dt {
		font-size: 20px;
		margin-bottom: 40px;
	}
	main .storyCaseInner .storyWrap .storyImage {
		margin-top: -30px;
		padding-left: 60px;
		display: flex;
		justify-content: flex-end;
	}
	main .storyCaseInner .storyWrap.reverse .storyImage {
		padding-right: 60px;
		padding-left: 0;
		justify-content: flex-start;
	}
	main .storyCaseInner .storyWrap .storyImage img {
		width: fit-content;
	}
	/* リンク 
	------------------------------------------------------------------ */
	.linkNavArea .linkNavWrap {
		padding: 100px 20px 60px;
	}
	.linkNavArea .linkNavWrap h3 {
		font-size: 36px;
	}
	.linkNavArea .linkNavWrap .linkNavList .block:last-child li:last-child {
		margin-bottom: 0;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.case {
		font-size: 14px;
		padding: 5px;
		border-radius: 3px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.nameJp {
		font-size: 18px;
		margin-right: 10px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.nameEn {
		font-size: 14px;
		padding-right: 20px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow::before {
		width: 20px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow::after {
		width: 10px;
		height: 10px;
		margin-top: -5px;
	}
}


