@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400&display=swap');
@font-face {
  font-family: "CharlevoixPro";
  src: url("../fonts/CharlevoixPro-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "CharlevoixPro";
  src: url("../fonts/CharlevoixPro-Thin.woff") format('woff');
  font-weight: 100;
  font-style: normal;
}

html, body {
	margin: 0;
  font-weight: 300;
  font-family: 'Noto Sans JP', sans-serif;
  background: #f7f3ed;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
p {
  margin: 0;
}
a {
  color: inherit;
  text-decoration: none;
  transition: .5s;
}
a:hover {
  opacity: .6;
}

@media screen and (min-width: 769px) {
  .sp {
    display: none!important;
  }
  :root {
    --width: 2800;
  }
}
@media screen and (max-width: 768px) {
  .pc {
    display: none!important;
  }
  :root {
    --width: 750;
  }
}

/*------------
  common
------------*/

.fade {
  transform: translateY(50px);
  opacity: 0;
  transition: 1s;
}
.fade-delay {
  transform: translateY(50px);
  opacity: 0;
  transition: 1s;
}
.fade.in {
  transform: translateY(0);
  opacity: 1;
}

/*------------
  header
------------*/

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  transform: translateY(-100%);
  width: 100%;
  padding: calc((var(--width) / 2800) * 35px) calc((var(--width) / 2800) * 40px);
  background: #f7f3ed;
  transition: .5s;
}
header.scroll,
header.active {
  transform: translateY(0);
}
.header-logo {
  position: relative;
  z-index: 999;
  height: calc((var(--width) / 2800) * 64px);
}
.header-logo img {
  width: auto;
  height: 100%;
}
.header-ttl {
  position: absolute;
  z-index: 999;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: calc((var(--width) / 2800) * 38px);
  font-weight: 100;
  font-family: "CharlevoixPro";
  letter-spacing: 2px;
}
.header-menu {
  display: flex;
  width: fit-content;
}
.active .header-menu {
  display: none;
}
.header-menu p {
  display: flex;
  align-items: center;
  font-size: calc((var(--width) / 2800) * 28px);
  cursor: pointer;
}
.header-menu p img {
  width: auto;
  height: calc((var(--width) / 2800) * 30px);
  padding-right: calc((var(--width) / 2800) * 20px);
}
.header-menu a {
  display: flex;
  align-items: flex-start;
  margin-left: clamp(30px, 3vw, 75px);
  font-size: calc((var(--width) / 2800) * 30px);
  font-family: "CharlevoixPro";
  font-weight: 400;
}
.header-menu a img {
  width: calc((var(--width) / 2800) * 30px);
  padding-left: 5px;
}
.header-close {
  display: none;
  position: absolute;
  top: calc((var(--width) / 2800) * 55px);
  right: calc((var(--width) / 2800) * 45px);
  width: calc((var(--width) / 2800) * 58px);
  cursor: pointer;
}
.active .header-close {
  display: block;
}
.header-movie {
  overflow-y: scroll;
  display: none;
  position: absolute;
  z-index: 99;
  top: 100%;
  left: 0;
  width: 100%;
  height: 100vh;
  background: #f7f3ed;
}
.header-movie .movie-inner {
  width: calc((var(--width) / 2800) * 1800px);
  margin: 0 auto;
  margin-top: calc((var(--width) / 2800) * 200px);
  padding-bottom: calc((var(--width) / 2800) * 200px);
}
.header-movie .movie-ttl {
  margin-bottom: calc((var(--width) / 2800) * 160px);
  font-size: calc((var(--width) / 2800) * 58px);
}
.header-movie .movie-item {
  display: flex;
  margin-top: calc((var(--width) / 2800) * 35px);
}
.header-movie .movie-item .item-info {
  width: 74%;
}
.header-movie .movie-item .item-info p {
  margin-bottom: 10px;
  font-size: calc((var(--width) / 2800) * 78px);
  font-weight: 100;
  line-height: calc((var(--width) / 2800) * 118px);
  font-family: "CharlevoixPro";
}
.header-movie .movie-item .item-info p img {
  width: auto;
  height: calc((var(--width) / 2800) * 34px);
  padding-left: calc((var(--width) / 2800) * 30px);
  vertical-align: super;
}
.header-movie .movie-item .item-info span {
  font-size: calc((var(--width) / 2800) * 24px);
}
.header-movie .movie-item .item-thumb {
  position: relative;
  width: 26%;
  cursor: pointer;
}
.header-movie .movie-item .item-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: fit-content;
  text-align: center;
  color: #fff;
}
.header-movie .movie-item .item-overlay img {
  width: calc((var(--width) / 2800) * 75px);
}
.header-movie .movie-item .item-overlay span {
  display: block;
  margin-top: calc((var(--width) / 2800) * 15px);
  font-size: calc((var(--width) / 2800) * 26px);
  font-family: "CharlevoixPro";
  font-weight: 400;
}

@media screen and (max-width: 768px) {
  header {
    padding: calc((var(--width) / 750) * 25px) 5%;
  }
  .header-logo {
    height: calc((var(--width) / 750) * 45px);
  }
  .header-ttl {
    display: none;
    font-size: calc((var(--width) / 750) * 30px);
  }
  .active .header-ttl {
    display: block;
  }
  .header-menu p {
    font-size: calc((var(--width) / 750) * 24px);
  }
  .header-menu p img {
    height: calc((var(--width) / 750) * 22px);
  }
  .header-menu a {
    margin-left: calc((var(--width) / 750) * 55px);
    font-size: calc((var(--width) / 750) * 26px);
  }
  .header-menu a img {
    width: calc((var(--width) / 750) * 35px);
  }
  .header-close {
    top: calc((var(--width) / 750) * 25px);
    right: calc((var(--width) / 750) * 30px);
    width: calc((var(--width) / 750) * 42px);
  }
  .header-movie .movie-inner {
    width: 90%;
    margin: calc((var(--width) / 750) * 150px) auto;
  }
  .header-movie .movie-ttl {
    margin-bottom: calc((var(--width) / 750) * 75px);
    font-size: calc((var(--width) / 750) * 34px);
  }
  .header-movie .movie-item {
    align-items: flex-start;
    margin-top: calc((var(--width) / 750) * 80px);
  }
  .header-movie .movie-item .item-info {
    width: calc((var(--width) / 750) * 347px);
  }
  .header-movie .movie-item .item-info p {
    margin-bottom: calc((var(--width) / 750) * 25px);
    font-size: calc((var(--width) / 750) * 44px);
    line-height: calc((var(--width) / 750) * 52px);
  }
  .header-movie .movie-item .item-info p img {
    width: 13%;
    vertical-align: middle;
  }
  .header-movie .movie-item .item-info span {
    font-size: calc((var(--width) / 750) * 24px);
  }
  .header-movie .movie-item .item-thumb {
    width: calc((var(--width) / 750) * 328px);
  }
  .header-movie .movie-item .item-overlay img {
    width: calc((var(--width) / 750) * 52px);
  }
  .header-movie .movie-item .item-overlay span {
    margin-top: calc((var(--width) / 750) * 15px);
    font-size: calc((var(--width) / 750) * 22px);
  }
}


/*------------
  footer
------------*/

footer {
  margin-top: calc((var(--width) / 2800) * 320px);
}
.footer-banner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding-left: calc((var(--width) / 2800) * 120px);
  padding-right: calc((var(--width) / 2800) * 120px);
}
.footer-banner a {
  width: calc(97.5% / 2);
}
.footer-banner a + a {
  margin-left: 2.5%;
}
.footer-credits {
  display: flex;
  flex-wrap: wrap;
  margin-top: calc((var(--width) / 2800) * 320px);
  padding-left: calc((var(--width) / 2800) * 120px);
  padding-right: calc((var(--width) / 2800) * 120px);
  font-family: "CharlevoixPro";
  font-weight: 400;
}
.footer-box {
  width: calc(100% / 3);
  text-align: center;
}
.footer-box h3 {
  margin-bottom: calc((var(--width) / 2800) * 35px);
  font-size: calc((var(--width) / 2800) * 30px);
  font-weight: 400;
}
.footer-box p {
  font-size: calc((var(--width) / 2800) * 22px);
  line-height: calc((var(--width) / 2800) * 30px);
}
.footer-box a {
  display: block;
  font-size: calc((var(--width) / 2800) * 26px);
  line-height: calc((var(--width) / 2800) * 40px);
}
.footer-copyright {
  margin-top: calc((var(--width) / 2800) * 390px);
  padding-bottom: calc((var(--width) / 2800) * 35px);
  text-align: center;
  font-size: calc((var(--width) / 2800) * 20px);
  font-weight: 400;
  color: #808080;
  font-family: "CharlevoixPro";
}
.footer-copyright img {
  width: calc((var(--width) / 2800) * 310px);
  padding-bottom: calc((var(--width) / 2800) * 70px);
}

@media screen and (max-width: 768px) {
  footer {
    margin-top: calc((var(--width) / 750) * 160px);
  }
  .footer-banner {
    padding: 0 5%;
  }
  .footer-banner span {
    width: 100%;
  }
  .footer-banner a {
    width: 100%;
    margin-top: 30px;
  }
  .footer-credits {
    display: block;
    margin-top: calc((var(--width) / 750) * 170px);
    padding: 0 5%;
  }
  .footer-box {
    width: 100%;
  }
  .footer-box + .footer-box {
    margin-top: calc((var(--width) / 750) * 155px);
  }
  .footer-box h3 {
    margin-bottom: calc((var(--width) / 750) * 45px);
    font-size: calc((var(--width) / 750) * 26px);
    line-height: calc((var(--width) / 750) * 30px);
  }
  .footer-box p {
    font-size: calc((var(--width) / 750) * 20px);
    line-height: calc((var(--width) / 750) * 30px);
  }
  .footer-box a {
    font-size: calc((var(--width) / 750) * 22px);
    line-height: calc((var(--width) / 750) * 60px);
  }
  .footer-copyright {
    margin-top: calc((var(--width) / 750) * 250px);
    padding-bottom: calc((var(--width) / 750) * 20px);
    font-size: calc((var(--width) / 750) * 20px);;
  }
  .footer-copyright img {
    width: calc((var(--width) / 750) * 250px);
    padding-bottom: calc((var(--width) / 750) * 50px);;
  }
}


/*------------
  main
------------*/

/*
  kv
------------*/

#kv {
  position: relative;
  height: 100vh;
  background: url("../img/kv_bg.jpg") no-repeat center/cover;
  font-family: "CharlevoixPro";
}
#kv .kv-ttl {
  position: absolute;
  top: 50%;
  left: calc((var(--width) / 2800) * 135px);
  transform: translateY(-50%);
  color: #fff;
}
#kv .kv-ttl span {
  display: block;
  font-size: calc((var(--width) / 2800) * 74px);
  font-weight: 100;
  line-height: calc((var(--width) / 2800) * 120px);;
}
#kv .kv-ttl h1 {
  margin: calc((var(--width) / 2800) * 50px) 0 calc((var(--width) / 2800) * 50px);
  font-size: calc((var(--width) / 2800) * 298px);
  font-weight: 100;
  line-height: calc((var(--width) / 2800) * 340px);
}
#kv .kv-ttl p {
  font-size: calc((var(--width) / 2800) * 46px);
  font-weight: 400;
  line-height: calc((var(--width) / 2800) * 60px);
}
#kv .kv-movie {
  display: flex;
  align-items: center;
  margin-top: calc((var(--width) / 2800) * 20px);
  font-size: calc((var(--width) / 2800) * 36px);
  font-weight: 300;
  line-height: calc((var(--width) / 2800) * 30px);
  cursor: pointer;
}
#kv .kv-ttl p img {
  width: auto;
  height: 1.2vw;
  padding-right: 10px;
}
#kv .kv-logo {
  position: absolute;
  top: calc((var(--width) / 2800) * 30px);
  left: calc((var(--width) / 2800) * 40px);
  height: calc((var(--width) / 2800) * 64px);
}
#kv .kv-logo img {
  width: auto;
  height: 100%;
}
#kv .kv-buy {
  position: absolute;
  top: calc((var(--width) / 2800) * 40px);
  right: calc((var(--width) / 2800) * 40px);
  font-size: calc((var(--width) / 2800) * 30px);
  color: #fff;
  line-height: calc((var(--width) / 2800) * 36px);
}
#kv .kv-buy a {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  font-weight: 400;
}
#kv .kv-buy img {
  width: calc((var(--width) / 2800) * 30px);
  padding-left: 5px;
}

@media screen and (max-width: 768px) {
  #kv {
    background: url("../img/sp/kv_bg.jpg") no-repeat center/cover;
  }
  #kv .kv-ttl {
    display: flex;
    flex-direction: column;
    height: 80vh;
  }
  #kv .kv-ttl span {
    font-size: calc((var(--width) / 750) * 56px);
    line-height: calc((var(--width) / 750) * 120px);
  }
  #kv .kv-ttl h1 {
    margin-bottom: auto;
    font-size: calc((var(--width) / 750) * 128px);
    line-height: calc((var(--width) / 750) * 140px);
    letter-spacing: 0;
  }
  #kv .kv-ttl p {
    font-size: calc((var(--width) / 750) * 38px);
    line-height: calc((var(--width) / 750) * 69px);
  }
  #kv .kv-movie {
    margin-top: calc((var(--width) / 750) * 30px);
    font-size: calc((var(--width) / 750) * 32px);
    line-height: calc((var(--width) / 750) * 28px);
  }
  #kv .kv-ttl p img {
    height: calc((var(--width) / 750) * 26px);
    padding-right: calc((var(--width) / 750) * 15px);
  }
  #kv .kv-logo {
    top: calc((var(--width) / 750) * 20px);
    left: calc((var(--width) / 750) * 25px);
    height: calc((var(--width) / 750) * 46px);
  }
  #kv .kv-buy {
    top: calc((var(--width) / 750) * 35px);
    right: calc((var(--width) / 750) * 25px);
    font-size: calc((var(--width) / 750) * 26px);
  }
  #kv .kv-buy img {
    width: calc((var(--width) / 750) * 25px);
  }
}


/*
  about
------------*/

#about .about-wrapper {
  display: flex;
}
#about .about-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50%;
}
#about .about-logo img {
  width: calc((var(--width) / 2800) * 222px);
}
#about .about-text {
  width: 50%;
  padding-top: calc((var(--width) / 2800) * 180px);
  padding-bottom: calc((var(--width) / 2800) * 230px);
}
#about .about-text h2 {
  margin-bottom: calc((var(--width) / 2800) * 150px);
  font-size: calc((var(--width) / 2800) * 52px);
  font-weight: 300;
  line-height: calc((var(--width) / 2800) * 84px);
}
#about .about-text p {
  margin-top: calc((var(--width) / 2800) * 90px);
  font-size: calc((var(--width) / 2800) * 32px);
  line-height: calc((var(--width) / 2800) * 60px);
}

@media screen and (max-width: 768px) {
  #about .about-wrapper {
    flex-wrap: wrap;
    padding: 0 5%;
    padding-top: calc((var(--width) / 750) * 125px);
    padding-bottom: calc((var(--width) / 750) * 115px);
  }
  #about .about-logo {
    order: 2;
    width: 100%;
    margin-top: calc((var(--width) / 750) * 100px);
  }
  #about .about-logo img {
    width: calc((var(--width) / 750) * 116px);
  }
  #about .about-text {
    width: 100%;
    padding: 0;
  }
  #about .about-text h2 {
    margin-bottom: calc((var(--width) / 750) * 85px);
    font-size: calc((var(--width) / 750) * 40px);
    line-height: calc((var(--width) / 750) * 64px);
  }
  #about .about-text p {
    margin-top: calc((var(--width) / 750) * 75px);
    font-size: calc((var(--width) / 750) * 26px);
    line-height: calc((var(--width) / 750) * 50px);
  }
}


/*
  item
------------*/

#item h2 {
  padding-top: calc((var(--width) / 2800) * 400px);
  padding-bottom: calc((var(--width) / 2800) * 400px);
  text-align: center;
  font-size: calc((var(--width) / 2800) * 80px);
  font-weight: 400;
  line-height: calc((var(--width) / 2800) * 96px);
  font-family: "CharlevoixPro";
  letter-spacing: 2px;
}
#item .item-wrapper {
  display: flex;
  flex-wrap: wrap;
}
#item .item-box {
  width: 50%;
}
#item .item-slider {
  position: relative;
}
#item .item-slider .slider {
  margin-bottom: 0;
}
#item .item-slider .slider .slick-dots {
  bottom: calc((var(--width) / 2800) * 80px);
}
#item .item-slider .slider .slick-dots li {
  width: calc((var(--width) / 2800) * 26px);
  height: calc((var(--width) / 2800) * 26px);
}
#item .item-slider .slider .slick-dots li button {
  width: 100%;
  height: 100%;
  padding: 0;
}
#item .item-slider .slider .slick-dots li button::before {
  content: '';
  width: 100%;
  height: 100%;
  border: 1px solid #fff;
  border-radius: 100%;
  opacity: 1;
}
#item .item-slider .slider .slick-dots li.slick-active button::before {
  background: rgba(255, 255, 255, .4);
}
#item .item-slider .slider .slick-prev,
#item .item-slider .slider .slick-next {
  z-index: 99;
  width: calc((var(--width) / 2800) * 75px);
  height: 100%;
}
#item .item-slider .slider .slick-prev {
  left: 0;
}
#item .item-slider .slider .slick-next {
  right: 0;
}
#item .item-slider .slider .slick-prev::before,
#item .item-slider .slider .slick-next::before {
  content: '';
  display: block;
  width: 100%;
  height: calc((var(--width) / 2800) * 40px);
}
#item .item-slider .slider .slick-prev::before {
  left: calc((var(--width) / 2800) * 40px);
  background: url("../img/arrow_prev.png") no-repeat center/contain;
}
#item .item-slider .slider .slick-next::before {
  right: calc((var(--width) / 2800) * 40px);
  background: url("../img/arrow_next.png") no-repeat center/contain;
}
#item .item-slider p {
  position: absolute;
  bottom: calc((var(--width) / 2800) * 190px);
  left: 50%;
  transform: translateX(-50%);
  font-size: calc((var(--width) / 2800) * 40px);
  font-weight: 400;
  color: #fff;
  font-family: "CharlevoixPro";
}
#item .item-detail {
  display: flex;
  width: 100%;
  padding-top: calc((var(--width) / 2800) * 50px);
  padding-bottom: calc((var(--width) / 2800) * 120px);
  padding-left: calc((var(--width) / 2800) * 40px);
  padding-right: calc((var(--width) / 2800) * 40px);
}
#item .item-ttl {
  width: calc((var(--width) / 2800) * 1600px);
  margin-right: calc((var(--width) / 2800) * 40px);
}
#item .item-ttl h3 {
  font-size: calc((var(--width) / 2800) * 80px);
  font-weight: 400;
  font-family: "CharlevoixPro";
  letter-spacing: 2px;
}
#item .item-desc {
  width: calc((var(--width) / 2800) * 1080px);
}
#item .item-desc p {
  font-size: calc((var(--width) / 2800) * 28px);
  line-height: calc((var(--width) / 2800) * 56px);
}
#item .item-info {
  display: flex;
  align-items: center;
  margin-top: calc((var(--width) / 2800) * 35px);
  font-family: "CharlevoixPro";
  font-weight: 400;
}
#item .item-info .info-price {
  font-size: calc((var(--width) / 2800) * 26px);
}
#item .item-info span {
  width: calc((var(--width) / 2800) * 392px);
  margin-left: auto;
  padding: calc((var(--width) / 2800) * 20px) 0;
  text-align: center;
  font-size: calc((var(--width) / 2800) * 28px);
  font-weight: 400;
  color: #fff;
  background: #c9c5c0;
  border-radius: 50px;
  font-family: "CharlevoixPro";
  letter-spacing: 1px;
}
#item .item-info a {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: calc((var(--width) / 2800) * 392px);
  margin-left: auto;
  padding: calc((var(--width) / 2800) * 20px) 0;
  text-align: center;
  font-size: calc((var(--width) / 2800) * 28px);
  border: 1px solid #000;
  border-radius: 50px;
  transition: .5s;
  font-family: "CharlevoixPro";
  letter-spacing: 1px;
}
#item .item-info a:hover {
  color: #fff;
  background: #000;
  opacity: 1;
}
#item .item-info a img {
  width: 9%;
  padding-left: 5px;
}
#item .item-movie {
  display: flex;
  align-items: center;
  width: calc((var(--width) / 2800) * 392px);
  margin-top: calc((var(--width) / 2800) * 30px);
  margin-left: auto;
  padding: calc((var(--width) / 2800) * 15px);
  font-size: calc((var(--width) / 2800) * 28px);
  background: #dfdbd5;
  border-radius: 5px;
  cursor: pointer;
}
#item .item-movie p {
  margin: 0 auto;
  font-size: calc((var(--width) / 2800) * 28px);
}
#item .item-movie span {
  width: calc((var(--width) / 2800) * 94px);
  margin-left: auto;
}

@media screen and (max-width: 768px) {
  #item h2 {
    padding-top: calc((var(--width) / 750) * 210px);
    padding-bottom: calc((var(--width) / 750) * 210px);
    font-size: calc((var(--width) / 750) * 42px);
    letter-spacing: 0;
  }
  #item .item-box {
    width: 100%;
  }
  #item .item-slider .slider .slick-prev,
  #item .item-slider .slider .slick-next {
    width: calc((var(--width) / 750) * 55px);
    height: 100%;
  }
  #item .item-slider .slider .slick-prev::before,
  #item .item-slider .slider .slick-next::before {
    height: calc((var(--width) / 750) * 26px);
  }
  #item .item-slider .slider .slick-prev::before {
    left: calc((var(--width) / 750) * 30px);
  }
  #item .item-slider .slider .slick-next::before {
    right: calc((var(--width) / 750) * 30px);
  }
  #item .item-slider .slider .slick-dots {
    bottom: calc((var(--width) / 750) * 25px);
  }
  #item .item-slider .slider .slick-dots li {
    width: calc((var(--width) / 750) * 16px);
    height: calc((var(--width) / 750) * 16px);
  }
  #item .item-slider p {
    bottom: calc((var(--width) / 750) * 95px);
    width: fit-content;
    font-size: calc((var(--width) / 750) * 32px);
  }
  #item .item-detail {
    display: block;
    padding: 0 5% calc((var(--width) / 750) * 110px);
  }
  #item .item-ttl {
    width: 100%;
  }
  #item .item-ttl h3 {
    padding: calc((var(--width) / 750) * 30px) 0;
    font-size: calc((var(--width) / 750) * 38px);
    line-height: calc((var(--width) / 750) * 60px);
  }
  #item .item-desc {
    width: 100%;
  }
  #item .item-desc p {
    font-size: calc((var(--width) / 750) * 22px);
    line-height: calc((var(--width) / 750) * 38px);
  }
  #item .item-info {
    margin-top: calc((var(--width) / 750) * 35px);
  }
  #item .item-info .info-price {
    font-size: calc((var(--width) / 750) * 22px);
    line-height: calc((var(--width) / 750) * 36px);
  }
  #item .item-info span {
    width: fit-content;
    min-width: calc((var(--width) / 750) * 232px);
    padding: 10px 30px;
    font-size: calc((var(--width) / 750) * 22px);
  }
  #item .item-info a {
    width: fit-content;
    min-width: calc((var(--width) / 750) * 232px);
    padding: 10px 30px;
    font-size: calc((var(--width) / 750) * 22px);
  }
  #item .item-info a img {
    width: 20%;
  }
  #item .item-movie {
    justify-content: flex-end;
    width: 50%;
    margin-top: calc((var(--width) / 750) * 15px);
    padding: calc((var(--width) / 750) * 10px);
    font-size: calc((var(--width) / 750) * 22px);
  }
  #item .item-movie p {
    font-size: calc((var(--width) / 750) * 22px);
  }
  #item .item-movie span {
    width: calc((var(--width) / 750) * 94px);
  }
}


/*
  lineup
------------*/

#lineup {
  padding-top: calc((var(--width) / 2800) * 200px);
}
#lineup .lineup-wrapper {
  display: flex;
  flex-wrap: wrap;
  padding-left: calc((var(--width) / 2800) * 120px);
  padding-right: calc((var(--width) / 2800) * 120px);
}
#lineup .lineup-wrapper h2 {
  width: 100%;
  text-align: center;
  font-size: calc((var(--width) / 2800) * 40px);
  font-weight: 400;
  font-family: "CharlevoixPro";
}
#lineup .lineup-box {
  width: calc(95% / 3);
  margin-top: calc((var(--width) / 2800) * 85px);
  margin-left: 2.5%;
}
#lineup .lineup-box:nth-of-type(3n + 1) {
  margin-left: 0;
}
#lineup .lineup-image {
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: calc((var(--width) / 2800) * 190px) 0;
  background: #fff;
}
#lineup .lineup-image img {
  max-height: calc((var(--width) / 2800) * 582px);
}
#lineup .lineup-more {
  position: absolute;
  bottom: calc((var(--width) / 2800) * 100px);
  left: 50%;
  transform: translateX(-50%);
  padding-bottom: 2px;
  font-size: calc((var(--width) / 2800) * 26px);
  font-family: "CharlevoixPro";
  font-weight: 400;
  transition: .5s;
}
#lineup .lineup-image:hover .lineup-more {
  opacity: 0;
}
#lineup .lineup-color {
  display: flex;
  position: absolute;
  z-index: 999;
  bottom: calc((var(--width) / 2800) * 30px);
  right: calc((var(--width) / 2800) * 25px);
}
#lineup .lineup-color div {
  display: flex;
  align-items: center;
}
#lineup .lineup-image:hover .lineup-color div {
  color: #fff;
}
#lineup .lineup-color div + div {
  margin-left: calc((var(--width) / 2800) * 25px);
}
#lineup .lineup-color p {
  margin-left: calc((var(--width) / 2800) * 10px);
  font-size: calc((var(--width) / 2800) * 26px);
}
#lineup .lineup-color span {
  display: block;
  width: calc((var(--width) / 2800) * 42px);
  height: calc((var(--width) / 2800) * 42px);
  background: #000;
  border-radius: 100%;
}
#lineup .lineup-color .brown {
  background: #442b11;
}
#lineup .lineup-color .brick {
  background: #9e5037;
}
#lineup .lineup-color .ironblack {
  background: #2d2623;
}
#lineup .lineup-color .deepbrown {
  background: #2e2523;
}
#lineup .lineup-color .graybrown {
  background: #867157;
}
#lineup .lineup-color .reddishgray {
  background: #856f6d;
}
#lineup .lineup-color .parchment {
  background: #e1e1d3;
}
#lineup .lineup-color .bluishbrown {
  background: #1b254a;
}
#lineup .lineup-color .black {
  background: #0a0404;
}
#lineup .lineup-color .ivoryblack {
  background: #36302e;
}
#lineup .lineup-color .olivegreen {
  background: #4d543b;
}
#lineup .lineup-hover {
  overflow-y: auto;
  position: absolute;
  z-index: 99;
  left: 0;
  bottom: -50px;
  width: 100%;
  max-height: 100%;
  padding: calc((var(--width) / 2800) * 60px) calc((var(--width) / 2800) * 60px) calc((var(--width) / 2800) * 80px);
  font-size: calc((var(--width) / 2800) * 24px);
  line-height: calc((var(--width) / 2800) * 48px);
  color: #fff;
  background: rgba(0, 0, 0, .55);
  opacity: 0;
  transition: .5s;
}
#lineup .lineup-image:hover .lineup-hover {
  bottom: 0;
  opacity: 1;
}
#lineup .lineup-spec {
  margin-top: calc((var(--width) / 2800) * 70px);
}
#lineup .lineup-detail {
  display: flex;
  margin-top: calc((var(--width) / 2800) * 35px);
  font-family: "CharlevoixPro";
  font-weight: 400;
}
#lineup .lineup-info {
  font-size: calc((var(--width) / 2800) * 26px);
  line-height: calc((var(--width) / 2800) * 40px);
}
#lineup .lineup-btn {
  margin-left: auto;
}
#lineup .lineup-btn span {
  display: block;
  padding: calc((var(--width) / 2800) * 20px) calc((var(--width) / 2800) * 40px);
  text-align: center;
  font-size: calc((var(--width) / 2800) * 28px);
  color: #fff;
  background: #c9c5c0;
  border-radius: 50px;
  font-family: "CharlevoixPro";
  letter-spacing: 1px;
}
#lineup .lineup-btn a {
  display: block;
  position: relative;
  padding: calc((var(--width) / 2800) * 20px) calc((var(--width) / 2800) * 70px);
  text-align: center;
  font-size: calc((var(--width) / 2800) * 28px);
  border: 1px solid #000;
  border-radius: 50px;
  transition: .5s;
  font-family: "CharlevoixPro";
  letter-spacing: 1px;
}
#lineup .lineup-btn a:hover {
  color: #fff;
  background: #000;
  opacity: 1;
}
#lineup .lineup-btn a img {
  position: absolute;
  top: calc((var(--width) / 2800) * 15px);
  right: calc((var(--width) / 2800) * 35px);
  width: calc((var(--width) / 2800) * 25px);
}
#lineup .lineup-store {
  width: fit-content;
  margin-top: calc((var(--width) / 2800) * 100px);
  margin-bottom: calc((var(--width) / 2800) * 200px);
  margin-left: auto;
  padding-left: calc((var(--width) / 2800) * 120px);
  padding-right: calc((var(--width) / 2800) * 120px);
  text-align: right;
}
#lineup .lineup-store a {
  display: inline-flex;
  align-items: flex-start;
  position: relative;
  margin-top: calc((var(--width) / 2800) * 45px);
  padding: calc((var(--width) / 2800) * 15px) calc((var(--width) / 2800) * 70px);
  font-size: calc((var(--width) / 2800) * 28px);
  border: 1px solid #000;
  border-radius: 50px;
  transition: .5s;
}
#lineup .lineup-store a:hover {
  color: #fff;
  background: #000;
  opacity: 1;
}
#lineup .lineup-store a img {
  position: absolute;
  top: calc((var(--width) / 2800) * 15px);
  right: calc((var(--width) / 2800) * 35px);
  width: calc((var(--width) / 2800) * 25px);
}
#lineup .lineup-mark {
  display: flex;
  align-items: center;
  font-size: calc((var(--width) / 2800) * 26px);
  line-height: calc((var(--width) / 2800) * 40px);
}
#lineup .lineup-mark img {
  width: calc((var(--width) / 2800) * 142px);
  padding-left: calc((var(--width) / 2800) * 45px);
}

@media screen and (max-width: 768px) {
  #lineup {
    padding-top: calc((var(--width) / 750) * 80px);
  }
  #lineup .lineup-wrapper {
    padding: 0 5%;
  }
  #lineup .lineup-wrapper h2 {
    font-size: calc((var(--width) / 750) * 42px);
  }
  #lineup .lineup-box,
  #lineup .lineup-box:nth-of-type(3n + 1) {
    width: calc(95% / 2);
    margin-top: calc((var(--width) / 750) * 70px);
    margin-left: 5%;
  }
  #lineup .lineup-box:nth-of-type(2n + 1) {
    margin-left: 0;
  }
  #lineup .lineup-image {
    overflow: visible;
    padding: calc((var(--width) / 750) * 50px) 0;
  }
  #lineup .lineup-image img {
    max-height: calc((var(--width) / 750) * 328px);
  }
  #lineup .lineup-more {
    bottom: calc((var(--width) / 750) * 20px);
    font-size: calc((var(--width) / 750) * 20px);
    border-bottom: 1px solid #000;
    cursor: pointer;
  }
  #lineup .lineup-image:hover .lineup-more {
    opacity: 1;
  }
  #lineup .lineup-image.active .lineup-more {
    opacity: 0;
  }
  #lineup .lineup-color {
    bottom: calc((var(--width) / 750) * 22px);
    right: calc((var(--width) / 750) * 22px);
  }
  #lineup .lineup-color span {
    width: calc((var(--width) / 750) * 18px);
    height: calc((var(--width) / 750) * 18px);
  }
  #lineup .lineup-hover {
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    width: 110%;
    height: 110%;
    max-height: 110%;
    top: -5%;
    left: -5%;
    padding: calc((var(--width) / 750) * 45px) calc((var(--width) / 750) * 35px) 0;
    font-size: calc((var(--width) / 750) * 20px);
    line-height: calc((var(--width) / 750) * 36px);
    pointer-events: none;
  }
  #lineup .lineup-image:hover .lineup-hover {
    opacity: 0;
  }
  #lineup .lineup-image.active .lineup-hover {
    opacity: 1;
    pointer-events: auto;
  }
  #lineup .lineup-spec {
    display: none;
  }
  #lineup .lineup-close {
    margin: auto 0;
    text-align: center;
  }
  #lineup .lineup-close p {
    display: inline-block;
    padding-bottom: 2px;
    border-bottom: 1px solid #fff;
    font-size: calc((var(--width) / 750) * 22px);
    line-height: 1;
    cursor: pointer;
    font-family: "CharlevoixPro";
  }
  #lineup .lineup-detail {
    display: block;
    margin-top: calc((var(--width) / 750) * 25px);
  }
  #lineup .lineup-info {
    font-size: calc((var(--width) / 750) * 22px);
    line-height: calc((var(--width) / 750) * 34px);
  }
  #lineup .lineup-btn {
    margin-top: 10px;
    text-align: center;
  }
  #lineup .lineup-btn span {
    display: inline-block;
    width: calc((var(--width) / 750) * 232px);
    padding: calc((var(--width) / 750) * 15px) 0;
    font-size: calc((var(--width) / 750) * 22px);
  }
  #lineup .lineup-btn a {
    display: inline-flex;
    justify-content: center;
    align-items: flex-start;
    width: calc((var(--width) / 750) * 181px);
    padding: calc((var(--width) / 750) * 15px) 0;
    font-size: calc((var(--width) / 750) * 22px);
  }
  #lineup .lineup-btn a img {
    position: relative;
    top: 0;
    right: 0;
    width: calc((var(--width) / 750) * 17px);
    margin-left: 5px;
  }
  #lineup .lineup-store {
    width: 100%;
    margin: calc((var(--width) / 750) * 80px) auto calc((var(--width) / 750) * 170px);
    padding: 0 5%;
    text-align: center;
  }
  #lineup .lineup-mark {
    display: block;
    font-size: calc((var(--width) / 750) * 20px);
    line-height: calc((var(--width) / 750) * 34px);
  }
  #lineup .lineup-mark img {
    width: 20vw;
    padding: 20px 0;
  }
  #lineup .lineup-store a {
    margin-top: 0;
    padding: 10px 30px;
    font-size: calc((var(--width) / 750) * 20px);
  }
  #lineup .lineup-store a img {
    width: calc((var(--width) / 750) * 17px);
    top: calc((var(--width) / 750) * 15px);
    right: calc((var(--width) / 750) * 30px);
  }
}


/*
  movie
------------*/

#movie {
  padding-top: calc((var(--width) / 2800) * 320px);
}
#movie .movie-wrapper {
  display: flex;
  flex-wrap: wrap;
  padding-left: calc((var(--width) / 2800) * 120px);
  padding-right: calc((var(--width) / 2800) * 120px);
}
#movie .movie-wrapper h2 {
  width: 100%;
  margin-bottom: calc((var(--width) / 2800) * 120px);
  text-align: center;
  font-size: calc((var(--width) / 2800) * 30px);
  font-weight: 300;
}
#movie .movie-box {
  position: relative;
  width: calc(97.5% / 2);
  margin-top: calc((var(--width) / 2800) * 60px);
  margin-left: 2.5%;
  cursor: pointer;
}
#movie .movie-box:nth-of-type(2n + 1) {
  margin-left: 0;
}
#movie .movie-icon {
  position: absolute;
  top: calc((var(--width) / 2800) * 40px);
  right: calc((var(--width) / 2800) * 30px);
  width: calc((var(--width) / 2800) * 81px);
  text-align: right;
}
#movie .movie-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: fit-content;
  text-align: center;
  color: #fff;
}
#movie .movie-overlay p {
  font-size: calc((var(--width) / 2800) * 28px);
}
#movie .movie-overlay h3 {
  margin-top: calc((var(--width) / 2800) * 55px);
  margin-bottom: calc((var(--width) / 2800) * 65px);
  font-size: calc((var(--width) / 2800) * 78px);
  font-weight: 100;
  font-family: "CharlevoixPro";
  letter-spacing: 2px;
}
#movie .movie-overlay img {
  width: calc((var(--width) / 2800) * 75px);
}
#movie .movie-overlay span {
  display: block;
  margin-top: calc((var(--width) / 2800) * 15px);
  font-size: calc((var(--width) / 2800) * 26px);
  font-weight: 400;
  font-family: "CharlevoixPro";
  letter-spacing: 2px;
}

@media screen and (max-width: 768px) {
  #movie {
    padding-top: calc((var(--width) / 750) * 175px);
  }
  #movie .movie-wrapper {
    padding: 0 5%;
  }
  #movie .movie-wrapper h2 {
    font-size: calc((var(--width) / 750) * 24px);
    line-height: calc((var(--width) / 750) * 40px);
  }
  #movie .movie-box {
    width: 100%;
    margin: 0 auto;
  }
  #movie .movie-box + .movie-box {
    margin-top: calc((var(--width) / 750) * 40px);
  }
  #movie .movie-icon {
    display: none;
  }
  #movie .movie-overlay p {
    font-size: calc((var(--width) / 750) * 24px);
  }
  #movie .movie-overlay h3 {
    margin: 0 auto;
    font-size: calc((var(--width) / 750) * 52px);
    line-height: calc((var(--width) / 750) * 78px);
  }
  #movie .movie-overlay img {
    width: calc((var(--width) / 750) * 42px);
  }
  #movie .movie-overlay span {
    margin-top: calc((var(--width) / 750) * 10px);
    font-size: calc((var(--width) / 750) * 20px);
  }
}


/*
  modal
------------*/

#modal {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, .9);
  opacity: 0;
  pointer-events: none;
  transition: .5s;
}
#modal.active {
  opacity: 1;
  pointer-events: auto;
}
#modal .modal-close {
  position: absolute;
  top: calc((var(--width) / 2800) * 55px);
  right: calc((var(--width) / 2800) * 45px);
  width: calc((var(--width) / 2800) * 58px);
  cursor: pointer;
}
#modal .modal-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc((var(--width) / 2800) * 1680px);
  height: calc((var(--width) / 2800) * 950px);
  background: #fff;
}

@media screen and (max-width: 768px) {
  #modal .modal-close {
    top: calc((var(--width) / 750) * 25px);
    right: calc((var(--width) / 750) * 30px);
    width: calc((var(--width) / 750) * 42px);
  }
  #modal .modal-inner {
    width: 100vw;
    height: 56.25vw;
  }
}