@charset "UTF-8";
/* 
//////////////////////////////////////////////////////////////////////////////////////////
default settings
//////////////////////////////////////////////////////////////////////////////////////////
*/
#Contents .main-area {
  overflow: clip;
}

.bredlist.lp {
  margin: calc(0 * (100vw / 750)) auto 0;
}

#footer_emmi {
  margin-top: 0;
  padding-top: 0;
}
#em260721summer {
  --pc-width: 1400; /*PCデザイン幅*/
  --sp-width: 750; /*SPデザイン幅*/
  --pc-artboard-width: 460; /*SP共通デザイン幅*/
  --sp-artboard-width: 750; /*PC共通デザイン幅*/
  --formula: calc(
    var(--variable) * var(--ratio)
  ); /*SP,PC共通箇所の可変割合の計算式*/
  --formula_pc: calc(var(--variable) * 1); /*PCデザインの可変割合の計算式*/
}

@media (min-width: 1401px) {
  #em260721summer {
    --ratio: calc(
      var(--pc-artboard-width) / var(--sp-artboard-width)
    ); /* PCとSPのデザイン幅の比率 */
    --variable: 1px; /* 固定値（可変しない） */
  }
}

@media (min-width: 768px) and (max-width: 1400px) {
  #em260721summer {
    --ratio: calc(
      var(--pc-artboard-width) / var(--sp-artboard-width)
    ); /* PCとSPのデザイン幅の比率 */
    --variable: calc(100vw / var(--pc-width)); /* 画面幅に基づく可変値 */
  }
}

@media (max-width: 767px) {
  #em260721summer {
    --ratio: 1; /* 比率は1（変わらない） */
    --variable: calc(100vw / var(--sp-width)); /* 画面幅に基づく可変値 */
  }
}

#em260721summer img {
  display: block;
  width: 100%;
  height: auto;
}

#em260721summer h2,
#em260721summer h3,
#em260721summer p,
#em260721summer li {
  margin-block: calc((1em - 1lh) / 2);
}

#em260721summer .invisible-heading {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: clip;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
/* 
//////////////////////////////////////////////////////////////////////////////////////////
common settings
//////////////////////////////////////////////////////////////////////////////////////////
*/

#em260721summer a.link-disable:hover {
  opacity: 1;
}

#em260721summer [class*="__credit"] {
  font-family: var(--pragmatica);
  color: var(--black);
  font-size: calc(22 * var(--formula));
  line-height: 1.9090909091;
  letter-spacing: 0.05em;
  font-weight: var(--font-regular);
  display: flex;
  flex-wrap: wrap;
  row-gap: calc(16 * var(--formula));
  column-gap: calc(16 * var(--formula));
  justify-content: flex-start;
}

#em260721summer .credit_center {
  justify-content: center;
}

#em260721summer .color-white {
  color: var(--white);
}

#em260721summer [class*="__credit"] li {
  display: inline-block;
  white-space: nowrap;
}

#em260721summer .fade-in {
  opacity: 0;
  transition: opacity 1.5s cubic-bezier(0.39, 0.575, 0.565, 1);
}
#em260721summer .is-visible.fade-in {
  opacity: 1;
}

#em260721summer .slide-up {
  opacity: 0;
  transform: translateY(calc(60 * var(--formula)));
  transition: all 1s ease-out;
}
#em260721summer .is-visible.slide-up {
  opacity: 1;
  transform: translateY(0);
}

#em260721summer .slide-left {
  opacity: 0;
  transform: translateX(calc(-60 * var(--formula)));
  transition: all 1s ease-out;
}
#em260721summer .is-visible.slide-left {
  opacity: 1;
  transform: translateX(0);
}

#em260721summer .slide-right {
  opacity: 0;
  transform: translateX(calc(60 * var(--formula)));
  transition: all 1s ease-out;
}
#em260721summer .is-visible.slide-right {
  opacity: 1;
  transform: translateX(0);
}

#em260721summer .anime-delay {
  transition-delay: 0.5s;
}
/* 
//////////////////////////////////////////////////////////////////////////////////////////
layout settings
//////////////////////////////////////////////////////////////////////////////////////////
*/
#em260721summer {
  position: relative;
  display: grid;
  align-items: start;
  justify-items: center;
  width: 100%;
  height: 100%;
  --white: #ffffff;
  --black: #000000;
  --yu-gochic: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium",
    "Yu Gothic", "Open Sans", "メイリオ", sans-serif;
  --shuei-mincho: dnp-shuei-mincho-pr6n, sans-serif;
  --toppan-bunkyu: toppan-bunkyu-gothic-pr6n, serif;
  --utopia: utopia-std, serif;
  --pragmatica: pragmatica, sans-serif;
  --font-light: 300;
  --font-regular: 400;
  --font-bold: 600;
  font-feature-settings: "palt";
}
#em260721summer .bg-cont {
  position: sticky;
  grid-area: 1 / 1;
  top: 0;
  width: 100%;
  height: 100vh;
  background: var(--black);
  background-size: cover;
  z-index: 0;
}
#em260721summer .lp-contents-cont {
  position: relative;
  grid-area: 1 / 1;
  display: flex;
  justify-content: flex-start;
  align-items: start;
  
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding-left: calc(250 * var(--formula_pc)); 
  /* gap: calc(240 * var(--formula_pc));  */
  
  height: 100%;
  z-index: 1;
  box-sizing: border-box;
}
#em260721summer .mv-cont {
  position: sticky;
  top: 0;
  height: 100vh;
  width: calc(450 * var(--formula_pc));
  flex-shrink: 0;
}

#em260721summer .mv-01 {
  width: 100%;
  height: 100%;
  position: relative;
}
#em260721summer .mv-01 video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#em260721summer #video-sound-toggle {
  position: absolute;
  left: calc(20 * var(--formula));
  bottom: calc(20 * var(--formula));
  border: none;
  width: calc(30 * var(--formula_pc));
  height: calc(30 * var(--formula_pc));
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background 0.3s;
  padding: 0;
}

#em260721summer #sound-icon {
  width: 100%;
  height: auto;
}

#em260721summer .lp-main-cont {
  width: calc(460 * var(--formula_pc));
  flex-shrink: 0;
  background: var(--color-theme-background);
  overflow: clip;
}

#em260721summer .splide-dot .splide__pagination {
  bottom: unset;
  left: unset;
  right: calc(20 * var(--formula));
  top: calc(18 * var(--formula));
  padding: 0;
  gap: calc(14 * var(--formula));
}

#em260721summer .splide-dot.dot-left .splide__pagination {
  right: initial;
  left: calc(20 * var(--formula));
}

#em260721summer .splide-dot.dot-left-bottom .splide__pagination {
  right: initial;
  left: calc(20 * var(--formula));
  top: initial;
  bottom: calc(20 * var(--formula));
}

#em260721summer .splide-dot .splide__pagination li {
  margin-block: 0;
}
#em260721summer .splide-dot .splide__pagination__page {
  height: calc(10 * var(--formula));
  width: calc(10 * var(--formula));
  background: transparent; 
  border: solid calc(2 * var(--formula)) var(--black);
  margin: 0;
  opacity: 1;
  box-sizing: border-box;
}

#em260721summer .splide-dot .splide__pagination__page.is-active {
  background: var(--black);
  transform: scale(1);
  opacity: 1;
}

#em260721summer .splide-dot .splide__slide {
  width: calc(480 * var(--formula));
}

#em260721summer .section-settings {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* overflow: clip; */
  background-color: var(--color-theme-background);
  z-index: 2;
}

#em260721summer .section1 {
  padding: calc(194 * var(--formula)) 0 0 0;
  z-index: 2;
}
#em260721summer .sec_bg {
  width: calc(750 * var(--formula));
  position: absolute;
  top: calc(150 * var(--formula));
  right: calc(0 * var(--formula));
  z-index: -1;
  pointer-events: none;
}

#em260721summer [class*="animate-item"] {
  background: var(--color-theme-background);
}

#em260721summer .section1__credit {
  width: calc(480 * var(--formula));
  margin: calc(42 * var(--formula)) auto 0 calc(40 * var(--formula));
}

#em260721summer .section2 {
  margin: calc(164 * var(--formula)) 0 0 0;
  position: sticky;
  top: 0; /* 画面の一番上で固定 */
  z-index: 1;
}

[id*="-slide"] .splide__slide,
[id*="-slide"] .splide__slide a {
  background-color: var(--white) !important;
}

#sec02-slide {
  width: 100%;
}

#sec02-slide .splide__slide {
  width: calc(630 * var(--formula));
}

#sec02-slide .splide__slide a,
#sec02-slide .splide__slide img {
  display: block;
  width: 100%;
  height: auto;
}

#em260721summer .section2__credit {
  width: calc(480 * var(--formula));
  margin: calc(42 * var(--formula)) auto 0;
  row-gap: calc(20 * var(--formula));
}


#em260721summer .section3 {
  position: relative;
  margin-top: calc(162 * var(--formula)); 
  background-color: var(--black);
  padding-top: calc(90 * var(--formula));
  padding-bottom: calc(560 * var(--formula));
}

#em260721summer .sec_title {
  width: calc(572 * var(--formula));
  margin: 0 auto;
}

#em260721summer .sec_lead {
  font-family: var(--toppan-bunkyu);
  color: var(--white);
  font-size: calc(24 * var(--formula));
  line-height: 1.98;
  letter-spacing: 0.05em;
  text-align: center;
  font-weight: 600;
  margin-top: calc(50 * var(--formula));
}

#em260721summer .sec_lead .font-en {
  font-family: var(--pragmatica);
  font-size: calc(25 * var(--formula));
  font-weight: var(--font-regular);
}

#em260721summer .sec03_bg {
  top: calc(820 * var(--formula));
}

#em260721summer .section3__credit {
  width: calc(440 * var(--formula));
  margin-top: calc(30 * var(--formula));
  background-color: var(--black);
  padding: calc(18 * var(--formula));
  row-gap: calc(20 * var(--formula));
}

#em260721summer .section3__credit.credit3-2 {
  width: calc(520 * var(--formula));
  margin-left: calc(-124 * var(--formula));
  padding: calc(14 * var(--formula)) calc(14 * var(--formula)) calc(14 * var(--formula)) calc(10 * var(--formula));
  margin-top: calc(26 * var(--formula));
}

#em260721summer .section3__credit.credit3-3 {
  width: calc(615 * var(--formula));
  margin-top: calc(40 * var(--formula));
  padding: 0;
}

#sec03-slide {
  width: 100%;
  margin: calc(96 * var(--formula)) 0 0 0;
}

#sec03-slide .splide__slide {
  width: calc(555 * var(--formula));
}

#sec03-slide .splide__slide a,
#sec03-slide .splide__slide img {
  display: block;
  width: 100%;
  height: auto;
}

#em260721summer .section4 {
  height: calc(627 * var(--formula));
}
#em260721summer .sec04_inner {
  width: calc(570 * var(--formula));
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(-400 * var(--formula));
  z-index: 3;
}

#em260721summer .section4__credit {
  margin: calc(44 * var(--formula)) auto;
  width: calc(215 * var(--formula));
  row-gap: calc(20 * var(--formula));
}

#em260721summer .section5 {
  margin: 0 auto;
  padding-bottom: calc(100 * var(--formula));
}
#em260721summer .sec05_bg {
  top: calc(480 * var(--formula));
}

#sec04-slide {
  width: 100%;
  margin: 0 auto;
}

#sec04-slide .splide__slide {
  width: calc(540 * var(--formula));
}

#sec04-slide .splide__slide a,
#sec04-slide .splide__slide img {
  display: block;
  width: 100%;
  height: auto;
}
#em260721summer .section5__credit {
  width: calc(465 * var(--formula));
  background-color: var(--color-theme-background);
  padding: calc(22 * var(--formula)) calc(15 * var(--formula)) calc(8 * var(--formula)) calc(15 * var(--formula));
  margin: calc(20 * var(--formula)) auto;
  row-gap: calc(20 * var(--formula));
}
#em260721summer .section5-01__frame {
  width: calc(720 * var(--formula));
  margin: calc(74 * var(--formula)) auto 0;
}
#em260721summer .section5-02__frame {
  width: calc(675 * var(--formula));
  margin: calc(160 * var(--formula)) auto 0 calc(75 * var(--formula));
}
#em260721summer .section5__credit.credit5-2 {
  width: calc(575 * var(--formula));
  background-color: var(--color-theme-background);
  padding: calc(22 * var(--formula));
  margin: calc(18 * var(--formula)) auto 0 calc(52 * var(--formula));
}

#em260721summer .section1-01__frame {
  width: calc(690 * var(--formula));
  margin-left: calc(60 * var(--formula));
}

#em260721summer .section1-02__frame {
  width: calc(630 * var(--formula));
  margin: calc(80 * var(--formula)) auto 0 0;
}

#em260721summer .section2-01__frame {
  width: calc(555 * var(--formula));
  margin-left: calc(195 * var(--formula));
}
#em260721summer .section2-02__frame {
  width: calc(420 * var(--formula));
  position: absolute;
  top: calc(676 * var(--formula));
  left: 0;
  z-index: 3;
}

#em260721summer .section3-01__frame {
  width: calc(690 * var(--formula));
  margin: calc(182 * var(--formula)) auto 0 calc(60 * var(--formula));
}
#em260721summer .section3-02__frame {
  width: calc(720 * var(--formula));
  margin: calc(148 * var(--formula)) auto 0;
}

#em260721summer .section6 {
  padding-block: calc(39 * var(--formula)) calc(148 * var(--formula));
}
#em260721summer .section6__block {
  width: 100%;
  box-sizing: border-box;
}

#em260721summer .staff__txt {
  font-family: var(--pragmatica);
  color: var(--black);
  font-weight: var(--font-regular);
  font-size: calc(24 * var(--formula));
  line-height: 2;
  letter-spacing: 0.075em;
  text-align: center;
  margin: calc(125 * var(--formula)) auto 0;
}

#em260721summer .all_btn {
  width: calc(640 * var(--formula));
  margin: 0 auto;
}

/* 追従タイトルの基本スタイル */
.sticky-title {
  position: fixed;
  right: calc(10 * var(--formula)); /* 初期位置の右余白 */
  bottom: calc(-5 * var(--formula)); /* 初期位置の底余白 */
  z-index: 100;
  pointer-events: none;
  transition: bottom 0.3s ease, opacity 0.5s ease, transform 0.3s ease; 
  opacity: 1;
}

/* ─── スクロールされて少し浮き上がった位置 ─── */
.sticky-title.is-scrolled {
  bottom: calc(80 * var(--formula)); /* 後からPC側等で上書きできるように !important は外します */
}

/* ─── 停止時の制御（土台） ─── */
.sticky-title.is-stopped {
  /* スマホ・PCの各メディアクエリ内で position や animation を個別に完全上書きします */
}

/* 画像コンテナ */
.sticky-title__img {
  position: relative;
}
.sticky-title__img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity 0.3s ease;
}

/* ==========================================
   SP版（スマホ）用の表示・消去制御
   ========================================== */
@media (max-width: 767px) {
  .sticky-title__img {
    width: calc(242 * var(--formula));
    height: calc(241 * var(--formula));
  }

  .sticky-title__img .img-black { opacity: 1; }
  .sticky-title__img .img-white { opacity: 0; }
  .sticky-title.is-invert .img-black { opacity: 0; }
  .sticky-title.is-invert .img-white { opacity: 1; }

  /* ─── SP初期状態（スクロール前：動画の右下に配置） ─── */
  .sticky-title {
    position: absolute; 
    top: calc(1112 * var(--formula)); /* 初期配置位置 */
    right: calc(10 * var(--formula));
    bottom: auto; 
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1), bottom 0.4s ease-out, transform 0.3s ease;
  }

  /* 初期表示（フェードイン後） */
  .sticky-title.is-active {
    opacity: 1 !important;
    pointer-events: auto;
  }

  /* ─── ⭕️ スクロール開始後（10px以上スクロールされた時） ─── */
  .sticky-title.is-scrolled {
    position: fixed !important; 
    top: auto !important; /* 👈 【重要】初期位置の巨大な top 指定をここで確実に消去します */
    right: calc(10 * var(--formula)) !important;
    bottom: calc(80 * var(--formula)) !important; /* 指定の 80px 浮上位置に画面固定 */
  }

  /* ─── ⭕️ 一番下まで到達した時のフェードアウト ─── */
  .sticky-title.is-stopped {
    position: fixed !important; 
    top: auto !important; /* 👈 【重要】ここでも top 指定を確実に消去します */
    right: calc(10 * var(--formula)) !important;
    bottom: calc(80 * var(--formula)) !important; /* 消える時も 80px の高さを維持 */
    opacity: 0 !important; /* ふわっと透明にする */
    pointer-events: none;
    transition: opacity 0.5s ease !important; /* フェードアウトのアニメーション */
    transform: none !important; 
  }
}

/* ==========================================
   PC版用の表示ルール（常に白画像・その場に停止）
   ========================================== */
@media (min-width: 768px) {
  .sticky-title__img {
    width: calc(182 * (100vw / 1400));
    height: calc(180 * (100vw / 1400));
  }

  .sticky-title__img .img-black { opacity: 0 !important; }
  .sticky-title__img .img-white { opacity: 1 !important; }

  /* PC通常時 */
  .sticky-title {
    position: fixed;
    right: calc(49 * var(--formula)); 
    bottom: calc(30 * var(--formula)); 
    opacity: 1 !important;
  }

  /* 2. 10px以上スクロールして浮き上がった時（is-scrolled）のPC専用位置 */
  .sticky-title.is-scrolled {
    bottom: calc(30 * var(--formula)) !important;
  }

  /* PC停止時（PCは消えずに、その場に absolute でピタッと残します） */
  .sticky-title.is-stopped {
    position: absolute !important; 
    right: calc(49 * var(--formula)) !important; 
    bottom: auto !important; 
    transition: none !important; 
    transform: translateY(calc(270 * var(--formula))) !important; 
    opacity: 1 !important; 
  }

  #em260721summer .mv-01 {
    background-color: var(--black);
  }
}

@media (max-width: 767px) {
  #em260721summer .bg-cont {
    display: none;
  }
  #em260721summer .lp-contents-cont {
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    gap: 0;
    justify-content: flex-start;
  }
  #em260721summer .mv-cont {
    position: relative;
    height: unset;
    width: calc(750 * var(--formula));
    background: var(--color-theme-background);
  }
  #em260721summer .mv-01 {
    width: calc(702 * var(--formula));
    margin: 0 auto;
    padding-top: calc(35 * var(--formula));
  }
  #em260721summer .mv-01 video {
      height: auto;
      width: 100%;
  }
  #em260721summer #video-sound-toggle {
    width: calc(40 * var(--formula));
    height: calc(40 * var(--formula));
    padding: unset;
  }

  #em260721summer .lp-main-cont {
    width: calc(750 * var(--formula));
    background: var(--color-theme-background);
  }

  #footer_emmi {
    padding-top: 0;
  }
}

@media (min-width: 768px) {
  .bredlist.lp {
    margin: 0 auto !important;
    padding-bottom: 0.2rem !important;
  }

  .main-area::after {
    height: 0;
  }

  #em260721summer .section1 .sec_bg {
    top: calc(0 * var(--formula));
  }
  #em260721summer .section1 {
    margin: calc(0 * var(--formula)) 0 0 0;
    padding: calc(45 * var(--formula)) 0 0 0;
  }
  #em260721summer .section3 {
    margin-top: calc(163 * var(--formula));
  }

  #em260721summer .splide-dot .splide__pagination {
    top: calc(11 * var(--formula));
  }

  #em260721summer .section3__credit.credit3-2 {
    margin-left: calc(-121 * var(--formula));
  }
}