@media only screen and (min-width: 768px) {
  #key {
    background: url("../img/concept/kv_img.jpg") no-repeat center/cover;
  }
  #key img {
    opacity: 0;
  }
}

#sec1 {
  margin-top: 10vw;
  padding-bottom: 16vw;
}
#sec1 .ttl {
  margin: 10vw 0 9vw;
}
#sec1 .ttl-line p span {
  padding: 0;
}
#sec1 .ttl-line p span:before {
  background: rgba(255, 255, 255, 0.3);
}
#sec1 .sec1-deco {
  position: absolute;
  z-index: -1;
  right: -6vw;
  bottom: -53vw;
  width: 76%;
}
@media only screen and (min-width: 768px) {
  #sec1 {
    margin-top: 60px;
    padding-top: 134px;
    padding-bottom: 149px;
    z-index: 0;
  }
  #sec1 .sec1-img {
    position: absolute;
    z-index: 0;
    top: 0;
    right: -250px;
    width: 1316px;
  }
  #sec1 .sec1-info {
    margin-left: 60px;
    width: 680px;
    position: relative;
    z-index: 1;
  }
  #sec1 .ttl {
    margin: 0 0 43px;
  }
  #sec1 .ttl p:nth-child(1) {
    width: 328px;
  }
  #sec1 .ttl p:nth-child(2) {
    width: 525px;
  }
  #sec1 .ttl p span {
    display: block;
  }
  #sec1 .ttl .ttl-en {
    padding: 0 10px;
  }
  #sec1 .sec1-deco {
    right: -453px;
    bottom: -128px;
    width: 564px;
  }
}

#sec2 .ttl-en {
  text-transform: none;
}
#sec2 h2 {
  border-bottom: 1px solid #fff;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 5vw;
}
@media only screen and (min-width: 768px) {
  #sec2 h2 {
    margin-bottom: 57px;
    padding-bottom: 17px;
  }
}

#sec2-1 {
  position: relative;
  z-index: 0;
  padding: 12vw 0 15vw;
}
#sec2-1:before {
  content: "";
  position: absolute;
  z-index: 0;
  background: url("../img/concept/sec2_bg.png");
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#sec2-1 .wrap {
  z-index: 1;
}
#sec2-1 .sec2-img1 {
  margin-left: -5%;
  margin-bottom: 8vw;
}
#sec2-1 .sec2-txt1 {
  line-height: 1.5;
}
#sec2-1 .sec2-txt2 {
  margin: 3vw 0 8vw;
}
#sec2-1 .sec2-img2 p:nth-child(1) {
  width: 60%;
}
#sec2-1 .sec2-img2 p:nth-child(2) {
  width: 35%;
  margin-top: 20vw;
}
#sec2-1 .sec2-deco {
  position: absolute;
  z-index: -1;
  width: 70%;
  bottom: 27vw;
  left: -25%;
}
@media only screen and (min-width: 768px) {
  #sec2-1 {
    padding: 112px 0 112px;
  }
  #sec2-1:before {
    left: calc(50% - 677px);
    width: 1354px;
    height: 100%;
  }
  #sec2-1 .wrap {
    z-index: 1;
  }
  #sec2-1 .sec2-img1 {
    margin: 0;
    position: absolute;
    top: 0;
    left: -258px;
  }
  #sec2-1 .sec2-info {
    width: 524px;
    margin: 0 -100px 0 auto;
    position: relative;
    z-index: 1;
    padding-top: 85px;
  }
  #sec2-1 .sec2-txt1 {
    line-height: 1.5;
  }
  #sec2-1 h2 {
    margin-bottom: 57px;
    padding-bottom: 17px;
    line-height: 78px;
  }
  #sec2-1 h2 .ttl-en {
    margin: 18px 0 0 18px;
  }
  #sec2-1 .sec2-txt2 {
    margin: 43px -3px 0 0;
  }
  #sec2-1 .sec2-img2 p:nth-child(1) {
    width: 538px;
    margin: -93px 0 0 -89px;
  }
  #sec2-1 .sec2-img2 p:nth-child(2) {
    width: 343px;
    margin: 130px 165px 0 0;
  }
  #sec2-1 .sec2-deco {
    width: 669px;
    bottom: 156px;
    left: -177px;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1200px) {
  #sec2-1 .sec2-info {
    margin-right: 20px;
    width: 460px;
  }
}

#sec2-2 {
  position: relative;
  z-index: 0;
  padding: 12vw 0 15vw;
}
#sec2-2:before {
  content: "";
  position: absolute;
  z-index: 0;
  background: url("../img/concept/sec2_bg2.png");
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#sec2-2 .wrap {
  z-index: 1;
}
#sec2-2 .sec2-img1 {
  margin-right: -5%;
  margin-bottom: 8vw;
}
#sec2-2 .sec2-txt1 {
  line-height: 1.5;
}
#sec2-2 h2 {
  padding-bottom: 5vw;
}
#sec2-2 .sec2-txt2 {
  margin: 3vw 0 8vw;
}
#sec2-2 .sec2-img2 {
  margin-bottom: 5vw;
}
#sec2-2 .sec2-img2 p:nth-child(2) {
  width: 60%;
}
#sec2-2 .sec2-img2 p:nth-child(1) {
  width: 35%;
  margin-top: 20vw;
}
#sec2-2 .sec2-deco {
  position: absolute;
  z-index: -1;
  width: 70%;
  bottom: 50vw;
  right: -25%;
}
@media only screen and (min-width: 768px) {
  #sec2-2 {
    padding: 119px 0 109px;
  }
  #sec2-2:before {
    left: calc(50% - 677px);
    width: 1354px;
    height: 100%;
  }
  #sec2-2 .wrap {
    z-index: 1;
  }
  #sec2-2 .sec2-img1 {
    margin: 0;
    position: absolute;
    top: 0;
    right: -250px;
    width: 965px;
  }
  #sec2-2 .sec2-info {
    width: 550px;
    margin-left: -100px;
    position: relative;
    z-index: 1;
    padding-top: 137px;
  }
  #sec2-2 h2 {
    padding-bottom: 36px;
    line-height: 78px;
    margin-bottom: 38px;
  }
  #sec2-2 h2 .ttl-en {
    margin: 18px 0 0 10px;
  }
  #sec2-2 .sec2-txt2 {
    margin: 43px -3px 0 0;
  }
  #sec2-2 .sec2-img2 {
    margin-bottom: 0;
  }
  #sec2-2 .sec2-img2 p:nth-child(2) {
    width: 608px;
    margin: -56px -72px 0 0;
  }
  #sec2-2 .sec2-img2 p:nth-child(1) {
    width: 439px;
    margin: 137px 0 0 -9px;
  }
  #sec2-2 .sec2-deco {
    width: 669px;
    bottom: 264px;
    right: -363px;
  }
  #sec2-2 .btn-link {
    position: absolute;
    bottom: -2px;
    right: 138px;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1280px) {
  #sec2-2 .sec2-info {
    margin-left: 20px;
  }
}

#sec2-3 {
  display: block;
  background: url("../img/shared/bg4.jpg");
  padding: 5px;
  color: #000;
  margin-bottom: 13vw;
}
#sec2-3 .zoom1 {
  padding-top: 100vw;
}
#sec2-3 .sec2-txt3 {
  position: absolute;
  z-index: 1;
  font-size: 4vw;
  line-height: 1.7;
  bottom: 11vw;
  right: 5%;
}
#sec2-3 .btn-link2 {
  position: absolute;
  z-index: 1;
  bottom: 2vw;
  right: 5%;
  text-transform: uppercase;
}
#sec2-3 .btn-link2 em {
  letter-spacing: 0.32em;
  transition: 0.5s ease !important;
}
#sec2-3 .btn-link2 em:first-letter {
  color: #59871a;
}
#sec2-3 .btn-link2 span {
  width: 23vw;
}
#sec2-3 a:hover .btn-link2 em {
  color: #59871a;
}
@media only screen and (min-width: 768px) {
  #sec2-3 {
    margin: 105px auto 110px;
    max-width: 1220px;
    padding: 10px;
  }
  #sec2-3 .zoom1 {
    padding-top: 477px;
  }
  #sec2-3 .sec2-txt3 {
    font-size: 25px;
    line-height: 2;
    bottom: 198px;
    right: 8%;
    letter-spacing: 5px;
  }
  #sec2-3 .btn-link2 {
    bottom: 103px;
    right: 8%;
  }
  #sec2-3 .btn-link2 span {
    width: 210px;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1300px) {
  #sec2-3 {
    margin: 105px 50px 110px;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1100px) {
  #sec2-3 .sec2-txt3,
  #sec2-3 .btn-link2 {
    right: 5%;
  }
}

#sec3 {
  margin-bottom: 15vw;
}
#sec3 .sec3-1 {
  position: relative;
}
#sec3 .sec3-img {
  margin-left: -23%;
  margin-right: -10%;
}
#sec3 h2 {
  text-align: center;
  position: absolute;
  right: 10%;
  top: 9vw;
  z-index: 1;
}
#sec3 h2 .ttl-en {
  position: relative;
  padding-bottom: 3vw;
  margin-bottom: 6vw;
  margin-left: 5vw;
}
#sec3 h2 .ttl-en:before {
  content: "";
  position: absolute;
  background: #fff;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 1px;
  width: 6vw;
}
#sec3 h2 p:nth-child(2) {
  margin: 0 auto;
  letter-spacing: 0.25em;
}
#sec3 .sec3-map {
  margin: -5vw 0 7vw;
}
#sec3 .sec3-deco {
  position: absolute;
  z-index: -1;
  width: 70%;
  bottom: 27vw;
  left: -25%;
}
#sec3 .sec3-slider {
  margin-top: 10vw;
  height: 293px;
  overflow: hidden;
}
#sec3 .sec3-slider img {
  width: auto;
  height: 293px;
}
@media only screen and (min-width: 768px) {
  #sec3 {
    margin-bottom: 100px;
  }
  #sec3 .sec3-img {
    margin: 0 -100px 0 -250px;
  }
  #sec3 h2 {
    right: 128px;
    top: 170px;
  }
  #sec3 h2 .ttl-en {
    padding-bottom: 15px;
    margin-bottom: 39px;
    margin-left: 0;
  }
  #sec3 h2 .ttl-en:before {
    width: 33px;
  }
  #sec3 h2 p:nth-child(2) {
    letter-spacing: 0.2em;
  }
  #sec3 .sec3-map {
    width: 626px;
    /* margin: -154px -177px 0 0; */
    margin: -90px 0 0px 0px;
    order: 2;
  }
  #sec3 .sec3-txt {
    width: 670px;
    margin-top: 65px;
  }
  #sec3 .sec3-deco {
    width: 669px;
    bottom: -305px;
    left: -250px;
  }
  #sec3 .sec3-slider {
    margin-top: 65px;
    height: 587px;
  }
  #sec3 .sec3-slider img {
    height: 587px;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1100px) {
  #sec3 .sec3-txt {
    margin-left: 30px;
  }
  #sec3 .sec3-map {
    width: 560px;
  }
}
