:root {
  --index_margin_60: clamp(40px, 17.015px + 2.985vw, 60px);
  --index_margin_70: clamp(40px, 5.522px + 4.478vw, 70px);
  --index_margin_180: clamp(90px, -13.433px + 13.433vw, 180px);
}

main {
  position: relative;
  z-index: 0;
}
main .container {
  width: 93%;
  max-width: max(800px, 53.33vw);
  margin: 0 auto;
}
main section {
  width: 100%;
  height: auto;
}
main img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
main p,
main span,
main a,
main dt,
main dd {
  font-size: clamp(13px, 10.701px + 0.299vw, 15px);
  transition: color 0.35s, transform 0.35s;
}
main .fvArea .img {
  width: 100%;
  height: auto;
}
main .introArea {
  background-color: #EEF0F2;
  padding: 60px 0 90px;
  margin-bottom: clamp(60px, -72.164px + 17.164vw, 175px);
}
@media screen and (max-width: 770px) {
  main .introArea {
    padding: 60px 0 70px;
  }
}
main .introArea h1 {
  font-size: clamp(17px, 6.657px + 1.343vw, 26px);
  margin-bottom: var(--index_margin_60);
  text-align: center;
  letter-spacing: 0.13em;
}
main .introArea p {
  width: 100%;
  max-width: max(600px, 40vw);
  margin: 0 auto;
}
main .featuerArea h2 {
  font-size: clamp(18px, 7.657px + 1.343vw, 27px);
  letter-spacing: 0.13em;
  margin-bottom: var(--index_margin_60);
}
main .featuerArea small {
  display: block;
  font-size: clamp(10px, 7.701px + 0.299vw, 12px);
  line-height: 1.38;
}
main .featuerArea .textBox_left {
  width: 100%;
  max-width: max(400px, 28.2vw);
  margin: 0 auto;
  margin-left: 0;
}
main .featuerArea .area01 {
  position: relative;
  width: 100%;
  height: auto;
  padding-top: 60px;
  padding-bottom: 31.67vw;
  margin-bottom: var(--index_margin_180);
}
@media screen and (max-width: 770px) {
  main .featuerArea .area01 {
    display: none;
  }
}
main .featuerArea .area01 div[class^=img] {
  position: absolute;
}
main .featuerArea .area01 .img_01 {
  top: 0;
  right: 0;
  width: 33.33vw;
}
main .featuerArea .area01 .img_02 {
  bottom: 0;
  right: 36vw;
  width: 16.33vw;
}
main .featuerArea .area01 .img_03 {
  left: 5.67vw;
  bottom: 9.4vw;
  width: 19.93vw;
}
main .featuerArea .area01_sp {
  width: 100%;
  display: none;
  margin-bottom: var(--index_margin_180);
}
@media screen and (max-width: 770px) {
  main .featuerArea .area01_sp {
    display: block;
  }
}
main .featuerArea .area01_sp p {
  margin-bottom: var(--index_margin_60);
}
main .featuerArea .area01_sp .imgWrap {
  width: 96.5%;
  position: relative;
  margin: 0 auto;
  margin-right: 0;
  z-index: 0;
  padding-bottom: 60px;
  margin-bottom: var(--index_margin_60);
}
main .featuerArea .area01_sp .imgWrap .img_01 {
  width: 66.4vw;
}
main .featuerArea .area01_sp .imgWrap .img_02 {
  position: absolute;
  width: 37.33vw;
  bottom: 0;
  right: 0;
  z-index: 1;
}
main .featuerArea .area01_sp .img_03 {
  width: 46vw;
  margin: 0 auto;
  margin-left: 0;
}
main .featuerArea .area02 {
  margin-bottom: var(--index_margin_180);
}
main .featuerArea .area02 h2 {
  text-align: center;
}
main .featuerArea .area02 p {
  margin-bottom: var(--index_margin_60);
}
@media screen and (max-width: 770px) {
  main .featuerArea .area02 .img {
    margin-bottom: var(--index_margin_60);
  }
}
main .featuerArea .imgsBox {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 1.46vw 1.46vw;
}
@media screen and (max-width: 770px) {
  main .featuerArea .imgsBox {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    gap: 10px;
  }
}
main .featuerArea .imgsBox .img {
  width: 100%;
  position: relative;
  margin-bottom: 7px;
}
main .featuerArea .imgsBox .img::after {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 133%;
}
main .featuerArea .imgsBox .img img {
  position: absolute;
  left: 0;
  top: 0;
}
main .featuerArea .area03 {
  position: relative;
  width: 100%;
  height: max(423.19px, 49.58vw);
  padding-top: 60px;
  margin-bottom: var(--index_margin_180);
}
@media screen and (max-width: 770px) {
  main .featuerArea .area03 {
    display: none;
  }
}
main .featuerArea .area03 p {
  margin-bottom: var(--index_margin_60);
}
main .featuerArea .area03 p:last-child {
  margin-bottom: 0;
}
main .featuerArea .area03 .imgsBox {
  position: absolute;
  top: 0;
  right: 0;
  width: 31.67vw;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 20px 20px;
}
main .featuerArea .area03_sp {
  width: 100%;
  display: none;
  margin-bottom: var(--index_margin_180);
}
@media screen and (max-width: 770px) {
  main .featuerArea .area03_sp {
    display: block;
  }
}
main .featuerArea .area03_sp .imgsBox {
  width: 100%;
  margin-bottom: var(--index_margin_60);
}
main .featuerArea .area03_sp .imgsBox:last-child {
  margin-bottom: 0;
}
main .outline {
  margin-bottom: var(--index_margin_60);
}
main .outline h3 {
  font-size: clamp(20px, 14.254px + 0.746vw, 25px);
  margin-bottom: clamp(7px, 4.701px + 0.299vw, 9px);
  text-align: center;
}
main .outline span {
  font-size: clamp(12px, 9.701px + 0.299vw, 14px);
  letter-spacing: 0.15em;
  text-align: center;
  display: block;
  line-height: 1;
}
main .productInfoArea {
  background-color: #EEF0F2;
  padding: clamp(50px, -7.463px + 7.463vw, 100px) 0;
  margin-bottom: var(--index_margin_180);
}
main .productInfoArea li {
  margin-bottom: clamp(15px, 9.254px + 0.746vw, 20px);
}
main .productInfoArea li .line {
  width: 1px;
  height: clamp(12px, 9.701px + 0.299vw, 14px);
  margin: 0 clamp(15px, 9.254px + 0.746vw, 20px);
  display: inline-block;
  background-color: #515150;
}
main .movieArea {
  margin-bottom: var(--index_margin_180);
}
main .movieArea .container_1000 {
  width: 93%;
  max-width: max(1000px, 66.67vw);
  margin: 0 auto;
}
main .movieArea .movieBox {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
@media screen and (max-width: 770px) {
  main .movieArea .movieBox {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 1fr 1fr;
  }
}
main .movieArea li {
  width: 100%;
  height: auto;
  position: relative;
  z-index: 0;
}
main .movieArea li.comingSoon {
  background-color: #B0B2AF;
  box-shadow: inset 1px 1px 10px rgba(0, 0, 0, 0.16);
}
main .movieArea li::after {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  z-index: -1;
}
main .movieArea li a {
  position: absolute;
  width: 100%;
  height: 100%;
}
main .movieArea li a img {
  transition: filter 0.35s ease;
}
main .movieArea li a:hover img {
  filter: brightness(0.7);
}
main .movieArea li p {
  width: 100%;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
main .movieArea li p .en {
  font-size: clamp(14px, 11.701px + 0.299vw, 16px);
}
main .bannerArea {
  margin-bottom: var(--index_margin_180);
}
main .bannerArea a {
  width: 100%;
  max-width: max(600px, 40vw);
  margin: 0 auto;
  display: block;
}
main .bannerArea a img {
  transition: filter 0.35s ease;
}
main .bannerArea a:hover img {
  filter: brightness(0.6);
}
main .releaseDaysArea {
  margin-bottom: var(--index_margin_180);
}
main .releaseDaysArea .box {
  margin-bottom: var(--index_margin_60);
}
main .releaseDaysArea .box .line {
  width: 100%;
  height: 1px;
  display: block;
  background: #ffffff;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgb(0, 0, 0) 50%, rgba(255, 255, 255, 0) 100%);
}
main .releaseDaysArea .box .date {
  font-size: clamp(17px, 7.806px + 1.194vw, 25px);
  text-align: center;
  margin: clamp(30px, 18.507px + 1.493vw, 40px) 0 clamp(20px, 8.507px + 1.493vw, 30px);
}
main .releaseDaysArea .box .date .en {
  font-size: clamp(23px, 13.806px + 1.194vw, 31px);
}
main .releaseDaysArea p {
  text-align: center;
  margin-bottom: clamp(30px, 18.507px + 1.493vw, 40px);
}
@media screen and (max-width: 770px) {
  main .releaseDaysArea p {
    text-align: left;
  }
}
main .releaseDaysArea p a {
  text-decoration: underline;
}
main .releaseDaysArea p a:hover {
  color: #B0B2AF;
}

@keyframes fadeInOut {
  0% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
#loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.8s ease-in-out, visibility 0.8s;
}
#loader.loaded {
  opacity: 0;
  visibility: hidden;
}
#loader .tagline {
  font-size: clamp(17px, 6.657px + 1.343vw, 26px);
  letter-spacing: 0.15em;
}
#loader .char {
  display: inline-block;
  opacity: 1;
  animation: fadeInOut 2.3s forwards;
}