#sec1 {
  padding: 17vw 0;
}

#sec1 h2 {
  text-align: center;
  margin-top: 10vw;
  font-size: 5.2vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#sec1 .txt {
  margin: 10vw 8.7% 0;
}

@media screen and (min-width: 1000px) {
  #sec1 {
    padding: 131px 0 196px;
  }

  #sec1 .wrap {
    max-width: 1140px;
    padding: 0 20px;
  }

  #sec1 h2 {
    margin-top: 101px;
    font-size: 30px;
  }

  #sec1 .txt {
    text-align: center;
    max-width: 837px;
    margin: 53px auto 0;
  }
}

#sec2 {
  position: relative;
  padding: 17vw 0 25vw;
}

#sec2::before {
  content: "";
  position: absolute;
  background: url("../img/shared/bg01.jpg") repeat center;
  top: 0;
  bottom: 10vw;
  left: 0;
  right: 60%;
  z-index: -1;
}

#sec2 .deco {
  position: absolute;
  width: 50%;
  top: -12vw;
  right: 0;
  z-index: 1;
}

#sec2 h2 {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 5.2vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#sec2 h2::before {
  content: "";
  position: absolute;
  background: silver;
  height: 1px;
  width: 30vw;
  top: 50%;
  right: -48vw;
  transform: translateX(-50%);
}

#sec2 .youtube {
  pointer-events: none;
  margin-top: 10vw;
  width: 100%;
  height: 51.6vw;
}

#sec2 .youtube iframe {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

#sec2 .txt {
  margin: 8vw 8.7% 0;
}

#sec2 .row {
  margin-top: 9vw;
}

#sec2 .row .photo {
  margin: 0 15%;
}

@media screen and (min-width: 1000px) {
  #sec2 {
    padding: 166px 0 231px;
  }

  #sec2::before {
    right: calc(50% + 160px);
    bottom: 123px;
  }

  #sec2 .deco {
    width: auto;
    top: -95px;
  }

  #sec2 h2 {
    font-size: 30px;
  }

  #sec2 h2::before {
    width: 140px;
    right: -232px;
  }

  #sec2 .youtube {
    max-width: 968px;
    margin: 108px auto 0;
    height: 545px;
  }

  #sec2 .txt {
    margin: 0;
  }

  #sec2 .txt-1 {
    width: 669px;
    margin: 59px 23px 0 auto;
  }

  #sec2 .row {
    display: flex;
    justify-content: space-between;
    margin: 129px 25px 0 74px;
  }

  #sec2 .row .photo {
    margin: 0;
  }

  #sec2 .row .txt {
    width: 392px;
    margin-top: 116px;
  }
}

#sec3 {
  background: url("../img/concept/sec3_bg.png") no-repeat center top/150%,
    url("../img/concept/sec3_deco.png") no-repeat right bottom/80% #000;
  color: #fff;
  padding: 15vw 0 20vw;
}

#sec3 .group1 h2 {
  background: url("../img/shared/deco_ttl_w.png") no-repeat center top/5.6vw
    auto;
  padding-top: 13vw;
  margin: 0 auto;
  font-size: 5.2vw;
  line-height: 2.3333333333;
  letter-spacing: 0.15em;
}

#sec3 .group1 .photo {
  margin: 10vw 15% 0;
}

#sec3 .group2 .txt {
  margin: 10vw 8.7% 0;
}

#sec3 .group2 .group-photo {
  margin-top: 10vw;
}

#sec3 .group2 .group-photo li:nth-child(1) {
  margin-right: 15%;
  height: 110vw;
}

#sec3 .group2 .group-photo li:nth-child(1) img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: bottom;
  object-position: bottom;
}

#sec3 .group2 .group-photo li:nth-child(2) {
  margin: 10vw 0 0 20%;
}

@media screen and (min-width: 1000px) {
  #sec3 {
    background-size: 100%, auto, auto;
    padding: 70px 0 120px;
  }

  #sec3 .group1 {
    display: flex;
    justify-content: space-between;
  }

  #sec3 .group1 h2 {
    background-size: 31px auto;
    padding-top: 91px;
    margin: 148px 0 0 135px;
    font-size: 30px;
  }

  #sec3 .group1 .photo {
    margin: 0 55px 0 0;
  }

  #sec3 .group2 {
    position: relative;
    margin-top: 29px;
  }

  #sec3 .group2 .txt {
    margin: 112px 63px 0 auto;
    height: 300px;
    line-height: 58px;
  }

  #sec3 .group2 .group-photo {
    margin-top: 0;
  }

  #sec3 .group2 .group-photo li:nth-child(1) {
    position: absolute;
    top: -83px;
    left: -76px;
    right: 576px;
    margin-right: 0;
    height: 740px;
  }

  #sec3 .group2 .group-photo li:nth-child(1) img {
    -o-object-position: center;
    object-position: center;
  }

  #sec3 .group2 .group-photo li:nth-child(2) {
    text-align: right;
    margin: 125px -74px 0 0;
  }
}

#sec4 {
  background: url("../img/concept/sec4_deco.png") no-repeat right top/70%;
  padding: 17vw 0;
}

#sec4 .group-txt {
  margin: 10vw 8.7% 0;
}

#sec4 .group-txt h2 {
  text-align: center;
  font-size: 5.2vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#sec4 .group-txt .txt {
  margin: 10vw 0;
}

@media screen and (min-width: 1000px) {
  #sec4 {
    background-size: auto;
    padding: 184px 0 130px;
  }

  #sec4 .wrap {
    max-width: 1240px;
    padding: 0 20px;
  }

  #sec4 .group-txt {
    margin: 70px 0 0;
  }

  #sec4 .group-txt h2 {
    font-size: 30px;
  }

  #sec4 .group-txt .txt {
    text-align: center;
    margin: 33px 0 64px;
  }
}
