#loader {
  height: 100%;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background-color: #fff;
  z-index: 99999; }
  #loader .loader__in {
    max-height: 1100px;
    height: 100%;
    position: relative; }
    #loader .loader__in .loader__icon {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      width: 281px;
      opacity: 0; }
      @media (max-width: 480px) {
        #loader .loader__in .loader__icon {
          width: 36.0256410256vw; } }
      #loader .loader__in .loader__icon svg {
        overflow: visible; }
      #loader .loader__in .loader__icon g {
        -webkit-transform-origin: 50% 50%;
                transform-origin: 50% 50%; }
      #loader .loader__in .loader__icon .icon-l {
        -webkit-transform-origin: 50% 50%;
                transform-origin: 50% 50%;
        will-change: transform; }
      #loader .loader__in .loader__icon .icon-r {
        -webkit-transform-origin: 50% 50%;
                transform-origin: 50% 50%;
        will-change: transform; }

#header {
  position: absolute;
  top: 0;
  left: 0; }

.visual {
  width: 100%;
  height: 100svh;
  max-height: 1080px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  z-index: 10; }
  .visual::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: -webkit-gradient(linear, left bottom, left top, color-stop(10%, white), color-stop(50%, rgba(255, 255, 255, 0)), color-stop(75%, rgba(255, 255, 255, 0)), to(white));
    background: linear-gradient(0deg, white 10%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, white 100%);
    z-index: 2; }
    @media (max-width: 480px) {
      .visual::before {
        background: -webkit-gradient(linear, left bottom, left top, color-stop(1%, white), color-stop(30%, rgba(255, 255, 255, 0)), color-stop(70%, rgba(255, 255, 255, 0)), color-stop(89%, white));
        background: linear-gradient(0deg, white 1%, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0) 70%, white 89%); } }
  .visual .visual__ttl {
    z-index: 3; }
    .visual .visual__ttl .main {
      -webkit-font-feature-settings: "palt";
              font-feature-settings: "palt";
      font-size: 5.08rem;
      letter-spacing: 0.2em; }
      @media (max-width: 480px) {
        .visual .visual__ttl .main {
          font-size: 6.1538461538vw;
          text-align: center;
          margin-bottom: 2.5641025641vw; } }
    .visual .visual__ttl .sub {
      font-family: "Jost", sans-serif;
      font-weight: 300;
      color: #777777;
      font-size: 1.677rem;
      letter-spacing: 0.15em;
      line-height: 1.6;
      text-align: center; }
      @media (max-width: 480px) {
        .visual .visual__ttl .sub {
          font-size: 1.8717948718vw; } }
  .visual .visual__icon {
    width: 616px;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    z-index: 2;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 90%);
    -webkit-box-shadow: 0 0 15px #fff;
            box-shadow: 0 0 15px #fff; }
    @media (max-width: 480px) {
      .visual .visual__icon {
        width: 78.9743589744vw;
        top: 50%; } }
    .visual .visual__icon img {
      opacity: 0.08; }
  .visual .visual__bg {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    overflow: hidden;
    z-index: 1; }
    @media (max-width: 480px) {
      .visual .visual__bg {
        top: auto;
        bottom: 0; } }
    .visual .visual__bg .bg-l,
    .visual .visual__bg .bg-r {
      position: absolute;
      height: 100%;
      min-width: 60%;
      aspect-ratio: 1/1;
      z-index: -1; }
      @media (max-width: 480px) {
        .visual .visual__bg .bg-l,
        .visual .visual__bg .bg-r {
          height: 70%; } }
      .visual .visual__bg .bg-l img,
      .visual .visual__bg .bg-r img {
        height: 100%;
        -o-object-fit: cover;
           object-fit: cover; }
    .visual .visual__bg .bg-l {
      left: 60%;
      -webkit-transform: translateX(-100%);
              transform: translateX(-100%);
      top: 0; }
      @media (max-width: 480px) {
        .visual .visual__bg .bg-l {
          top: 15%;
          left: 23%;
          -webkit-transform: translateX(-50%);
                  transform: translateX(-50%); } }
    .visual .visual__bg .bg-r {
      right: 60%;
      -webkit-transform: translateX(100%);
              transform: translateX(100%);
      bottom: 0; }
      @media (max-width: 480px) {
        .visual .visual__bg .bg-r {
          bottom: 2%;
          right: 25%;
          -webkit-transform: translateX(50%);
                  transform: translateX(50%); } }

/*============================
#about
============================*/
.sec-top-about .about__set01 .about-box01 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 90px;
  position: relative; }
  @media (max-width: 480px) {
    .sec-top-about .about__set01 .about-box01 {
      display: block; } }
  .sec-top-about .about__set01 .about-box01 .about-box01__txt {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
    .sec-top-about .about__set01 .about-box01 .about-box01__txt .ttl {
      font-size: 3.2rem;
      letter-spacing: 0.08em;
      color: #557ebf;
      margin-bottom: 50px; }
      @media (max-width: 480px) {
        .sec-top-about .about__set01 .about-box01 .about-box01__txt .ttl {
          font-size: 5.5128205128vw;
          margin-bottom: 3.2051282051vw; } }
    .sec-top-about .about__set01 .about-box01 .about-box01__txt .msg {
      margin-bottom: 50px; }
      @media (max-width: 480px) {
        .sec-top-about .about__set01 .about-box01 .about-box01__txt .msg {
          margin-bottom: 14.1025641026vw;
          letter-spacing: 0.04em; } }
      .sec-top-about .about__set01 .about-box01 .about-box01__txt .msg p:not(:last-child) {
        margin-bottom: 2em; }
        @media (max-width: 480px) {
          .sec-top-about .about__set01 .about-box01 .about-box01__txt .msg p:not(:last-child) {
            margin-bottom: 1.5em; } }
  .sec-top-about .about__set01 .about-box01 .about-box01__img {
    width: 456px; }
    @media (max-width: 480px) {
      .sec-top-about .about__set01 .about-box01 .about-box01__img {
        width: 78.7179487179vw;
        opacity: 0.1;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); } }

/*============================
.loop-slide
============================*/
.loop-slide .loop-slide__in {
  padding: 90px 0 140px;
  background: url(../img/visual-bg01.png) no-repeat top center/cover; }
  @media (max-width: 480px) {
    .loop-slide .loop-slide__in {
      padding: 12.8205128205vw 0 19.2307692308vw; } }
  .loop-slide .loop-slide__in .loop-slide__img {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100vw;
    height: 339px;
    overflow: hidden; }
    @media (max-width: 480px) {
      .loop-slide .loop-slide__in .loop-slide__img {
        height: 48.9743589744vw; } }
    .loop-slide .loop-slide__in .loop-slide__img img {
      width: auto;
      height: 100%; }
      .loop-slide .loop-slide__in .loop-slide__img img:nth-child(1) {
        -webkit-animation: loop1 120s -80s linear infinite;
                animation: loop1 120s -80s linear infinite; }
      .loop-slide .loop-slide__in .loop-slide__img img:nth-child(2) {
        -webkit-animation: loop2 120s -40s linear infinite;
                animation: loop2 120s -40s linear infinite; }
      .loop-slide .loop-slide__in .loop-slide__img img:nth-child(3) {
        -webkit-animation: loop3 120s linear infinite;
                animation: loop3 120s linear infinite; }

@-webkit-keyframes loop1 {
  0% {
    -webkit-transform: translateX(201%);
            transform: translateX(201%); }
  100% {
    -webkit-transform: translateX(-101%);
            transform: translateX(-101%); } }

@keyframes loop1 {
  0% {
    -webkit-transform: translateX(201%);
            transform: translateX(201%); }
  100% {
    -webkit-transform: translateX(-101%);
            transform: translateX(-101%); } }
@-webkit-keyframes loop2 {
  0% {
    -webkit-transform: translateX(101%);
            transform: translateX(101%); }
  100% {
    -webkit-transform: translateX(-201%);
            transform: translateX(-201%); } }
@keyframes loop2 {
  0% {
    -webkit-transform: translateX(101%);
            transform: translateX(101%); }
  100% {
    -webkit-transform: translateX(-201%);
            transform: translateX(-201%); } }
@-webkit-keyframes loop3 {
  0% {
    -webkit-transform: translateX(1%);
            transform: translateX(1%); }
  100% {
    -webkit-transform: translateX(-301%);
            transform: translateX(-301%); } }
@keyframes loop3 {
  0% {
    -webkit-transform: translateX(1%);
            transform: translateX(1%); }
  100% {
    -webkit-transform: translateX(-301%);
            transform: translateX(-301%); } }
/*============================
#service
============================*/
.sec-top-service {
  height: 100svh;
  background: url(../img/bg01.jpg) no-repeat center/cover;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  @media (max-width: 480px) {
    .sec-top-service {
      height: auto;
      display: block;
      background-image: url(../img/bg01-sp.jpg);
      background-position: bottom; } }
  .sec-top-service .service__set01 {
    position: relative; }
    @media (max-width: 480px) {
      .sec-top-service .service__set01 {
        padding-top: 15.3846153846vw; } }
    .sec-top-service .service__set01 .service-box01 {
      display: grid; }
      @media (min-width: 480px) {
        .sec-top-service .service__set01 .service-box01 {
          grid-template-columns: 670px 631px;
          grid-template-rows: 1fr 1fr; } }
      @media (max-width: 480px) {
        .sec-top-service .service__set01 .service-box01 {
          grid-template-areas: "ttl" "order1" "order2" "order3" "order4" "order5" "order6"; }
          .sec-top-service .service__set01 .service-box01 .sp-order1 {
            grid-area: order1; }
          .sec-top-service .service__set01 .service-box01 .sp-order2 {
            grid-area: order2; }
          .sec-top-service .service__set01 .service-box01 .sp-order3 {
            grid-area: order3; }
          .sec-top-service .service__set01 .service-box01 .sp-order4 {
            grid-area: order4; }
          .sec-top-service .service__set01 .service-box01 .sp-order5 {
            grid-area: order5; }
          .sec-top-service .service__set01 .service-box01 .sp-order6 {
            grid-area: order6; } }
      @media (min-width: 480px) {
        .sec-top-service .service__set01 .service-box01 .service-box01__ttl {
          grid-row: 1/2;
          grid-column: 1/2; } }
      @media (max-width: 480px) {
        .sec-top-service .service__set01 .service-box01 .service-box01__ttl {
          grid-area: ttl; } }
      @media (min-width: 480px) {
        .sec-top-service .service__set01 .service-box01 .service-box01__txt {
          grid-row: 2/3;
          grid-column: 1/2; } }
      .sec-top-service .service__set01 .service-box01 .service-box01__txt .tag-list {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: 8px;
        margin-bottom: 21px; }
        @media (max-width: 480px) {
          .sec-top-service .service__set01 .service-box01 .service-box01__txt .tag-list {
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            gap: 2.0512820513vw;
            margin-bottom: 3.8461538462vw; } }
        .sec-top-service .service__set01 .service-box01 .service-box01__txt .tag-list li {
          color: #557ebf;
          border: 1px solid #557ebf;
          padding: 0 9px;
          font-size: 1.75rem; }
          @media (max-width: 480px) {
            .sec-top-service .service__set01 .service-box01 .service-box01__txt .tag-list li {
              padding: 0.5128205128vw 2.3076923077vw;
              font-size: 3.5897435897vw; } }
      .sec-top-service .service__set01 .service-box01 .service-box01__txt .ttl {
        color: #557ebf;
        font-size: 3.1rem;
        font-weight: bold;
        margin-bottom: 28px; }
        @media (max-width: 480px) {
          .sec-top-service .service__set01 .service-box01 .service-box01__txt .ttl {
            font-size: 5.7692307692vw;
            margin-bottom: 4.4871794872vw; } }
      .sec-top-service .service__set01 .service-box01 .service-box01__txt .msg {
        line-height: 2; }
      .sec-top-service .service__set01 .service-box01 .service-box01__img {
        width: 100%; }
        @media (min-width: 480px) {
          .sec-top-service .service__set01 .service-box01 .service-box01__img {
            grid-column: 2/3;
            grid-row: 1/3; } }

/*============================
#link
============================*/
#link.sec-top-link .link__set01 {
  padding-bottom: 100px; }
  @media (max-width: 480px) {
    #link.sec-top-link .link__set01 {
      padding: 14.1025641026vw 0 15.3846153846vw;
      margin-top: 0; } }
  #link.sec-top-link .link__set01 .link-box01 .link-box01-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 32px; }
    @media (max-width: 480px) {
      #link.sec-top-link .link__set01 .link-box01 .link-box01-list {
        gap: 5.7692307692vw;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column; } }
    #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item {
      width: 484px;
      border-radius: 20px;
      overflow: hidden; }
      @media (max-width: 480px) {
        #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item {
          width: 100%;
          border-radius: 2.5641025641vw; } }
      #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item.company .inner::after {
        background: url(../img/link-bg01.png) no-repeat center/cover; }
      #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item.contact .inner::after {
        background: url(../img/link-bg02.png) no-repeat center/cover; }
      #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner {
        width: 100%;
        height: 267px;
        line-height: 1.6;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: #fff;
        position: relative;
        z-index: 1; }
        @media (max-width: 480px) {
          #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner {
            height: 35.8974358974vw; } }
        #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner .en {
          font-family: "Lato", sans-serif;
          font-weight: 900;
          font-size: 5.5rem;
          letter-spacing: 0.08em; }
          @media (max-width: 480px) {
            #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner .en {
              font-size: 10.641025641vw; } }
        #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner .jp {
          font-weight: 500; }
          @media (max-width: 480px) {
            #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner .jp {
              font-size: 2.5641025641vw; } }
        #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner::after {
          content: "";
          width: 100%;
          height: 100%;
          position: absolute;
          top: 0;
          left: 0;
          z-index: -1;
          -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.39, 0.575, 0.565, 1), -webkit-filter 0.5s cubic-bezier(0.39, 0.575, 0.565, 1);
          transition: -webkit-transform 0.3s cubic-bezier(0.39, 0.575, 0.565, 1), -webkit-filter 0.5s cubic-bezier(0.39, 0.575, 0.565, 1);
          transition: transform 0.3s cubic-bezier(0.39, 0.575, 0.565, 1), filter 0.5s cubic-bezier(0.39, 0.575, 0.565, 1);
          transition: transform 0.3s cubic-bezier(0.39, 0.575, 0.565, 1), filter 0.5s cubic-bezier(0.39, 0.575, 0.565, 1), -webkit-transform 0.3s cubic-bezier(0.39, 0.575, 0.565, 1), -webkit-filter 0.5s cubic-bezier(0.39, 0.575, 0.565, 1); }
        #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner::before {
          content: "";
          width: 15px;
          aspect-ratio: 15/12;
          -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56.9 44.9'%3E%3Cline y1='22.5' x2='53.7' y2='22.5' fill='none' stroke='%23fff' stroke-miterlimit='10' stroke-width='5'/%3E%3Cpolyline points='36 43.3 53.7 22.5 36 1.6' fill='none' stroke='%23fff' stroke-miterlimit='10' stroke-width='5'/%3E%3C/svg%3E") no-repeat center/100%;
                  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56.9 44.9'%3E%3Cline y1='22.5' x2='53.7' y2='22.5' fill='none' stroke='%23fff' stroke-miterlimit='10' stroke-width='5'/%3E%3Cpolyline points='36 43.3 53.7 22.5 36 1.6' fill='none' stroke='%23fff' stroke-miterlimit='10' stroke-width='5'/%3E%3C/svg%3E") no-repeat center/100%;
          background-color: #fff;
          position: absolute;
          bottom: 20px;
          right: 20px;
          -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.39, 0.575, 0.565, 1);
          transition: -webkit-transform 0.4s cubic-bezier(0.39, 0.575, 0.565, 1);
          transition: transform 0.4s cubic-bezier(0.39, 0.575, 0.565, 1);
          transition: transform 0.4s cubic-bezier(0.39, 0.575, 0.565, 1), -webkit-transform 0.4s cubic-bezier(0.39, 0.575, 0.565, 1); }
          @media (max-width: 480px) {
            #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner::before {
              width: 3.2051282051vw;
              bottom: 3.8461538462vw;
              right: 3.8461538462vw; } }
        @media (min-width: 480px) {
          #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner:hover::after {
            content: "";
            -webkit-transform: scale(1.05);
                    transform: scale(1.05);
            -webkit-filter: saturate(2) blur(2px);
                    filter: saturate(2) blur(2px); }
          #link.sec-top-link .link__set01 .link-box01 .link-box01-list .link-box01-list__item .inner:hover::before {
            -webkit-transform: translateX(10px);
                    transform: translateX(10px); } }
