﻿/* CSS Document */
@charset "UTF-8";
/*-------------------------------*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block;
}
body {
  background: #ffffff;
  font: normal normal normal 100% sans-serif;
  font-family: 'Noto Sans CJK JP', 'Noto Sans JP', 'メイリオ', Meiryo, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', 'Heebo', Arial, Helvetica, sans-serif;
  font-weight: 400;
  color: #555555;
  -webkit-text-size-adjust: 100%;
}
section, form, div, input, textarea, table, tr, th, td, ul, ol, li, dl, dt, dd, header, main, footer, nav, span, a, h1, h2, h3, h4, h5, h6, img {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
}
ul, ol, li {
  list-style: none outside;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
th, td {
  vertical-align: top;
}
a {
  color: #004ea2;
  text-decoration: underline;
}
a:visited {
  text-decoration: underline;
}
a:hover {
  text-decoration: none;
}
/**/
a.txtDecoTyp01 {
  color: #676767;
  text-decoration: none;
}
a.txtDecoTyp01:hover, a.txtDecoTyp01:hover span {
  text-decoration: underline;
}
a.txtDecoTyp02 {
  color: #004ea2;
  text-decoration: none;
}
a.txtDecoTyp02:hover, a.txtDecoTyp02:hover span {
  text-decoration: underline;
}
@media screen and (min-width:768px) {
  body {
    min-width: 1200px;
  }
}
#wrapHeader, #wrapContents, #wrapLclNav, #wrapFooter {
  text-align: left;
  font-size: 100%;
}
#wrapHeader button, #wrapHeader input {
  outline: 0;
}
/*-------------------------------*/
/*特出しお知らせ*/
/*特出しお知らせ　共通*/
.wrapSpecialNews {
  font-size: 0.95rem;
  color: #da1818;
}
.wrapSpecialNews .specialNewsItem {
  display: flex;
}
.wrapSpecialNews .specialNewsItem + .specialNewsItem {
  margin-top: 5px;
}
.wrapSpecialNews .specialNewsItemDt {
  margin-right: 30px;
}
.wrapSpecialNews a {
  color: #da1818;
}
@media screen and (max-width: 767px) {
  body.tokudashi .wrapMainVs {
    flex-direction: column;
  }
}
@media screen and (max-width:767px) {
  .wrapSpecialNews .specialNewsItem {
    display: block;
  }
  .wrapSpecialNews .specialNewsItem + .specialNewsItem {
    margin-top: 10px;
  }
  .wrapSpecialNews .specialNewsItemDt {
    display: inline;
    margin-right: 10px;
  }
  .wrapSpecialNews .specialNewsItemDd {
    display: inline;
  }
}
/*特出しお知らせ　.typ1　薄桃背景*/
.wrapSpecialNews.typ1 {
  padding: 10px 0;
  background: #f6e6e8;
}
/*特出しお知らせ　.typ1　アイコン表示*/
.wrapSpecialNews.iconExclamation .specialNewsItem {
  position: relative;
  padding: 5px 0 5px 40px;
  min-height: 25px;
}
.wrapSpecialNews.iconExclamation .specialNewsItem:after {
  content: "";
  display: block;
  position: absolute;
  top: 5px;
  left: 0;
  width: 25px;
  height: 25px;
  background: url("/img/ico_exclamation.svg") no-repeat 0 50% / 25px 25px;
}
/*特出しお知らせ　.typ2　赤枠・白背景　運行情報下　ホーム画面メインビジュアル内*/
.wrapSpecialNews.typ2 {
  margin: 20px 0;
}
.wrapSpecialNews.typ2 .layWidTyp01 {
  padding: 20px;
  background: #ffffff;
  border: 2px solid #da1818;
  border-radius: 6px;
}
/*特出しお知らせ　.typ2　赤枠・白背景　運行情報下　タイトル内　電車のご利用案内のみで使用*/
.wrapHeadline .wrapSpecialNews.typ2 {
  position: absolute;
  top: 80px;
  left: 300px;
  margin: 0;
  width: 360px;
  height: 150px;
  overflow: hidden;
}
.wrapHeadline .wrapSpecialNews.typ2 .layWidTyp01 {
  width: 100%;
  height: 100%;
  padding: 10px 15px;
}
@media screen and (max-width:767px) {
  .wrapHeadline .wrapSpecialNews.typ2 {
    position: relative;
    top: inherit;
    left: inherit;
    width: auto;
    height: auto;
  }
  .wrapHeadline .wrapSpecialNews.typ2 .layWidTyp01 {
    width: auto;
    height: auto;
    margin: 10px 10px 20px;
  }
}
/*特出しお知らせ　.typ3　桃枠・白背景　ホーム画面カルーセル下*/
.wrapSpecialNews.typ3 {
  margin: 20px auto 0;
  max-width: 1500px;
}
.wrapSpecialNews.typ3 .layWidTyp01 {
  margin: 0 30px;
  width: auto;
  padding: 20px;
  background: #ffffff;
  border: 2px solid #fbc6c6;
  border-radius: 6px;
}
@media screen and (max-width:767px) {
  .wrapSpecialNews.typ3 .layWidTyp01 {
    margin: 0 20px;
  }
}
/*特出しお知らせ　.typ4　青枠・白背景　ホーム画面カルーセル下*/
.wrapSpecialNews.typ4 {
  margin: 20px auto 0;
  max-width: 1500px;
  color: #555555;
}
.wrapSpecialNews.typ4 a {
  color: #555555;
}
.wrapSpecialNews.typ4 .layWidTyp01 {
  margin: 0 30px;
  width: auto;
  padding: 20px;
  background: #ffffff;
  border: 2px solid #a8c8e5;
  border-radius: 6px;
}
@media screen and (max-width:767px) {
  .wrapSpecialNews.typ4 .layWidTyp01 {
    margin: 0 20px;
  }
}
@media screen and (max-width:767px) {
  .wrapMessage01, .wrapMessage02, .wrapMessage03 {
    margin: 20px;
    width: auto;
  }
}
/*-------------------------------*/
/*運行情報*/
.wrapEm {
  display: flex;
  justify-content: center;
  position: relative;
  width: 1100px;
  margin: 0 auto;
  height: 40px;
}
.wrapHeadline .wrapEm {
  position: absolute;
  top: 20px;
  left: 0;
}
.navHeaderIn .wrapEm {
  display: none;
}
.wrapEm .em {
  display: flex;
  margin: 0 10px 0 0;
  width: auto;
  flex-grow: 2;
}
.wrapEm .em a {
  display: flex;
  width: 100%;
  color: #555555;
  text-decoration: none;
  border-radius: 6px;
}
.wrapEm .em01 {
  display: flex;
  align-items: center;
  border-radius: 6px 0 0 6px;
  padding: 0 20px;
  background: #004ea2;
  color: #ffffff;
  border: 2px solid #004ea2;
  border-right: none;
  transition: border 0.2s ease-out;
}
.wrapEm .em a:hover .em01 {
  border: 2px solid #6ea6e2;
  border-right: none;
}
.wrapEm .em02 {
  display: flex;
  align-items: center;
  flex-grow: 10;
  border-radius: 0 6px 6px 0;
  padding: 0 20px;
  background: #ffffff;
  border: 2px solid #ffffff;
  border-left: none;
  transition: border 0.2s ease-out;
}
.wrapEm .em a:hover .em02 {
  border: 2px solid #6ea6e2;
  border-left: none;
}
.emTwitterButton a {
  display: flex;
  text-decoration: none;
}
.emTwitterButton a span {
  display: flex;
  align-items: center;
}
.emTwitterLink {
  display: flex;
  margin-left: 10px;
  padding: 0 15px;
  border-radius: 6px;
  background: #1da1f2;
  color: #ffffff;
  font-size: 0.8rem;
}
.emDelayButton {
  display: flex;
  margin-left: 10px;
  border-radius: 6px;
  background: #004ea2;
  color: #ffffff;
  transition: background 0.2s ease-out;
}
.emDelayButton:hover {
  background: #ffffff;
  color: #004ea2;
}
.emDelayButton a {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 15px;
  font-size: 0.9rem;
  color: #ffffff;
  text-decoration: none;
}
.emDelayButton a:hover {
  color: #004ea2;
}
.emDelayButton span.icon {
  position: relative;
  display: inline-block;
  padding: 0 0 0 14px;
}
.emDelayButton span.icon:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -2px;
  width: 4px;
  height: 4px;
  border-top: 2px solid #ffffff;
  border-right: 2px solid #ffffff;
  transform: rotate(45deg);
}
.emDelayButton:hover span.icon:after {
  border-top: 2px solid #004ea2;
  border-right: 2px solid #004ea2;
}
/*在線位置*/
.emZaisenButton {
  display: flex;
  margin-right: 10px;
  border-radius: 6px;
  background: #004ea2;
  color: #ffffff;
  transition: background 0.2s ease-out;
}
.emZaisenButton:hover {
  background: #ffffff;
  color: #004ea2;
}
.emZaisenButton a {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 15px;
  font-size: 0.9rem;
  color: #ffffff;
  text-decoration: none;
}
.emZaisenButton a:hover {
  color: #004ea2;
}
.emZaisenButton span.icon {
  position: relative;
  display: inline-block;
  padding: 0 0 0 14px;
}
.emZaisenButton span.icon:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -2px;
  width: 4px;
  height: 4px;
  border-top: 2px solid #ffffff;
  border-right: 2px solid #ffffff;
  transform: rotate(45deg);
}
.emZaisenButton:hover span.icon:after {
  border-top: 2px solid #004ea2;
  border-right: 2px solid #004ea2;
}
@media screen and (max-width:767px) {
  .wrapEm {
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: auto;
    padding: 10px;
    background: #ffffff;
  }
  .wrapHeadline .wrapEm {
    position: relative;
    top: inherit;
    left: inherit;
  }
  .wrapEm .em a {
    display: block;
    font-size: 0.85rem;
    line-height: 1.4;
  }
  .wrapEm .em01 {
    display: inline-block;
    width: auto;
    padding: 2px 10px;
    border-radius: 6px;
    border: none;
  }
  .wrapEm .em02 {
    display: block;
    margin: 3px 0 0;
    width: auto;
    height: auto;
    padding: 0;
    border: none;
  }
  .wrapEm .em a:hover .em01 {
    border: none;
  }
  .wrapEm .em a:hover .em02 {
    border: none;
  }
  .emTwitterButton a span.emTwitterLink {
    display: none;
  }
  .emDelayButton {
    height: 100%;
  }
  .emDelayButton a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    font-size: 0.7rem;
    line-height: 1.4;
  }
  .emDelayButton a .layTxt {
    display: block;
    text-align: center;
  }
  .emDelayButton span.icon {
    padding: 0;
  }
  .emDelayButton span.icon:after {
    display: none;
  }
  /*在線位置*/
  .emZaisenButton {
    position: absolute;
    top: 10px;
    left: 10px;
    white-space: nowrap;
  }
  .emZaisenButton a {
    display: inline-block;
    width: auto;
    padding: 2px 10px;
    font-size: 0.85rem;
    line-height: 1.4;
    border-radius: 6px;
  }
  .emZaisenButton a .layTxt {
    display: block;
    text-align: center;
  }
  .emZaisenButton span.icon {
    padding: 0;
  }
  .emZaisenButton span.icon:after {
    display: none;
  }
  .emZaisenButton + .em .em01 {
    margin-left: 6rem;
  }
  /*ハンバーガーメニュー内用*/
  /*	.navHeaderIn .wrapEm {
		justify-content: space-between;
		padding: 10px;
		font-size: 0.8rem;
	}*/
  .navHeaderIn .wrapEm {
    display: flex;
  }
  /*.navHeaderIn .wrapEm .em {
		width: 50%;
		flex-grow: 2;
	}
	.navHeaderIn .wrapEm .em a {
		margin: 0;
		padding: 0;
	}
	.navHeaderIn .wrapEm .em01 {
		display: flex;
		border-radius: 6px;
		padding: 10px;
	}
	.navHeaderIn .wrapEm .em02 {
		display: none;
	}
	.navHeaderIn .emTwitterButton {
		padding: 0 10px;
	}
	.navHeaderIn .emDelayButton {
		width: 30%;
		border-radius: 6px;
		padding: 0;
		background: #004ea2;
		color: #ffffff;
	}
	.navHeaderIn .emDelayButton a {
		padding: 10px;
		color: #ffffff;
		text-decoration: none;
	}*/
  /*メニューを開くときのアニメーション*/
  .menuOpen .navHeaderIn .wrapEm {
    animation: 300ms fade-in both 450ms;
  }
}
@media screen and (max-width:424px) {
  .emDelayButton a {
    font-size: 2.6vw;
  }
}
/*-------------------------------*/
/*パンくずリスト*/
#wrapBreadCrumbs {
  background: #eeeeee;
  padding: 12px 0;
}
#breadCrumbs {
  display: flex;
  width: 1100px;
  margin: 0 auto;
}
#breadCrumbs li {
  position: relative;
  font-size: 0.8rem;
  color: #858585;
}
#breadCrumbs li + li {
  margin-left: 10px;
  padding-left: 25px;
}
#breadCrumbs li + li:after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -6px;
  border-top: 1px solid #aeaeae;
  border-right: 1px solid #aeaeae;
  transform: rotate(45deg);
}
#breadCrumbs li a {
  color: #858585;
  text-decoration: none;
}
#breadCrumbs li a:hover {
  color: #000000;
}
@media screen and (max-width:767px) {
  #wrapBreadCrumbs {
    width: 100%;
    overflow-x: scroll;
    direction: rtl; /* RTLでは初期スクロール位置が右揃えになる */
  }
  #breadCrumbs {
    width: auto;
    padding: 0 20px;
    direction: ltr; /* 元のdirectionを復元する */
    display: inline-flex;
    min-width: 100%;
  }
  #breadCrumbs li {
    white-space: nowrap;
  }
  #breadCrumbs li:last-child {
    /*不可 padding-right: 20px;*/
  }
}
/*-------------------------------*/
main {
  display: block;
  padding: 0 0 130px;
}
body#home.index main, body.cateIdxTyp1 main, body#EM main {
  padding-bottom: 0;
}
.layWidTyp01 {
  position: relative;
  display: block;
  width: 1100px;
  margin: 0 auto;
}
/*幅100%グレー背景*/
.layWidTyp02Outer {
  background: #f8f8f8;
}
.layWidTyp02 {
  width: 1100px;
  margin: 0 auto;
  padding: 70px 0;
}
.layWidTyp01 + .layWidTyp02Outer {
  margin-top: 70px;
}
#siteMultilang.home .layWidTyp01 + .layWidTyp02Outer {
  margin-top: 60px;
}
.layWidTyp03 {
  width: 1100px;
  margin: 70px auto;
  padding: 35px;
  border: 3px solid #e5e5e5;
}
main .layWidTyp02Outer:last-child {
  /*/train/ticket_fare/*/
  padding-bottom: 60px;
}
main .layWidTyp02Outer:last-child .layWidTyp02 {
  padding-bottom: 0;
}
@media screen and (max-width:767px) {
  main {
    padding: 0 0 60px;
  }
  .layWidTyp01 {
    width: auto;
    margin: 0 20px;
  }
  .layWidTyp01.spLay100pct {
    margin: 0;
  }
  .layWidTyp02 {
    width: auto;
    padding: 40px 20px;
  }
  .layWidTyp01 + .layWidTyp02Outer {
    margin-top: 40px;
  }
  #siteMultilang.home .layWidTyp01 + .layWidTyp02Outer {
    margin-top: 20px;
  }
  .layWidTyp03 {
    width: auto;
    margin: 20px;
    padding: 20px;
  }
  .layWidTyp04 {
    padding: 40px 0;
    background: #f8f8f8;
  }
  .layWidTyp01 + .layWidTyp04 {
    margin-top: 40px;
  }
  .layWidTyp04 .headTyp02Sub02 {
    margin-top: 0;
  }
}
/*-------------------------------*/
/*ご意見・お問い合わせフォーム*/
body#SYS h1 {
  margin: 15px 0;
  font-family: 'Heebo';
  text-align: center;
  font-size: 4rem;
  color: #00a395;
  font-weight: 500;
}
.wrapForm .headTyp02Sub06 {
  margin-bottom: 20px;
}
.wrapForm .headTyp02Sub06:first-child {
  margin-top: 0;
}
.layForm {
  padding: 40px;
  background: #efefef;
  border-radius: 6px;
}
.formTyp01 {
  width: 100%;
}
.formTyp01 th.layTxt1 {
  width: 25%;
  padding: 17px 10px;
  text-align: left;
  font-weight: normal;
}
body.inquiry.confirm .formTyp01 th.layTxt1 {
  padding: 10px;
}
.formTyp01 th.layTxt2 {
  width: 40px;
  padding: 17px 0;
  color: #da1818;
  font-size: 0.9rem;
  white-space: nowrap;
  font-weight: normal;
}
body.inquiry.confirm .formTyp01 th.layTxt2 {
  padding: 10px;
}
.formTyp01 td.layInput {
  padding: 10px;
}
.formTyp01 td.layInput .layInputAdd {
  display: flex;
}
.formTyp01 td.layInput .layInputAdd .selectDecoTyp01 {
  width: 26%;
}
.formTyp01 td.layInput .layInputAdd .selectDecoTyp01 select {
  width: 100%;
  height: 40px;
  min-width: inherit;
  text-align: left;
}
.formTyp01 td.layInput .layInputAdd .selectDecoTyp01 + input {
  margin-left: 20px;
}
#wrapContents .formTyp01 td.layInput p {
  margin-top: 6px;
  font-size: 0.9rem;
}
.layInput input, .layInput textarea {
  width: auto;
  max-width: 460px;
  font-size: 1rem;
  background: #ffffff;
  border: 1px solid #e6e6e6;
  border-radius: 6px;
  font: normal normal normal 100% sans-serif;
  font-family: 'Noto Sans CJK JP', 'Noto Sans JP', 'メイリオ', Meiryo, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', 'Heebo', Arial, Helvetica, sans-serif;
  font-weight: 400;
  color: #555555;
  outline: none;
}
.layInput input {
  height: 40px;
  padding: 0 10px;
}
.layInput textarea {
  padding: 10px;
}
.wrapFormBtn {
  display: flex;
  justify-content: center;
  margin: 40px auto 0;
  text-align: center;
}
.wrapFormBtn .formBtnTyp01, .wrapFormBtn .formBtnTyp02 {
  margin: 0 10px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font: inherit;
  outline: none;
  cursor: pointer;
  display: inline-block;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
  transition: background 0.2s ease-out;
}
.wrapFormBtn .formBtnTyp01 {
  background: #68c14c;
  padding: 10px 50px;
  font-size: 1.2rem;
  font-weight: 400;
}
.wrapFormBtn .formBtnTyp01:hover {
  background: #004ea2;
}
.wrapFormBtn .formBtnTyp02 {
  background: #999999;
  padding: 10px 20px;
  font-size: 1.2rem;
  font-weight: 400;
}
.wrapFormBtn .formBtnTyp02:hover {
  background: #676767;
}
@media screen and (max-width:767px) {
  .wrapForm .headTyp02Sub03 {
    margin-bottom: 20px;
    font-size: 1.6rem;
  }
  .layForm {
    margin: 0 -20px;
    padding: 20px 20px 40px;
    border-radius: 0;
  }
  .formTyp01, .formTyp01 tbody, .formTyp01 tr, .formTyp01 th, .formTyp01 td {
    display: block;
  }
  .layForm tr {
    position: relative;
  }
  .formTyp01 th.layTxt1, body.inquiry.confirm .formTyp01 th.layTxt1 {
    width: 100%;
    padding: 0 30px 5px 0;
  }
  .formTyp01 tr + tr th.layTxt1, body.inquiry.confirm .formTyp01 tr + tr th.layTxt1 {
    padding-top: 20px;
  }
  .formTyp01 th.layTxt2, body.inquiry.confirm .formTyp01 th.layTxt2 {
    position: absolute;
    top: 0;
    right: 0;
    width: auto;
    padding: 0;
  }
  .formTyp01 tr + tr th.layTxt2, body.inquiry.confirm .formTyp01 tr + tr th.layTxt2 {
    top: 20px;
  }
  .formTyp01 td.layInput {
    padding: 0;
  }
  body.inquiry.confirm .formTyp01 td.layInput {
    padding: 10px;
    background: #E5E5E5;
    border-radius: 6px;
  }
  .layInput input, .layInput textarea {
    max-width: 100%;
  }
  .layInput.layTelno {
    display: flex;
    align-items: center;
  }
  .layInput.layTelno input {
    width: 28%;
  }
  .layInput.layTelno .layTxt3 {
    padding: 0 5px;
  }
  .formTyp01 td.layInput .layInputAdd .selectDecoTyp01 {
    width: 100%;
    max-width: 200px;
  }
  .formTyp01 td.layInput .layInputAdd .selectDecoTyp01 select {
    padding: 0 5px;
  }
  .formTyp01 td.layInput .layInputAdd {
    display: block;
  }
  .formTyp01 td.layInput .layInputAdd .selectDecoTyp01 + input {
    margin: 10px 0 0;
  }
  .wrapFormBtn {
    align-items: center;
    flex-direction: column-reverse;
  }
  .wrapFormBtn .formBtnTyp01, .wrapFormBtn .formBtnTyp02 {
    margin: 0;
  }
  .wrapFormBtn .formBtnTyp02 {
    margin-top: 20px;
  }
}
/*-------------------------------*/
/*404ページ*/
body#SYS404 h1 {
  margin: 15px 0;
  font-family: 'Heebo';
  text-align: center;
  font-size: 4rem;
  color: #00a395;
  font-weight: 500;
}
.wrap404 + .wrap404 {
  margin-top: 30px;
}
.wrap404 .linkTxtTyp02, .wrap404 p {
  text-align: center;
}
.wrap404 .linkTxtTyp02 a:hover span {
  text-decoration: underline;
}
@media screen and (max-width:767px) {
  body#SYS404 main {
    padding-bottom: 30px;
  }
  body#SYS404 h1 {
    font-size: 1.8rem;
  }
  body#SYS404 p {
    font-size: 0.9rem;
  }
  .wrap404 + .wrap404 {
    margin-top: 15px;
  }
  .wrap404 .linkTxtTyp02 {
    margin-top: 5px;
    font-size: 0.9rem;
  }
}
/*-------------------------------*/
/*サイトマップページ*/
/*#wrapLclNavと類似*/
body#siteMap .wrapSiteMapNav {
  position: relative;
  border-top: 3px solid #e9e9e9;
  padding: 30px 0 40px;
  background: #fafafa;
}
body#siteMap .wrapSiteMapNav:after {
  content: "";
  position: absolute;
  left: 50%;
  top: -3px;
  margin-left: -68px;
  width: 136px;
  height: 3px;
  background: #00a496; /* Old browsers */
  background: -moz-linear-gradient(left, #00a496 0%, #00a496 35%, #e9194b 35%, #e9194b 65%, #e9194b 65%, #254f8e 65%, #254f8e 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(left, #00a496 0%, #00a496 35%, #e9194b 35%, #e9194b 65%, #e9194b 65%, #254f8e 65%, #254f8e 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #00a496 0%, #00a496 35%, #e9194b 35%, #e9194b 65%, #e9194b 65%, #254f8e 65%, #254f8e 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}
body#siteMap .wrapSiteMapNav a {
  text-decoration: none;
}
body#siteMap .wrapSiteMapNav a:hover, body#siteMap .wrapSiteMapNav a:hover span {
  text-decoration: underline;
}
body#siteMap .wrapSiteMapNav dd.act > a, body#siteMap .wrapSiteMapNav li.act > a {
  color: #555555;
  font-weight: 700;
}
body#siteMap .lclNav1 {
  margin: 0;
}
body#siteMap .navLocalTitle + .lclNav1 {
  margin-top: 20px;
}
body#siteMap .lclNav1 + .lclNav1 {
  margin-top: 20px;
}
body#siteMap .lclNav2 > li dd > ul {
  margin: 10px 0 0 10px;
  ;
}
body#siteMap .lclNav2 > li dd > ul li + li {
  margin-top: 10px;
}
.navLocalTitle span.iconPlan01 {
  padding-left: 40px;
}
.navLocalTitle span.iconHiking01 {
  padding-left: 70px;
}
@media screen and (max-width:767px) {
  body#siteMap .wrapSiteMapNav {
    padding: 40px 20px;
  }
  body#siteMap .navLocal {
    width: 100%;
  }
  body#siteMap .lclNav1 {
    display: block;
  }
  body#siteMap .lclNav1 li + li {
    margin: 20px 0 0;
  }
  body#siteMap .lclNav2 {
    display: block;
    margin: 20px 0 0;
  }
  body#siteMap .lclNav2 > li {
    width: 100%;
  }
  body#siteMap .lclNav2 > li + li {
    margin: 20px 0 0;
  }
  body#siteMap .lclNav2 > li dl + dl {
    margin: 20px 0 0;
  }
}
/*-------------------------------*/
/*ヘッダー*/
#wrapHeader {
  display: flex;
  flex-direction: column-reverse;
  margin: 15px 0 0;
}
@media screen and (max-width:767px) {
  #wrapHeader {
    display: block;
  }
}
header {
  position: relative;
  padding: 0 0 20px;
  border-bottom: 1px solid #e5e5e5;
}
body#home.index header, body#train.index header, body#search.index header, body#library.index header, body#SYS404 header, body#APP header {
  border-bottom: none;
}
body#SYS404 header, body#APP header {
  height: 50px;
}
h1#headerIdentity, p#headerIdentity {
  position: absolute;
  top: 0;
  left: 40px;
}
.navHeaderIn {
  display: flex;
  flex-direction: column-reverse;
}
.wrapNav {
  display: flex;
  flex-direction: column-reverse;
}
.wrapNav a, .wrapNav button {
  color: #676767;
  /*font-size: 0.85rem;*/
  text-decoration: none;
  transition: color 0.2s ease-out;
  user-select: none;
}
.wrapNav a:hover, .wrapNav button:hover {
  color: #004ea2;
}
@media screen and (max-width:767px) {
  #wrapHeader {
    margin: 0;
  }
  header {
    padding: 0;
  }
  h1#headerIdentity, p#headerIdentity {
    position: relative;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    height: 60px;
    padding: 0 0 0 10px;
  }
  p#headerIdentity a {
    display: flex;
  }
  h1#headerIdentity img, p#headerIdentity img {
    width: 110px;
    height: auto;
  }
  html.menuOpen {
    /* メニューが開いている時はページスクロールを無効化する */
    overflow: hidden;
  }
  .navHeaderIn {
    display: block;
    opacity: 0;
    transition: 200ms opacity;
    pointer-events: none;
    background: #f0f0f0;
    position: fixed;
    z-index: 1150;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
  }
  .menuOpen.menuGNavOpen .navHeaderIn {
    opacity: 1;
    pointer-events: auto;
  }
  .wrapNav {
    display: block;
  }
}
/*ヘッダー > スマホ固有*/
.headerSp {
  display: none;
}
#srchBoxOpen {
  display: none;
}
@media screen and (max-width:767px) {
  .headerSp {
    display: block;
    position: relative;
    margin-top: -60px;
    height: 60px;
    /* #srchBoxSp は右にずらして隠すので、これがスクロール範囲に影響しないようにする */
    overflow: hidden;
    /* #headerIdentity に被せるので、#headerIdentity のインタラクションを妨害しないようにする */
    pointer-events: none;
  }
  .headerSp a, .headerSp button, .headerSp label {
    /* 親要素で指定した pointer-events: none の効果を無効化する */
    pointer-events: auto;
  }
  .headerSp a {
    display: block;
    padding: 20px;
    text-decoration: none;
  }
  .headerSp .global {
    position: absolute;
    top: 15px;
    right: 130px;
  }
  .headerSp .global button {
    margin: 0;
    background-color: transparent;
    border: none;
    border-radius: 0;
    cursor: pointer;
    font: inherit;
    padding: 20px 0 0;
    background-position: 50% 0;
    font-size: 0.75rem;
    background-size: 16px;
    background-repeat: no-repeat;
    color: #676767;
  }
  .headerSp .srchBox {
    position: absolute;
    top: 15px;
    right: 80px;
  }
  .headerSp .srchBox span.txt {
    display: flex;
    padding: 20px 0 0;
    color: #676767;
    font-size: 0.75rem;
    background: url("/img/header_ico_04.png") no-repeat 50% 0 / 16px auto;
  }
  #srchBoxSp {
    position: absolute;
    z-index: 1100;
    background: #e9e9e9;
    left: 60px;
    top: 0;
    height: 60px;
    right: 60px;
    transition: 200ms transform, 200ms left;
    transform: translateX(100%);
    pointer-events: none;
    display: flex;
    align-items: center;
  }
  #srchBoxSp form {
    display: block;
    flex-grow: 1;
    position: relative;
    margin-left: 10px;
  }
  #srchBoxSp input {
    background: #fff url("/img/header_ico_04.png") no-repeat calc(100% - 10px) / 14.5px auto;
    border: none;
    border-radius: 50px;
    padding: 10px 30px 10px 14px;
    width: 100%;
    box-sizing: border-box;
    font-size: 0.8rem;
  }
  /* 「閉じる」ボタン */
  #srchBoxSp label {
    /* Safari for iOS でタップ時のハイライトのサイズを「閉じる」ボタンの内容に合わせる
		 * ために label > span.close ではなく label に margin を設定する */
    width: 44px;
    height: 44px;
    margin: 8px;
  }
  #srchBoxSp span.close {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    width: 44px;
    height: 44px;
    color: #555;
    font-size: 0.65rem;
    position: relative;
  }
  #srchBoxSp span.close:before, #srchBoxSp span.close:after {
    content: "";
    display: block;
    position: absolute;
    top: 14.5px;
    left: 11px;
    width: 22px;
    height: 0;
    border-top: 2px solid #555;
  }
  #srchBoxSp span.close:before {
    transform: rotate(-45deg);
  }
  #srchBoxSp span.close:after {
    transform: rotate(45deg);
  }
  /* #srchBoxSpの開閉制御 */
  .headerSp label {
    cursor: pointer;
  }
  #srchBoxOpen:not(:checked) ~ #srchBoxSp input {
    /* visibility: hidden; を設定することによってタブオーダから input を取り除く。
		 * ただし #srchBoxSp を閉じる際はアニメーションするので、アニメーションが完了する
		 * まで input を非表示にしてはいけない。*/
    animation: disappear 0s 200ms both;
  }
  #srchBoxOpen:checked ~ * li.srchBox span.txt {
    pointer-events: none;
  }
  #srchBoxOpen:checked ~ #srchBoxSp {
    pointer-events: auto;
    left: 0;
    transform: none;
  }
}
@keyframes disappear {
  0% {
    visibility: visible;
  }
  100% {
    visibility: hidden;
  }
}
@media screen and (max-width:349px) {
  .headerSp .global {
    right: 115px;
  }
  .headerSp .srchBox {
    right: 75px;
  }
}
/*ヘッダー > グローバルナビゲーション*/
.gbNav {
  display: flex;
  justify-content: center;
  justify-content: space-between;
  width: 1100px;
  margin: 20px auto 0;
  font-weight: 500;
}
.gbNavItem {
  width: 20%;
}
.gbNavItem + .gbNavItem {
  border-left: 1px solid #ececec;
}
.gbNavItemIcon, .gbNav a /*企業IR用*/ {
  display: block;
  text-align: center;
}
.gbNavItemIcon {
  padding: 40px 0 0;
  font-size: 0.85rem;
  background: no-repeat 50% 0 / auto 42px;
}
.gbNavItem.train .gbNavItemIcon {
  background-image: url("/img/gnavi_ico_01.svg");
}
.gbNavItem.plan .gbNavItemIcon {
  background-image: url("/img/gnavi_ico_02.svg");
}
.gbNavItem.hiking .gbNavItemIcon {
  background-image: url("/img/gnavi_ico_03.svg");
}
.gbNavItem.search .gbNavItemIcon {
  background-image: url("/img/gnavi_ico_04.svg");
}
.gbNavItem.estate .gbNavItemIcon {
  background-image: url("/img/gnavi_ico_05.svg");
}
.gbNav .news {
  display: none;
}
.navHeaderIn .gbNav .news a, .gbNav .news a {
  background-image: url("/img/gnavi_ico_08.svg");
}
@media screen and (max-width:767px) {
  .gbNav.spOnly {
    margin-top: 0;
    width: auto;
  }
  .navHeaderIn .gbNav {
    display: block;
    margin: 0;
    width: 100%;
    padding: 0 10px;
  }
  .gbNavItem {
    width: 100%;
  }
  .navHeaderIn .gbNav a, header .dropdownContent li a {
    display: block;
    width: 100%;
    text-align: left;
    color: #676767;
  }
  .navHeaderIn .gbNavItemIcon {
    padding: 20px 20px 20px 60px;
    background: no-repeat 15px 50% / auto 32px;
  }
  .navHeaderIn .gbNavItem.train .gbNavItemIcon {
    background-image: url("/img/ico_train_01.svg");
  }
  .navHeaderIn .gbNavItem.plan .gbNavItemIcon {
    background-image: url("/img/ico_plan_01.svg");
    background-position: 10px 50%;
    background-size: auto 35px;
  }
  .navHeaderIn .gbNavItem.hiking .gbNavItemIcon {
    background-image: url("/img/ico_hiking_01.svg");
    background-position: 3px 50%;
    background-size: auto 24px;
  }
  .navHeaderIn .gbNavItem.search .gbNavItemIcon {
    background-image: url("/img/ico_search_01.svg");
    background-position: 13px 50%;
  }
  .navHeaderIn .gbNavItem.estate .gbNavItemIcon {
    background-image: url("/img/ico_estate_01.svg");
    background-size: auto 33px;
  }
  .navHeaderIn .gbNavItem.news .gbNavItemIcon {
    background-image: url("/img/ico_newsinfo.svg");
    background-position: 13px 50%;
    background-size: auto 30px;
  }
  /* このスタイルは言語セレクタ (.wrapLangSel) の内容にも適用するが、
	 * 一部の属性は .wrapLangSel 固有のもので上書きされる */
  .navLangSel .wrapLangSel {
    display: block;
    margin: 0;
    background: #f0f0f0;
  }
  .navLangSel .wrapLangSel li {
    width: 100%;
  }
  .navHeaderIn .gbNav > li:after, .navHeaderIn .gbNav > li:before, .navLangSel .wrapLangSel li:after, .navLangSel .wrapLangSel li:before {
    content: "";
    display: block;
    height: 1px;
    transform-origin: left;
    background: #d8d8d8;
    will-change: transform;
  }
  .navHeaderIn .gbNav > li + li:before, .navLangSel .wrapLangSel li + li:before {
    display: none;
  }
  .navLangSel .wrapLangSel a {
    /*	.navHeaderIn .gbNav > li > a, .navLangSel .wrapLangSel a {*/
    display: block;
    padding: 15px 0px 15px 70px;
    margin: 0 10px;
    text-align: left;
    background: no-repeat 10px 50% / 50px auto;
  }
  .navHeaderIn .gbNav .news {
    display: block;
  }
  /*メニューを開くときのアニメーション*/
  .menuOpen .navHeaderIn .gbNav > li:after, .menuOpen .navHeaderIn .gbNav > li:before, .menuOpen .navLangSel .wrapLangSel li:after, .menuOpen .navLangSel .wrapLangSel li:before {
    animation: 500ms stretch-from-left cubic-bezier(.31, .07, 0, 1) both 100ms;
  }
  .menuOpen .navHeaderIn .gbNav a, .menuOpen .navHeaderIn .gbNav .dropdownWrap, .menuOpen .navLangSel .wrapLangSel a {
    animation: 300ms fade-in both 450ms;
  }
  .navHeaderIn .gbNav .train .dropdownContent a {
    background: none;
  }
}
@keyframes stretch-from-left {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: none;
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*ヘッダー > グローバルナビゲーション > ドロップダウン*/
.wrapNav li .dropdownWrap {
  display: none;
}
@media screen and (min-width:768px) {
  .wrapNav li.hasDropdown .dropdown {
    /* common02.js はこの要素にheightを設定することでアコーディオン動作を実現するが、
		 * アコーディオン動作の対象環境 (@media screen and (max-width:767px)) であるか
		 * どうかに関わらずheightを設定する。ここではアコーディオン動作を使用しない場合にこの
		 * heightの指定を打ち消す。 */
    height: auto !important;
  }
}
@media screen and (max-width:767px) {
  .wrapNav li.hasDropdown .dropdownWrap {
    display: block;
    position: relative;
  }
  .wrapNav li.hasDropdown .dropdownWrap:before {
    /* +/-アイコン */
    content: "";
    position: absolute;
    pointer-events: none;
    width: 14px;
    height: 14px;
  }
  .wrapNav .gbNav li.hasDropdown .dropdownWrap:before {
    /* +/-アイコン (.gbNav) */
    top: -37px;
    right: 15px;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M0,7H14M7,0V14" style="stroke:%23004ea2;stroke-width:2px"/></svg>') no-repeat 50% 50% / 14px auto;
  }
  .wrapNav .hdNav2 li.hasDropdown .dropdownWrap:before {
    /* +/-アイコン (.hdNav2) */
    top: -30px;
    right: 15px;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M0,7H14M7,0V14" style="stroke:%23fff;stroke-width:2px"/></svg>') no-repeat 50% 50% / 14px auto;
  }
  .wrapNav li.hasDropdown .dropdownWrap:after {
    /* ドロップシャドウ */
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.2);
    pointer-events: none;
    opacity: 0;
    transition: 300ms opacity;
  }
  .wrapNav .gbNav li.hasDropdown .dropdownWrap:after {
    /*		top: -50px;*/
    /*		margin: 0 10px;*/
  }
  .wrapNav .hdNav2 li.hasDropdown .dropdownWrap:after {
    top: -45px;
  }
  .wrapNav li.hasDropdown .dropdown {
    display: block;
    overflow: hidden;
    transition: 300ms height, 300ms box-shadow, 300ms background-color;
    will-change: height, box-shadow, background-color;
    height: 0;
    background-color: rgba(255, 255, 255, 0);
  }
  .wrapNav .gbNav li.hasDropdown .dropdown {
    /*		margin: 0 10px;*/
  }
  .wrapNav .hdNav2 li.hasDropdown .dropdown {
    margin: 0;
  }
  .wrapNav li.hasDropdown:not(.open) .dropdown {
    height: 0 !important;
  }
  .wrapNav li.hasDropdown > a {
    transition: 300ms background-color, 300ms color;
    will-change: background-color, color;
    background-color: rgba(77, 77, 77, 0);
    cursor: pointer; /* hrefが指定されているかに関わらずインタラクティブであるため */
  }
  .wrapNav .hdNav2 li.hasDropdown {
    transition: 300ms border-top-color;
  }
  /*開いた状態*/
  .wrapNav li.hasDropdown.open .dropdownWrap:before {
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M0,7H14" style="stroke:%23fff;stroke-width:2px"/></svg>') no-repeat 50% 50% / 14px auto;
  }
  .wrapNav li.hasDropdown.open .dropdownWrap:after {
    opacity: 1;
  }
  .wrapNav li.hasDropdown.open .dropdown {
    background-color: #ffffff;
  }
  .wrapNav li.hasDropdown.open > a {
    background-color: rgba(77, 77, 77, 1);
    color: #ffffff;
  }
  .wrapNav .hdNav2 li.hasDropdown.open {
    border-top-color: rgba(91, 91, 91, 0);
  }
  /*ドロップダウンの内容*/
  .wrapNav .dropdownContent {
    margin: 0;
    padding: 0;
    /*font-size: 0.85rem;*/
  }
  .wrapNav .dropdownContent li {
    text-align: left;
    padding: 0 10px;
    font-size: 0.9rem;
  }
  .wrapNav .dropdownContent li + li {
    border-top: 1px solid #ececec;
  }
  .wrapNav dd .dropdownWrap .dropdownContent li + li {
    border-top: none;
  }
  .wrapNav .dropdownContent li a, .wrapNav .dropdownContent li dt .noLink {
    padding: 8px 10px;
  }
  .wrapNav .dropdownContent li dt .noLink {
    display: block;
  }
  .wrapNav .dropdownContent > ul > li > a {
    padding: 12px 10px;
  }
  .wrapNav .dropdownContent li dd a {
    /*     padding: 5px 0;*/
  }
  .wrapNav .gbNav .dropdownContent {
    /*    border-top: 1px solid #e6e6e6;*/
  }
  .wrapNav .hdNav2 .dropdownContent {
    border-top: 1px solid #5b5b5b;
  }
  .gbNavItem.hiking .dropdownContent > ul > li:first-child {
    border-bottom: 1px solid #004ea2;
  }
  .gbNavItem.hiking .dropdownContent > ul > li:first-child a {
    position: relative;
    color: #004ea2;
  }
  .gbNavItem.hiking .dropdownContent > ul > li:first-child a .linkIcon {
    position: relative;
    display: inline-block;
    padding: 5px 20px 5px 0;
  }
  .gbNavItem.hiking .dropdownContent > ul > li:first-child a .linkIcon:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 0;
    width: 4px;
    height: 4px;
    margin-top: -3px;
    border-top: 3px solid #004ea2;
    border-right: 3px solid #004ea2;
    transform: rotate(45deg);
  }
}
/*ヘッダー > ヘッダーナビゲーション1*/
.hdNav1 {
  display: flex;
  justify-content: flex-end;
  padding-right: 40px;
  font-size: 0.85rem;
}
.hdNav1 li {
  display: flex;
}
.hdNav1 li + li {
  margin: 0 0 0 30px;
}
.hdNav1 a, .hdNav1 button {
  display: flex;
  align-items: center;
  padding: 0 0 0 22px;
  text-align: center;
  background: no-repeat 0 50% / 16px auto;
}
.hdNav1 .qa a {
  background-image: url("/img/header_ico_01.png");
}
.hdNav1 .contact a {
  background-image: url("/img/header_ico_02.png");
}
.headerSp .global button, .hdNav1 .global button {
  background-image: url("/img/header_ico_03.png");
}
.hdNav1 .global button {
  margin: 0;
  background-color: transparent;
  border: none;
  border-radius: 0;
  cursor: pointer;
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
}
.hdNav1 .srchBox span.txt {
  display: none;
}
#srchBox input#srchInput {
  background: #efefef url("/img/header_ico_04.png") no-repeat 155px 50% / 14.5px auto;
  border: none;
  border-radius: 50px;
  padding: 8px 30px 8px 8px;
  width: 180px;
}
@media screen and (max-width:767px) {
  .hdNav1 {
    justify-content: center;
    padding: 0 20px;
  }
  .hdNav1 li {
    margin: 0 4%;
    font-size: 0.9rem;
  }
  .hdNav1 li a {
    display: block;
    padding: 20px;
  }
  .hdNav1 .global, .hdNav1 .srchBox {
    display: none;
  }
}
@media screen and (max-width:374px) {
  .hdNav1 li {
    margin: 0 1%;
    font-size: 4vw;
  }
  .hdNav1 li a {
    padding: 20px 0 20px 20px;
  }
}
/*ヘッダー > ヘッダーナビゲーション2*/
.hdNav2 {
  display: flex;
  justify-content: flex-end;
  margin: 15px 0 0;
  padding-right: 40px;
  font-size: 0.8rem;
}
.hdNav2 li {
  padding: 0 15px;
  border-left: 1px solid #cecece;
}
.hdNav2 li:last-child {
  border-right: 1px solid #cecece;
}
.hdNav2 a {
  position: relative;
}
.hdNav2 a:before {
  content: "";
  display: block;
  position: absolute;
  top: 8px;
  left: 0;
  width: 4px;
  height: 4px;
  border-top: 2px solid #004ea2;
  border-right: 2px solid #004ea2;
  transform: rotate(45deg);
}
.hdNav2 a span {
  display: inline-block;
  padding: 0 0 0 14px;
}
.hdNav2 a[target="_blank"] span {
  background: url("/img/ico_blank_01.png") no-repeat 0 55% / 8px auto;
}
.hdNav2 a[target="_blank"]:before {
  display: none;
}
@media screen and (max-width:767px) {
  .hdNav2 {
    display: block;
    margin: 0;
    padding: 10px;
    border: none;
    background: #4d4d4d;
  }
  .hdNav2 li {
    padding: 0;
    border: none;
  }
  .hdNav2 li + li {
    border-top: 1px solid #5b5b5b;
  }
  .hdNav2 li:last-child {
    border-right: none;
  }
  .hdNav2 a {
    display: block;
    padding: 10px;
    line-height: 25px;
  }
  .hdNav2 a {
    color: #ffffff;
  }
  header .hdNav2 .dropdownContent li a, header .wrapNav .hdNav2 .dropdownContent li a:hover {
    color: #676767;
  }
  .wrapNav .hdNav2 a:hover, .wrapNav .hdNav2 button:hover {
    color: #ffffff;
  }
  .hdNav2 a span {
    display: inline-block;
    padding: 0 14px 0 0;
  }
  .hdNav2 a:before {
    display: none;
  }
  .hdNav2 a[target="_blank"] span {
    background: url("/img/ico_blank_02.png") no-repeat 100% 50% / 8px auto;
  }
  .hdNav2 li dt.sub {
    padding: 10px;
    color: #4d4d4d;
    background: #dddddd;
  }
}
/*-------------------------------*/
/*言語セレクタ*/
.navLangSel {
  transition: 200ms opacity;
  pointer-events: none;
  opacity: 0;
  z-index: 20000;
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
.menuOpen.menuLangSelOpen .navLangSel {
  opacity: 1;
  pointer-events: auto;
}
.navLangSel .wrapLangSel {
  position: absolute;
  right: 190px;
  top: 39px;
  width: 170px;
  background: #555555;
}
#siteProfile .navLangSel .wrapLangSel, #siteIr .navLangSel .wrapLangSel {
  top: 110px;
}
.navLangSel .wrapLangSel a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
  text-align: center;
  font-size: 85%;
}
.navLangSel .wrapLangSel li + li {
  border-top: 1px solid #444;
}
#closeLangSel {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  border: none;
  margin: 0;
}
@media screen and (max-width:767px) {
  .navLangSel {
    background: #f0f0f0;
    position: fixed;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    width: auto;
    z-index: 1150;
  }
  .navLangSel .wrapLangSel {
    margin: 15px 10px;
    background: transparent;
    width: auto;
    position: static;
  }
  .navLangSel .wrapLangSel a {
    padding: 15px;
    color: #333;
    text-decoration: none;
    text-align: center;
    font-size: inherit;
  }
  .navLangSel .wrapLangSel li + li {
    border-top: none;
  }
  /* SP では #gNavTogglebtn が閉じるボタンになるので、#closeLangSel は隠す */
  #closeLangSel {
    display: none;
  }
}
/*-------------------------------*/
/*ハンバーガーメニューボタン*/
#gNavTogglebtn, #gNavTogglebtn2 {
  display: none;
}
@media screen and (max-width:767px) {
  /* #gNavTogglebtnと#gNavTogglebtn2の外観や動作は同一であるが、表示される位置が異なる。
	 * この二つが存在する理由については common.js で説明している。 */
  #gNavTogglebtn {
    position: absolute;
    z-index: 1125;
  }
  #gNavTogglebtn2 {
    position: absolute;
    z-index: 1200;
  }
  #gNavTogglebtn2, #gNavTogglebtn.sticky {
    position: fixed;
    z-index: 1200;
  }
  #gNavTogglebtn, #gNavTogglebtn2 {
    display: block;
    top: 0;
    right: 0;
    width: 60px;
    height: 60px;
    background: #00a496;
    border: none;
    cursor: pointer;
    padding: 0;
    transition: 250ms background-color, 250ms height, 250ms opacity;
    will-change: background-color, height, opacity;
  }
  #gNavTogglebtn > span, #gNavTogglebtn2 > span {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    position: relative;
    height: 60px;
    padding: 0 0 8px;
    text-align: center;
    font-size: 0.65rem;
    color: #ffffff;
    transition: 250ms color;
    will-change: color;
  }
  #gNavTogglebtn:before, #gNavTogglebtn2:before {
    content: "";
    display: block;
    position: absolute;
    top: 21.5px;
    left: 19px;
    width: 22px;
    height: 0;
    border-top: 2px solid #ffffff;
    transition: 250ms opacity;
  }
  #gNavTogglebtn > span:before, #gNavTogglebtn2 > span:before {
    content: "";
    display: block;
    position: absolute;
    top: 15.5px;
    left: 19px;
    width: 22px;
    height: 0;
    border-top: 2px solid #ffffff;
    transition: 250ms transform;
  }
  #gNavTogglebtn > span:after, #gNavTogglebtn2 > span:after {
    content: "";
    display: block;
    position: absolute;
    top: 27.5px;
    left: 19px;
    width: 22px;
    height: 0;
    border-top: 2px solid #ffffff;
    transition: 250ms transform;
  }
  #gNavTogglebtn .actText, #gNavTogglebtn2 .actText {
    display: none;
  }
  #gNavTogglebtn2 {
    opacity: 0;
    pointer-events: none;
  }
  /* アクティブ状態 */
  .menuOpen #gNavTogglebtn, .menuOpen #gNavTogglebtn2 {
    background: #4d4d4d;
    pointer-events: auto;
    opacity: 1;
  }
  .menuOpen #gNavTogglebtn:before, .menuOpen #gNavTogglebtn2:before {
    opacity: 0;
  }
  .menuOpen #gNavTogglebtn > span:before, .menuOpen #gNavTogglebtn2 > span:before {
    transform: translateY(6px) rotate(45deg);
  }
  .menuOpen #gNavTogglebtn > span:after, .menuOpen #gNavTogglebtn2 > span:after {
    transform: translateY(-6px) rotate(-45deg);
  }
  .menuOpen #gNavTogglebtn .inactText, .menuOpen #gNavTogglebtn2 .inactText {
    display: none;
  }
  .menuOpen #gNavTogglebtn .actText, .menuOpen #gNavTogglebtn2 .actText {
    display: inline;
  }
  /* ページをスクロールしたらボタンを小さくする (非アクティブ状態のみ) */
  html:not(.menuOpen) #gNavTogglebtn.mini, html:not(.menuOpen) #gNavTogglebtn2.mini {
    height: 45px;
  }
  html:not(.menuOpen) #gNavTogglebtn.mini > span, html:not(.menuOpen) #gNavTogglebtn2.mini > span {
    color: rgba(255, 255, 255, 0);
  }
}
/*-------------------------------*/
/*ハンバーガーメニュー内ヘッダー*/
.menuHd.spOnly {
  display: none;
  height: 60px;
  padding: 0 10px;
}
@media screen and (max-width:767px) {
  .menuHd.spOnly {
    display: flex;
    align-items: center;
  }
  .menuHd.spOnly img {
    /*   width: 60%;*/
    width: 110px;
    height: auto;
  }
}
/*ハンバーガーメニュー内ヘッダーにあるリンク*/
.menuHd.spOnly a {
  display: flex;
  position: relative;
  color: #676767;
  font-size: 0.85rem;
}
/*.menuHd a:before {
	content: "";
	display: block;
	position: absolute;
	top: 8px;
	left: 0;
	width: 4px;
	height: 4px;
	border-top: 2px solid #004ea2;
	border-right: 2px solid #004ea2;
	transform: rotate(45deg);
}
.menuHd a > span {
	display: inline-block;
	padding: 0 0 0 14px;
}*/
/*-------------------------------*/
/*スマホホームのみ表示のグローバルナビゲーション*/
.gbNav.spOnly {
  display: none;
}
@media screen and (max-width:767px) {
  .gbNav.spOnly {
    display: flex;
    flex-wrap: wrap;
    border-top: 1px solid #ececec;
    border-bottom: 1px solid #ececec;
  }
  .gbNav.spOnly li {
    width: 20%;
    padding: 0 4px;
  }
  #siteMultilang .gbNav.spOnly li {
    width: 25%;
  }
  .gbNav.spOnly li.news {
    margin: 20px 0 0;
    width: 100%;
  }
  .gbNav.spOnly li a {
    display: flex;
    flex-direction: column;
    padding: 55px 0 10px;
    font-size: 0.8rem;
    text-align: center;
    text-decoration: none;
    color: #676767;
    background-position: 50% 10px;
    background-size: auto 45%;
  }
  .gbNav.spOnly li.train a {
    background-size: 26px auto;
  }
  .gbNav.spOnly li.search a {
    background-size: 44px auto;
  }
  .gbNav.spOnly li.estate a {
    background-size: 40px auto;
  }
  .gbNav.spOnly li.airport a {
    background-position: 50% 13px;
    background-size: 50px auto;
  }
  .gbNav.spOnly li.information a {
    background-size: 34px auto;
  }
  .gbNav.spOnly li a .layTxt {
    white-space: nowrap;
  }
}
@media screen and (max-width:500px) {
  .gbNav.spOnly li a {
    font-size: 0.75rem;
  }
  .gbNav.spOnly li a .layTxt {
    letter-spacing: -0.02rem;
  }
  .gbNav.spOnly li a .layTxt.adjCompact {
    letter-spacing: -0.13rem;
  }
}
@media screen and (max-width:424px) {
  .gbNav.spOnly li {
    padding: 0;
  }
  .gbNav.spOnly li a {
    font-size: 2.8vw;
  }
}
/*-------------------------------*/
/*グローバルナビ hover表示*/
.gbNavItem:not(.act) .gbNavItemNoIcon .gbNavCateTop:after, .gbNavItem:not(.act) .gbNavItemIcon .gbNavCateTop:after {
  content: "";
  display: block;
  position: absolute;
  bottom: -20px;
  left: 50%;
  margin-left: -50px;
  width: 100px;
  height: 4px;
  background: #004ea2;
  transform: scaleX(0);
  transition: 200ms cubic-bezier(0.48, 0.1, 0.5, 1.0);
}
.gbNavItem:not(.act) .gbNavItemNoIcon:hover .gbNavCateTop:after, .gbNavItem:not(.act) .gbNavItemIcon:hover .gbNavCateTop:after {
  transform: scaleX(1);
}
@media screen and (max-width:767px) {
  .gbNavItem:not(.act) .gbNavItemNoIcon .gbNavCateTop:after, .gbNavItem:not(.act) .gbNavItemIcon .gbNavCateTop:after, .gbNavItem:not(.act) .gbNavItemNoIcon:hover .gbNavCateTop:after, .gbNavItem:not(.act) .gbNavItemIcon:hover .gbNavCateTop:after {
    display: none;
  }
}
/*-------------------------------*/
/*グローバルナビ アクティブ表示*/
.gbNavItem .gbNavCateTop {
  display: flex;
  justify-content: center;
  position: relative;
  height: 100%;
  padding: 7px 0 0;
}
.gbNavItem.act .gbNavCateTop {
  color: #004ea2;
}
.gbNavItem.act .gbNavCateTop:after {
  content: "";
  display: block;
  position: absolute;
  bottom: -20px;
  left: 50%;
  margin-left: -50px;
  width: 100px;
  height: 4px;
  background: #004ea2;
  transform: scaleX(1);
}
@media screen and (max-width:767px) {
  .gbNavItem .gbNavCateTop {
    justify-content: flex-start;
    padding: 0;
  }
  .gbNavItem.act .gbNavCateTop {
    height: auto;
  }
  .gbNavItem.act.open span.gbNavCateTop {
    color: #ffffff;
  }
  .gbNavItem.act .gbNavCateTop:after {
    display: none;
  }
}
/*ハンバーガーメニューオープン時*/
/*ハンバーガーメニューオープン時のみ　電車のご利用案内*/
@media screen and (max-width:767px) {
  header .gbInLclNav1 a[target="_blank"] span.linkIconTypBlankSub {
    padding-top: 5px;
    padding-bottom: 5px;
    min-height: inherit;
  }
  .gbInLclNav0 {
    border-top: 1px solid #004ea2;
  }
  .gbInLclNav0 a {
    display: block;
    padding: 10px 20px;
  }
  .open .gbInLclNav0 a {
    color: #004ea2;
  }
  .gbInLclNav0 a .linkIcon {
    position: relative;
    display: inline-block;
    padding: 5px 20px 5px 0;
  }
  .gbInLclNav0 a .linkIcon:after {
    content: "";
    display: block;
    position: absolute;
    /*    top: 0.6rem;*/
    top: 50%;
    right: 0;
    width: 4px;
    height: 4px;
    margin-top: -3px;
    border-top: 3px solid #004ea2;
    border-right: 3px solid #004ea2;
    transform: rotate(45deg);
  }
  .gbInLclNav1 {
    border-top: 1px solid #004ea2;
  }
  .gbInLclNav1 li + li {
    border-top: 1px solid #e5e5e5;
  }
  .gbInLclNav1 a {
    display: block;
    padding: 20px;
  }
  .wrapNav .dropdownContent li.gbInLclNavItemLine, .wrapNav .dropdownContent li.gbInLclNavItemBsc {
    border-top: 1px solid #e5e5e5;
    padding: 10px;
  }
  .gbInLclNavItemLine dl {
    display: flex;
    flex-wrap: wrap;
  }
  .gbInLclNavItemLine dt {
    margin: 0;
    width: 100%;
  }
  .gbInLclNavItemLine dt a {
    padding: 5px 10px;
    color: #838383;
  }
  .gbInLclNavItemLine dd {
    margin: 2px 0;
    width: 50%;
    font-size: 0.9rem;
    padding: 2px 10px;
  }
  .wrapNav .dropdownContent li.gbInLclNavItemLine dd a {
    padding: 5px 0;
  }
  .gbInLclNavItemBsc dt {
    margin: 0;
  }
  .gbInLclNavItemBsc dt, .navHeaderIn .gbNav .gbInLclNavItemBsc dt a {
    color: #838383;
  }
  .wrapNav .dropdownContent li.gbInLclNavItemBsc dd {
    margin: 0 0 0 10px;
    font-size: 0.9rem;
  }
  .gbInLclNavItemBsc dd + dd {
    margin-top: 2px;
  }
  .wrapNav .dropdownContent li.gbInLclNavItemBsc dd a {
    position: relative;
    padding: 8px 0 8px 15px;
  }
  .gbInLclNavItemBsc dd a:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -3px;
    width: 4px;
    height: 4px;
    border-top: 2px solid #004ea2;
    border-right: 2px solid #004ea2;
    transform: rotate(45deg);
  }
  .gbInLclNavItemBsc dd a.toggleDropdown:before, .gbInLclNavItemBsc dd a.toggleDropdown:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 2px);
    background: #004ea2;
    border: none;
    transform: none;
  }
  .gbInLclNavItemBsc dd a.toggleDropdown:before {
    left: 0;
    width: 8px;
    height: 2px;
  }
  .gbInLclNavItemBsc dd a.toggleDropdown:after {
    left: 3px;
    width: 2px;
    height: 8px;
  }
  .gbInLclNavItemBsc dd.open a.toggleDropdown {
    color: #555555;
  }
  .gbInLclNavItemBsc dd a.toggleDropdown:before {
    background: #555555;
  }
  .gbInLclNavItemBsc dd.open a.toggleDropdown:after {
    display: none;
  }
  .gbInLclNavItemBsc dd:not(.open) > .dropdownWrap > .dropdown {
    height: 0 !important;
  }
}
@media screen and (max-width:374px) {
  .gbInLclNavItemLine {
    padding-left: 15px;
  }
  .gbInLclNavItemLine dd {
    font-size: 3.5vw;
  }
  .gbInLclNavItemLine dd a span {
    padding-left: 15px;
  }
  .gbInLclNavItemLine .layIconLine:after {
    width: 10px;
  }
}
/*-------------------------------*/
/*フッター*/
#wrapFooter {
  display: flex;
  justify-content: center;
  padding: 0 0 30px;
  background: #353535;
}
body.fGadget #wrapFooter {
  padding-bottom: 80px;
}
footer {
  width: 100%;
}
#wrapFooter a {
  text-decoration: none;
}
nav.navFooterIn {
  min-width: 1100px;
}
@media screen and (max-width:767px) {
  #wrapFooter {
    display: block;
    padding: 0 0 40px 0;
  }
  body.fGadget #wrapFooter, body.fGadgetSpOnly #wrapFooter {
    padding-bottom: 100px;
  }
}
/*バナーリンク*/
.ftNavBnr {
  display: flex;
  justify-content: center;
  padding: 30px 0;
  background: #2e2e2e;
}
.ftNavBnr li {
  margin: 0 15px;
}
.ftNavBnr li:nth-child(even) {
  margin-left: 20px;
}
.ftNavBnr li a img {
  transition: opacity 0.2s ease-out;
}
.ftNavBnr li a:hover img {
  filter: alpha(opacity=60);
  -moz-opacity: .60;
  opacity: .60;
}
/*テキストリンク*/
.ftNavTxt {
  display: flex;
  justify-content: center;
  padding: 30px 0 0;
  font-size: 0.9rem;
}
.ftNavTxt li {
  margin: 0 20px;
}
.ftNavTxt a {
  position: relative;
  display: inline-block;
  align-items: center;
  padding-left: 14px;
}
.ftNavTxt a:before {
  content: "";
  display: block;
  position: absolute;
  top: 8px;
  left: 0;
  width: 4px;
  height: 4px;
  border-top: 2px solid #ffffff;
  border-right: 2px solid #ffffff;
  transform: rotate(45deg);
}
/*フッターロゴ */
#footerIdentity {
  margin: 40px auto 30px;
  text-align: center;
}
/*コピーライト*/
p.copyRight {
  margin: 30px 0 0;
  text-align: center;
  font-size: 0.7rem;
}
@media screen and (max-width:767px) {
  nav.navFooterIn {
    min-width: inherit;
  }
  /*バナーリンク sp*/
  .ftNavBnr {
    flex-wrap: wrap;
    justify-content: flex-start;
    margin: 0;
    border-top: 1px solid #454545;
    padding: 10px;
    width: auto;
  }
  .ftNavBnr li, .ftNavBnr li:nth-child(even) {
    margin: 0;
    padding: 10px;
    width: 33.33333333%;
  }
  .ftNavBnr li img {
    width: 100%;
    height: auto;
    margin: 0 auto;
  }
  /*テキストリンク sp*/
  .ftNavTxt {
    display: block;
    width: auto;
  }
  .ftNavTxt li + li {
    margin-top: 20px;
  }
  /*フッターロゴ sp*/
  #footerIdentity {
    margin: 40px 0 0;
    border-top: 1px solid #454545;
    padding: 40px 20px 0;
  }
  #footerIdentity img {
    width: 170px;
    height: auto;
  }
  /*コピーライト sp*/
  p.copyRight {
    margin: 20px 0 0;
    border-top: none;
  }
  body.chatbot p.copyRight {
    padding: 0 0 150px;
  }
}
@media screen and (max-width:424px) {
  .ftNavBnr li, .ftNavBnr li:nth-child(even) {
    width: 50%;
  }
}
/*-------------------------------*/
/*フッター ローカルナビゲーション共通*/
#wrapLclNav {
  position: relative;
  border-top: 3px solid #e9e9e9;
  padding: 60px 0 70px;
  background: #fafafa;
}
#wrapLclNav:after {
  content: "";
  position: absolute;
  left: 50%;
  top: -3px;
  margin-left: -68px;
  width: 136px;
  height: 3px;
  background: #00a496; /* Old browsers */
  background: -moz-linear-gradient(left, #00a496 0%, #00a496 35%, #e9194b 35%, #e9194b 65%, #e9194b 65%, #254f8e 65%, #254f8e 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(left, #00a496 0%, #00a496 35%, #e9194b 35%, #e9194b 65%, #e9194b 65%, #254f8e 65%, #254f8e 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #00a496 0%, #00a496 35%, #e9194b 35%, #e9194b 65%, #e9194b 65%, #254f8e 65%, #254f8e 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}
#wrapLclNav a {
  text-decoration: none;
}
#wrapLclNav a:hover, #wrapLclNav a:hover span {
  text-decoration: underline;
}
#wrapLclNav dd.act > a, #wrapLclNav li.act > a {
  color: #555555;
  font-weight: 700;
}
.navLocalTitle {
  padding: 0 0 20px;
  font-size: 1.2rem;
  border-bottom: 1px solid #e9e9e9;
}
.navLocalTitle span {
  display: inline-block;
  min-height: 32px;
  padding: 0 0 0 35px;
}
.navLocal {
  width: 1100px;
  margin: 0 auto;
}
.lclNav1 {
  display: flex;
  margin: 30px 0;
}
.lclNav1 li + li {
  margin-left: 50px;
}
.lclNav2 {
  display: flex;
  margin: 30px 0 0;
}
.lclNav2 > li {
  width: 23%;
}
.lclNav2 > li + li {
  margin-left: 2.5%;
}
.lclNav2 > li dl + dl {
  margin-top: 40px;
}
.lclNav2 > li dt {
  margin: 0 0 15px;
}
.lclNav2 > li dt, .lclNav2 li dt a {
  font-size: 1rem;
  color: #555555;
}
.lclNav2 > li dt.sub {
  margin: 15px 0 10px;
  font-size: 0.95rem;
}
.lclNav2 > li dd, .lclNav2 li dd a {
  font-size: 0.85rem;
}
.lclNav2 > li dd + dd {
  margin-top: 10px;
}
.lclNav2 > li dd a {
  display: inline-block;
  position: relative;
  padding-left: 12px;
}
.lclNav2 > li.lclNavItemBsc dd a:after {
  content: "";
  display: block;
  position: absolute;
  top: 0.5rem;
  left: 0;
  width: 4px;
  height: 4px;
  border-top: 2px solid #004ea2;
  border-right: 2px solid #004ea2;
  transform: rotate(45deg);
}
.lclNav2 > li.lclNavItemBsc dd.act > a:after, .lclNav2 > li.lclNavItemBsc li.act > a:after {
  border-top: 2px solid #555555;
  border-right: 2px solid #555555;
}
.lclNav2 > li.lclNavItemBsc dd a.toggleDropdown:before, .lclNav2 > li.lclNavItemBsc dd a.toggleDropdown:after {
  content: "";
  display: block;
  position: absolute;
  top: 0.5rem;
  background: #004ea2;
  border: none;
  transform: none;
}
.lclNav2 > li.lclNavItemBsc dd a.toggleDropdown:before {
  top: calc(50% - 1px);
  left: 0;
  width: 8px;
  height: 2px;
}
.lclNav2 > li.lclNavItemBsc dd a.toggleDropdown:after {
  top: calc(50% - 4px);
  left: 3px;
  width: 2px;
  height: 8px;
}
.lclNav2 > li.lclNavItemBsc dd.open a.toggleDropdown {
  color: #555555;
}
.lclNav2 > li.lclNavItemBsc dd a.toggleDropdown:before {
  background: #555555;
}
.lclNav2 > li.lclNavItemBsc dd.open a.toggleDropdown:after {
  display: none;
}
.lclNav2 > li.lclNavItemLine dd a {
  padding-left: 0;
}
#wrapLclNav .dropdownContent {
  padding: 10px 0 0 10px;
}
#wrapLclNav .dropdown {
  transition: 300ms height;
  overflow: hidden;
}
#wrapLclNav .hasDropdown:not(.open) .dropdown {
  height: 0 !important;
}
#wrapLclNav .dropdownContent li + li {
  margin-top: 6px;
}
@media screen and (max-width:767px) {
  #wrapLclNav {
    display: none;
  }
}
/*-------------------------------*/
/*「ページの上部に戻る」*/
#scrollToPageTop {
  display: block;
  position: fixed;
  width: 31px;
  height: 60px;
  right: 15px;
  bottom: 15px;
  border-radius: 4px;
  z-index: 900;
  background: #004ea2;
  transition: 200ms background-color ease-out, 200ms height ease-out, 200ms opacity;
  will-change: background-color, height, opacity;
}
#scrollToPageTop:hover {
  background: #006cc3;
  height: 70px;
}
#scrollToPageTop:not(.show) {
  /* ユーザがページをスクロールするまでは、このボタンを隠す */
  opacity: 0;
  pointer-events: none;
}
#scrollToPageTop:before, #scrollToPageTop:after {
  position: absolute;
  content: "";
  border-radius: 1px;
}
#scrollToPageTop:before {
  left: 15px;
  top: 10px;
  bottom: 10px;
  width: 1px;
  background: #ffffff;
}
#scrollToPageTop:after {
  left: 10px;
  top: 11px;
  width: 10px;
  height: 10px;
  border-top: 1px solid #ffffff;
  border-right: 1px solid #ffffff;
  transform: rotate(-45deg);
}
body.fGadget #scrollToPageTop {
  bottom: 80px;
}
@media screen and (max-width:767px) {
  body.fGadgetSpOnly #scrollToPageTop {
    bottom: 80px;
  }
}
/*-------------------------------*/
/*チャットボット位置調整*/
#chat_ico {
  right: 70px !important;
  bottom: 15px !important;
}
/*-------------------------------*/
/*お問合せ赤文字*/
.contact_important {
    list-style: none;
    padding-left: 0;
    color: red;
}
/*-------------------------------*/
/*end*/
