@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+2&family=M+PLUS+Rounded+1c:wght@300&family=Poiret+One&display=swap');

/* レイアウト
____________________________________*/

* {
  padding: 0;
  margin: 0;
}

body, html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: 'Neue Helvetica W01', 'AXIS Font Japanese W55', 'Helvetica Neue', sans-serif;
}

img {
  border-style: none;
  width: 100%;
}

#logo {
  position: absolute;
  top: 10px;
  left: 20px;
  font-family: 'Poiret One', cursive;
  font-size: 2rem;
  font-weight: bold;
  color: #fff;
  z-index: 9999;
}


ul {
  margin: 0;
  padding: 0;
  list-style: none;
  margin-block-start: 0em;
  margin-block-end: 0em;
}

h1 {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate( -50%, -50%);
  text-align: center;
  margin: 150px 0 0 0;
  letter-spacing: 0.1em;
  font-family: 'M PLUS 2', sans-serif;
  color: #fff;
  font-size: 1.5rem;
  text-transform: uppercase;
  text-transform: capitalize;
}

h1 span {
  display: block;
}

h2 {
  font-family: 'Poiret One', cursive;
  font-size: 4rem;
  font-weight: bold;
  color: #222;
}

h3 {
  font-family: 'Poiret One', cursive;
  font-size: 4rem;
  font-weight: bold;
  color: #222;
}

.title {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}


main {
  position: relative;
  z-index: 2;
  background: #2C2C2C;
  margin-bottom: 350px;
  box-shadow: 3px 2px 2px 0px rgba(51, 51, 51, 0.5);
}

.box {
  color: #fff;
  padding: 40px 20px 40px 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

#box1 {
  background: #fff;
}

#box2 {
  background: #fff;
}

#box3 {
  background: #fff;
}

#box4 {
  background: #2c2c2c;
}


/* copy
____________________________________*/

.copy {
  position: absolute;
  top: 40%;
  left: 20px;
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  z-index: 99;
}


/* sns
____________________________________*/

#sns-icon {
  position: absolute;
  top: 50%;
  right: 20px;
  z-index: 99;
}

#sns-icon img {
  width: 20px;
}

#sns-icon li {
  margin: 0 0 15px 0;
}


/* MVスライド
____________________________________*/

#slider {
  width: 100%;
  height: 100vh;
  /*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/
}


/* スクロールで ふわっ
____________________________________*/


/* fadeUp */

.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* スクロールをしたら出現する要素にはじめに透過0を指定 */

.fadeUpTrigger {
  opacity: 0;
}


/* アニメーションスタートの遅延時間を決めるCSS*/

.delay-time02 {
  animation-delay: 0.2s;
}

.delay-time03 {
  animation-delay: 0.3s;
}

.delay-time04 {
  animation-delay: 0.4s;
}

.delay-time07 {
  animation-delay: 0.7s;
}

.delay-time1 {
  animation-delay: 1s;
}


/* テキスト選択時のハイライトカラー
____________________________________*/

::selection {
  background: #fce8f9;
}

::-moz-selection {
  background: #fce8f9;
}


/* footer
____________________________________*/

.footer-img {
  width: 750px;
}

footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 350px;
  background: #FFF;
}


/* topへ戻る
____________________________________*/

#page-top {
  position: absolute;
  right: 20px;
  bottom: 10%;
  z-index: 99;
}


/* 横幅が768px以下になった際の指定 */

@media only screen and (max-width: 768px) {

  /* copy
        ____________________________________*/
  .copy {
    top: 70%;
    left: 20px;
    font-size: 0.6rem;
    white-space: nowrap;
  }
  /* sns
        ____________________________________*/
  #sns-icon {
    top: 70%;
    right: 20px;
  }

  #page-top {
    left: 10%;
  }
}

#page-top img {
  width: 50px;
}

#page-top li {
  margin: 0 0 15px 0;
}


/* クリックしたらナビが右から左に出現
____________________________________*/

#g-nav {
  /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
  position: fixed;
  z-index: 999;
  /*ナビのスタート位置と形状*/
  top: 0;
  right: -100%;
  width: 30%;
  height: 100vh;
  /*ナビの高さ*/
  background: linear-gradient(45deg, rgb(243 246 247 / 90%), rgb(136 198 239));
  /*背景色（グラデーション）*/
  /*動き*/
  transition: all 0.6s;
}


/*アクティブクラスがついたら位置を0に*/

#g-nav.panelactive {
  right: 0;
}


/*ナビゲーションの縦スクロール*/

#g-nav.panelactive #g-nav-list {
  /*ナビの数が増えた場合縦スクロール*/
  position: fixed;
  z-index: 999;
  width: 30%;
  height: 100vh;
  /*表示する高さ*/
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}


/*ナビゲーション*/

#g-nav ul {
  /*ナビゲーション天地中央揃え*/
  position: absolute;
  z-index: 999;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}


/*リストのレイアウト設定*/

#g-nav li {
  list-style: none;
  text-align: center;
}

#g-nav li a {
  font-family: 'Poiret One', cursive;
  color: #fff;
  font-size: 3em;
  font-weight: bold;
  text-decoration: none;
  padding: 10px;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: bold;
  transition: all .5s;
}

#g-nav li a:hover {
  color: #222;
}


/* ハンバーガーボタン
____________________________________*/

.openbtn {
  position: fixed;
  z-index: 9999;
  /*ボタンを最前面に*/
  top: 10px;
  right: 10px;
  cursor: pointer;
  width: 50px;
  height: 50px;
}


/*×に変化*/

.openbtn span {
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 14px;
  height: 3px;
  border-radius: 2px;
  background-color: #fff;
  width: 45%;
}

.openbtn span:nth-of-type(1) {
  top: 15px;
  width: 30px;
}

.openbtn span:nth-of-type(2) {
  top: 23px;
  width: 25px;
}

.openbtn span:nth-of-type(3) {
  top: 31px;
}

.openbtn.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-45deg);
  width: 50%;
}

.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn.active span:nth-of-type(3) {
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(45deg);
  width: 50%;
}


/* スクロールでMVを過ぎたらハンバーガーメニューのカラーを変更 */

.openbtnColorScroll span {
  background-color: #4c4c4c;
}


/* 横幅が768px以下になった際の指定 */

@media only screen and (max-width: 768px) {
  /* クリックしたらナビが右から左に出現
        ____________________________________*/
  #g-nav, #g-nav.panelactive #g-nav-list {
    width: 100%;
  }
  .grid-container {
    grid-template-areas: "item2 item1 item1 item1" "item2 item1 item1 item1";
  }
}