@charset "UTF-8";
/*---------------------------------------------*/
/* カラー設定                                  */
/*---------------------------------------------*/
/*---------------------------------------------*/
/* SCSS Load                                   */
/*---------------------------------------------*/
/*基本*/
html {
  width: 100%;
  height: 100%;
  font-size: 62.5%; }

body {
  width: 100%;
  height: 100%;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 175%;
  font-family: "游ゴシック体", "游ゴシック", YuGothic, メイリオ, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", Osaka, sans-serif;
  color: #000;
  background-color: #FFF;
  font-weight: 500; }

.float-clear {
  clear: both; }

a {
  color: #2D2A6B;
  text-decoration: none; }

a:hover {
  color: #4c47b4;
  text-decoration: none; }

hr {
  border-top-color: #CCC;
  border-right-color: #CCC;
  border-bottom-color: #CCC;
  border-left-color: #CCC;
  margin-top: 10px;
  margin-bottom: 10px; }

/*スペース*/
.bt-sp10 {
  margin-bottom: 10px !important; }

.bt-sp20 {
  margin-bottom: 20px !important; }

.bt-sp30 {
  margin-bottom: 30px !important; }

.bt-sp40 {
  margin-bottom: 40px !important; }

.bt-sp80 {
  margin-bottom: 80px !important; }

.tp-pad80 {
  padding-top: 80px !important; }

/*グリッドシステムのガター調整*/
.row-0 {
  margin-left: 0px;
  margin-right: 0px; }
  .row-0 > div {
    padding-right: 0px;
    padding-left: 0px;
    padding-bottom: 0px; }

.row-10 {
  margin-left: -5px;
  margin-right: -5px; }
  .row-10 > div {
    padding-right: 5px;
    padding-left: 5px;
    padding-bottom: 10px; }

.row-20 {
  margin-left: -10px;
  margin-right: -10px; }
  .row-20 > div {
    padding-right: 10px;
    padding-left: 10px;
    padding-bottom: 20px; }

.row-30 {
  margin-left: -15px;
  margin-right: -15px; }
  .row-30 > div {
    padding-right: 15px;
    padding-left: 15px;
    padding-bottom: 30px; }

/*比率を保って拡大・縮小処理*/
.photo-area {
  overflow: hidden;
  position: relative;
  margin-bottom: 0px;
  display: flex;
  align-items: center;
  justify-content: center; }
  .photo-area img {
    width: 100%;
    height: auto;
    display: block;
    /*@include fullcenter()
    transform-origin: center center;
    transition: 0.5s;
    justify-content: center;
    align-items: center;*/ }
  .photo-area figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 10px;
    display: block;
    background-color: rgba(45, 42, 107, 0.8);
    color: white; }

.photo-h100 img {
  width: auto;
  height: 100%; }

.ratio-1_1:before {
  content: "";
  display: block;
  padding-top: 100%;
  /* 1:1 */ }

.ratio-7_3:before {
  content: "";
  display: block;
  padding-top: 30%;
  /* 7:3 */ }

.ratio-8_2:before {
  content: "";
  display: block;
  padding-top: 20%;
  /* 8:2 */ }

.ratio-1_2:before {
  content: "";
  display: block;
  padding-top: 200%;
  /* 1:2 */ }

.ratio-4_3:before {
  content: "";
  display: block;
  padding-top: 75%;
  /* 4:3 */ }

.ratio-16_9:before {
  content: "";
  display: block;
  padding-top: 56.25%;
  /* 16:9 */ }

.ratio-8_5:before {
  content: "";
  display: block;
  padding-top: 62.5%;
  /* 8:5 ≒ 黄金比 */ }

.ratio-tate:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 148%;
  /* 縦写真専用 1:2 */ }

.ratio-tate2:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 120%;
  /* 縦写真専用 */ }

.ratio-1_1,
.ratio-7_3,
.ratio-8_2,
.ratio-1_2,
.ratio-4_3,
.ratio-16_9,
.ratio-8_5,
.ratio-tate,
.ratio-tate2 {
  position: relative;
  overflow: hidden; }

/*---------------------------------------------*/
/*追加グリッド                                 */
/*---------------------------------------------*/
.col-xs-15,
.col-sm-15,
.col-md-15,
.col-lg-15 {
  position: relative;
  min-height: 1px; }

.col-xs-15 {
  -ms-flex: 0 0 20%;
  flex: 0 0 20%;
  max-width: 20%; }

@media (min-width: 768px) {
  .col-sm-15 {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }
@media (min-width: 992px) {
  .col-md-15 {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }
@media (min-width: 1200px) {
  .col-lg-15 {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }
.row1-gutters {
  margin-left: -1px;
  margin-right: -1px;
  margin-bottom: 0px; }
  .row1-gutters > div {
    padding: 0px 1px 2px 1px; }

/*---------------------------------------------*/
/* webfont load                                */
/*---------------------------------------------*/
@font-face {
  font-family: 'fontawesome';
  src: url("../fonts/fa-brands-400.eot");
  src: url("../fonts/fa-brands-400.eot") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg") format("svg");
  font-weight: normal;
  font-style: normal; }
@font-face {
  font-family: 'fontawesome-s';
  src: url("../fonts/fa-solid-900.eot");
  src: url("../fonts/fa-solid-900.eot") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg") format("svg");
  font-weight: normal;
  font-style: normal; }
/*---------------------------------------------*/
/* 見出し                                      */
/*---------------------------------------------*/
h1 {
  font-size: 46px;
  font-size: 4.6rem;
  line-height: 1.2;
  word-wrap: break-word; }

h2 {
  font-size: 36px;
  font-size: 3.6rem;
  line-height: 1.25;
  word-wrap: break-word; }

h3 {
  font-size: 30px;
  font-size: 3.0rem;
  line-height: 1.3;
  word-wrap: break-word; }

h4 {
  font-size: 23px;
  font-size: 2.3rem;
  line-height: 1.35;
  word-wrap: break-word; }

h5 {
  font-size: 20px;
  font-size: 2.0rem;
  line-height: 1.4;
  word-wrap: break-word; }

h6 {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.45;
  word-wrap: break-word; }

@media (max-width: 1200px) {
  h2 {
    font-size: calc(1.525rem + 1.0vw);
    word-wrap: break-word;
    overflow-wrap: break-word; }

  h3 {
    font-size: calc(1.525rem + 1.0vw); }

  h4 {
    font-size: calc(1.525rem + 0.5vw); } }
/*---------------------------------------------*/
/* 最大幅で活用                                */
/*---------------------------------------------*/
.max-img {
  width: 100%;
  height: auto; }

/*---------------------------------------------*/
/*パンくずスタイル上書き                       */
/*---------------------------------------------*/
.breadcrumb {
  padding: 0;
  margin-bottom: 0;
  background-color: transparent;
  border-radius: 0;
  font-size: 10px;
  font-size: 1.0rem; }
  .breadcrumb li:not(:last-child) {
    margin-right: 10px; }

@media (min-width: 768px) {
  .pc-right_bottom {
    position: absolute;
    bottom: 15px;
    right: 15px; } }
/*---------------------------------------------*/
/*画像マスク処理                               */
/*---------------------------------------------*/
.bg-photo {
  position: relative;
  overflow: hidden;
  margin-bottom: 0px;
  width: 100%; }
  .bg-photo img {
    height: 100%;
    width: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }

.bg-photo-w {
  position: relative;
  overflow: hidden;
  margin-bottom: 0px;
  width: 100%;
  display: flex;
  align-items: center; }
  .bg-photo-w img {
    height: auto;
    width: 100%;
    position: absolute; }

/*---------------------------------------------*/
/*DLリストのスタイル                           */
/*---------------------------------------------*/
.dl-style dd {
  margin-bottom: 20px; }

/*---------------------------------------------*/
/*リストをインライン化                         */
/*---------------------------------------------*/
.list-inline {
  margin-left: -10px;
  letter-spacing: -.4em;
  list-style: none !important;
  padding: 0px; }
  .list-inline li {
    display: inline-block;
    padding-left: 10px;
    margin-bottom: 5px;
    letter-spacing: normal; }

.li-kutou li:not(:last-child):after {
  content: "、"; }

/*---------------------------------------------*/
/*リストをテーブル化                           */
/*---------------------------------------------*/
.list-table,
.list-table_xs {
  display: block;
  padding: 0px;
  list-style: none; }

.line-table > li {
  border-bottom: 1px solid #CCC; }

.list-table_xs > li {
  width: 100%;
  display: flex;
  list-style: none;
  margin-bottom: 10px;
  justify-content: space-between;
  align-items: flex-start; }
  .list-table_xs > li > div:first-child {
    padding: 0px 5px 0px 0px;
    min-width: 100px; }
  .list-table_xs > li > div:last-child {
    padding: 0px 0px 0px 5px;
    width: 100%; }

@media (min-width: 768px) {
  .list-table > li {
    width: 100%;
    display: table;
    list-style: none;
    margin-bottom: 10px; }
    .list-table > li > div:first-child {
      display: table-cell;
      padding: 10px;
      vertical-align: top; }
    .list-table > li > div:last-child {
      display: table-cell;
      padding: 10px;
      vertical-align: top; }
      .list-table > li > div:last-child ul {
        list-style: disc; }

  .cell-10 li > div:first-child {
    width: 10%; }

  .cell-20 li > div:first-child {
    width: 20%; }

  .cell-25 li > div:first-child {
    width: 25%; } }
@media (max-width: 767px) {
  .list-table > li {
    margin-bottom: 20px; }
    .list-table > li > div:first-child {
      padding: 5px 0px 5px 0px; }
    .list-table > li > div:last-child {
      padding: 0px 0px 10px 0px; }
    .list-table > li a {
      display: block; } }
.waku-line {
  border: 1px solid #CCC;
  position: relative;
  padding: 20px; }

/*タイトルビジュアル*/
.cont-mv {
  margin-bottom: 10px; }
  .cont-mv figure {
    overflow: hidden;
    position: relative;
    background-color: #FFF;
    /*$keyCL*/
    margin: 0px; }
    .cont-mv figure img {
      width: 100%;
      height: auto;
      opacity: 0.25;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
    .cont-mv figure:before {
      content: "";
      width: 100%;
      padding-top: 45%;
      display: block; }
  .cont-mv h2 {
    display: block;
    margin: 0px;
    padding: 15px;
    width: 100%;
    border-bottom: 1px solid #CCC; }

@media (min-width: 768px) {
  .cont-mv figure {
    max-height: 300px; } }
@media (max-width: 767px) {
  .cont-mv figure img {
    width: 150%;
    height: auto; }
  .cont-mv figure:before {
    content: "";
    width: 100%;
    padding-top: 60%;
    display: block; } }
/*gmapとyoutube*/
.gmap {
  position: relative;
  width: 100%;
  padding-top: 320px;
  overflow: hidden; }

.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%; }

.gmap iframe,
.youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

h3 span {
  display: block;
  font-size: 12px;
  font-size: 1.2rem; }

.cont-mv {
  position: relative;
  overflow: hidden; }
  .cont-mv h3 {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 100%;
    text-align: center;
    margin-top: 43px;
    letter-spacing: 5px;
    color: #FFF;
    z-index: 3;
    text-shadow: 2px 2px 1px #2D2A6B, -2px 2px 1px #2D2A6B, 2px -2px 1px #2D2A6B, -2px -2px 1px #2D2A6B, 2px 0px 1px #2D2A6B, 0px 2px 1px #2D2A6B, -2px 0px 1px #2D2A6B, 0px -2px 1px #2D2A6B; }
  .cont-mv:before {
    content: '';
    position: absolute;
    left: 0;
    top: 90px;
    transform: skewY(-50deg);
    transform-origin: bottom right;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: rgba(45, 42, 107, 0.8); }

address {
  margin-bottom: 0px; }

#main-wrap h5 {
  color: #2D2A6B;
  border-bottom: 1px solid #2D2A6B;
  padding-bottom: 5px;
  margin-bottom: 10px; }
#main-wrap h6 {
  font-weight: bolder; }

/*---------------------------------------*/
/* パンくず             　               */
/*---------------------------------------*/
.breadcrumb-div {
  margin-bottom: 30px;
  font-size: 12px;
  font-size: 1.2rem;
  padding: 15px 0 5px 0;
  -webkit-overflow-scrolling: touch;
  overflow-x: auto; }

.breadcrumb {
  background-color: transparent !important;
  border-radius: 0px;
  margin-bottom: 0px;
  padding: 0px; }

.breadcrumb::-webkit-scrollbar {
  height: 5px; }

.breadcrumb::-webkit-scrollbar-track {
  border-radius: 5px;
  background: #eee; }

.breadcrumb::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background: #999; }

.breadcrumb {
  display: flex;
  white-space: nowrap;
  flex-wrap: nowrap;
  align-items: center; }

.breadcrumb li {
  padding: 5px;
  border-radius: 5px;
  line-height: 100%;
  position: relative; }

.breadcrumb li:last-child:after {
  display: none; }

@media (min-width: 768px) {
  .breadcrumb li {
    margin-right: 0px !important; }

  .breadcrumb li:after {
    content: ">"; } }
@media (max-width: 767px) {
  .breadcrumb li {
    margin-right: 10px;
    background-color: #CCC; }

  .breadcrumb li:after {
    content: "";
    position: absolute;
    right: -19px;
    border-style: solid;
    border-color: transparent;
    border-left-color: #CCC;
    border-width: 7px 12px;
    width: 0;
    height: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%); } }
@media (max-width: 767px) {
  .sp-nobr br {
    display: none; } }
/*---------------------------------------------*/
/* PC・スマホ共通用                            */
/*---------------------------------------------*/
#header-wrap {
  position: fixed;
  top: 0;
  left: auto;
  right: auto;
  width: 100%;
  z-index: 90;
  transition: 0.5s;
  -webkit-transition: 0.5s; }
  #header-wrap #header-in #web-site-name {
    padding: 0px;
    transition: 1s;
    -webkit-transition: 1s;
    line-height: 100%;
    transform-origin: top left;
    /*起点*/ }

#menu {
  display: flex; }

#main-nav a {
  color: #2D2A6B; }

/*---------------------------------------------*/
/* PC用                                        */
/*---------------------------------------------*/
@media (min-width: 992px) {
  #header-in .header-area {
    display: flex; }

  .h-active {
    background-color: #FFF !important;
    border-bottom: 1px solid #cccccc; }

  .menu > ul {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    line-height: 120%; }
    .menu > ul > li {
      position: relative;
      align-items: center;
      text-align: center;
      list-style: none;
      width: 20%; }
      .menu > ul > li > span > a {
        display: inline-flex !important;
        align-items: center;
        text-align: center;
        height: 100%; }
        .menu > ul > li > span > a:before {
          content: "";
          width: 100%;
          height: 100%;
          top: 0;
          left: 0;
          position: absolute; }
      .menu > ul > li:hover {
        background-color: #4c47b4; }
        .menu > ul > li:hover a {
          color: #FFF !important; }

  .menu > ul > li > ul li:hover {
    background-color: #4c47b4; }

  .menu > ul > li > ul {
    display: none;
    z-index: 2; }

  .menu > ul > li ul {
    background-color: rgba(45, 42, 107, 0.8); }
    .menu > ul > li ul li {
      border-bottom: 1px solid white; }

  .menu a {
    display: block;
    text-decoration: none; }

  /*親要素のボタン制御*/
  .menu ul > li > span > a {
    display: block;
    padding-bottom: 10px;
    padding-top: 10px; }

  /*子要素設定*/
  .menu > ul > li:hover > ul {
    width: 100%;
    opacity: 1;
    display: block; }

  .menu > ul > li > ul,
  .menu > ul > li > ul li ul {
    width: 100%;
    opacity: 0;
    position: absolute;
    margin: 0;
    padding: 0;
    transition: 0s ease 0s;
    box-sizing: border-box;
    list-style: none; }

  .menu > ul > li > ul > li {
    position: relative; }

  .menu > ul > li > ul > li:hover ul {
    width: 100%;
    opacity: 1;
    transition: 0s ease 0s;
    left: 100%;
    top: 0;
    position: absolute; }

  /*子要素のボタン制御*/
  .menu ul > li > span > ul > li > a {
    overflow: hidden; }

  /*子要素のボタン*/
  .menu ul > li > ul > li > span a,
  .menu ul > li > ul > li > span i {
    padding-left: 10px;
    padding-right: 10px;
    text-align: left;
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.5; }

  .menu ul > li > ul > li > span i {
    font-style: normal;
    font-size: 90%;
    color: #FFF;
    display: block;
    padding-bottom: 10px;
    padding-top: 10px;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis; }
    .menu ul > li > ul > li > span i:after {
      content: "\f054";
      font-family: 'fontawesome-s';
      right: 5px;
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); } }
/*-------------------------------------*/
/* スマホ用メニュー                    */
/*-------------------------------------*/
.menu-mobile {
  display: none; }

@media only screen and (max-width: 991px) {
  #header-wrap {
    height: 70px;
    overflow: hidden; }
    #header-wrap:before {
      content: "";
      width: 100%;
      height: 70px;
      display: block;
      background-color: #FFF;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 99; }

  #header-in #web-site-name {
    position: fixed;
    top: 30px;
    z-index: 99; }

  .h-active {
    animation: bganime 0.5s forwards; }

  /*スマホメニュー表示ボタンが押された時*/
  html.nav-active #header-wrap {
    height: 100vh; }

  html.nav-active .menu {
    position: fixed;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    z-index: 98;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    overflow-x: hidden;
    overflow-y: scroll;
    background: #FFF;
    page-break-after: 70px; }

  html.nav-active body {
    overflow: hidden; }

  html.nav-active #wrapper {
    position: fixed; }

  /*スマホメニュー以外を隠すマスク*/
  html.nav-active .nav-mask {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 97;
    background-color: rgba(255, 255, 255, 0.8); }

  /*スマホメニュー表示ボタン*/
  .menu-mobile {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    width: 70px;
    height: 70px;
    z-index: 99;
    cursor: pointer;
    background-color: #2D2A6B; }

  #common-nav-switch-in {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 17px;
    margin: -8px 0 0 -15px; }

  #common-nav-switch-in .bar {
    position: absolute;
    left: 0;
    width: 30px;
    height: 1px;
    transition: all 0.4s ease 0s;
    -webkit-transition: all 0.4s ease 0s;
    -moz-transition: all 0.4s ease 0s;
    -o-transition: all 0.4s ease 0s;
    -ms-transition: all 0.4s ease 0s;
    background: #FFF; }

  .nav-active #common-nav-switch {
    background: #000; }

  .nav-active #common-nav-switch .bar {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    background: #FFF !important; }

  #common-nav-switch-in .bar.bar01 {
    top: 0; }

  #common-nav-switch-in .bar.bar02 {
    top: 8px; }

  #common-nav-switch-in .bar.bar03 {
    top: 16px; }

  /* スマホメニューcloes ボタン化　*/
  .nav-active #common-nav-switch-in .bar.bar01 {
    -webkit-transform: rotate(45deg) translate(0px, -7px);
    -moz-transform: rotate(45deg) translate(0px, -7px);
    -o-transform: rotate(45deg) translate(0px, -7px);
    -ms-transform: rotate(45deg) translate(0px, -7px);
    transform: rotate(45deg) translate(0px, -7px); }

  .nav-active #common-nav-switch-in .bar.bar02 {
    display: none; }

  .nav-active #common-nav-switch-in .bar.bar03 {
    -webkit-transform: rotate(-45deg) translate(3px, 3px);
    -moz-transform: rotate(-45deg) translate(3px, 3px);
    -o-transform: rotate(-45deg) translate(3px, 3px);
    -ms-transform: rotate(-45deg) translate(3px, 3px);
    transform: rotate(-45deg) translate(3px, 3px); }

  /*スマホメニューの見た目設定*/
  .menu-container {
    width: 100%;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 99; }

  .menu > ul {
    margin-top: 0;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 20px;
    width: 100%;
    list-style: none;
    padding: 0;
    padding-top: 70px;
    position: relative;
    box-sizing: border-box; }

  .menu > ul > li {
    float: left;
    padding: 0;
    margin: 0;
    background: #FFF;
    border-top: 1px solid #DDD; }

  .menu > ul > li:last-child {
    border-bottom: 1px solid #DDD; }

  .menu > ul > li a {
    text-decoration: none;
    padding: 1.5em 3em;
    display: block;
    color: #000; }

  /*.menu > ul > li:hover {
  	background: $sp_acnavliCL;
  }*/
  .menu > ul > li > ul,
  .menu > ul > li > ul > li ul {
    display: none;
    width: 100%;
    position: absolute;
    z-index: 99;
    left: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    box-sizing: border-box;
    background: #2d2a6b; }

  .menu > ul > li > ul li {
    border-top: 1px solid #DDD; }
    .menu > ul > li > ul li a {
      color: #FFF !important; }

  .menu-container {
    width: 100%; }

  .menu-dropdown-icon:before {
    display: block; }

  .menu > ul {
    display: none; }

  .menu > ul li {
    width: 100%;
    float: none;
    display: block; }

  .menu > ul li > span {
    position: relative;
    display: table;
    width: 100%; }

  .sp-gnav-layer-btn {
    display: table-cell;
    width: 40px;
    cursor: pointer;
    -moz-transition: background-color .2s linear;
    -webkit-transition: background-color .2s linear;
    -o-transition: background-color .2s linear;
    -ms-transition: background-color .2s linear;
    transition: background-color .2s linear;
    border-left: solid 1px #DDD;
    border-bottom: solid 1px #DDD;
    background-color: #2D2A6B; }

  .sp-gnav-layer-btn:before {
    content: "";
    position: absolute;
    display: block;
    width: 16px;
    height: 2px;
    top: 50%;
    right: 12px;
    margin: -1px 0 0;
    background-color: #FFF; }

  .sp-gnav-layer-btn:after {
    content: "";
    position: absolute;
    display: block;
    width: 2px;
    height: 16px;
    top: 50%;
    right: 19px;
    margin: -8px 0 0;
    -moz-transition: -moz-transform .2s linear;
    -webkit-transition: -webkit-transform .2s linear;
    -o-transition: -o-transform .2s linear;
    -ms-transition: -ms-transform .2s linear;
    transition: transform .2s linear;
    background-color: #FFF; }

  .sp-gnav-layer-btn.current:after {
    -moz-transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg); }

  .menu > ul li a,
  .menu > ul li i {
    padding: 1.5em;
    width: 100%;
    display: block; }

  .menu > ul li i {
    font-style: normal !important;
    color: #FFF; }

  .menu > ul li ul {
    position: relative; }

  .menu > ul li ul.normal-sub {
    width: 100%; }

  .menu > ul li ul li {
    float: none;
    width: 100%; }

  .menu > ul li ul li:first-child {
    margin: 0; }

  .menu > ul li ul li ul {
    position: relative; }

  .menu > ul li ul li ul li {
    float: none; }

  .menu .show-on-mobile {
    display: block !important; } }
/*---------------------------------------------*/
/* サブナビ                                    */
/*---------------------------------------------*/
@media only screen and (min-width: 992px) {
  #sub-nav {
    display: flex;
    justify-content: flex-end;
    margin-top: 5px;
    margin-bottom: 5px;
    margin-right: 15px; }
    #sub-nav ul {
      display: table;
      padding-left: 0px;
      border-collapse: separate;
      border-spacing: 20px 0;
      margin-right: -10px;
      margin-bottom: 0px; }
      #sub-nav ul li {
        list-style: none;
        display: table-cell;
        font-size: 12px;
        font-size: 1.2rem; }
        #sub-nav ul li a {
          color: #4c47b4; }
          #sub-nav ul li a:hover {
            color: #eaeaf7; } }
@media only screen and (max-width: 991px) {
  #sub-nav {
    display: none;
    order: 2; }
    #sub-nav li {
      list-style: circle; }

  #main-content-list {
    order: 1; } }
/*ボタンスタイル*/
/*ボタン共通スタイル*/
.btn-style {
  display: inline-block;
  background-color: #2D2A6B;
  color: white;
  border-radius: 25px;
  padding: 10px 15px 10px 15px; }

.btn-style:hover {
  color: white;
  background-color: #4c47b4; }

@media only screen and (max-width: 991px) {
  .btn-style {
    display: block;
    text-align: center; } }
/*通常ボタン*/
.btn-nomal:before {
  content: "\f0a9";
  font-family: 'fontawesome-s';
  margin-right: 10px; }

/*お問い合わせボタン*/
.btn-contact:before {
  content: "\f0e0";
  font-family: 'fontawesome-s';
  margin-right: 10px; }

/*youtubeボタン*/
.btn-youtube {
  position: relative;
  overflow: hidden; }
  .btn-youtube:before {
    content: "\f144";
    font-family: 'fontawesome-s';
    margin-right: 5px;
    font-size: 60px;
    font-size: 6.0rem;
    color: red;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }

/*PDFボタン*/
a[href$=".pdf"]:before {
  content: "\f1c1";
  font-family: 'fontawesome-s';
  margin-right: 5px;
  font-size: 18px;
  font-size: 1.8rem; }

/*電話番号ボタン*/
@media (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none; } }
/*ブロックタイプのボタン*/
@media (min-width: 768px) {
  .btn-block2 {
    display: inline-block;
    background-color: #2D2A6B;
    color: #b5b3e1;
    border-radius: 25px;
    padding: 10px 15px 10px 15px; }
    .btn-block2:after {
      content: "詳しく見る"; }
    .btn-block2:before {
      content: "\f0a9";
      font-family: 'fontawesome-s';
      margin-right: 10px; } }
@media (max-width: 767px) {
  .btn-block2 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block; } }
/*背景が画像のボタン*/
.btn-bg-img {
  position: relative; }
  .btn-bg-img:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    z-index: 1;
    background: -moz-linear-gradient(top, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.5) 50%, rgba(45, 42, 107, 0.7) 100%);
    background: -webkit-linear-gradient(top, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.5) 50%, rgba(45, 42, 107, 0.7) 100%);
    background: linear-gradient(to bottom, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.5) 50%, rgba(45, 42, 107, 0.7) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$keyCL', endColorstr='$keyCL',GradientType=0 ); }
  .btn-bg-img figure {
    position: relative;
    overflow: hidden;
    margin: 0px;
    max-height: 300px; }
    .btn-bg-img figure:before {
      content: "";
      width: 100%;
      padding-top: 55%;
      display: block; }
    .btn-bg-img figure img {
      position: absolute;
      width: 100%;
      height: auto;
      top: 0;
      left: 0;
      transition: 0.5s; }
    .btn-bg-img figure figcaption {
      position: absolute;
      padding: 10px 50px 10px 10px;
      bottom: 0;
      left: 0;
      color: #FFF;
      z-index: 2; }
      .btn-bg-img figure figcaption p {
        margin-bottom: 0px;
        line-height: 120%; }
  .btn-bg-img a {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    z-index: 3; }
    .btn-bg-img a:after {
      color: #FFF;
      content: "\f061";
      font-family: 'fontawesome-s';
      right: 10px;
      bottom: 10px;
      position: absolute;
      font-size: 36px;
      font-size: 3.6rem;
      z-index: 3; }
  .btn-bg-img:hover img {
    transform: scale(1.3);
    opacity: 0.5; }
  .btn-bg-img:hover figure:before {
    background-color: #2D2A6B; }

@media (max-width: 767px) {
  .btn-bg-img:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    z-index: 1;
    background: -moz-linear-gradient(top, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.7) 30%, rgba(45, 42, 107, 0.7) 100%);
    background: -webkit-linear-gradient(top, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.7) 30%, rgba(45, 42, 107, 0.7) 100%);
    background: linear-gradient(to bottom, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.7) 30%, rgba(45, 42, 107, 0.7) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$keyCL', endColorstr='$keyCL',GradientType=0 ); } }
/*リンクリスト*/
.link-list article a {
  display: block;
  padding: 20px 10px 20px 10px;
  border: 1px solid #CCC; }
  .link-list article a h6 {
    margin-bottom: 0px;
    padding-bottom: 0px;
    padding-right: 30px;
    position: relative;
    display: block; }
    .link-list article a h6:after {
      content: "\f0a9";
      font-family: 'fontawesome-s';
      right: 0;
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); }
  .link-list article a:hover {
    border: 1px solid #4c47b4; }

.link-list2 article a {
  display: block;
  padding: 20px 10px 20px 10px;
  border: 1px solid #FFF;
  border-bottom: 1px solid #CCC; }
  .link-list2 article a h6 {
    margin-bottom: 0px;
    padding-bottom: 0px;
    padding-right: 30px;
    position: relative;
    display: block; }
    .link-list2 article a h6:after {
      content: "\f0a9";
      font-family: 'fontawesome-s';
      right: 0;
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); }
  .link-list2 article a:hover {
    border: 1px solid #4c47b4;
    /*-webkit-box-shadow: 1px 1px 3px rgba($linkhoverCL,0.5),
    			-1px -1px 3px rgba($linkhoverCL,0.5);
    box-shadow: 1px 1px 3px rgba($linkhoverCL,0.5),
    		-1px -1px 3px rgba($linkhoverCL,0.5);*/ }

.btn-grid > div {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center; }
  .btn-grid > div figure {
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center; }
    .btn-grid > div figure img {
      height: auto;
      position: absolute;
      transition: 0.5s;
      /*transform-origin: center center;
      @include verticalcenter();*/ }
  .btn-grid > div a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    background-color: rgba(45, 42, 107, 0.5); }
    .btn-grid > div a h4 {
      color: #FFF;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }
  .btn-grid > div:hover img {
    transform: scale(1.3);
    opacity: 0.3; }
  .btn-grid > div:hover a {
    background-color: transparent; }
    .btn-grid > div:hover a h4 {
      color: #2D2A6B; }

/*カード*/
.card-div {
  position: relative;
  background-color: #2D2A6B;
  color: #FFF;
  padding: 10px; }
  .card-div figure {
    margin-bottom: 10px; }
    .card-div figure img {
      transition: 0.5s; }
  .card-div a {
    color: #FFF; }
    .card-div a:before {
      content: "";
      display: block;
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 2; }
    .card-div a:after {
      content: "\f0a9";
      font-family: 'fontawesome-s';
      margin-left: 10px; }
  .card-div:hover {
    background-color: #4c47b4; }
    .card-div:hover img {
      transform: scale(1.3); }

@media (max-width: 767px) {
  .card-div figure {
    max-height: 150px; } }
/*voice専用ボタン*/
.voice-box .cate {
  display: inline-block;
  line-height: 100%;
  padding: 5px;
  background-color: #2D2A6B;
  color: #FFF; }

@media screen and (min-width: 992px) {
  .gutters1 > .col,
  .gutters1 > [class*="col-"] {
    padding-right: 1px;
    padding-bottom: 1px; }

  .voice-box {
    position: relative;
    overflow: hidden; }
    .voice-box .cate {
      position: absolute;
      top: 0;
      left: 0; }
    .voice-box .profile-div {
      color: #FFF;
      position: absolute;
      left: 0;
      overflow: hidden;
      width: 100%;
      height: 30%;
      display: block;
      padding: 10px;
      bottom: 0px;
      z-index: 2;
      transition: height 0.6s cubic-bezier(0.07, 0.8, 0.15, 1);
      background: -moz-linear-gradient(top, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.5) 50%, rgba(45, 42, 107, 0.7) 100%);
      background: -webkit-linear-gradient(top, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.5) 50%, rgba(45, 42, 107, 0.7) 100%);
      background: linear-gradient(to bottom, rgba(45, 42, 107, 0) 0%, rgba(45, 42, 107, 0.5) 50%, rgba(45, 42, 107, 0.7) 100%);
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$keyCL', endColorstr='$keyCL',GradientType=0 ); }
      .voice-box .profile-div .text-div {
        position: absolute;
        overflow: hidden;
        width: 100%;
        height: 3.2rem;
        left: 10px;
        bottom: 20px;
        transition: height 0.6s cubic-bezier(0.07, 0.8, 0.15, 1); }
    .voice-box a:before {
      content: "";
      width: 100%;
      height: 100%;
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 3; }
    .voice-box:hover .profile-div {
      width: 100%;
      height: 100%; }
    .voice-box:hover .text-div {
      height: 130px; } }
@media screen and (max-width: 992px) {
  .gutters1 > .col,
  .gutters1 > [class*="col-"] {
    padding-right: 5px;
    padding-left: 5px;
    padding-bottom: 10px; }

  .voice-box .cate {
    display: block;
    font-size: 80%;
    margin-bottom: 10px; }
  .voice-box a {
    display: block;
    padding: 5px;
    text-align: center;
    border: 1px solid #2D2A6B;
    color: #2D2A6B;
    border-radius: 50px;
    margin-bottom: 20px; }
    .voice-box a:before {
      content: "詳しく見る"; } }
/*---------------------------------------------*/
/*上に戻るボタン                               */
/*---------------------------------------------*/
.page-top {
  display: none;
  width: 50px;
  height: 50px;
  position: fixed;
  padding: 10px;
  z-index: 99;
  bottom: 0px;
  right: 0px;
  background-color: #2D2A6B;
  cursor: pointer; }

.page-top:hover {
  background-color: #4c47b4; }

.page-top:before {
  font-family: 'fontawesome-s';
  content: "\f062";
  color: white;
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  font-size: 20px;
  margin-left: -10px;
  margin-top: -10px; }

/*-------------------------------------------*/
/* laoding                                   */
/*-------------------------------------------*/
#loader-bg {
  display: block;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  color: #000;
  z-index: 9999;
  overflow: hidden;
  background-color: #FFF; }

#loader {
  display: block;
  position: fixed;
  width: 100px;
  height: 100px;
  text-align: center;
  z-index: 10000;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%); }
  #loader:after {
    content: "Now Loading";
    font-size: 14px; }

#wrapper {
  visibility: hidden; }

/*loading*/
/* loading anime */
.spinner {
  height: 40px;
  text-align: center;
  font-size: 10px; }

.spinner > div {
  background-color: #2D2A6B;
  height: 100%;
  width: 6px;
  display: inline-block;
  -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
  animation: sk-stretchdelay 1.2s infinite ease-in-out; }

.spinner .rect2 {
  -webkit-animation-delay: -1.1s;
  animation-delay: -1.1s; }

.spinner .rect3 {
  -webkit-animation-delay: -1.0s;
  animation-delay: -1.0s; }

.spinner .rect4 {
  -webkit-animation-delay: -0.9s;
  animation-delay: -0.9s; }

.spinner .rect5 {
  -webkit-animation-delay: -0.8s;
  animation-delay: -0.8s; }

@-webkit-keyframes sk-stretchdelay {
  0%, 40%, 100% {
    -webkit-transform: scaleY(0.4); }
  20% {
    -webkit-transform: scaleY(1); } }
@keyframes sk-stretchdelay {
  0%, 40%, 100% {
    transform: scaleY(0.4);
    -webkit-transform: scaleY(0.4); }
  20% {
    transform: scaleY(1);
    -webkit-transform: scaleY(1); } }
/*---------------------------------------------*/
/* デザインテーマ設定                          */
/*---------------------------------------------*/
/*ヘッダー背景*/
#header-wrap h1 {
  font-size: 23px;
  font-size: 2.3rem;
  margin: 0px; }
#header-wrap #header-in {
  width: 100%;
  margin-right: auto;
  margin-left: auto; }

@media (min-width: 992px) {
  #header-wrap {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px); }
    #header-wrap h1 img {
      max-height: 40px; }
    #header-wrap .name-div {
      display: flex;
      align-items: center;
      padding: 0px 10px 0px 10px;
      background-color: rgba(255, 255, 255, 0.6); }
    #header-wrap .nav-div {
      padding: 0px;
      background-color: rgba(45, 42, 107, 0.6); } }
@media (max-width: 991px) {
  #header-wrap {
    background-color: rgba(255, 255, 255, 0.8); }
    #header-wrap h1 img {
      height: 30px;
      width: auto; }

  #web-site-name {
    top: 30px !important;
    left: 15px; } }
/*ヘッダーナビ独自制御*/
@media (min-width: 992px) {
  #main-nav a,
  #sub-nav ul li a {
    color: #FFF; }

  .h-active #web-site-name {
    transform: scale(0.8); }
  .h-active #sub-nav {
    display: none; } }
/* footer */
footer {
  margin-top: 40px;
  padding-top: 10px;
  padding-bottom: 30px;
  background-color: #FFF;
  color: #666; }
  footer .flex-list,
  footer .flex-list2 {
    list-style: none;
    padding: 0px;
    margin: 0px;
    display: flex;
    justify-content: flex-end;
    flex-wrap: nowrap;
    margin-bottom: 20px; }
    footer .flex-list li,
    footer .flex-list2 li {
      padding-left: 5px;
      padding-right: 5px; }
      footer .flex-list li img,
      footer .flex-list2 li img {
        width: auto;
        height: 95px; }
  footer .flex-list2 {
    border: 1px solid #999;
    padding: 10px;
    margin-right: 15px;
    margin-left: 5px;
    order: 1; }

/*TOPスタイル*/
/*メインビジュアルサイズ*/
@media (min-width: 768px) {
  .top-mv {
    min-height: 640px; } }
.top-mv:before {
  content: '';
  position: absolute;
  left: 0;
  top: 90px;
  transform: skewY(-50deg);
  transform-origin: bottom right;
  z-index: 1;
  width: 100%;
  height: 100%;
  background: rgba(45, 42, 107, 0.8); }

h2.label {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  text-align: right;
  display: block;
  width: 100%;
  padding: 15px;
  z-index: 2; }
  h2.label span {
    font-family: a-otf-ud-reimin-pr6n,sans-serif;
    font-weight: 300;
    font-style: normal;
    letter-spacing: 1.5px;
    display: inline;
    text-shadow: 2px 2px 1px rgba(0, 0, 0, 0.4), -2px 2px 1px rgba(0, 0, 0, 0.4), 2px -2px 1px rgba(0, 0, 0, 0.4), -2px -2px 1px rgba(0, 0, 0, 0.4), 2px 0px 1px rgba(0, 0, 0, 0.4), 0px 2px 1px rgba(0, 0, 0, 0.4), -2px 0px 1px rgba(0, 0, 0, 0.4), 0px -2px 1px rgba(0, 0, 0, 0.4); }

/*スクロールサインアニメ*/
.go-contents {
  position: absolute;
  font-size: 70%;
  left: 50%;
  bottom: 0;
  margin-left: -38px;
  z-index: 2;
  width: 76px;
  height: 78.5px;
  color: #FFF;
  text-align: center; }

.anime-line {
  overflow: hidden;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 50px; }

.anime-line:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background-color: #4c47b4; }

.anime-line:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background-color: #FFF;
  animation: scroll 2000ms cubic-bezier(0.19, 1, 0.22, 1) infinite both; }

@keyframes scroll {
  0% {
    transform: translateY(-100%); }
  50% {
    transform: translateY(0); }
  100% {
    transform: translateY(100%); } }
.c-style .top-mv {
  width: 100%;
  max-height: 750px; }
  .c-style .top-mv h2 {
    color: #FFF; }

.c-about figure {
  overflow: hidden;
  border-radius: 50%;
  margin-bottom: 5px; }
  .c-about figure img {
    width: auto;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
.c-about small {
  display: block; }

@media (min-width: 768px) {
  .c-botun-div article {
    text-align: center; } }
@media (max-width: 767px) {
  h2.label {
    text-align: center; }

  .vegas-overlay {
    display: none; }

  .c-style .top-mv {
    margin-top: 70px;
    max-height: 320px; }

  .c-botun-div {
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 15px;
    position: relative; }
    .c-botun-div .col-6 {
      position: static; }
    .c-botun-div a:after {
      content: "\f0a9";
      font-family: 'fontawesome-s';
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%);
      left: 5px;
      position: absolute;
      font-size: 20px;
      font-size: 2.0rem;
      color: #2D2A6B; }
    .c-botun-div article p {
      line-height: 120%; } }
/*--------------------------------------*/
#business-content {
  border-top: 5px solid #2D2A6B; }
  #business-content h3 {
    position: absolute;
    left: 50%;
    z-index: 9;
    background-color: #2D2A6B;
    color: #FFF;
    padding: 10px 20px 10px 20px;
    -webkit-transform: translate(-50%, -35px);
    -moz-transform: translate(-50%, -35px);
    -ms-transform: translate(-50%, -35px);
    -o-transform: translate(-50%, -35px);
    transform: translate(-50%, -35px); }

@media (max-width: 767px) {
  #business-content {
    padding: 10px 15px 10px 15px;
    background-color: #2D2A6B; } }
@media (min-width: 768px) and (max-width: 1200px) {
  #business-content figcaption p {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    width: 30%; } }
/*---------------------------------------------*/
/* グリッド                                    */
/*---------------------------------------------*/
.grid-parent {
  display: grid;
  display: -ms-grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  grid-column-gap: 3px;
  grid-row-gap: 3px;
  -ms-grid-columns: 50% 50%;
  -ms-grid-rows: auto auto; }

.grid-div1 {
  grid-area: 1 / 1 / 3 / 2;
  -ms-grid-column: 1;
  -ms-grid-row: 1;
  -ms-grid-row-span: 2; }
  .grid-div1 img {
    height: 105%;
    width: auto; }

.grid-div2 {
  grid-area: 1 / 2 / 2 / 3;
  min-height: 140px;
  -ms-grid-column: 2;
  -ms-grid-row: 1; }

.grid-div3 {
  grid-area: 2 / 2 / 3 / 3;
  min-height: 140px;
  -ms-grid-column: 2;
  -ms-grid-row: 2; }

@media all and (-ms-high-contrast: none) {
  .grid-div1 {
    margin: 0px 1px 0px 0px; }

  .grid-div2 {
    margin: 0px 0px 1px 1px; }

  .grid-div3 {
    margin: 1px 0px 0px 1px; } }
@media (min-width: 1200px) {
  .grid-div1 img,
  .grid-div2 img,
  .grid-div3 img {
    height: auto;
    width: 100%; } }
@media (min-width: 992px) {
  /*.grid-div1 {
  	img {
  		min-height: 110%;
  	}
  }
  .grid-div2 {
  	min-height: 180px;
  }
  .grid-div3 {
  	min-height: 180px;
  }*/ }
@media (max-width: 767px) {
  .grid-div1 img {
    height: 110% !important;
    width: auto !important; }

  .grid-div2,
  .grid-div3 {
    height: 140px !important; } }
@media (max-width: 480px) {
  .grid-div2 img {
    height: 105% !important;
    width: auto !important; }

  .grid-div3 img {
    height: 105% !important;
    width: auto !important; } }
/*---------------------------------------------*/
@media (min-width: 992px) {
  .col-2col-div .row-30 .block-div {
    position: relative; }
    .col-2col-div .row-30 .block-div figure {
      margin-left: 9.6%;
      max-height: 400px;
      position: relative;
      width: auto; }
    .col-2col-div .row-30 .block-div article {
      position: absolute;
      bottom: 0px;
      left: 0px;
      background-color: rgba(255, 255, 255, 0.8);
      padding: 20px;
      display: block;
      width: 60%;
      max-width: 450px;
      -webkit-backdrop-filter: blur(8px);
      backdrop-filter: blur(8px); } }
@media (max-width: 991px) {
  .col-2col-div figure {
    margin-bottom: 5px; } }
/*Contentsスタイル*/
.data-div {
  padding: 10px;
  background-color: #DDD; }

.ol-style {
  margin: 0px;
  padding: 0px;
  counter-reset: item;
  list-style-type: none; }
  .ol-style > li {
    margin-bottom: 20px;
    padding: 10px;
    padding-left: 50px;
    border: 2px solid #2D2A6B;
    border-radius: 20px;
    position: relative; }
    .ol-style > li:before {
      position: absolute;
      top: 10px;
      left: 15px;
      counter-increment: item;
      content: counter(item);
      color: #FFF;
      background-color: #2D2A6B;
      padding: 6px 10px 6px 10px;
      line-height: 100%;
      border-radius: 100px; }

.inside-ol {
  margin: 0px;
  padding: 0px;
  counter-reset: item;
  list-style-type: none; }
  .inside-ol > li {
    margin-bottom: 10px;
    border-radius: 20px;
    padding: 10px;
    background-color: #CCC; }
    .inside-ol > li:before {
      counter-increment: item;
      content: counter(item) ".";
      color: #2D2A6B;
      line-height: 100%;
      margin-right: 5px; }

@media (min-width: 992px) {
  .pc-col-2 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    .pc-col-2 > li {
      width: 49.5%; } }
.section-tittle {
  position: relative;
  padding: 10px;
  letter-spacing: 0.8rem;
  text-align: center;
  color: #FFF;
  background-color: #2D2A6B;
  overflow: hidden; }
  .section-tittle:before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 50px 30px 0 0;
    border-color: #4c47b4 transparent transparent transparent;
    position: absolute;
    top: 0;
    left: 0; }
  .section-tittle:after {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 50px 30px;
    border-color: transparent transparent #4c47b4 transparent;
    position: absolute;
    bottom: 0;
    right: 0; }

#voice-div small {
  font-size: 50%; }

/*tableスタイル上書き*/
.table-bordered {
  border: 1px solid #CCC; }

.table .thead-dark th {
  color: #FFF;
  background-color: #4c47b4;
  border-color: #CCC; }

.table-bordered th, .table-bordered td {
  border: 1px solid #CCC; }

@media screen and (max-width: 991px) {
  .table tr {
    display: block;
    float: left; }

  .table tr td,
  .table tr th {
    border-left: none;
    display: block;
    min-height: 50px; }

  .table thead {
    display: block;
    float: left;
    width: 30%; }

  .table thead tr {
    width: 100%; }

  .table tbody {
    display: block;
    float: left;
    width: 70%; }

  .table tbody tr {
    width: 100%; }

  .table tr td + td {
    border-left: none; } }
/*元号非表示*/
.no-gengou li div span {
  display: none; }

/*voiceページ*/
.bg-keycl {
  background-color: #CCC; }

/*---------------------------------------------*/
/* swiper上書き                                */
/*---------------------------------------------*/
#voice-header {
  background-color: #2D2A6B;
  color: #FFF; }
  #voice-header .name-div {
    padding: 20px; }
    #voice-header .name-div:before {
      content: "";
      display: block;
      width: 60px;
      padding-top: 9%;
      background-image: url("../../asset/img/mark.svg");
      background-repeat: no-repeat;
      background-position: center center;
      background-size: contain;
      margin-bottom: 10px; }

@media screen and (max-width: 991px) {
  #voice-header .name-div:before {
    float: left;
    margin-right: 10px;
    margin-bottom: 0px; } }
.voice-list {
  position: relative;
  width: 100%;
  padding: 0px;
  list-style-type: none;
  display: flex;
  flex-wrap: nowrap; }
  .voice-list ul {
    list-style: none;
    padding: 0px;
    margin: 0px; }
  .voice-list li {
    position: relative;
    padding: 20px; }
    .voice-list li a:before {
      content: "";
      width: 100%;
      height: 100%;
      display: block;
      position: absolute;
      top: 0;
      left: 0; }
  .voice-list figure {
    border-radius: 50%;
    margin-bottom: 10px; }

.swiper-button-nt {
  position: absolute;
  left: 10px;
  cursor: pointer;
  z-index: 2;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%); }
  .swiper-button-nt:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    content: "";
    vertical-align: middle;
    left: 3px;
    width: 40px;
    height: 40px;
    border-top: 5px solid #2D2A6B;
    border-right: 5px solid #2D2A6B;
    -webkit-transform: rotate(-135deg);
    transform: rotate(-135deg); }

.swiper-button-pv {
  position: absolute;
  right: 50px;
  cursor: pointer;
  z-index: 2;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%); }
  .swiper-button-pv:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    content: "";
    vertical-align: middle;
    left: 3px;
    width: 40px;
    height: 40px;
    border-top: 5px solid #2D2A6B;
    border-right: 5px solid #2D2A6B;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); }

.swiper-button-disabled {
  display: none; }

.swiper-container-horizontal > .swiper-pagination-progressbar,
.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  bottom: 0;
  top: auto;
  height: 1px; }

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill,
.swiper-pagination-bullet-active {
  background: #2D2A6B !important; }
