@charset "UTF-8";
@font-face {
  font-family: 'matissem';
  font-display: swap;
  src: url("/common/font/matisse-m.woff") format("woff"), url("/common/font/matisse-m.otf") format("truetype"); }

main .bgImageBubble {
  position: absolute;
  z-index: -10;
  margin: auto; }

main .headings .tabVisible {
  display: none; }

main .headings .mbVisible {
  display: none; }

@media (max-width: 768px) {
  main .headings .tabVisible {
    display: block; }
  main .headings .pcVisible {
    display: none; }
  main .headings .mbVisible {
    display: none; } }

@media (max-width: 480px) {
  main .headings .tabVisible {
    display: none; }
  main .headings .pcVisible {
    display: none; }
  main .headings .mbVisible {
    display: block; } }

/*--------------------------------------------------- */
/* history */
/*--------------------------------------------------- */
.history .flex {
  max-width: 740px;
  margin: auto;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-top: 50px; }
  .history .flex .textFlex {
    padding-top: 63px;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.5em;
    width: calc(100% - 370px); }
  .history .flex .imgFlex {
    width: 300px; }
    .history .flex .imgFlex img {
      max-width: 299px;
      width: 100%; }

@media (max-width: 768px) {
  .history .flex {
    max-width: initial; }
    .history .flex .textFlex {
      width: calc(50% - 10px); }
    .history .flex .imgFlex {
      width: calc(50% - 10px); } }

@media (max-width: 480px) {
  .history .flex {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    max-width: initial; }
    .history .flex .textFlex {
      padding-top: 0px;
      width: 100%; }
    .history .flex .imgFlex {
      width: 100%;
      margin-top: 40px; }
      .history .flex .imgFlex img {
        margin: auto;
        width: 70%; } }

/*--------------------------------------------------- */
/* goal */
/*--------------------------------------------------- */
.goal {
  margin-top: 120px; }
  .goal p {
    max-width: 630px;
    margin: auto;
    margin-top: 100px;
    line-height: 1.5em;
    font-size: 16px;
    font-size: 1.6rem; }
    .goal p span {
      display: block;
      font-size: 14px;
      font-size: 1.4rem; }
  .goal .goalGroup {
    margin-top: 110px;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between; }
    .goal .goalGroup img {
      position: relative;
      max-width: 232px; }
    .goal .goalGroup .flex5 {
      width: calc(33% - 20px);
      position: relative;
      max-width: 232px; }
    .goal .goalGroup .num4, .goal .goalGroup .num5 {
      width: 50%;
      max-width: initial; }
      .goal .goalGroup .num4 img, .goal .goalGroup .num5 img {
        margin: auto; }
    .goal .goalGroup .num1 {
      top: -67px; }
    .goal .goalGroup .num3 {
      top: -25px; }
    .goal .goalGroup .num4 {
      left: 57px;
      top: -189px; }
    .goal .goalGroup .num5 {
      left: -54px;
      top: -256px; }
      @media (max-width: 1000px) {
        .goal .goalGroup .num5 {
          top: -76px; } }
    @media all and (-ms-high-contrast: none) {
      .goal .goalGroup .flex5 {
        max-width: 100%; }
      .goal .goalGroup .num5 {
        left: -115px; } }

@media (max-width: 768px) {
  .goal {
    margin-top: 120px;
    margin-bottom: 150px; }
    .goal p {
      max-width: initial;
      margin: auto;
      margin-top: 70px; }
      .goal p br {
        display: none; }
      .goal p span {
        display: block;
        font-size: 14px;
        font-size: 1.4rem; }
    .goal .goalGroup {
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between; }
      .goal .goalGroup img {
        position: relative;
        max-width: 200px; }
      .goal .goalGroup .flex5 {
        width: calc(33% - 20px);
        position: relative;
        max-width: 232px; }
      .goal .goalGroup .num4, .goal .goalGroup .num5 {
        width: calc(33% - 20px);
        max-width: initial; }
        .goal .goalGroup .num4 img, .goal .goalGroup .num5 img {
          margin: auto; }
      .goal .goalGroup .num4 {
        top: -75px;
        left: 75px; }
      .goal .goalGroup .num5 {
        left: -83px;
        top: -46px; } }

@media (max-width: 480px) {
  .goal {
    margin-bottom: 200px; }
    .goal p {
      max-width: initial;
      margin: auto;
      margin-top: 40px; }
      .goal p span {
        display: block;
        font-size: 14px;
        font-size: 1.4rem; }
    .goal .goalGroup img {
      position: relative;
      max-width: 200px; }
    .goal .goalGroup .flex5 {
      width: calc(33% - 5px);
      position: relative;
      max-width: initial; }
    .goal .goalGroup .num4, .goal .goalGroup .num5 {
      width: calc(33% - 5px);
      max-width: initial; }
      .goal .goalGroup .num4 img, .goal .goalGroup .num5 img {
        margin: auto; }
    .goal .goalGroup .num4 {
      top: -75px;
      left: 12vw; }
    .goal .goalGroup .num5 {
      left: -12vw;
      right: 0;
      top: -46px; } }

/*--------------------------------------------------- */
/* feature */
/*--------------------------------------------------- */
.feature {
  margin-top: -161px;
  position: relative;
  padding-top: 29vw;
  padding-bottom: 74px;
  width: 100%; }
  .feature:before {
    content: "";
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-image: url(img/bg.png);
    background-size: cover;
    vertical-align: middle;
    background-repeat: no-repeat;
    position: absolute;
    top: 0;
    z-index: -2;
    margin: auto; }
  .feature .headings h3 img {
    margin: auto;
    max-width: 895px; }
  .feature .upImage img {
    width: auto;
    position: absolute;
    margin: auto; }
  .feature .upImage .no1 {
    left: 80px;
    top: -154px; }
  .feature .upImage .no2 {
    top: -110px;
    right: 162px; }
  .feature .inner {
    padding-left: 50px;
    padding-right: 50px; }
  .feature .wrapper {
    background-color: #fff;
    padding: 76px 20px 0;
    border-radius: 10px;
    position: relative; }
    .feature .wrapper .flex {
      margin-top: 90px;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between; }
      @media (min-width: 1001px) {
        .feature .wrapper .flex.num1 .flexImage img {
          position: relative;
          left: -32px; } }
      .feature .wrapper .flex.num1 .flexText .image {
        position: relative;
        left: -8px; }
      @media (min-width: 1001px) {
        .feature .wrapper .flex.num2 .flexImage img {
          position: relative;
          top: -90px;
          left: 20px; } }
      @media (min-width: 769px) {
        .feature .wrapper .flex.num3 {
          margin-top: 50px; } }
      @media (max-width: 1000px) {
        .feature .wrapper .flex.num3 .groupImage {
          display: none; } }
      .feature .wrapper .flex.num3 .groupImage .no1 {
        top: -205px; }
      .feature .wrapper .flex.num3 .groupImage .no2 {
        top: -110px;
        right: 16px; }
      .feature .wrapper .flex.num4 .flexImage img {
        position: relative;
        top: -105px;
        left: 22px; }
      @media (max-width: 1000px) {
        .feature .wrapper .flex.num4 .flexImage img {
          top: -50px; } }
      @media (min-width: 769px) {
        .feature .wrapper .flex.num5 {
          padding-bottom: 84px;
          margin-top: 8px; } }
  @media (min-width: 769px) and (max-width: 1000px) {
    .feature .wrapper .flex.num5 {
      padding-bottom: 140px; } }
      .feature .wrapper .flex.num5 .flexImage img {
        position: relative;
        top: -34px; }
        @media (max-width: 1000px) {
          .feature .wrapper .flex.num5 .flexImage img {
            top: 20px; } }
      .feature .wrapper .flex.num5 .flexText {
        position: relative; }
      .feature .wrapper .flex.num5 .imageBottom {
        max-width: 103px;
        position: absolute;
        left: -140px;
        right: 0;
        bottom: 15px;
        margin: auto; }
        @media (max-width: 1000px) {
          .feature .wrapper .flex.num5 .imageBottom {
            position: relative;
            left: auto;
            bottom: auto;
            margin-top: 50px; } }
        @media (max-width: 768px) {
          .feature .wrapper .flex.num5 .imageBottom {
            display: none; } }
    .feature .wrapper .flexText {
      max-width: 340px;
      width: 100%; }
      .feature .wrapper .flexText .heading {
        padding-bottom: 16px;
        margin-bottom: 16px;
        border-bottom: 1px solid #000;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: baseline;
        -ms-flex-align: baseline;
        align-items: baseline; }
        .feature .wrapper .flexText .heading .image img {
          width: auto; }
        .feature .wrapper .flexText .heading h4 {
          font-size: 26px;
          font-size: 2.6rem;
          font-family: "shinr", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "Noto Serif JP", "MS P明朝", "MS PMincho", serif;
          font-display: swap;
          font-weight: 400;
          position: relative;
          left: -32px; }
      .feature .wrapper .flexText p {
        font-size: 16px;
        font-size: 1.6rem;
        line-height: 1.5em; }
    .feature .wrapper .flexImage {
      width: calc(100% - 390px);
      position: relative; }
      .feature .wrapper .flexImage .groupImage img {
        position: absolute;
        top: 0;
        margin: auto; }
      .feature .wrapper .flexImage .groupImage .no1 {
        top: -70px;
        left: 0; }
      .feature .wrapper .flexImage .groupImage .no2 {
        top: -70px;
        right: 0; }
      .feature .wrapper .flexImage img {
        width: auto; }
        @media (max-width: 1000px) {
          .feature .wrapper .flexImage img {
            max-width: 100%; } }
  .feature .foot img {
    position: relative;
    border-radius: 10px;
    margin-top: -60px;
    -o-object-fit: cover;
    object-fit: cover; }
  .feature .bgImageBubble {
    left: -350px;
    bottom: -84px;
    right: 0;
    max-width: 317px;
    /* style */ }

@media (max-width: 768px) {
  .feature {
    padding-top: 49vw; }
    .feature:before {
      background-image: url(img/bg-tab.png); }
    .feature .upImage .no1 {
      left: 80px;
      top: -12vw;
      max-width: 16vw; }
    .feature .upImage .no2 {
      top: -10vw;
      right: 60px;
      max-width: 14vw; }
    .feature .inner {
      padding-left: 30px;
      padding-right: 30px; }
    .feature .wrapper {
      background-color: #fff;
      padding: 76px 20px 140px;
      border-radius: 10px;
      position: relative; }
      .feature .wrapper .flex {
        margin-top: 90px;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between; }
        .feature .wrapper .flex.num1 .flexImage {
          margin-top: 0; }
          .feature .wrapper .flex.num1 .flexImage img {
            position: relative; }
        .feature .wrapper .flex.num1 .flexText .image {
          position: relative;
          left: 0; }
        .feature .wrapper .flex.num4 .flexImage img {
          position: relative;
          top: 0;
          left: 0px; }
      .feature .wrapper .flexText {
        width: 100%;
        max-width: initial;
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2; }
        .feature .wrapper .flexText .heading {
          padding-bottom: 16px;
          margin-bottom: 16px;
          border-bottom: 1px solid #000;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: baseline;
          -ms-flex-align: baseline;
          align-items: baseline; }
          .feature .wrapper .flexText .heading .image img {
            width: auto; }
          .feature .wrapper .flexText .heading h4 {
            font-size: 26px;
            font-size: 2.6rem;
            font-family: "shinr", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "Noto Serif JP", "MS P明朝", "MS PMincho", serif;
            font-display: swap;
            font-weight: 400;
            position: relative;
            left: -32px; }
        .feature .wrapper .flexText p {
          font-size: 16px;
          font-size: 1.6rem;
          line-height: 1.5em; }
      .feature .wrapper .flexImage {
        width: 100%;
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        margin-top: 70px;
        position: relative; }
        .feature .wrapper .flexImage img {
          width: auto;
          margin: auto; }
    .feature .foot img {
      position: relative;
      border-radius: 10px;
      margin-top: -60px;
      -o-object-fit: cover;
      object-fit: cover; }
    .feature .bgImageBubble {
      left: -350px;
      bottom: -84px;
      right: 0;
      max-width: 317px;
      /* style */ } }

@media (max-width: 480px) {
  .feature {
    padding-top: 49vw; }
    .feature:before {
      background-image: url(img/bg-mb.png); }
    .feature .inner {
      padding-left: 0px;
      padding-right: 0px;
      padding-top: 50px; }
    .feature .wrapper {
      padding: 76px 20px 100px; }
      .feature .wrapper .flex {
        margin-top: 0px;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between; }
        .feature .wrapper .flex.num1 .flexImage {
          margin-top: 0; }
          .feature .wrapper .flex.num1 .flexImage img {
            position: relative; }
        .feature .wrapper .flex.num1 .flexText .image {
          position: relative;
          left: 0; }
        .feature .wrapper .flex.num4 .flexImage img {
          position: relative;
          top: 0;
          left: 0px; }
      .feature .wrapper .flexText {
        width: 100%;
        max-width: initial;
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2; }
        .feature .wrapper .flexText .heading {
          padding-bottom: 16px;
          margin-bottom: 16px;
          border-bottom: 1px solid #000;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: baseline;
          -ms-flex-align: baseline;
          align-items: baseline; }
          .feature .wrapper .flexText .heading .image img {
            width: auto;
            max-width: 50px;
            width: 100%;
            position: relative;
            top: 4px; }
          .feature .wrapper .flexText .heading h4 {
            font-size: 22px;
            font-size: 2.2rem;
            left: -24px; }
        .feature .wrapper .flexText p {
          font-size: 16px;
          font-size: 1.6rem;
          line-height: 1.5em; }
      .feature .wrapper .flexImage {
        width: 100%;
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        margin-top: 90px;
        position: relative; }
        .feature .wrapper .flexImage img {
          width: auto; }
    .feature .foot img {
      position: relative;
      border-radius: 10px;
      margin-top: -60px;
      -o-object-fit: cover;
      object-fit: cover; }
    .feature .bgImageBubble {
      left: -150px;
      bottom: -44px;
      right: 0;
      max-width: 150px;
      /* style */ } }

/*--------------------------------------------------- */
/* overview */
/*--------------------------------------------------- */
.overview {
  margin-top: 250px;
  position: relative; }
  .overview dl {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-top: 80px; }
  .overview dt, .overview dd {
    padding: 26px;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.1em; }
  .overview dt {
    width: 200px;
    font-weight: 700;
    border-bottom: 1px solid #fec069; }
  .overview dd {
    border-bottom: 1px solid #aaa;
    width: calc(100% - 200px); }
    .overview dd p {
      line-height: 1.4em; }
  .overview .bgImageBubble {
    bottom: 58px;
    right: -230px;
    max-width: 459px; }

@media (max-width: 768px) {
  .overview {
    position: relative; }
    .overview dl {
      margin-top: 60px; }
    .overview dt, .overview dd {
      padding: 16px; }
    .overview dt {
      width: 150px; }
    .overview dd {
      width: calc(100% - 150px); } }

@media (max-width: 480px) {
  .overview {
    margin-top: 150px;
    position: relative; }
    .overview dl {
      margin-top: 60px; }
    .overview dt, .overview dd {
      padding: 16px; }
    .overview dt {
      width: 120px; }
    .overview dd {
      width: calc(100% - 120px); }
    .overview .bgImageBubble {
      bottom: 130px;
      right: -130px;
      max-width: 279px; } }

/*--------------------------------------------------- */
/* access */
/*--------------------------------------------------- */
.access {
  margin-top: 142px;
  margin-bottom: 150px; }
  .access .frameWrap {
    margin-top: 150px;
    position: relative; }
    .access .frameWrap .groupImage img {
      width: auto;
      position: absolute;
      z-index: -3;
      margin: auto; }
    .access .frameWrap .groupImage .no1 {
      top: -44px;
      left: 185px; }
    .access .frameWrap .groupImage .no2 {
      top: -79px;
      right: 88px; }
    .access .frameWrap iframe {
      width: 100%;
      height: 500px; }
  .access .bgImageBubble {
    left: -200px;
    top: -56px; }

@media (max-width: 768px) {
  .access {
    margin-top: 100px;
    margin-bottom: 100px; }
    .access .frameWrap {
      margin-top: 150px;
      position: relative; }
      .access .frameWrap iframe {
        width: 100%;
        height: 350px; } }

@media (max-width: 480px) {
  .access {
    margin-top: 100px;
    margin-bottom: 100px; }
    .access .frameWrap {
      margin-top: 150px;
      position: relative; }
      .access .frameWrap .groupImage .no1 {
        top: -30px;
        left: 20px;
        max-width: 40px; }
      .access .frameWrap .groupImage .no2 {
        top: -49px;
        max-width: 80px;
        right: 48px; }
      .access .frameWrap iframe {
        width: 100%;
        height: 350px; }
    .access .bgImageBubble {
      max-width: 210px;
      left: -90px;
      top: -76px; } }

/*--------------------------------------------------- */
/* */
/*--------------------------------------------------- */
/*--------------------------------------------------- */
/* */
/*--------------------------------------------------- */
