@charset "UTF-8";

:root {
  --lpSetSize: (100vw / 1400);
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  box-sizing: border-box;
}

ul li {
  list-style: none;
}

.feature {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

body::-webkit-scrollbar {
  display: none;
}

.l-header {
  display: none;
}

.l-footer {
  padding: 0;
}

.pc-footer {
  margin: 0;
}

.l-container {
  width: 100%;
}

#feature video {
  width: 100%;
  height: 100dvh;
  display: block;
  object-fit: cover;
}

.main_content {
  height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.feature__inner {
  flex: 1;
  min-height: 0;
}

.image-modal__content a {
  color: #000;
  transition: all 0.3s ease-in-out;
  transform: none;
  text-decoration: none;
}

.image-modal__content a:hover {
  opacity: .7;
}

/*-------------------------
 TOP_切り替え
-------------------------*/
.main_content {
  position: relative;
  z-index: 1;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.feature .splide__slide img {
  cursor: pointer;
}


/*-------------------------
 movie_arrow
-------------------------*/
#feature .movie p {
  font-size: calc(28 * var(--lpSetSize));
  letter-spacing: -0.02em;
  color: #fff;
  position: absolute;
  bottom: calc(100 * var(--lpSetSize));
  left: 50%;
  transform: translate(-50%);
  font-family: "montserrat", sans-serif;
  font-weight: 400;
  font-style: italic;
}

#feature .movie_arrow {
  display: flex;
  align-items: center;
  position: absolute;
  bottom: calc(20 * var(--lpSetSize));
  left: 50%;
  transform: translate(-50%);
  width: calc(2 * var(--lpSetSize));
  height: calc(70 * var(--lpSetSize));
  overflow: hidden;
}

#feature .movie_arrow:before {
  position: absolute;
  top: 0;
  z-index: 1;
  display: block;
  width: calc(2 * var(--lpSetSize));
  height: calc(70 * var(--lpSetSize));
  background-color: #fff;
  animation: extendY 2s ease-in-out infinite;
  content: "";
}

@keyframes extendY {
  0% {
    height: 0;
    transform: translateY(0);
    opacity: 0;
  }

  1% {
    transform: translateY(0);
    opacity: 0;
  }

  2% {
    heigt: 0vw;
    opacity: 1;
  }

  28% {
    transform: translateY(0);
  }

  32% {
    height: calc(70 * var(--lpSetSize));
  }

  90% {
    transform: translateY(calc(70 * var(--lpSetSize)));
    height: calc(70 * var(--lpSetSize));
    opacity: 1;
  }

  91% {
    opacity: 0;
  }

  100% {
    height: 0;
    transform: translateY(0);
    opacity: 0;
  }
}

/*-------------------------
 modal
-------------------------*/
.feature .splide__slide img {
  cursor: pointer;
}

.image-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

.image-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.image-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(181, 241, 204, 0.75);
  opacity: 0;
  transition: opacity 0.4s ease;
}

.image-modal.is-open .image-modal__overlay {
  opacity: 1;
}

.image-modal__content {
  position: relative;
  z-index: 2;
  height: 100vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
  opacity: 0;
  transform: translateY(0);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.image-modal.is-open .image-modal__content {
  opacity: 1;
  transform: translateY(0);
}

.image-modal__close {
  position: fixed;
  top: calc(92 * var(--lpSetSize));
  right: calc(283 * var(--lpSetSize));
  z-index: 20;
  width: calc(46 * var(--lpSetSize));
  height: calc(46 * var(--lpSetSize));
  border: 0;
  background: transparent;
  cursor: pointer;
}

.image-modal__close::before,
.image-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(46 * var(--lpSetSize));
  height: calc(2 * var(--lpSetSize));
  background: #000;
  transform-origin: center;
}

.image-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.image-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.image-modal__list {
  width: calc(700 * var(--lpSetSize));
  margin: calc(102 * var(--lpSetSize)) auto calc(140 * var(--lpSetSize)) calc(327 * var(--lpSetSize));
  display: flex;
  flex-direction: column;
  gap: calc(101 * var(--lpSetSize));
}

.image-modal__item {
  width: 100%;
  position: relative;
  display: flex;
  align-items: end;
}

.image-modal__figure {
  margin: 0;
  width: calc(481 * var(--lpSetSize));
}

.image-modal__figure img {
  display: block;
  width: 100%;
  height: auto;
}

/*-------------------------
 main
-------------------------*/
.image {
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.row {
  flex: 1;
  min-height: 0;
  display: flex;
}

.row--bottom {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  min-height: 0;
}

.splide {
  flex: 1;
  min-width: 0;
  min-height: 0;
  height: 100%;
}

.row--bottom .splide {
  height: 100%;
}

.splide__track,
.splide__list,
.splide__slide {
  height: 100%;
}

.splide__slide {
  overflow: hidden;
}

.splide__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}

.text_area {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.text_area img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.page_bottom {
  background: #FFCFEF;
  padding: calc(0 * var(--lpSetSize)) calc(19 * var(--lpSetSize));
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  gap: calc(0 * var(--lpSetSize));
}

.staff {
  min-width: 0;
}

.staff p,
.staff_txt p {
  margin: 0;
  color: #fff;
}

.staff_txt p:nth-of-type(1) {
  font-size: calc(18 * var(--lpSetSize));
  letter-spacing: 0.05em;
  line-height: 2;
  font-family: "montserrat", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.staff_txt p:nth-of-type(2) {
  font-size: calc(14 * var(--lpSetSize));
  letter-spacing: 0.035em;
  line-height: 1.5;
  overflow: hidden;
  display: -webkit-box;
  font-family: "neue-haas-grotesk-display", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.page_bottom .btn img {
  width: calc(90 * var(--lpSetSize));
  height: auto;
  display: block;
}

/*-------------------------
 credit
-------------------------*/
.image-modal__credit {
  width: fit-content;
  text-align: left;
  margin-left: calc(31 * var(--lpSetSize));
  margin-bottom: calc(-9 * var(--lpSetSize));
}

.credit-inner {
  width: fit-content;
}

.credit-inner a {
  font-size: calc(18 * var(--lpSetSize));
  line-height: 2;
  letter-spacing: 0.05em;
  color: #000;
  text-decoration: none;
  font-family: "neue-haas-grotesk-display", sans-serif;
  font-weight: 500;
  font-style: normal;
}
