@charset "UTF-8";
html {
  position: relative;
  min-height: 100%;
  overflow-x: hidden; }

section {
  overflow: hidden; }

body {
  width: 100%;
  font-size: 16px;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, sans-serif, "メイリオ", meiryo;
  color: #464646;
  position: relative;
  line-height: 1.8;
  background: url("../img/common/bg_common.svg"), linear-gradient(180deg, #c1ebfd 0%, #eaf7fd 50%, white 100%);
  background-size: 100%;
  background-position: top center;
  background-repeat: no-repeat; }

img {
  width: 100%;
  vertical-align: top;
  height: auto; }

.sp {
  display: none !important; }

.fax {
  pointer-events: none; }

@media screen and (max-width: 767px) {
  body {
    font-size: 3.2vw;
    background: url("../img/common/bg_common_sp.svg"), linear-gradient(180deg, #c1ebfd 0%, #eaf7fd 50%, white 100%);
    background-size: 100%;
    background-position: top center;
    background-repeat: no-repeat;
    padding-top: 0; }

  .pc {
    display: none !important; }

  .sp {
    display: inherit !important; } }
a {
  outline: none;
  text-decoration: none; }

a:hover {
  text-decoration: none; }

.pagetop {
  position: relative;
  display: block;
  z-index: 1100; }

.pagetop a {
  width: 50px;
  height: 50px;
  border-radius: 50px;
  color: #fff;
  display: block;
  z-index: 1100;
  overflow: hidden;
  position: relative; }
  .pagetop a:hover {
    opacity: 0.7;
    transition: 0.3s; }

/*=====================================================
ヘッダー
======================================================*/
header {
  width: 100%;
  height: 83px;
  position: fixed;
  top: 0;
  z-index: 100;
  background: #fff; }
  header .head_flex {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    height: auto;
    justify-content: space-between;
    align-items: stretch;
    height: 83px;
    /*nav_wrap*/ }
    header .head_flex .head_logo {
      width: 25%;
      display: block;
      margin: 0 0 0 3%;
      position: relative; }
      header .head_flex .head_logo a {
        display: block;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%); }
      header .head_flex .head_logo img {
        max-width: 340px;
        width: 100%; }
        header .head_flex .head_logo img:hover {
          opacity: 0.7;
          transition: 0.3s ease-in-out; }
    header .head_flex .nav_wrap {
      width: 70%;
      margin-right: 2%;
      margin-top: 20px;
      /*nav*/ }
      header .head_flex .nav_wrap nav {
        width: auto;
        /*nav_area*/ }
        header .head_flex .nav_wrap nav .nav_area {
          padding: 0;
          /*nav01*/ }
          header .head_flex .nav_wrap nav .nav_area ul.nav01 {
            margin: 0px 0px 0px 0;
            padding: 0;
            text-align: right;
            /*li*/ }
            header .head_flex .nav_wrap nav .nav_area ul.nav01 li {
              display: inline-block;
              position: relative;
              margin-left: 20px;
              text-align: right; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li a {
                color: #1F50AD;
                font-size: 18px;
                font-weight: 500;
                padding: 10px 10px;
                display: block;
                position: relative;
                text-decoration: none;
                line-height: 1.2; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li:before {
                content: "";
                position: absolute;
                bottom: 0;
                left: 0;
                height: 2px;
                width: 0;
                background: #1F50AD;
                transition: 0.3s; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li:hover:before {
                width: 100%;
                transition: 0.3s; }

/*header*/
header.on {
  position: fixed !important;
  top: 0 !important;
  background-color: rgba(255, 255, 255, 0.9);
  transition: 0.3s ease-in-out; }

.active header::before {
  display: none; }

@media only screen and (min-width: 768px) and (max-width: 1200px) {
  header .head_flex {
    /*nav_wrap*/ }
    header .head_flex .head_logo {
      width: 25%; }
    header .head_flex .nav_wrap {
      width: 70%;
      /*nav*/ }
      header .head_flex .nav_wrap nav {
        /*nav_area*/ }
        header .head_flex .nav_wrap nav .nav_area {
          /*nav01*/ }
          header .head_flex .nav_wrap nav .nav_area ul.nav01 {
            /*li*/ }
            header .head_flex .nav_wrap nav .nav_area ul.nav01 li {
              margin-left: 5px; }
              header .head_flex .nav_wrap nav .nav_area ul.nav01 li a {
                font-size: calc(13px + 5 * (100vw - 768px) / 432);
                padding: 10px 5px; }

  /*header*/ }
@media screen and (max-width: 767px) {
  header {
    height: 12vw;
    /*sp_nav*/ }
    header .sp_nav {
      position: relative;
      height: 12vw;
      width: 100%;
      /*btn_nav*/
      /*g_nav_sp*/ }
      header .sp_nav .head_logo_sp {
        margin: 0;
        display: block;
        text-align: left;
        position: relative;
        z-index: 130;
        width: 100%;
        max-width: 50vw; }
        header .sp_nav .head_logo_sp img {
          width: 100%;
          margin: 2vw 0 0 2vw; }
      header .sp_nav .btn_nav,
      header .sp_nav .btn_nav a span {
        display: inline-block;
        transition: all .4s;
        box-sizing: border-box; }
      header .sp_nav .btn_nav {
        position: absolute;
        right: 0vw;
        top: 0vw;
        width: 12vw;
        height: 12vw;
        margin: 0;
        z-index: 120;
        cursor: pointer;
        border-radius: 0 0 0 10px; }
        header .sp_nav .btn_nav span {
          position: absolute;
          left: 25%;
          width: 50%;
          height: 2px;
          background-color: #1F50AD;
          border-radius: 3px; }
        header .sp_nav .btn_nav span:nth-of-type(1) {
          top: 4vw; }
        header .sp_nav .btn_nav span:nth-of-type(2) {
          top: 6vw; }
        header .sp_nav .btn_nav span:nth-of-type(3) {
          top: 8vw; }
      header .sp_nav .btn_nav a.active span:nth-of-type(1) {
        -webkit-transform: translateY(2vw) rotate(-45deg);
        transform: translateY(2vw) rotate(-45deg); }
      header .sp_nav .btn_nav a.active span:nth-of-type(2) {
        opacity: 0; }
      header .sp_nav .btn_nav a.active span:nth-of-type(3) {
        -webkit-transform: translateY(-2vw) rotate(45deg);
        transform: translateY(-2vw) rotate(45deg); }
      header .sp_nav nav.g_nav_sp {
        display: none;
        width: 100%;
        background: rgba(31, 80, 173, 0.9);
        position: absolute;
        top: 12vw;
        left: 0;
        height: 100vh;
        padding: 17vw 0 0;
        z-index: 100;
        overflow: scroll;
        /*ul*/ }
        header .sp_nav nav.g_nav_sp ul {
          width: 90%;
          margin: 0 auto 8vw;
          padding: 0;
          font-size: 0;
          border-top: 1px #fff solid;
          /*li*/ }
          header .sp_nav nav.g_nav_sp ul li {
            text-align: center;
            display: block;
            position: relative;
            border-bottom: 1px #fff solid;
            /*h4*/ }
            header .sp_nav nav.g_nav_sp ul li h4 {
              margin: 0;
              padding: 0; }
              header .sp_nav nav.g_nav_sp ul li h4 a {
                display: block;
                color: #fff;
                text-align: left;
                width: 100%;
                font-size: 4vw;
                line-height: 1;
                box-sizing: border-box;
                padding: 6vw 0;
                position: relative;
                font-weight: 500; }
                header .sp_nav nav.g_nav_sp ul li h4 a:hover {
                  opacity: 0.7;
                  transition: 0.3s; } }
/*=====================================================
フッター
======================================================*/
footer {
  background: #1F50AD;
  padding: 40px 0; }
  footer .foot_flex {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-box;
    display: -webkit-flexbox;
    display: -moz-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: flex-start;
    height: auto;
    justify-content: space-between;
    align-items: center;
    max-width: 800px;
    margin: 0 auto;
    width: 100%; }
    footer .foot_flex .foot_logo {
      width: 50%; }
    footer .foot_flex .address {
      width: 46%;
      color: #fff;
      font-size: 15px;
      font-weight: 300; }
      footer .foot_flex .address a {
        color: #fff; }

/*footer*/
.copyright {
  font-size: 14px;
  text-align: center;
  padding: 5px;
  font-weight: 300; }

@media screen and (max-width: 767px) {
  footer {
    padding: 10vw 0; }
    footer .foot_flex {
      justify-content: center;
      text-align: center; }
      footer .foot_flex .foot_logo {
        width: 70%;
        margin-bottom: 4vw; }
      footer .foot_flex .address {
        width: 90%;
        font-size: 3vw; }

  /*footer*/
  .copyright {
    font-size: 2.6vw;
    padding: 1vw; } }
/*=====================================================
共通
======================================================*/
.t_center {
  text-align: center; }

.t_right {
  text-align: right; }

.t_left {
  text-align: left; }

.contents_wrap {
  margin: 0 auto;
  width: 90%;
  max-width: 1120px;
  position: relative; }

.wrap78 {
  max-width: 780px;
  width: 90%;
  margin: 0 auto; }

.wrap98 {
  max-width: 980px;
  width: 90%;
  margin: 0 auto; }

#main_ttl {
  padding: 120px 0 50px; }
  #main_ttl h1 {
    background-image: url("../img/common/main_ttl.png");
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center;
    position: relative;
    width: 100%;
    padding-top: 24.5%; }
    #main_ttl h1 p {
      position: absolute;
      top: 50%;
      left: 0;
      width: 100%;
      transform: translateY(-50%);
      text-align: center;
      font-size: 50px;
      color: #fff;
      font-family: 'Noto Serif JP', serif;
      font-weight: 500; }
      @media only screen and (min-width: 768px) and (max-width: 1120px) {
        #main_ttl h1 p {
          font-size: calc(35px + 15 * (100vw - 768px) / 352); } }
    #main_ttl h1 i {
      position: absolute;
      top: 70%;
      left: 50%;
      transform: translateX(-50%);
      font-size: 30px;
      color: #fff; }

@media screen and (max-width: 767px) {
  #main_ttl {
    padding: 15vw 0 10vw; }
    #main_ttl h1 {
      background-image: url("../img/common/main_ttl_sp.png");
      padding-top: 39.2%; }
      #main_ttl h1 p {
        font-size: 6vw; }
      #main_ttl h1 i {
        font-size: 5vw; } }
