@charset "UTF-8";


/*
	[new module] - label -
----------------------------------------------------------------------------- */
.photo_label{
	background-color: #053250;
	font-size: 12px;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-decoration: none;
	width: 65px;
	height: 20px;
	border-radius: 10px;
	color: #FFFFFF !important;
	margin: 0 15px;
	vertical-align: middle;
	display: inline-block;
	text-align: center;
	padding: 3px 0 0;
}
@media screen and (max-width: 767px) {
	.photo_label{
		font-size: 10px;
		width: 60px;
		margin: 0 10px;
		padding: 4px 0 0;
	}
}


/*
	unique layout
----------------------------------------------------------------------------- */
.layout-box_01{
	overflow: hidden;
	margin: 0 0 40px;
	background-color: #053250;
	border-radius: 20px;
	min-height: 220px;
}
.layout-box_01 > div{
	overflow: hidden;
	background: url(/profile/img/bg_01.png) no-repeat right 0;
	background-size: contain;
	height: 100%;
}
.layout-box_01 .left{
	float: left;
	width: 75.5%;
	padding: 4% 3% 0;
}
.layout-box_01 .left .title{
	color: #FFFFFF;
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0.05em;
	margin: 0 0 4%;
}
.layout-box_01 .left .title strong{
	font-size: 18px;
	display: block;
	margin: 0 0 3%;
}
.layout-box_01 .left p + p{
	margin: 0;
	   text-align: center;
}
.layout-box_01 .left a{
	color: #FFFFFF;
	text-decoration: none;
}
.layout-box_01 .left p + p a{
	display: inline-block;
	margin: 0 auto;
	min-width: 240px;
	max-width: 100%;
	height: 40px;
	padding: 7px 0;
	border: 1px solid #FFFFFF;
	border-radius: 20px;
	text-align: center;
	font-size: 14px;
}
.layout-box_01 .left p + p a span{
	position: relative;
	display: inline-block;
	padding: 0 20px 0 0;
}
.layout-box_01 .left p + p a span:after{
	position: absolute;
	top: 50%;
	right: 0;
	width: 13px;
	height: 12px;
	margin-top: -7px;
	background: url(/common/images/icon_download.svg) no-repeat center;
	background-size: 13px auto;
	content: "";
}
.layout-box_01 .right{
	float: right;
	width: 24.5%;
	text-align: center;
	padding: 3% 2% 0;
}
.layout-box_01 .right a{
	color: #FFFFFF;
	line-height: 1.4;
	display: inline-block;
	font-size: 12px;
	text-decoration: none !important;
	padding-right: 20px;
	text-decoration: underline;
	background: url(/common/images/icon_other_link02_w.svg) 100% 50% no-repeat;
	background-size: 13px 11px;
}
.layout-box_01 .left a:hover,
.layout-box_01 .right a:hover{
	opacity: .7;
}
@media screen and (max-width: 995px) {
	.layout-box_01 .left .title{
		font-size: 13px;
	}
	.layout-box_01 .left .title strong{
		font-size: 16px;
	}
	.layout-box_01 .left a{
		width: 210px;
		font-size: 13px;
	}
}
@media screen and (max-width: 767px) {
	.layout-box_01{
		margin: 0 0 30px;
		min-height: 170px;
	}
	.layout-box_01 > div{
		overflow: hidden;
		background: url(/profile/img/b.png) no-repeat right 0;
		background-size: contain;
		height: 100%;
	}
	.layout-box_01 .left{
		width: 68%;
		padding: 5.797% 5.797% 0;
	}
	.layout-box_01 .left .title{
		font-size: 10px;
		list-style: 1.7;
	}
	.layout-box_01 .left .title strong{
		font-size: 12px;
		margin: 0 0 2%;
	}
	.layout-box_01 .left p + p a{
		width: 100%;
		min-width: auto;
		max-width: 100%;
		height: 30px;
		padding: 5px 0;
		font-size: 10px;
	}
	.layout-box_01 .left p + p a span{
		padding: 0 15px 0 0;
	}
	.layout-box_01 .right{
		float: right;
		width: 32%;
		text-align: center;
		padding: 5.797% 5.797% 0;
	}
	.layout-box_01 .right img{
		width: 70px;
	}
	.layout-box_01 .right a{
		font-size: 10px;
		padding-right: 20px;
		text-decoration: underline;
		background: url(/common/images/icon_other_link02_w.svg) 100% 50% no-repeat;
		background-size: 13px 11px;
	}
}


.layout-banner_01{
	margin-bottom: 40px;
}
.layout-banner_01 a{
	display: flex;
	width: 100%;
	background: #fff;
	border: 1px solid #eeeeee;
	text-decoration: none !important;
}
.layout-banner_01 dl{
	width: 50%;
	color: #053250;
	text-align: center;
	padding: 50px 5px 0;
}
.layout-banner_01 dl.layout-text_02{
	padding: 7.692% 5px 0;
}
.layout-banner_01 dl.layout-text_03{
	padding: 2.564% 5px 0;
}
.layout-banner_01 dl dt{
	font-size: 36px;
	line-height: 1.5;
	letter-spacing: 0.15em;
}
.layout-banner_01 dl dt span{
	margin: 7px 0 0;
	display: block;
	font-size: 15px;
	letter-spacing: 0.1em;
}
.layout-banner_01 dl dd{
	padding-top: 3.4%;
}
.layout-banner_01 dl dd span{
	position: relative;
	display: block;
	max-width: 240px;
	margin: 0 auto;
	height: 40px;
	padding-top: 12px;
	letter-spacing: 0.05em;
	border: 1px solid #053250;
	border-radius: 40px;
	text-align: center;
	font-size: 14px;
	line-height: 1;
}
.layout-banner_01 dl dd span:after{
	position: absolute;
	top: 50%;
	right: 22px;
	width: 7px;
	height: 7px;
	margin-top: -4px;
	border-right: 1px solid #053250;
	border-bottom: 1px solid #053250;
	transform: rotate(-45deg);
	content: "";
}
.layout-banner_01 a > p{
	text-align: center;
	font-size: 24px;
	line-height: 1.8;
	color: #fff;
	background-position: right 0;
	background-size: contain;
	background-repeat: no-repeat;
	margin: 0;
	width: 50%;
	width: -webkit-calc(50% + 2.04px);
	width: -moz-calc(50% + 2.04px);
	width: -ms-calc(50% + 2.04px);
	width: calc(50% + 2.04px);
}
.layout-banner_01 a > p img{
	vertical-align: middle;
}
.layout-banner_01 a > p.image01{	background-image: url(/profile/img/top_banner01.jpg);	}
.layout-banner_01 a > p.image02{	background-image: url(/csr/img/sreport_banner01.jpg);	}
/*.layout-banner_01 a > p.image03{	background-image: url(/profile/img/gallery_banner01.jpg);	}*/

/* hover */
.layout-banner_01 a:hover{
	box-shadow: 0 0 10px rgba(0,0,0,0.15);
	opacity: 0.85;
}
@media screen and (max-width: 1169px) {
	.layout-banner_01 dl.layout-text_03 dt{
		font-size: 30px;
	}
}
@media screen and (max-width: 995px) {
	.layout-banner_01 dl dt{
		font-size: 30px;
	}
	.layout-banner_01 dl dt span{
		font-size: 12px;
	}
	.layout-banner_01 dl dd span{
		font-size: 12px;
		max-width: 210px;
	}
	.layout-banner_01 dl.layout-text_03 dt{
		font-size: 22px;
	}
}
@media screen and (max-width: 767px) {
	.layout-banner_01{
		margin-bottom: 35px;
	}
	.layout-banner_01 img.sp-view{
		margin: auto;
	}
	.layout-banner_01 a{
		flex-flow: column-reverse;
	}
	.layout-banner_01 dl{
		width: 100%;
		height: auto;
		text-align: center;
		padding: 30px 5px;
	}
	.layout-banner_01 dl.layout-text_02{
		padding: 30px 5px;
	}
	.layout-banner_01 dl.layout-text_03{
		padding: 30px 5px;
	}
	.layout-banner_01 dl dt{
		font-size: 22px;
		line-height: 1.2;
	}
	.layout-banner_01 dl dt span{
		font-size: 10px;
	}
	.layout-banner_01 dl dd{
		padding-top: 13px;
	}
	.layout-banner_01 dl dd span{
		width: 180px;
		height: 30px;
		padding-top: 9px;
		border-radius: 30px;
		font-size: 10px;
	}
	.layout-banner_01 dl dd span:after{
		top: 50%;
		right: 12px;
		width: 5px;
		height: 5px;
		margin-top: -3px;
	}
	.layout-banner_01 a > p{
		width: 100%;
		font-size: 16px;
	}
}

.ecoroji_main{
	margin: 40px 0 60px;
	padding: 0 180px 20px;
	position: relative;
}
.ecoroji_txt{
	text-align: center;
	font-size: 20px;
	line-height: 2;
}
.ecoroji_img{
	position: absolute;
	top: 0;
	right: 0;
}
@media screen and (max-width: 767px) {
	.ecoroji_main{
		margin: 20px 0 30px;
		padding: 0 0 20px;
	}
	.ecoroji_txt{
		text-align: left;
		font-size: 14px;
		line-height: 2;
	}
	.ecoroji_img{
		margin: 20px 0 0;
		text-align: center;
		position: static;
	}
}



/* ------------------------------------------------------------------------

	module - add styles -

----------------------------------------------------------------------------- */
#main figure img.img-center{
	margin: auto;
}


/* メインビジュアル
----------------------------------------------------------------------------- */
#main_ph .ttl-visual__btn{
	width: 370px;
	max-width: 100%;
}
#main_ph .ttl-visual__btn a{
	padding-top: 22px;
	height: 60px;
	font-weight: normal;
	font-size: 16px;
}
#main_ph .ttl-visual__btn a::after{
	right: 25px;
	width: 11px;
	height: 11px;
	margin-top: -6px;
}
#main_ph .ttl-visual__btn.def{
	width: 240px;
}
#main_ph .ttl-visual__btn.def a{
	padding-top: 12px;
	height: 40px;
	font-size: 14px;
}
@media screen and (max-width: 767px) {
	#main_ph .ttl-visual.posi2{
		top: calc(50% - 50px);
	}
	#main_ph .ttl-visual__btn{
		width: 140px;
	}
	#main_ph .ttl-visual__btn a{
		padding-top: 7px;
		height: 25px;
		font-size: 10px;
	}
	#main_ph .ttl-visual__btn a::after{
		right: 12px;
		width: 5px;
		height: 5px;
		margin-top: -3px;
	}
}


/* 遷移ボタン
----------------------------------------------------------------------------- */
a.btn-type-arrow + a.btn-type-arrow{
	margin: 0 0 0 25px;
}
.btn-type-arrow.bg-col00:hover{
	background-color: #053250 !important;
}
@media screen and (max-width: 767px) {
	a.btn-type-arrow + a.btn-type-arrow{
		margin: 10px auto 0;
	}
}
/* 企業情報トップお知らせボタン部分 */
.btn-wrap02--profile > li {
	margin: 0 5px 10px!important;
	display: inline-block;
}
@media screen and (min-width: 768px) {
	.btn-wrap02--profile > li{
		max-width:calc(100% / 3 - 15px);
	}
}


/* 画像 + テキストリンク（PC：4カラム/SP：2カラム）
----------------------------------------------------------------------------- */
.photo-item-list4{
	margin: 0 -15px 60px;
}
@media screen and (max-width: 767px) {
	.photo-item-list4{
		margin: 0 -5px 30px;
	}
}


/* 画像付きリンクパターン
----------------------------------------------------------------------------- */
.special-photo-item-wrap img{
	vertical-align: top;
}


/* H3 + H4 + 本文テキスト（PC：2カラム/SP：1カラム縦積み）
----------------------------------------------------------------------------- */
.column-type02>div .ttl-type02{
	margin-top: 20px !important;
}
.column-type02 .col-md-6{
	margin: 0 0 20px;
}
@media screen and (max-width: 767px) {
	.column-type02>div .ttl-type02{
		margin-top: 0 !important;
	}
	.column-type02{
		margin-bottom: 0;
	}
	.column-type02 .col-md-6{
		margin: 0;
	}
}


/* 画像　2カラム（一個・中央揃え）表示
----------------------------------------------------------------------------- */
.ttl-type02 + .column-img03{
	margin: 40px -15px 0;
}
@media screen and (max-width: 767px) {
	.ttl-type02 + .column-img03{
		margin: 30px -5px 0;
	}
}


/* 画像　2カラム（一個・中央揃え）表示
----------------------------------------------------------------------------- */
.column-img02 figcaption{
	color: #212121;
}


/* 本文テキスト（1カラム）
----------------------------------------------------------------------------- */
.column-text:last-child img{
	margin: 0 0 0 20px;
}


/* テーブル（PC：2カラム/SP：縦積み）
----------------------------------------------------------------------------- */
.tbl-type-dl dl dt{
	color: #212121;
	width: 70.967%;
}
.tbl-type-dl sup{
	font-size: 10px;
}
@media screen and (max-width: 767px) {
	.tbl-type-dl dl dt{
		width: 77.68%;
	}
}


/* 表組み　罫線なし サイズ変更可
----------------------------------------------------------------------------- */
.tbl-type02-02 > thead > tr > th,
.tbl-type02-02 > tbody > tr > th{
	color: #212121;
}


/* 画像 + テキストリンク ＋ テキスト（PC：3カラム/SP：2カラム表示）
----------------------------------------------------------------------------- */
.photo-item-list5{
	margin-bottom: 0;
}
.photo-item-list5.last{
	margin-bottom: 70px;
}
@media screen and (max-width: 767px) {
	.photo-item-list5.last{
		margin-bottom: 30px;
	}
}


/* H4　小見出し
----------------------------------------------------------------------------- */
.ttl-type03{
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.ttl-type03{
		line-height: 1.7;
	}
}


/* 画像＋テキスト＋ボタン
----------------------------------------------------------------------------- */
a[id^="project"] .project-point__btn span{
	background: none;
}
#project01:hover .project-point__btn span,
#project02:hover .project-point__btn span,
#project03:hover .project-point__btn span,
#project04:hover .project-point__btn span{
	background-color: #ffffff;
	background-image: none;
}
.project-point__btn span:after{
	position: absolute;
	top: 50%;
	right: 22px;
	width: 7px;
	height: 7px;
	margin-top: -4px;
	border-right: 1px solid #ffffff;
	border-bottom: 1px solid #ffffff;
	transform: rotate(-45deg);
	content: "";
}
#project01:hover .project-point__btn span:after{	border-color: #00a496;	}
#project02:hover .project-point__btn span:after{	border-color: #0093d4;	}
#project03:hover .project-point__btn span:after{	border-color: #f29600;	}
#project04:hover .project-point__btn span:after{	border-color: #b84c97;	}
@media screen and (max-width: 767px) {
	.project-point__btn span:after{
		right: 15px;
		width: 6px;
		height: 6px;
		margin-top: -3px;
	}
}


/*
	タブ
----------------------------------------------------------------------------- */
.func-tab.func-tab-type01 .func-tab__nav > ul > li.open span{
	pointer-events: none;
}
@media screen and (max-width: 767px) {
	.func-tab-type01 .func-tab__nav > ul > li > a::after{
		display: none;
	}
}


/*
	罫線囲みテキスト(リンク)
----------------------------------------------------------------------------- */
a.column-text02-wrap .column-text02{
	-webkit-transition: 0.3s ease;
	transition: 0.3s ease;
}
a.column-text02-wrap:hover .column-text02{
	border-color: #053250;
}
