@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(--integrity-color);
	color: #FFF;
}
/* 共通見出し
------------------------------------------------------------------ */
.integrityTitle h3 {
	font-size: 34px;
	background: linear-gradient(transparent 70%, #dfe3e4 70%);
	width: fit-content;
	margin-bottom: 40px;
	padding: 0 10px;
}
/* case main画像
------------------------------------------------------------------ */
.mainImageArea {
	background: #FFFFFF;
}
.mainImageWrap {
	position: relative;
	width: 1200px;
	margin-inline: auto;
}
.mainImageWrap .profileDetail h4 {
	font-size: 24px;
	color: #FFFFFF;
	line-height: 1;
	background: rgb(63 138 224 / 0.8);
	padding: 40px 50px;
	border-radius: 14px;
	margin-bottom: 40px;
	display: flex;
	align-items: center;
}
.mainImageWrap .profileDetail h4 span.case {
	background: #FFFFFF;
	color: var(--integrity-color);
	padding: 20px 10px;
	border-radius: 4px;
	margin-right: 20px;
}
.mainImageWrap .profileDetail h4 span.jobTitle {
	display: block;
	font-size: 26px;
	line-height: 1.4;
	margin-right: 40px;
}
.mainImageWrap .profileDetail h4 span.jobTitle .joining {
	font-size: 18px;
}
.mainImageWrap .profileDetail h4 span.nameIn {
	font-size: 42px;
	margin-right: 50px;
}


/* 共通設定 
------------------------------------------------------------------ */
main .linkBtnArrow::before {
	background: var(--integrity-color);
}
main .linkBtnArrow::after {
	border-top: 2px solid var(--integrity-color);
	border-right: 2px solid var(--integrity-color);
}
/*  固有設定
------------------------------------------------------------------ */
/* case*/
main .integrityCase {
	background: #f6f7f7;
}
main .integrityCaseInner {
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
}
main .integrityCaseInner .integrityWrap {
	margin: 80px auto;
}
main .integrityCaseInner .integrityWrap:last-child {
	margin-bottom: 0;
}
main .integrityCaseInner .integrityWrap .integrityDetail {
	width: calc(100% - 40px);
	max-width: 750px;
	background: rgb(255 255 255 / 0.8);
	padding: 50px ;
	border-radius: 14px ;
}
main .integrityCaseInner .integrityWrap:not(:has(.integrityImage)) .integrityDetail {
	max-width: 1200px;
	margin-inline: auto;
}
main .integrityCaseInner dl.integrityDetail dt {
	font-size: 34px;
	font-weight: bold;
	color: var(--integrity-color);
	padding-bottom: 10px;
	border-bottom: 1px dotted #999;
	margin-bottom: 30px;
}
/* case リンクページ */
main .interviewLink .interviewLinkArea {
	width: 100%;
	max-width: 900px;
	margin: 80px auto 100px;
}
main .interviewLink .interviewLinkArea .interviewLinkWrap {
	display: flex;
	align-items: center;
	background: #f6f7f7;
	border-radius: 20px;
	margin-bottom: 60px;
}
main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.case {
	display: inline-block;
	background: var(--integrity-color);
	font-size: 20px;
	color: #FFF;
	padding: 15px;
	border-radius: 4px;
	margin-right: 20px;
}
main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.case .caseNum {
	padding-left: 10px;
}
main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.jobTitle {
	font-size: 24px;
	line-height: 1;
	white-space: nowrap;
	margin-right: 24px;
}
main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.joining {
	padding-right: 20px;
}
main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.nameIn {
	font-size: 40px;
	white-space: nowrap;
}
/* communication*/
main .communication .communicationArea {
	margin: 80px auto 100px;
}
main .communication .communicationWrap  {
	margin-bottom: 110px;
}
main .communication .communicationWrap.imageBox {
	display: flex;
	justify-content: space-between;
	max-width: 1050px;
	gap: 50px;
	margin-inline: auto;
}
main .communication .communicationWrap .communicationDetail h4 {
	font-size: 34px;
	color: var(--integrity-color);
	margin-bottom: 30px;
}
main .communication .communicationWrap .communicationDetail h5 {
	font-size: 18px;
	font-weight: bold;
	position: relative;
}
main .communication .communicationWrap .communicationDetail h5.icon.badge {
	padding: 20px 0 20px 42px;
}
main .communication .communicationWrap .communicationDetail h5.icon.balloon {
	padding: 20px 0 20px 52px;
}
main .communication .communicationWrap .communicationDetail h5.icon::before {
	content: "";
	background-size: 100% 100%;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translate(0px, -50%);
}
main .communication .communicationWrap .communicationDetail h5.icon.badge::before {
	background: url(../img/integrity/icon_rosette.png) no-repeat;
	width: 32px;
	height: 44px;
}
main .communication .communicationWrap .communicationDetail h5.icon.balloon::before {
	background: url(../img/integrity/icon_balloon.png) no-repeat;
	width: 42px;
	height: 31px;
}
main .communication .communicationWrap .communicationDetail p span.evaluatedPerson {
	font-size: 24px;
	font-weight: bold;
	color: var(--integrity-color);
	line-height: 1.8;
	display: block;
	margin: 1em 0;
}
main .communication .communicationWrap .communicationDetail .voiceList li {
	padding-left: 1em;
	text-indent: -1em;
}

/* atmosphere */
main .atmosphere p.mainRead {
	margin: 80px 0;
}
main .atmosphereWrap .dutiesWrap {
	width: 100%;
	margin: 20px auto ;
	padding: 10px;
	border-radius: 10px;
	background: #a1aab0;
}
main .atmosphereWrap .dutiesWrap .dutiesDetail dl {
	background: #FFFFFF;
	padding: 40px 20px;
	border-radius: 10px;
}
main .atmosphereWrap .dutiesWrap .dutiesDetail dl dt {
	font-size: 32px;
	font-weight: bold;
	color: var(--integrity-color);
	margin-bottom: 15px;
}
main .atmosphereWrap .dataWrap {
	width: 100%;
	max-width: 1200px;
	margin: 60px auto 140px;
	padding: 10px;
	border-radius: 10px;
	background: #f6f7f7;
}
main .atmosphereWrap .dataWrap .dataDetail {
	border-radius: 10px;
	margin-bottom: 10px;
}
main .atmosphereWrap .dataWrap .dataDetail:last-child {
	margin-bottom: 0;
}
main .atmosphereWrap .dataWrap .dataDetail dl {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #FFFFFF;
	padding: 40px;
	border-radius: 10px;
	gap: 40px;
}
main .atmosphereWrap .dataWrap .dataDetail dl dt {
	font-size: min(34px,3.5vw);
	font-weight: bold;
	white-space: nowrap;
	color: var(--integrity-color);
}
main .atmosphereWrap .dataWrap .dataDetail dl dd img {
	width: fit-content;
}

/* caseリンクナビ 
------------------------------------------------------------------ */
.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(--integrity-color);
	color: #FFF;
	padding: 12px 12px 6px;
}
.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(--integrity-color);
	right: 2px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow::after {
	border-top: 2px solid var(--integrity-color);
	border-right: 2px solid var(--integrity-color);
	right: 2px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.case {
	display: inline-block;
	background: var(--integrity-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.nameBox {
	display: flex;
	align-items: center;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.jobTitle {
	font-size: 18px;
	line-height: 1;
	white-space: nowrap;
	margin-right: 24px;
}
.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.nameIn {
	font-size: 26px;
	white-space: nowrap;
}

/* pcのみスタイル
-------------------------------------------------*/
@media screen and (min-width: 768px) {
	/* pc時非表示*/
	.pcNone {
		display: none;
	}
	/* case*/
	.mainImageWrap {
		padding: 60px 0 217px;
	}
	.mainImageWrap .mainImage {
		position: absolute;
		top: 60px;
		right: 130px;
		z-index: 1;
	}
	.mainImageWrap .profileDetail {
		width: min-content;
		margin: 50px 0 0 36px;
		position: relative;
		z-index: 2;
	}
	.mainImageWrap .profileDetail h4 {
		white-space: nowrap;
	}
	.mainImageWrap .profileDetail p.interview {
		width: 100%;
		padding: 0 55px 0 30px;
	}
	main .integrityCaseInner .integrityWrap:has(.integrityImage) {
		display: flex;
		align-items: center;
		justify-content: left;
		gap: 80px;
	}
	main .integrityCaseInner .integrityWrap.reverse:has(.integrityImage) {
		flex-direction: row-reverse;
	}
	main .integrityCaseInner .integrityWrap:has(.integrityImage) .integrityDetail {
		margin-right: -40px;
		z-index: 2;
	}
	main .integrityCaseInner .integrityWrap.reverse:has(.integrityImage) .integrityDetail {
		margin: 0;
	}
	main .integrityCaseInner dl.integrityDetail dt {
		width: fit-content;
	}
	/* case リンクページ */
	main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail h4 {
		display: flex;
		align-items: center;
		padding-left: 40px;
	}
	/* communication*/
	main .communication .communicationWrap {
		display: flex;
		justify-content: space-between;
		gap: 50px;
	}
	main .communication .communicationWrap.reverse {
		flex-direction: row-reverse;
	}
	main .communication .communicationWrap .communicationDetail {
		width: 57.6%;
	}
	/* atmosphere*/
	main .atmosphereWrap .dutiesWrap .dutiesDetail {
		display: flex;
		gap: 10px;
	}
	main .atmosphereWrap .dutiesWrap .dutiesDetail dl {
		width: 25%;
	}
	main .atmosphereWrap .dutiesWrap .dutiesDetail dl dd{
		font-size: 16px;
	}
	main .atmosphereWrap .dataWrap .dataDetail {
		display: flex;
		gap: 10px;
	}
	main .atmosphereWrap .dataWrap .dataDetail dl {
		width: 50%;
	}
	/* caseリンク*/
	.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.nameIn {
		padding-right: 30px;
	}
	main ul.linkList {
		display: flex;
		justify-content: space-between;
		max-width: 760px;
		margin: 60px auto;
	}
	main ul.linkList li {
		display: block;
		width: 100%;
		max-width: 340px;
	}
	main ul.linkList li a {
		line-height: 1;
	}
}

/* tablet
-------------------------------------------------*/
@media screen and (max-width: 1024px) and (min-width: 768px) {
	.mainImageWrap {
		padding: 60px 0;
		width: fit-content;
	}
	.mainImageWrap .mainImage {
		margin-right: 0;
		position: unset;
	}
	.mainImageWrap .profileDetail {
		width: min-content;
		margin: 30px auto;
	}
	.mainImageWrap .profileDetail h4 {
		padding: 30px 40px;
	}
	.mainImageWrap .profileDetail h4 span.nameIn {
		font-size: 42px;
		margin-right: 0;
	}
	.mainImageWrap .profileDetail p.interview {
		padding: 0 30px;
	}
	main .integrityCaseInner .integrityWrap:has(.integrityImage) {
		gap: 20px;
	}
	main .integrityCaseInner dl.integrityDetail dt {
		font-size: 28px;
		margin-bottom: 20px;
	}
	main .atmosphereWrap .dutiesWrap .dutiesDetail dl {
		width: 25%;
	}
	.linkNavArea .linkNavWrap .linkNavList {
		gap: 30px;
		flex-direction: column;
	}
}
/* 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 {
		display: block;
		width: calc(100% - 40px);
		margin: 0 auto;
		padding: 44px 0 60px;
	}
	.mainImageWrap .mainImage {
		margin: 0 auto;
		width: 100%;
	}
	.mainImageWrap .mainImage img {
		width: 100%;
	}
	.mainImageWrap .profileDetail {
		margin: -20px auto 0;
	}
	.mainImageWrap .profileDetail h4 {
		width: calc(100% - 15px);
		position: relative;
		font-size: 20px;
		padding: 13px 20px;
		z-index: 1;
	}
	.mainImageWrap .profileDetail h4 span.case {
		font-size: 16px;
	}
	.mainImageWrap .profileDetail h4 span.jobTitle {
		font-size: 16px;
		margin-right: 30px;
	}
	.mainImageWrap .profileDetail h4 span.nameIn {
		font-size: 28px;
		margin-right: 0;
	}
	/* section 余白設定
	------------------------------------------------------------------ */
	main section {
		padding: 40px 0;
	}
	main .integrityCase {
		background: #f6f7f7;
		padding-top: 0;
	}
	/* コンテンツ 
	------------------------------------------------------------------ */
	/* case*/
	main .integrityCaseInner .integrityWrap {
		margin: 60px auto;
	}
	main .integrityCaseInner .integrityWrap .integrityDetail {
		padding: 40px 20px 50px;
		margin-inline: auto!important;
	}
	main .integrityCaseInner dl.integrityDetail dt {
		font-size: 20px;
		margin-bottom: 40px;
	}
	main .integrityCaseInner .integrityWrap .integrityImage {
		margin-top: 60px;
		padding-left: 20px;
		display: flex;
		justify-content: flex-end;
	}
	main .integrityCaseInner .integrityWrap.reverse .integrityImage {
		padding-right: 20px;
		padding-left: 0;
		justify-content: flex-start;
	}
	main .integrityCaseInner .integrityWrap .integrityImage img {
		width: fit-content;
	}
	main .integrityCaseInner .integrityWrap.reverse.spReverse {
		display: flex;
		flex-direction: column-reverse;
		margin-bottom: 20px;
	}
	main .integrityCaseInner .integrityWrap.reverse.spReverse .integrityImage {
		margin-top: 0;
		margin-bottom: 40px;
	}

	/* case リンクページ */
	main .interviewLink .integrityTitle h3 {
		font-size: min(32px, 7.3vw);
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap {
		margin-bottom: 50px;
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap .mainImage {
		width: 30%;
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail h4 {
		margin-left: 12px;
		line-height: 1;
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.case {
		font-size: 14px;
		padding: 5px;
		border-radius: 3px;
		margin-bottom: 10px;
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.jobTitle {
		font-size: min(18px, 4.8vw);
		margin-right: 10px;
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap .profileDetail span.nameIn {
		font-size: min(30px, 8vw);
		padding-right: 20px;
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap::before {
		width: 20px;
	}
	main .interviewLink .interviewLinkArea .interviewLinkWrap::after {
		width: 10px;
		height: 10px;
		margin-top: -5px;
	}
	
	/* communication*/
	main .communication .communicationWrap {
		margin-bottom: 60px;
	}
	main .communication .communicationWrap.imageBox {
		gap: 20px;
	}
	main .communication .communicationWrap .communicationDetail h4 {
		font-size: 24px;
		margin-bottom: 20px;
	}
	main .communication .communicationWrap .communicationDetail h5.icon.badge {
		padding-top: 0;
		padding-bottom: 0;
		margin-bottom: 40px;
	}
	main .communication .communicationWrap .communicationDetail h5.icon.balloon {
		padding-top: 0;
		padding-bottom: 0;
		margin-top: 60px;
		margin-bottom: 40px;
	}
	main .communication .communicationWrap .communicationImage.pcNone {
		width: fit-content;
		margin: 30px auto;
	}

	/* atmosphere */
	main .atmosphere p.mainRead {
		margin: 100px 0 60px;
	}
	main .atmosphereWrap .dutiesWrap .dutiesDetail dl {
		padding: 30px 20px;
		margin-bottom: 10px;
	}
	main .atmosphereWrap .dutiesWrap .dutiesDetail dl:last-child {
		margin-bottom: 0;
	}
	main .atmosphereWrap .dutiesWrap .dutiesDetail dl dt {
		font-size: 20px;
	}
	main .atmosphereWrap .dataWrap {
		margin: 0 auto 100px;
		border-radius: 0;
	}
	main .atmosphereWrap .dataWrap .dataDetail dl {
		padding: 30px 20px;
		margin-bottom: 10px;
		border-radius: 20px;
		gap: 20px;
	}
	main .atmosphereWrap .dataWrap .dataDetail dl:last-child {
		margin-bottom: 0;
	}
	main .atmosphereWrap .dataWrap .dataDetail dl dt {
		font-size: 20px;
	}
	/* リンク 
	------------------------------------------------------------------ */
	.linkNavArea .linkNavWrap {
		padding: 100px 20px 60px;
	}
	.linkNavArea .linkNavWrap h3 {
		font-size: 36px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.case {
		font-size: 14px;
		padding: 5px;
		border-radius: 3px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.jobTitle {
		font-size: 14px;
		margin-right: 10px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow span.nameIn {
		font-size: 18px;
		padding-right: 20px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow::before {
		width: 20px;
	}
	.linkNavArea .linkNavWrap .linkNavList a.linkBtnArrow::after {
		width: 10px;
		height: 10px;
		margin-top: -5px;
	}
	main .entryBtn {
		margin-bottom: 60px;
	}
}


