.loading {
  position: fixed;
  z-index: 9999;
  width: 100%;
  height: calc(var(--vh, 1vh) * 100);
  top: 0;
  left: 0;
  pointer-events: none;
}
.loading__bg-bars {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.loading__bg-bar {
  width: 25%;
  background: #0F3092;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.loading__bg-bar:nth-child(2) {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.loading__bg-bar:nth-child(3) {
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s;
}
.loading__bg-bar:nth-child(4) {
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}
.loading__percent {
  position: absolute;
  z-index: 999;
  bottom: -5px;
  right: 0;
  font-size: 100px;
  font-family: "Anton", sans-serif;
  color: #fff;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media screen and (min-width: 768px) {
  .loading__percent {
    bottom: -8px;
    font-size: 150px;
  }
}
.loading .is-percent-finish {
  opacity: 0;
}

.is-loading-finish .loading__bg-bar {
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
  -webkit-transform-origin: top;
          transform-origin: top;
}

.site-main__hero {
  margin-top: 50px;
  position: relative;
  overflow: hidden;
  z-index: 10;
  height: calc(var(--vh, 1vh) * 100 - 50px);
}
.site-main__hero .catch {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}
.site-main__hero .catch .catch__text {
  overflow: hidden;
}
.site-main__hero .catch .catch__text:nth-child(2) {
  margin: 5px 0;
}
.site-main__hero .catch .catch__text:nth-child(2) span {
  -webkit-transition-delay: 0.15s;
          transition-delay: 0.15s;
}
.site-main__hero .catch .catch__text:nth-child(3) span {
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
}
.site-main__hero .catch .catch__text span {
  display: inline-block;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.site-main__hero .catch .catch__text span img {
  height: clamp(4.375rem, 1.534rem + 12.12vw, 10.625rem);
}
.site-main__hero .scroll-down {
  position: absolute;
  z-index: 10;
  bottom: 0;
  right: 0;
  -webkit-animation: rotate-linear 20s linear infinite;
          animation: rotate-linear 20s linear infinite;
  -webkit-transform-origin: center;
          transform-origin: center;
}
.site-main__hero .scroll-down img {
  width: clamp(7.5rem, 4.091rem + 14.55vw, 15rem);
  height: auto;
}
@-webkit-keyframes rotate-linear {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes rotate-linear {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.site-main__hero .catch--lt {
  display: none;
  bottom: -100%;
}
@media screen and (min-width: 768px) {
  .site-main__hero .catch--lt {
    display: block;
    -webkit-transition: bottom 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    transition: bottom 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  }
}
.site-main .is-slideIn .catch .catch__text span {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.site-main .is-slideIn .catch--lt {
  bottom: 0;
}
.site-main__philosophy .bg-obj {
  margin-top: 75vh;
  position: relative;
  overflow: hidden;
  z-index: 10;
  width: 100%;
  height: 100vh;
}
.site-main__philosophy .content {
  position: relative;
  z-index: 15;
  color: #fff;
}
@media screen and (min-width: 1024px) {
  .site-main__philosophy .content .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.site-main__philosophy .content .container .sec-title {
  color: #fff;
}
@media screen and (min-width: 1024px) {
  .site-main__philosophy .content .container .sec-title {
    position: sticky;
    top: 130px;
    width: auto;
    height: 100%;
    margin-right: 75px;
    margin-bottom: 0;
  }
}
@media screen and (min-width: 1200px) {
  .site-main__philosophy .content .container .sec-title {
    margin-right: 100px;
  }
}
.site-main__philosophy .content .container .desc {
  font-size: clamp(0.938rem, 0.511rem + 1.82vw, 1.875rem);
}
@media screen and (min-width: 1024px) {
  .site-main__philosophy .content .container .desc {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}
.site-main__philosophy .content .container .desc p {
  line-height: 1.5em;
}
.site-main__philosophy .content .container .desc p:not(:first-child) {
  margin-top: 50px;
}
@media screen and (min-width: 1024px) {
  .site-main__philosophy .content .container .desc p:not(:first-child) {
    margin-top: 75px;
    letter-spacing: -1px;
  }
}
@media screen and (min-width: 1200px) {
  .site-main__philosophy .content .container .desc p:not(:first-child) {
    margin-top: 100px;
  }
}
.site-main__philosophy .bottom-text {
  position: relative;
  z-index: 10;
  aspect-ratio: 1000/126;
  width: 100%;
}
.site-main__service {
  margin-top: -6.2972292191vw;
  position: relative;
  z-index: 15;
  background: #f7f7f7;
  overflow: hidden;
}
.site-main__service .top-text {
  margin-top: -6.2972292191vw;
  aspect-ratio: 1000/126;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .site-main__service .container .service-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.site-main__service .container .service-list .item {
  position: relative;
  margin-top: 50px;
}
.site-main__service .container .service-list .item:before {
  content: "";
  display: block;
  position: absolute;
  z-index: 15;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  -webkit-transform-origin: right;
          transform-origin: right;
  background: #0F3092;
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
@media screen and (min-width: 768px) {
  .site-main__service .container .service-list .item {
    width: calc(33.3% - 16.6px);
    margin-right: 25px;
  }
}
@media screen and (min-width: 1024px) {
  .site-main__service .container .service-list .item {
    width: calc(33.3% - 33.3px);
    margin-right: 50px;
  }
}
.site-main__service .container .service-list .item:first-child {
  margin-top: 0;
}
@media screen and (min-width: 768px) {
  .site-main__service .container .service-list .item:nth-child(2n):before {
    -webkit-transition-delay: 0.2s;
            transition-delay: 0.2s;
  }
}
@media screen and (min-width: 768px) {
  .site-main__service .container .service-list .item:nth-child(3n) {
    margin-right: 0;
  }
}
@media screen and (min-width: 768px) {
  .site-main__service .container .service-list .item:nth-child(3n):before {
    -webkit-transition-delay: 0.4s;
            transition-delay: 0.4s;
  }
}
@media screen and (min-width: 768px) {
  .site-main__service .container .service-list .item:nth-child(-n+3) {
    margin-top: 0;
  }
}
@media screen and (min-width: 1024px) {
  .site-main__service .container .service-list .item a:hover .img img {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  .site-main__service .container .service-list .item a:hover .title .text span {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
  .site-main__service .container .service-list .item a:hover .btn .icon:before {
    -webkit-transform: scaleX(1) !important;
            transform: scaleX(1) !important;
    -webkit-transform-origin: left !important;
            transform-origin: left !important;
  }
}
.site-main__service .container .service-list .item a .img {
  position: relative;
  aspect-ratio: 3/2;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .site-main__service .container .service-list .item a .img {
    aspect-ratio: 4/3;
  }
}
.site-main__service .container .service-list .item a .img img {
  position: absolute;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.site-main__service .container .service-list .item a .column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.site-main__service .container .service-list .item a .column .title {
  background: #fff;
  padding: 15px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
@media screen and (min-width: 1024px) {
  .site-main__service .container .service-list .item a .column .title {
    padding: 25px;
  }
}
.site-main__service .container .service-list .item a .column .title .text {
  position: relative;
  overflow: hidden;
}
.site-main__service .container .service-list .item a .column .title .text span {
  display: inline-block;
  font-size: 15px;
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
@media screen and (min-width: 1200px) {
  .site-main__service .container .service-list .item a .column .title .text span {
    font-size: 20px;
  }
}
.site-main__service .container .service-list .item a .column .title .text span:after {
  content: attr(data-text);
  position: absolute;
  top: 100%;
  left: 0;
}
.site-main__service .container .service-list .item a .column .btn {
  position: relative;
  width: 50px;
}
@media screen and (min-width: 1024px) {
  .site-main__service .container .service-list .item a .column .btn {
    width: 70px;
  }
}
.site-main__service .container .service-list .item a .column .btn .icon {
  position: relative;
  background: #0F3092;
  width: 100%;
  height: 100%;
}
.site-main__service .container .service-list .item a .column .btn .icon:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #212121;
  -webkit-transform-origin: right;
          transform-origin: right;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.site-main__service .container .service-list .item a .column .btn .icon svg {
  position: absolute;
  z-index: 10;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 15px;
}
@media screen and (min-width: 1024px) {
  .site-main__service .container .service-list .item a .column .btn .icon svg {
    width: 18px;
  }
}
.site-main__service .container .service-list .item a .column .btn .icon svg path {
  fill: #fff;
}
.site-main__service .container .service-list .item.is-in:before {
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
}
.site-main__news {
  position: relative;
  z-index: 10;
  background: #fff;
}

.bg-square {
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) scale(0);
          transform: translate(-50%, -50%) scale(0);
  width: 150vw;
  height: 150vw;
  background: rgba(15, 48, 146, 0.9);
  z-index: 0;
  pointer-events: none;
}

.bg-movie {
  position: fixed;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
}
.bg-movie video {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}