@charset "UTF-8";
/* ==========================================
   ■ 設定値（ここだけ触ればOK）
   ========================================== */
/* ==========================================
   ■ CSS変数として出力
   ========================================== */
html {
  scroll-behavior: smooth;
}

:root {
  --spSize: 750;
  --pcSize: 1400;
  --spSizeInPc: 460;
}

/* ==========================================
   ■ rem基準設定
   ========================================== */
/*
  ▼ PC幅以上
  1rem = 10px
*/
@media (min-width: 1401px) {
  html {
    font-size: 62.5%;
  }
}
/*
  ▼ PC幅以下
  1400px時に1rem=10px
*/
@media (max-width: 1400px) {
  html {
    font-size: calc(100vw / (140));
  }
}
@media (max-width: 768px) {
  :root {
    --spSizeInPc: 750;
  }
  html {
    font-size: calc(100vw / (75));
  }
  .f-right,
  .f-left {
    display: none;
  }
}
/* ==========================================
   ■ LP変換関数
   ========================================== */
/*
  lp(デザインpx)
  SP基準(px) → PC表示サイズへ変換
  計算式：
  px × (PC表示幅 / SP基準幅)
  さらに px→rem（1px=0.1rem）
*/
/* ==========================================
   LP変換関数
   ========================================== */
/*
  lp(デザインpx)
  ▼ 計算
  SP基準(px) → PCデザイン幅へ変換
  例:
  SP750基準で 750px の要素を
  PCでは 500px にしたい場合
  750 × (500 / 750) = 500px
  さらに px→rem
  1px = 0.1rem
*/
.l-container {
  width: 100%;
}

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

.f-container {
  opacity: 0;
}
.f-container.show {
  opacity: 1;
}
.f-container {
  scroll-margin-top: 80px;
  width: 100%;
  overflow: clip;
  display: flex;
  position: relative;
}
.f-container * {
  box-sizing: border-box;
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
}
.f-container {
  color: #000000;
  font-feature-settings: 'palt';
}
.f-container a.mask-img {
  position: relative;
}
.f-container a.mask-img::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 {
  opacity: 1;
}
.f-container a.mask-img:hover::after {
  background: rgb(255, 255, 255);
  opacity: 0.3;
}
@media (max-width: 768px) {
  .f-container a.mask-img:hover::after {
    opacity: 0;
  }
}
.f-container img,
.f-container video {
  width: 100%;
  height: auto;
  vertical-align: top;
  pointer-events: none;
}
.f-container svg {
  width: 100%;
  height: auto;
  display: block;
  pointer-events: none;
}
.f-container a {
  color: #000000;
  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 {
  width: 50%;
  height: calc(100vh - 80px);
  overflow: clip;
  position: sticky;
  top: 80px;
}
.f-container .f-left__box {
  width: 100%;
  height: 100%;
  position: relative;
}
.f-container .f-left__mv {
  width: 100%;
  height: 100%;
}
.f-container .f-left__mv a {
  width: 100%;
  height: 100%;
}
.f-container .f-left__mv img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: top center;
  object-position: top center;
}
.f-container .f-left__title {
  width: 100%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  pointer-events: none;
}
.f-container .f-main {
  width: 50%;
  min-height: 100vh;
}
@media (max-width: 768px) {
  .f-container .f-main {
    width: 100%;
  }
}
.f-container .f-main-wrap {
  width: calc(750 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  min-height: 100vh;
  margin: 0 auto;
  overflow: clip;
  background-color: #fff;
}
.f-container .fadeIn {
  opacity: 0;
  filter: blur(10px);
  transition:
    transform 0.8s ease,
    opacity 0.8s ease,
    filter 0.8s ease;
}
.f-container .fadeIn.showed {
  filter: blur(0px);
  opacity: 1;
}
.f-container .clipOuter img {
  transition: clip-path 0.8s cubic-bezier(0.37, 0, 0.63, 1) 0.6s;
}
.f-container .bottomClip img {
  clip-path: inset(0 0 100% 0);
}
.f-container .topClip img {
  clip-path: inset(100% 0 0 0);
}
.f-container .leftClip img {
  clip-path: inset(0 0 0 100%);
}
.f-container .rightClip img {
  clip-path: inset(0 100% 0 0);
}
.f-container .bottomClip.showed img,
.f-container .topClip.showed img,
.f-container .leftClip.showed img,
.f-container .rightClip.showed img {
  clip-path: inset(0);
}
.f-container .hero__box {
  display: none;
}
.f-container .hero__box {
  position: relative;
}
.f-container .hero__title {
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  pointer-events: none;
}
.f-container .hero__sub-title {
  text-align: center;
  font-family: 'source-han-serif-jp-variable', sans-serif;
  font-variation-settings: 'wght' 600;
  font-weight: 500;
  font-size: calc(34 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  line-height: calc(30 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  letter-spacing: 0.11em;
  padding-top: calc(118 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-bottom: calc(52 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .hero__text {
  text-align: center;
  font-family: 'source-han-serif-jp-variable', sans-serif;
  font-variation-settings: 'wght' 400;
  font-size: calc(24 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  line-height: calc(48 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  letter-spacing: 0.1em;
  margin-bottom: calc(160 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec__box {
  position: relative;
}
.f-container .sec__bg {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.f-container .sec__title {
  position: relative;
  z-index: 3;
  pointer-events: none;
}
.f-container .sec__img {
  position: relative;
  z-index: 2;
}
.f-container .sec__credit {
  position: relative;
  z-index: 2;
  padding-top: calc(52 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec__credit .credit {
  display: flex;
  flex-direction: column;
  row-gap: calc(21 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec__credit .item a {
  font-family: aktiv-grotesk-extended, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: calc(20 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  line-height: calc(16 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  letter-spacing: 0.04em;
  padding-top: calc(1 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  display: flex;
}
.f-container .sec__credit.dfr .credit {
  align-items: flex-end;
}
.f-container .sec01 {
  margin-bottom: calc(200 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec01 .box01 {
  margin-bottom: calc(60 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec01 .box01 .bg01 {
  width: calc(350 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  left: 0;
  top: calc(-167 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec01 .box01 .img01 {
  width: calc(710 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-left: auto;
}
.f-container .sec01 .box02 .bg02 {
  width: calc(400 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  right: 0;
  top: calc(669 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec01 .box02 .img02 {
  width: calc(640 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec01 .box02 .title01 {
  width: calc(113.982 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  position: absolute;
  top: 0;
  right: calc(32 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec01 .box02 .credit01 {
  padding-left: calc(40 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec02 {
  margin-bottom: calc(199 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec02 .box01 .title01 {
  width: calc(507.353 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-left: calc(20 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec02 .box01 .img01 {
  width: calc(620 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-top: calc(-1 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-left: calc(65 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-bottom: calc(40 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec02 .box01 .title02 {
  width: calc(404.736 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-left: calc(325 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-bottom: calc(60 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec02 .box02 .bg01 {
  width: calc(440 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  left: 0;
  top: calc(719 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec02 .box02 .credit02 {
  padding-right: calc(40 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec03 {
  margin-bottom: calc(200 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec03 .box01 {
  margin-bottom: calc(60 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec03 .box01 .title01 {
  width: calc(79.1895 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  position: absolute;
  left: calc(52 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  bottom: 0;
}
.f-container .sec03 .box01 .img01 {
  width: calc(620 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin-left: auto;
}
.f-container .sec03 .box02 {
  width: calc(710 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec03 .box02 .bg01 {
  width: calc(580 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  right: calc(-40 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  top: calc(681 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec04 {
  margin-bottom: calc(200 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec04 .box01 {
  margin-bottom: calc(60 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec04 .box02 .bg01 {
  width: calc(797 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  right: calc(110 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  top: calc(663 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec04 .box02 .title01 {
  width: calc(113.982 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  position: absolute;
  top: 0;
  left: calc(602 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec04 .box02 .img02 {
  width: calc(640 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .sec04 .box02 .credit04 {
  padding-left: calc(40 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .last__title {
  position: relative;
  z-index: 3;
  width: calc(400 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin: 0 auto calc(73 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .last__btn {
  width: calc(240 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  margin: 0 auto calc(91 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
.f-container .last__staff {
  text-align: center;
  font-family: aktiv-grotesk-extended, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: calc(20 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  line-height: calc(40 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
  letter-spacing: 0.05em;
  padding-bottom: calc(150 * var(--spSizeInPc) / var(--spSize) * 0.1rem);
}
