@charset "utf-8";




/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*    サイト共通部                                  */
/*    ・ヘッダ・フッタの装飾                        */
/*    ・全体大枠のレイアウト定義                    */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

html{
}
body{
  text-align: center;
  overflow-wrap: break-word;
  word-wrap: break-word;
  margin: 0 auto;
  min-width: 350px;
  min-width: 320px;
  /*
  background: #fafafa url(../img/common/decoration/body_bg.png) no-repeat 50% 0%;
  background-size: 1500px 750px;
  */
  background: #fafafa url(../img/common/decoration/body_bg_high.png) no-repeat 50% 0%;
  background-size: contain;
  position: relative;
  color: #222;
}
body::before,
body::after{
  content: "";
  position: fixed;
  z-index: 500;
  left: 0;
  display: block;
  height: 3px;
  width: 100%;
  background: #f00;
}
body::before{
  top: 0px;
}
body::after{
  bottom: 0px;
}
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 body{
                      background: #fafafa url(../img/common/decoration/body_bg_sp.png) no-repeat 50% 0%;
                      background-size: contain;
                    }
                    html.rsbp-under-bp2 body::after{
                      display: none;
                    }
#World{
  text-align: left;
}

/* rem の基準フォントサイズ */
html { font-size: 62.5%; }
body { font-size: 1.6em; }


/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*    基本レイアウト                                */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

body{
}
#World{
}
#HeaderDivision{
}

/* サイトのページ幅 */
.PageWidthSetter{
  margin: 0 auto;
  width: 900px;
  width: calc(900px + 2.5vw);
  padding: 0 1.25vw;
}
                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 .PageWidthSetter{
                      width: auto;
                      width: 97.5%;
                      min-width: 320px;
                      padding: 0;
                    }



/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*    Header                                        */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
header{
  position: relative;
  z-index: 100;
}
    header.PositionFixed{
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 100;
      
    }
                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 header{
                      box-shadow: 0 0 .5em rgba(0,0,0,0.125);
                      background: #fff;
                    }
                    html.rsbp-under-bp2 header .PageWidthSetter{
                      width: auto;
                    }

/* HeaderMenuArea
--------------------------------------------------- */
.HeaderMenuArea {
}

    /* - - MainMenuBlock - - */
    .MainMenuBlock{
      position: relative;
      z-index: 10;
    }
        .MainMenuBlock .BlockHeader{
          padding: 30px 0;
          justify-content: flex-start;
          align-items: center;
        }
            .MainMenuBlock .BlockHeader .SiteLogo{
              width: 158px;
              margin-right: 22px;
            }
            .MainMenuBlock .BlockHeader .CatchCopy{
              font-weight: 500;
              letter-spacing: 0.1em;
              font-size: 87.5%;
            }

                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より広いディスプレイ用 */
                    html.rsbp-over-bp2 .MainMenuBlock .MainMenu{
                      height: auto!important;
                    }
                
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 .MainMenuBlock .BlockHeader{
                      -webkit-box-orient: vertical;
                      -webkit-box-direction: reverse;
                         -ms-flex-direction: column-reverse;
                             flex-direction: column-reverse;
                      align-items: flex-start;
                      padding: 15px;
                    }
                    html.rsbp-under-bp2 .MainMenuBlock .BlockHeader .SiteLogo{
                      margin-right: 0;
                      width: 155px;
                      position: relative;
                      z-index: 500;
                    }
                    html.rsbp-under-bp2 .MainMenuBlock .BlockHeader .CatchCopy{
                      font-size: 87.5%;
                      margin-bottom: 0.25em;
                      position: relative;
                      z-index: 500;
                    }





        /*  グローバルメニュー  */
        .MainMenuBlock .GlobalMenu{
          margin: -2px;
        }
        .MainMenuBlock .GlobalMenu li{
          font-size: 87.5%;
        }
                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より広いディスプレイ用 */
                    html.rsbp-over-bp2 .MainMenuBlock .GlobalMenu li{
                      /*flex-grow: 1;*/
                      width: 20%;
                      margin: 2px;
                    }
                        html.rsbp-over-bp2 .MainMenuBlock .GlobalMenu li a{
                          display: block;
                          border: 1px solid #999;
                          background: #fff;
                          border-radius: 4px;
                          box-shadow: 0px 1px 0px #999;
                          text-align: center;
                          line-height: 3em;
                          padding: 0;
                          height: auto;
                        }
                        html.rsbp-over-bp2 .MainMenuBlock .GlobalMenu li a:hover{
                          text-decoration: none;
                          background: #eee;
                          box-shadow: 0px 0px 0px #999;
                          position: relative;
                          top: 1px;
                        }
                            html.rsbp-over-bp2 .MainMenuBlock .GlobalMenu li a .Icon{
                              display: none;
                            }
                            html.rsbp-over-bp2 .MainMenuBlock .GlobalMenu li a .Label{
                              display: inline-block;
                            }
                            html.rsbp-over-bp2 .MainMenuBlock .GlobalMenu li.JyukuOnly{
                              display: none;
                            }
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 .MainMenuBlock .GlobalMenu{
                      border-bottom: 1px solid #ccc;
                      margin: 0;
                    }
                        html.rsbp-under-bp2 .MainMenuBlock .GlobalMenu li{
                          display: block;
                        }
                        html.rsbp-under-bp2 .MainMenuBlock .GlobalMenu li:not(.JyukuOnly) a{
                          font-size: 137.5%;
                          border-left: none;
                          border-right: none;
                          border-bottom: none;
                          padding: 1em 1vw;
                          padding-left: 15vw;
                          height: 3em;
                        }

                            html.rsbp-under-bp2 .MainMenuBlock .GlobalMenu li a .Icon{
                              left: 4vw;
                            }


        /*  ハンバーガーメニュー  */
        .MainMenuBlock .MenuTrigger{
          /*position: fixed;*/
          position: absolute;
          top:   15px;
          right: 3vw;
          z-index: 500;
        }


                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より広いディスプレイ用 */
                    html.rsbp-over-bp2 .MainMenuBlock .MenuTrigger{
                      display: none;
                    }
                    html.rsbp-over-bp2 header .MainMenu{
                      height: auto!important;
                    }
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 .MainMenu{
                      display: none;
                      z-index: 200;
                      position: absolute;
                      height: 100vh;
                      width: 100%;
                      background: #fff;
                      top:  0px;
                      left: 0px;
                      padding: 0 0;
                    }
                    html.rsbp-under-bp2 header.PositionFixed .MainMenu{
                      position: fixed;
                      height: 100%;
                    }


        /*  お問い合わせボタン  */
        
        .MainMenuBlock .ContactButton{
          font-size: 75%;
          padding: 0 1.25em;
          line-height: 2em;
          background: #d9edf3;
          border-radius: 1.5em;
        }
        .MainMenuBlock .ContactButton .Icon{
        }


                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より広いディスプレイ用 */
                    html.rsbp-over-bp2 .MainMenuBlock .ContactButton{
                      position: absolute;
                      top:   30px;
                      right: 0px;
                    }
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 .MainMenuBlock .ContactButton{
                      font-size: 87.5%;
                      margin: 1.5em auto;
                      line-height: 2.5em;
                      font-weight: bolder;
                      display: block;
                      width: 80%;
                    }





/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*    Contents                                      */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

.ContentsDivision{
}



/* ContentsArea
--------------------------------------------------- */
.ContentsArea{
  position: relative;
  z-index: 5;
  padding: 0 0 2em;
}
    .ContentsArea .Page{
      align-items:  flex-start;
      flex-wrap: wrap;
    }


                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より広いディスプレイ用 */
                    html.rsbp-over-bp2 .ContentsArea .Page{
                      justify-content: space-between;
                      min-height: 500px;
                    }
                    html.rsbp-over-bp2 .ContentsArea .Page .MainBar{
                      width: 700px;
                    }
                    html.rsbp-over-bp2 .ContentsArea .Page .SideBar{
                      width: 180px;
                    }

                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 .ContentsArea{
                      padding-top: 1em;
                    }
                    html.rsbp-under-bp2 .ContentsArea .Page{
                      
                    }
                    html.rsbp-under-bp2 .ContentsArea .Page .MainBar,
                    html.rsbp-under-bp2 .ContentsArea .Page .SideBar{
                      width: 100%;
                    }
                    html.rsbp-under-bp2 .ContentsArea .Page .MainBar{
                      margin-bottom: 2em;
                    }
                    html.rsbp-under-bp2 .ContentsArea .Page .SideBar{
                      width: 100%;
                      margin: 0 auto;
                    }




/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*    Footer                                        */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

footer {
  padding: 2em 0;
}

    /* - - SiteFooterBlock - - */
    .SiteFooterBlock{
    
    }
        .SiteFooterBlock .BlockContents,
        .SiteFooterBlock .BlockContents *{
          line-height: 1;
        }
        .SiteFooterBlock .BlockContents{
          justify-content: flex-start;
          align-items: center;
        }
            .SiteFooterBlock .menu{
              list-style: none;
              color: #666;
              letter-spacing: -10px;
              font-size: 81.25%;
            }
                .SiteFooterBlock .menu li{
                  display: inline-block;
                  padding: 0 1.5em;
                  border-left: 1px solid #ccc;
                  letter-spacing: 0;
                }
                .SiteFooterBlock .menu li:last-child{
                  border-right: 1px solid #ccc;
                }


            .SiteFooterBlock .PrivacyMark img{
              width: 45px;
            }
            .SiteFooterBlock .Copyright {
              font-family: 'Arial';
              font-size: 68.75%;
              color: #666;
            }



                /* + + + + + レスポンシブ + + + + +  */
                
                    /* bp2より広いディスプレイ用 */
                    html.rsbp-over-bp2 .SiteFooterBlock .PrivacyMark {
                      margin-right: 40px;
                    }
                    html.rsbp-over-bp2 .SiteFooterBlock .menu{
                      margin-right: 2em;
                    }
                
                    /* bp2より狭いディスプレイ用 */
                    html.rsbp-under-bp2 .SiteFooterBlock .PrivacyMark {
                      margin-bottom: 2em;
                    }
                    html.rsbp-under-bp2 .SiteFooterBlock .menu{
                      margin-bottom: 1.5em;
                      font-size:   93.75%;
                      font-size:   87.5%;
                      font-weight: 600;
                      text-align: center;
                      line-height: 2.0;
                    }
                    html.rsbp-under-bp2 .SiteFooterBlock .Copyright {
                      font-size:  68.75%;
                      margin: 2em 0 1em;
                    }