@charset "UTF-8";
/* common.css
----------------------------------------------------------*/


/* base
----------------------------------*/
html {
  font-size: 62.5%; /* root: 10px */
  height: 100%;
}
body {
  font-family: 'Noto Sans Japanese', "游ゴシック", "YuGothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.8;
  font-weight: 300;
  color: #323232;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -o-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings : "palt";
}
/* Safariのみ仮名文字のみをカーニングする指定 */
@media screen and (-webkit-min-device-pixel-ratio:0) {
  ::i-block-chrome, body {
    font-feature-settings: "pkna";
  }
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  -ms-interpolation-mode: bicubic;
}
/* IEだけインラインSVGの表示サイズがおかしくなるバグへの対処方法 */
img[src$=".svg"] {
  width: 100%; /* IE lt 10 */
}
a {
  text-decoration: none;
  color: inherit;
  outline: none; /* IE lt 8 */
}
a:hover {
  text-decoration: none;
}
a.hv-udl:hover {
  text-decoration: underline;
  padding-bottom: 1px; /* font-size:11px以下のバグ対策; */
}
a img {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
a:hover img {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  filter: alpha(opacity=70); /* IE lt 8 */
  opacity: 0.7;
}
a.hv-op-01:hover {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  filter: alpha(opacity=70); /* IE lt 8 */
  opacity: 0.7;
}
a.hv-op-no:hover {
  filter: alpha(opacity=100); /* IE lt 8 */
  opacity: 1;
}

/* 複数行の文字列省略 汎用（Chrome や Safari 限定） */
.cmn-line_clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; /* 2行の場合 */
  overflow: hidden;
}

/*** keyframes fadein ***/
@-webkit-keyframes fadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@-moz-keyframes fadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@-ms-keyframes fadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@-o-keyframes fadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes fadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/*** keyframes slideIn ***/
@-webkit-keyframes slideIn {
  0% {
    -moz-transform: translate(0, -67px);
    -ms-transform: translate(0, -67px);
    -webkit-transform: translate(0, -67px);
    transform: translate(0, -67px);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes slideIn {
  0% {
    -moz-transform: translate(0, -67px);
    -ms-transform: translate(0, -67px);
    -webkit-transform: translate(0, -67px);
    transform: translate(0, -67px);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-ms-keyframes slideIn {
  0% {
    -moz-transform: translate(0, -67px);
    -ms-transform: translate(0, -67px);
    -webkit-transform: translate(0, -67px);
    transform: translate(0, -67px);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes slideIn {
  0% {
    -moz-transform: translate(0, -67px);
    -ms-transform: translate(0, -67px);
    -webkit-transform: translate(0, -67px);
    transform: translate(0, -67px);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes slideIn {
  0% {
    -moz-transform: translate(0, -67px);
    -ms-transform: translate(0, -67px);
    -webkit-transform: translate(0, -67px);
    transform: translate(0, -67px);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}

/*** keyframes spin ***/
@-webkit-keyframes spin {
  0% {-webkit-transform: rotate(0deg);}
  100% {-webkit-transform: rotate(360deg);}
}
@-moz-keyframes spin {
  0% {-moz-transform: rotate(0deg);}
  100% {-moz-transform: rotate(360deg);}
}
@-ms-keyframes spin {
  0% {-ms-transform: rotate(0deg);}
  100% {-ms-transform: rotate(360deg);}
}
@-o-keyframes spin {
  0% {-o-transform: rotate(0deg);}
  100% {-o-transform: rotate(360deg);}
}
@keyframes spin {
  0% {transform: rotate(0deg);}
  100% {transform: rotate(360deg);}
}

/*** font ***/
.font-wgt-01 {
  font-weight: 600;
}
.font-nrw-01 {
  letter-spacing: -1px;
}
.font-small-01 {
  font-size: 80%;
}

/*** リンク色 ***/
.link-color {
  color: #42B4B6;
}
.link-color .fa {
  margin-right: 0.25em;
}
.link-udl {
  text-decoration: underline;
}

/*** 背景色 ***/
.bg-clr-01 {
  background: #ECF1F8;
}

/*** 余白 ***/
.mb-01 {
  margin-bottom: 40px;
}
.mb-02 {
  margin-bottom: 60px;
}
.pl-01 {
  padding-left: 1em;
}
.pl-02 {
  padding-left: 2em;
}

/*** インデント ***/
.idt-01 {
  text-indent: 1em;
}


/* switching PC/SP
----------------------------------*/
@media only screen and (min-width: 641px) {
  .sp {
    display: none !important;
  }
}
@media only screen and (max-width: 640px) {
  .pc {
    display: none !important;
  }
}


/* basic
----------------------------------*/
.wrapper {
  width: 100%;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}
.inner-01 {
  max-width: 980px;
  margin: 0 auto;
  padding-right: 10px;
  padding-left: 10px;
}
.inner-02 {
  max-width: 640px;
  margin: 0 auto;
  padding-right: 10px;
  padding-left: 10px;
}
.inner-03 {
  max-width: 748px;
  margin: 0 auto;
  padding-right: 10px;
  padding-left: 10px;
}
.clearfix:after {
  content: " ";
  display: block;
  clear: both;
}


/* header
----------------------------------*/
/****** .header-group --- start --- ******/
.header-group {
  position: fixed;
  background: #fff;
  width: 100%;
  z-index: 99999;
  top: 0;
  -webkit-transition: all 1s;
  -moz-transition: all 1s;
  -ms-transition: all 1s;
  -o-transition: all 1s;
  transition: all 1s;
  box-sizing: border-box;
  padding: 15px 0;
}
.header-group.hg-fixed {
  position: fixed;
  background: #fff;
  background: rgba(255,255,255,0.9);
  -webkit-animation: slideIn 0.5s linear 0s 1;
  -moz-animation: slideIn 0.5s linear 0s 1;
  -ms-animation: slideIn 0.5s linear 0s 1;
  -o-animation: slideIn 0.5s linear 0s 1;
  animation: slideIn 0.5s linear 0s 1;
}
.header-inner {
  position: relative;
  z-index: 1;
}
.header-top {
  padding-top: 10px;
  padding-bottom: 10px;
}
.header-logo {
  float: left;
  margin: 0 20px 0 0;
  width: 210px;
  line-height: 1;
}
.header-logo a {
  display: inline-block;
  vertical-align: top;
  width: 100%;
}

.header-nav {
  float: right;
  margin: 8px 0 0 0;
}
/* グローバルナビ */
.header-nav-global {
  height: 100%;
}
.global-menu {
}
.global-menu li {
  float: left;
  color: #000;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 400;
  margin-left: 30px;
}
.global-menu li a {
  display: block;
  padding: 2px 0;
}
.global-menu li a:hover {
  text-decoration: none;
}
.global-menu li a .gm-bar {
  position: relative;
  z-index: 1;
  padding: 0 0.3em;
}
.global-menu li a .gm-bar:before,
.global-menu .gm-current a .gm-bar:before {
  content: " ";
  display: block;
  width: 100%;
  border-bottom: 3px solid #4271B6;
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  filter: alpha(opacity=0);
  opacity: 0;
  margin: 0 auto;
  bottom: 0;
}
.global-menu li > a:hover > .gm-bar:before,
.global-menu li.gm-current > a > .gm-bar:before {
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -ms-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
  filter: alpha(opacity=100);
  opacity: 1;
  bottom: -8px;
}


/* footer
----------------------------------*/

.footer-group {
  color: #fff;
  position: relative;
  z-index: 3;
}
.footer-nav {
  background: #4271B6;
  box-sizing: border-box;
  padding: 3em 0;
}
.fn-inner {
  padding-top: 2em;
  border-top: 1px solid #ECF1F8;
}
.fn-cont {
  box-sizing: border-box;
  width: 46%;
}
.fn-cont.fn-cont-01 {
  float: left;
}
.fn-cont.fn-cont-02 {
  float: right;
}
.fnc1-logo {
  width: 300px;
  margin: 0 3.5% 1.5em 0;
}
.fnc1-txt {
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 300;
  text-align: justify;
  margin: 1em 0;
}
.fnc1-contact li {
  display: inline-block;
  position: relative;
  width: 60px;
  height: 60px;
  margin: 10px 10px 10px 0;
  text-align: center;
}
.fnc1-contact li a {
  display: block;
  position: relative;
}
.fnc1-contact li a:before {
  content: " ";
  background: #42B4B6;
  border-radius: 100%;
  height: 60px;
  width: 60px;
  position: absolute;
  left: 0;
  z-index: 1;
}
.fnc1-contact li .fa {
  color: #fff;
  font-size: 30px;
  font-size: 3.0rem;
  position: relative;
  top: 13px;
  z-index: 2;
}
.fn-cont-02 {
  font-size: 0; /* 隙間を無くすため*/
}
.fnc2-menu {
  box-sizing: border-box;
  display: inline-block;
  vertical-align: top;
  font-size: initial; /* リセット必須 */
  margin-left: 1em;
}
.fnc2-menu li {
  box-sizing: border-box;
  margin: 1em 1em;
  font-size: 16px;
  font-size: 1.6rem;
  font-weight: 400;
}
.fnc2-menu li .fa {
  margin-right: 0.5em;
}
.footer-pagetop {
  background: #42B4B6;
  border-radius: 100%;
  height: 60px;
  width: 60px;
  position: fixed;
  right: 5%;
  bottom: 5%;
  z-index: 9999;
}
.footer-pagetop a {
  width: 100%;
  height: 100%;
  display: block;
  text-align: center;
  vertical-align: top;
  font-size: 40px;
  font-size: 4.0rem;
  line-height: 1.25;
  filter: alpha(opacity=70); /* IE lt 8 */
  opacity: 0.7;
}

.footer-credit {
  background: #2259AA;
  text-align: center;
  padding: 10px;
}
.footer-copyright {
  font-size: 11px;
  font-size: 1.1rem;
  font-weight: 400;
}

/* main
----------------------------------*/
.mv-box {
  width: 100%;
  position: fixed;
  top: 0;
  z-index: 1;
}
.mv-img {
  display: table;
  width: 100%;
  height: 350px;
  position: relative;
  z-index: 1;
}
.mv-img:before {
  content: " ";
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: rgba(0,0,0,0.2);
}
.mv-ttl {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  font-size: 40px;
  font-size: 4.0rem;
  font-weight: 300;
  position: relative;
  z-index: 3;
  color: #fff;
  text-shadow: 1px 1px 13px #000;
}


.main-group {
  position: relative;
  z-index: 2;
  font-size: 16px;
  font-size: 1.6rem;
  background: #fff;
  margin-top: 300px;
}
.main-cont {
  border-top: solid 30px #4271B6;
  padding: 0 0 100px 0;
}
.mc-ttl {
  color: #fff;
  font-size: 20px;
  font-size: 2.0rem;
  font-weight: 600;
  position: relative;
  top: -33px;
  width: 130px;
  text-align: center;
  margin-bottom: 30px;
}
.mc-ttl:before {
  content: " ";
  background: #4271B6;
  border-radius: 100%;
  height: 130px;
  width: 130px;
  position: absolute;
  left: 0;
  top: -45px;
  z-index: 1;
}
.mc-ttl .mc-ttl-txt {
  position: relative;
  z-index: 2;
}
.mc-ttls {
  color: #4271B6;
  font-size: 20px;
  font-size: 2.0rem;
  font-weight: 600;
}

.mcc-ttl {
  font-size: 20px;
  font-size: 2.0rem;
  font-weight: 600;
  text-align: center;
  margin: 1.5em 0;
}

.mcc-txt {
  text-align: justify;
}

.mcc-list-01 li {
  margin: 0.75em 0;
}


.mcc-dl {
  display: table;
  width: 100%;
  box-sizing: border-box;
  margin: 6px 0;
}
.mcc-dl dt {
  width: 22%;
  display: table-cell;
  vertical-align: top;
  background: #78B6E6;
  padding: 15px 20px;
  box-sizing: border-box;
  color: #fff;
  font-weight: 600;
  vertical-align: middle;
  position: relative;
}
.mcc-dl dt:before {
  content: " ";
  position: absolute;
  top: 35%;
  right: -12px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 10px 0 10px 12px;
  border-color: transparent transparent transparent #78B6E6;
  line-height: 0px;
  _border-color: #000000 #000000 #000000 #2899c5;
  _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000');
}
.mcc-dl dd {
  display: table-cell;
  background: #ECF1F8;
  padding: 15px 20px;
  box-sizing: border-box;
  color: #4271B6;
  font-weight: 400;
  vertical-align: middle;
}



.cmn-btn-01,
#mail_submit_button.cmn-btn-01 {
  display: block;
  color: #fff;
  width: 200px;
  font-family: inherit;
  font-size: 16px;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 10px 0;
  border-radius: 5px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  -o-border-radius: 5px;
  -ms-border-radius: 5px;
  border-color: #51BFBF;
  border-top-color: #5DBABA;
  border-bottom-color: #42B4B6;
  background-color: #349B9B;
  /* Safari,Google Chrome用 */
  background: -webkit-gradient(linear, left top, left bottom, from(#51BFBF), to(#349B9B));
  /* Firefox用 */
  background: -moz-linear-gradient(#51BFBF, #349B9B);
  /* IE10+, W3C */
  background: linear-gradient(#51BFBF, #349B9B);
  /*IE6 IE7 */
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startcolorstr=#51BFBF, endcolorstr=#349B9B);
  /* IE8 IE9 */
  -ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startcolorstr=#51BFBF, endcolorstr=#349B9B)";
  zoom: 1;
}
.cmn-btn-01:hover,
#mail_submit_button.cmn-btn-01:hover {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  filter: alpha(opacity=70); /* IE lt 8 */
  opacity: 0.7;
}
.cmn-btn-01 .fa {
  color: #fff;
}

/* TB-01
----------------------------------------------------------*/
@media only screen and (max-width: 1024px) {

}



/* TB-02
----------------------------------------------------------*/
@media only screen and (max-width: 980px) {


  /* basic
  ----------------------------------*/
  .inner-01,
  .inner-02,
  .inner-03 {
    box-sizing: border-box;
  }
  .inner-01 {
    padding-right: 3%;
    padding-left: 3%;
  }
  .inner-02 {
    padding-right: 3%;
    padding-left: 3%;
  }
  .inner-03 {
    padding-right: 3%;
    padding-left: 3%;
  }



}



/* SP
----------------------------------------------------------*/
@media only screen and (max-width: 640px) {


  /* basic
  ----------------------------------*/
  .inner-01 {
    padding-right: 4%;
    padding-left: 4%;
  }
  .inner-02 {
    padding-right: 4%;
    padding-left: 4%;
  }
  .inner-03 {
    padding-right: 4%;
    padding-left: 4%;
  }


  /*** #js-header-nav.header-nav-active ***/
  #js-header-nav.header-nav-active {
    display: block !important;
    -webkit-animation: fadein 0.5s linear 0s 1;
    -moz-animation: fadein 0.5s linear 0s 1;
    -ms-animation: fadein 0.5s linear 0s 1;
    -o-animation: fadein 0.5s linear 0s 1;
    animation: fadein 0.5s linear 0s 1;
  }
  #js-header-group.hg-fixed {
    -webkit-animation: slideIn 0.5s linear 0s 1;
    -moz-animation: slideIn 0.5s linear 0s 1;
    -ms-animation: slideIn 0.5s linear 0s 1;
    -o-animation: slideIn 0.5s linear 0s 1;
    animation: slideIn 0.5s linear 0s 1;
  }
  #js-header-group.hg-fixed.hg-mini {
    padding-top: 6.5px;
    padding-bottom: 6.5px;
  }
  #js-header-group.hg-fixed.hg-mini .header-logo {
    width: 110px;
  }
  #js-header-group.hg-fixed.hg-mini .header-logo a img {
    -moz-transform: initial;
    -ms-transform: initial;
    -webkit-transform: initial;
    transform: initial; /* Safari ズレ防止 */
  }
  #js-header-group.hg-fixed.hg-mini .header-drawer {
    margin-top: 0;
  }
  #js-header-group.hg-fixed.hg-mini .drawer-icon {
    width: 18px; /* 75% */
    height: 12px; /* 75% */
  }
  #js-header-group.hg-fixed.hg-mini .drawer-txt {
    -webkit-transform:scale(0.7);
    -moz-transform:scale(0.7);
    -ms-transform:scale(0.7);
    -o-transform:scale(0.7);
    transform:scale(0.7);
    margin: 0;
  }
  #js-header-group.hg-maxhi {
    position: fixed;
    width: 100%;
    height: 101%; /* +1%する事でJSの誤動作を制御（あえて一番下まで到達させない） */
    overflow-y: auto;
    background: rgba(0,0,0, 0.9);
    -webkit-animation: slideIn 0;
    -moz-animation: slideIn 0;
    -ms-animation: slideIn 0;
    -o-animation: slideIn 0;
    animation: slideIn 0;
  }
  #js-header-group.hg-opened {
    background: #fff;
    background: rgba(184,217,243,0.9);
  }
  /****** .header-group --- end --- ******/

  .header-nav {
    display: none;
    width: auto;
    position: relative;
    float: none;
    clear: both;
    margin: 0;
    padding: 10px 0 0 0;
  }
  .global-menu li {
    color: #4271B6;
    float: none;
    margin: 1em;
    text-align: center;
    font-size: 16px;
    font-size: 1.6rem;
    font-weight: 500;
  }

  .fn-inner {
    padding-top: 0;
    border-top: none;
  }
  .fn-cont.fn-cont-01,
  .fn-cont.fn-cont-02 {
    float: none;
  }
  .fnc1-logo {
    width: 200px;
  }
  .fn-cont {
    width: auto;
  }
  .fnc1-contact {
    text-align: center;
  }
  .fnc2-menu {
    display: block;
    margin-left: 0.5em;
  }
  .fnc2-menu li {
    font-size: 14px;
    font-size: 1.4rem;
    margin-left: 0;
  }
  .footer-pagetop {
    height: 45px;
    width: 45px;
  }
  .footer-pagetop a {
    line-height: 0;
  }

  /*** 余白 ***/
  .mb-01 {
    margin-bottom: 20px;
  }
  .mb-02 {
    margin-bottom: 40px;
  }

  .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .mv-img {
    height: 250px;
  }
  .mv-ttl {
    font-size: 30px;
    font-size: 3.0rem;
    line-height: 1.4;
  }

  .main-cont {
    padding-bottom: 80px;
  }

  .mc-ttl {
    top: -20px;
    width: 100px;
    line-height: 0.4;
    font-size: 18px;
    font-size: 1.8rem;
  }
  .mc-ttl:before {
    height: 100px;
    width: 100px;
  }

  .mcc-ttl,
  .mc-ttls {
    font-size: 18px;
    font-size: 1.8rem;
  }


  .mcc-dl,
  .mcc-dl dt,
  .mcc-dl dd {
    display: block;
    width: auto;
  }

  .mcc-dl dt:before {
    top: 99%;
    right: 0;
    left: 10px;
    border-width:  10px 10px 0 10px;
    border-color: #78B6E6 transparent transparent transparent;
  }

}
