@import url(https://fonts.googleapis.com/css2?family=Montserrat+Alternates:ital,wght@0,500;0,600;0,700;0,800;0,900;1,500;1,600;1,700;1,800;1,900&family=Noto+Sans+JP:wght@100..900&display=swap);

html {
  font-size: clamp(6px, 0.694vw, 12px);
}

@media screen and (max-width: 1024px) {
  html {
    font-size: clamp(6px, 0.976vw, 14px);
  }
}

@media screen and (max-width: 768px) {
  html {
    font-size: clamp(6px, 2.38vw, 16px);
  }
}

body {
  color: #fff;
  font-size: 1.6rem;
  line-height: 1.8;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  letter-spacing: 0.05em;
  word-wrap: break-word;
  -webkit-text-size-adjust: 100%;
  font-feature-settings: "palt";
  background-color: #fff;
}

h1,
h2,
h3,
h4,
h5 {
  line-height: 1.2;
  letter-spacing: 0.1em;
  font-weight: 700;
}

h1 {
  font-size: 3.6rem;
}

h2 {
  font-size: 3.2rem;
}

h3 {
  font-size: 2.8rem;
}

h4 {
  font-size: 2.4rem;
}

h5 {
  font-size: 2.1rem;
}

.pc-only {
  display: inline-block;
}

@media screen and (max-width: 768px) {
  .pc-only {
    display: none;
  }
}

.main-bg {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
}

.main-bg__gold {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    45deg,
    #b67b03 0%,
    #daaf08 45%,
    #fee9a0 70%,
    #daaf08 85%,
    #fee9a0 100%
  );
}

.main-bg__movie {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% - 3.2rem);
  height: 100vh;
  display: block;
  background-color: #002c4d;
  z-index: 1;
}

.main-bg__movie::before {
  content: "";
  display: inline-block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: #04355b;
  opacity: 0.62;
}

.main-bg__movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width: 1024px) {
  .main-bg__movie {
    width: calc(100% - 1.6rem);
  }
}

header {
  position: relative;
  padding: 5.6rem 12rem 4rem;

  &::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1.6rem;
    background: linear-gradient(
      45deg,
      #daaf08 0%,
      #daaf08 45%,
      #fee9a0 70%,
      #daaf08 85%,
      #fee9a0 100%
    );
    z-index: 2;
  }

  > a {
    display: block;
    width: 12rem;

    img {
      width: 100%;
    }
  }
}

main {
  position: relative;
  z-index: 2;
  min-height: 100vh;
  padding: 0 12rem;
}

header {
  position: relative;
  padding: 5.6rem 12rem 4rem;

  &::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1.6rem;
    background: linear-gradient(
      45deg,
      #daaf08 0%,
      #daaf08 45%,
      #fee9a0 70%,
      #daaf08 85%,
      #fee9a0 100%
    );
    z-index: 2;
  }

  > a {
    display: block;
    width: 12rem;

    img {
      width: 100%;
    }
  }
}

footer {
  position: relative;
  padding: 8rem 12rem;

  &::before {
    content: "";
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1.6rem;
    background: linear-gradient(
      45deg,
      #b67b03 0%,
      #daaf08 45%,
      #fee9a0 70%,
      #daaf08 85%,
      #fee9a0 100%
    );
    z-index: 2;
  }

  a.footer__btn {
    display: flex;
    align-items: center;
    gap: 2.4rem;
    padding: 1.6rem 4rem;
    border: solid 1px #fff;
    border-radius: 4rem;
    width: fit-content;
    margin: 0 auto 8rem;
    color: #fff;
    transition: 0.4s;
    &::after {
      content: "";
      display: inline-block;
      width: 1.6rem;
      height: 1.2rem;
      background-image: url(../img/icon-arrow-white.svg);
      background-repeat: no-repeat;
      background-size: contain;
    }
  }

  .footer__copy {
    text-align: center;
    small {
      font-size: 1rem;
    }
  }
}

@media (any-hover: hover) {
  a.footer__btn:hover {
    opacity: 0.4;
  }
}

@media screen and (max-width: 1024px) {
  main {
    padding: 0 2.4rem;
  }

  header {
    padding: 5.6rem 2.4rem 4rem;

    &::before {
      height: 0.8rem;
    }

    > a {
      margin: 0 auto;
    }
  }
  footer {
    padding: 8rem 2.4rem;

    &::before {
      height: 0.8rem;
    }
  }
}
