@charset "utf-8";

body {
  padding: 0;
  margin: 0;
  font-family:"MS Pゴシック",sans-serif;
}
.w-100 { width: 100%; }
.l-container { width: 100%; }

/* ----------------- Layout Ad ----------------- */
.l-ad {
  background-color: #E64575;
}
.l-ad__wrapper {
  width: min(100%, 1280px);
  padding: 40px 40px;
  margin: 0 auto;
}
.ad-container {
  position: relative;
  height: 52vw;
  max-height: 660px;
}
.ad-catch {
  position: absolute;
  z-index: 1;
  top: 24px;
  width: 30%;
}
.ad-copy {
  position: absolute;
  z-index: 1;
  bottom: 100px;
}
.ad-copy p {
  font-size: 40px;
  color: #E64575;
  margin: 0;
}
.ad-copy p span {
  display: inline-block;
  font-weight: bold;
  background-color: #ffffff;
  margin: 10px 0 0 0;
  padding: 8px 24px;
  box-shadow: 8px 8px 0px 0px rgb(189, 35, 81, 0.5);
}
.ad-img {
  position: absolute;
  right: 0;
  width: 76%;
  box-shadow: 24px 24px 0px 0px rgb(189, 35, 81);
}
.ad-img img {
  border: 10px solid #ffffff;
}
.ad-link {
  width: 50%;
  margin: 0 auto;
}
@media (max-width: 1024px) {
  .l-ad__wrapper {
    padding: 5vw;
  }
  .ad-container {
    height: 80vw;
    max-height: initial;
  }
  .ad-catch {
    top: -2vw;
    width: 44%;
  }
  .ad-copy {
    bottom: 3vw;
  }
  .ad-copy p {
    font-size: 5vw;
  }
  .ad-copy p span {
    margin: 2vw 0 0 0;
    padding: 1vw 3vw;
    box-shadow: 1vw 1vw 0px 0px rgb(189, 35, 81, 0.5);
  }
  .ad-img {
    right: 0;
    top: 3vw;
    width: 94%;
    box-shadow: 3vw 3vw 0px 0px rgb(189, 35, 81);
  }
  .ad-img img {
    border: 2vw solid #ffffff;
  }
  .ad-link {
    position: relative;
    z-index: 2;
    padding: 4vw 0 0 0;
    width: 80%;
  }
}
@media (min-width: 1921px) {
  .l-ad__wrapper {
    width: 1920px;
    padding: 48px;
  }
  .ad-container {
    height: 1020px;
    max-height: none;
  }
  .ad-catch {
    top: 32px;
    width: 30%;
  }
  .ad-copy {
    bottom: 150px;
  }
  .ad-copy p {
    font-size: 72px;
  }
  .ad-copy p span {
    margin: 24px 0 0 0;
    padding: 12px 32px;
    box-shadow: 12px 12px 0px 0px rgb(189, 35, 81, 0.5);
  }
  .ad-img {
    width: 76%;
    box-shadow: 32px 32px 0px 0px rgb(189, 35, 81);
  }
  .ad-img img {
    border: 16px solid #ffffff;
  }
  .ad-link {
    width: 50%;
  }
}

/* ----------------- Layout Main ----------------- */
.l-main {
  background-color: #FFE4EC;
  padding: 0 0 min(8vw, 50px) 0;
}
.l-main__wrapper {
  position: relative;
  width: min(100%, 1280px);
  padding: 0 min(5vw, 40px);
  margin: 0 auto;
}
.l-main__title {
  width: min(80%, 960px);
  margin: 0 auto;
  padding-top: min(8vw, 50px);
}
.l-main__title__link {
  width: min(80%, 800px);
  padding-top: min(2vw, 50px);
  margin: 0 auto;
}
.l-main__title__link a {
  display: block;
  text-decoration: none;
  color: #ffffff;
  padding: 24px 0;
  font-size: min(4vw, 48px);
  border-radius: 12px;
}

.card-list-wrapper {
  padding-top: min(16vw, 100px);
}
.card-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  justify-content: space-between;
}
.card-list li {
  flex: 0 1 48%;
}
.card-list li:nth-child(even) {
  padding-top: min(12vw, 150px);;
}

.card-list li a {
  text-decoration: none;
  color: #000000;
}
.card-movie {
  position: relative;
  border: 4px solid #000000;
  border-radius: 24px;
  padding: 24px;
  background-color: #ffffff;
  box-shadow: 10px 10px 0px 0px rgba(255, 80, 132, 0.4);
}
.card-movie__catch {
  position: absolute;
  top: max(-5vw, -60px);
  left: min(3vw, 30px);
  width: 60%;
}
.card-movie__btn {
  color: #ffffff;
  font-weight: bold;
  font-size: min(2vw, 26px);
  text-align: center;
  padding: min(1.5vw, 12px);
  margin: 0;
  background: #e64575;
}

@media (max-width: 768px) {
  .l-main__title__link {
    width: 100%;
  }
  .l-main__title__link a {
    padding: 4vw 0;
    font-size: 5vw;
    border-radius: 2vw;
  }
  .card-list {
    flex-direction: column;
  }
  .card-list li {
    padding-top: 16vw !important;
  }
  .card-list li:first-child {
    padding-top: 0 !important;
  }
  .card-movie__catch {
    position: absolute;
    top: max(-10vw, -60px);
  }
  .card-movie__btn {
    font-size: 5vw;
    padding: 3vw;
  }
}

@media (min-width: 1921px) {
  .l-main {
    padding: 0 0 72px 0;
  }
  .l-main__wrapper {
    width: 1920px;
    padding: 0 48px;
  }
  .l-main__title {
    width: 1280px;
    padding-top: 72px;
  }
  .l-main__title__link {
    width: 960px;
    padding-top: 36px;
  }
  .l-main__title__link a {
    padding: 40px 0;
    font-size: 64px;
    border-radius: 24px;
  }
  .card-list-wrapper {
    padding-top: min(16vw, 100px);
  }
  .card-list li:nth-child(even) {
    padding-top: min(12vw, 150px);;
  }
  .card-list h2 {
    font-size: 42px;
    margin: 0;
    padding: 24px 0;
  }
  .card-movie {
    border: 6px solid #000000;
    border-radius: 32px;
    padding: 32px;
    box-shadow: 16px 16px 0px 0px rgba(255, 80, 132, 0.4);
  }
  .card-movie__catch {
    top: -80px;
    left: 40px;
    width: 60%;
  }
  .card-movie__btn {
    font-size: 40px;
    padding: 20px;
  }
}

/* ----------------- Footer ----------------- */
.c-footer-copyright {
  text-align: center;
  background-color: #242424;
  padding: 8px 0;
}
.c-footer-copyright p {
  margin: 0 auto;
  padding: 0;
  width: 236px;
}
.c-footer-copyright p a {
  color: #ffffff;
  text-decoration: none;
  font-size: 12px;
}

@media (max-width: 768px) {
  .c-footer-copyright p {
    width: 60%;
  }
  .c-footer-copyright p a {
    font-size: 10px;
  }
}

@media (min-width: 1921px) {
  .c-footer-copyright {
    padding: 16px 0;
  }
  .c-footer-copyright p {
    width: 236px;
  }
  .c-footer-copyright p a {
    font-size: 12px;
  }
}

/* ----------------- FAB ----------------- */
.l-fab {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 100;
  filter: drop-shadow(0px 6px 4px rgba(0,0,0,0.4));
}
.l-fab a {
  display: block;
  width: 180px;
  height: 180px;
  color: #fff;
}

@media (max-width: 640px) {
  .l-fab {
    right: 4vw;
    bottom: 5vw;
  }
  .l-fab a {
    width: 32vw;
    height: 32vw;
  }
}
@media (min-width: 1921px) {
  .l-fab {
    right: 52px;
    bottom: 52px;
    filter: drop-shadow(0px 6px 4px rgba(0,0,0,0.4));
  }
  .l-fab a {
    width: 320px;
    height: 320px;
  }
}

/* FABアニメーション */
#js-fab.UpMove {
  animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime {
  from {
    opacity: 0;
    transform: translateY(380px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#js-fab.DownMove {
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 1;
    transform: translateY(380px);
  }
}

/* CTAボタンアニメーション */
.bounce-top {
	-webkit-animation: bounce-top 1.8s infinite both;
	        animation: bounce-top 1.8s infinite both;
}

@keyframes bounce-top {
  0% {
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out;
    opacity: 1;
  }
  49% {
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out;
    opacity: 1;
  }
  50% {
    -webkit-transform: translateY(-45px);
            transform: translateY(-45px);
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in;
    opacity: 1;
  }
  62% {
    opacity: 1;
  }
  70% {
    -webkit-transform: translateY(-24px);
            transform: translateY(-24px);
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in;
  }
  82.5% {
    -webkit-transform: translateY(-12px);
            transform: translateY(-12px);
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in;
  }
  91% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in;
  }
  96.5% {
    -webkit-transform: translateY(-4px);
            transform: translateY(-4px);
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in;
  }
  62.5%,
  77.5%,
  87.5%,
  93.5% {
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out;
  }
  100% {
    -webkit-transform: translateY(0px);
            transform: translateY(0px);
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out;
    opacity: 1;
  }
}
