@charset "utf-8";

/*===============================================
●共通
===============================================*/
html {
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
}
* {box-sizing: border-box;}
body {
	color:#000;
	background-color:#ffffff;
	font-size:93.75%; /* 1em=15pxに設定 */
	max-width: 1940px;
	margin: 0 auto;
}
body,
th,
td {
	font-family:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
	line-height:1.3em;
}
p {
	text-align:justify;
	text-justify:distribute;
}
img {
	max-width:100%;
	height:auto;
	vertical-align:middle;
	-ms-interpolation-mode:bicubic; 
}
a { text-decoration: none;}
a:link { color:#000;}
a:visited { color:#000;}
a:active { color:#000;}

a.underline {
	text-decoration: underline;
}
a.underline:hover {
	text-decoration: none;
}


/* headerMenu
---------------------------------------- */
.headerMenu { position: relative;}
.headerMenu .inner {
	display: flex;
	align-items: center;
}
.headerMenu .inner .headerLogo { display: none;}

/* footer
---------------------------------------- */

footer address span{
	display: block;
	font-weight: bold;
	color: #003670;
}

footer small {
	display: block;
	height: 2.5em;
	color: #fff;
	text-align: center;
	line-height: 2.5em;
	font-size: 0.8em;
	font-family: 'Roboto', sans-serif;
	background-color: #003670;
}

/* pageTop */
.pageTop { display: none;}
.pageTop a{
	display: flex;
	align-items: center;
	text-align: center;
	width: 3.6em;
	height: 3.6em;
	background-color: #003670;
	position: fixed;
	right: 0;
	bottom: 30px;
}
.pageTop a img {
	width: 1.5em;
	height: auto;
	margin: 0 auto;
}

/*===============================================
●画面の横幅が729px以下(スマホのみ)
===============================================*/
@media screen and (max-width: 729px){
	
	/* 全般
	---------------------------------------- */
	html {
		scroll-padding-top: 70px;
	}
	body {
		min-width:320px;
		-webkit-text-size-adjust: none;
		line-height:1.5em;
	}
	.spNone {display:none;}

	.logo { opacity: 0;}
	/* メニュー */
	.headerMenu {
		background-color: #fff;
		width: 100%;
		height: 70px;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 1000;
		box-shadow: 0px 2px 4px #A1A1A11A;
	}
	.headerMenu .inner {
		width: 100%;
		height: 70px;
		padding: 0 0 0 1em;
		display: flex;
		justify-content: space-between;
		align-items: center;
		position: relative
	}
	.headerMenu .inner .headerLogo { display: block;}

	.headerMenu .inner nav {
		position: absolute;
		top: 70px;
		left: 0;
		width: 100%;
		margin: 0 0 0 auto;
		display: none;
		box-shadow: 0px 6px 6px -6px #dddddd;
	}
	.headerMenu .inner nav ul {
		width: 100%;
		background: #fff;
	}
	.headerMenu .inner nav ul li {
		display: block;
		border-top: 1px dashed #003670;
	}
	.headerMenu .inner nav ul li a {
		display: block;
		padding: 1em;
		color: #003670;
		font-size: 1.06em;
		font-weight: bold;
	}
	.headerMenu .inner nav ul > li > ul > li > a {
		text-indent: 1em;
	}
	.headerMenu .inner nav ul li a::after { display: none;}
	
	/*ハンバーガーメニュー*/
	/*close時*/
	/*.menuBtn { transition:  all 0.3s;}*/
	.menuBtn a {
		display: block;
		width: 60px;
		height: 60px;
		position: relative;
		z-index: 100;
		background-color: #fff;
	}
	.menuBtn a span {
		display: block;
		position: absolute;
		left: 15px;
		width: 30px;
		height: 2px;
		background-color: #003670;
		border-radius: 1px;
		transition: all .4s;
	}
	.menuBtn a::after {
		display: block;
		width: 100%;
		content: "menu";
		font-size: 10px;
		font-weight: bold;
		color: #003670;
		text-align: center;
		position: absolute;
		left: 0;
		bottom: 1em;
	}
	.menuBtn span:nth-child(1) { top: 12px;}
	.menuBtn span:nth-child(2) { top: 21px;}
	.menuBtn span:nth-child(3) { top: 30px;}
	
	/*open時*/
	.menuBtn .open span:nth-child(1) {
		transform: translateY(10px) rotate(-45deg);
		left: 14px;
		top: 10px;
	}
	.menuBtn .open span:nth-child(2) { display: none;}
	.menuBtn .open span:nth-child(3) {
		transform: translateY(-10px) rotate(45deg);
		left: 14px;
		top: 30px;
	}
	.menuBtn a.open::after {
		content: "close";
	}
	
	
	/*contents*/
	.contents .inner {
		width: 100%;
		padding: 0 20px;
	}
	
	/* footer
	---------------------------------------- */
	footer .footer_inner{
		padding: 1em;
		margin: 0 auto;
	}
	footer .footerLogo {
		max-width: 260px;
		height: auto;
		margin: 0 auto 2em;
		text-align: center;
	}
	footer address {
		display: block;
		text-align: center;
		font-size: 0.93em;
		line-height: 2em;
	}
	footer address span{
		font-size: 1.07em;
		text-align: center;
	}
}

/*===============================================
●画面の横幅が730px以上(PCのみ)
===============================================*/
@media screen and (min-width: 730px){
	
	/* 全般
	---------------------------------------- */
	body {
		overflow-y: scroll;
		font-size: 93.75%;
	}
	a:hover {
	transition: all 0.3s;
	opacity: 0.7;
	}
	a:hover img {
		filter:alpha(opacity=8);
		opacity: 0.8;
	}
	.pcNone {display: none!important;}
	.tel { pointer-events: none;}
	.inner {
		width: 100%;
		max-width: 960px;
		padding: 0 10px;
		margin: 0 auto;
		box-sizing:border-box;
	}
	
	/* headerMenu*/
	.headerMenu {
	/*height: 80px;
	position: relative;*/
	}
	.headerMenu .inner {
		display: flex;
		align-items: center;
		height: 80px;
		
	}
	.headerMenu .inner nav {
	display: block;
	width: 100%;
	max-width: 650px;
	margin: 0 auto;
	}
	.headerMenu .inner nav > ul {
		display: flex;
		width: 100%;
		justify-content: space-between;
	}
	.headerMenu .inner nav > ul > li {
		position: relative;
	}
	.headerMenu .inner nav > ul > li > ul {
		position: absolute;
		white-space: nowrap;
		background-color: white;
		opacity: 0;
		transition: 0.3s;
	}
	.headerMenu .inner nav > ul > li:hover > ul {
		opacity: 1;
	}
	.headerMenu .inner nav > ul > li:hover > ul > li {
		height: 2em;
		line-height: 2em;
		opacity: 1;
	}
	.headerMenu .inner nav > ul > li > ul > li {
		transition: 0.3s;
		height: 0;
		overflow: hidden;
		padding: 0 10px;
	}
	.headerMenu .inner nav ul li a {
		position: relative;
		/*padding: 20px 0;*/
		color: #003670;
		font-weight: bold;

	}
	.headerMenu .inner nav > ul > li > a::after {
		display: inline-block;
		content: "";
		width: 0.7em;
		height: 1em;
		background: url(../images/common/arrow_down.png) no-repeat center / 100% auto;
		position: absolute;
		top: calc(50% - 0.5em);
		right: -1em;
	}
	/* 固定メニュー */
	.headerMenu {
		height: 80px;
		position: relative;
		margin: 2em 0 4em;
	}
	.headerMenu .fixed .inner .headerLogo { display: block;}

	.headerMenu .fixed {
		background-color: #fff;
		width: 100%;
		height: 80px;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 1000;
		box-shadow: 0px 2px 4px #A1A1A11A;
	}
	.headerMenu .fixed .inner {
		max-width: 1306px;
		display: flex;
		align-items: center;
		padding: 0 5.33em;
	}

	.headerMenu .fixed .inner nav {
		display: block;
		width: 100%;
		max-width: 650px;
		margin: 0 0 0 auto;
	}
	.headerMenu .fixed .inner nav > ul {
		display: flex;
		width: 100%;
		justify-content: space-between;
	}
	.headerMenu .fixed .inner nav ul li a {
		color: #003670;
		font-size: 1.06em;
		font-weight: bold;
	}

	.headerMenu .inner nav ul li.vision a::after { display: none;}
	.headerMenu .inner nav ul li.About a::after { display: none;}
	.headerMenu .inner nav ul li.recruit a::after { display: none;}
	.headerMenu .inner nav ul li.inquiry a::after { display: none;}
	
	/*contents*/
	.contents .inner {
		max-width: 1100px;
		padding: 0 20px;
		margin: 0 auto;
	}
	
	/* footer
	---------------------------------------- */
	footer .footer_inner{
		display: flex;
		align-items: center;
		justify-content: space-between;
		max-width: 1100px;
		padding: 1.33em;
		margin: 0 auto;
	}
	footer address {
		display: block;
		text-align: right;
		font-size: 0.93em;
		line-height: 2em;
		align-self: flex-end;
		margin-right: 5em;
	}
	footer address span{
		max-width: 300px;
		font-size: 1.07em;
		text-align: right;
	}
} 

/*===============================================
●画面の横幅が730px~820px
===============================================*/
@media screen and (min-width: 730px) and ( max-width: 820px){
	
	.headerMenu .fixed .inner {
		padding: 0 2.33em;
	}
}