/* ============================================================
   WATCH THE RIDE 
============================================================ */



.header_nav{
    display: flex;
    justify-content: flex-end;
    padding: 10px 30px;}


  .hamburger {
    height: 40px;
  }


/* ロードロゴ */
#splash-logo img {
  width: 120px;
  height: auto;
}

/* フェードアウト後 */
#splash.fade-out {
  opacity: 0;
  pointer-events: none;
}

/* -----------------------------------
   TOP ムービー（白フラッシュ回避＋全画面）
----------------------------------- */

.slider_top {
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.slider_top video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: #000;
}


/* ===== SP（縦動画） ===== */
@media screen and (max-width: 768px) {
  .slider_top {
    height: 100svh;
  }
}



/* 念のため個別IDにも指定 */
#topVideo {
  background-color: #000;
}

/* -----------------------------------
   MAIN / SECTION 基本
----------------------------------- */

main#front {
  position: relative;
  width: 100%;
  overflow: hidden;
}

main#front section {
  position: relative; /* デコ背景の基準 */
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

/* ============================================================
   TITLE SECTIONS（movie / manga / illustration / music）
============================================================ */

/* 共通タイトルブロック */
.home_title {
  position: relative;
  width: 100%;
  height: 400px;
  min-height: 400px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  overflow: hidden;
}

/* タイトル内のすべての子要素は前面に */
.home_title > * {
  position: relative;
  z-index: 2;
}

/* テキスト説明 */
.m_txt,
.ma_txt,
.il_txt,
.mu_txt {
  color: #000;
  position: relative;
  z-index: 2;
    line-height: 1.9;
    width: 82%;
}
.m_txt br,
.ma_txt br,
.il_txt br,
.mu_txt br{
  content: "";
  display: block;
  margin-bottom: 0.6em;
}
@media screen and (max-width: 768px){
  .m_txt,
  .ma_txt,
  .il_txt,
  .mu_txt{
    line-height: 2.0;
    letter-spacing: 0.03em;
  }
}
/* 文章ごとの高さバランス（旧デザイン踏襲） */
.m_txt {
  height: 110px;
  margin-bottom: 0;
  text-align: center;
}

.ma_txt {
  height: 40px;

  text-align: center;
}

.il_txt {
  height: 100px;
  top: 4%;
  text-align: center;
}

.mu_txt {
  top: -5%;
  text-align: center;
}

/* タイトル画像サイズ（PC基準） */
.movie_title,
.manga_title,
.illustration_title,
.work_in_music_title {
  position: relative;
  z-index: 2;
  mix-blend-mode: multiply;
}

.movie_title {
  width: 420px;
  margin-top: 0px;
}

.manga_title {
  width: 360px;
  height: 140px;
}

.illustration_title {
  width: 500px;
  top: 0%;
}

.work_in_music_title {
  width: 700px;
  height: 150px;
  bottom: 20px;
}

/* タイトル画像内の <img> は親にフィット */
.movie_title img,
.manga_title img,
.illustration_title img,
.work_in_music_title img {
  display: block;
  width: 100%;
  height: auto;
}

/* ============================================================
   背景デコレーション（ピンク・黄・青・紫）
============================================================ */

/* 配置用コンテナ：右寄せ／左寄せ */
.migi,
.migi2,
.hidari {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 400px;
  overflow: hidden;
  display: flex;
  z-index: 0;
  pointer-events: none;
  mix-blend-mode: multiply;
}

.migi {
  justify-content: flex-end;
}

.migi2 {
  justify-content: flex-end;
}

.hidari {
  justify-content: flex-start;
}

/* フェードイン用（JSで .inc_up を付与） */
.inc_p {
  opacity: 0;
  transition: opacity 1.3s ease, transform 1.3s ease;
}



/* ---- 個別背景 ---- */
.pink,
.yellow,
.blue,
.blue2,
.purple,
.purple2,
.green {
  mix-blend-mode: multiply;
  position: absolute;
  display: inline-block;
  max-width: 120%;
  height: 400px;
  min-height: 400px;
    /*filter: blur(2px);ぼかす指示*/
  opacity: 0.8;
  transition: opacity 1.5s ease, transform 1.5s ease;
}

/* ピンク（水彩） */
.pink {
  width: clamp(230px, 34vw, 662px);
  top: clamp(-30px, 2vw, 0px);
  right: -5vw;
  z-index: 0;
}

.pink img {

    width: auto;
    height: 100%;
    min-height: auto;
    margin-left: 0%;
    object-fit: none;

}

/* 黄色 */
.yellow {
  width: clamp(400px, 50vw, 1020px);
  top: clamp(-70px, 1vw, 15px);
  left: clamp(0px, 0vw, 80px);
}

/* 青系 */
.blue {
  width: clamp(700px, 35vw, 600px);
}

.blue2 {
  width: clamp(150px, 15vw, 300px);
  top: 0;
  right: clamp(5%, 10vw, 100px);
}

/* 紫系 */
.purple {
  width: clamp(1400px, 20vw, 400px);
  right: 0;
  display: flex;
  justify-content: flex-end;
}

.purple img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.purple2 {
  width: clamp(700px, 35vw, 700px);
  top: clamp(-10px, 2vw, 20px);
  margin-left: auto;
}

/* 予備：緑が必要な場合 */
.green {
  width: clamp(700px, 35vw, 700px);
}

#movie .m_txt {
  margin-bottom: -25px;
}
#movie .il_txt {
    margin-bottom: -20px;
}

#illustration .il_txt {
margin-bottom: 10px;
}
/* 画像上のレイヤー */
.pink::after,
.yellow::after,
.blue::after,
.blue2::after,
.purple::after,
.purple2::after,
.green::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.06);
  pointer-events: none;
}
/* 画像に差をつける */
#illustration .blue::after,
#illustration .blue2::after{
  background: rgba(255,255,255,0.08);
}

#movie .pink::after{
  background: rgba(255,255,255,0.04);
}

#work_in_music .purple::after,
#work_in_music .purple2::after{
  background: rgba(255,255,255,0.06);
}
/* ============================================================
   コンテンツエリア（MANGA / MUSIC 単体画像）
============================================================ */

/* MANGA のメイン画像 */
.home_manga img {
  object-fit: cover;
  object-position: 30% 40%;
  width: 100vw;
  height: 550px;
  display: block;
}

/* MUSIC（WORK IN MUSIC）の単体画像ブロック */
.home_box_1img {
  width: 100vw;
  height: 550px;
  background-color: #000;
  position: relative;
  overflow: hidden;
}

/* ラッパー */
.home_1img {
  width: 100%;
  height: 100%;
}

/* 実際の画像 */
.home_1img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 下部テキスト） */
.under_txt {
  width: 100%;
  margin-bottom: 5%;
  bottom: 20px;
}

/* usui_txt */
.usui_txt {
  padding: 1%;
  font-size: 20px;
  color: #fff;
}

/* ============================================================
   スライダー（wtr-swiper）
============================================================ */
.wtr-swiper .swiper-wrapper {
 transition-timing-function: linear !important;
}
.wtr-swiper {
  width: 100%;
  overflow: hidden;
  position: relative;
  flex: 1;
  min-width: 0;
}

.wtr-swiper .swiper-wrapper {
  align-items: center;
}

.wtr-swiper .swiper-slide.wtr-slide {
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
}

.wtr-swiper .slide-inner {
  width: 100%;
  height: 100%;
  position: relative;
}

.wtr-swiper img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

/* tv-noise の canvas をレイアウトから外す（flex幅を食わない） */
.tv-noise-container {
  position: relative;
}
.tv-noise-container > canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.tv-noise-container .wtr-swiper {
  position: relative;
  z-index: 1;
}

/* Overlay */
.wtr-slide .slide-inner {
  position: relative;
}
.wtr-slide .slide-inner {
  display: inline-block; 
  position: relative;
  
}

/* overlay（画像にだけかかる） */
.wtr-slide .overlay {
  position: absolute;
  inset: 0;

  display: flex;
  justify-content: center;
  align-items: flex-end;

  pointer-events: none;
  z-index: 2;

  background: linear-gradient(
    to top,
    rgba(0,0,0,0.45) 0%,
    rgba(0,0,0,0.25) 35%,
    rgba(0,0,0,0.0) 100%
  );
}
@media (hover: hover) {
  .swiper-slide:hover .overlay-text {
    opacity: 1;
  }
}

.wtr-slide .overlay-text {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 12px 16px;
  box-sizing: border-box;

  display: flex;
  justify-content: center;
  align-items: center;

  color: #fff;
  font-size: 0.9rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
  font-weight: 600;

  pointer-events: none;
  opacity: 0;
  transition: opacity .35s ease;
}




.slide-inner {
  transform: translateY(var(--offset, 0));
}



/* 既存：home_box等 */
.home_box,
.home_box_slider,
.home_box_1img,
.home_1img img {
  width: 100%;
  max-width: 100%;
}
.home_sliders {
  overflow: hidden;
  box-sizing: border-box;
}
.home_sliders {
  position: relative;
  display: flex;
  align-items: center;
padding: 5% 3% 5% 3%;
  height: 550px;
  box-sizing: border-box;
}

/* MOVIEスライダー背景（ピンク） */
.home_color1 { background-color: #ed97a4; }

/* ILLUSTRATIONスライダー背景（水色） */
.home_color2 { background-color: #83b8cf; }

.slider-counter{ 
text-align: right;
margin-bottom: 1%;}
/* ボタンの文字は見えなくする */
.prev-btn,
.next-btn{
  position: relative;
    width: 25px;
    height: 12px;
  padding: 0;
  font-size: 0;    
  line-height: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}

/* 三角をCSSで作る */
.prev-btn::before,
.next-btn::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  transform: translate(-50%, -50%);
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
}

/* 左向き */
.prev-btn::before{
  border-right: 7px solid currentColor;
}

/* 右向き */
.next-btn::before{
  border-left: 7px solid currentColor;
}


/* ボタンのデフォ枠・フォーカス枠を消す */
.wtr-swiper .prev-btn,
.wtr-swiper .next-btn {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  outline: none;
  box-shadow: none;
  background: transparent; 
}

/* クリック時/フォーカス時の枠も消す */
.wtr-swiper .prev-btn:focus,
.wtr-swiper .next-btn:focus,
.wtr-swiper .prev-btn:focus-visible,
.wtr-swiper .next-btn:focus-visible,
.wtr-swiper .prev-btn:active,
.wtr-swiper .next-btn:active {
  outline: none !important;
  box-shadow: none !important;
}


.swiper-slide {
  position: relative;
  overflow: hidden;
}



/* PC */
@media (hover: hover) {
  .swiper-slide:hover .overlay-text {
    opacity: 1;
  }
}

/* SP（tap後） */
.swiper-slide.is-open .overlay-text {
  opacity: 1;
}



/* =========================
   PCのみ：スライダー画像がパディング内に収まるようにする
========================= */
@media screen and (min-width: 769px) {
  /* 高さは親に追従 */
  .home_sliders .wtr-swiper,
  .home_sliders .swiper-wrapper,
  .home_sliders .swiper-slide,
  .home_sliders .slide-inner {
    height: 100%;
  }

  /* スライドの幅計算を安定させる（auto計算の参照を「枠」に固定） */
  .home_sliders .swiper-slide.wtr-slide {
    width: auto;              /* Swiperのautoに任せる */
  }

  /* 画像は */
  .home_sliders .slide-inner {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

}

/* ============================================================
   FRONT Breakpoints
============================================================ */

@media screen and (max-width: 1100px) {
  .home_title {
    height: 300px;
    min-height: 300px;
  }
  .header_nav {
    display: none;
  }
.hamburger {
  display: block;
}
.slider_top {
    height: auto;}
  .home_manga img {
    height: 450px;
  }
  .home_box_1img,
  .home_1img img {
    height: 450px;
  }

  .pink,
  .yellow,
  .blue2,
  .purple,
  .purple2,
  .green,
  .migi,
  .migi2,
  .hidari {
height: auto;
    min-height: 300px;
  }

  .home_box_slider,
  .home_sliders {
    height: 450px;
  }

  .home_box,
  .home_manga img {
    height: 450px;
  }

  .home_sliders {
    padding: 30px 30px 35px 30px;
  }
}

@media screen and (max-width: 768px) {
   .overlay-text{font-size: 0.62rem;
    line-height: 1.7;
  letter-spacing: 0.03em; }
  .home_title {
    height: 250px;
    min-height: 200px;
  }

  .movie_title { width: 150px; height: 50px; }
  .manga_title { width: 140px; height: 60px; }
  .illustration_title { width: 180px; }
  .work_in_music_title { width: 190px;
        height: 0px;
        bottom: 10px; }

  .il_txt { height: 60px; }
  .ma_txt { height: 60px; }
  .mu_txt { top: 10%; }

  .pink,
  .yellow,
  .blue,
  .blue2,
  .purple,
  .purple2,
  .green,
  .migi,
  .migi2,
  .hidari {
    height: 250px;
    min-height: 250px;
  }
    .pink{  min-height: 360px;  }
  .home_manga img { height: 350px; }
  .home_box_1img,
  .home_1img img { height: 350px; }

  .home_box {         height: auto; }

  .home_sliders {
    padding:  5% 5% 5% 5%;
    height: 350px;
  }

 
 .home_box_slider,
  .home_sliders {
    height: auto;
  }
  
 
.wtr-swiper .swiper-slide.wtr-slide{
    padding: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }


  .wtr-swiper .slide-inner img{
    display: block;
  }
.slider-counter {
    margin-bottom: 2%;
}
.prev-btn, .next-btn {
    width: 12px;
}

}

@media screen and (max-width: 550px) {
  .home_manga img { height:350px; }
  .home_box_1img,
  .home_1img img { height: 240px; }

  .home_box,
  .home_sliders,
  .home_box_1img,
  .home_1img img {
    height: 350px;
  }
  .work_in_music_title {         bottom: 5%;height: 55px; }
  .mu_txt { top: 3%; }}

@media screen and (max-width: 400px) {
  .work_in_music_title {
    width: 180px;
    height: 15px;
  }

  .pink img {
margin-top: 20%;
        width: 470px;
  }
}

/* iOS Safari がボタンに付ける謎の見た目を潰す */
.prev-btn,
.next-btn{
  -webkit-tap-highlight-color: transparent; 
  tap-highlight-color: transparent;       
  user-select: none;      
  -webkit-user-select: none;
}
.btn-menu.active:before,
.btn-menu.active:after {
  background-color: #fff; /* ← 明示 */
}
.prev-btn{
  -webkit-appearance: none;
}
.next-btn{
  -webkit-appearance: none;
}
.wtr-swiper .prev-btn,
.wtr-swiper .next-btn{
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

/* 矢印色だけ指定 */
.wtr-swiper .prev-btn::before{
  border-right-color: #000;
}

.wtr-swiper .next-btn::before{
  border-left-color: #000;
}
@media (hover: none) and (pointer: coarse) {
  .pink_slider .overlay-text:hover,
  .blue_slider .overlay-text:hover {
    color: inherit; 
  }
}


/* ===============================
   共通：フェード＆スライド
=============================== */
.inc_p {
opacity: 0;
  will-change: transform;
  transition: transform 0.6s ease, opacity 0.6s ease;
}

/* タイトル：右から画面外 */
.home_title .inc-title.inc_p {
  transform: translateY(12px);
}


/* 表示時 */
.home_title .inc_p.inc_up {
  transform: translateY(0);
  opacity: 1;
}
.inc-title {
  transition-delay: 0.05s;
}
.inc-text {
  transition-delay: 0.25s;
}
.inc-text span.char{
  display: inline-block;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.inc-text.inc_up span.char{
  opacity: 1;
  transform: translateY(0);
}
.slash{
  opacity: 0;
  transition: opacity .55s ease;
}
.inc_up .slash{
  opacity: 1;
  transition-delay: 1.55s;
}

/* SPだけ：縦スクロールを優先（横スワイプは許可） */
@media (hover: none) and (pointer: coarse) {
  .wtr-swiper {
    touch-action: pan-y;
  }
}



@media screen and (max-width: 768px) {
  .wtr-swiper,
  .swiper-wrapper,
  .swiper-slide,
  .slide-inner {
    height: 100%;
  }

  .wtr-swiper .slide-inner img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
  }
}

/* =========================================
   overlay を「画像の大きさ」だけに合わせる
========================================= */

/* slide-inner を画像に合わせて縮む箱にする */
.wtr-slide .slide-inner{
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  display: inline-block; /* 画像サイズで箱が決まる */
}

/* 画像をスライダーの高さの中に収めつつ、横は比率維持 */
.wtr-slide .slide-inner img{
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  display: block;
  object-fit: contain;
}

/* overlay はそのまま（親＝画像サイズの箱）に追従 */
.wtr-slide .overlay{
  inset: 0;
}



/* =========================================
   HAMBURGER FIX（Front page only / click-through防止 / ❌表示）
========================================= */

/* フロントページ以外ではメニュー一式を非表示（= ③） */
body:not(.home) .menu-container,
body:not(.home) .nav-menu,
body:not(.home) .menu-overlay {
  display: none !important;
}

/* SP/タブレット（1100px以下）でハンバーガーを確実に表示（= ②） */
@media screen and (max-width: 1100px) {
  .menu-container {
    display: block;
  }
  .hamburger {
    display: block; /* ここが重要：既存で none になってるのを上書き */
  }
  body.home .hamburger { display: block !important; }
}

/* ハンバーガーが最前面に来るように */
.hamburger {
  z-index: 10002;
}

/* スライドメニューもハンバーガーの直下に */
.nav-menu {
  z-index: 10001;
}

/* クリック貫通防止の“遮る層”（= ①） */
.menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0); /* 透明でOK（必要なら0.2とかにしても可） */
  z-index: 10000;
  display: none;
  pointer-events: none;
}

/* メニューが開いてる時だけ、遮る層を有効化 */
.menu-overlay.active {
  display: block;
  pointer-events: auto;
}

/* メニューを開いてる間は背面を操作できないように（= ①） */
body.menu-open {
  overflow: hidden;
  touch-action: none;
}

