@charset "UTF-8";
html {
  scroll-behavior: smooth;
  font-size: 0.7936508vw;
}

body {
  width: 100%;
}

.l-container {
  width: 100%;
}

.f-container {
  width: 100%;
  display: flex;
  position: relative;
  color: #10317d;
  font-feature-settings: "palt";
  text-align: center;
  /* SVG手書き風アニメーション 初期状態：線が見えない（後でJSで長さを設定） */
}
.f-container::before {
  display: inline-block;
  content: "";
  width: 100%;
  height: 15px;
  background-color: #fff;
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  transform: translateY(-100%);
}
.f-container.text-removed::before {
  display: none;
}
.f-container * {
  box-sizing: border-box;
  margin-block-start: 0;
  margin-block-end: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}
.f-container a.mask-img, .f-container .sec .bg-navy a, .f-container .sec .sec06 .slide01 .swiper-slide a, .f-container .sec06 .slide01 .sec .swiper-slide a {
  position: relative;
}
.f-container a.mask-img::after, .f-container .sec .bg-navy a::after, .f-container .sec .sec06 .slide01 .swiper-slide a::after, .f-container .sec06 .slide01 .sec .swiper-slide a::after {
  display: inline-block;
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  transition: all 0.3s ease-in-out;
  -webkit-mask-size: cover;
          mask-size: cover;
  will-change: opacity;
}
.f-container a.mask-img:hover, .f-container .sec .bg-navy a:hover, .f-container .sec .sec06 .slide01 .swiper-slide a:hover, .f-container .sec06 .slide01 .sec .swiper-slide a:hover {
  opacity: 1;
}
.f-container a.mask-img:hover::after, .f-container .sec .bg-navy a:hover::after, .f-container .sec .sec06 .slide01 .swiper-slide a:hover::after, .f-container .sec06 .slide01 .sec .swiper-slide a:hover::after {
  background: rgb(255, 255, 255);
  opacity: 0.3;
}
.f-container img,
.f-container video {
  width: 100%;
  height: auto;
  vertical-align: top;
  pointer-events: none;
  display: block;
}
.f-container svg {
  width: 100%;
  height: auto;
  display: block;
  pointer-events: none;
}
.f-container a {
  color: #002f7d;
  display: block;
  transition: all 0.3s ease-in-out;
  text-decoration: none;
  cursor: pointer;
}
.f-container a:hover {
  opacity: 0.7;
}
.f-container figure {
  display: block;
}
.f-container .f-left {
  position: relative;
  width: 50%;
  height: calc(100vh - 80px);
  position: sticky;
  top: 80px;
}
.f-container .f-left img {
  height: 100%;
}
.f-container .f-left__mv {
  height: calc(100vh - 80px);
}
.f-container .f-left__mv img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}
.f-container .f-left__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  height: calc((100vh - 80px) * 0.1199861111);
  top: calc((100vh - 80px) * 0.0578472222);
}
.f-container .f-left__box img {
  height: 100%;
  width: auto;
}
.f-container .f-left__title {
  height: calc((100vh - 80px) * 0.0390972222);
  margin-bottom: calc((100vh - 80px) * 0.0158333333);
}
.f-container .f-left__text {
  height: calc((100vh - 80px) * 0.0653888889);
}
@media screen and (max-width: 1260px) {
  .f-container .f-left {
    position: relative;
    width: 50%;
    height: calc(100vh - 80px);
    position: sticky;
    top: 80px;
    overflow: clip;
  }
  .f-container .f-left img {
    height: 100%;
  }
  .f-container .f-left__mv {
    height: calc(100vh - 80px);
  }
  .f-container .f-left__mv img {
    width: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center center;
       object-position: center center;
  }
  .f-container .f-left__box {
    width: 34.47rem;
    top: 4.165rem;
    height: -moz-fit-content;
    height: fit-content;
  }
  .f-container .f-left__box img {
    width: 100%;
    height: auto;
  }
  .f-container .f-left__title {
    margin: 0 auto 1.14rem;
    width: 18.68rem;
    height: -moz-fit-content;
    height: fit-content;
  }
  .f-container .f-left__text {
    width: 100%;
    height: -moz-fit-content;
    height: fit-content;
  }
}
.f-container .f-main {
  position: relative;
  max-width: 50%;
  width: 100%;
}
.f-container .f-main-wrap {
  background-color: #fff;
  max-width: 41rem;
  width: 100%;
  min-height: 100vh;
  margin: 0 auto;
  overflow: clip;
}
.f-container .fade {
  opacity: 0;
  transition: opacity 0.75s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: opacity;
}
.f-container .fade.showed {
  opacity: 1;
}
.f-container .fadeIn {
  filter: blur(10px);
  transform: scale(1.01);
  opacity: 0;
  transition: all 0.75s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: filter, transform, opacity;
}
.f-container .fadeIn.showed {
  filter: blur(0);
  transform: scale(1);
  opacity: 1;
}
.f-container .js-draw {
  fill: none;
  stroke: #002e7d;
  stroke-linecap: round;
  stroke-dasharray: 4000px;
  /* 描画開始時：showedが付与されたら線が現れて描かれる */
}
.f-container .js-draw.showed {
  animation: handwriting 4s linear forwards;
}
@keyframes handwriting {
  0% {
    stroke-dashoffset: 4000px;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.f-container .loop-slider {
  position: relative;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
}
.f-container .loop-slider__track {
  display: flex;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.f-container .loop-slider--reverse .loop-slider__track {
  animation-direction: reverse;
}
.f-container .loop-slider:hover .loop-slider__track {
  animation-play-state: paused;
}
.f-container .loop-each {
  display: flex;
  align-items: center;
}
.f-container .loop-each > * {
  flex-shrink: 0;
}
.f-container .loop-pic {
  width: 15.39rem;
}
@keyframes loop-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.f-container .hero__title {
  width: 32.22rem;
  margin: 0 auto 2.9rem;
}
.f-container .hero__title.cs {
  margin-top: 5.59rem;
}
.f-container .hero__movie {
  position: relative;
  width: 36.63rem;
  margin: 8.36rem auto 8.2rem;
}
.f-container .hero__movie video {
  filter: drop-shadow(0px 0px rgba(0, 0, 0, 0));
}
.f-container .hero__movie.cs {
  display: none;
}
.f-container .hero__movie-btn {
  font-family: "arial", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
  line-height: 1.2rem;
  line-height: 1;
  color: #fff;
  position: absolute;
  display: inline-block;
  padding: 0 1.09rem 1.48rem 0;
  right: 0;
  bottom: 0;
  cursor: pointer;
}
.f-container .hero__movie-btn::before {
  content: "ON";
}
.f-container .hero__movie-btn.on::before {
  content: "OFF ×";
}
.f-container .hero__text {
  position: relative;
  z-index: 2;
  font-size: 1.09rem;
  line-height: 2.68rem;
  letter-spacing: 0.1em;
}
.f-container .hero__text span {
  letter-spacing: 0.025em;
}
.f-container .hero__cs {
  width: 23.28rem;
  margin: 2.84rem auto 9.4rem;
}
.f-container .sec .bg-navy, .f-container .sec .sec06 .slide01 .swiper-slide, .f-container .sec06 .slide01 .sec .swiper-slide {
  background-color: #001e4a;
  padding: 0.55rem;
}
.f-container .sec .bg-navy a::after, .f-container .sec .sec06 .slide01 .swiper-slide a::after, .f-container .sec06 .slide01 .sec .swiper-slide a::after {
  opacity: 0;
  display: inline-block;
  content: "";
  width: 100%;
  height: 100%;
  background-color: #fff;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 1.64rem;
}
.f-container .sec__area {
  position: relative;
  background-color: #fff;
}
.f-container .sec__box {
  position: relative;
  overflow: visible;
}
.f-container .sec__box .sec__draw {
  position: absolute;
  top: 0;
}
.f-container .sec__pic {
  position: relative;
  z-index: 2;
  pointer-events: none;
}
.f-container .sec__draw {
  position: relative;
  z-index: 1;
}
.f-container .sec__img {
  position: relative;
}
.f-container .sec__sticky {
  position: sticky;
  z-index: 1;
}
.f-container .sec__sticky .el-sticky {
  position: sticky;
}
.f-container .sec__credit {
  padding: 0 5.47rem;
  position: relative;
  z-index: 2;
}
.f-container .sec__credit.abs {
  padding: 0;
  position: absolute;
}
.f-container .sec__credit .credit {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 0.77rem;
}
.f-container .sec__credit .item {
  position: relative;
  display: flex;
  font-family: "arial", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
  line-height: 1.09rem;
  letter-spacing: 0.0025em;
}
.f-container .sec__credit .item a {
  display: flex;
}
.f-container .sec__credit .item::after {
  content: "/";
  display: inline-block;
  padding: 0 0.38rem 0 0.38rem;
  transform: translateY(0.11rem);
}
.f-container .sec__credit .item:last-of-type::after {
  display: none;
}
.f-container .sec__text {
  pointer-events: none;
}
.f-container .sec__slide .swiper[data-swiper-type=loop] .swiper-wrapper {
  transition-timing-function: linear;
}
.f-container .sec__slide .swiper[data-swiper-type=slide] {
  overflow: clip;
}
.f-container .sec__slide .swiper[data-swiper-type=loop] {
  overflow: clip;
}
.f-container .sec__slide .swiper-pagination {
  right: 1.65rem;
  bottom: 1.44rem;
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.f-container .sec__slide .swiper-pagination-bullet {
  width: 0.64rem;
  height: 0.64rem;
  border-radius: 50%;
  margin: 0;
  border: max(0.06rem, 1px) solid #002f7d;
  opacity: 0.28;
}
.f-container .sec__slide .swiper-pagination-bullet-active {
  background-color: #002f7d;
  opacity: 1;
}
.f-container .sec__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -moz-column-gap: 0.53rem;
       column-gap: 0.53rem;
  row-gap: 0.61rem;
}
.f-container .sec__list .sec__img {
  opacity: 0;
  transition: all 0.75s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transform: scale(1.01);
  filter: blur(10px);
  will-change: filter, transform, opacity;
}
.f-container .sec__list.showed .sec__img {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}
.f-container .sec__pin {
  will-change: transform;
  position: relative;
  overflow: hidden;
}
.f-container .sec .after-pin {
  width: 100%;
  position: relative;
}
.f-container .sec .after-pin.on {
  position: fixed;
}
.f-container .sec01 .box01 {
  margin-top: 8.75rem;
}
.f-container .sec01 .box01.cs {
  margin-top: 4.37rem;
}
.f-container .sec01 .draw01 {
  width: 100%;
  top: -5.3rem;
  left: 0;
}
.f-container .sec01 .draw01 .cls-1 {
  clip-path: url(#clippath-1);
}
.f-container .sec01 .draw01 .cls-2 {
  stroke: #002e7d;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7px;
}
.f-container .sec01 .draw01 .cls-2,
.f-container .sec01 .draw01 .cls-3 {
  fill: none;
}
.f-container .sec01 .draw01 .cls-4 {
  clip-path: url(#clippath);
}
.f-container .sec01 .pic01 {
  width: 28.56rem;
  margin-left: 4.25rem;
}
.f-container .sec01 .pic-text01 {
  width: 14.02rem;
  margin: 1.91rem auto 9.59rem;
}
.f-container .sec01 .img01 {
  width: 32.25rem;
  margin: 0 auto 6.89rem;
}
.f-container .sec01 .pic02 {
  width: 28.88rem;
  margin-left: 7.2rem;
  margin-bottom: 6.97rem;
}
.f-container .sec01 .img02 {
  margin-bottom: 1.93rem;
}
.f-container .sec01 .credit01 {
  margin-bottom: 1.78rem;
}
.f-container .sec02 .box01 {
  padding-top: 29.46rem;
  margin-bottom: 4.07rem;
}
.f-container .sec02 .draw02 {
  width: 25.51rem;
  right: 0;
}
.f-container .sec02 .draw02 .cls-1 {
  fill: none;
  stroke: #002f7d;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6px;
}
.f-container .sec02 .img01 {
  width: 22.8rem;
  margin-left: 15.82rem;
}
.f-container .sec02 .text01 {
  width: 15rem;
  position: absolute;
  top: 15.53rem;
  left: 2.46rem;
}
.f-container .sec02 .credit01 {
  width: 14.49rem;
  left: -0.38rem;
  bottom: 0.11rem;
}
.f-container .sec03 {
  position: relative;
}
.f-container .sec03 .bg01 {
  width: 100%;
  height: calc(100vh - 80px);
  position: sticky;
  top: 80px;
}
.f-container .sec03 .bg01::before {
  display: inline-block;
  content: "";
  width: 100%;
  height: 100%;
  background: repeat-y url(../img/sec03_bg01.png) top -1rem left 0/100% auto;
  position: absolute;
  top: 0px;
  left: 0;
}
.f-container .sec03 .bg01::after {
  display: inline-block;
  content: "";
  width: 100%;
  height: 100%;
  background: repeat-y url(../img/sec03_bg02.png) top -0.82rem left 0/100% auto;
  position: absolute;
  top: 0px;
  left: 0;
}
.f-container .sec03 .cts01 {
  width: 100%;
  padding-top: 13.01rem;
  padding-bottom: 23.94rem;
  position: sticky;
  top: 80px;
  left: 0;
  z-index: 2;
  margin-top: calc(-100vh + 80px);
}
.f-container .sec03 .slide01 {
  width: 28.59rem;
  margin: 0 auto 14.27rem;
  padding: 1.37rem;
  background-color: #fff;
}
.f-container .sec03 .slide01 .swiper {
  width: 25.86rem;
  overflow: clip;
}
.f-container .sec03 .sec__movie {
  width: 28.59rem;
  margin: 0 auto 14.27rem;
}
.f-container .sec03 .credit01 {
  background-color: #fff;
  padding-top: 1.91rem;
  padding-bottom: 1.97rem;
  margin-bottom: 12.46rem;
}
.f-container .sec03 .img03 {
  width: 28.59rem;
  margin: 0 auto 14.27rem;
  padding: 1.37rem;
  background-color: #fff;
}
.f-container .sec.sp .sec03 .bg01 {
  height: calc(100vh - 52px);
  top: 52px;
}
.f-container .sec.sp .sec03 .cts01 {
  top: 52px;
  margin-top: calc(-100vh + 52px);
}
.f-container .sec04 .slide01 {
  position: relative;
  z-index: 2;
  margin-top: -22.69rem;
}
.f-container .sec04 .credit01 {
  margin: 1.97rem 0 7.99rem;
}
.f-container .sec04 .sticky01 {
  top: 80px;
}
.f-container .sec04 .img02 {
  width: 21.87rem;
  padding: 2.73rem 0 0;
  margin: 0 auto 10.32rem;
}
.f-container .sec04 .cts01 {
  background-color: #fff;
  position: relative;
  z-index: 2;
  border-radius: 21.87rem 21.87rem 0 0;
}
.f-container .sec04 .credit02 {
  padding-top: 2.02rem;
  padding-bottom: 1.82rem;
}
.f-container .sec.sp .sec04 .sticky01 {
  top: 52px;
}
.f-container .sec05 {
  z-index: 2;
}
.f-container .sec05 .img01 {
  margin-bottom: 12.1rem;
}
.f-container .sec05 .img02 {
  width: 40.45rem;
  margin: 0 auto;
}
.f-container .sec05 .credit01 {
  padding: 1.26rem 2.73rem 9.4rem;
}
.f-container .sec05 .box01 {
  background-color: #001e4a;
  margin-bottom: 12.14rem;
}
.f-container .sec05 .box01.showed .loop-slider__track {
  margin-left: -12.85rem;
  -moz-column-gap: 1.4rem;
       column-gap: 1.4rem;
  animation: loop-scroll 15s linear infinite;
}
.f-container .sec05 .box01 .loop-slider01 {
  padding-top: 1.24rem;
  padding-bottom: 4.92rem;
}
.f-container .sec05 .box01 .loop-slider02 {
  padding-top: 4.49rem;
  padding-bottom: 1.53rem;
}
.f-container .sec05 .img03 {
  width: 32.47rem;
  margin-left: 4.24rem;
}
.f-container .sec05 .img03 a::after {
  width: 31.47rem;
  height: 36.69rem;
  border-radius: 50%;
  position: absolute;
  top: 49%;
  left: 50.5%;
  transform: translate(-50%, -50%) scale(0.999);
}
.f-container .sec06 {
  margin-bottom: 9.71rem;
}
.f-container .sec06 .slide01 {
  width: 32.25rem;
  margin: 0 auto;
}
.f-container .sec06 .slide01 .swiper-slide {
  width: 32.25rem;
}
.f-container .sec06 .credit01 {
  padding-top: 2.19rem;
  margin-bottom: 10.5rem;
}
.f-container .sec07 .img01 {
  width: 28.93rem;
  margin: 0 auto;
}
.f-container .sec07 .pic01 {
  width: 17.39rem;
  margin-top: -2.92rem;
  margin-left: 12.57rem;
  margin-bottom: 8.69rem;
}
.f-container .sec07 .credit01 {
  margin-bottom: 2.3rem;
}
.f-container .sec07 .pic02 {
  width: 40.43rem;
  position: absolute;
  top: 0.4rem;
  left: 1.65rem;
}
.f-container .sec07 .img02 {
  margin-bottom: 16.78rem;
}
.f-container .sec07 .text01 {
  width: 34.65rem;
  position: absolute;
  top: -4.87rem;
  left: 2.88rem;
}
.f-container .sec07 .slide01 {
  position: relative;
  z-index: 2;
}
.f-container .sec07 .slide01 .swiper-slide {
  width: 26.79rem;
  padding: 0 0.38rem;
  margin-bottom: 18.52rem;
}
.f-container .sec07 .pic03 {
  width: 30.34rem;
  position: absolute;
  z-index: 3;
  left: 7.19rem;
  top: 30.04rem;
}
.f-container .sec08 {
  margin-bottom: 2.19rem;
}
.f-container .sec08 .slide01 {
  width: 35.26rem;
  margin: 0 auto;
}
.f-container .sec08 .credit01 {
  padding: 2.08rem 2.73rem 13.75rem;
}
.f-container .sec08 .box01 {
  height: 62.56rem;
  margin-bottom: 14.1rem;
  overflow: hidden;
}
.f-container .sec08 .list01 {
  width: 55.41rem;
  margin-top: -11.18rem;
  margin-left: -3.88rem;
}
.f-container .sec08 .list01 .sec__img.od01 {
  transition-delay: 0.1s;
}
.f-container .sec08 .list01 .sec__img.od02 {
  transition-delay: 0.2s;
}
.f-container .sec08 .list01 .sec__img.od03 {
  transition-delay: 0.3s;
}
.f-container .sec08 .list01 .sec__img.od04 {
  transition-delay: 0.4s;
}
.f-container .sec08 .list01 .sec__img.od05 {
  transition-delay: 0.5s;
}
.f-container .sec08 .list01 .sec__img.od06 {
  transition-delay: 0.6s;
}
.f-container .sec08 .list01 .sec__img.od07 {
  transition-delay: 0.7s;
}
.f-container .sec08 .list01 .sec__img.od08 {
  transition-delay: 0.8s;
}
.f-container .sec08 .list01 .sec__img.od09 {
  transition-delay: 0.9s;
}
.f-container .sec08 .img03 {
  width: 21.98rem;
  margin-left: 9.33rem;
  margin-bottom: 9.84rem;
}
.f-container .sec08 .draw03 .cls-1 {
  stroke: #002e7d;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8px;
}
.f-container .sec08 .draw03 .cls-1,
.f-container .sec08 .draw03 .cls-2 {
  fill: none;
}
.f-container .sec08 .draw03 .cls-3 {
  clip-path: url(#clippath);
}
.f-container .all {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.f-container .all__pic {
  width: 11.52rem;
  margin-bottom: 2.9rem;
  margin-right: -0.55rem;
}
.f-container .all__btn {
  width: 21.39rem;
  margin-bottom: 1.77rem;
}
.f-container .all__copy {
  font-family: "arial", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #e32112;
  font-size: 1.2rem;
  line-height: 1.15rem;
  letter-spacing: 0.025em;
  margin-top: 0;
  margin-bottom: 7.54rem;
}

.pc-footer {
  margin-top: 0;
}

.l-footer {
  padding-top: 0;
}