@charset "UTF-8";
/* CSS Document */

/* ==========================================================================
	組織概要
========================================================================== */
#ctsWrapper.overviewPage{
	padding-bottom: 0;
}
#overviewWrapper{
	padding-bottom: 60px;
}

/* 
	共通
---------------------------------------------------- */
/* 線付き箱
============================== */
.overviewBox:not(:last-of-type){
	border-bottom: 1px solid #000;
	padding-bottom: 60px;
	margin-bottom: 60px;
}
/* タイトル
============================== */
@media print, screen and (min-width:813px){
	.overviewBox .decEnTit{
		margin-bottom: 0;
	}
}
/* テーブル
============================== */
.overviewPage .baseTable{
	border-top: none;
}
.overviewPage .baseTable tr:first-of-type > *{
	padding-top: 0;
}
.overviewPage .baseTable tr:last-of-type{
	border-bottom: none;
}
.overviewPage .baseTable tr:last-of-type > *{
	padding-bottom: 0;
}
@media print, screen and (min-width:813px){
	.overviewPage .baseTable th{
		width: 130px;
	}
}

/* 
	3つのビジョン
---------------------------------------------------- */
/* タイトル
============================== */
.overviewVisionTitArea{
	display: flex;
	justify-content: space-between;
	margin-bottom: 50px;
}
.overviewVisionArea .decEnTit{
	padding-top: 40px;
}
.overviewVisionArea .decEnTit .txt1{
	text-indent: -0.18em;
	letter-spacing: -0.15em;
}
.overviewVisionArea .decEnTit .txt2{
	text-indent: -0.13em;
	letter-spacing: -0.3em;
}
/* 写真エリア
============================== */
.overviewVisionPhArea{
	width: 820px;
	height: 310px;
	position: relative;
	opacity: 1;
}
.overviewVisionPhArea img{
	position: absolute;
	opacity: 0;
}
@media print, screen and (min-width:813px){
	.overviewVisionPhArea img:nth-of-type(1){
		top: 0;
		right: 0;
	}
	.overviewVisionPhArea img:nth-of-type(2){
		top: 40px;
		left: 160px;
	}
	.overviewVisionPhArea img:nth-of-type(3){
		bottom: 0;
		left: 0;
	}
}
/* --- アニメーション --- */
.overviewVisionPhArea.jsAnmStart img:nth-of-type(2){
	animation: anmFadeIn 0.8s ease calc(var(--anmDelay) + 0.3s) forwards;
}
.overviewVisionPhArea.jsAnmStart img:nth-of-type(1){
	animation: anmFadeIn 0.8s ease calc(var(--anmDelay) + 0.5s) forwards;
}
.overviewVisionPhArea.jsAnmStart img:nth-of-type(3){
	animation: anmFadeIn 0.8s ease calc(var(--anmDelay) + 0.5s) forwards;
}
/* リスト
============================== */
.overviewVisionList{
	display: flex;
}
.overviewVisionList li{
	width: 400px;
	padding-inline: 35px;
}
@media print, screen and (min-width:813px){
	.overviewVisionList li:not(:last-of-type){
		border-right: 1px solid var(--clrBlack15);
	}
	.overviewVisionList li:first-of-type,
	.overviewVisionList li:last-of-type{
		width: 370px;
	}
	.overviewVisionList li:first-of-type{
		padding-left: 0;
	}
	.overviewVisionList li:last-of-type{
		padding-right: 0;
	}
}
/* --- タイトル --- */
.overviewVisionListTit{
	text-align: center;
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 125%;
	margin-bottom: 12px;
}
.overviewVisionListTit .num{
	display: block;
	color: var(--clrMRed);
	font-size: 3rem;
	font-family: var(--fEn);
	font-weight: 500;
	line-height: 90%;
	margin-bottom: 10px;
}
/* --- 本文 --- */
.overviewVisionListTxt{
	text-align: justify;
}

/* 
	経営方針 / 沿革 共通
---------------------------------------------------- */
.overviewPolicyArea,
.overviewHistoryArea{
	display: flex;
	justify-content: space-between;
}
.overviewPolicyList,
.overviewHistoryArea .baseTable{
	width: 760px;
}

/* 
	経営方針
---------------------------------------------------- */
/* リスト
============================== */
.overviewPolicyList{
	display: flex;
	flex-direction: column;
	gap: 40px 0;
}
/* --- タイトル --- */
.overviewPolicyListTit{
	color: var(--clrMRed);
	font-size: 2rem;
	font-weight: 500;
	line-height: 130%;
	margin-bottom: 10px;
}
/* --- 本文 --- */
.overviewPolicyListTxt{
	text-align: justify;
}

/* 
	沿革
---------------------------------------------------- */
/* タイトル
============================== */
#overviewProfileWrapper .decEnTit{
	text-align: center;
}
/* テーブル
============================== */
#overviewProfileWrapper{
	background-color: var(--clrLGray);
	padding-block: 60px 80px;
}
.overviewProfileArea {
	width: 900px;
	margin: 0 auto;
}
.overviewProfileArea .txt {
	margin-top: 5px;
	text-align: right;
}
.verviewProfileBgBox{
	background-color: #fff;
	padding: 30px;
}


/* ==========================================================================
	数字で見るJOHNAN
========================================================================== */
/* 
	レイアウト_配置
---------------------------------------------------- */
.numbersArea{
	display: flex;
	justify-content: space-between;
	gap: 0;
	padding: 60px 0;
	border-bottom: 1px solid #000;
	position: relative;
	opacity: 1;
}
.numbersArea:has(.titNumbers){	
	padding-top: 0;
}
.numbersArea:first-of-type{
	padding-top: 30px;
}
.numbersArea.last{
	margin-bottom: 60px;
	border-bottom-width: 5px;
}
.numbersArea:last-of-type{
	padding-bottom: 0;
	border-bottom: none;
}

/* 各項目
============================== */
.titNumbers,.numbersBox{
	width: 510px;
	position: relative;
}
.numbersBox:nth-child(n+2)::before{
	content: ' ';
	display: block;
	width: 1px;
	height: 100%;
	background-color: #000;
	position: absolute;
	top: 0;
	left: -60px;
}
.numbersBox{
	display: flex;
	flex-direction: column;
	row-gap: 10px;
}
@media print, screen and (min-width:813px){
	/* 3カラム
	============================== */
	.numbersArea.col3 .numbersBox{
		width: 340px;
	}
	.numbersArea.col3 .numbersBox:nth-child(n+2)::before{
		left: -30px;
	}
}

/* 
	大見出し
---------------------------------------------------- */
.titNumbers{
	align-self: flex-start;
	width: 370px;
	min-height: 250px;
	padding-top: 40px;
	position: relative;
}
.titNumbers::before{
	content: ' ';
	display: block;
	width: calc(100vw - 200px);
	height: 100%;
	background-color: var(--clrMRed);
	position: absolute;
	top: 0;
	right: 0;
}
.titNumbers .horizTxt{
	font-size: 5rem;
	color: #fff;
	line-height: 110%;
}

/* 
	飾り画像
---------------------------------------------------- */
.numbersArea[class*="itemPh"]::after{
	content: ' ';
	display: block;
	position: absolute;
}
.numbersArea.itemPh01::after{
	width: 360px;
	height: 300px;
	background: url(../images/ph_numbers01_pc.png) left top / contain no-repeat;
	bottom: 0;
	left: 250px;
	opacity: 0;
}
.numbersArea.itemPh02::after{
	width: 455px;
	height: 270px;
	background: url(../images/ph_numbers02_pc.png) left top / contain no-repeat;
	bottom: -6px;
	left: 155px;
	opacity: 0;
}
.numbersArea[class*="itemPh"].jsAnmStart::after{
	animation: anmFadeUp var(--anmDuration) var(--anmBaseCB) var(--anmDelay) forwards, var(--anmFadeIn);
}

/* 
	各項目
---------------------------------------------------- */
/* 見出し
============================== */
.numbersBox .tit{
	width: fit-content;
	min-width: 180px;
	padding: 5px 18px 8px 18px;
	font-size: 1.8rem;
	font-weight: 500;
	color: #fff;
	text-align: center;
	line-height: 100%;
	background-color: #000;
}
/* 本文
============================== */
.numbersBox .txt{
	margin-top: 18px;
	text-align: justify;
}
/* 数値
============================== */
.numbersBox .num{
	margin-top: 10px;
	font-family: var(--fEn);
	font-size: 12rem;
	font-weight: 500;
	text-align: center;
	line-height: 100%;
}
.numbersBox .unit{
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 100%;
}
@media print, screen and (min-width:813px){
	/* 文字サイズ_大 */
	.numbersArea:has(.titNumbers) .num{
		font-size: 22rem;
	}
	.numbersArea:has(.titNumbers) .numbersBox .unit{
		font-size: 3.8rem;
	}
}
/* 2カラム
============================== */
.numbersBox .col2Box{
	display: flex;
	justify-content: space-between;
}
.numbersBox .col2Box .txt{
	width: 180px;
}
/* 注釈
============================== */
.noteTxt,.noteYear{
	font-size: 1.3rem;
	color: var(--clrDGray);
}
.noteTxt{
	padding-left: 1em;
	text-indent: -1em;
}
.noteYear{
	margin: auto 0 0 0;
	text-align: right;
}

/* 円グラフ / 女性の割合
============================== */
.numbersBox figure{
	text-align: center;
}
.numbersBox .num.woman{
	padding-top: 40px;
}



/* ==========================================================================
	トップ座談会
========================================================================== */
/* kv画像
============================== */
.topCrosstalkPage {
	overflow: hidden;
}
.topCrosstalkPage .kvImg {
	width: 100%;
	margin-bottom: 30px;
}

/* タイトル箱
============================== */
.topCrosstalkPage .lineBtmTit .preQuote {
	margin-left: -10px;
}
.topCrosstalkMainTitBox {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center; 
	margin-bottom: 70px;
}
.topCrosstalkMainTitBox .mainTit {
	font-size: 6rem;
	line-height: 1.2;
	color: var(--clrMRed);
	margin-bottom: 20px;
}
.topCrosstalkMainTitBox .subTit {
	position: relative;
	font-size: 2.5rem;
	font-weight: 400;
	margin-bottom: 10px;
}
.topCrosstalkMainTitBox .subTit::before,
.topCrosstalkMainTitBox .subTit::after,
[class^="topCrosstalkTalkBox"] .tit::before{
	position: absolute;
	content: "";
	width: 50px;
	height: 1px;
	background-color: #000;
	top: 50%;
	transform: translate(-50%);
}
.topCrosstalkMainTitBox .subTit::before {
	height: 2px;
	left: -35px;
}
.topCrosstalkMainTitBox .subTit::after {
	height: 2px;
	right: -83px;
}
.topCrosstalkPage .txt {
	font-size: 1.7rem;
    line-height: 200%;
    letter-spacing: 0.15rem;
}

/* クロストーク
============================== */
[class^="topCrosstalkTalkBox"] {
	position: relative;
	margin-bottom: 70px;
}
[class^="topCrosstalkTalkBox"]:last-child {
	margin-bottom: 0px;
}
[class^="topCrosstalkTalkBox"]::before {
	position: absolute;
	content: "";
	width: 490px;
	height: 380px;
}
.topCrosstalkTalkBoxPhNone::before  {
	display: none;
}
[class^="topCrosstalkTalkBox"] .spImg{
	display: none;
}
[class^="topCrosstalkTalkBox"] .readBox {
	text-align: justify;
}
[class^="topCrosstalkTalkBox"] .tit {
	position: relative;
	font-size: 4.4rem;
	line-height: 1.15;
	color: var(--clrMRed);
	margin:  0 0 30px 110px;
}
[class^="topCrosstalkTalkBox"] .tit::before {
	width: 100px;
	top: 25%;
	left: -60px;
}
.topCrosstalkTalkBoxPhLeft02 .tit::before {
	top: 16%;
}
[class^="topCrosstalkTalkBox"] .txtArea {
	width: 680px;
}
[class^="topCrosstalkTalkBox"] .txtArea .txt {
	display: flex;
	align-items: baseline;
	margin-bottom: 30px;
	gap: 5px;
}
[class^="topCrosstalkTalkBox"] .txtArea .txt:last-child {
	margin-bottom: 0px;
}
[class^="topCrosstalkTalkBox"] .txtArea .name {
    display: inline-block;
    text-align: center;
	font-size: 1.3rem;
	font-weight: 500;
    line-height: 1.8;
    background-color: var(--clrLGray);
    min-width: 65px;
    border-radius: 30px;
    margin-inline: 10px;
}
.topCrosstalkTalkBoxPhNone .preQuote {
	margin-left: -2px;
}

/* --- 画像左 --- */
[class^="topCrosstalkTalkBoxPhLeft0"] {
	display: flex;
	justify-content: end;
}
[class^="topCrosstalkTalkBoxPhLeft0"]::before {
	background: url(../images/ph_top-crosstalk_talk01_pc.png) no-repeat center center / cover;
	top: 30px;
	left: -90px;
}
.topCrosstalkTalkBoxPhLeft02::before {
	background: url(../images/ph_top-crosstalk_talk03_pc.png) no-repeat center center / cover;
}
/* --- 画像右 --- */
.topCrosstalkTalkBoxPhRight01::before {
	background: url(../images/ph_top-crosstalk_talk02_pc.png) no-repeat center center / cover;
	top: 30px;
	right: -90px;
}
/* --- 画像なし --- */
.topCrosstalkTalkBoxPhNone .txtArea {
	width: 100%;
}



@media screen and (max-width:812px){
	/* ==========================================================================
		組織概要
	========================================================================== */
	#overviewWrapper{
		padding-bottom: 40px;
	}

	/* 
		共通
	---------------------------------------------------- */
	/* 線付き箱
	============================== */
	.overviewBox:not(:last-of-type){
		padding-bottom: 40px;
		margin-bottom: 40px;
	}

	/* 
		3つのビジョン
	---------------------------------------------------- */
	/* タイトル
	============================== */
	.overviewVisionTitArea .decEnTit{
		margin-bottom: 0;
	}
	.overviewVisionTitArea{
		flex-direction: column;
		margin-bottom: 30px;
	}
	.overviewVisionArea .decEnTit{
		padding-top: 0;
	}
	/* 写真エリア
	============================== */
	.overviewVisionPhArea{
		width: 100%;
		height: auto;
		margin-top: -20px;
	}
	.overviewVisionPhArea img{
		display: block;
		position: relative;
	}
	.overviewVisionPhArea img:nth-of-type(1){
		width: 30%;
		margin-left: auto;
		z-index: 1;
	}
	.overviewVisionPhArea img:nth-of-type(2){
		width: 80%;
		margin: -60px auto -25px auto;
		z-index: 0;
	}
	.overviewVisionPhArea img:nth-of-type(3){
		width: 40%;
		z-index: 2;
	}
	/* リスト
	============================== */
	.overviewVisionList{
		flex-direction: column;
	}
	.overviewVisionList li{
		width: 100%;
		padding-inline: 0;
	}
	.overviewVisionList li:not(:last-of-type){
		border-bottom: 1px solid var(--clrBlack15);
		padding-bottom: 20px;
		margin-bottom: 20px;
	}
	/* --- タイトル --- */
	.overviewVisionListTit{
		font-size: 2rem;
	}
	.overviewVisionListTit .num{
		font-size: 2.2rem;
	}

	/* 
		経営方針 / 沿革 共通
	---------------------------------------------------- */
	.overviewPolicyArea,
	.overviewHistoryArea{
		flex-direction: column;
	}
	.overviewPolicyList,
	.overviewHistoryArea .baseTable{
		width: 100%;
	}

	/* 
		経営方針
	---------------------------------------------------- */
	/* リスト
	============================== */
	.overviewPolicyList{
		gap: 30px 0;
	}
	/* --- タイトル --- */
	.overviewPolicyListTit{
		font-size: 1.6rem;
		margin-bottom: 8px;
	}

	/* 
		沿革
	---------------------------------------------------- */
	/* テーブル
	============================== */
	#overviewProfileWrapper{
		padding-block: 50px 40px;
	}
	.overviewProfileArea {
		width: 100%;
	}
	.verviewProfileBgBox{
		padding: 20px 15px;
	}



	/* ==========================================================================
		数字で見るJOHNAN
	========================================================================== */
	/* 
		レイアウト_配置
	---------------------------------------------------- */
	.numbersArea{
		flex-direction: column;
		gap: 0;
		padding: 0;
		border-bottom: none;
	}
	.numbersArea:has(.titNumbers){	
		padding-top: 0;
	}
	.numbersArea.last{
		margin-bottom: 40px;
	}
	.numbersArea:last-of-type{
		padding-bottom: 0;
		border-bottom: none;
	}

	/* 各項目
	============================== */
	.titNumbers,.numbersBox{
		width: 100%;
	}
	.numbersBox:nth-child(n+2)::before{
		display: none;
	}
	.numbersBox{
		padding-block: 30px 28px;
		border-bottom: 1px solid #000;
	}
	.numbersArea:last-of-type .numbersBox:last-of-type {
		padding-bottom: 0;
		border-bottom: none;
	}

	/* 
		大見出し
	---------------------------------------------------- */
	.titNumbers{
		width: fit-content;
		min-width: calc(100% - 50px);
		min-height: 140px;
		padding: 20px 20px 20px 0;
	}
	.titNumbers::before{
		width: calc(100vw - 50px);
	}
	.titNumbers .horizTxt{
		font-size: 3.6rem;
	}

	/* 
		飾り画像
	---------------------------------------------------- */
	.numbersArea.itemPh01::after{
		width: 132px;
		height: 110px;
		background-image: url(../images/ph_numbers01_sp.png);
		bottom: auto;
		left: auto;
		top: 50px;
		right: 0;
	}
	.numbersArea.itemPh02::after{
		width: 194px;
		height: 115px;
		background-image: url(../images/ph_numbers02_sp.png);
		bottom: auto;
		left: auto;
		top: 55px;
		right: 0;
	}

	/* 
		各項目
	---------------------------------------------------- */
	/* 見出し
	============================== */
	.numbersBox .tit{
		width: fit-content;
		min-width: 180px;
		font-size: 1.6rem;
	}
	/* 本文
	============================== */
	.numbersBox .txt{
		margin-top: 5px;
	}
	/* 数値
	============================== */
	.numbersBox .num{
		margin-top: 5px;
		font-size: 7rem;
	}
	.numbersBox .unit{
		font-size: 2.2rem;
	}
	/* 2カラム
	============================== */
	.numbersBox .col2Box{
		flex-direction: column-reverse;
		gap: 20px 0;
	}
	.numbersBox .col2Box .txt{
		width: 100%;
	}
	.numbersBox .pic{
		margin-block: 15px -5px;
	}
	/* 注釈
	============================== */
	.noteTxt,.noteYear{
		font-size: 1.2rem;
	}
	/* 円グラフ / 女性の割合
	============================== */
	.numbersBox figure{
		text-align: center;
	}
	.numbersBox .num.woman{
		padding-top: 0;
	}



	/* ==========================================================================
		トップ座談会
	========================================================================== */
	/* kv画像
	============================== */
	.topCrosstalkPage .kvImg {
		width: 100%;
		margin-bottom: 0;
	}

	/* タイトル箱
	============================== */
	.topCrosstalkMainTitBox {
		align-items: flex-start;
		text-align: left;
		margin-top: -15px;
		margin-bottom: 20px;
	}
	.topCrosstalkMainTitBox .mainTit {
		font-size: 3rem;
		margin-bottom: 10px;
	}
	.topCrosstalkMainTitBox .subTit {
		font-size: 1.8rem;
		line-height: 1.3;
		margin-bottom: 7px;
	}
	.topCrosstalkMainTitBox .subTit::before,
	.topCrosstalkMainTitBox .subTit::after,
	[class^="topCrosstalkTalkBox"] .tit::before{
		width: 25px;
		top: 25%;
	}
	.topCrosstalkMainTitBox .subTit::after {
        top: 73%;
        right: -42px;
	}
	.topCrosstalkMainTitBox .subTit::before {
		display: none;
	}
	.topCrosstalkPage .txt {
        font-size: 1.5rem;
        line-height: 170%;
        letter-spacing: 0.1rem;
		text-align: justify;
	}
	.topCrosstalkMainTitBox .preQuote {
		margin-left: -16px;
	}

	/* クロストーク
	============================== */
	[class^="topCrosstalkTalkBox"] {
		margin-bottom: 10px;
	}
	[class^="topCrosstalkTalkBox"]:last-child {
		margin-bottom: 0px;
	}
	[class^="topCrosstalkTalkBox"] .spImg{
		display: block;
		margin-bottom: 15px;
	}
	[class^="topCrosstalkTalkBox"] .tit {
		font-size: 2.8rem;
		margin:  0 0 15px 0;
	}
	[class^="topCrosstalkTalkBox"] .tit::before {
        width: 300px;
        top: 17%;
        left: -155px;
	}
	.topCrosstalkTalkBoxPhLeft01 .tit::before {
		top: 25%;
	}
	[class^="topCrosstalkTalkBox"] .txtArea {
		width: 100%;
	}
	[class^="topCrosstalkTalkBox"] .txtArea .txt {
		margin-bottom: 12px;
		gap: 10px;
	}
	[class^="topCrosstalkTalkBox"] .txtArea .txt:last-child {
		margin-bottom: 0px;
		gap: 7px;
	}
	[class^="topCrosstalkTalkBox"] .txtArea .name {
		font-size: 1rem;
		line-height: 2;
		min-width: 50px;
		margin-inline: 0;
	}

	/* --- 画像左 --- */
	[class^="topCrosstalkTalkBoxPhLeft0"] {
		justify-content: end;
	}
	[class^="topCrosstalkTalkBoxPhLeft0"]::before {
		display: none;
	}
	.topCrosstalkTalkBoxPhLeft02::before {
		display: none;
	}
	/* --- 画像右 --- */
	.topCrosstalkTalkBoxPhRight01::before {
		display: none;
	}
}