@charset "utf-8";

@import url(https://fonts.googleapis.com/earlyaccess/sawarabimincho.css);

/*========== 共通 ====================*/
.clearfix:after {
  content: "";
  clear: both;
  display: block;
}
body {
  display: none;
  font-family: '游明朝','YuMincho','ヒラギノ明朝 ProN W3','Hiragino Mincho ProN','Sawarabi Mincho';
  font-size: calc(12px + 0.1vw);
  line-height: 1.5;
}
@media screen and (min-width: 1000px) {
  body {
    width: 1000px;
    margin: 0 auto;
  }
}
h1, h2, h3, p, a, ul, dl {
  font-weight: normal;
  color: #666666;
}
h2 {
  font-size: 1.3em;
}
p {
  margin: 0;
} 
ul {
  margin: 0;
  padding: 0;
}
li {
  list-style: none;
}
a {
  display: inline-block;
  text-decoration: none;
}
img {
  width: 100%;
}
.contents_all {
  width: 92%;
  margin: 2em auto 3em;
}
.contents_wrap {
  padding-bottom: 3em;
  border-bottom: 1px solid #cccccc;
  margin-bottom: 0.5em;
}
.contents {
  position: relative;
}
.link_hover:hover {
  color: #000000;
}

/*========== loading ====================*/
#loading li {
  position: absolute;
  top: 20vh;
  width: 72px;
  z-index: 2;
  opacity: 0;
  animation-iteration-count: infinite;
  animation-duration: 8s;
  animation-delay: 1s;
  animation-fill-mode: both;
}
@media screen and (max-width: 767px) {
  #loading li {
    width: 48px;
  }
}
#loading li:nth-child(1){
  left: 0;
  animation-name: loading1;
}
#loading li:nth-child(2){
  left: 33.3%;
  margin-left: -24px;
  animation-name: loading2;
}
#loading li:nth-child(3){
  left: 66.6%;
  margin-left: -48px;
  animation-name: loading3;
}
#loading li:nth-child(4){
  left: 100%;
  margin-left: -72px;
  animation-name: loading4;
}
@media screen and (max-width: 767px) {
  #loading li:nth-child(2){
    margin-left: -16px;
  }
  #loading li:nth-child(3){
    margin-left: -32px;
  }
  #loading li:nth-child(4){
    margin-left: -48px;
  }
}
@keyframes loading1{
  from{opacity: 0}
  5%{opacity: 1; animation-timing-function: ease-in-out;}
  10%{opacity: 0;}
}
@keyframes loading2{
  from{opacity: 0}
  25%{opacity: 0}
  30%{opacity: 1; animation-timing-function: ease-in-out;}
  35%{opacity: 0}
}
@keyframes loading3{
  from{opacity: 0}
  50%{opacity: 0}
  55%{opacity: 1; animation-timing-function: ease-in-out;}
  60%{opacity: 0}
}
@keyframes loading4{
  from{opacity: 0}
  75%{opacity: 0}
  80%{opacity: 1; animation-timing-function: ease-in-out;}
  85%{opacity: 0}
}
.after_loading {
  opacity: 0;
}
.after_loading.fadeIn {
  display: inline-block;
  width: 100%;
  opacity: 1;
  animation: fadeIn 2s ease-in-out;
  -webkit-animation: fadeIn 2s ease-in-out;
}
@keyframes fadeIn {
  from {opacity: 0}
  50% {opacity: 0}
  100% {opacity: 1}
}

/*========== ヘッダ ====================*/
header {
  margin: 0 0 3em;
}
header a {
  width: 12%;
  min-width: 100px;
}
header h1 {
  width: 100%;
  margin: 0;
  line-height: 0;
}

/*========== ナビ（PC） ====================*/
nav {
  width: 20%;
  float: left;
}
nav ul {
  padding: 0;
}
nav li {
  margin: 0 0 1.5em;
}
nav li a.link_image {
  width: 40px;
  height: 40px;
  line-height: 0;
  position: relative;
  /*margin-top: -6px;*/
  margin-left: -6px;
}
nav li span {
  display: inline-block;
  width: 29px;
  position: absolute;
  top: 6px;
  left: 6px;
}
@media screen and (min-width: 768px) {
  .nav_sp {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .nav_pc {
    display: none;
  }
}

/*========== ナビ（SP） ==========*/
.nav_sp {
  position: absolute;
  width: 100%;
  z-index: 120;
  top: 2em;
  right: 0;
}
.nav_sp .link_nav ul {
  margin-top: 55px;
  margin-left: 10%;
}
.nav_sp .link_nav ul li {
  font-size: 1.1em;
  line-height: 1.6;
}
.nav_sp .bg_nav.overlay {
  position: fixed;
  top: 0;
  height: 100%;
  width: 100%;
  z-index: 99;
  background-color: #000000;
  opacity: 0.6;
}
/*   ボタンタグ設定   */
.nav_sp button {
  display: block;
  width: 52px;
  padding: 0;
  /*position: absolute;
  top: 0;*/
  position: fixed;
  top: 2em;
  right: 3%;
  background-color: rgba(0,0,0,0);
  color: #666666;
  border: none;
  cursor: pointer;
  z-index: 110;
}
/*   ハンバーガーボタン3本線   */
.nav_sp button span.bar {
  display: block;
  height: 2px;
  width: 24px;
  background-color: #666666;
  margin: 8px 14px;
  transition: all 0.2s;
  transform-origin: 0 0;
}
.nav_sp button .close {
  display: none;
  font-size: 0.8em;
}
.nav_sp button .menu {
  display: block;
  font-size: 0.8em;
}
/*  メニューアクティブ時  */
.nav_sp button.active {
  border: none;
  opacity: 1;
}
.nav_sp button.active span.bar {
  width: 32px;
  margin: 9px 0 6px 15px;
}
.nav_sp button.active .bar1 {
  transform: rotate(45deg);
}
.nav_sp button.active .bar2 {
  opacity: 0;
}
.nav_sp button.active .bar3 {
  transform: rotate(-45deg);
}
.nav_sp button.active .menu {
  display: none;
}
.nav_sp button.active .close {
  display: block;
}
.nav_sp .link_nav {
  width: 72%;
  height: 100%;
  transition: all 0.2s;
  transform: translate(100%);
  position: fixed;
  top: 0;
  right: 0;
  z-index: 100;
  background-color: #ffffff;
}
.nav_sp .link_nav.open {
  transform: translate(0); 
}

/*========== 本編 ====================*/
h2 {
  margin: 0 0 1em;
}
h3 {
  font-size: 1em;
  margin: 0 0 0.5em;
}
.contents {
  width: 80%;
  float: right;
}
@media screen and (max-width: 767px) {
  .contents {
    width: 100%;
    float: none;
  }
}
.img_large {
  width: 100%;
  max-width: 800px;
  float: right;
  /*opacity: 0;*/
}

/*========== slick ====================*/
.slideshow {
  opacity: 0;
}
.slideshow.slick-initialized {
  opacity: 1;
}

/*========== masonry ====================*/
.grid {
  width: 100%;
  transition: opacity 0.3s;
  /*max-height: 100vh;*/
  box-sizing: border-box;
}
.img_grid {
  line-height: 0;
  width: 19.4%;
  margin: 0.3%;
}
@media screen and (max-width: 767px) {
  .img_grid {
    width: 32.7%;
  }
}

/*========== fancybox ====================*/
.fancybox-inner .fancybox-caption:after {
  border-bottom: none;
}

/*========== news ====================*/
.news {
  width: 100%;
  /*font-size: 0.8em;*/
}
.news li {
  line-height: 2;
}
.news li:before {
  content: "・";
}
.news li a {
  display: inline;
  /*text-decoration: underline;*/
  transition: all 0.2s linear;
}
.news li a:hover {
  opacity: 0.6;
}

/*========== PRIVATE ====================*/
.thumb_to_slider {
  float: left;
  width: 25.3%;
  margin: 1vh 4% 2vh;
  text-align: center;
  /*opacity: 0;*/
}
@media screen and (max-width: 767px) {
  .thumb_to_slider {
    width: 42%;
  }
}
/*.thumb_to_slider.on {
  opacity: 1;
}*/
.thumb_to_slider li {
  display: none;
}
.thumb_to_slider li.thumb {
  display: inline-block;
  line-height: 0;
}
.thumb_to_slider li a {
  line-height: 0;
}

/*========== フッタ ====================*/
footer p {
  font-size: 0.8em;
  text-align: right;
}