/* ******************************************
css for corporate site v1.4

update 2026.08.30

****************************************** */

@charset "UTF-8";

@import "/assets/css/_shared.css";
@import "./multilingual.css";


/*/==========================================================
/ 
/ ヘッダ
/
==========================================================/*/

/*----------------------------------
/ 
/ 企業カラー
/
 ----------------------------------*/
:root {
	--colA1:#0072B4;
	--colA2:#CEE7F6;
	--colA3:#E4F1FA;
}

/*----------------------------------

 メインロゴ

 ----------------------------------*/
#m-hdr-logo{
	display:inline-block;
	overflow:hidden;
	position:relative;
	height:95px;
	width:min(100%,550px);
	font-size:1.8rem;
	font-weight:600;
	line-height:125%;

	align-content: end;
	padding-bottom:10px;

	background-color:#FFFFFF;
	margin-left:max(calc(50% - 600px), 0px);
	z-index:12;
}

#m-hdr-logo > *{
	position:relative;
	vertical-align:middle;
}

a#m-logoimg{
	display:inline-block;
	overflow:hidden;
	-webkit-transition: all 0.2s ease-out;
	transition: all 0.2s ease-out;
}

a#m-logoimg img{
	width:auto;
	height:55px;
}

/*a#m-logoimg:hover{
	filter:brightness(2.0);
}*/

#m-hdr-logo > span{
	display:inline-block;
	overflow:hidden;
	max-width:260px;
}


@media screen and ( max-width:1119px) {

	#m-hdr-logo{
		margin-left:0;
		padding-bottom:0;
	}

}

/* for Narroe --------------------*/
@media screen and ( max-width:979px) {
	
	#m-hdr-logo{
		display:block;
		margin:0 0;
		width:100%;
		height:65px;
		font-size:1.4rem;
		line-height:125%;
		align-content:center;
		float:none;
		-webkit-box-shadow: 0 3px 6px rgba(0,0,0,0.4);
		box-shadow: 0 3px 6px rgba(0,0,0,0.4);
	}

	a#m-logoimg img{
		width:auto;
		height:41px;
	}

}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	a#m-logo-img img{
		/**/
	}

}



/*----------------------------------

 タイトルパーツ

 ----------------------------------*/
#m-ttl{
	display:inline-block;
	position:relative;
}

#m-ttl > span{
	display:inline-block;
	position:relative;
	/*font-size:1.8rem;*/
	font-size:clamp(1.6rem, 0.009rem + 2.39vw, 1.8rem);
	font-weight:600;
	line-height:100%;
	text-align:center;
}



/*----------------------------------

 グローバル ナビ フレーム

 ----------------------------------*/
#l-global-navi{
	position:relative;
}

/* for Narrow --------------------*/
@media screen and ( max-width:979px) {
	
	#l-global-navi{
		display:block;
		overflow-y:auto;
		padding:0 2.5vw 5vw;
		width:100vw;
		height:calc(100dvh -  90px);
		position:absolute;
		top:-100vh;
		background-color: var(--colA2);
		-webkit-transition: all 0.3s ease-out;
		transition: all 0.3s ease-out;
	}

	.navon #l-global-navi{
		top:90px;
	}

	body.navon{
		overflow:hidden;
		height:100%;
	}
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

}


/*----------------------------------

 サブリンク フレーム

 ----------------------------------*/
#m-hdrlink{
	display:inline-block;
	overflow:hidden;
	font-size:1.4rem;
	/*font-weight:600;*/
	line-height:125%;
	text-align:right;
	position:absolute;
	bottom:62px;
	/*right:calc(50% - 600px);*/
	right:max(0px,calc(50% - 600px));
	z-index:13;
}

#m-hdrlink > ul{
	display:flex;
	gap:0 1.75em;
	align-items: center;
	float:left;
	margin:0.25em 2em 0.5em 0;
}


@media screen and ( max-width:1119px) {
	
	#m-hdrlink{
		right:25px;
	}

}

/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	#m-hdrlink{
		display:block;
		padding:5vw 2.5vw 2.5vw;
		text-align:left;
		position:relative;
		bottom:auto;
		right:auto;
		z-index: initial;
	}

	#m-hdrlink > ul{
		display:none;
	}

}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

}


/*----------------------------------

 スマホ用リンク

 ----------------------------------*/
#l-hdrlink-sp{
	display:none;
}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	#l-hdrlink-sp{
		display:block;
		position:relative;
		top:auto;
		right:auto;
		padding:2.5vw 5vw;
		font-size:1.4rem;
		line-height:155%;
	}

	#l-hdrlink-sp > ul{
		display:flex;
		flex-wrap: wrap;
		gap:0.25em 0;
		margin:1em 0;
		flex-direction: column;
	}

	#l-hdrlink-sp > ul > li{
		width:1050%;
	}

	#l-hdrlink-sp a{
		display:block;
		line-height:155%;
		color:#000000;
		/*overflow:hidden;*/
	}
	/*#l-hdrlink-sp a > span{
		text-decoration:underline;
	}*/

	#l-hdrlink-sp > ul > li > a::before{
		content: "\e90b";
		margin-right: 0.25em;
		color: var(--colA1);
	}
	#l-hdrlink-sp > a{
		font-weight:600;
	}
	#l-hdrlink-sp > a + a{
		margin-top:1.0em;
	}

}

/* for Sp --------------------*/
@media screen and ( max-width:768px) {

}



/*----------------------------------

 ページ操作ボタン フレーム

 ----------------------------------*/
#m-pagectr{
	display:block;
	overflow:hidden;
	position:relative;
	white-space:nowrap;
	clear:both;
}

#m-pagectr > *{
	display:inline-block;
	overflow:hidden;
	position:relative;
	vertical-align:middle;
}

#m-pagectr > ul{
	display:flex;
	gap:0 1.75em;
	margin-top:0.55em;
	font-size:1.4rem;
	/*font-weight:600;*/
	line-height:125%;
	align-items: center;
	float:left;
}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	#m-pagectr{
		/*display: inline-block;*/
		display:block;
		vertical-align: middle;
		width:calc(100% - 120px - 0.5em);
		float:right;
		vertical-align:middle;
	}

	#m-pagectr > *{
		display:block;
	}

	#m-pagectr > ul{
		display:none;
	}

}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

}




/*----------------------------------

 グローバル ナビ

 ----------------------------------*/
nav{
	display:block;
	/*overflow:hidden;*/
	clear:both;
	background-color: var(--colA1);
}

/*サブナビ用背景（PCのみ）*/
.pc{

	nav::before{
		content:"";
		display:block;
		overflow:hidden;
		background-color: rgba(0,0,0,0.22);
		width:100%;
		height:calc(100vh - 120px);
		position:fixed;
		top:121px;
		left:0;
		z-index:-1;
		-webkit-transition: all 0.25s linear;
		transition: all 0.25s linear;
		opacity:0.0;
		visibility:hidden;
		/*backdrop-filter: blur(4px);*/
	}

	nav.opn::before{
		visibility:visible;
		opacity:1.0;
	}
}

ul#l-gnav{
	display:flex;
	height:50px;
	justify-content:space-between;
}

ul#l-gnav::after{
	content:"";
	width:1px;
	height:1.4rem;
	position:absolute;
	top:calc(50% - 0.7rem);
	right:0;
	border-right:1px solid #FFFFFF;
}

ul#l-gnav > li{
	flex-grow: 1;
	/*flex:1;*/
}

ul#l-gnav > li::before{
	content:"";
	width:1px;
	height:1.4rem;
	position:absolute;
	top:calc(50% - 0.7rem);
	/*left:0;*/
	border-left:1px solid #FFFFFF;
}


ul#l-gnav > li > a{
	display:block;
	overflow:hidden;
	padding:1.25em 0;
	color:#FFFFFF;
	font-size:1.4rem;
	font-weight:600;
	/*line-height:125%;*/
	line-height:1.5em;
	text-align:center;
	position:relative;
}

/*.pc ul#l-gnav > li > a::after{
	content:"";
}*/

ul#l-gnav > li >  a > span{
	display:inline-block;
	text-decoration:none;
}
/*
.pc ul#l-gnav > li > a:hover,
.pc ul#l-gnav > li > a:hover > span{
	color:unset;
}
*/


.pc{

	body[id^="corp-"] ul#l-gnav > li:nth-child(1),
	body[id^="actv-"] ul#l-gnav > li:nth-child(2),
	body[id^="prc-"] ul#l-gnav > li:nth-child(3),
	body[id^="csr-"] ul#l-gnav > li:nth-child(4),
	body[id^="ir-"] ul#l-gnav > li:nth-child(5),
	body[id^="prs-"] ul#l-gnav > li:nth-child(6),
	body[id^="rec-"] ul#l-gnav > li:nth-child(7){
		background-color: var(--colB3);
	}

	body[id^="corp-"] ul#l-gnav > li:nth-child(1) > a,
	body[id^="corp-"] ul#l-gnav > li:nth-child(1) > a::before,
	body[id^="actv-"] ul#l-gnav > li:nth-child(2) > a,
	body[id^="actv-"] ul#l-gnav > li:nth-child(2) > a::before,
	body[id^="prc-"] ul#l-gnav > li:nth-child(3) > a,
	body[id^="prc-"] ul#l-gnav > li:nth-child(3) > a::before,
	body[id^="csr-"] ul#l-gnav > li:nth-child(4) > a,
	body[id^="csr-"] ul#l-gnav > li:nth-child(4) > a::before,
	body[id^="ir-"] ul#l-gnav > li:nth-child(5) > a,
	body[id^="ir-"] ul#l-gnav > li:nth-child(5) > a::before,
	body[id^="prs-"] ul#l-gnav > li:nth-child(6) > a,
	body[id^="prs-"] ul#l-gnav > li:nth-child(6) > a::before,
	body[id^="rec-"] ul#l-gnav > li:nth-child(7) > a,
	body[id^="rec-"] ul#l-gnav > li:nth-child(7) > a::before{
		color:#000000;
	}

}



/***********************************
 ナビアイコン
***********************************/
ul#l-gnav > li > a::before{
	display:inline-block;
	color:#FFFFFF;
	font-size: 1.5em;
	line-height:100%;
	margin-right: 0.25em;
	margin-top:-5px;
	vertical-align: middle;
}
ul#l-gnav > li:nth-child(1) > a::before{
	content: "\e909";
}
ul#l-gnav > li:nth-child(2) > a::before{
	content: "\e90c";
}
ul#l-gnav > li:nth-child(3) > a::before{
	content: "\e90d";
}
ul#l-gnav > li:nth-child(4) > a::before{
	content: "\e90e";
}
ul#l-gnav > li:nth-child(5) > a::before{
	content: "\e90f";
}
ul#l-gnav > li:nth-child(6) > a::before{
	content: "\e910";
}
ul#l-gnav > li:nth-child(7) > a::before{
	content: "\e911";
}

.pc{
	ul#l-gnav > li:hover{
		background-color:var(--colB3);
	}
	ul#l-gnav > li:hover > a,
	ul#l-gnav > li:hover > a::before,
	ul#l-gnav > li.opn > a,
	ul#l-gnav > li.opn > a::before{
		color:#000000;
	}

}


/* for Wide --------------------*/
@media screen and ( max-width:1199px) {

	ul#l-gnav > li > a{
		padding:0.5em 0;
	}

	ul#l-gnav > li > a::before{
		display:block;
		margin-right:0;
	}

}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	nav{
		background-color:unset;
	}

	ul#l-gnav{
		flex-direction:column;
		padding:0 2.5vw;
		border-top: 1px solid var(--colA1);
		border-bottom: 1px solid var(--colA1);
		height:auto;
	}

	ul#l-gnav > li::before,
	ul#l-gnav > li > a::before,
	ul#l-gnav::after{
		display:none;
	}

	ul#l-gnav > li > a{
		padding:0.75em 0;
		font-weight:600;
		color:#000000;
		text-align: left;
	}

	ul#l-gnav > li > a::after{
		content: "\f106";
		float:right;
		font-size:1.4em;
		color:var(--colA1);
	}
	ul#l-gnav > li.opn > a::after{
		content: "\f107";
	}

	ul#l-gnav > li + li{
		border-top: 1px solid var(--colA1);
	}

	ul#l-gnav > li + li{
		border-top: 1px solid var(--colA1);
	}

	ul#l-gnav > li:nth-child(4).opn .m-subnani{
		margin-bottom:15px;
	}

	.pc ul#l-gnav > li:hover{
		background-color:unset;
	}

}



/*----------------------------------

 第二階層 ナビ

 ----------------------------------*/
.m-subnani{
	display:block;
	overflow:hidden;
	margin:0 auto;
	width:100%;
	height:0;
	position:absolute;
	top:50px;
	left:0;
	padding:0 45px;
	background-color:var(--colB3);
	-webkit-transition: all 0.3s ease-in-out;
	transition: all  0.3s ease-in-out;
}

li.opn > .m-subnani{
	height:auto;
	height:240px;
	padding:30px 45px;
	-webkit-transition-delay: 0.4s;
	transition-delay: 0.4s;
}



.pc li > .m-subnani > *{
	opacity:0.0;
	-webkit-transition: all 0.3s linear;
	transition: all 0.3s linear;
}

.pc li.opn > .m-subnani > *{
	opacity:1.0;
}


.m-subnani a{
	display: inline-block;
	overflow:hidden;
	font-size:var(--txt-m);
	line-height:155%;
}

.m-subnani > p{
	display:block;
	overflow:hidden;
	padding-bottom:15px;
	border-bottom:1px solid var(--colA1);
}

.m-subnani > p a{
	font-size: var(--txt-m);
	line-height:125%;
	font-weight:600;
}
.m-subnani > p a::before{
	content: "\e90b";
	color:var(--colA1);
	margin-right:10px;
}

.m-subnani > ul{
	display:flex;
	flex-wrap:wrap;
	width:100%;
	gap:0.5em 2em;
	padding: 15px 0 15px 1em;
}

.m-subnani > ul > li > a{
	display:inline-block;
	overflow:hidden;
}
.m-subnani > ul > li > a::before{
	content: "\e90b";
	color:var(--colA1);
	margin-right:10px;
}


/*サブナビ 閉じるボタン*/
.nav-close{
	display:block;
	overflow:hidden;
	width:calc(100% - 90px);
	text-align:center;
	padding:15px 0;
	position:absolute;
	bottom: 0;
	left:50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.nav-close > a{
	display:inline-block;
	overflow:hidden;
}

.nav-close > a::after{
	content: "\e916";
	margin-left:10px;
}

ul+.nav-close{
	border-top:1px solid #B4B4B4;
}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	.m-subnani{
		display:block;
		height:auto;
		max-height:0;
		position:relative;
		top:0;
		left:0;
		padding:0 0;
		background-color:unset;
		-webkit-transition: all 0.3s ease-in-out;
		transition: all 0.3s ease-in-out;
	}

	li.opn > .m-subnani{
		height:auto;
		max-height:100vh;
		padding:0 0;
		-webkit-transition-delay:unset;
		transition-delay:unset;
	}

	.m-subnani a{
		display: block;
		font-size:var(--txt-s);
		line-height:155%;
	}

	.m-subnani > p{
		padding-bottom:0;
		border-bottom:unset;
	}

	.m-subnani > p a{
		font-size: var(--txt-s);
		line-height:125%;
	}

	.m-subnani > ul{
		padding-top:0;
		padding-left:0;
		flex-direction:column;
		margin:0.5em 1em;
		gap:0.5em 0;
	}

	.m-subnani > ul > li > a{
		display:block;
		text-indent: -1.25em;
		padding-left: 1.25em;
	}

	.nav-close{
		display:none;
	}

}




/*/==========================================================
/ 
/ ご注意
/
==========================================================/*/
.caution_box{
	
}




/*/==========================================================
/ 
/ トピックス ブロック
/
==========================================================/*/
.topics-box{
	background-color: var(--colA3);
}




/* for Sp --------------------*/
@media screen and ( max-width:768px) {

}



/*/==========================================================
/ 
/ レイアウトパーツ
/
==========================================================/*/


/*----------------------------------

 タイルグリッド

 ----------------------------------*/
*[class^='grid-tiles']{
	display:grid;
	gap:30px 30px;
	grid-template-columns: repeat(3, 1fr);
}

ul[class^='grid-tiles'] > li{
	display:block;
	text-align:center;
}

ul[class^='grid-tiles'] .shadow-box{
	width: 100%;
	height:100%;
}
ul[class^='grid-tiles'] .shadow-box:has(a.icf-roundbtn-h_c){
	padding-bottom:66px;
}
ul[class^='grid-tiles'] .shadow-box > a.icf-roundbtn-h_c{
	position:absolute;
	bottom:30px;
	left:50%;
	transform: translateX(-50%);
}


ul[class^='grid-tiles'] .shadow-box h2{
	text-align:left;
}
ul[class^='grid-tiles'] .shadow-box p,
ul[class^='grid-tiles'] .shadow-box ul{
	text-align:left;
	margin:1em 0;
}

ul[class^='grid-tiles'] .shadow-box img{
	width:min(100%,270px);
	height:auto;
}


ul[class^='grid-tiles'] > li.wide-box{
	grid-column:1/4;
	grid-row:1;
	text-align:left;
}



/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	*[class^='grid-tiles']{
		gap:var(--side-mgn-v) 0;
		grid-template-columns:1fr;
	}

	/*ul.grid-tiles > li,
	ul.grid-tiles > li:has(a.icf-roundbtn-h){
		padding:0 var(--side-mgn-h) var(--side-mgn-v);
	}*/

	ul[class^='grid-tiles'] > li > a{
		position:relative;
		bottom:auto;
		left:auto;
	}

	ul[class^='grid-tiles'] > li.wide-box{
		grid-column:1;
	}

}


ul.grid-tiles-s{
	grid-template-columns: repeat(2, 1fr);
}

/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	ul.grid-tiles-s{
		gap:var(--side-mgn-v) 0;
		grid-template-columns:1fr;
	}

}


/*/==========================================================
/ 
/ フッタ
/
==========================================================/*/

/*----------------------------------

 サイトマップ リンク

 ----------------------------------*/
#l-ft-upper{
	display:block;
	/*overflow:hidden;*/
	width: min(calc(100% - 4em),1200px);
	padding:2em 0;
	font-size:1.6rem;
	line-height:200%;
}

#l-ft-upper h3{
	font-size:var(--txt-m);
	font-weight:600;
	line-height:125%;
}

#l-ft-upper a{
	white-space:nowrap;
}

#l-ft-upper > a{
	display:inline-block;
	font-size:var(--txt-m);
	font-weight:600;
	line-height:200%;
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	footer ul{
		flex-wrap:wrap;
	}

	#l-ft-upper{
		width:100%;
		padding:0 calc(var(--side-mgn-h)*2) 6.4vw;
	}

	#l-ft-upper h3{
		margin:1.5em 0 1em;
	}

	#l-ft-upper > a{
		margin:0 0;
	}

	footer address{
		padding:0 calc(var(--side-mgn-h)*2);
	}

}




/************************************
 企業・採用情報サイト
 ************************************/
ul#m-inner-link{
	margin:1em 0 2em;
	display:grid;
	gap:1em 1em;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

ul#m-inner-link > li{
	display:inline-block;
	/*overflow:hidden;*/
}


ul#m-inner-link > li > a{
	display:inline-block;
	font-size:var(--txt-s);
	font-weight:600;
	line-height:155%;
	/*white-space:nowrap;*/
	text-indent: -1.25em;
	padding-left: 1.2em;
}

ul#m-inner-link > li > a::before{
	content: "\e90b";
	margin-right:10px;
	color:var(--colA1);
	vertical-align:middle;
}

ul#m-inner-link ul{
	font-size:var(--txt-ss);
	line-height:155%;
}

ul#m-inner-link ul > li{
	margin-left:1.5em;
	margin-top:0.75em;
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {
	ul#m-inner-link{
		padding-bottom:1.5em;
		border-bottom: 2px solid var(--colA1);
		margin:0 0 1.5em;
		gap:0.25em 0.5em;
		grid-template-columns:1fr 1fr;
		grid-template-rows:1fr 1fr 1fr 1fr;
	}

	ul#m-inner-link > li{
		display:block;
		grid-row:unset;
		width:100%;
	}

	ul#m-inner-link > li:nth-child(3),
	ul#m-inner-link > li:nth-child(4),
	ul#m-inner-link > li:nth-child(5){
		grid-column:unset;
		grid-row:unset;
	}

	ul#m-inner-link > li > ul{
		display:none;
	}

}



/************************************
 その他リンク
 ************************************/
ul#m-sub-ftLink{
	margin-bottom: 2em;
	display: flex;
	flex-wrap:wrap;
	gap: 1em 4em;
	font-size:var(--txt-s);
	line-height:155%;
}

ul#m-sub-ftLink > li > a{
	display:inline-block;
}

ul#m-sub-ftLink > li > a::before{
	content: "\e90b";
	margin-right:10px;
	color:var(--colA1);
	vertical-align:middle;
}

ul#m-sub-ftLink > li + li{
	margin-top:0;
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {
	
	ul#m-sub-ftLink{
		gap: 1em 1em;
	}

	ul#m-sub-ftLink > li{
		flex:1;
		min-width:calc(50% - 1em);
		margin-top:0;
	}

}



#l-ft-upper > a{
	line-height:155%;
}




/***********************************
 H4 コンテンツ大項目
 ***********************************/
main h4:has(span){
	display:block;
	overflow:hidden;
	font-size:var(--txt-m);
	font-weight:600;
	line-height:155%;
	position:relative;
	border-bottom: 2px solid var(--colB3);
	margin-bottom:1em;
}

main h4:has(span) + .m-indent-box{
	padding:0 1em;
}


/*****************************
 横並びコラム
 *****************************/
.side_col{
	display:flex;
	justify-content:space-between;
	gap:var(--mgn-l) var(--mgn-l);
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	.side_col{
		gap:0 0;
		flex-direction:column;
	}

}


/*****************************
 現在の進捗状況
 *****************************/
.flow-grid{
	display:flex;
	overflow:hidden;
	width:800px;
	margin:0 auto;
	gap:0 var(--mgn-l);
	counter-reset: number 0;
}

.flow-grid > ul{
	display:inline-block;
	width:calc(50% - var(--mgn-l));
}

.flow-grid > ul > li{
	counter-increment: number 1;
}

.flow-grid > ul > li > p::before{
	content: counter(number);
	float:left;
}

.flow-grid > ul > li::after{
	content:"";
	display:block;
	overflow:hidden;
	width:100%;
	height:30px;
	background:url('../../img/arrow.gif') no-repeat 50% 50%;
}

.flow-grid > ul > li:last-child::after{
	display:none;
}

.flow-grid > ul:nth-child(2) > li:first-child::before{
	content:"";
	display:block;
	overflow:hidden;
	width:100%;
	height:30px;
	background:url('../../img/arrow.gif') no-repeat 50% 50%;
}

.flow-grid > ul > li > p{
	display:block;
	overflow:hidden;
	margin:0 0;
	padding:0.5em 1em;
	text-align:center;
	border: 1px solid #666666;
	position:relative;
}
.flow-grid > ul > li > p.emphasis{
	font-weight:600;
	color:#FFFFFF;
	background-color:#FF9900;
}




/* for Narrow --------------------*/
@media screen and ( max-width:979px) {


}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	.flow-grid{
		width:100%;
		gap:0 0;
		flex-direction:column;
	}

	.flow-grid > ul{
		display:block;
		width:100%;
	}

}
