/* =================================
   TopPage
==================================== */
.firstview-container {
  position: relative;
  width: 100%;
  height: 870px;
  background: url(../img/top/mainvisual.jpg) center top no-repeat;
}
.firstview-container .wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
.firstview-container .wrapper .catchcopy {
  margin-bottom: 70px;
  font-size: 50px;
}
.firstview-container .wrapper .top-logo {
  max-width: 466px;
}

@media only screen and (min-width: 1920px) {
  .firstview-container {
    background-size: cover;
  }
}
@media only screen and (max-width: 768px) {
  .firstview-container {
    height: auto;
    background: url(../img/top/mainvisual-sp.jpg) center top no-repeat;
    background-size: cover;
  }
  .firstview-container::before {
    display: block;
    content: '';
    padding-top: 133.33%;
  }
  .firstview-container .wrapper {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .firstview-container .wrapper .catchcopy {
    font-size: 30px;
  }
  .firstview-container .wrapper .top-logo {
    max-width: 196px;
  }
}
.about {
  position: relative;
  overflow: hidden;
}
.about .section-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.about .section-bg img {
  position: absolute;
  left: 50%;
}
.about .section-bg .about-bg1 {
  top: 111px;
  transform: translate3d(275px, 0, 0);
  max-width: 324px;
}
.about .section-bg .about-bg2 {
  top: 405px;
  transform: translate3d(-527px, 0, 0);
  max-width: 255px;
}
.about .section-content {
  position: relative;
}
.about .section-content .about-container {
  text-align: center;
}
.about .section-content .about-container h3 {
  margin-bottom: 30px;
  font-size: 30px;
}
.about .section-content .about-container p {
  margin-bottom: 20px;
  line-height: 2em;
}
.about .section-content .about-container p:last-child {
  margin-bottom: 50px;
}

@media only screen and (max-width: 768px) {
  .about .section-bg .about-bg1 {
    top: 127px;
    transform: translate3d(-23px, 0, 0);
    max-width: 243px;
  }
  .about .section-bg .about-bg2 {
    top: 637px;
    transform: translate3d(-207px, 0, 0);
    max-width: 190px;
  }
  .about .section-content .about-container p {
    text-align: left;
  }
  .about .section-content .about-container p br {
    display: none;
  }
}
.works {
  background: #f5f5f5;
}
.works h3 {
  margin-bottom: 40px;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.5;
  text-align: center;
  transition: opacity .2s;
}
.works h3 img {
  display: inline;
  width: 17px;
}
.works h3:hover {
  opacity: .5;
}
.works .works-list {
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
  max-width: 1200px;
}
.works .works-list .works-container {
  padding: 0 20px;
  margin-bottom: 40px;
  width: 50%;
  box-sizing: border-box;
}
.works .works-list .works-container a img {
  transition: opacity .2s;
}
.works .works-list .works-container a img:hover {
  opacity: .5;
}
.works .works-list .works-container p {
  margin-top: 20px;
  text-align: center;
  line-height: 1.5em;
}

@media only screen and (max-width: 768px) {
  .works .section-content .works-container {
    padding: 0;
    width: 100%;
  }
}
.company {
  text-align: center;
}
.company .section-content ul li {
  margin-bottom: 30px;
}
.company .section-content ul li .position {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto 13px;
  width: 133px;
  height: 21px;
  background: #1b191c;
  color: #fff;
}
.company .section-content ul li .name {
  line-height: 1.5em;
}
