/* CSS Document */
/**********************************/
body:before {
  content: "";
  position: absolute;
  inset: -40px;
  background: url("../images/movie/bg.svg") center top no-repeat;
  background-size: 100% auto;
  transform: translate3d(var(--bg-x), var(--bg-y), 0);
  z-index: 0;
  pointer-events: none;
  aspect-ratio: 1885/798;
  width: 100%;
  max-width: 2055px;
  left: -4%;
  top: -3%;
  height: auto;
  z-index: -1; }

@media (min-width: 1980px) {
  body:before {
    background-size: 1885px auto;
    width: 100%;
    max-width: 100%;
    left: 0;
    top: 0; } }
@media (max-width: 1280px) {
  body:before {
    left: 0; } }
@media (max-width: 768px) {
  body:before {
    background: url("../images/movie/bg_sp.svg") center top no-repeat;
    background-size: 100% auto;
    aspect-ratio: 912/532;
    top: 65px; } }
/*max-width:768px*/
/*max-width:480px*/
/**********************************/
/**********************************/
.movie_list {
  z-index: 1;
  width: calc(100% - 100px);
  max-width: 1620px;
  margin: 0 auto;
  overflow: hidden;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: clamp(12px, 4vw, 80px);
  row-gap: 40px; }
  .movie_list .swiper-slide {
    width: 100%;
    max-width: 350px;
    height: auto; }
    .movie_list .swiper-slide p {
      border: 1px solid #ccc;
      border-radius: 15px;
      text-align: center;
      max-width: 240px;
      width: calc(100% - 30px);
      margin: 0 auto;
      font: clamp(1.2rem, 1.8vw, 1.8rem)/1.5em "Noto Sans JP", sans-serif;
      font-weight: 500;
      padding: 10px 15px; }
  .movie_list a {
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    aspect-ratio: 306 / 544;
    width: 100%;
    height: auto;
    position: relative;
    overflow: hidden;
    margin-bottom: 15px;
    border-radius: 15px; }
    .movie_list a:after {
      position: absolute;
      content: "";
      display: block;
      background: url("../images/index/movie_btn.svg") center center no-repeat;
      background-size: contain;
      width: 80px;
      height: 80px;
      top: 50%;
      left: 50%;
      transition: .3s;
      transform: translate(-50%, -50%); }
    .movie_list a img {
      position: absolute;
      width: 100%;
      height: 100%;
      object-fit: cover;
      top: 50%;
      left: 50%;
      transition: .3s;
      transform: translate(-50%, -50%); }

.movie_modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999; }

.movie_modal.is-open {
  display: block; }

.movie_modal_overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7); }

.movie_modal_inner {
  position: relative;
  width: fit-content;
  margin: 0 auto;
  padding: 10px; }

.movie_modal_video {
  aspect-ratio: 9/16;
  width: auto;
  height: calc(90vh - 35px); }

.movie_modal_video iframe,
.movie_modal_video video {
  width: 100%;
  height: 100%; }

.movie_modal_close {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: none;
  box-shadow: none;
  color: #fff;
  font-size: 3.2rem;
  line-height: 1;
  font-weight: 400;
  padding: 0;
  margin: 0;
  cursor: pointer; }

@media (hover: hover) {
  .movie_list .swiper-slide:hover p {
    color: #5A4398; }
  .movie_list .swiper-slide:hover a:after {
    transform: translate(-50%, -50%) scale(1.2); }
  .movie_list .swiper-slide:hover a img {
    transform: translate(-50%, -50%) scale(1.05); } }
@media (max-width: 1280px) {
  .movie_list {
    width: calc(100% - 80px);
    grid-template-columns: repeat(3, 1fr); }
    .movie_list .swiper-slide a:after {
      width: 55px;
      height: 55px; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .movie_list {
    width: calc(100% - 80px);
    grid-template-columns: repeat(3, 1fr); }
    .movie_list .swiper-slide p {
      font-weight: 500;
      padding: 0 10px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .movie_list {
    width: calc(100% - 60px);
    grid-template-columns: repeat(2, 1fr); }
    .movie_list .swiper-slide p {
      padding: 10px;
      border-radius: 10px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .movie_list {
    width: calc(100% - 30px);
    grid-template-columns: repeat(2, 1fr); }
    .movie_list .swiper-slide a:after {
      width: 40px;
      height: 40px; }
    .movie_list .swiper-slide p {
      width: 100%; } }
/*max-width:480px*/
