/*============================================================
	Top
============================================================*/
/*  mv
-------------------------------------------------*/
#top__mv {
  position: relative;
  padding: 0;
  height: calc(100vh - 7.5rem);
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
     -moz-box-orient: vertical;
     -moz-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
     -moz-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media only screen and (max-width: 767px) {
  #top__mv {
    height: calc(100vh - 5.3846153846rem);
  }
}
#top__mv .inner {
  position: absolute;
  height: 100%;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  padding-top: 3%;
}
@media only screen and (max-width: 767px) {
  #top__mv .inner {
    padding-top: 15%;
  }
}
#top__mv .inner h1, #top__mv .inner p {
  color: #003e66;
  text-shadow: 0 0 10px #fff;
  opacity: 0;
  -webkit-transition: all ease-in-out 1s;
  transition: all ease-in-out 1s;
  -webkit-transform: translateY(1.25rem);
          transform: translateY(1.25rem);
}
#top__mv .inner h1 strong, #top__mv .inner p strong {
  color: #f7931e;
}
#top__mv .inner h1.topAnim, #top__mv .inner p.topAnim {
  opacity: 1;
  -webkit-transform: translateY(0) scale(1);
          transform: translateY(0) scale(1);
}
#top__mv .inner h1 {
  font-size: 5.625rem;
  font-weight: 600;
}
@media only screen and (max-width: 767px) {
  #top__mv .inner h1 {
    font-size: 3.8461538462rem;
    text-align: center;
    line-height: 1.3;
  }
}
#top__mv .inner p {
  font-size: 1.875rem;
  font-weight: 500;
  margin-top: 0.5em;
}
@media only screen and (max-width: 767px) {
  #top__mv .inner p {
    font-size: 1.8461538462rem;
    text-align: center;
  }
}
#top__mv figure:last-of-type {
  width: 100%;
  opacity: 0;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  -webkit-transition: all ease-in-out 1s;
  transition: all ease-in-out 1s;
}
@media only screen and (max-width: 767px) {
  #top__mv figure:last-of-type {
    width: 74.6666666667vw;
  }
}
#top__mv figure:last-of-type.topAnim {
  opacity: 1;
  -webkit-backdrop-filter: blur(0);
          backdrop-filter: blur(0);
}
#top__mv .scroll {
  position: absolute;
  color: #003e66;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}
@media print, screen and (min-width: 768px) {
  #top__mv .scroll {
    font-size: 1rem;
    right: 1.875rem;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    padding-bottom: 7.5rem;
  }
}
@media only screen and (max-width: 767px) {
  #top__mv .scroll {
    font-size: 0.9230769231rem;
    right: 1.5384615385rem;
    bottom: 0;
    padding-bottom: 6.9230769231rem;
  }
}
#top__mv .scroll::before, #top__mv .scroll::after {
  position: absolute;
  content: "";
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  background: #003e66;
}
#top__mv .scroll::before {
  width: 1px;
  height: 6.25rem;
}
@media only screen and (max-width: 767px) {
  #top__mv .scroll::before {
    height: 5.7692307692rem;
  }
}
#top__mv .scroll::after {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  -webkit-animation: circlemovePC 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
          animation: circlemovePC 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
}
@media only screen and (max-width: 767px) {
  #top__mv .scroll::after {
    width: 0.5769230769rem;
    height: 0.5769230769rem;
    -webkit-animation: circlemoveSP 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
            animation: circlemoveSP 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
  }
}

@-webkit-keyframes circlemovePC {
  0% {
    bottom: 5.625rem;
  }
  100% {
    bottom: 0px;
  }
}

@keyframes circlemovePC {
  0% {
    bottom: 5.625rem;
  }
  100% {
    bottom: 0px;
  }
}
@-webkit-keyframes circlemoveSP {
  0% {
    bottom: 5.1923076923rem;
  }
  100% {
    bottom: 0px;
  }
}
@keyframes circlemoveSP {
  0% {
    bottom: 5.1923076923rem;
  }
  100% {
    bottom: 0px;
  }
}
@-webkit-keyframes cirlemovehide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
@keyframes cirlemovehide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
/*  about
-------------------------------------------------*/
#top__about {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  overflow-x: hidden;
}
@media only screen and (max-width: 767px) {
  #top__about {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
       -moz-box-orient: vertical;
       -moz-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
#top__about::before {
  position: absolute;
  content: "";
  background: url(../img/common/favicons/icon.svg) no-repeat right top/contain;
  width: 46.6666666667vw;
  height: 45.625rem;
  right: -5.3333333333vw;
  top: 9.375rem;
  opacity: 0.08;
  z-index: -1;
}
@media only screen and (max-width: 767px) {
  #top__about::before {
    display: none;
  }
}
#top__about .threeR__contents dl dt {
  font-size: 1.875rem;
  font-weight: 600;
  line-height: 1.8;
  margin-bottom: 3.125rem;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  #top__about .threeR__contents dl dt {
    font-size: 1.2307692308rem;
    margin-bottom: 1.9230769231rem;
  }
}
#top__about .threeR__contents dl dd {
  line-height: 1.8;
  text-align: justify;
  letter-spacing: 0.1em;
}
#top__about .threeR__contents .btn {
  width: 12.5rem;
  height: 3.75rem;
  line-height: 3.75rem;
  border-radius: 1.875rem;
  font-size: 1.125rem;
  background: #0071bc;
  padding-left: 1.875rem;
  margin: 3.125rem 0 0 auto;
}
@media only screen and (max-width: 767px) {
  #top__about .threeR__contents .btn {
    width: 15.3846153846rem;
    height: 4.6153846154rem;
    line-height: 4.6153846154rem;
    border-radius: 2.3076923077rem;
    font-size: 1.3846153846rem;
    padding-left: 2.3076923077rem;
    margin: 1.9230769231rem auto 0;
  }
}
#top__about .threeR__contents .btn::before {
  display: none;
}
#top__about .threeR__contents .btn span {
  right: 1.25rem;
  width: 0.9375rem;
}

/*  service
-------------------------------------------------*/
#top__service {
  position: relative;
}
#top__service::before, #top__service::after {
  position: absolute;
  content: "";
}
#top__service::before {
  width: 100%;
  height: calc(100% - 18.75rem);
  background: #0071bc;
  left: 0;
  top: 0;
  z-index: -2;
}
@media only screen and (max-width: 767px) {
  #top__service::before {
    height: calc(100% - 11.5384615385rem);
  }
}
#top__service::after {
  width: 40vw;
  height: calc(100% - 9.375rem);
  background: #003e66;
  right: 0;
  top: -4.6875rem;
  z-index: -1;
}
@media only screen and (max-width: 767px) {
  #top__service::after {
    width: 70%;
    top: -2.8846153846rem;
    height: calc(100% - 5.7692307692rem);
  }
}
#top__service .ttl {
  position: absolute;
  left: 0;
  top: 0;
  font-size: 5.625rem;
  font-weight: 300;
  color: rgba(0, 62, 102, 0.3);
  letter-spacing: 0;
}
@media only screen and (max-width: 767px) {
  #top__service .ttl {
    display: none;
  }
}
#top__service .inner h2 {
  text-align: right;
}
#top__service .inner ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.6875rem;
}
@media only screen and (max-width: 767px) {
  #top__service .inner ul {
    grid-template-columns: 100%;
    gap: 1.9230769231rem;
  }
}
#top__service .inner ul li a {
  display: block;
  position: relative;
}
#top__service .inner ul li a::before {
  position: absolute;
  content: "";
  width: 3.75rem;
  height: 3.75rem;
  border-radius: 50%;
  background: #0071bc;
  right: 1.875rem;
  bottom: 1.875rem;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
#top__service .inner ul li a p {
  position: absolute;
  left: 1.875rem;
  bottom: 1.875rem;
  color: #fff;
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1;
}
#top__service .inner ul li a p small {
  color: #fff;
  display: block;
  margin-top: 0.5em;
  font-size: 1.5rem;
  font-weight: 500;
}
#top__service .inner ul li a span {
  position: absolute;
  right: 3.28125rem;
  bottom: 3.28125rem;
  display: block;
  width: 0.9375rem;
  height: 0.9375rem;
  overflow: hidden;
}
#top__service .inner ul li a span::before, #top__service .inner ul li a span::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: url(../img/common/icon-arrow.svg) no-repeat center right/contain;
  right: 0;
  bottom: 0;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
}
#top__service .inner ul li a span::after {
  -webkit-transform: translate(-100%, 0);
          transform: translate(-100%, 0);
}
#top__service .inner ul li a:hover {
  opacity: 1;
}
#top__service .inner ul li a:hover img {
  opacity: 1;
}
#top__service .inner ul li a:hover::before {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
#top__service .inner ul li a:hover span::before {
  -webkit-animation-name: transformRightLeft2;
          animation-name: transformRightLeft2;
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}
#top__service .inner ul li a:hover span::after {
  -webkit-animation-name: transformLeftRight2;
          animation-name: transformLeftRight2;
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

@-webkit-keyframes transformLeftRight2 {
  0% {
    -webkit-transform: translate(-100%, 0);
            transform: translate(-100%, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}

@keyframes transformLeftRight2 {
  0% {
    -webkit-transform: translate(-100%, 0);
            transform: translate(-100%, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}
@-webkit-keyframes transformRightLeft2 {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
  100% {
    -webkit-transform: translate(100%, 0);
            transform: translate(100%, 0);
  }
}
@keyframes transformRightLeft2 {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
  100% {
    -webkit-transform: translate(100%, 0);
            transform: translate(100%, 0);
  }
}