/**********************************************/
/*                                            */
/*  CSSリセット                               */
/*                                            */
/**********************************************/
*{margin: 0; padding: 0; box-sizing: border-box; }
a:link, a:visited { text-decoration: none; }
a:hover, a:active { text-decoration: underline; }
button { border-style: none; background-color: transparent; }

img { vertical-align: middle; border: 0; }

table { border-collapse: collapse; border: 0; table-layout: fixed; }
td { vertical-align: top; }

input[type="button"], input[type="submit"], input[type="reset"] { padding: 2px 4px; }


/**********************************************/
/*                                            */
/*  ページ設定                                */
/*                                            */
/**********************************************/
body {
  /*BX*/
  width: 100%;
  margin: 0;
  /*BG*/
  background-color: #f8fff8;
  background-image: url(pagebackground.png);
  /*TX*/
  font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, Tahoma, 'ＭＳ Ｐゴシック', sans-serif;
}


/**********************************************/
/*                                            */
/*  フレックスボックス関係の汎用設定          */
/*                                            */
/**********************************************/
/*============================================*/
/*  フレックスコンテナ                      　*/
/*============================================*/
.Container {
  /*VI*/
  display: flex;
}

.Container.Center {
  /*FB*/
  justify-content: center;
}

/*** フレックスボックス子要素を横並びにする ***/
  /*FB*/
.DirHorizontal {
  flex-direction: row;
}

/*** フレックスボックス子要素を縦並びにする ***/
.DirVertical {
  /*FB*/
  flex-direction: column;
}

/*** フレックスボックス子要素の並びを縦/横切り替える ***/
.DirResponsive {
  /*FB*/
  flex-direction: row;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .DirResponsive {
    /*FB*/
    flex-direction: column;
  }
}
.DirResponsive > div {
  /*BX*/
  margin-right: 5px;		/* 最後の子要素以外は右にマージンを設ける */
  margin-bottom: 0;
}
.DirResponsive > div:last-of-type {
  /*BX*/
  margin-right: 0		/* 最後の子要素は右にマージンを0にする */
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .DirResponsive > div:not(:last-of-type) {
    /*BX*/
    margin-right: 0;
    margin-bottom: 4px;		/* 最後の子要素以外は下にマージンを設ける */
  }
}

/*============================================*/
/*  フレックスボックス                      　*/
/*============================================*/
.DirHorizontal > .FlexBox {
  /*BX*/
  margin-right: 5px;		/* 横並びの子要素のうち最後の要素以外は右にマージンを設ける */
}
.DirHorizontal > .FlexBox:last-of-type {
  /*BX*/
  margin-right: 0;		/* 横並びの子要素のうち最後の要素は右マージンを0にする */
}

.DirVertical > .FlexBox {
  /*BX*/
  margin-bottom: 5px;		/* 縦並びの子要素のうち最後の要素以外は下にマージンを設ける */
}
.DirVertical > .FlexBox:last-of-type {
  /*BX*/
  margin-bottom: 0;		/* 縦並びの子要素のうち最後の要素は下マージンを0にする */
}

/*** 幅比率1のフレックスボックス ***/
.F1 { /*FB*/flex: 1; }

/*** 幅比率2のフレックスボックス ***/
.F2 { /*FB*/flex: 2; }

/*** 幅比率5のフレックスボックス ***/
.F5 { /*FB*/flex: 5; }

@media screen and (max-width:640px) {		/* スマートフォン用 */
  .F1, .F2, .F5 {
    /*FB*/
    flex-basis: auto;		/* IE11対策 */
  }
}

/**********************************************/
/*                                            */
/*  コンテンツ用フレックスボックスの設定      */
/*                                            */
/**********************************************/
.Content {
  /*BX*/
  margin: 0;
  padding: 8px 8px 12px 10px;
  border: mediumslateblue 1px solid;
  overflow: hidden;
  /*BG*/
  background-color: #f8f8ff;
  background: linear-gradient(345deg, #e0e0f4, #f8f8ff 80px, #f8f8ff);
  /*TX*/
  font-size: 1.5vw;		/* ビューポート幅=800pxのとき12px */
  line-height: 1.5em;
  text-align: left;
}
@media screen and (min-width:1000px) { 
  .Content {
    /*TX*/
    font-size: 15px;
  }
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .Content {
    /*TX*/
    font-size: 11px;
  }
}

.Menu {
  /*BX*/
  padding: 0 0 12px;
  /*BG*/
  background-color: #e8e8f4;
  background-image: none;
}

.Content.Caution {
  /*BX*/
  border: #f08080 1px solid;
  /*BG*/
  background-color: white;
  background-image: none;
}

#Breadcrumb {
  /*BX*/
  padding: 1px 8px;
  border: 0;
  /*BG*/
  background-color: #e0f0ff;
  background-image: none;
}

.Centered {
  /*TX*/
  text-align: center;
}

.ZeroPadding {
  /*BX*/
  padding: 0;
}


/**********************************************/
/*                                            */
/*  特定のフレックスボックス用の設定          */
/*                                            */
/**********************************************/
/*============================================*/
/*  ページボックス                            */
/*============================================*/
#PageBox {
  /*BX*/
  width: 96vw;
  margin: 4px auto auto auto;	/* ページを左右中央揃え表示にするため、左右マージンをautoにする */
}

/*============================================*/
/*  トップバナー                              */
/*============================================*/

/***  トップページ用  ***/
#TopBanner {
  /*FB*/
  flex: 0;
  /*BX*/
  min-height: calc(96vw * 260 / 800);
  margin: 0 0 4px;
  border: 0;
  overflow: hidden;
  /*VI*/
  position: relative;
  /*BG*/
  background-color: #003399;
  background-image: url(top-banner.jpg);
  background-size: cover;
  background-position: center;
}

#HumbergerButton {
  /*VI*/
  display: none;
  position: absolute;
  left: 12px;
  bottom: 12px;
  /*BX*/
  width: 36px;
  height: 36px;
  /*BG*/
  background-image: url(Humberger-Button.svg);
  background-size: cover;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #HumbergerButton {
    /*VI*/
    display: inline;
  }
}

/***  一般ページ用  ***/
#TopBannerSmall {
  /*VI*/
  display: table;
  position: relative;
  /*BX*/
  width: 96vw;
  height: calc(96vw * 60 / 800);
  padding: 2px 0;
  margin: 0 0 8px;
  border: 0;
  overflow: hidden;
  /*BG*/
  background-color: #003399;
  background-image: url(top-banner-s.jpg);
  background-size: cover;
  background-position: right;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #TopBannerSmall {
    /*BX*/
    min-height: 40px;
  }
}

#HumbergerButton {
  /*VI*/
  display: none;
  position: absolute;
  left: 5px;
  bottom: 3px;
  /*BX*/
  width: 36px;
  height: 36px;
  /*BG*/
  background-image: url(Humberger-Button.svg);
  background-size: cover;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #HumbergerButton {
    /*VI*/
    display: inline;
  }
}

/*============================================*/
/*  メニュー用サイズ固定ボックス              */
/*============================================*/
#MenuBox {
  /*FB*/
  flex: 0;		/* 幅固定 */
  /*BX*/
  min-width: 176px;
  margin-right: 5px;
  overflow: hidden;
  /*TX*/
  /* 幅の狭いカラムは欧文ワードラップを無効にする */
  word-break: break-all;
  word-wrap: break-word;
  /*OT*/
  transition: left .25s ease-in-out;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #MenuBox {
    /*VI*/
    position: absolute;
    top: 0;
    left: -180px;
    z-index: 9999;	/*最前面に*/
  }
  #MenuBox > .Content {
    /*BX*/
    margin-bottom: 0;
  }
}

#BlackCover {
  /*VI*/
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  opacity: 0;
  z-index: 99;
  /*BX*/
  width: 100%;
  height: 100%;
  /*BG*/
  background: black;
  /*OT*/
  transition: opacity .25s ease-in-out;
}

/*============================================*/
/*  FOOTER                                    */
/*============================================*/
.Footer1 {
  /*BX*/
  width: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden;
  border: 0;
  /*BG*/
  background-color: #e0f0ff;
}

.Footer2 {
  /*BX*/
  width: 100%;
  min-height: 12px;
  padding: 0;
  margin: 0 0 4px;
  overflow: hidden;
  border: 0;
  /*BG*/
  background-color: #003399;
}


/**********************************************/
/*                                            */
/*  TOP BANNER用                              */
/*                                            */
/**********************************************/
#TopBanner > h1 {
  /*VI*/
  position: absolute;
  top: 2.5vw;
  left: 5vw;
  /*TX*/
  font-size: 3.5vw;		/* ビューポート幅=800pxのとき28px */
  font-weight: bold;
  color: white;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #TopBanner > h1 {
    /*TX*/
    font-size: 17px;
  }
}

#TopBannerSmall > h1 {
  /*VI*/
  display: table-cell;
  /*BX*/
  padding-left: 2.5vw;
  /*TB*/
  vertical-align: middle;
  /*TX*/
  font-size: 2.5vw;		/* ビューポート幅=800pxのとき20px */
  font-weight: bold;
  color: white;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #TopBannerSmall > h1 {
    /*BX*/
    padding-left: 60px;
    /*TX*/
    font-size: 17px;
  }
}

#LastUpdate {
  /*VI*/
  position: absolute;
  bottom: 1.9vw;			/* ビューポート幅=800pxのとき15px */
  right: 2.5vw;				/* ビューポート幅=800pxのとき15px */
  /*TX*/
  font-size: 1.5vw;			/* ビューポート幅=800pxのとき12px 最大15px */
  color: white;
}
@media screen and (min-width:1000px) { 
  #LastUpdate {
    /*TX*/
    font-size: 15px;
  }
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #LastUpdate {
    /*TX*/
    font-size: 11px;
  }
}

/**********************************************/
/*                                            */
/*  メニューボタン                            */
/*                                            */
/**********************************************/
a.MenuButton {
  /*VI*/
  display: block;
  /*BX*/
  width: 158px;
  height: 34px;
  margin: 8px 7px;
  padding: 0;
  border-radius: 4px;
  overflow: hidden;
  /*TX*/
  font-size: 11px;		/* 固定サイズ */
  text-align: left;
  text-decoration: none;
  /*OT*/
  cursor: pointer;
  /*BG*/
  background-clip: border-box;
  background-origin: border-box;
}

a.MenuButton:link, a.MenuButton:visited {
  /*BX*/
  border: #e8e8f4 1px solid;
  /*BG*/
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), transparent 40%, transparent 60%, rgba(0, 0, 0, 0.15));
  /*TX*/
  color: black;
}

a.MenuButton:hover, a.MenuButton:active {
  /*BX*/
  border-top: rgba(255, 255, 255, 0.8) 1px solid;
  border-left: rgba(255, 255, 255, 0.8) 1px solid;
  border-bottom: rgba(0, 0, 0, 0.4) 1px solid;
  border-right: rgba(0, 0, 0, 0.4) 1px solid;
  /*BG*/
  background: linear-gradient(to bottom, rgba(192, 255, 192, 0.6), rgba(0, 255, 0, 0.1) 40%, rgba(0, 255, 0, 0.1) 60%, rgba(0, 40, 0, 0.15));
  /*TX*/
  color: blue;
}

/* <a>タグでdisabled指定されているメニューボタン */
a.MenuButton.disabled {
  /*BX*/
  margin: 8px 7px;
  border: rgba(0, 0, 0, 0.2) 1px solid;
  /*BG*/
  background-image: none;
  background-color: rgba(255, 255, 255, 0.5);
  /*TX*/
  color: rgba(0, 0, 0, 0.5);
  /*OT*/
  pointer-events: none;		/* リンクを無効にする */
  cursor: default;
}

/* メニューボタンのアイコン */
.IconImage {
  /*BX*/
  width: 26px;
  height: 26px;
  margin: 3px 2px 3px 5px;
}

/* <a>タグでdisabled指定されているメニューボタンのアイコン */
a.MenuButton.disabled > .IconImage {
  /*VI*/
  opacity: 0.5;
}


/**********************************************/
/*                                            */
/*  一般コンテンツ用                          */
/*                                            */
/**********************************************/

/*============================================*/
/*  MAIN CONTENT                              */
/*============================================*/
h2 {
  /*BX*/
  margin: 0 0 1px;
  padding: 2px 8px 2px 10px;
  border: 0;
  /*BG*/
  background-color: #003399;
  background-position: top left;
  /*TX*/
  font-size: 1.5vw;		/* ビューポート幅=800pxのとき12px 最大15px */
  font-weight: bold;
  line-height: 1.5em;
  text-align: left;
  color: white;
}
@media screen and (min-width:1000px) { 
  h2 {
    /*TX*/
    font-size: 15px;
  }
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  h2 {
    /*TX*/
    font-size: 12px;
  }
  div#MenuBox > h2 {
    /*VI*/
    display: none;
  }
}

h2:not(.Caution) {
  /*BX*/
  border-top-left-radius: calc(1em * 3 / 4);
}

h2.Caution {
  /*BG*/
  background-image: none;
  background-color: firebrick;
}


h3 {
  /*BX*/
  margin: 0;
  padding: 0 8px 0 10px;
  border: mediumslateblue 1px solid;
  border-bottom: 0;
  /*BG*/
  background-color: #d4ecf2;
  /*TX*/
  font-size: 1.5vw;		/* ビューポート幅=800pxのとき12px */
  font-weight: normal;
  line-height: 1.5em;
  text-align: left;
  color: black;
}
@media screen and (min-width:1000px) { 
  h3 {
    /*TX*/
    font-size: 15px;
  }
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  h3 {
    /*TX*/
    font-size: 12px;
  }
}

#MenuTitle {
  /*VI*/
  position: relative;
  /*BX*/
  margin-bottom: 8px;
  padding: 10px 0;
  border: none;
  /*BG*/
  background-color: #e0f0ff;
  /*TX*/
  font-size: 15px;
  font-weight: bold;
  text-align: center;
  color: #003399;
}

#CloseButton {
  /*VI*/
  display: none;
  position: absolute;
  /*BX*/
  width: 36px;
  height: 36px;
  margin-top: auto;
  margin-bottom: auto;
  top: 0;
  bottom: 0;
  right: 6px;
  /*BG*/
  background-image: url(Close-Button.svg);
  background-size: cover;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  #CloseButton {
    /*VI*/
    display: inline;
  }
}

/*============================================*/
/* Content Box                                */
/*============================================*/

@media screen and (max-width:640px) {		/* スマートフォン用 */
  .HiddenOnMobile {
    /*VI*/
    display: none;
  }
}


/*============================================*/
/* ContentBox内で使用するスタイル             */
/*============================================*/

/* hr */
.Content hr {
  /*BX*/
  border: mediumslateblue dotted;
  border-width: 1px 0 0;
  height: 1px;
  overflow: hidden;
  margin: 6px 0;
}

/* 下側の境界線を点線で区切るセクション */
.SubSection {
  /*BX*/
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: mediumslateblue 1px dotted;
}

/* 最終セクションは境界線なし */
.SubSection:last-child {
  /*BX*/
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

/* テーブル */
.Content table {
  /*BX*/
  margin: 4px auto;
}

.Content td {
  /*BX*/
  padding: 4px;
}

.Content tr.Header {
  /*BX*/
  background-color: #e4e4f8;
  border-bottom: 2px solid #8080c0;
}
.Content tr.Header td {
  /*BX*/
  padding-top: 0;
  padding-bottom: 0;
}

/* イメージ */
.LinkBanner {
  /*TB*/
  vertical-align: top;
  /*BX*/
  margin-right: 10px;
}

img.Centering {
  /*VI*/
  display: block;
  /*BX*/
  margin-left: auto;
  margin-right: auto;
}

/* 写真キャプション */
.PhotoCaption {
  /*BX*/
  padding: 2px;
  /*TX*/
  font-size: 1.4vw;		/* ビューポート幅=800pxのとき11px */
  line-height: 1.2em;
  /*BG*/
  background-color: white;
}
@media screen and (min-width:1000px) { 
  .PhotoCaption {
    /*TX*/
    font-size: 14px;
  }
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .PhotoCaption {
    /*TX*/
    font-size: 10px;
  }
}

/* 次の写真 */
.NextPhoto {
  /*BX*/
  padding: 2px 4px 2px 2px;
  /*TX*/
  text-align: right;
}

/* リスト */
ul {
  /*BX*/
  margin-left: 0;
  /*VI*/
  list-style: none;
}

li {
  /*BG*/
  background-image: url(bullet-blue.svg);
  background-repeat: no-repeat;
  background-position: 0 calc((1.5em - 12px) / 2);
  /*BX*/
  padding-left: 20px;
}

ul.Caution > li {
  /*BG*/
  background-image: url(bullet-red.svg);
}

ol {
  /*BX*/
  margin-left: 30px;
}

/* パンくずリスト */
#Breadcrumb > ul {
  /*BX*/
  margin: 0;
  padding: 0;
}

#Breadcrumb > ul li:first-child {
  /*VI*/
  display: inline-block;
  /*BX*/
  padding-left: 0;
  padding-right: 5px;
  /*BG*/
  background-image: none;
}

#Breadcrumb > ul li {
  /*VI*/
  display: inline-block;
  /*BX*/
  padding-left: 15px;
  padding-right: 5px;
  /*BG*/
  background-image: url(notearrow-blue.svg);
  background-repeat: no-repeat;
  background-position: 0 calc((1.5em - 12px) / 2);
}

/* リンクリスト */
.LinkList {
  /*BX*/
  margin: 0;
  padding: 0;
}

.LinkList li {
  /*BG*/
  background-image: url(notearrow-blue.svg);
  background-repeat: no-repeat;
  background-position: 0 calc((1.5em - 12px) / 2);
  /*BX*/
  padding-left: 15px;
}

.ExternalLink {
  /*BG*/
  background-image: url(notearrow-red.svg);
  background-repeat: no-repeat;
  background-position: 0 calc((1.5em - 12px) / 2);
  /*BX*/
  padding-left: 15px;
}

@media screen and (max-width:640px) {		/* スマートフォン用 */
  .LinkList > li {
    /*BX*/
    margin-top: 10px;
    margin-bottom: 10px;
  }
}

/*============================================*/
/*                                            */
/*============================================*/

.FooterLinks {
  /*BX*/
  margin: 0;
  padding: 4px 2px;
  /*TX*/
  font-size: 1.4vw;		/* ビューポート幅=800pxのとき11px */
  color: dimgray;
  text-align: center;
}
@media screen and (min-width:1000px) { 
  .FooterLinks {
    /*TX*/
    font-size: 14px;
  }
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .FooterLinks {
    /*TX*/
    font-size: 11px;
  }
}

.FooterLinks a {
  /*TX*/
  color: dimgray;
}

.Copyright {
  /*BX*/
  margin: 0;
  padding: 6px 2px;
  /*TX*/
  font-size: 1.5vw;		/* ビューポート幅=800pxのとき12px */
  color: white;
  text-align: center;
}
@media screen and (min-width:1000px) { 
  .Copyright {
    /*TX*/
    font-size: 15px;
  }
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .Copyright {
    /*TX*/
    font-size: 11px;
  }
}

/* EM */
em {
  /*TX*/
  font-style: normal;
  font-weight: bold;
}


/*============================================*/
/*                                            */
/*============================================*/
.FloatLeft {
  /*BX*/
  margin: 2px 12px 2px 0;
  /*VI*/
  float: left;
}

.FlashRight {
  /*TX*/
  text-align: right;
}


/*============================================*/
/* YouTube動画                                */
/*============================================*/
.MovieWrap {
  /*VI*/
  position: relative;
  /*BX*/
  padding-bottom: 56.25%; /*アスペクト比 16:9の場合の縦幅*/
  height: 0;
  overflow: hidden;
}
 
.MovieWrap iframe {
  /*VI*/
  position: absolute;
  /*BX*/
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


/*============================================*/
/* 入力フォーム用                             */
/*============================================*/
.Responsive {
  /*VI*/
  display: flex;
  /*FB*/
  flex-direction: row;
  flex-wrap: wrap;
  /*BX*/
  width: 100%;
}

.ItemName {
  /*BX*/
  width: 24%;
  padding-right: 15px;
  /*TX*/
  text-align: right;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .ItemName {
    /*BX*/
    width: 98%;
    padding-right: 0;
    /*TX*/
    text-align: left;
  }
}

.InputBox {
  /*BX*/
  width: 74%;
  padding-bottom: 12px;
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .InputBox {
    /*BX*/
    width: 98%;
    padding-right: 0;
  }
}

.FullWidth {
  /*BX*/
  width: 98%;
  padding-right: 0;
  /*TX*/
  text-align: left;
}

.InputBox > input[type="text"] {
  /*BX*/
  height: 1.6em;
  width: 82%;
  border: 1px solid gray;
  border-radius: 5px;
  padding: 2px 6px;
  /*BG*/
  background-color: #ffffff;
  /*OT*/
  outline: none;

}

.InputBox > input[type="submit"], .InputBox > input[type="reset"] {
  /*BG*/
  width: 10em;
  height: 3.5em;
  margin-left: 2%;
  margin-right: 2%;
  border: 2px solid #60c060;
  border-radius: 8px;
  /*BG*/
  background: linear-gradient(#f8fff8, #e0f8e0);
}

.InputBox > input[type="submit"]:hover, .InputBox > input[type="reset"]:hover {
  /*BX*/
  border-color: #80f080;
  /*BG*/
  background: linear-gradient(#ffffff, #f8fff8);
}

.InputBox > textarea {
  /*BX*/
  width: 100%;
  border: 1px solid gray;
  border-radius: 5px;
  padding: 2px 6px;
  overflow: auto;
  /*BG*/
  background-color: #ffffff;
  /*OT*/
  outline: none;
  resize: none;
}

.PassCodeInput {
  /*BX*/
  width: calc(74% - 150px);
}
@media screen and (max-width:640px) {		/* スマートフォン用 */
  .PassCodeInput {
    /*BX*/
    width: calc(98% - 150px);
  }
}

.PassCodeImage {
  /*BX*/
  width: 150px;
}

/*============================================*/
/*                                            */
/*============================================*/
img.FloatRight {
  /*BX*/
  margin: 2px 8px 2px 12px;
  /*VI*/
  float: right;
}
