/********************************
	Common
********************************/

body {
  font-family: メイリオ, Meiryo, YuGothic, 'Yu Gothic', 游ゴシック体, '游ゴシック', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'MS ゴシック', 'MS Gothic', sans-serif;
  background-color: #f4f4f4;
  font-size: 14px;
}

#wrapper {
  padding: 0 !important;
  padding-top: 0 !important;
  margin: 0;
  background: #fff !important;
}

#footer {
  background-color: #e6e6e6;
}


/* PC
---------------------*/
@media screen and (min-width:981px) {
  #contents {
    height: 100%;
    margin-right: 220px;
    background: #fff;
  }
  #contents:after {
    content: ".";
    clear: both;
    height: 0;
    display: block;
    visibility: hidden;
  }
  .contents_inner {
    max-width: 900px;
    margin: auto;
    padding-bottom: 40px;
  }
  /********** Navigation **********/
  #Nav_container {
    width: 220px;
    height: 100vh;
    position: fixed;
    right: 0;
    background-color: #4157a5;
    z-index: 1000;
    overflow-y: scroll;
    -ms-overflow-style:none;
    overflow: -moz-scrollbars-none;
  }
  #Nav_container::-webkit-scrollbar{
    display: none;
  }
  .gNav {
    border-bottom: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
  }
  .gNav li {
    display: table;
    width: 100%;
    height: 59px;
    padding-left: 5px;
    border-top: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
    background-color: #546ebc;
  }
  .gNav li:hover {
    background-color: #192869;
  }
  .gNav li.cur {
    background-color: #192869;
  }
  .gNav li a {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    color: #fff;
    position: relative;
  }
  .gNav li a:hover {
    text-decoration: none;
  }
  .gNav li a span{
    line-height: 1.4;
    display: block;
  }
  .gNav li a span:before {
    content: url("../img/ico_arrow_wh_left.png");
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 5px;
    height: 18px;
    margin: auto;
  }
  /********** langNav **********/
  .lang_ttl {
    padding: 15px 0 10px;
    text-align: center;
    color: #fff;
  }
  .lang_ttl span {
    position: relative;
    display: inline-block;
    margin-left: 25px;
  }
  .lang_ttl span:before {
    content: url(../img/ico_global.png);
    position: absolute;
    left: -25px;
  }
  .langNav {
    display: table;
    margin: auto;
    padding-bottom: 40px;
  }
  .langNav li {
    display: table-cell;
  }
  .langNav li a {
    color: #fff;
    display: inline-block;
    width: 20px;
    height: 22px;
    padding: 3px;
    background-color: #546ebc;
    border-radius: 3px;
    text-align: center;
    border: 1px solid #192869;
  }
  .langNav li a:hover {
    text-decoration: none;
    background-color: #192869;
    border: 1px solid #546ebc;
  }
  .langNav li.cur a {
    background-color: #192869;
    border: 1px solid #546ebc;
  }
  .langNav li:after {
    content: "|";
    display: inline-block;
    margin: 0 5px;
    color: #fff;
  }
  .langNav li:last-child:after {
    content: none;
  }
  /********** footer **********/
  #footer {
    padding-right: 220px;
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .footer_inner {
    padding: 20px 40px 0;
  }
  #logo_footer {
    display: block;
  }
  .footer_txt {
    margin: 20px 0 15px;
  }
  .footer_uNav {
    margin: 0 20px;
  }
  .contact span {
    vertical-align: middle;
  }
  .ico_tp01 {
    display: inline-block;
    width: 140px;
    text-align: center;
    background-color: #4157a5;
    color: #fff;
    font-size: 13px;
  }
  .num {
    display: inline-block;
    margin: 0 5px;
    color: #4157a5;
    font-family: arial;
    font-size: 18px;
    font-weight: bold;
  }
  .office_hours {
    white-space: nowrap;
  }
  .list_satelites {
    width: 50%;
    box-sizing: border-box;
  }
  .list_satelites li {
    margin-top: 20px;
  }
  .list_satelites li:first-child {
    margin-top: 0;
  }
  #copy_unav {
    margin-top: 16px;
  }
  /********** NODULES **********/
  #crumbNav {
    padding: 30px 0 30px;
  }
  .crumbs li {
    float: left;
    color: #999999;
  }
  .crumbs li:after {
    content: ">";
    display: inline-block;
    margin: 0 15px;
    color: #999999;
  }
  .crumbs li:last-child:after {
    content: none;
  }
  .content_txt {
    padding-bottom: 30px;
  }
  .content_inner_harf{
    width: 50%;
    box-sizing: border-box;
  }
  .content_txt .content_inner_harf:first-child{
    padding-right: 20px;
  }
  .content_txt .content_inner_harf:last-child{
    padding-left: 20px;
  }
  
  
  .content_txt p {
    margin: 20px 0;
  }
  .ttl_tp01 {
    margin-bottom: 30px;
    padding: 60px 0;
    font-size: 24px;
    font-weight: bold;
    border: 1px solid #dedcdc;
    border-width: 0 0 1px;
  }
  .ttl_tp01_nv {
    margin-bottom: 30px;
    padding: 60px 0;
    font-size: 24px;
    font-weight: bold;
    border: 1px solid #dedcdc;
    border-width: 1px 0;
  }
  .ttl_tp02 {
    position: relative;
    margin: 30px 0;
    font-size: 18px;
    font-weight: bold;
  }
  .ttl_tp02:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -10px;
    width: 50px;
    border-bottom: 3px solid #4157a5;
  }
  .ttl_tp03 {
    margin: 20px 0;
    font-size: 16px;
    font-weight: bold;
    color: #4157a5;
  }
  .ttl_tp04 {
    margin: 15px 0;
    font-size: 14px;
    font-weight: bold;
  }
  hr {
    margin: 30px 0;
    border-bottom: 1px solid #dedcdc;
    border-width: 0 0 1px 0;
  }
  .portrait {
    margin: 0 0 1em 1em;
  }
  .cpt {
    display: block;
    margin: auto;
    text-align: center;
  }
  .list_tp01 {}
}


/* PC small
---------------------*/

@media screen and (min-width:981px) and (max-width:1240px) {
  .footer_inner {
    padding: 20px 20px 0;
  }
}


/* Tablet or less
---------------------*/

@media only screen and (max-width: 980px) {
  body {
    font-size: 12px;
  }
  #contents {
    padding: 44px 20px 0;
  }
  /********** Navigation with Global **********/
  nav#sp_gNav {
    width: 100%;
    background: #4157a5;
    padding: 0;
    position: fixed;
    z-index: 1000;
  }
  nav#sp_gNav .nav_bar {
    width: 100%;
    height: 38px;
  }

  #nav1_toggle {
    position: absolute;
    top: 0;
    right: 0;
    width: 45px;
    height: 45px;
    padding: 0;
    border-left: 1px solid #a9b6dd;
    text-indent: 0;
  }
  #nav1_toggle:after {
    position: absolute;
    top: -25px;
    right: -22px;
    content: url(../img/btn_gNav_sp_menu_opn.png);
    -moz-transform: scale(0.5, 0.5);
    -webkit-transform: scale(0.5, 0.5);
    -o-transform: scale(0.5, 0.5);
    -ms-transform: scale(0.5, 0.5);
  }
  #nav1_toggle.opened:after {
    content: url(../img/btn_gNav_sp_menu_cls.png);
    -moz-transform: scale(0.5, 0.5);
    -webkit-transform: scale(0.5, 0.5);
    -o-transform: scale(0.5, 0.5);
    -ms-transform: scale(0.5, 0.5);
  }

  #nav2_toggle {
    position: absolute;
    top: 0;
    right: 46px;
    width: 44px;
    height: 45px;
    border-left: 1px solid #a9b6dd;
  }
  #nav2_toggle:after {
    position: absolute;
    top: -24px;
    right: -22px;
    content: url(../img/btn_gNav_sp_global_opn.png);
    -moz-transform: scale(0.5, 0.5);
    -webkit-transform: scale(0.5, 0.5);
    -o-transform: scale(0.5, 0.5);
    -ms-transform: scale(0.5, 0.5);
  }
  #nav2_toggle.opened:after {
    content: url(../img/btn_gNav_sp_global_cls.png);
    -moz-transform: scale(0.5, 0.5);
    -webkit-transform: scale(0.5, 0.5);
    -o-transform: scale(0.5, 0.5);
    -ms-transform: scale(0.5, 0.5);
  }

  #logo_sp_header {
    display: block;
    margin: 7px 10px 8px;
  }

  nav#sp_gNav ul {
    display: none;
  }
  nav#sp_gNav ul li a {
    box-sizing: border-box;
  }
  nav#sp_gNav ul li a:hover {
    background: rgba(255, 255, 255, 0.1);
  }
  nav#sp_gNav ul li a .gNav_arrow {
    position: absolute;
    right: 20px;
  }
  nav#sp_gNav ul.lv1 {
    position: fixed;
    width: 100%;
    background: #192869;
  }
  nav#sp_gNav ul.lv1 li a {
    display: block;
    float: left;
    width: 100%;
    padding: 15px 20px !important;
    margin: 0;
    text-align: left;
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    text-decoration: none;
  }
  nav#sp_gNav ul.lv1 li a .gNav_arrow {
    top: 14px;
  }
  nav#sp_gNav ul.lv1 li a .expand {
    width: 30px;
    height: 30px;
    text-align: center;
    position: absolute;
    top:14px;
    right: 14px;
    background-color: #a9b6dd;
    font-weight: bold;
  }
  nav#sp_gNav ul.lv1 li a .expand:before,nav#sp_gNav ul.lv1 li a .expand:after {
    display: block;
    content: '';
    background-color: #192869;
    position: absolute;
    width: 20px;
    height: 5px;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto;
  }
  nav#sp_gNav ul.lv1 li a .expand:before {
    width: 5px;
    height: 20px;
  }
  nav#sp_gNav ul.lv1 li a.opened .expand:after {
    content: '';
    background-color: #192869;
    position: absolute;
    width: 20px;
    height: 5px;
  }
  nav#sp_gNav ul.lv1 li a.opened .expand:before {
  display: none;
  }  

  nav#sp_gNav ul.lv2 {
    width: 98% !important;
    float: right;
    background-color: #4157a5 !important;
    border-left: 1px solid #a9b6dd;
    border-top: 1px solid #a9b6dd;
  }
  nav#sp_gNav ul.lv2 li a {
    position: relative;
    padding: 1em 10%;
    font-size: 12px;
    font-weight: normal;
    border-top: 1px solid rgba(255, 255, 255, 0.25);
    text-decoration: none;
  }
  nav#sp_gNav ul.lv2 li a .gNav_arrow {
    top: 11px;
  }
  nav#sp_gNav ul.lv2 li a .expand {
    width: 30px;
    height: 30px;
    text-align: center;
    position: absolute;
    top: 11px;
    right: 14px;
    background-color: #192869;
    font-weight: bold;
  }
  nav#sp_gNav ul.lv2 li a .expand:before,nav#sp_gNav ul.lv2 li a .expand:after {
    display: block;
    content: '';
    background-color: #a9b6dd;
    position: absolute;
    width: 20px;
    height: 5px;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto;
  }
  nav#sp_gNav ul.lv2 li a .expand:before {
    width: 5px;
    height: 20px;
  }
  nav#sp_gNav ul.lv2 li a.opened .expand:after {
    content: '';
    background-color: #a9b6dd;
    position: absolute;
    width: 20px;
    height: 5px;
  }
  nav#sp_gNav ul.lv2 li a.opened .expand:before {
  display: none;
  }
  nav#sp_gNav ul.lv3 {
    width: 98% !important;
    float: right;
    border-left: 1px solid rgba(255, 255, 255, 0.25);
    background-color: #5971c5;
  }
  nav#sp_gNav ul.lv3 li a {
    position: relative;
    padding: 10px 24px !important;
    text-decoration: none;
  }
  nav#sp_gNav  ul.lv3 li a .gNav_arrow {
    top: 6px;
    right: 20px;
  }
  
  #footer {
    padding: 10px 0;
  }
  .footer_inner {
    max-width: 480px;
    margin: auto;
    padding: 10px 20px;
    border: 1px solid #ccc;
    border-width: 1px 0;
  }
  .footer_inner:first-child,
  .footer_inner:last-child {
    border: none;
  }
  #logo_footer {
    display: block;
    margin-bottom: 10px;
  }
  .footer_uNav {
    margin: 0 20px 0 2px;
  }
  #Intro {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -200px;
    margin-left: -75px;
    width: 150px;
    z-index: 1000;
  }
  #Intro img {
    width: 100%;
    height: auto;
  }
  #wrapper {
    width: 100%;
    min-width: 100%;
    height: inherit !important;
    margin: 0 !important;
    position: relative;
    background: #fff;
  }
  .list_satelites {
    width: 200px;
    margin: auto;
  }
  .list_satelites li {
    margin-bottom: 10px;
  }
  .contact {
    text-align: center;
  }
  .ico_tp01 {
    display: block;
    margin: 10px auto 0;
    width: 360px;
    max-width: 100%;
    text-align: center;
    background-color: #4157a5;
    color: #fff;
    font-size: 13px;
  }
  .num {
    display: block;
    margin: 5px auto -5px;
    color: #4157a5;
    font-family: arial;
    font-size: 16px;
    font-weight: bold;
  }
  .office_hours {
    display: block;
  }
  .list_satelites {
    width: 50%;
    margin-top: 15px;
    box-sizing: border-box;
  }
  .list_satelites li {
    margin-top: 20px;
    white-space: nowrap;
  }
  .list_satelites li:first-child {
    margin-top: 0;
  }
  .list_satelites li a{
    white-space: normal;
  }
  #copy_unav {
    margin-top: 10px;
  }
  .copy {
    display: block;
    margin-top: 10px;
  }
  /********** NODULES **********/
  #crumbNav {
    display: none;
  }
  .content_txt {
    padding-bottom: 30px;
  }
  .content_txt p {
    padding: 15px 0;
  }
  .content_txt .content_inner_harf:first-child{
    margin-bottom: 20px;
  }
  .ttl_tp01_img{
    margin: 0 -20px;
  }
  .ttl_tp01,
  .ttl_tp01_nv {
    margin: 20px 0;
    padding: 0;
    font-size: 18px;
    font-weight: bold;
    border: 0;
  }
  .ttl_tp02 {
    position: relative;
    margin: 20px -20px;
    ;
    padding: 10px 20px;
    font-size: 16px;
    font-weight: bold;
    color: #fff;
    background-color: #4157a5;
    border-top: 1px solid #ccc
  }
  .ttl_tp03 {
    margin: 20px 0;
    font-size: 14px;
    font-weight: bold;
    color: #4157a5;
  }
  .ttl_tp04 {
    margin: 15px 0;
    font-size: 12px;
    font-weight: bold;
  }
  .portrait {
    margin: 1em auto;
    text-align: center;
  }
  .cpt {
    display: block;
    margin: auto;
    text-align: center;
  }
  hr {
    margin: 15px 0;
    border-bottom: 1px solid #dedcdc;
    border-width: 0 0 1px 0;
  }
}


/* SP
---------------------*/

@media only screen and (max-width: 640px) {
  /* mainimages
  ---------------------*/
  #mainimages {
    width: 100% !important;
    height: 240px !important;
    max-height: 560px !important;
    position: relative;
    z-index: 100 !important;
    overflow: hidden;
  }
}


/********************************
	Utility
********************************/

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

.flt_l {
  float: left;
}

.flt_r {
  float: right;
}

.tal_c {
  text-align: center;
}

.tal_l {
  text-align: left;
}

.tal_r {
  text-align: right;
}

.val_t {
  vertical-align: top;
}

.val_m {
  vertical-align: middle;
}

.val_b {
  vertical-align: bottom;
}

.mgt_05{ margin-top: 5px}
.mgt_10{ margin-top: 10px}
.mgt_15{ margin-top: 15px}
.mgt_20{ margin-top: 20px}
.mgt_25{ margin-top: 25px}
.mgt_30{ margin-top: 30px}
.mgt_35{ margin-top: 35px}
.mgt_40{ margin-top: 40px}
.mgt_45{ margin-top: 45px}
.mgt_50{ margin-top: 50px}
.mgt_55{ margin-top: 55px}
.mgt_60{ margin-top: 60px}
 
.mgr_05{ margin-right: 5px}
.mgr_10{ margin-right: 10px}
.mgr_15{ margin-right: 15px}
.mgr_20{ margin-right: 20px}
.mgr_25{ margin-right: 25px}
.mgr_30{ margin-right: 30px}
.mgr_35{ margin-right: 35px}
.mgr_40{ margin-right: 40px}
.mgr_45{ margin-right: 45px}
.mgr_50{ margin-right: 50px}
.mgr_55{ margin-right: 55px}
.mgr_60{ margin-right: 60px}
 
.mgb_05{ margin-bottom: 5px}
.mgb_10{ margin-bottom: 10px}
.mgb_15{ margin-bottom: 15px}
.mgb_20{ margin-bottom: 20px}
.mgb_25{ margin-bottom: 25px}
.mgb_30{ margin-bottom: 30px}
.mgb_35{ margin-bottom: 35px}
.mgb_40{ margin-bottom: 40px}
.mgb_45{ margin-bottom: 45px}
.mgb_50{ margin-bottom: 50px}
.mgb_55{ margin-bottom: 55px}
.mgb_60{ margin-bottom: 60px}
 
.mgl_05{ margin-left: 5px}
.mgl_10{ margin-left: 10px}
.mgl_15{ margin-left: 15px}
.mgl_20{ margin-left: 20px}
.mgl_25{ margin-left: 25px}
.mgl_30{ margin-left: 30px}
.mgl_35{ margin-left: 35px}
.mgl_40{ margin-left: 40px}
.mgl_45{ margin-left: 45px}
.mgl_50{ margin-left: 50px}
.mgl_55{ margin-left: 55px}
.mgl_60{ margin-left: 60px}

.pdt_05{ padding-top: 5px}
.pdt_10{ padding-top: 10px}
.pdt_15{ padding-top: 15px}
.pdt_20{ padding-top: 20px}
.pdt_25{ padding-top: 25px}
.pdt_30{ padding-top: 30px}
.pdt_35{ padding-top: 35px}
.pdt_40{ padding-top: 40px}
.pdt_45{ padding-top: 45px}
.pdt_50{ padding-top: 50px}
.pdt_55{ padding-top: 55px}
.pdt_60{ padding-top: 60px}
 
.pdr_05{ padding-right: 5px}
.pdr_10{ padding-right: 10px}
.pdr_15{ padding-right: 15px}
.pdr_20{ padding-right: 20px}
.pdr_25{ padding-right: 25px}
.pdr_30{ padding-right: 30px}
.pdr_35{ padding-right: 35px}
.pdr_40{ padding-right: 40px}
.pdr_45{ padding-right: 45px}
.pdr_50{ padding-right: 50px}
.pdr_55{ padding-right: 55px}
.pdr_60{ padding-right: 60px}
 
.pdb_05{ padding-bottom: 5px}
.pdb_10{ padding-bottom: 10px}
.pdb_15{ padding-bottom: 15px}
.pdb_20{ padding-bottom: 20px}
.pdb_25{ padding-bottom: 25px}
.pdb_30{ padding-bottom: 30px}
.pdb_35{ padding-bottom: 35px}
.pdb_40{ padding-bottom: 40px}
.pdb_45{ padding-bottom: 45px}
.pdb_50{ padding-bottom: 50px}
.pdb_55{ padding-bottom: 55px}
.pdb_60{ padding-bottom: 60px}
 
.pdl_05{ padding-left: 5px}
.pdl_10{ padding-left: 10px}
.pdl_15{ padding-left: 15px}
.pdl_20{ padding-left: 20px}
.pdl_25{ padding-left: 25px}
.pdl_30{ padding-left: 30px}
.pdl_35{ padding-left: 35px}
.pdl_40{ padding-left: 40px}
.pdl_45{ padding-left: 45px}
.pdl_50{ padding-left: 50px}
.pdl_55{ padding-left: 55px}
.pdl_60{ padding-left: 60px}


.w_full {
  width: 100%;
}

.w_harf {
  width: 50%;
}

.bbox {
  box-sizing: border-box;
}

.full {
  width: 100%
}

.mfull {
  max-width: 100%
}

a {
  color: #000;
}

a:hover {
  color: #4157a5;
  text-decoration: underline;
}

.link_ext {
  position: relative;
  margin-left: 15px;
}

.link_ext:before {
  content: url(../img/ico_ext.png);
  position: absolute;
  left: -15px;
}

.link_int {
  position: relative;
  margin-left: 10px;
}

.link_int:before {
  content: url(../img/ico_arrow_bl_right.png);
  position: absolute;
  left: -10px;
}

@media screen and (max-width: 1510px) {
  .nf_hdn {
    display: none !important;
  }
}

@media screen and (min-width: 981px) {
  .pc_hdn {
    display: none !important;
  }
}

@media screen and (max-width: 980px) {
  .sp_hdn {
    display: none !important;
  }
  .w_full_sp {
    width: 100% !important;
  }
  .flt_l {
    float: none;
  }
  .flt_r {
    float: none;
  }
  .flt_l_sp {
    float: left !important;
  }
  .flt_r_sp {
    float: right !important;
  }
}

.list_tp01{
  margin-left: 20px;
  list-style: none;
}
.list_tp01 li{
  position: relative;
}
.list_tp01 li:before{
  content: "";
  display: block;
  background-color: #4157a5;
  border-radius: 10px;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 7px;
  left: -20px;
}

.list_tp02{
  margin-left: 25px;
  counter-reset: list_num;
  list-style-type: none;
}
.list_tp02 li{
  position: relative;
}
.list_tp02 li:before{
  content: "";
  display: block;
  background-color: #4157a5;
  border-radius: 20px;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 2px;
  left: -25px;
}
.list_tp02 li:after{
  position: absolute;
  top: 3px;
  left: -18px;
  font-size: 12px;
  color: #fff;
  counter-increment: list_num;
  content: counter(list_num) ;   /* "." で区切られた section カウンタのインスタンスの値を付加 */
}