@charset "utf-8";
/* ヘッダー   SNSボタンのスタイルは各言語のCSSに記述してあります
------------------------------------------------------------------------ */
.wrap-header {
	border-top:solid 2px #1c90bd;
}
.header ul {
	margin-bottom: 0;
}
.header .logo {
	padding:15px 0;
	float: left;
}
.header .logo.sp {
	display: none;
}
.header .logo a:hover {
	opacity: 0.7;
	text-decoration: none;
}
.logo li img:first-child {
	margin-right: 13px;
}
.header-right {
	float: right;
}
.header .language:after{
	content:".";
	display:block;
	height:0;
	clear:both;
	visibility:hidden;
}
.header .language li {
	float: left;
	width: 65px;
	height: 17px;
	margin-left: 1px;
	padding-left: 1px;
	text-align: center;
	font-size: 11px;
	line-height: 17px;
	background: #f4f4f4;
	border-left: 1px solid #bbb;
}
.header .language li:first-child {
	margin-left: 0;
	padding-left: 0;
	border: none;
}
.header .language li span,
.header .language li a {
	display: block;
	background: #f4f4f4;
}
.header .language li a {
	color: #2199d4;
}
.header .language li.current span,
.header .language li a:hover {
	color: #fff;
	text-decoration: none;
	background: #008acf;
}
.btn-language {
	display: none;
}
.header .link {
	float: right;
	margin: 10px 0;
}
.header .link li {
	float: left;
	font-size: 12px;
	line-height: 1em;
}
.header .link li:first-child {
	margin-right: 5px;
	padding-right: 5px;
	border-right: 1px solid #bbb;
}
#btn_menu {
	display: none;
}
@media screen and (max-width: 959px) {
	.header .logo {
		padding-top: 24px;
	}
	.header .logo img:first-child {
		width: 140px;
	}
	.header .logo img:nth-child(2) {
		width: 220px;
	}
}
@media screen and (max-width: 767px) {
	.wrap-header {
		position: fixed;
		z-index: 99999;
		width: 100%;
		background: #fff;
		border-top-width: 3px;
		border-bottom: 1px solid #C8D9E4;
	}
	.header .logo.pc {
		display: none;
	}
	.header .logo.sp {
		display: block;
		padding: 10px 0 0 0;
	}
	.header .logo.sp img {
		width: 140px;
	}
	.header .link {
		display: none;
	}
	.btn-language {
		display: block;
		float: right;
		width: 72px;
		height: 24px;
		margin-top: 13px;
		margin-right: 13px;
		color: #336699;
		font-size: 12px;
		font-weight: 700;
		line-height: 24px;
		text-align: center;
		border: 1px solid #cccccc;
		border-radius: 4px;
	}
	.header .language {
		display: none;
	}
	#btn_menu {
		display: inline-block;
		float: right;
		width: 38px;
		height: 38px;
		margin: 6px 0;
		text-align: center;
		border: 1px solid #1c90bd;
		border-radius: 4px;
  	}
	.btn_menu {
		position: relative;
		margin: auto;
	}
	.menu_icon {
		display: block;
		position: relative;
		top: 18px;
		width: 30px;
		height: 3px;
		margin: auto;
		padding: 0;
		background: #1c90bd;
		transition: .2s;
	}
	.menu_icon:before,
	.menu_icon:after {
		display: block;
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		width: 30px;
		height: 3px;
		background: #1c90bd;
		transition: .3s;
	}
	.menu_icon:before {
		margin-top: -11px;
	}
	.menu_icon:after {
		margin-top: 7px;
	}
	.menu_icon.close {
		top: 16px;
		background: transparent;
	}
	.menu_icon.close:before,
	.menu_icon.close:after {
		width: 30px;
		margin-top: 0;
		-webkit-transform: rotate(-45deg);
		-moz-transform: rotate(-45deg);
		-ms-transform: rotate(-45deg);
		-o-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}
	.menu_icon.close:after {
		-webkit-transform: rotate(-135deg);
		-moz-transform: rotate(-135deg);
		-ms-transform: rotate(-135deg);
		-o-transform: rotate(-135deg);
		transform: rotate(-135deg);
	}
	body {
		position: relative;
		right: 0;
		overflow-x: hidden; 
	}
	.header .language {
		display: none;
		position: absolute;
		background: #F0F0F0;
		margin: auto;
		padding: 15px 1%;
		top: 50px;
		left: 0;
		right: 0;
		width: 96%;
		box-shadow: 0 0 3px rgba(0, 0, 0, 0.6);
		border: 1px solid #37ADDA;
		z-index: 10000;
	}
	.header .language:after {
		content: ' ';
		display: block;
		position: absolute;
		right: 80px;
		top: -19px;
		width: 35px;
		height: 19px;
		background: url(../images/sp/edge.png) 0 0 no-repeat;
		-webkit-background-size: 35px 19px;
		background-size: 35px 19px;
		z-index: 100;
		visibility: visible;
	}
	.header .language li {
		float: left;
		width: 24%;
		height: auto;
		margin-left: 1%;
		padding-left: 0;
		text-align: center;
		border: none;
	}
	.header .language li:nth-child(2) {
		margin-left: 0;
	}
	.header .language li a,
	.header .language li a:hover,
	.header .language li span {
		display: block;
		color: #336699;
		font-size: 130%;
		font-weight: 700;
		background: #ffffff;
		background: -moz-linear-gradient(top,  #ffffff 49%, #ebebeb 51%);
		background: -webkit-gradient(linear, left top, left bottom, color-stop(49%,#ffffff), color-stop(51%,#ebebeb));
		background: -webkit-linear-gradient(top,  #ffffff 49%,#ebebeb 51%);
		background: -o-linear-gradient(top,  #ffffff 49%,#ebebeb 51%);
		background: -ms-linear-gradient(top,  #ffffff 49%,#ebebeb 51%);
		background: linear-gradient(to bottom,  #ffffff 49%,#ebebeb 51%);
		padding: 10px 0;
		border: 2px solid #AAAAAA;
	}
	.header .language li.current span {
		color: #AEAEAE;
		background: #F9F9F9;
		border-color: #E9E9E9;
	}
	.header .language li#jps {
		display: none;
	}
}

/* グロナビ
------------------------------------------------------------------------ */
.warpNav {
	height: 50px;
	background: #1c90bd;
}
.gnav {
	position: relative;
	z-index: 10;
	border-right: 1px solid #fff;
}
.gnav > li {
	float: left;
	width: 20%;
}
.gnav > li > span {
	display: block;
	padding: 18px 0 17px;
	color: #fff;
	font-size: 14px;
	line-height: 1.1em;
	text-align: center;
	border-right: 1px solid #fff;
	cursor: pointer;
}
.gnav > li > span.row2 {
	padding: 10px 0;
}
.gnav > li:first-child > span {
	border-left: 1px solid #fff;
}
.gnav > li > span:hover,
.gnav > li.active {
	background: #83cee5;
}
.gnav .gnavIn {
	display: none;
	position: absolute;
	top: 50px;
	left: 0;
	width: 100%;
	font-size: 0.95em;
	overflow: hidden;
	background: #bae2f3;		
}
.gnav .gnavIn > div {
	overflow: hidden;
	border: 1px solid #1c90bd;
	border-top: none;
}
.gnav .gnavIn ul {
	overflow: hidden;
	min-height: 80px;
	margin-bottom: 0;
	padding: 20px;
	background: #fff;
}
.gnav .gnavIn li {
	float: left;
	margin: 0 15px 8px 0;
}
.gnavIn a {
	display: block;
	position: relative;
	padding-left: 10px;
}
.gnavIn a:before {
	content: "";
	display: block;
	position: absolute;
	top: 0.45em;
	left: 0;
	width: 0;
	height: 0;
	padding-right: 5px;
	border-style: solid;
	border-width: 4px 0 4px 6px;
	border-color: transparent transparent transparent #1c8fbd;
}
.gnavIn .first {
	float: left;
	width: 200px;
	padding: 20px;
	font-weight: 700;
	line-height: 1.4em;
	background: #bae2f3;
}

@media screen and (max-width: 959px) {
	.gnav > li > span {
		font-size: 13px;
	}
}
@media screen and (max-width: 767px) {
	.warpNav {
		position: fixed;
		z-index: 1000;
		top: 0;
		right: -210px;
		float: none;
		width: 210px;
		height: 100% !important;
		overflow-y: scroll;
	}
	.gnav {
		width: 100%;
		border: none;
	}
	.gnav > li {
		float: none;
		width: 100%;
	}
	.gnav > li > span {
		padding: 20px 0;
		font-size: 1.1em;
	}
	.gnav > li > span.row2 {
		padding: 13px 0 12px;
	}
	.gnav > li > span,
	.gnav > li:first-child > span {
		border-right: none;
		border-left: none;
		border-bottom: 1px solid #fff;
	}
	.gnav > li > span:hover,
	.gnav > li.active {
		background: #1c90bd;
	}
	.gnav .gnavIn {
		position: static;
		font-size: 1em;
		line-height: 17px
	}
	.gnavIn .first {
		width: auto;
		float: none;
		padding: 12px 15px;
	}
	.gnav .gnavIn ul {
		min-height: 0;
		padding: 8px 15px 0;
	}
	.gnav .gnavIn li {
		float: none;
		margin: 0 15px 10px 0;
	}
	.gnavIn li a {
		padding: 2px 0 2px 10px;
	}
	.gnavIn .first br,
	.gnav .gnavIn ul li br {
		display: none;
	}
}

/* ローカルナビ
------------------------------------------------------------------------ */
.localNav{
	padding:3px 0;
	border-bottom:solid 1px #1c90bd;
}
.localNav > div {
	font-size: 0.9em;
	padding: 8px 0 2px;
	background: #f3f3f3;
}
.localNav p {
	margin-bottom: 6px;
	font-weight: 700;
	line-height: 1.1em;
}
.localNav ul {
	overflow: hidden;
	margin-bottom: 0;
}
.localNav li {
	float: left;
	margin: 0 10px 6px 0;
	padding-right: 10px;
	line-height: 1.25em;
	white-space: nowrap;
	border-right: 1px solid #1c90bd; 
}
.localNav li:last-child {
	padding-right: 0;
	border: none;
}
@media screen and (max-width: 767px) {
	.localNav > div {
		margin-bottom: 0;
	}
	.localNav p,
	.localNav li {
		margin-bottom: 8px;
	}
}

/* フッター
------------------------------------------------------------------------ */
.pagetop {
	margin-top: 40px;
}
.pagetop a {
	display: block;
	width: 88px;
	height: 25px;
	margin: 0 0 0 auto;
	color: #fff;
	font-size: 10px;
	text-align: center;
	line-height: 27px;
	cursor: pointer;
	background: #1c90bd;
	border-radius: 4px 4px 0 0; 
}
.pagetop a:before {
	content: "";
	display: inline-block;
	width: 0;
	height: 0;
	margin-top: -3px;
	margin-right: 4px;
	vertical-align: middle;
	border-style: solid;
	border-width: 0 4px 6px 4px;
	border-color: transparent transparent #ffffff transparent;
}
.pagetop a:hover {
	opacity: 0.7;
	text-decoration: none;
}
.footer {
	border-top: 1px solid #1c90bd;
}
.footer-contact {
	padding: 16px 0;
	background: #f0f0f0;
}
.footer-contact .inner {
	padding: 10px 25px;
	background: #fff;
	border: 1px solid #ccc;
}
.footer-contact p {
	font-size: 0.933em;
}
.footer-contact h2 {
	color: #1c90bd;
	font-size: 1.333em;
	font-weight: 700;
}
.footer-contact h2 + p {
	font-size: 1.067em;
	font-weight: 700;
}
.footer-contact h2 + p span {
	font-size: 0.750em;
}
.footer-contact .tel {
	padding: 4px 0 2px 32px;
	font-size: 1.600em;
	font-weight: 700;
	line-height: 1em;
	background: url(../images/icon_tel.png) left center no-repeat;
	background-size: 25px;
}
.footer-contact a,
.footer-contact a:hover {
	color: #336699;
	text-decoration: none;
}
.footer-links {
	padding: 15px 0;
	overflow: hidden;
}
.footer-links li {
	float: left;
	margin-bottom: 0;
	margin-right: 22px;
	font-size: 0.9em;
}
.footer-links li:last-child {
	margin-right: 0;
}
.footer-map dl {
	border: 1px solid #DFDFDF;
	border-top: none;
}
.footer-map dt,
.footer-map dd {
	padding: 2px 5px;
	font-size: 0.85em;
	border-top: 1px solid #DFDFDF;
}
.footer-map dt {
	float: left;
	width: 20%;
	color: #0092cb;
	font-weight: 700;
}
.footer-map dd {
	overflow: hidden;
}
.footer-bottom {
	padding-bottom: 20px;
}
.copyright {
	margin: 20px 0;
	text-align: center;
}
.copyright li {
	display: inline-block;
	font-size: 0.800em;
	vertical-align: middle;
}
.copyright li:first-child {
	margin-right: 10px;
}
@media screen and (max-width: 767px) {
	.footer-map {
		display: none;
	}
	.pagetop a {
		margin: 40px auto 0;
	}
	.pagetop a:hover {
		opacity: 1;
	}
	.footer-contact {
		padding: 16px 0;
	}
	.footer-contact .inner {
		padding: 15px;
	}
	.footer-contact h2 {
		font-size: 1.286em;
	}
	.footer-contact a {
		display: block;
	}
	.footer-contact .inner p:last-child {
		margin-top: 10px !important;
	}
	.footer-links {
		max-width: 320px;
		margin: auto;
		padding: 20px 0 10px;
	}
	.footer-links li {
		width: 50%;
		margin-bottom: 10px;
		margin-right: 0;
	}
	.footer-bottom {
		padding-top: 20px;
		border-top: 1px solid #cccccc;
	}
	.copyright {
		margin: 0 0 20px 0;		
	}
	.copyright li {
		display: block;
	}
	.copyright li:first-child {
		margin-bottom: 10px;
		margin-right: 0;
	}
	body#sp .footer-contact {
		font-size: 13px;
	}
	body#sp .footer-links li {
		font-size: 1.02em;
	}
}

/* pc切り替えボタン */
.change-view-mode {
	display: none;
}
body#sp .change-view-mode {
	display: block;
	margin-bottom: 20px;
}

/* ぱんくず
------------------------------------------------------------------------ */
.currentPosition {
	padding: 10px 0;
	margin-bottom: 0;
	font-size: 0.9em;
}
.currentPosition a {
	margin: 0 10px;
}
.currentPosition a:first-child {
	margin-left: 0;
}
.currentPosition span {
	margin-left: 10px;
}
@media screen and (max-width: 767px) {
	.currentPosition {
		padding: 5px 0 10px;
	}
}

/* コンテンツ
------------------------------------------------------------------------ */
#contents {
	max-width: 944px;
	margin: 0 auto;
}
body.home #contents {
	width: 944px;
}
@media screen and (max-width: 960px) {
	#contents {
		width: 95%;
	}
	body.home #contents {
		width: 944px;
	}
}
@media screen and (max-width: 767px) {
	.container {
		padding-top: 29px;
	}
}