@charset "UTF-8";

/* ----------------------------------------------------------
 Noto Sans Japanese
---------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700,900&subset=japanese');

/* ----------------------------------------------------------
 html5 elements
---------------------------------------------------------- */
article, aside, figure, figcaption, footer, header, nav, section
{ display: block;}
/* ----------------------------------------------------------
 reseting
---------------------------------------------------------- */
body {
  line-height: 2;
  color: #000;
  font-size: 14px;
  -webkit-text-size-adjust: 100%;
}
body, input, textarea, select, button {
  font-family:'Noto Sans JP', "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro";
  /* 明朝フォント
  font-family: "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "游明朝体", "Yu Mincho", YuMincho, serif;*/
}
body, div, pre, p, blockquote, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, th, td, button, figure, figcaption
{ margin: 0; padding: 0;}
th, td
{ color: #000000;}
input, textarea
{ margin: 0; font-size: 100%;}
input, textarea, select
{ /*-webkit-appearance: none;*/}
textarea
{ resize: none;}
button
{ border: none; overflow: visible; background: none; vertical-align: top;  font-size: 100%; color: inherit; cursor: pointer; -webkit-appearance: none;}
label
{ cursor: pointer;}
table
{ border-collapse: collapse; border-spacing: 0; font-size: 100%;width:100%;}
fieldset, img
{ border: 0;}
img
{ height: auto; vertical-align: top;}
address, caption, code, em, th
{ font-style: normal; font-weight: normal;}
ol, ul
{ list-style: none;}
caption, th
{ text-align: left;}
h1, h2, h3, h4, h5, h6, strong, em
{ font-size: 100%; font-weight: normal;}
a, input
{/* outline: none; -webkit-tap-highlight-color:rgba(0,0,0,0);*/}
sup, sub
{ font-size: 63%;}
sup
{ vertical-align: top;}
sub
{ vertical-align: baseline;}
*
{ box-sizing: border-box; -webkit-box-sizing: border-box;}
/* ----------------------------------------------------------
 base Link
---------------------------------------------------------- */
a {
  color: #005bac;
  text-decoration: none;
}
a:visited {}
a:hover,
a:active,
a:focus {
  color: #007be9;
  text-decoration: none;
}
/* ----------------------------------------------------------
 clearfix
---------------------------------------------------------- */
.clearfix:before, .clearfix:after,
.contents:before, .contents:after,
.contents-in:before, .contents-in:after,
.contents2:before, .contents2:after,
.contents2-in:before, .contents2-in:after,
.header-in:before, .header-in:after,
.header-utility:before, .header-utility:after,
.footer-maps-in:before, .footer-maps-in:after,
.mod-float:before, .mod-float:after
{
  content: "";
  display: table;
}
.clearfix:after,
.contents:after,
.contents-in:after,
.contents2:after,
.contents2-in:after,
.header-in:after,
.header-utility:after,
.footer-maps-in:after,
.mod-float:after
{
  clear: both;
}
/* For IE 6/7
---------------------------------------------------------- */
.clearfix,
.header-in
{
  *zoom: 1;
}
/* ----------------------------------------------------------
 layout
---------------------------------------------------------- */
html { overflow-y: scroll;}
body { text-align: center;}

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

/* ----------------------------------------------------------
 wrapper
---------------------------------------------------------- */
.wrapper {
	width: 100%;
}

.wrapper-w1{
	width: 100%;
	background-color: #fff;
}

header + .wrapper-w1 {
	padding-top:180px;
}

@media screen and (max-width:1400px) {
	
header + .wrapper-w1 {
	padding-top:156px;
}
	
}
@media screen and (max-width:768px) {

header + .wrapper-w1 {
	padding-top:48px;
}
	
}

.wrapper-p1{
	width: 100%;
	background-color: #f8ebe8;
}

.wrapper-img1{
	margin-top: 50px;
	width: 100%;
	background-image: url(../img/main_img08.png);
	background-position:center center;
	background-repeat:no-repeat;
	-moz-background-size:cover;
	background-size:cover;
}

.wrapper-img2{
	margin-top: 50px;
	width: 100%;
	background-image: url(../img/main_img13-2.png);
	background-position:center center;
	background-repeat:no-repeat;
	-moz-background-size:cover;
	background-size:cover;
}

/* ----------------------------------------------------------
 header
---------------------------------------------------------- */

.header {
  width: 100%;
	  position: fixed;
	  top: 0;
	  left: 0;
	  z-index: 1000;
	background-color: #fff;
}

.header-top {
  width: 100%;
	border-bottom: 1px solid #005BAC;
	padding-bottom: 40px;
}

.header-in {
    width:1280px;
    margin: 0 auto;
    text-align: left;
}

.header-modules {
    float: right;
    margin-top: 20px;

}

.header-utility {
}

.header-links {
}
.header-links li {
	display: inline-block;
	position: relative;
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
	vertical-align:middle;
}

.header-links li + li { margin-left: 30px; }
.header-links li a {
	color: #000;
}
.header-links li a:hover { text-decoration: underline; }

.header-links li.sds {
	padding-left: 15px;
	margin-top: 10px;
}

.header-links li.mail {
	padding-left: 15px;
	margin-top: 10px;
}

.header-links li.lang {
	margin-top: 10px;
}

.header-links li.lang a.on {
    color: #005bac;
}

.sds img {
	width: 22px;
	height: auto;
	margin-right: 5px;
	display: inline-block;
	vertical-align: middle;
}
.sds a {
	display: inline-block;
	vertical-align: middle;
}
.mail img {
	width: 35px;
	height: auto;
	margin-right: 5px;
	display: inline-block;
	vertical-align: middle;
}
.mail a {
	display: inline-block;
	font-size: 14px;
	font-weight: 700;
	line-height: 130%;
	vertical-align: middle;
}
  
@media screen and (max-width:1400px) {
		
.header-in {
	width:100%;
	margin: 0 auto;
	text-align: left;
}
	
.header-links li {
	font-size: 12px;
}
	
.header-links li.sds {
	padding-left: 10px;
	margin-top: 7px;
}

.header-links li.mail {
	padding-left: 10px;
	margin-top: 7px;
}

.header-links li.lang {
	margin-top: 7px;
}
	
.sds img {
	width: 19px;
	margin-right: 5px;
}
	
.mail img {
	width: 30px;
	margin-right: 5px;
}
	
}	

@media screen and (max-width:768px) {

.header-in {
	width:100%;
	margin: 0 auto;
    text-align: left;
}
	
.header-modules {
	display: none;
}
	
}

/* ----------------------------------------------------------
PC用メニュー
---------------------------------------------------------- */

.nav-global {
	position: relative;
	border-bottom-width: 2px;
	border-bottom-style: solid;
	border-bottom-color: #005bac;
	background-color: #fff;
}

.nav-global:before, .nav-global:after{
  content: "";
  display: table;
}

.nav-global:after{
  clear: both;
}

ul.t-menu {
    width:1300px;
    margin: 10px auto 30px;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
  }

ul.t-menu li {
	border-left-style: none;
	font-size: 14px;
	font-weight: 700;
    color: #005bac;
	padding: 10px;
    }

ul.t-menu li a {

  }

ul.t-menu li a:hover {

  }

ul.t-menu li + li { 

}

ul.t-menu li.s-m-w {
	position:relative;
    }

/* -------------------- */
/* ▼サブメニューの装飾 */
/* -------------------- */
ul.s-menu,
ul.s-menu2 {
   display: none;       /* ★1:標準では非表示にする */
   margin: 0px;         /* ★2:サブメニュー外側の余白(ゼロ) */
   padding: 0px;        /* ★3:サブメニュー内側の余白(ゼロ) */
   position: absolute;  /* ★4:絶対配置にする */
}

/* ---------------------------------- */
/* ▼サブメニューがある場合に開く処理 */   /* ※サブメニューが1階層しか存在しない場合の記述 */
/* ---------------------------------- */
ul.t-menu li:hover ul.s-menu {
	display: block;      /* ★5:マウスポインタが載っている項目の内部にあるリストを表示する */
	padding: 0;
	margin: 0;
}

ul.t-menu li:hover ul.s-menu2 {
	display: block;      /* ★5:マウスポインタが載っている項目の内部にあるリストを表示する */
	padding: 0;
	margin: 0;
	width: 300px;
	top: 38px;
	right: -40px;
}

ul.t-menu li:hover ul.s-menu li,
ul.t-menu li:hover ul.s-menu2 li {
	display: inline-block;
	font-size: 14px;
	font-weight: 700;
	margin-right: 30px;
	padding: 5px 0;
}

ul.t-menu li:hover ul.s-menu li a:link,
ul.t-menu li:hover ul.s-menu li a:visited,
ul.t-menu li:hover ul.s-menu li a:active,
ul.t-menu li:hover ul.s-menu2 li a:link,
ul.t-menu li:hover ul.s-menu2 li a:visited,
ul.t-menu li:hover ul.s-menu2 li a:active {color: #000;} 

ul.t-menu li:hover ul.s-menu li a:hover,
ul.t-menu li:hover ul.s-menu2 li a:hover {opacity:0.7;}

@media screen and (max-width:1400px) {
	
    ul.t-menu {
      width:100%;
      margin: 0 auto 30px;
    }
    ul.t-menu li {
    border-left-style: none;
	font-size: 12px;
	padding: 10px 5px 0 5px !important;
      }
	
ul.t-menu li:hover ul.s-menu li,
ul.t-menu li:hover ul.s-menu2 li {
	font-size: 12px;
	margin-right: 10px;
	padding: 0px !important;
	margin-top: 0px !important;
}
	
ul.t-menu li:hover ul.s-menu2 {
	width: 300px;
	top: 35px;
	right: -65px;
}
  
}

@media screen and (max-width:768px) {
	
.nav-global {
	display: none;
}
	
}

/* ----------------------------------------------------------
 contents
---------------------------------------------------------- */
.contentss-wrapper{
  width: 1280px;
  padding: 0;
  margin: 0 auto;
  text-align: left;
}

/* ----------------------------------------------------------
 inner
---------------------------------------------------------- */

.inner01,
.inner01-t0{
    max-width: 1280px;
	padding-top: 60px;
	padding-bottom: 60px;
	margin-right: auto;
	margin-left: auto;
	vertical-align:top;
	text-align: left;
}

.inner02,
.inner02-t0 {
    max-width: 1090px;
	padding-top: 60px;
	padding-bottom: 60px;
	margin-right: auto;
	margin-left: auto;
	vertical-align:top;
	text-align: left;
}

.inner01-t0,
.inner02-t0 {
	padding-top: 0px;
}

@media only screen and (max-width: 1300px) {
	
.inner01,
.inner01-t0{
	width:100%;
	padding-top: 30px;
	padding-bottom: 30px;
	padding-right: 10px;
	padding-left: 10px;
}
	
.inner02,
.inner02-t0 {
	width:100%;
	padding-top: 30px;
	padding-bottom: 30px;
	padding-right: 10px;
	padding-left: 10px;
}
	
.inner01-t0,
.inner02-t0 {
	padding-top: 0px;
}
	
}


/* ----------------------------------------------------------
 上付き、下付きの設定
---------------------------------------------------------- */

sup {
	background: none; margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; border-image: none; font-size: 100%; vertical-align: baseline;
}
sup {
	line-height: 1; font-size: 71%; position: relative;
}
sup {
	top: -0.3em;
	padding-left: 2px;
}

sub {
	background: none; margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; border-image: none; font-size: 100%; vertical-align: baseline;
}
sub {
	line-height: 1; font-size: 71%; position: relative;
}
sub {
top: 0.4em;
}

/* ----------------------------------------------------------
 メニューとヘッダーの関連
---------------------------------------------------------- */

.nav {
	width: 100%;
  }

header #header_logo{
	padding-top: 0;
	padding-bottom: 0;
	padding-right: 0px;
	padding-left: 0px;
	float: left;
}

header #header_logo img{
	width:auto;
	height:90px;
}

body.is-fixed .header {
	margin-bottom: 146px;
}

/* ヘッダー、下部分のみを固定
body.is-fixed .nav--typeA {
	  position: fixed;
	  top: 0;
	  left: 0;
	  z-index: 1000;
}
 */

@media screen and (max-width:1400px) {
	header #header_logo{
		padding-left: 20px;
	}
	
}

@media screen and (max-width:1050px) {
	header #header_logo{
		padding-left: 15px;
	}
	
}

@media screen and (max-width:768px) {
	
header #header_logo{
	padding-top: 0;
	padding-bottom: 0;
	padding-right: 15px;
	padding-left: 15px;
	float: left;
}

header #header_logo img{
	width:auto;
	height:45px;
}

}

/* ----------------------------------------------------------
ハンバーガーメニュー
---------------------------------------------------------- */

.navimenu{
	display: none;
}

.fullscreenmenu{
	display: none;
}


@media screen and (max-width:768px) {

.fullscreenmenu{
    display: block;
}
	
/* 3本ラインの設定 */
.navimenu,
    .navimenu span {
    display: inline-block;
    -webkit-transition:all .4s;
    transition: all .4s;
    }

    .navimenu {
      position: fixed;
      top: 0px;
      right:  0px;
      width: 48px;
      height: 45px;
    z-index: 10020;
    background: #005BAC;
	color: #ffffff;
    }

    .navimenu span {
    position: absolute;
    left: 16px;
    right: 16px;
    width: 16px;
    height: 1px;
    background-color: #fff;
    z-index: 10020;
    }

    .navimenu span:nth-of-type(1) {
    top: 17px;
    }

    .navimenu span:nth-of-type(2) {
    top: 22px;
    }

    .navimenu span:nth-of-type(3) {
    top: 27px;
    }

    .navimenu.active span:nth-of-type(1) {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    background-color: #fff;
    top: 22px;
    }

    .navimenu.active span:nth-of-type(2) {
    opacity: 0;
    background-color: #fff;
    }

    .navimenu.active span:nth-of-type(3) {
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
    background-color: #fff;
    top: 22px;
    }

/* 画面を隠すグレー
---------------------------------------------------------- */
    #nav {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 10000;
    width: 100%;
    height: 100vh;
    opacity: 0;
    background: rgba(223,228,231,1);
    transition: all 0.3s ease-in-out;
    visibility:hidden;
    }

    #nav.active{
    right: 0;
    opacity: 1;
    -moz-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateX(0);
    visibility: visible;
    }
	
/* ボタン自身 */
    #nav{
	font-size: 0;
	overflow-y: scroll;
    }

    #nav ul.sp-menu{
	width: 100%;
	text-align: left;
	margin-top: 40px;
    }

    #nav ul.sp-menu li{
	display: inline-block;
	list-style-type: none;
	width: 100%;
	position: relative;
	padding-top: 5px;
	padding-right: 10px;
	padding-left: 10px;
	padding-bottom: 5px;
	color: #000;
	text-align: center;
	font-size: 14px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #A1A1A1;
    }

    #nav ul.sp-menu li a{
	transition: all 0.2s ease-in-out;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-indent:-999px;
    }
    #nav ul.sp-menu li:hover {
    color: #005BAC;
    }
	
    #nav ul.sp-s-menu {
	width: 100%;
	text-align: left;
    }
	
    #nav ul.sp-s-menu li{
	display: inline-block;
	list-style-type: none;
	width: 100%;
	position: relative;
	padding-top: 5px;
	padding-right: 10px;
	padding-left: 10px;
	padding-bottom: 5px;
	color: #000;
	text-align: center;
	font-size: 14px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #A1A1A1;
    background: rgba(220,220,230,1);
    }
	
    #nav ul.sp-s-menu li a{
	transition: all 0.2s ease-in-out;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-indent:-999px;
    }
	
    #nav ul.sp-s-menu li:hover {
    color: #005BAC;
    }
	
}



/* ----------------------------------------------------------
 footer
---------------------------------------------------------- */
.footer {
	width: 100%;
	padding-bottom: 26px;
	background: #DADFE1;
}

@media screen and (max-width:768px) {
	
.footer {
	padding-bottom: 40px;
}
	
}

@media print {
  .footer { overflow: hidden; }
}

/* 外部リンクマーク（プライバシーポリシー） */
.footer-links a.is-external::after {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-left: 6px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='%23333' stroke-width='1'%3E%3Cpath d='M2.5 2.5V.5h7v7h-2'/%3E%3Crect x='.5' y='2.5' width='7' height='7'/%3E%3C/svg%3E") center / contain no-repeat;
}

  .footer-links {
    background: #DADFE1;
  }

    .footer-links li {
      font-size: 12px;
      padding: 19px 0 12px;
      display: inline-block;
    }

@media screen and (max-width:400px) {
	
    .footer-links li {
      padding: 19px 0 5px;
    }
	
    .footer-links li + li {
      padding: 0px 0 5px;
    }
	
    .footer-links li:last-child {
      padding: 0px 0 20px;
    }
	
}
	
    .footer-links li + li:before {
      content: "|";
      margin: 0 13px;
      color: #000000;
    }
      .footer-links li a {
        color: #000000;
      }
      .footer-links li a:hover { text-decoration: underline; }
		
  .footer-copyright {
    font-size: 10px;
    line-height: 1;
    color: #000000;
    background: #DADFE1;
  }
	


.footer-maps-in {
    max-width: 1000px;
	margin-right: auto;
	margin-left: auto;
	display: flex;
	flex-wrap: wrap;
	padding-top: 30px;
  }

.footer-maps-in .route {
	flex: 0 0 30%;
	position:relative;
	text-align: left;
  }

.footer-maps-in .route:nth-child(2),
.footer-maps-in .route:nth-child(3){
	margin-left: 5%;
}

.footer-maps-in h2 {
      font-size: 12px;
  }

.footer-maps-in h2 + h2 {
	margin-top: 20px;
  }

.footer-maps-in h2 + ul {
	margin-top: 5px;
  }

.footer-maps-in ul + h2 {
	margin-top: 20px;
  }

.footer-maps-in ul {
	margin-left: 20px;
  }

.footer-maps-in li {
      font-size: 12px;
  }

.footer-maps-in h2 a,
.footer-maps-in li a {
	color: #000000;
  }

.footer-maps-in h2 a:hover,
.footer-maps-in li a:hover { text-decoration: underline; }

@media only screen and (max-width: 1300px) {
	
.footer-maps-in {
	width:100%;
	padding-right: 10px;
	padding-left: 10px;
}
	
}

@media screen and (max-width:768px) {
.footer-maps-in {
	display: none;
}
}

/* ----------------------------------------------------------
 視点調節
---------------------------------------------------------- */

#s01,
#s02,
#gat{
	margin-top:-150px;
	padding-top:150px;
}

@media screen and (max-width:768px) {
	
#s01,
#s02,
#gat{
	margin-top:-50px;
	padding-top:50px;
}
}

/* SP: 外部リンクマーク追加で1行に収まらないため、区切り線なしで折り返す */
@media screen and (max-width:768px) {
  .footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 16px; padding: 12px 10px 4px; }
  .footer-links li,
  .footer-links li + li,
  .footer-links li:last-child { padding: 5px 0; }
  .footer-links li + li:before { content: none; }
}
