@charset "UTF-8";

:root {
  --color-lightGray: #c2c9cc;
  --color-white: #ffffff;
  --color-darkgray: #131414;
  --color-black: #000000;
  --color-bg: linear-gradient(#131414, #a8afb1);
  --font-size-12px: clamp(8px, 0.625vw, 12px);
  --font-size-16px: clamp(14px, 0.9vw, 16px);
  --font-size-24px: clamp(16px, 1.25vw, 24px);
  --font-size-32px: clamp(24px, 1.666vw, 32px);
  --font-size-56px: clamp(48px, 2.916vw, 56px);
  --ma-25: 1.3vw;
  --ma50: 3vw;
  --ma80: 4vw;
  --ma100: 5.208vw;
  --ma150: 7.804vw;
  --ma200: 10.416vw;
}
/***************************
deback
****************************/
/* * {
  border: red solid 1px;
} */
/***************************
FONTS
****************************/
.zen-old-mincho-regular {
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
}
.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
}
.montserrat {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

html {
  scroll-behavior: smooth;
}
main {
  overflow: hidden;
}

/***************************
header
 ***************************/
.header {
  position: relative;
}
.header__logo {
  position: absolute;
  z-index: 1;
  width: 100vw;
  height: auto;
  background: var(--color-darkgray);
  top: 0;
}
.logo {
  display: block;
  width: 10vw;
  height: auto;
  z-index: 10000000;
  margin: 0.5vw auto;
}
.logo__a {
  display: block;
  margin: auto;
  width: fit-content;
}

.nav {
  position: fixed;
  top: 90px;
  left: 7.29vw;
  opacity: 0;
}
.nav.show {
  opacity: 1;
}
.nav ul li a {
  display: block;
  color: var(--color-lightGray);
  font-size: var(--font-size-16px);
  margin-bottom: var(--ma50);
  transition: 0.4s;
}
.nav ul li a:hover {
  transform: translateX(0.15vw);
  color: var(--color-white);
}

.nav__icon {
  width: 25px;
  height: 25px;
  opacity: 0.6;
  transition: 0.4s;
}
.nav ul li a:hover .nav__icon {
  opacity: 1;
}
/***************************
body
****************************/
body {
  background: var(--color-bg);
  margin: 0;
  padding: 0;
}
h1 {
  margin: 0;
  color: var(--color-lightGray);
}
h2 {
  color: var(--color-lightGray);
}
/***************************
footer
****************************/
footer {
  background: var(--color-darkgray);
  padding-top: var(--ma100);
  padding-bottom: var(--ma50);
  margin-top: var(--ma150);
}
.fooer__icon {
  width: 1.56vw;
}
.footer__copy {
  display: block;
  width: fit-content;
  margin: 0 auto;
  margin-top: var(--ma50);
  color: var(--color-lightGray);
  font-size: var(--font-size-12px);
}
.footer__nav {
  display: flex;
  justify-content: space-between;
  width: 70.98vw;
  margin: 0 auto;
  margin-top: var(--ma100);
  margin-bottom: var(--ma50);
}
.footer__nav li {
  display: block;
  width: fit-content;
  font-size: var(--font-size-16px);
  margin-bottom: var(--ma50);
}
.footer__nav li a:link {
  text-decoration: none;
}
.footer__nav li a:link {
  color: var(--color-lightGray);
}
.footer__nav li a:visited {
  color: var(--color-lightGray);
}
.footer__br {
  display: none;
}
@media (max-width: 767px) {
  .header__logo {
    position: fixed;
    z-index: 100;
    width: 100vw;
    height: auto;
  }
  .logo {
    width: 40vw;
    margin: 0.5vh 0.8vh;
    transform: translateX(0%);
  }
  .footer {
    padding-left: 14.31vw;
  }
  .footer__nav {
    display: block;
    width: auto;
    margin: 8vh auto 10vh;
  }
  .footer__copy {
    width: auto;
    line-height: 1.5;
  }
  .footer__br {
    display: block;
  }
  .footer__nav li {
    font-size: var(--font-size-24px);
    margin-bottom: 5vh;
  }
  .fooer__icon {
    width: 16px;
  }
}
/***************************
ハンバーガー
****************************/

.nav.active {
  transform: translateX(0);
  opacity: 1;
}

.nav__list {
  margin: 0;
  padding: 13vh 0 0;
  list-style: none;
}

.nav__item {
  padding: auto;
  padding-left: 0;
}

.nav__link {
  display: block;
  padding: 15px 0;
  color: #333;
  text-decoration: none;
  border-bottom: 1px solid #eee;
}

@media (max-width: 767px) {
  .header {
    position: fixed;
    z-index: 1;
  }

  .hamburger {
    position: fixed;
    top: 0.2vh;
    right: 1vh;
    z-index: 100;
    width: 3.5vh;
    height: 3.5vh;
    border: none;
    background: transparent;
    cursor: pointer;
  }

  .hamburger__line {
    position: absolute;
    left: 0;
    width: 3vh;
    height: 1px;
    background-color: var(--color-lightGray);
    transition: all 0.4s;
  }

  .hamburger__line:nth-of-type(1) {
    top: 0.8vh;
  }
  .hamburger__line:nth-of-type(2) {
    top: 1.65vh;
  }
  .hamburger__line:nth-of-type(3) {
    top: 2.6vh;
  }

  /* メニューオープン時 */
  .hamburger.active .hamburger__line:nth-of-type(1) {
    transform: translateY(0.9vh) rotate(-45deg);
  }
  .hamburger.active .hamburger__line:nth-of-type(2) {
    opacity: 0;
  }
  .hamburger.active .hamburger__line:nth-of-type(3) {
    transform: translateY(-0.9vh) rotate(45deg);
  }
  .nav {
    position: fixed;
    top: 0;
    left: 0;
    width: fit-content;
    padding: 10vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.7);
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
    transform: translateX(-100%);
    transition: transform 0.4s;
    z-index: 10;
    top: 0px;
  }
  .nav ul li a {
    margin-bottom: 5vh;
  }
  .nav__list {
    padding: 7vh 0 0;
  }
  .nav {
    position: fixed;
    top: 0;
    left: 60vw;
    width: 40vw;
    padding: 2vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.7);
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
    transform: translateX(100vw);
    transition: transform 0.4s;
    z-index: 90;
    top: 0px;
  }
  .nav.active {
    transform: translateX(0vw);
    opacity: 1;
  }
}
