@charset "UTF-8";

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	}

/* 大枠 */
html,
body {
	height: 100%;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: none;
	-webkit-overflow-scrolling: touch !important;
	}
body {
	font-size: 16px;
	line-height: 1.6;
	}
#wrapper {
	width: 100%;
	margin: 0 auto;
	position: relative;
	}
body > #wrapper {
	height: auto;
	}
.clearfix:after {
    visibility: hidden;
    display: block;
    content: " ";
    clear: both;
    height: 0;
    }

@media print {
	html,
	html body{overflow: visible !important;}
	}

/* アクセシビリティ */
.guidance {
	left:-999px;
	position:absolute;
	width:990px;
	}
img {max-width: 100%;height: auto;vertical-align: bottom;} /* レスポンシブ対応 */
img {
	vertical-align: bottom;
	box-shadow: #000 0 0 0; /* ロールオーバー対応 */
	}
img, x:-moz-any-link, x:default {
    box-shadow: #000 0 0 0; /* IE7対応 */
	}

/* リンク */
a:link    {color:#333; text-decoration: none;}
a:visited {color:#333; text-decoration: none;}
a:hover   {color:#333; text-decoration: none;opacity: .7;}
a:active  {color:#333; text-decoration: none;}

.mincho{
	/* font-family: "FOT-筑紫明朝 Pr6 L","TsukuMinPr6-L","ヒラギノ明朝 Pro W3","Hiragino Mincho Pro","TakaoEx明朝",TakaoExMincho,"MotoyaLCedar","Droid Sans Japanese","HGS明朝E","ipamin","ＭＳ Ｐ明朝",serif; */
	font-family: Georgia,游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN",HGS明朝E,メイリオ,Meiryo,serif;
	position: relative;
	font-weight: normal;
	}

/* CLEARFIX */
.container:after,
.row:after,
.col:after {content: "";display: table;clear: both;}

.container {width: 100%;max-width: 1040px;padding: 0 20px;margin: 0 auto;position: relative;}

/* ブロック関係 */
.row {padding-bottom: 0em;}
.col {display: block;float: left;width: 100%;margin: 0 1%;line-height: 1.5;}
.col:first-child {margin-left: 0;}
.col:last-child {margin-right: 0;}

/* グリッドの設定 */
.span_1 {width: 6.25%;}
.span_2 {width: 15%;}
.span_3 {width: 23.5%;}
.span_4 {width: 32%;}
.span_5 {width: 40.5%;}
.span_6 {width: 49%;}
.span_7 {width: 57.5%;}
.span_8 {width: 66%;}
.span_9 {width: 74.5%;}
.span_10 {width: 83%;}
.span_11 {width: 91.5%;}
.span_12 {width: 100%;}

.pc {display: block;}
.sp {display: none;}
.center {text-align: center;}
.kome {font-size: 12px;}
/* タイトル */
#site_title {
	float: left;
	display: table;
	width: 14vw;
	min-width: 130px;
	max-width: 173px;
	height: 60px;
	overflow: hidden;
	}
	#site_title a{
		display: table-cell;
		vertical-align: middle;
		}
	#site_title img{
		width: 12vw;
		max-width: 130px;
		}
h1.title {
	display: table;
	width: 100%;
	height: 300px;
	background: #999;
	margin-bottom: 20px;
	}
	h1.title span{
		display: table-cell;
		vertical-align:	middle;
		color: #fff;
		text-shadow: 2px 2px 13px #333;
		font-size: 50px;
		text-align: center;
		}
h2.title{
	margin-bottom: 20px;
	font-size: 32px;
	}
	h2.title.center{
		margin-bottom: 40px;
		text-align: center;
		}
.mphasis {
	font-size: 44px;
	line-height: 1.5;
	font-weight: bold;
	}
	span.small {
		font-size: 75%;
		}
		span.blue {
			color: #1D2088;
			}
/* ボタン */
.btn a {
	display: block;
	width: 270px;
	background: #fff;
	border: 1px solid #333;
	padding: 16px;
	text-align: center;
	font-weight: bold;
	letter-spacing: 0;
	padding-left: 0;
	margin: 0 auto;
	position: relative;
	}
	.btn a::after {
		display: block;
		content: "";
		width: 35px;
		height: 20px;
		background: url(../img/icon_arrow_b.png) no-repeat top center/20.31px 5px;
		/* background-size: contain; */
		position: absolute;
		top: 45%;
		right: 15px;
	}

/* ボタン 青色 */
.btn.blue a {
	background: #1d2088;
	border: none;
	color: #fff;
	margin: 0 auto;
}
	.btn.blue a::after {
		background: url(../img/icon_arrow_w.png) no-repeat top center/20.31px 5px;
		/* background-size: contain; */
	}


/* ▼▼▼ ヘッダー
=====================================*/
header {
	width: 100%;
	height: 110px;
	padding: 24px 0;
	z-index: 1;
	overflow: hidden;
	}
.menu {display: none;}


/* グローバルナビゲーション */
#gnav {
	overflow: hidden;
	}
	#gnav ul {
		display: flex;
		justify-content: flex-end;
		}
		#gnav ul > li a {
			display: block;
			padding: 20px;
			font-weight: bold;
			}
			#gnav ul > li:last-child a {
				padding-right: 0;
				}
ul > li.contact a{
	width: 110px;
	height: 110px;
	background: #1d2088;
	padding:20px 5px;
	color: #fff;
	font-size: 15px;
	font-weight: bold;
	text-align: center;
	position: absolute;
	top:0;
	right: 0;
	}
	ul > li.contact a img{
		width: 40px;
		margin: 0 auto 10px;
		display: block;
		text-align: center;
		}

/* ▼▼▼ メイン 「コンテンツとサイドを囲む要素」
=====================================*/
#main {
	margin: 0 auto 100px;
	clear: both;
	line-height: 1.9;
	}

/* パンくず */
#path {
	max-width: 1040px;
	padding: 0 20px;
	margin:0 auto 50px;
	font-size: 14px;
	overflow: hidden;
	}
	#path li {
		float: left;
		margin-right: 10px;
		color: #1D2088;
		}
		#path li:after {
			content: ">";
			margin-left: 10px;
			color: #333;
			}
			#path li:last-child:after {content: "";}
			#path li a {text-decoration: underline;}
			#path li a:hover {text-decoration: none;}



/* ▼▼▼ フッター
=====================================*/
/* 総合トップ */
#footer_nav a{
	color: #fff;
}
footer {
	width: 100%;
	background: #1d2088;
	color: #fff;/*寺田*/
	padding: 50px 0 15px;
	clear: both;
	overflow: hidden;
	}
/* 総合TOP　footer */
footer#top_footer .container{
	max-width: 860px;
}
footer#top_footer #footer_nav{
	display: flex;
	justify-content: space-between;
	margin: 0 0 100px;
}
	footer#top_footer #footer_nav a{
		font-weight: bold;
	}

/* IT研究開発 */
footer#it_footer #footer_inner{
	display: flex;
}
	footer#it_footer #footer_logo{
		margin-right: 100px;
	}
	footer#it_footer #footer_logo li{
		margin: 0 0 40px;
	}
	footer#it_footer .btn_contact a{
		border: 1px solid #fff;
		width: 360px;
		padding: 25px 16px;
		margin: 0;
		font-size: 18px;
		font-weight: bold;
	}
	footer#it_footer .btn_contact span.pc{
		display: inline;
	}
footer#it_footer #footer_nav{
	font-size: 14px;
	margin: 0 0 50px;
}
	footer#it_footer #footer_nav > div{
		margin: 0 0 20px; /*terada*/
		overflow: hidden;
	}
	footer#it_footer #footer_nav p{
		margin: 0 0 15px;
		color: #fff;
		font-weight: bold;
	}
	footer#it_footer #footer_nav ul li{
		float: left;
	}
	footer#it_footer #footer_nav ul li:not(:last-child) a:after{
		content: "／";
	}

/* ▼ ページ上部へ戻る */
.pagetop {
	width: 70px;
	height: 70px;
	background: #1d2088;
	border-radius: 50%;
	border: 1px solid #fff;
	font-size: 12px;
	color: #fff;
	line-height: 1.2;
	text-align: center;
	position: fixed;
	bottom:10px;
	right:10px;
	z-index: 2000;
	cursor: pointer;
	}
	.pagetop::before {
		display: block;
		content: "";
		width: 17px;
		height: 15px;
		margin: 10px 30px 6px;
		background: url(../img/icon_arrow_w.png) no-repeat top center;
		background-size: contain;
		-webkit-transform: rotate(270deg);
		transform: rotate(270deg);
		}


/* ▼ コピーライト */
#copyright {
	font-size: 12px;
	color: #fff;
	text-align: center;
	}


/* ▼▼▼ 768px〜1220px
=====================================*/
@media screen and (max-width: 1220px) {
	header .container{
	padding-right: 120px;
	}
	#gnav ul > li a {
		padding: 20px 15px;
		font-size: 16px;
	}
}

/* ▼▼▼ 480px〜768px
=====================================*/
@media screen and (max-width: 768px) {

#wrapper {width: 100%;}
#screen {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color:rgba(0,0,0,0.8);
	z-index: 1;
	}
.container {padding: 0 25px;}

.span_1,.span_2,.span_3,.span_4,.span_5,.span_6,.span_7,.span_8,.span_9,.span_10,.span_11,.span_12{width: 100%;}
.col {margin: 0;}

.pc {display: none;}
.sp {display: block;}


/* タイトル */
#site_title {
	width: 50%;
	height: 50px;
	}
	#site_title img{
		width: auto;
		max-width: 130px;
		}
h1.title {
	height: 150px;
	margin-bottom: 20px;
	margin-top: 75px;
	}
	h1.title span{
		font-size: 28px;
		}
h2.title{
	font-size: 20px;
	line-height: 1.56
	}
	h2.title.center {
		margin-bottom: 20px;
		font-size: 24px;
		}
.mphasis {
	font-size: 30px;
	}
	span.small {
		font-size: 70%;
		}
/* ボタン */
.btn a {
	display: block;
	/* width: 80%; */
	padding: 14px;
	margin: 0 auto;
	}
	.btn a::after {
		width: 30px;
		right: 10px;
		}
/* ボタン グリーン */
.btn.greeen a span {
	margin-top: 5px;
	font-size: 80%;
	}

/* ▼▼▼ ヘッダー
=====================================*/
body {font-size: 14px;}
body.wrap {overflow: hidden;}

header {
	width: 100%;
	height: 75px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999;
	overflow: visible;
	}

.header_inner {
	width: 100%;
	height: 75px;
	background: #fff;
	padding: 15px 20px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999;
	}

/* グローバルナビゲーション */
#gnav {
	display: block!important;
	-webkit-transition: .5s ease-in-out;
	-moz-transition: .5s ease-in-out;
	transition: .5s ease-in-out;
	float: none;
	width: 100%;
	max-height: 100vh;
	padding-top: 51px;
	margin: 0;
	position: absolute;
	top: -1000px;
	left: 0;
	z-index: 1000;
	overflow: auto;
	}
#gnav.open {
	-moz-transform: translateY(1000px);
	-webkit-transform: translateY(1000px);
	transform: translateY(1000px);
	}
#gnav ul {display: block;clear: both;border-top: 1px solid #1d2088;}
	#gnav ul > li {
		float: none;
		width: 100%!important;
		max-width: 100%!important;
		height: auto;
		text-indent: 0;
		}
	#gnav ul > li > a {
		height: 50px!important;
		background: #fff;
		background-size: 10px 10px!important;
		border-bottom: 1px solid #ccc;
		padding: 0 15px;
		color: #333;
		line-height: 50px;
		font-weight: bold;
		}
	#gnav ul > li > a:hover {
		text-decoration: none;
		opacity: 1;
		}
ul > li.contact a{
	width: 75px;
	height: 75px;
	padding: 15px 0px;
	font-size: 11px;
	position: fixed;
	right: 75px;
	z-index: 99999;
	}
	ul > li.contact a img{
		width: 35px;
		margin: 0 auto 5px;
		}


/* メニューボタン */
.menu {
	display: block;
	width: 75px;
	height: 75px;
	background: #fff;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2000;
	}
.menu span {
    display:block;
    position:absolute;
    top: 16px;
    right: 17px;
    width: 40px;
    height: 23px;
    background: #000;
    border-top: 10px solid #fff;
    border-bottom: 10px solid #fff;
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
    box-sizing:border-box;
    -moz-transition:all 0.3s;
    -webkit-transition:all 0.3s;
    transition:all 0.3s;
 }
.menu span:before {
    content:'';
    position:absolute;
    width: 40px;
    height: 3px;
    background: #000;
    top: -10px;
    right:0;
    -moz-transition:all 0.3s;
    -webkit-transition:all 0.3s;
    transition:all 0.3s;
 }
.menu span:after {
    content:'';
    position:absolute;
    width: 40px;
    height: 3px;
    background: #000;
    bottom: -10px;
    right:0;
    -moz-transition:all 0.3s;
    -webkit-transition:all 0.3s;
    transition:all 0.3s;
 }
.menu span.active {
    background:#fff;
	}
.menu span.active:before {
    -moz-transform:rotate(-135deg);
    -webkit-transform:rotate(-135deg);
    transform:rotate(-135deg);
    top:0;
    right:0;
	}
.menu span.active:after {
    -moz-transform:rotate(135deg);
    -webkit-transform:rotate(135deg);
    transform:rotate(135deg);
    bottom:0;
    right:0;
	}
.menu .icon {
	text-indent: -9999px;
	}
	.menu .m_name {
		color: #333;
		text-align: center;
		position: absolute;
		bottom: 7px;
		right: 0px;
		width: 100%;
		font-size: 14px;
		}
		.menu .m_name.active {display: none;}
		.menu .icon.active + p.m_name,	p.m_name02 {
			display: none;
			}
			.menu .icon.active + p.m_name + p.m_name02 {
				display: block!important;
				}


/* ▼▼▼ メイン 「コンテンツとサイドを囲む要素」
=====================================*/
#header_inner,
#main,#contents,#side,
footer,#footer_inner {
	float: none;
	width: 100%;
	}
#path {
	padding: 0 15px;
	margin-bottom: 20px;
	}

#main {
	margin-top: 75px;
	margin-bottom: 60px
}

.menu_fixed {
	position: fixed;
	width: 100%;
	height: 100%;
}


/* ▼▼▼ フッター
=====================================*/
footer {
	width: 100%;
	background: #1d2088;
	padding: 50px 0 15px;
	clear: both;
	overflow: hidden;
	}
/* 総合TOP　footer */
footer#top_footer .container{
	max-width: 860px;
}
footer#top_footer #footer_nav{
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	font-size: 13px;
	font-feature-settings: 'palt'1;
}
	footer#top_footer #footer_nav li{
		width: 50%;
		margin: 0 0 30px;
	}
	footer#top_footer #footer_nav a{
		color: #fff;
		font-weight: bold;
	}
	footer#top_footer .logo{
		width: 116px;
		margin-bottom: 50px;
	}

	/* IT研究開発 */
	footer#it_footer #footer_inner{
		display: flex;
		flex-wrap: wrap;
	}
	footer#it_footer #footer_logo{
		display: flex;
		width: 100%;
		margin-right: 0;
		order: 2;
	}
	footer#it_footer #footer_logo li{
		margin: 0 0 40px;
	}
	footer#it_footer #footer_logo li:first-child{
		width: 35%;
		margin-right: 5%;
		flex-shrink: 0;
	}
	footer#it_footer #footer_logo li.btn_contact{
		width: 60%;
	}
	footer#it_footer #footer_logo .btn_contact a::before{
		background: url(../img/icon_contact_b.png) no-repeat top center/contain;
		margin-right: 10px;
		width: 17px;
		height: 13px;
	}
	footer#it_footer #footer_logo .btn_contact a:after{
		background: none;
	}
	footer#it_footer .btn_contact a{
		background: #fff;
		width: 100%;
		padding: 13px;
		color: #1d2088;
		font-size: 13px;
	}
	footer#it_footer #footer_nav{
		font-size: 14px;
		margin: 0 0 30px;
	}
		footer#it_footer #footer_nav > div{
			margin: 0 0 30px;
		}
		footer#it_footer #footer_nav p{
			margin: 0 0 15px;
			color: #fff;
			font-weight: bold;
		}
		footer#it_footer #footer_nav ul li{
			float: left;
		}
		footer#it_footer .btn_contact span.pc{
			display: none;
		}


/* ▼ ページ上部へ戻る */
.pagetop {
	width: 60px;
	height: 60px;
	bottom: 15px;
	right: 15px;
	font-size: 11px;
	}
	.pagetop::before {
		width: 15px;
		height: 10px;
		margin: 9px 24px 6px;
		}

/* ▼ コピーライト */
#copyright {
	font-size: 10px;
	}


}
