@charset "UTF-8";

/*CSSDocument*/


/* html body base
===============================================================*/

/*
html ----------------------------------------------------------*/

*{ margin:0px; padding:0px; }
body{
	color:#333333;
	margin:0;
	padding:0;
	background:#fff;
	font-family: 'Noto Sans JP','游ゴシック体', 'Yu Gothic', YuGothic,"ヒラギノ角ゴ Pro W3","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif" !important;
	font-family: "fot-tsukuardgothic-std", sans-serif !important;
	line-height: 1.5;
	text-align:center;
	font-size:100%;
	-webkit-text-size-adjust: 100%;
	font-feature-setting : "palt";
	min-width: 320px;
}
a{
	color:rgba(74,110,167,1);
	text-decoration:none !important;
}
a:visited{
	color:rgba(74,110,167,1);
	text-decoration:none;
}
a:hover{
	color:rgba(74,110,167,0.7);
	text-decoration:underline;
}
a:active{
	color:rgba(74,110,167,1);
	text-decoration:underline;
}
ul{ list-style:none;}

a:hover img {
	filter: alpha(opacity=70) !important;
	-moz-opacity:0.70 !important;
	opacity:0.70 !important;
	-webkit-transition: all .2s linear;
}
img{
	margin:0;
	padding:0;
	vertical-align:top;
	max-width: 100%;
	height: auto;
}

/* 「pc」、「sp」に「!important」をつけるとデザインが崩れるため、つけてはいけない。 */
.sp{display:none;}
.pc{display:block;}
@media screen and (max-width: 768px) {
	img{
		max-width:100%;
		height:auto;
	}
	.sp{display:block;}
	.pc{display:none;}
}

/*サイズによる消去*/
/* 「!important」付きの表示切替クラス。 */
@media (max-width: 767px) {
	.hidden-s {display: none !important;}
}
@media (min-width: 768px) {
	.hidden-l {display: none !important;}
}



/*
html ----------------------------------------------------------*/

/* body base
==============================================================*/		

/* header
===============================================================*/
header{
	width: 100%;
	height: 100px;
	z-index: 1000;
	box-sizing: border-box;
	position: fixed;
	background: rgba(255,255,255,.5);
}

#content header {background: rgba(255,255,255,.9)}
header.is-back {background: rgba(255,255,255,.9)}
#top.open header,#top.en_open header {background: #fff}

header .is-inner{
	width: 1120px;
	margin: 0 auto;
	padding: 25px 0;
	box-sizing: border-box;
}
@media screen and (max-width: 1200px) {
	header .is-inner{
		width: 90%;
		margin: 0 auto;
	}
}

header .is-inner._contact{ text-align: left; }

header .head-l{
	display: inline-block;
	vertical-align: middle;
	line-height: 1;
}

nav#global{
	display: inline-block;
	letter-spacing: -.4em;
	vertical-align: middle;
	width: calc(99% - 205px);
}
nav#global ul{
	display:table;
	width: calc(99% - 5em);
	float: right;
}
nav#global li{
	display: table-cell;
	width: 120px;
    vertical-align: middle;
	white-space: nowrap;
}

nav#global li > span{
	width: 100%;
}
nav#global li > a,
nav#global li{
	text-align: center;
	letter-spacing: 0;
	font-style: normal;
	position: relative;
	transition: all .2s ease-in;
	text-decoration:none;
}
nav#global li > span > a{
	display: block;
	color: inherit;
	font-size: 16px;
	font-weight: bold;
	line-height: 1;
	padding-top: 17px;
	padding-bottom: 17px;
}
@media screen and (min-width: 769px) {
	nav#global li > span > a:hover{color: #00d2fd;}
}

.head_contact a {
	display: block;
	background: #2c4d7a;
	color: #fff !important;
	border-radius: 34px;
	max-width: 490px;
	margin: 0 auto;
	padding: 17px 1em;
}
.head_contact a:hover {
	color: #00d2fd !important;
}
.head_contact i.fa-angle-right {
	padding-left: 10px;
}

@media screen and (max-width: 768px) {
	.head_contact a {
		background: none;
		color: inherit !important;;
		max-width: none;
		padding: 0;
	}
	.head_contact i.fa-angle-right {
		display: none;
	}
}

@media screen and (max-width: 940px) {
	header h1{
		display: inline-block;
		vertical-align: top;
		float: left;
		width: 140px;
		padding-top: 5px
	}
	nav#global{
		width: calc(99% - 140px);
	}
	nav#global > ul{
		width: calc(99% - 1em);
	}
	nav#global li > span > a{
		font-size: 14px;
	}
}

nav#global li a.is-current,
nav#global li.is-current{background: url("../images/renewal/menu_bar.png") no-repeat bottom center;}

#content nav#global li > a,
#content nav#global li,
header.is-back nav#global li a,
header.is-back nav#global li{
	color: #666;
	position: relative;
	transition: all .2s ease-in;
}
header.is-back nav#global li a,
header.is-back nav#global li{ color: #666; }

#content nav#global li a:hover,
#content nav#global li a.is-current,
#content nav#global li:hover,
#content nav#global li.is-current,
header.is-back nav#global li a:hover,
header.is-back nav#global li a.is-current,
header.is-back nav#global li:hover,
header.is-back nav#global li.is-current{ color: #00d2fd; }

nav#global > ul .menu {
	display: none;
	position: absolute;
	background: url("../images/menu_toggle_back.png") no-repeat center 10px;
	background-size:cover;
	width: 200vw;
	max-height: 0;
	text-align: center;
	top:30px;
	left: 50%;
	right: 50%;
	opacity: 0;
	z-index: 0;
	margin-left: -100vw;
	margin-right: 0;
}

nav#global > ul > li:hover .menu {
	max-height: 9999px;
	opacity: 1;
	z-index: 1000;
	transition: max-height 1s ease-in;
	display: block;
	padding: 55px 0;
	cursor: auto;
}

nav#global > ul > li .menu::after{
	content: "";
	display: block;
	clear: both;
}
nav#global > ul .menu .submenu-inner {
	width: 100vw;
	margin: 0 auto;
}


@media screen and (min-width: 769px) {.sp_br{display: none;}}
@media screen and (max-width: 768px) {.pc_br{display: none;}}

/* 250411 DLポップ */
#recruit_pop-cont{
	background:rgba(3,3,3,0.5);
	height: 100%;
	width: 100%;
	top: 0;
	opacity: 0;
	z-index: 99999;
}
#recruit_pop-cont.is-active {
	position: fixed;
	opacity: 1;
}
#recruit_pop{
	display: none;
	position: fixed;
	border: solid 4px #2c4d7a;
	background: #7dabcf;
	color: #fff;
	font-weight: bold;
    width: 90%;
    max-width: 800px;
    top: 50%;
    left: 50%;
    transform:  translate(-50%, -50%);
	opacity: 0.9;
	z-index: 100000;
    margin: 0 auto;
	padding: 8vh 30px 10px;
}
#recruit_pop p{
	font-size: 16px;
	text-align: center;
}
.recruit_close {
	position: absolute;
	top: 10px;
	right: 10px;
	border: none;
	background: #a2a2a2;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	line-height: 0;
	text-align: center;
	width: 36px;
	height: 36px;
	padding: 10px;
}

.recruit_btn{
	display: block;
	border: none;
	background: none;
	text-align: center;
	margin: 20px auto;
}
.recruit_btn a{
	display: block;
	background: #2c4d7a;
	color: #fff !important;
	font-size: 16px;
	border-radius: 34px;
	max-width: 490px;
	margin: 0 auto;
	padding: 17px 1em;
}
.recruit_btn a:hover{opacity: .7;}
.recruit_btn a i{
	margin-left: 1em;
}
#recruit_close:hover{opacity: 0.5;}

@media screen and (max-width: 767px) {
	#recruit_pop{padding: 50px 20px 10px;}
	#recruit_pop p{
		font-size: 14px;
		text-align: left;
	}
	#recruit_close {
		width: 30px;
		height: 30px;
		padding: .5rem;
	}
    .recruit_btn a{
		font-size: 12px;
		padding: 10px;
    }
}

nav#global > ul .menu dl{
	color: #fff;
	text-align: center;
	display: table;
	max-width:1152px;
	width: 90vw;
	margin: 0 auto;
	position: relative;
	right: 0;
	left: 0;
}
nav#global > ul .menu dl.corporate{
	left:22vw;
	right: auto;
}
nav#global > ul .menu dl.product{
	left:22vw;
	right: auto;
}
nav#global > ul .menu dl.service{
	left:20vw;
	right: auto;
}
nav#global > ul .menu dl.news{
	left:18vw;
	right: auto;
}
nav#global > ul .menu dl.ir{
	right:12vw;
	left:auto;
}

nav#global > ul .menu dt{
	border-right:2px solid #4d4d4d;
	width: 15%;
	display: table-cell;
	box-sizing: border-box;
	text-align: center;
	font-size: 131%;
	vertical-align: top;
}
nav#global > ul .menu dt .fo_small{
	border: none;
	font-size: 76%;
	font-weight: normal;
	margin-top: 10px;
}

nav#global > ul .menu dd{
	width: 85%;
	display: table-cell;
	font-size: 100%;
	letter-spacing: 0;
	vertical-align: top;
	padding-left: 3%;
	text-align: left;
	font-weight:normal;
	box-sizing: border-box;
}

nav#global > ul .menu dd ul{
	min-width: 20%;
	display:block;
	float:left;
	vertical-align: top;
}

nav#global > ul .menu dd li{ width:100%; }

#content nav#global > ul .menu dd li a,
#top nav#global > ul .menu dd li a{
	text-align: left;
	color: #fff;
	margin-bottom: 20px;
	background: url("../images/toggle-menu-link-arrow.svg") no-repeat 94% 50%;
	padding: 5px 2em 5px 15px;
	display:block;	
	transition: all .2s ease-in;
	text-decoration:none;
	font-weight:normal !important;
	width:100%;
	box-sizing:border-box;
	word-break:break-all;
	white-space: normal;
}
#content nav#global > ul .menu dd li a:hover,
#top nav#global > ul .menu dd li a:hover{ background: url("../images/toggle-menu-link-arrow.svg") no-repeat 98% 50%; }

nav#global > ul .menu dd li a::after,
nav#global > ul .menu dd li::after{
	position: absolute;
	top: 0;
	right: 0;
	content: '';
	height: 0;
	width:100%;
	transform: scale(1,1);
	transform-origin: right top;
	transition: transform .3s;
}
nav#global > ul > li a:hover::after,
nav#global > ul > li:hover::after { transform: scale(1, 1); }

@media screen and (max-width: 1120px) {
	nav#global > ul .menu dl.ir{
		right:15vw;
		left:auto;
	}
}
@media screen and (max-width: 768px) {
	header{
		top:0;
		height: 80px;
	}
	header .is-inner{
		padding: 25px 0;
		position: relative;
	}
	header h1{
		display: inline-block;
		vertical-align: top;
		float: left;
		width:auto;
		height: 30px;
		padding-top: 0;
	}
	header h1 img{
		height:30px;
		width:auto;
	} 
	.h-search{
		display: block;
		top: 24px;
		right: 40px;
		width: 30px;
		vertical-align: top;
		margin-left: 0;
		position: absolute;
	}
	.h-search img{
		max-width: 100%;
		width: 100%;
		height: auto;
	}
	.h-search input[type="image"]{ width: 32px; }

	.h-search.open .search{
		z-index:1;
		display:block;
		position:absolute;
		right:40px;
		top:1px;
		width:530px;
		visibility:visible;
		max-height:9999px;
		opacity:1;
	}
	nav#global{
		display:none;
		visibility: hidden;
		opacity: 0;
		z-index: 0;
	}

	.close{
		position: fixed;
		display:block;
		top:15px;
		right:0;
		z-index:10000;
		transition-property: right;
		transition-duration: .32s;
		transition-timing-function: ease-out;
	}
	.sp_menu.open{
		display:block;
		position:absolute;
		top:0;
		right:0;
		z-index:10000;
		transition-property: right;
		transition-duration: .32s;
		transition-timing-function: ease-out;
	}
	#nav-toggle {
		position: absolute;
		top: 10px;
		right: 0;
		height: 40px;
		cursor: pointer;
		z-index: 1000;
	}
	#nav-toggle > div {
		position: relative;
		width: 30px;
	}
	#nav-toggle .sp_menu{
		font-size: 77%;
		font-style: normal;
		padding-top: 20px;
		display: block;
	}
	#nav-toggle span {
		width: 100%;
		height: 3px;
		left: 0;
		display: block;
		background: #2c4d7a;
		position: absolute;
		transition: top .5s ease, -webkit-transform .6s ease-in-out;
		transition: transform .6s ease-in-out, top .5s ease;
		transition: transform .6s ease-in-out, top .5s ease, -webkit-transform .6s ease-in-out;
		z-index: 1000;
	}
	#third #nav-toggle span { background: #fff; }

	#nav-toggle span:nth-child(1) { top: 0; }
	#nav-toggle span:nth-child(2) { top: 12px; }
	#nav-toggle span:nth-child(3) { top: 25px; }
	#nav-toggle:hover span:nth-child(1) { top: 2px; }
	#nav-toggle:hover span:nth-child(3) { top: 23px;}
	.open #nav-toggle span { background: #2c4d7a; }
	.open #nav-toggle span:nth-child(1) {
		top: 10px;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.open #nav-toggle span:nth-child(2) {
		top: 10px;
		width: 0;
		left: 50%;
	}
	.open #nav-toggle span:nth-child(3) {
		top: 10px;
		-webkit-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}
	.open nav#global{
		background: #fff;
		width: 100vw;
		position: fixed;
		top: 80px;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 99999;
		text-align: center;
		display: block;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		font-size: 123%;
		visibility: visible;
		opacity: 1;
		transition: opacity .6s ease, visibility .6s ease;
		box-sizing: border-box;
		overflow: auto;
		border-top:1px solid #c8c8c8;
		margin-top: 0;
		padding-top: 0;
	}

	nav#global > ul{
		display:block;
		width: 100%;
		min-width: auto;
		float: none;
		text-align: left;
		box-sizing: border-box;
		margin: 0;
	}
	nav#global > ul > li{font-size: 100%;} 

	.open nav#global > ul > li{
		display:block;
		width: 100%;
		text-align: left;
		box-sizing: border-box;
		border-bottom:1px solid #c8c8c8;
	}
	nav#global > ul > li > a,
	nav#global > ul > li{
		display: block;
		text-align: left;
		padding: 0;
		font-style:normal;
		color: #666;
	}

	nav#global > ul > li > .nav_item.sp_off > a{pointer-events: none;}

	#top nav#global li a img{ height: 30px; }

	.open nav#global li a span,
	.open nav#global li > span{
		border:none;
		display:block;
		padding: 1px 5%;
		font-weight:bold;
	}
	
	nav#global ul li span.txt_jp{
		margin-top: 3px;
		padding: 0;
	}
	.open nav#global li span > span.fo_small{
		display:inline-block;
		font-size: 76%;
		font-weight: normal;
		padding: 0;
	}

	nav#global li a::after,
	nav#global li::after{ display: none !important; }
	
	nav#global li a:hover::after,
	nav#global li:hover::after { transform: scale(0, 0); }
	nav#global li:last-child a{top: 0;}
	nav#global li:hover{padding-bottom: 0;}

	.open nav#global li .is-current a,
	.open nav#global li span.is-current{
		color: #00d2fd;
		text-decoration: none;
		background: none;
	}

	.open nav#global li span + .menu{
		display: none;
		transition-property:opacity;
	}
	.open nav#global li span + .menu{
		position: relative;
		text-align: center;
		background: rgba(90,90,90,1);
		z-index: 9999;
		opacity:1;
		width: 100%;
		padding: 0;
		box-sizing: border-box;
	}

	.open nav#global li span.is-current + .menu dl{
		width: 100vw;
		margin: 0 auto;
	}
	.open nav#global li .menu dt{display:none;}
	.open nav#global li span + .menu dd{
		display:block;
		width: 100%;
		padding-left: 0;
		box-sizing: border-box;
	}

	.open nav#global li span + .menu dd ul{
		display:block;
		width: 100%;
	}
	.open nav#global li span + .menu dd li{
		display:block;
		width: 100%;
		border: none;
		margin: 0;
		padding: 0 0;
		box-sizing: border-box;
	}
	
	nav#global > ul .menu {
		transition: max-height .5s ease-out;
		max-height: 0;
		opacity: 0;
		top:0;
		width: 200vw;
		left: 0;
		right: 0;
		margin: 0;
		text-align: left;
	}

	nav#global > ul .menu dl.corporate,
	nav#global > ul .menu dl.product,
	nav#global > ul .menu dl.service,
	nav#global > ul .menu dl.news,
	nav#global > ul .menu dl.ir,
	nav#global > ul .menu dl.english{
		width: 100%;
		left:auto;
		right:auto;
		padding:0;
	}

	#top nav#global ul .menu dd li a,
	#content nav#global ul .menu dd li a{
		margin: 0;
		box-sizing: border-box;
		border-bottom: 1px solid #4d4d4d;
		padding: 3% 3% 3% 10%;
		width: 100%;
	}
}

#gototop{
	position:fixed;
	top:0;
	right:2%;
	z-index:9999;
}

@media screen and (max-width: 768px) {
	#gototop{ display:none !important; }
	#gototop-sp{
		background: #e6ebf1;
		text-align:right;
		padding: 2%;
	}
}
@media screen and (max-width: 580px) {
	.h-search.open .search input[type="text"]{
		width:200px;
		transition:width .4s ease-out;
	}
}

/* footer 
------------------------------------------------------------*/
footer{
	width: 100%;
	overflow: hidden;
	background: #7dabcf;
	text-align: center;
	color: #fff;
	z-index:10;
	padding: 0 20px;
}


/* フッターナビ */
#f_global{
	max-width: 1040px;
	text-align: center;
	margin: 0 auto 40px;
}
.f-logo{margin: 50px auto;}

#f_global ul{
	display: flex;
    justify-content: center;
}
#f_global li:not(:last-child){margin-right: 6%;}
#f_global li{
	font-size: 16px;
	font-weight: bold;
	padding: 0 0 40px;
}
#f_global li > a{
	color: #fff;
	letter-spacing: 0;
}
#f_global a:hover,
#f_global li > a:hover{opacity: .5;}
nav.f-nav{padding-bottom: 30px;}
.copyright{
	text-align: center;
	clear:both;
}

@media screen and (max-width: 940px) {
	#f_global ul{flex-wrap: wrap;}
	#f_global li{width: calc(100% / 3);}
	#f_global li:not(:last-child){margin-right: 0;}
}

@media screen and (max-width: 768px) {
	footer{	padding: 0;}
	.f-logo{margin: 30px auto;}
	#f_global{ display: block; }
	#f_global ul{
		display: block;
		width: 100%;
	}
	#f_global li:not(:last-child){margin-right: 0}
	#f_global li{
		width:100%;
		padding: 0 0 20px;
	}
	nav.f-nav{padding-bottom: 10px;}
}
