/* =========================================
   Top Movie Section (Final Fix)
   ========================================= */

/* --- SP Styles (Base: 375px) --- */
.top-movie {
  padding-top: 18.6666666667vw;
  padding-bottom: 18.6666666667vw;
  overflow: hidden;
  background-color: transparent; /* 背景色なし */
  margin-left: -7.4666666667vw;
}

.top-movie__inner {
  position: relative;
  width: 100%;
}

/* Header & Title */
.top-movie__header {
  padding-left: 14.3vw; 
  margin-bottom: 12vw;
}

.top-movie__title {
  font-size: 5vw;
  font-weight: 400;
  color: #6F593A;
  position: relative;
  display: inline-block;
  line-height: 1.4;
}

.top-movie__title::after {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 20.3vw;
  height: 2px;
  background-color: #6F593A;
  margin-left: 5.3333333333vw; /* 文字との間隔 */
}

/* Slider (SP) */
.top-movie__slider {
  width: 100vw;
  overflow: visible;
}

.top-movie__slide {
  /* SP: 動画幅 280px -> 74.666vwに変更 */
  width: 74.6666666667vw;
  transition: opacity 0.3s;
}

/* Video Box (横長に変更) */
.top-movie__video-box {
  position: relative;
  width: 100%;
  /* SP: 動画サイズ 280:177 に変更 */
  aspect-ratio: 280 / 177;
  background: transparent;
  border-radius: 10px;
  overflow: hidden;
  transform: translateZ(0); 
}

.top-movie__video-box video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Play Button */
.top-movie__play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 14.4vw;
  height: 14.4vw;
  cursor: pointer;
  z-index: 5;
  background: none;
  border: none;
  padding: 0;
  display: block;
}
.top-movie__video-box.is-playing .top-movie__play-btn {
  display: none;
}

/* Navigation (SP) */
.top-movie__nav {
  display: flex;
  justify-content: flex-end;
  gap: 5.3333333333vw;
  margin-top: 5.3333333333vw;
  padding-right: 12.8vw;
}

.top-movie__nav-btn {
  width: 9.6vw;
  height: 9.6vw;
  cursor: pointer;
}


/* --- PC Styles (Base: 1366px) --- */
@media screen and (min-width: 768px) {
  .top-movie {
    padding-top: 5.1244509517vw;
    padding-bottom: 5.1244509517vw;
    margin-left: 0;
  }

  .top-movie__inner {
    width: 100%;
    margin: 0 auto;
    position: relative;
  }

  /* Header */
  .top-movie__header {
    padding-left: 27.4524158126vw;
    margin-bottom: 4.0263543192vw;
  }

  .top-movie__title {
    font-size: 2.3426061493vw; /* 32px */
    display: flex;
    align-items: center;
  }
  .top-movie__title::after {
    display: none; /* SP用リセット */
  }

  /* PC: 文字の前後に線 */
  .top-movie__title::before {
    content: "";
    display: block;
    width: 6.588579795vw;
    height: 2px;
    background-color: #6F593A;
    margin-right: 1.4641288433vw;
  }
  .top-movie__header .top-movie__title::after { 
    content: "";
    display: block;
    width: 6.588579795vw;
    height: 2px;
    background-color: #6F593A;
    margin-left: 1.4641288433vw;
  }

/* Slider (PC) */
  .top-movie__slider {
    /* PC: カルーセルエリア幅 995px -> 72.840vw に変更 */
    width: 72.8404099561vw; 
    margin-left: 27.4524158126vw; /* 既存の左余白を維持 */
    overflow: hidden;
  }

.top-movie__slide {
    /* PC: 動画幅 365px -> 26.720vw に変更 */
    width: 26.7203513909vw; 
    margin-right: 0; 
  }
  
  /* PC: 動画サイズ 365:231 に変更 */
  .top-movie__video-box {
    aspect-ratio: 365 / 231;
  }

  /* Navigation (PC) */
  .top-movie__nav {
    margin-top: 2.0497803807vw;
    padding-right: 8.5168374817vw;
    gap: 1.4641288433vw;
  }

  .top-movie__nav-btn {
    width: 2.635431918vw;
    height: 2.635431918vw;
    transition: opacity 0.3s;
  }
  .top-movie__nav-btn:hover {
    opacity: 0.7;
  }

  .top-movie__play-btn {
    width: 4.5387994143vw;
    height: 4.5387994143vw;
  }
}