@charset "utf-8";
/*
 * サイト共通装飾に関する共通のCSS
 */

/* ヘッダlayout */
#c_header{
	position: absolute;
	top: 0px;
	left: 0px;
	table-layout: fixed;
	display: table;
	padding: 25px 0;
	width: 100%;
	z-index: 3;
}
.c_header-sub{
	table-layout: fixed;
	display: table;
	padding: 25px 0;
	width: 100%;
}
#c_header .header_logo,
.c_header-sub .header_logo{
	display: table-cell;
	padding-left: 20px;
	margin: 0;
	width: 295px;
	line-height: 0;
	vertical-align: middle;
}
#c_header .header_nav,
.c_header-sub .header_nav{
	display: table-cell;
	text-align: right;
	vertical-align: middle;
}

.c_header-menu{
	display: -webkit-flex;
	display: flex;
	justify-content: flex-end;
}
.c_header-menu .nav{
	padding: 20px 36px 0 0;
}
.c_header-menu .nav a{
	position: relative;
	font-size: 18px;
	color: white;
	text-decoration: none;
}
.c_header-menu .nav a::after{
	position: absolute;
	bottom: 0;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: white;/* ボーダーカラー */
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .1s;
}
.c_header-menu .nav a:hover::after {
	transform: scale(1, 1);
}
.c_header-menu .nav .active::after{/* アクティブ時の設定 */
	position: absolute;
	bottom: 0px;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: white;/* ボーダーカラー */
	transform: scale(1, 1);
	transform-origin: left top;
	transition: transform .1s;
}
.c_nav01-menu .menu_li .active:hover::after{
	transform: scale(1, 1);
}

.c_header-menu .bt{
	padding-right: 20px;
}
.c_header-menu .bt a{
	position: relative;
	display: block;
	background-color: #1a7ee1;
	border-radius: 60px;
	-webkit-border-radius: 60px;
	-moz-border-radius: 60px;
	padding: 20px 40px;
	color: white;
	text-decoration: none;
}
.c_header-menu .bt a i{
	position: relative;
	top: 2px;
	font-size: 20px;
}
.c_header-menu .bt .bt_txt{
	position: relative;
	z-index: 3;
}
.c_header-menu .bt a::after{
	position: absolute;
	bottom: 0;
	left: 0;
	content: '';
	width: 100%;
	height: 100%;
	border-radius: 60px;
	-webkit-border-radius: 60px;
	-moz-border-radius: 60px;
	background-color: rgba(1,94,172,0.5);
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .03s;
}
.c_header-menu .bt a:hover::after {
	overflow: hidden;
	transform: scale(1, 1);
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	#c_header{
		padding: 20px 0;
	}
	.c_header-sub{
		padding: 20px 0;
	}
	#c_header .header_logo,
	.c_header-sub .header_logo{
		width: 26%;
	}

	.c_header-menu .nav{
		padding: 16px 20px 0 0;
	}
	.c_header-menu .nav a{
		font-size: 16px;
	}

	.c_header-menu .bt a{
		padding: 14px 20px;
	}
	.c_header-menu .bt a i{
		top: 1px;
		font-size: 18px;
	}
}
@media print{
	#c_header{
		padding: 20px 0;
	}
	.c_header-sub{
		padding: 20px 0;
	}
	#c_header .header_logo,
	.c_header-sub .header_logo{
		width: 24%;
	}

	.c_header-menu .nav{
		padding: 15px 20px 0 0;
	}
	.c_header-menu .nav a{
		font-size: 14px;
	}

	.c_header-menu .bt a{
		padding: 14px 20px;
		font-size: 14px;
	}
	.c_header-menu .bt a i{
		top: 1px;
		font-size: 16px;
	}
}
@media screen and (max-width: 767px) {
	#c_header{
		display: none;
	}
}


/* 下層ページヘッダlayout */
.c_promo{
	position: relative;
	overflow: hidden;
	width: 100%;
	min-width: 1110px;
}
.c_promo-tit{
	position: absolute;
	top: 160px;
	left: 0px;
	width: 100%;
	color: white;
	text-align: center;
	text-shadow:0px 0px 10px #202020;
	-moz-text-shadow:0px 0px 10px #202020;
	-webkit-text-shadow:0px 0px 10px #202020;
	z-index: 3;
}
.c_promo-tit .tit_in{
	position: relative:
}
.c_promo-tit .tit_in::before{
	content: '';
	position: absolute;
	top: 0px;
	left: 50%;
	width: 2px;
	height: 150px;
	display: block;
	background-color: white;
	z-index: 3;
	transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
}
.c_promo-tit .tit_in .main{
	position: absolute;
	top: 0px;
	left: 0%;
	width: 49%;
	font-size: 48px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-align: right;
	z-index: 3;
}
.c_promo-tit .tit_in .sub{
	position: absolute;
	top: 80px;
	left: 50%;
	margin-left: 30px;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.1em;
	z-index: 3;
}

.c_promo-photo{
	position: relative;
	left: 50%;
	margin: 0 0 0 -1000px;
}
@media screen and (min-width: 2001px) {
	.c_promo-photo{
		left: 0%;
		margin: 0px;
	}
	.c_promo-photo img{
		width: 100%;
	}
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	.c_promo{
		min-width: 100%;
	}
	.c_promo-tit{
		top: 100px;
	}
	.c_promo-tit .tit_in::before{
		height: 130px;
	}
	.c_promo-tit .tit_in .main{
		top: 10px;
		font-size: 32px;
	}
	.c_promo-tit .tit_in .sub{
		top: 70px;
		margin-left: 20px;
		font-size: 16px;
	}
	
	.c_promo-photo{
		margin: 0 0 0 -600px;
	}
	.c_promo-photo img{
		width: 1200px;
	}
}
@media print{
	.c_promo{
		min-width: 100%;
	}
	.c_promo-tit{
		top: 100px;
	}
	.c_promo-tit .tit_in::before{
		height: 130px;
	}
	.c_promo-tit .tit_in .main{
		top: 10px;
		font-size: 32px;
	}
	.c_promo-tit .tit_in .sub{
		top: 70px;
		margin-left: 20px;
		font-size: 16px;
	}
	
	.c_promo-photo{
		margin: 0 0 0 -600px;
	}
	.c_promo-photo img{
		width: 1200px;
	}
}
@media screen and (max-width: 767px) {
	.c_promo{
		min-width: 100%;
	}
	.c_promo-tit{
		top: 70px;
	}
	.c_promo-tit .tit_in::before{
		height: 80px;
	}
	.c_promo-tit .tit_in .main{
		font-size: 22px;
	}
	.c_promo-tit .tit_in .sub{
		top: 46px;
		margin-left: 10px;
		font-size: 13px;
	}
	
	.c_promo-photo{
		margin: 0 0 0 -450px;
	}
	.c_promo-photo img{
		width: 900px;
	}
}


/* 下層ページコンタクトlayout */
.c_contact{
	position: relative;
	background-image: url(../img/common/contact_bg.jpg);
	background-position: center center;
	background-size: cover;
	padding: 180px 0;
	color: white;
}
.c_contact .contact_left{
	padding-left: 16%;
	width: 50%;
}
.c_contact .contact_right{
	position: absolute;
	top: 180px;
	left: 50%;
	width: 555px;
	z-index: 3;
}

.c_contact-phone{
	margin: 0 0 15px 0;
	font-size: 60px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.08em;
}
.c_contact-phone .phone_ic{
	position: relative;
	top: -4px;
	display: inline-block;
	padding-right: 15px;
	margin: 0;
}
.c_contact-eigyo{
	margin: 0 0 40px 0;
}

.c_contact-bt{
	overflow: hidden;
	margin: 0 0 0 180px;
	width: 250px;
}
.c_contact-bt a{
	position: relative;
	display: block;
	background-color: #1a7ee1;
	border-radius: 60px;
	-webkit-border-radius: 60px;
	-moz-border-radius: 60px;
	padding: 20px 0px;
	color: white;
	text-align: center;
	text-decoration: none;
}
.c_contact-bt a .bt_txt{
	position: relative;
	z-index: 3;
}
.c_contact-bt a .bt_arrow{
	position: absolute;
	top: 50%;
	right: 60px;
	margin-top: -13px;
	font-size: 25px;
	line-height: 1;
	z-index: 3;
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	.c_contact{
		padding: 120px 0;
	}
	.c_contact .contact_left{
		padding-left: 2%;
		width: 50%;
	}
	.c_contact .contact_right{
		top: 120px;
		left: 52%;
		width: 48%;
	}
	
	.c_contact-phone{
		font-size: 40px;
	}
	.c_contact-phone .phone_ic img{
		width: 42px;
	}
	.c_contact-eigyo{
		margin: 0 0 30px 0;
		font-size: 13px;
	}
	
	.c_contact-bt{
		overflow: hidden;
		margin: 0 0 0 130px;
		width: 220px;
	}
}
@media print{
	.c_contact{
		padding: 100px 0;
	}
	.c_contact .contact_right{
		top: 100px;
		left: 52%;
		width: 48%;
	}
	
	.c_contact-phone{
		font-size: 36px;
	}
	.c_contact-phone .phone_ic img{
		width: 40px;
	}
	.c_contact-eigyo{
		margin: 0 0 30px 0;
		font-size: 11px;
	}
	
	.c_contact-bt{
		overflow: hidden;
		margin: 0 0 0 110px;
		width: 200px;
	}
}
@media screen and (max-width: 767px) {
	.c_contact{
		padding: 60px 0;
	}
	.c_contact .contact_left{
		padding-left: 0%;
		margin: 0 auto 15px auto;
		width: 92%;
	}
	.c_contact .contact_right{
		position: static;
		top: 0px;
		left: 0%;
		margin: 0 auto;
		width: 92%;
	}
	
	.c_contact-phone{
		font-size: 24px;
	}
	.c_contact-phone .phone_ic{
		top: -2px;
		padding-right: 10px;
	}
	.c_contact-phone .phone_ic img{
		width: 28px;
	}
	.c_contact-eigyo{
		margin: 0 0 20px 0;
	}
	
	.c_contact-bt{
		margin: 0 auto;
		width: 220px;
	}
	.c_contact-bt a{
		padding: 12px 0px;
	}
}


/* フッタlayout */
#c_footer{
	background-color: #f3f3f3;
	padding: 80px 0;
}

.c_footer-con01{
	display: table;
}
.c_footer-con01 .c_footer-left{
	display: table-cell;
	width: 50%;
	vertical-align: top;
}
.c_footer-con01 .c_footer-right{
	position: relative;
	display: table-cell;
	vertical-align: top;
}

.c_footer-logo{
	margin-bottom: 30px;
	line-height: 0;
}

.c_footer-nav{
	overflow: hidden;
	display: -webkit-flex;
	display: flex;
	justify-content: flex-end;
}
.c_footer-nav li{
	padding-right: 30px;
}
.c_footer-nav li:last-child{
	padding-right: 0px;
}
.c_footer-nav li a{
	position: relative;
	padding-bottom: 5px;
	font-size: 18px;
	color: black;
	text-decoration: none;
}
.c_footer-nav li a::after{
	position: absolute;
	bottom: 0;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: #a4a4a4;/* ボーダーカラー */
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .1s;
}
.c_footer-nav li a:hover::after {
	transform: scale(1, 1);
}

.c_footer-copy{
	position: absolute;
	bottom: 0px;
	right: 0px;
	margin: 0;
	font-size: 16px;
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	#c_footer{
		padding: 60px 0;
	}

	.c_footer-logo{
		margin-bottom: 20px;
	}
	.c_footer-logo img{/*274*80*/
		width: 219px;
	}

	.c_footer-nav li{
		padding-right: 20px;
	}
	.c_footer-nav li a{
		font-size: 17px;
	}
	
	.c_footer-copy{
		font-size: 15px;
	}
}
@media print{
	#c_footer{
		padding: 60px 0;
	}

	.c_footer-logo{
		margin-bottom: 20px;
	}
	.c_footer-logo img{/*274*80*/
		width: 219px;
	}

	.c_footer-nav li{
		padding-right: 20px;
	}
	.c_footer-nav li a{
		font-size: 16px;
	}
	
	.c_footer-copy{
		font-size: 14px;
	}
}
@media screen and (max-width: 767px) {
	#c_footer{
		padding: 40px 0;
	}
	
	.c_footer-con01{
		display: block;
	}
	.c_footer-con01 .c_footer-left{
		display: block;
		margin-bottom: 15px;
		width: auto;
	}
	.c_footer-con01 .c_footer-right{
		display: block;
	}
	
	.c_footer-logo{
		margin-bottom: 20px;
	}
	.c_footer-logo img{/*274*60*/
		width: 164px;
	}
	
	.c_footer-nav{
		display: none;
		border-top: #5b5b5b solid 1px;
		padding-bottom: 20px;
	}
	.c_footer-nav li{
		float: left;
		padding-right: 0px;
		width: 50%;
	}
	.c_footer-nav li a{
		display: block;
		border-bottom: #5b5b5b solid 1px;
		font-size: 15px;
		text-align: center;
	}
	.c_footer-nav li:nth-child(2n) a{
		border-left: #5b5b5b solid 1px;
	}
	.c_footer-nav li a::after{
		display: none;
	}
	
	.c_footer-copy{
		position: static;
		font-size: 14px;
		text-align: center;
	}
}


/* フッターメニューlayout */
.footer_nav{
	display: -webkit-flex;
	display: flex;
	justify-content: flex-end;
}
.footer_nav li{
	padding-right: 30px;
}
.footer_nav li:last-child{
	padding-right: 0px;
}
.footer_nav li a{
	font-size: 14px;
	color: #222222;
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	.footer_nav li{
		padding-right: 20px;
	}
	.footer_nav li a{
		font-size: 13px;
	}
}
@media print{
	.footer_nav li{
		padding-right: 20px;
	}
	.footer_nav li a{
		font-size: 13px;
	}
}
@media screen and (max-width: 767px) {
	.footer_nav{
		overflow: hidden;
		display: block;
		border-top: #214b9f solid 1px;
		text-align: center;
	}
	.footer_nav li{
		float: left;
		padding-right: 0px;
		width: 50%;
	}
	.footer_nav li a{
		display: block;
		border-bottom: #214b9f solid 1px;
		padding: 8px 0;
		font-size: 13px;
	}
	.footer_nav li:nth-child(2n) a{
		border-left: #214b9f solid 1px;
	}
}

/* コピーライトlayout */
.c_copyright{
	background-color: #214b9f;
	padding: 8px 0 6px 0;
	margin: 0;
	font-size: 12px;
	color: white;
	text-align: center;
}

/* テーブルlayout */
.vertic_top{vertical-align: top;}
.vertic_mid{vertical-align: middle;}
.vertic_bot{vertical-align: bottom;}

.table_nor{/* 通常テーブル */
	overflow: hidden !important;
	table-layout: fixed !important;
	border-collapse: separate !important;
  border-spacing: 0 !important;
  border: none !important;
  border-top: #1c4788 solid 1px !important;
  border-left: #1c4788 solid 1px !important;
	width: 100%;
}
.table_nor tbody tr th{
	background-color: #d1e4f6;
	border-right: #1c4788 solid 1px;
	border-bottom: #1c4788 solid 1px;
	font-weight: normal;
	padding: 12px 15px;
}
.table_nor tbody tr td{
	background-color: white;
	border-right: #1c4788 solid 1px;
	border-bottom: #1c4788 solid 1px;
	padding: 12px 15px;
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	.table_nor tbody tr th{
		font-size: 14px;
	}
	.table_nor tbody tr td{
		font-size: 14px;
	}
}
@media print{
	.table_nor tbody tr th{
		font-size: 12px;
	}
	.table_nor tbody tr td{
		font-size: 12px;
	}
}
@media screen and (max-width: 767px) {
	.table_nor tbody tr th{
		display: block;
		width: auto;
		font-size: 14px;
	}
	.table_nor tbody tr td{
		display: block;
		width: auto;
		font-size: 14px;
	}
}

.table_bg{/* 背景色のみ構成 */
	overflow: hidden !important;
	table-layout: fixed !important;
	border-collapse: separate !important;
  border-spacing: 0 !important;
  border: none !important;
	width: 100%;
}
.table_bg tbody tr th{
	background-color: #1c4788;
	border-right: white solid 5px;
	border-bottom: white solid 5px;
	font-weight: normal;
	padding: 14px 15px;
	color: white;
	vertical-align: top;
}
.table_bg tbody tr td{
	background-color: #d1e4f6;
	border-bottom: white solid 5px;
	padding: 14px 15px;
	vertical-align: top;
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	.table_bg tbody tr th{
		font-size: 14px;
	}
	.table_bg tbody tr td{
		font-size: 14px;
	}
}
@media print{
	.table_bg tbody tr th{
		font-size: 12px;
	}
	.table_bg tbody tr td{
		font-size: 12px;
	}
}
@media screen and (max-width: 767px) {
	.table_bg tbody tr th{
		display: block;
		border-right: white solid 0px;
		border-bottom: white solid 0px;
		width: auto;
		font-size: 14px;
	}
	.table_bg tbody tr td{
		display: block;
		width: auto;
		font-size: 14px;
	}
}

.table_ubar{/* 下線のみ構成 */
	overflow: hidden !important;
	table-layout: fixed !important;
	border-collapse: separate !important;
  border-spacing: 0 !important;
  border: none !important;
	width: 100%;
}
.table_ubar tbody tr th{
	position: relative;
	overflow: hidden;
	font-weight: normal;
	padding: 14px 15px;
	vertical-align: top;
}
.table_ubar tbody tr th::before{
	content: '';
	position: absolute;
	bottom: 0px;
	left: 0px;
	display: block;
	background-color: #d65a25;
	width: 96%;
	height: 2px;
}
.table_ubar tbody tr td{
	position: relative;
	overflow: hidden;
	padding: 14px 15px;
	vertical-align: top;
}
.table_ubar tbody tr td::before{
	content: '';
	position: absolute;
	bottom: 0px;
	left: 0px;
	display: block;
	background-color: #f0c3af;
	width: 100%;
	height: 2px;
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	.table_ubar tbody tr th{
		font-size: 14px;
	}
	.table_ubar tbody tr td{
		font-size: 14px;
	}
}
@media print{
	.table_ubar tbody tr th{
		font-size: 12px;
	}
	.table_ubar tbody tr td{
		font-size: 12px;
	}
}
@media screen and (max-width: 767px) {
	.table_ubar tbody tr th{
		display: block;
		background-color: #d65a25;
		width: auto;
		font-size: 14px;
		color: white;
	}
	.table_ubar tbody tr th::before{
		display: none;
	}
	.table_ubar tbody tr td{
		display: block;
		width: auto;
		font-size: 14px;
	}
	.table_ubar tbody tr td::before{
		display: none;
	}
}

.table_nor-sp{/* 通常テーブル */
	overflow: hidden !important;
	table-layout: fixed !important;
	border-collapse: separate !important;
  border-spacing: 0 !important;
  border: none !important;
  border-top: #06286c solid 1px !important;
  border-left: #06286c solid 1px !important;
	width: 100%;
}
.table_nor-sp thead tr th{
	background-color: #214b9f;
	border-right: #06286c solid 1px;
	border-bottom: #06286c solid 1px;
	font-weight: normal;
	padding: 16px 15px;
	color: white;
}
.table_nor-sp tbody tr th{
	background-color: #4e73be;
	border-right: #06286c solid 1px;
	border-bottom: #06286c solid 1px;
	font-weight: normal;
	color: white;
}
.table_nor-sp tbody tr td{
	background-color: white;
	border-right: #06286c solid 1px;
	border-bottom: #06286c solid 1px;
}
.table_nor-sp tbody tr th .pc_txt,
.table_nor-sp tbody tr td .pc_txt{
	display: block;
	padding: 12px 15px;
}
.table_nor-sp tbody tr th .sp_txt,
.table_nor-sp tbody tr td .sp_txt{
	display: none;
}
@media screen and (min-width: 768px) and (max-width: 1109px) {
	.table_nor-sp thead tr th{
		font-size: 15px;
	}
	.table_nor-sp tbody tr th{
		font-size: 14px;
	}
	.table_nor-sp tbody tr td{
		font-size: 14px;
	}
}
@media print{
	.table_nor-sp thead tr th{
		font-size: 13px;
	}
	.table_nor-sp tbody tr th{
		font-size: 12px;
	}
	.table_nor-sp tbody tr td{
		font-size: 12px;
	}
}
@media screen and (max-width: 767px) {
	.table_nor-sp thead tr th{
		display: none;
	}
	.table_nor-sp tbody tr th{
		overflow: hidden;
		display: block;
		background: linear-gradient(90deg, #4e73be 0%, #4e73be 28%, white 28%, white 100%);
		width: auto;
		font-size: 14px;
	}
	.table_nor-sp tbody tr td{
		overflow: hidden;
		display: block;
		background: linear-gradient(90deg, #4e73be 0%, #4e73be 28%, white 28%, white 100%);
		width: auto;
	}
	.table_nor-sp tbody tr:nth-child(2n) th,
	.table_nor-sp tbody tr:nth-child(2n) td{/* 交互に背景色変更 */
		background: linear-gradient(90deg, #4fbf70 28%, #4fbf70 0%, white 28%, white 100%);
	}
	.table_nor-sp tbody tr th .pc_txt,
	.table_nor-sp tbody tr td .pc_txt{
		display: inline-block;
		float: right;
		padding: 10px 5px;
		width: 70%;
		font-size: 12px;
		color: #171717;
	}
	.table_nor-sp tbody tr th .sp_txt,
	.table_nor-sp tbody tr td .sp_txt{
		display: inline-block;
		float: left;
		padding: 10px 5px;
		width: 28%;
		font-size: 11px;
		color: white;
	}
}

/* SP時にスクロールバーを出す場合 */
.table_nor-ns{/* 通常テーブル */
	overflow: hidden !important;
	table-layout: fixed !important;
	border-collapse: separate !important;
  border-spacing: 0 !important;
  border: none !important;
  border-top: #06286c solid 1px !important;
  border-left: #06286c solid 1px !important;
	width: 100%;
}
.table_nor-ns thead tr th{
	background-color: #214b9f;
	border-right: #06286c solid 1px;
	border-bottom: #06286c solid 1px;
	font-weight: normal;
	padding: 16px 15px;
	color: white;
}
.table_nor-ns tbody tr th{
	background-color: #4e73be;
	border-right: #06286c solid 1px;
	border-bottom: #06286c solid 1px;
	padding: 12px 15px;
	font-weight: normal;
	color: white;
}
.table_nor-ns tbody tr td{
	background-color: white;
	border-right: #06286c solid 1px;
	border-bottom: #06286c solid 1px;
	padding: 12px 15px;
}
@media screen and (max-width: 767px) {
	.scroll_table{
	  overflow: auto;
	  white-space: nowrap;
	}
	.scroll_table::-webkit-scrollbar{　　
	 height: 5px;
	}

	.scroll_table .table_nor-ns{
		width: 800px;
	}
	.scroll_table .table_nor-ns thead tr th{
		width: auto !important;
	}
}

