* {
  font-size: 62.5%;
  font-weight: lighter;
}

body {
  box-sizing: border-box;
  color: #696969;
  font-family: 'Josefin Sans', 'Gill Sans', sans-serif ;
  min-height: 100vh;
  position: relative;
}

img {
  max-width: 100%;
  vertical-align: bottom;
}

ul {
  list-style: none;
}

a {
  display: block;
  text-decoration: none;
  color: #696969;
  transition: all, .5s;
}

a:hover {
  opacity: 0.5;
}

dt, dd {
  font-size: 1.4rem;
  letter-spacing: 0.2rem;
}

.site_title a {
  display: block;
  line-height: 1;
  width: 100px;
}

.wrapper {
  /* border: 1px solid blue; */
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}





/* ----------------
-------HEADER------
------------------- */

/*
「position: fixed;」でヘッダーを固定し、「z-index: 10;」で前面に表示
※他のコンテンツでpositionをrelative、absolute、fixedのいずれかに
設定している場合は、z-indexの数値が大きい方が前面に表示される
*/

#header {
  width: 100%;
  height: 80px;
  padding: 0 3%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  right: 0;
  left: 0;
  z-index: 10;
}

.back {
  width: 100%;
  height: 80px;
  background-color: #fff;
  position: fixed;
  left: 0;
  right: 0;
  z-index: 0;
  opacity: 0.5;
}

#navi {
  display: flex;
  align-items: center;
}

#navi .ec_link  {
  padding: 10px;
  border: 1px solid #696969;
  border-radius: 30px;
  margin-right: 10px;
}

.navi_menu {
  display: flex;
  align-items: center;
}

.navi_menu .word {
  padding-right: 20px;;
}

.navi_menu .word a {
  font-size: 2.5rem;
  letter-spacing: 0.2rem;
}

.site_title,
.navi_menu,
.ec_link {
  z-index: 5;
}






/* ----------------------------
-------コンテンツタイトル------
------------------------------- */

#content {
  padding-top: 150px;
  padding-bottom: 100px;
}

#content .inner {
  display: inline-block;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#content .p_title {
  display: block;
  /* font-weight: normal; */
  font-size: 3rem;
  letter-spacing: 0.5rem;
  margin-left: 15px;
}


#content .sub_title {
  font-size: 2rem;
  letter-spacing: 0.3rem; 
  line-height: 1;
}

#content .small {
  font-size: 1rem;
}


.credit {
  padding: 0 10px;
  margin-bottom: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.credit dl {
  display: flex;
  margin-bottom: 5px;
}

dt {
  padding-right: 5px;
}

dt::after {
  content: ":";
}


/* ----------------------
-----メインビジュアル----
------------------------- */

#mainvisual {
  margin-bottom: 30px;
  text-align: center;
}

/* ----------------
-----サムネイル----
------------------- */


#thumbnail {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#thumbnail li {
  width: 49.8%;
  margin-bottom: 30px;
}

#thumbnail .fadeUpTrigger {
  opacity: 0;
}

.fadeIn{
  animation-name:fadeInAnime;
  animation-duration:2s;
  animation-fill-mode:forwards;
  opacity:0;
  }
  
  @keyframes fadeInAnime{
    from {
      opacity: 0;
    }
  
    to {
      opacity: 1;
    }
  }
  
  /* 下から */
  
  .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);
    }
  }



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


.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration:2s;
  animation-fill-mode:forwards;
  opacity: 0;
}
@keyframes fadeUpAnime{
from {
  opacity: 0;
  transform: translateY(100px);
}
to {
  opacity: 1;
  transform: translateY(0);
}
}


/* ------------
-----FOOTER----
--------------- */

#footer .copyright {
  font-size: 1.2rem;
  letter-spacing: 0.1rem;
  margin: 25px 0;
  text-align: center;
}


/* ---------
-----SP-----
------------ */


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

  
  
  .navi_menu {
    flex-direction: column;
    width: 150px;
    margin-bottom: 15px;
  }
  
  .navi_menu .word {
    padding-right: 0;
  }
  
  .navi_menu li {
    margin-bottom: 15px;
  }
  
  .ec_link {
    width: 100px;
    background-color: #fff;
    text-align: center;
    opacity: 0.7;
  }
  
  /*
  ハンバーガーメニュー
  メニューが閉じている時は、「left: -300px;」で画面左に隠し、
  「opacity: 0;」で非表示にしている
  */

  #navi {
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    position: fixed;
    top: 0;
    left: -300px;
    width: 200px;
    color: #fff;
    padding: 36px 100px;
    transition: all 0.5s;
    z-index: 20;
    opacity: 0;
  }

  #navi a {
    color: #fff;
  }

/*
ハンバーガーメニュー
メニューが開いている時は、「left: 0;」「opacity: 1;」で
画面左に表示する
*/
.open #navi {
  left: 0;
  opacity: 1;
}

.toggle_btn {
  width: 30px;
  height: 30px;
  position: relative;
  transition: all 0.5s;
  cursor: pointer;
  z-index: 20;
}

/*
ハンバーガーメニューの線の設定（メニューが閉じている時）
*/
.toggle_btn span {
  display: block;
  position: absolute;
  width: 30px;
  height: 2px;
  background-color: #333;
  border-radius: 4px;
  transition: all 0.5s;
}

/*
1本目の線の位置を設定
*/
.toggle_btn span:nth-child(1) {
  top: 10px;
}

/*
2本目の線の位置を設定
*/
.toggle_btn span:nth-child(2) {
  bottom: 10px;
}

/*
ハンバーガーメニューの線の設定（メニューが開いている時）
線の色を白に変更
*/
.open .toggle_btn span {
  background-color: #fff;
}

/*
1本目の線を-45度回転
*/
.open .toggle_btn span:nth-child(1) {
  -webkit-transform: translateY(4px) rotate(-45deg);
  transform: translateY(4px) rotate(-45deg);
}
/*
2本目の線を45度回転
*/
.open .toggle_btn span:nth-child(2) {
  -webkit-transform: translateY(-4px) rotate(45deg);
  transform: translateY(-4px) rotate(45deg);
}

#mask {
  display: none;
  transition: all 0.5s;
}

/*
メニューを開いている時は、全体を黒背景にする
*/
.open #mask {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: .8;
  z-index: 10;
  cursor: pointer;
}


/* ----------------------------
-------コンテンツタイトル------
------------------------------- */

dt, dd {
  letter-spacing: 0.1rem;
}

#content .inner {
  margin-bottom: 30px;
}

.p_title {
  margin-left: 0;
}

#content .credit {
    margin-bottom: 15px;
    align-items: stretch;
    flex-direction: column;
  }

  #thumbnail {
    flex-wrap: nowrap;
    flex-direction: column;
  }

  #mainvisual {
    padding: 0 ;
    margin-bottom: 15px;
  }
  
  #thumbnail {
    padding: 0;
  }

  #thumbnail li {
    width: 100%;
    margin-bottom: 15px;
  }

  
}


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

  #content .p_title {
    font-size: 2rem;
    margin-left: 0;
  }
  
  #content .sub_title {
    font-size: 1.5rem;
  }

}