/*! Writen  by SCSS */
@keyframes move {
  0% {
    transform: translateY(30px); }
  100% {
    transform: translateY(-30px); } }
@keyframes move_min {
  0% {
    transform: translateY(20px); }
  100% {
    transform: translateY(-20px); } }
@keyframes circle {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(720deg); } }
body {
  background: #28333b; }

.sec_main .main_img {
  position: relative; }
  .sec_main .main_img::before {
    content: '';
    position: absolute;
    aspect-ratio: 1600/434;
    inset: 0;
    bottom: auto;
    background: url("../images/main_bg.png") center center/cover no-repeat;
    mix-blend-mode: multiply;
    z-index: -1; }
  .sec_main .main_img::after {
    content: "";
    position: absolute;
    display: block;
    pointer-events: none;
    left: 0;
    right: 0;
    bottom: 0;
    margin-bottom: 1.25%;
    pointer-events: none;
    border: 1px solid;
    border-radius: 100%;
    width: 375%;
    padding-top: 375%;
    line-height: 0;
    left: -131.43%;
    animation: move 40s linear infinite alternate-reverse; }
  .sec_main .main_img .cap {
    top: 110px; }

.sec01 {
  position: relative; }
  .sec01 .sec01_image_outer {
    position: relative; }
    .sec01 .sec01_image_outer::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      margin-top: 0.75%;
      pointer-events: none;
      border: 1px solid;
      border-radius: 100%;
      width: 375%;
      padding-top: 375%;
      line-height: 0;
      left: -143.56%;
      animation: move 20s linear infinite alternate; }
  .sec01 .img01 {
    position: relative; }
    .sec01 .img01 .cap {
      right: 5em;
      bottom: 5em; }
      @media screen and (max-width: 480px) {
        .sec01 .img01 .cap {
          right: 0.5em;
          bottom: 2em; } }
    .sec01 .img01::after {
      content: '';
      position: absolute;
      inset: 0;
      background: #fff;
      top: 50%;
      z-index: -1; }
    .sec01 .img01::before {
      content: '';
      position: absolute;
      display: block;
      z-index: 1;
      pointer-events: none;
      aspect-ratio: 1600/275;
      inset: 0;
      bottom: auto;
      background: url("../images/img01_bg.png") center center/cover no-repeat;
      mix-blend-mode: multiply;
      z-index: -2; }

.sec02 {
  background: #fff;
  color: #28333b;
  padding-top: 20px;
  padding-bottom: clamp(60px, 8.334vw, 100px); }
  @media screen and (max-width: 480px) {
    .sec02 {
      padding-top: 10px;
      padding-bottom: 50px; } }
  .sec02 .text_wrap {
    margin-bottom: clamp(40px, 7.084vw, 85px); }
    .sec02 .text_wrap .sec_ttl {
      margin-bottom: 1.5em; }
      @media screen and (max-width: 480px) {
        .sec02 .text_wrap .sec_ttl {
          margin-bottom: 1em; } }
  .sec02 .text_wrap02 {
    border-top: 1px solid #c1c0c0;
    border-bottom: 1px solid #c1c0c0;
    display: flex;
    justify-content: center;
    margin-inline: auto;
    font-size: clamp(20px, 3vw, 42px);
    gap: 1em;
    padding: clamp(10px, 1.667vw, 20px) 0 clamp(20px, 2.5vw, 30px);
    max-width: 980px;
    margin-bottom: clamp(50px, 8.334vw, 100px); }
    @media screen and (max-width: 480px) {
      .sec02 .text_wrap02 {
        flex-direction: column;
        align-items: center;
        font-size: 28px;
        row-gap: 15px; } }
    .sec02 .text_wrap02 .text {
      line-height: 1;
      color: #595757;
      letter-spacing: 0.05em; }
      .sec02 .text_wrap02 .text:first-child {
        border-right: 1px solid #c1c0c0;
        padding-right: 1em; }
        @media screen and (max-width: 480px) {
          .sec02 .text_wrap02 .text:first-child {
            border-right: none;
            padding-right: 0;
            border-bottom: 1px solid #c1c0c0;
            padding-bottom: 15px; } }
      .sec02 .text_wrap02 .text .small {
        font-size: 59%; }
      .sec02 .text_wrap02 .text .big {
        font-size: 150%;
        color: #002345; }
  .sec02 .img01 {
    margin-bottom: clamp(50px, 8.334vw, 100px);
    text-align: center; }
  .sec02 .img_wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap; }
    @media screen and (max-width: 480px) {
      .sec02 .img_wrap {
        flex-wrap: wrap;
        row-gap: 10px; } }
    .sec02 .img_wrap .img {
      width: 23.73%; }
      @media screen and (max-width: 480px) {
        .sec02 .img_wrap .img {
          width: 48%; } }
    .sec02 .img_wrap .cap_r {
      width: 100%; }
  .sec02 .caption_area {
    background: none; }

.sec03 {
  background: #fff;
  position: relative;
  z-index: 2; }
  .sec03 .sec03_cont {
    position: relative; }
    .sec03 .sec03_cont .sec03_cap {
      position: absolute;
      bottom: 0;
      right: 0;
      font-size: 12px;
      display: block;
      padding: 3px 5px;
      line-height: 1.5;
      color: #FFF;
      text-shadow: 0px 0px 0px rgba(0, 0, 0, 0.8), 0px 0px 1px rgba(0, 0, 0, 0.8), 0px 0px 2px rgba(0, 0, 0, 0.8), 0px 0px 3px rgba(0, 0, 0, 0.8), 0px 0px 4px rgba(0, 0, 0, 0.8), 0px 0px 5px rgba(0, 0, 0, 0.8);
      text-align: right; }
      @media screen and (max-width: 768px) {
        .sec03 .sec03_cont .sec03_cap {
          font-size: 10px; } }
  .sec03 .sec03_wrap {
    background-image: url("../images/img07.jpg");
    background-position: top center;
    background-repeat: no-repeat;
    padding-bottom: clamp(80px, 12.5vw, 150px);
    padding-top: clamp(80px, 25.834vw, 310px); }
    @media screen and (max-width: 480px) {
      .sec03 .sec03_wrap {
        background-image: url("../images/img07_sp.jpg");
        background-size: cover;
        padding-top: 80px; } }
    .sec03 .sec03_wrap .text_wrap {
      margin-bottom: clamp(40px, 10vw, 120px); }
      .sec03 .sec03_wrap .text_wrap .sec_ttl {
        margin-bottom: 1.5em; }
        @media screen and (max-width: 480px) {
          .sec03 .sec03_wrap .text_wrap .sec_ttl {
            margin-bottom: 1em; } }
    .sec03 .sec03_wrap .list {
      display: flex;
      flex-direction: column;
      row-gap: clamp(30px, 5.417vw, 65px); }
      .sec03 .sec03_wrap .list li {
        display: flex;
        justify-content: center;
        column-gap: 5.09%;
        font-size: clamp(16px, 2.084vw, 25px); }
        @media screen and (max-width: 480px) {
          .sec03 .sec03_wrap .list li {
            flex-direction: column; } }
        .sec03 .sec03_wrap .list li .name {
          width: 14.41%;
          aspect-ratio: 1;
          font-weight: bold;
          background: #4d6472;
          text-align: center;
          line-height: 1.6;
          display: grid;
          place-items: center; }
          @media screen and (max-width: 480px) {
            .sec03 .sec03_wrap .list li .name {
              width: 100%;
              aspect-ratio: auto;
              padding: 5px 0;
              margin-bottom: 15px; } }
        .sec03 .sec03_wrap .list li .text_in {
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          padding: clamp(10px, 1.25vw, 15px) 0; }
          @media screen and (max-width: 480px) {
            .sec03 .sec03_wrap .list li .text_in {
              padding: 0;
              align-items: center;
              row-gap: 10px; } }
          .sec03 .sec03_wrap .list li .text_in .text {
            line-height: 1; }
            .sec03 .sec03_wrap .list li .text_in .text .big {
              font-size: 200%; }
    .sec03 .sec03_wrap .cap_l {
      margin-top: 40px;
      max-width: 650px;
      margin-inline: auto; }

/*# sourceMappingURL=style.css.map */
