@charset "UTF-8";
/* ----------------------------------------------------------------------
 全体の基本・共通設定
------------------------------------------------------------------------- */
@import url(https://fonts.googleapis.com/css?family=Lato:400,700);
@import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);

html, body { height: 100%; }

html { font-size: 6.25%; } /* 基本サイズを約1pxに設定 1rem=1px */

img { max-width: 100%; height: auto; vertical-align: bottom;
-webkit-backface-visibility: hidden;}

body { font-family: Lato, "Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
	
h1, h2, h3, h4, h5 { font-weight: normal; }

th { text-align: left; font-weight: normal; }

a:hover{
  opacity: 0.6 ;
  transition: 0.6s ;
}

a{
	word-break: break-all;
}

ul li {
  overflow: hidden;
  text-overflow: ellipsis;
}

.clearfix:after{
  content: "";
  display: block;
  clear: both;
}

.fadein {
  opacity : 0;
  transform: translateY(20px);
  transition: all 1s;
}

body {
	font-size: 16px;  /* rem未対応ブラウザ用 */
	font-size: 16rem;
	line-height: 1.7;
	color: #555;
	background: #FFF;
}

#wrap {
	width: 100%;
	overflow:hidden;
}

header{
	overflow:hidden;
}

#header_inner {
	width: 1240px;
	clear: both;
	margin-top: 0;
	margin-right: auto;
	margin-bottom: 0;
	margin-left: auto;
}

.logo {
	float: left;
	height: 55px;
	width: 510px;
	padding: 15px 0 5px 60px;
}

.logo :hover{
	opacity:1;
}

.header_inner_data {
	float: right;
	height: 60px;
	width: 458px;
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 100;
}

/*英語ページ*/
.header_inner_data_english{
		float: right;
	height: 60px;
	width: 463px;
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 100;
}

.teltop {
	font-size: 1.6em;
	line-height: 1.1em;
	margin-left:15px;
	line-height:60px;
	float:left;
	background-color:#FFF;
	padding:0 1em;
}

.teltop a{
	text-decoration:none;
	color:#333;
	opacity:1;
}

.mailtop{
	background-color: #D8E4E4;
	float: left;
	width: 7%;
	height:60px;
	padding: 1.2em;
	position:relative;
	line-height:0;
}

.mailtop:hover {
  color: #FFF;
	opacity:0.99;
}

.mailtop::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  content: '';
  background:#A5C0C0;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.mailtop:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}

.lang_btn1 {
  position: relative;
  display: inline-block;
	height: 60px;
	width: 120px;
  text-align: center;
  text-decoration: none;
  transition: .3s;
	line-height:60px;
	background-color:#222;
	color:#FFF;
	font-size: 1.1em;
}

.lang_btn1:hover {
  color: #FFF;
	opacity:0.99;
}

.lang_btn1::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  content: '';
  background:#FF7373;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}

.lang_btn1:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}


nav.g-nav {
  display:block;/*PCでは表示*/
}
.slicknav_menu {
  display:none;/*PC時は非表示*/
}
.g-nav {
	width: 100%;
	background: #004055;
	float: left;
	box-shadow: 2px 2px 4px rgba(185, 183, 183, 0.4);
	position:relative;
	border-bottom:solid 1px #DDD;
	z-index:100;
}

.g-nav ul {
	width: 1120px;
	margin: auto;
}

.g-nav li {
	float: left;
	height: 80px;
}

.g-nav li a{
	height: 80px;
	width: 280px;
	display: block;
	text-decoration: none;
	color: #FFF;
	text-align: center;
	line-height:80px;
	font-size:1.15em;
}

.g-nav li a:hover{
	background-color:#061F27;
	color:#CCC;
	opacity:1;
}

.back_btn{
  width:200px;
	margin:0 auto;
	padding:10px;
	background-color:#F6F6F6;
	border:1px #CCC solid;
	text-align:center;
	margin-top:1em;
}

.back_btn a{
	display:block;
	text-decoration:none;
	color:#333;
}

/*フッター*/
footer {
	clear: both;
	width: 100%;
	background-color:#FFF;
	border-top:solid 1px #B4C1D3;
}

footer .f1-wrap{
	width: 1120px;
	overflow:hidden;
	margin:0 auto;
}

.f1-wrap h3 a:hover{
	opacity:1;!important
}

.footer_left{
	width:70%;
	padding-bottom:4em;
	float:left;	
}

.flogo {
	max-width:60%;
	margin:3em auto 3em ;
}

.data_facility{
	overflow:hidden;
}

.tel_footer{
	font-size: 1.3em;
	background-color:#EEE;
	float:left;
	padding:0 1em;
	height:70px;
	line-height:70px;
}

.tel_footer a{
	color:#555;
	opacity:1;
	text-decoration:none;
}

.mailfooter {
	background-color: #D8E4E4;
	float: left;
	width: 35px;
	padding: 3%;
	position: relative;
	line-height: 0;
	display:block;
}

.mailfooter:hover {
  color: #FFF;
	opacity:0.99;
}

.mailfooter::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  content: '';
  background:#A5C0C0;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}

.mailfooter:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}

.address_box {
	font-size:1em;
	float:right;
}


.footer_right{
	width:20%;
	float:right;
	border-left:solid 1px #B4C1D3;
}

.footer_right_inner{
	padding:4em 2em;
	font-size:0.95em;
}

.footer_right_inner a{
	color:#555;
	text-decoration:none;
}

.page{
	margin-bottom:1em;
}

.lang_btn2 {
  position: relative;
  display: inline-block;
	height: 70px;
	width: 120px;
  text-align: center;
  text-decoration: none;
  transition: .3s;
	line-height:70px;
	background-color:#222;
	color:#FFF;
	font-size: 1.1em;
	float:left;
}

.lang_btn2.:hover {
  color: #FFF;
	opacity:0.99;
}

.lang_btn2::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  content: '';
  background:#FF7373;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.lang_btn2:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}


.cp {
	clear: both;
	text-align: center;
	font-size: 11px; /* rem*/
	font-size: 11rem;
	color: #FFF;
	line-height: 50px;
	background: -moz-linear-gradient(left,#45699D, #6A8CC1);
	background: -webkit-linear-gradient(left,#45699D, #6A8CC1);
	background: linear-gradient(to right,#45699D, #6A8CC1);
}

#page-top {
  position: fixed;
  bottom: 20px;
  right: 0px;
  font-size: 0.9em;
}

#page-top a {
  background: #45699D;
  text-decoration: none;
  color: #fff;
  width: 80px;
  padding: 30px 0;
  text-align: center;
  display: block;
  border-radius: 80px;
}

#page-top a:hover {
	text-decoration: none;
	background: #999;
}

/* タブレット・スマホの画面用CSS ※ナビゲーション（ほかは各cssへ）
------------------------------------------------------------------------- */
@media screen and (min-width:961px)and ( max-width:1024px){
.sp { display: none; } /* spを表示 */
.pc  { display: none; }  /* pcを非表示 */
.tablet{ display: block; }  /* tabletを表示 */

#wrap {
	max-width:100%;
	overflow:hidden;
}

#header_inner {
	width: 100%;
}


nav.g-nav {
 display:block;/*PC時は表示*/
}
.slicknav_menu {
display:none;/*PC時は非表示*/
}

.g-nav ul {
	width: 100%;
	margin: auto;
}

.g-nav li {
	float: left;
	height: 80px;
	width: 25%;
}

.g-nav li a {
	height: 80px;
	width: 100%;
}


footer .f1-wrap {
	padding: 0;
}

.footer_left {
	padding: 1em 0 4em;
}

.data_facility {
	overflow: hidden;
	margin-left: 1em;
}

.address_box {
	font-size: 1em;
	float: left;
	text-align: left;
	margin-left: 1em;
	margin-top:0;
}

.footer_right {
	width: 29%;
	float: right;
	border-left: solid 1px #B4C1D3;
	padding-bottom:0em;
}

.footer_right_inner {
	padding: 6em 0 3em 2em;
	font-size: 0.95em;
	text-align: left;
}


}

/* タブレット対応
------------------------------------------------------------------------- */
@media screen and (min-width:600px)and ( max-width:960px){
.sp { display: none; } /* spを表示 */
.pc  { display: none; }  /* pcを非表示 */
.tablet{ display: block; }  /* tabletを非表示 */

#wrap {
	max-width:100%;
	overflow:hidden;
}

nav.g-nav {
  display:block;/*タブレットは表示*/
}
.slicknav_menu {
  display:none/*タブレットは非表示*/
}

.g-nav ul {
	width: 100%;
	margin: auto;
}

.g-nav li {
	float: left;
	height: 80px;
	width: 25%;
}

.g-nav li a {
	height: 80px;
	width: 100%;
}


#header_inner {
	width: 100%;
	clear: both;
	margin-top: 0;
	margin-right: auto;
	margin-bottom: 0;
	margin-left: auto;
}

footer .f1-wrap {
	padding: 0;
	width:100%;
}

.flogo {
	max-width: 80%;
	margin: 2em auto 2em;
}

.footer_left {
	padding: 1em 0 2em;
}

.data_facility {
	overflow: hidden;
	margin-left: 4em;
}

.address_box {
	font-size: 1em;
	float: left;
	text-align: left;
	margin-top: 1em;
}

.footer_right {
	width: 29%;
	float: right;
	border-left: solid 1px #B4C1D3;
	padding-bottom:1em;
}

.footer_right_inner {
	padding: 5em 0 4em 2em;
	font-size: 0.95em;
	text-align: left;
}

}




/* スマホの画面用CSS
------------------------------------------------------------------------- */
@media screen and (max-width:599px) {
.sp { display: block; } /* spを表示 */
.pc  { display: none; }  /* pcを非表示 */
.tablet{ display: none; }  /* tabletを非表示 */

#wrap {
	max-width:100%;
	overflow:hidden;
}

nav.g-nav {
  display:none;/*モバイル時は非表示*/
}
.slicknav_menu {
  display:block;/*モバイル時は表示*/
}

#mainv {
	overflow: hidden;
	width: 100%;
	height: auto;
}

#mainv img{
	width:100%;
	height:auto;
}

#header_inner {
	width: 100%;
	clear: both;
	margin-top: 0;
	margin-right: auto;
	margin-bottom: 0;
	margin-left: auto;
}

.header_inner_data {
	float: none;
	height: 60px;
	width: 100%;
	overflow: hidden;
	position: relative;
}

.header_inner_data_english{
	float: none;
	height: 60px;
	width: 100%;
	overflow: hidden;
	position: relative;
}

.teltop {
	font-size: 1.4em;
	line-height: 1.1em;
	margin-left: 0px;
	line-height: 60px;
	float: left;
	background-color: #FFF;
	padding: 0 6%;
	width:50%;
}

.mailtop {
	width: 7%;
	padding: 5%;
}

.lang_btn1 {
	position: relative;
	display: inline-block;
	height: 60px;
	width: 21%;
	text-align: center;
	text-decoration: none;
	transition: .3s;
	line-height: 60px;
	background-color: #222;
	color: #FFF;
	font-size: 1.1em;
}

footer .f1-wrap {
	padding: 2em 0 1em;
	width: 94%;
	clear: both;
	text-align: center;
  margin:0 auto;
}


.footer_left {
	width: 100%;
	padding-bottom: 0;
	float: none;
}

.flogo {
	text-align: center;
	max-width: 100%;
	margin: 0 auto;
}

.address {
	font-size: 1em;
}

.tel_footer {
	font-size: 1.5em;
	width: 100%;
	margin: 0.5em 0 0 0;
	padding: 0;
	float:none;
}

.mailfooter {
	width: 10%;
	padding: 6% 45%;
	float: none;
	display: block;
}

.lang_btn2 {
	width: 100%;
	float: none;
}

.address_box {
	font-size: 1em;
	float: none;
	clear: left;
	margin-top:1em;
}

.footer_right {
	float: none;
	border-left: none;
	text-align: left;
	background-color:#FAFAFA;
	width:100%;
	margin-top:1em;
}

.footer_right_inner {
	width: 50%;
	padding: 2em 0em;
	font-size: 1em;
	margin: 0 auto;
}

footer .cp {
	overflow:hidden;
}

#page-top {
  position: fixed;
  bottom: 20px;
  right: 0px;
  font-size: 0.9em;
}

#page-top a {
  background: #6CC0EB;
  text-decoration: none;
  color: #fff;
  width: 80px;
  padding: 30px 0;
  text-align: center;
  display: block;
  border-radius: 80px;
}

#page-top a:hover {
	text-decoration: none;
	background: #999;
}
}

/* スマホの画面用CSS
------------------------------------------------------------------------- */
@media screen and (max-width:321px) {
.sp { display: block; } /* spを表示 */
.pc  { display: none; }  /* pcを非表示 */
.tablet{ display: none; }  /* tabletを非表示 */

.teltop {
	font-size: 1.2em;
}

.mailtop {
	width: 7%;
	padding: 7% 5%;
}

.mailfooter {
	width: 11%;
	padding: 8% 45%;
}

.footer_right_inner {
	width: 55%;
}
}