@charset "utf-8";

/*
 *
 *	top style
 *
 */

/*======================================
	gHeader
======================================*/
.gHeader.scroll {
  position: relative;
  top: auto;
  left: auto;
}

/*======================================
	mainContents
======================================*/
.mainContents {
  background: #fff;
}

/*======================================
	aboutBox
======================================*/
#about {
  background: url(../images/top/about-bg.webp) center no-repeat;
  background-size: cover;
  color: #fff;
}
.no-webp #about {
  background: url(../images/top/about-bg.jpg) center no-repeat;
  background-size: cover;
  color: #fff;
}
.aboutBox .wrapper {
  max-width: 760px;
  margin: 0 auto;
  padding: 15% 15px 17%;
}

.aboutBox h2 {
  margin-bottom: 90px;
  text-align: center;
  font-size: 1.5em;
  letter-spacing: 0.1em;
}

.aboutBox h3 {
  margin-bottom: 3em;
  text-align: center;
}
.aboutBox p {
  text-align: center;
  font-size: 16px;
}

/*======================================
	projectBox
======================================*/
.projectBox {
  padding: 10% 0 8%;
}

.projectBox h2 {
  margin-bottom: 90px;
  text-align: center;
  font-size: 1.5em;
  font-weight: bold;
  letter-spacing: 0.1em;
}

/****** projectList ******/
.projectBox .projectList {
  max-width: 920px;
  margin: 0 auto;
}
.projectBox .projectList li {
  float: left;
  width: 25%;
  padding: 0 15px;
  margin-bottom: 30px;
  text-align: center;
}
.projectBox .projectList li:nth-child(1),
.projectBox .projectList li:nth-child(4n + 1) {
  clear: both;
}
.projectBox .projectList li .thumbnail {
  position: relative;
  margin-bottom: 1em;
}
.projectBox .projectList li .thumbnail img {
  width: 100%;
}
.projectBox .projectList li .thumbnail .description {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  padding: 1em;
  background: rgba(255, 255, 0, 0.8);
  opacity: 0;
  -moz-transition: opacity 0.4s ease;
  -webkit-transition: opacity 0.4s ease;
  -ms-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
.projectBox .projectList li .thumbnail .description p {
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  line-height: 1.8;
  text-align: justify;
  font-size: 0.733em;
}
.projectBox .projectList li time,
.projectBox .projectList li a > p {
  margin-top: 0.5em;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.04em;
}
.projectBox .projectList li time {
  font-size: 1.14em;
  color: #666;
}
.projectBox .projectList li a > p {
  font-size: 1.14em;
  font-weight: bold;
  color: #333;
}
.projectBox .projectList li a > p .cat {
  display: block;
  margin-bottom: 0.5em;
  text-align: center;
  color: #666;
  font-weight: normal;
}

.projectBox .projectList li a:hover .thumbnail .description {
  opacity: 1;
}

/*======================================
	contactBox
======================================*/
.contactBox h2 {
  margin-bottom: 90px;
  text-align: center;
  font-size: 1.5em;
  font-weight: bold;
  letter-spacing: 0.1em;
}

/****** contactBg ******/
.contactBox .contactBg {
  width: 100%;
  height: 250px;
  background: url(../images/top/contect-bg.jpg) center no-repeat;
  background-size: cover;
}

/****** infoBox ******/
.contactBox .infoBox {
  padding: 40px 30px;
  background: -moz-linear-gradient(top, #fff 0%, #fff 50%, #ff0 51%, #ff0 100%);
  background: -webkit-linear-gradient(
    top,
    #fff 0%,
    #fff 50%,
    #ffff00 51%,
    #ff0 100%
  );
  background: linear-gradient(
    to bottom,
    #fff 0%,
    #fff 50%,
    #ff0 51%,
    #ff0 100%
  );
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#ff0',GradientType=0 );
}
.contactBox .infoBox .wrapper {
  max-width: 880px;
  margin: 0 auto;
}

/* fbBox */
.contactBox .infoBox .fbBox {
  float: left;
  width: 50%;
}

/* info */
.contactBox .infoBox .info {
  float: right;
  width: 50%;
  margin-top: 21%;
  padding-left: 2em;
}
.contactBox .infoBox .info p {
  line-height: 2.33;
  letter-spacing: 0.17em;
  font-size: 1.14em;
  color: #333;
}

/*======================================
	sideNav
======================================*/
.sideNav {
  position: fixed;
  top: 50%;
  left: 30px;
}
.sideNav ul li {
  margin-bottom: 12px;
}
.sideNav ul li a {
  position: relative;
  padding-left: 18px;
}
.sideNav ul li a img {
  opacity: 0;
}
.sideNav ul li a:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border-radius: 50%;
  background: #dcdcdc;
}
.sideNav ul li.current a:before {
  background: #ff0;
}
.sideNav ul li img {
  width: auto;
  height: 10px;
}
.sideNav ul li.current img {
  opacity: 1;
}

/*======================================
	mv
======================================*/
.mv {
  /* position: fixed;
	top: 0;
	left: 0; */
  position: relative;
  top: 85px;
  top: 72px;
  width: 100%;
  /* height: 100%; */
  height: 100vh;
  border-top: #ff0 solid 15px;
  background: #000;
  z-index: -1;
}
.mv h1 {
  max-width: 1171px;
  margin: 2em auto 0;
  padding: 0 30px;
  text-align: center;
}

/****** mvbg ******/
.mv .mvbg,
.mv .mvbg div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: center no-repeat;
  background-size: cover;
  z-index: -2;

  margin-top: 0;
  /* height: calc(100vh - 87px); */
}

/*============================================================================

	responsive

============================================================================*/
@media screen and (min-width: 1200px) {
  /*======================================
		projectBox
	======================================*/
  /****** projectList ******/
  .projectBox .projectList {
    max-width: 1150px;
  }
  .projectBox .projectList li {
    width: 20%;
  }
  .projectBox .projectList li:nth-child(4n + 1) {
    clear: none;
  }
  .projectBox .projectList li:nth-child(5n + 1) {
    clear: both;
  }
  .projectBox .projectList li a > p .cat br {
    display: none;
  }
}

@media screen and (min-width: 1500px) {
  /*======================================
		projectBox
	======================================*/
  /****** projectList ******/
  .projectBox .projectList {
    max-width: 1380px;
  }
  .projectBox .projectList li {
    width: 16.667%;
  }
  .projectBox .projectList li:nth-child(5n + 1) {
    clear: none;
  }
  .projectBox .projectList li:nth-child(6n + 1) {
    clear: both;
  }
  .projectBox .projectList li a > p .cat br {
    display: none;
  }
}

@media screen and (max-width: 1600px) {
  .mv {
    padding-top: 66%;
    height: auto;
  }
}

@media screen and (max-width: 768px) {
  .mv {
    top: 12vw;
    top: 72px;
    height: 68vw;
    padding-top: 0;
  }
  .mainContents {
    margin-top: 12vw;
    margin-top: 10vw;
  }

  /****** mvbg ******/
  .mv .mvbg,
  .mv .mvbg div {
    height: 100%;
  }

}
@media screen and (max-width: 640px) {
  /*======================================
		aboutBox
	======================================*/
  .aboutBox .wrapper {
    padding: 30% 15px;
  }
  .aboutBox h2 {
    margin-bottom: 60px;
  }
  .aboutBox img {
    width: 100%;
  }
  .aboutBox p {
    font-size: 3.7333vw;
  }

  /*======================================
		projectBox
	======================================*/
  /****** projectList ******/
  .projectBox {
    padding: 40px 15px;
  }
  .projectBox h2 {
    margin-bottom: 60px;
  }
  .projectBox .projectList li {
    width: 50%;
    margin-bottom: 20px;
  }
  .projectBox .projectList li:nth-child(even) {
    padding-right: 0;
  }
  .projectBox .projectList li:nth-child(odd) {
    clear: both;
    padding-left: 0;
  }
  .projectBox .projectList li a:hover .thumbnail .description {
    opacity: 0;
  }
  .projectBox .projectList li time {
    font-size: 1.16em;
  }
  .projectBox .projectList li a > p {
    font-size: 1.16em;
  }

  /*======================================
		contactBox
	======================================*/
  .contactBox h2 {
    margin-bottom: 60px;
  }

  /****** contactBg ******/
  .contactBox .contactBg {
    height: 200px;
  }

  /****** infoBox ******/
  .contactBox .infoBox {
    padding: 40px 15px 35px;
  }

  /* fbBox */
  .contactBox .infoBox .fbBox {
    float: none;
    width: 100%;
    padding: 0 15px;
  }

  /* info */
  .contactBox .infoBox .info {
    float: none;
    width: 100%;
    margin-top: 2em;
    padding-left: 0;
  }
  .contactBox .infoBox .info p {
    line-height: 2.33;
    letter-spacing: 0.17em;
    font-size: 1.16em;
  }

  /*======================================
		sideNav
	======================================*/
  .sideNav {
    top: 59px;
    left: 15px;
  }
  .sideNav ul li {
    margin-bottom: 9px;
  }
  .sideNav ul li a {
    padding-left: 12px;
  }
  .sideNav ul li a:before {
    width: 6px;
    height: 6px;
    margin-top: -3px;
  }
  .sideNav ul li a img {
    height: 8px;
  }

  /*======================================
		mv
	======================================*/
  .mv h1 {
    margin-top: 1em;
    padding: 0 15px;
  }

  /****** mvbg ******/
  .mv .mvbg,
  .mv .mvbg div {
    height: 100%;
  }
}
@media screen and (max-width: 480px) {
  .mainContents {
    margin-top: 16vw;
  }
}

.slider {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 2s ease-in-out;
  z-index: 0;

  margin-top: 0;
}

.slide.active {
  opacity: 1;
  z-index: 1;
}

picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

@media (max-width: 1024px) {
  .slider {
    height: auto;
  }
  .slide {
    position: relative;
    height: auto;
  }
  picture,
  img {
    height: auto;
    object-fit: contain;
  }
}
