@charset "UTF-8";

:root {
  --white: #fff;
  --black: #000;
  --text: #333;
  --bg-main: #f1e5d2;
  --bg-sub: #e1e0df;
  --key01: #ee7700;
  --key02: #405aa8;

  --fontFamily-M: "MFW-PAotoGothicStdN-Medium", "ヒラギノ角ゴ Pro W3";
  --fontFamily-DB: "MFW-PAotoGothicStdN-DeBold", "ヒラギノ角ゴ Pro W3";
  --fontFamily-B: "MFW-PAotoGothicStdN-Bold", "ヒラギノ角ゴ Pro W3";
  --fontFamily-EB: "MFW-PAotoGothicStdN-ExBold", "ヒラギノ角ゴ Pro W3";
  --transition: all .5s cubic-bezier(0.33, 1, 0.68, 1);
}


#container {
  font-family: var(--fontFamily-M);
  background: var(--bg-main);
  font-size: 1.6rem;
  color: var(--text);
  @media only screen and (min-width: 751px) {
    line-height: 1.8;
  }
}

/* hero
----------------------------------------*/
@media only screen and (min-width: 751px) {
  .hero {
    width: 100%;
    background: url('../img/header-bg.webp') repeat-x center top;
    background-size: contain;
    & h1 {
      width: fit-content;
      margin-inline: auto;
    }
  }
}

/* 共通
----------------------------------------*/
.bg-w {
  background-color: var(--white);
}
.block_inner {
  width: min(100%, 960px);
  margin-inline: auto;
  padding: 10vw 3vw;
}
h2 {
  position: relative;
  z-index: 5;
  width: fit-content;
  margin: 0 auto 1em;
  font-family: var(--fontFamily-EB);
  font-size: 3rem;
  line-height: 1;
  color: var(--key01);
  &::after {
    content: '';
    position: absolute;
    z-index: -1;
    bottom: -0.2em;
    left: -0.6em;
    right: -0.6em;
    width: calc(100% + 1.2em);
    height: 0.5em;
    background: url('../img/deco-headline.png') repeat-x 0 bottom;
    background-size: contain;
  }
}
.bg-w h2 {
    -webkit-text-stroke: 4px var(--white);
    paint-order: stroke;
    &::after {
    background-image: url('../img/deco-headline-2.png');
  }
}
.txt-s {
  font-size: 0.8em;
}
.txt-l {
  font-size: 1.2em;
}
@media only screen and (min-width: 751px) {
  .block_inner {
    padding: 80px 30px;
  }
  h2 {
    font-size: 4.2rem;
  }
}


/*Movie
----------------------------------------*/
.movie_container {
  position: relative;
  width: min(100%, 780px);
  aspect-ratio: 16 / 9;
  margin-inline: auto;
  & .movie_inner {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;    
  }
}

/*Copy
----------------------------------------*/
.copy_block {
  margin-top: 10vw;
  overflow: hidden;
  & .block_inner {
    position: relative;
    z-index: 0;
    &::before {
      content: '';
      position: absolute;
      display: block;
      bottom: 0;
      left: 10vw;
      width: 50vw;
      aspect-ratio: 329 / 211;
      background: url('../img/pic-copy01.png') no-repeat 0 0;
      background-size: contain;
    }
    &::after {
      content: '';
      position: absolute;
      display: block;
      top: 0;
      left: calc(50% - 50vw);
      right: calc(50% - 50vw);
      width: 100vw;
      height: 100%;
      background: url('../img/copy-bg.webp') repeat-x center 0;
      background-size: cover;
      z-index: -1;
    }
  }
  & p:not(:last-of-type) {
    margin-bottom: 1.5em;
  }
  & .txt-l {
    font-family: var(--fontFamily-B);
    color: var(--key02);
    font-size: 1.15em;
  }
  @media only screen and (max-width: 750px) {
    & .block_inner {
      padding-bottom: 35vw;
    }
  }
  @media only screen and (min-width: 751px) {
    margin-top: 80px;
    padding-bottom: 0;
    text-align: center;
    & .block_inner {
      padding-bottom: 140px;
    }
    & .block_inner::before {
      bottom: 0;
      left: 0;
      width: 290px;
    }
    & .block_inner::after{
      left: calc(50% - 570px);
      right: calc(50% - 570px);
      width: 1140px;
    }
    & .txt-l {
      font-size: 1.4em;
    }
  }
  @media only screen and (min-width: 1141px) {
    margin-top: 80px;
    text-align: center;
    & .block_inner::after{
      left: calc(50% - 50vw);
      right: calc(50% - 50vw);
      width: 100vw;
    }
  }
}

/*Cast
----------------------------------------*/
.cast_block {
  text-align: center;
  overflow: hidden;
  & p {
    font-size: 2rem;
    line-height: 1.6;
    &:first-of-type {
      margin-bottom: 1em;
    }
    & span {
      display: block;
    }
  }
  @media only screen and (min-width: 751px) {
    & p {
      font-size: 2.2rem;
    }
  }
}
.cast_item {
  position: relative;
  z-index: 0;
  &::before {
    content: '';
    position: absolute;
    display: block;
    top: 0;
    left: calc(50% - 50vw);
    right: calc(50% - 50vw);
    width: 100vw;
    height: 100%;
    background: url('../img/cast-bg.png') repeat-x center center;
    background-size: auto 100%;
    z-index: -1;
  }
}
/*Content
----------------------------------------*/
.content_item {
  position: relative;
  margin-bottom: 3em;
  padding: 1em;
  z-index: 0;
  &:first-of-type {
    margin-top: 3em;
  }
  &:last-of-type {
    margin-bottom: 0;
  }
  &::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background: var(--white);
    width: 100%;
    height: 100%;
    z-index: -1;
  }
  & .item-txt {
    padding: 1.5em 0 1em;
  }
  & h3 {
    position: absolute;
    width: fit-content;
    top: -1em;
    left: 0;
    padding: 0.3em 1em;
    font-family: var(--fontFamily-B);
    font-size: 1.2em;
    color: var(--white);
    background: var(--key02);
  }
  &.rev h3 {
    left: auto;
    right: 0;
  }
  @media only screen and (min-width: 540px) {
    display: flex;
    gap: 1em;
    &.rev {
      flex-direction: row-reverse;
    } 
    & .item-txt {
      width: 50%;
      padding-bottom: 0;
    }
    & .item-pht {
      width: calc(50% - 1em);
    }
  }
  @media only screen and (min-width: 640px) {
    & .item-txt {
      margin-inline: 1em;
    }
    & .item-pht {
      width: calc(50% - 2em);
    }
  }
}

/*Banner
----------------------------------------*/
.banner_block {
  padding: 20px;
  text-align: center;
  & img {
    width: min(70%, 300px);
  }
}

/*Making
----------------------------------------*/
.making_block {
  padding: 30px 0;
  & .js-slider {
    background-color: var(--black); 
  }
  @media screen and (min-width: 751px) {
    padding: 80px 0 50px;
  }
}

/*slider
----------------------------------------*/
.js-slider li {
  pointer-events: none;
}