/* top__mv 基本共通&縦 */
/* ============================================ */
img {
  max-width: 100%;
}
html {
  overflow: hidden;
  background: linear-gradient(
    132deg,
    rgba(255, 255, 255, 1) 0%,
    rgba(242, 244, 249, 1) 38%,
    rgba(234, 238, 245, 1) 51%,
    rgba(228, 233, 242, 1) 100%
  );
  height: 100dvh; /* CSS変数をサポートしていないブラウザ用のフォールバック */
  /* height: calc(var(--vh, 1vh) * 100); */
}
body {
  background: linear-gradient(
    132deg,
    rgba(255, 255, 255, 1) 0%,
    rgba(242, 244, 249, 1) 38%,
    rgba(234, 238, 245, 1) 51%,
    rgba(228, 233, 242, 1) 100%
  );
  overflow: hidden;
  height: 100dvh;
  /* height: calc(var(--vh, 1vh) * 100); */
}

.inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100dvh;
}

.top__mv {
  display: flex;
  flex-direction: column;
  text-align: center;
  width: 100%;
  height: 100%;
}

.top__mv__img {
  flex-grow: 1;
  max-width: 100%;
  width: auto;
  /* height: 53vh; */
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.top__mv__img img {
  max-height: 90%;
  height: auto;
  width: auto;
}

.top__mv__txt {
  padding-bottom: 5%;
  padding-top: 5%;
  display: flex;
  &::before,
  &::after {
    content: "";
    display: block;
    width: 10%;
  }
}

.top__mv__txtInner {
  flex-grow: 1;
}

.top__mv__txt h1 {
  margin-bottom: 25px;
}

.top__mv__txt h1 img {
  max-width: 542px;
  margin-bottom: 15px;
  width: calc(542 / 600 * 100%);
}

.top__mv__txt h1 span {
  display: block;
  text-align: center;
  font-size: calc(28 / 744 * 100vw);
  letter-spacing: 0.2em;
}

.top__mv__txt ul {
  display: flex;
  flex-wrap: wrap;
  gap: 18px calc(30 / 600 * 100%);
  justify-content: center;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.top__mv__txt ul li {
  aspect-ratio: 180 / 135;
  position: relative;
  z-index: 10;
  width: calc(180 / 600 * 100%);
}

.top__mv__txt ul a {
  -moz-box-shadow: 0px 0px 20px 0px rgba(95, 94, 94, 0.1);
  -webkit-box-shadow: 0px 0px 20px 0px rgba(95, 94, 94, 0.1);
  -ms-box-shadow: 0px 0px 20px 0px rgba(95, 94, 94, 0.1);
  box-shadow: 0px 0px 20px 0px rgba(95, 94, 94, 0.1);
  align-items: center;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 100%;
  border-radius: 24px;
}

.top__mv__txt ul span {
  display: block;
  text-align: center;
}

.top__mv__txt ul em {
  font-size: calc(32 / 744 * 100vw);
  letter-spacing: 0;

  &::after {
    content: "";
    display: block;
    height: 1px;
    width: calc(64 / 744 * 100vw);
    margin: 10px auto 0;
  }
}

.top__mv__txt ul span {
  letter-spacing: 0;
  font-size: calc(14 / 744 * 100vw);

  span {
    display: inline-block;
  }
}

.top__mv__txt ul span br {
  display: none;
}

.top__mv__txt ul li {
  br {
    display: none;
  }
  &.beige {
    em {
      &::after {
        background: #e1c0b4;
      }
    }
  }
  &.vivid {
    em {
      &::after {
        background: #B90081;
      }
    }
  }
  &.mix {
    em {
      &::after {
        background: linear-gradient(to right, #e1c0b4 0%, #e1c0b4 50%,#B90081 50%,#B90081 100%);
      }
    }
  }
  &.adjust {
    em {
      &::after {
        background: #9D85CB;
      }
    }
  }
  &.achromatic {
    em {
      font-size: calc(24 / 744 * 100vw);

      &::after {
        background: #C3B969;
      }
    }

  }
}
@media screen and (orientation: portrait) {
  .top__mv__img {
    align-items: center;
    max-height: 56dvh;
    padding-top: 5%;
  }
}
/* 縦、かつ 599以下（SPサイズとして使用されていた） */
/* ============================================ */
@media screen and (max-width: 599px) and (orientation: portrait) {
  .top__mv__txt {
    &::before,
    &::after {
      width: 5%;
    }
  }

  .top__mv__txt h1 img {
    width: calc(297 / 350 * 100%);
  }

  .top__mv__txt h1 span {
    font-size: calc(20 / 390 * 100vw);
  }

  .top__mv__txt ul {
    gap: 8px calc(10 / 351 * 100%);

    li {
      width: calc(110 / 351 * 100%);

      &.achromatic {
        em {
        font-size: calc(14 / 390 * 100vw);
        }
      }

      br {
        display: block;
      }
    }

    a {
      border-radius: 14px;
      gap: 5px;

      em {
        font-size: calc(21 / 390 * 100vw);

        &::after {
          margin-top: 5px;
        }
      }

      span {
        font-size: calc(10 / 390 * 100vw);
      }
    }
  }
}

/* 横 */
/* ============================================ */
@media (orientation: landscape) {
  .inner {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh; /* CSS変数をサポートしていないブラウザ用のフォールバック */
    height: calc(var(--vh, 1vh) * 100);
  }
  .top__mv {
    flex-direction: row;
    padding-bottom: 0px;
    align-items: center;
    justify-content: center;
  }

  .top__mv__txt h1 img {
    width: calc(411 / 452 * 100%);
  }

  .top__mv__txt h1 span {
    font-size: calc(20 / 1133 * 100vw);
  }

  .top__mv__img {
    flex: none;
    height: 100%;
    width: 50%;
  }

  .top__mv__img img {
    max-height: 90%;
    height: auto;
    width: auto;
  }

  .top__mv__txt {
    width: 50%;
    flex: none;
  }

  .top__mv__txt ul {

    a {
      border-radius: 16px;
    }

    em {
      font-size: calc(24 / 1133 * 100vw);

      &::after {
        width: calc(48 / 1133 * 100vw);
      }
    }

    span {
      font-size: calc(10 / 1133 * 100vw);
    }

    li {
      &.achromatic {
        em {
          font-size: calc(18 / 1133 * 100vw);
        }
      }
    }
  }

  /*横かつ1023以下（もともとのスタイルのSP指定）*/
  @media screen and (max-width: 1023px) {
    .c-logo {
      width: 50px;
    }

    .top__mv__txt h1 img {
      width: calc(243 / 336 * 100%);
    }

    .top__mv__txt h1 span {
      font-size: calc(16 / 844 * 100vw);
    }

    .top__mv__img img {
      max-height: calc(283 / 390 * 100%);
    }

    .top__mv__txt ul {
      gap: 6px calc(9 / 336 * 100%);

      li {
        width: calc(106 / 336 * 100%);

        a {
          border-radius: 10px;
          gap: 5px;
        }

        em {
          font-size: calc(20 / 844 * 100vw);

          &::after {
            margin-top: 5px;
          }

          br {
            display: block;
          }
        }

        span {
          font-size: calc(10 / 844 * 100vw);
        }

        &.achromatic {
          em {
            font-size: calc(18 / 844 * 100vw);
          }
        }
      }
    }
  }
}

/* モーダル */
/* ============================================ */
.top__modal {
  position: absolute;
  width: 100%;
  height: 100vh;
  left: 0;
  top: 0;
  z-index: 15;
  background-color: rgba(26, 19, 18, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh; /* CSS変数をサポートしていないブラウザ用のフォールバック */
  height: calc(var(--vh, 1vh) * 100);
}

.top__modal__inner {
  background-color: #fff;
  width: 94%;
  max-width: 644px;
  border-radius: 25px;
  padding: 60px 80px 74px;
}

.top__modal__inner img {
  width: 130px;
  display: block;
  margin: 0 auto 30px;
}

.top__modal__inner p {
  font-size: 16px;
  line-height: 1.5;
  color: #1a1311;
  font-weight: 500;
  border-bottom: 1px solid #dedede;
  padding-bottom: 30px;
  margin-bottom: 30px;
}

.top__modal__inner ul {
  display: flex;
  justify-content: center;
  text-align: center;
}

.top__modal__inner ul li a {
  width: 180px;
  height: 150px;
  display: block;
  border-radius: 25px;
  color: #fff;
  background-color: #c60057;
  font-size: 14px;
  line-height: 1.5;
  margin: 0 20px;
  padding-top: 28px;
}

.top__modal__inner ul li:last-child a {
  background-color: #a2aab0;
}

.top__modal__inner ul em {
  display: block;
  font-size: 30px;
  margin-bottom: 10px;
}

/* 横 かつ スマホ */
/* ============================================ */
@media screen and (max-width: 1023px) and (orientation: landscape) {
  .top__modal__inner {
    max-width: 750px;
    padding: 30px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .top__modal__inner > div {
    width: 46%;
  }

  .top__modal__inner img {
    width: 130px;
    display: block;
    margin: 0 auto 20px;
  }

  .top__modal__inner p {
    border-bottom: none;
    padding-bottom: 0px;
    margin-bottom: 0px;
  }

  .top__modal__inner ul li a {
    width: 160px;
    height: 150px;
    margin: 0 5px;
  }
}

/* 横 かつ スマホ 小さいサイズ */
/* ============================================ */
@media screen and (max-width: 667px) and (orientation: landscape) {
  .top__modal__inner {
    padding: 30px 30px;
  }

  .top__modal__inner > div {
    width: auto;
    margin-right: 10px;
  }

  .top__modal__inner img {
    width: 100px;
    margin-bottom: 16px;
  }

  .top__modal__inner p {
    font-size: 13px;
  }
  .top__modal__inner ul li a {
    width: 115px;
    height: 115px;
    margin: 0 5px;
    padding-top: 21px;
    font-size: 12px;
  }

  .top__modal__inner ul em {
    font-size: 24px;
    margin-bottom: 5px;
  }
}

/* 縦 かつ スマホ */
/* ============================================ */
@media screen and (max-width: 680px) and (orientation: portrait) {
  .top__modal__inner {
    padding: 60px 20px 74px;
  }

  .top__modal__inner ul {
    display: flex;
    justify-content: space-between;
  }

  .top__modal__inner ul li {
    width: 48%;
  }

  .top__modal__inner ul li a {
    width: 100%;
    height: 150px;
    display: block;
    margin: 0;
  }
}

/* 縦 かつ スマホ */
/* ============================================ */
@media screen and (max-width: 375px) and (orientation: portrait) {
  .top__modal__inner img {
    width: 90px;
    margin-bottom: 20px;
  }

  .top__modal__inner {
    padding: 30px 20px 20px;
  }

  .top__modal__inner p {
    font-size: 13px;
    margin-bottom: 20px;
    padding-bottom: 20px;
  }

  .top__modal__inner ul {
    display: flex;
    justify-content: space-between;
  }

  .top__modal__inner ul li {
    width: 48%;
  }

  .top__modal__inner ul em {
    font-size: 24px;
  }

  .top__modal__inner ul li a {
    width: 100%;
    height: 130px;
    display: block;
    margin: 0;
    padding-top: 20px;
    font-size: 13px;
  }
}
