#sec1 {
  background: url("../img/index/s1_deco_sp.jpg") no-repeat top center/100% auto, url("../img/index/s1_deco3_sp.png") no-repeat bottom center/100% auto;
  padding: 10vw 0 22.8vw;
}
#sec1 .set1 {
  position: relative;
}
#sec1 .set1 .img {
  margin: 12vw 0 0;
}
#sec1 .set1 h2 {
  margin: 0 23.5vw;
}
#sec1 .group-txt {
  display: flex;
  justify-content: center;
  padding: 9.2vw 0 0;
  background: var(--color);
  color: #fff;
}
#sec1 .group-txt .txt {
  font-size: 15px;
  line-height: 35px;
  width: 280px;
  margin: 0 auto;
  height: 260px;
}
#sec1 .set2 {
  position: relative;
  padding: 87.2vw 0 0;
}
#sec1 .set2 .img {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
}
#sec1 .set2 .flex {
  padding: 0;
  z-index: 2;
}
#sec1 .set2 .flex .img2 {
  margin: 12vw 35.5vw 11vw 0;
}
#sec1 .set2 .flex .img3 {
  margin: 0 0 0 23vw;
}
#sec1 .set2 .flex .group-content {
  margin: 0 var(--wrapPadding);
}
@media screen and (max-width: 767px) {
  #sec1 .set2 .flex .group-content h3 {
    width: 69.2vw;
  }
}
#sec1 .set2 .flex .group-content .txt {
  letter-spacing: -0.01em;
  margin: 7vw 0 0;
}
@media screen and (min-width: 768px) {
  #sec1 {
    background: url("../img/index/s1_deco.jpg") no-repeat top center, url("../img/index/s1_deco3.png") no-repeat bottom center;
    padding: 170px 0 0;
  }
  #sec1 .set1 {
    position: relative;
    display: flex;
    align-items: flex-start;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 139px;
  }
  #sec1 .set1 .img {
    width: calc(50% + 137px);
    height: 699px;
    max-width: calc(100% - 498px);
    margin: 41px 0 0;
  }
  #sec1 .set1 h2 {
    margin: 0;
  }
  #sec1 .group-txt {
    position: relative;
    z-index: 2;
    width: 451px;
    height: 334px;
    margin: -49px auto 0;
    box-sizing: border-box;
    padding: 40px 0 0;
  }
  #sec1 .group-txt .txt {
    font-size: 17px;
    line-height: 40px;
    width: 320px;
    height: 290px;
  }
  #sec1 .set2 {
    padding: 157px 0 0;
  }
  #sec1 .set2 .img {
    width: 872px;
    top: -489px;
    left: calc(50% + 128px);
  }
  #sec1 .set2 .flex {
    width: 1398px;
    display: flex;
    justify-content: flex-end;
    gap: 113px;
    align-items: flex-start;
  }
  #sec1 .set2 .flex .img2 {
    position: absolute;
    top: -201px;
    right: calc(50% + 188px);
    width: 352px;
    margin: 0;
  }
  #sec1 .set2 .flex .img3 {
    width: 645px;
    height: 500px;
    max-width: calc(100% - 480px);
    margin: 0;
  }
  #sec1 .set2 .flex .group-content {
    width: 365px;
    margin: 179px 0 0;
    position: relative;
    padding: 0 0 97px;
  }
  #sec1 .set2 .flex .group-content::before {
    content: "";
    position: absolute;
    width: 1px;
    background: #000;
    top: -24px;
    left: -77px;
    bottom: 0;
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  #sec1 .set2 .flex .group-content::before {
    left: -20px;
  }
}
@media screen and (min-width: 768px) {
  #sec1 .set2 .flex .group-content .txt {
    margin: 48px 0 0;
  }
}

#sec2 {
  background: url("../img/shared/bg4.png");
}
#sec2 .set1 {
  min-height: 106.4vw;
  position: relative;
  z-index: 1;
  color: #fff;
}
#sec2 .set1 .bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#sec2 .set1 .wrap {
  z-index: 2;
}
#sec2 .set1 .group-content {
  padding: 20vw 0 0;
}
#sec2 .set1 .group-content h2 {
  width: 78.8vw;
  margin: 0 auto;
}
#sec2 .set1 .group-content .txt {
  margin: 7vw 0 0;
  letter-spacing: -0.02em;
}
#sec2 .set2 {
  position: relative;
  margin: 4vw 0 0;
  padding: 0 0 24.5vw;
}
#sec2 .set2 .item1 {
  color: #fff;
  position: relative;
  z-index: 2;
}
#sec2 .set2 .item1 h3 {
  position: absolute;
  z-index: 2;
  top: 12vw;
  width: 18.8vw;
}
@media screen and (max-width: 767px) {
  #sec2 .set2 .item1 h3 {
    left: 50%;
    transform: translateX(-50%);
  }
}
#sec2 .set2 .item1 .txt {
  position: absolute;
  z-index: 2;
  left: 15px;
  right: 15px;
  bottom: 25px;
  letter-spacing: -0.025em;
}
#sec2 .set2 .item2 {
  margin: 12vw 0 0;
  color: #fff;
  position: relative;
}
#sec2 .set2 .item2 h3 {
  position: absolute;
  z-index: 2;
  top: 9vw;
  width: 46.8vw;
}
@media screen and (max-width: 767px) {
  #sec2 .set2 .item2 h3 {
    left: 50%;
    transform: translateX(-50%);
  }
}
#sec2 .set2 .item2 .img {
  height: 105vw;
}
#sec2 .set2 .item2 .txt {
  position: absolute;
  z-index: 2;
  left: 15px;
  right: 15px;
  bottom: 25px;
  letter-spacing: -0.035em;
}
@media screen and (min-width: 768px) {
  #sec2 .set1 {
    min-height: 846px;
  }
  #sec2 .set1 .bg img {
    -o-object-position: bottom center;
       object-position: bottom center;
  }
  #sec2 .set1 .wrap {
    width: 1300px;
  }
  #sec2 .set1 .group-content {
    width: 540px;
    margin: 0 0 0 auto;
    padding: 364px 0 0;
  }
  #sec2 .set1 .group-content h2 {
    width: auto;
    margin: 0;
  }
  #sec2 .set1 .group-content .txt {
    margin: 26px 0 0 28px;
  }
  #sec2 .set2 {
    margin: -179px 0 0;
    padding: 0 0 99px;
    background: url("../img/index/s2_deco.png") no-repeat top right, url("../img/index/s2_deco2.png") no-repeat bottom left;
  }
}
@media screen and (min-width: 768px) and (max-width: 1500px) {
  #sec2 .set2 {
    background-position: top 61px center, bottom center;
  }
}
@media screen and (min-width: 768px) {
  #sec2 .set2 .wrap {
    width: 1436px;
    display: flex;
    justify-content: flex-end;
    gap: 73px;
    align-items: flex-start;
  }
  #sec2 .set2 .item1 {
    width: 518px;
  }
  #sec2 .set2 .item1 h3 {
    top: -78px;
    right: -54px;
    width: auto;
  }
  #sec2 .set2 .item1 .img {
    height: 678px;
  }
  #sec2 .set2 .item1 .txt {
    left: 39px;
    right: 0;
    bottom: 42px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1250px) {
  #sec2 .set2 .item1 .txt {
    left: 15px;
  }
}
@media screen and (min-width: 768px) {
  #sec2 .set2 .item2 {
    width: 725px;
    margin: 414px 0 0;
  }
  #sec2 .set2 .item2 h3 {
    top: -55px;
    left: 0;
    text-align: right;
    width: 496px;
  }
  #sec2 .set2 .item2 .img {
    height: 449px;
  }
  #sec2 .set2 .item2 .txt {
    left: 40px;
    right: 30px;
    bottom: 39px;
  }
}

#sec3 {
  position: relative;
  color: #fff;
  background: #2a201b;
}
#sec3 .loopslider ul {
  animation-duration: 50s;
}
#sec3 .loopslider ul li {
  width: 76vw;
}
@media screen and (max-width: 767px) {
  #sec3 .wrap {
    padding-top: 13.2vw;
    padding-bottom: 20vw;
    background: url("../img/index/s3_deco_sp.jpg") no-repeat center/cover;
  }
}
#sec3 .group-content h2 {
  margin: 0 24vw;
}
#sec3 .group-content .txt {
  line-height: 2.5;
  margin: 12vw 0;
  letter-spacing: 0.06em;
}
#sec3 .group-content .btn-link {
  margin: 0 auto;
}
#sec3 .group-content .btn-link + .btn-link {
  margin-top: 6.7vw;
}
@media screen and (min-width: 768px) {
  #sec3 {
    padding: 81px 0 91px;
    background: url("../img/index/s3_deco4.png") no-repeat bottom center, url("../img/index/s3_deco2.png") no-repeat top center, url("../img/index/s3_deco.png") no-repeat center, #230c02;
  }
  #sec3 .loopslider-vertical {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: calc(50% - 101px);
  }
  #sec3 .loopslider-vertical ul {
    animation-duration: 90s;
  }
  #sec3 .loopslider-vertical ul li {
    margin-top: 30px;
    width: 100%;
    height: 350px;
  }
  #sec3 .group-content {
    width: 440px;
    margin: 0 0 0 auto;
  }
  #sec3 .group-content h2 {
    text-align: center;
    margin: 0 auto;
  }
  #sec3 .group-content .txt {
    line-height: 2.5;
    width: 360px;
    margin: 54px auto 0;
    height: 258px;
  }
  #sec3 .group-content .btn-link {
    margin: 0 auto;
  }
  #sec3 .group-content .btn-link + .btn-link {
    margin-top: 29px;
  }
}

#sec4 {
  position: relative;
  padding: 46vw 7vw 42vw;
  text-align: center;
  color: #fff;
}
#sec4 .para {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
#sec4 .group-ttl {
  position: relative;
  z-index: 3;
}
#sec4 .group-ttl .btn-link {
  margin: 12vw auto 0;
  width: 300px;
}
@media screen and (max-width: 767px) {
  #sec4 .group-ttl .btn-link a {
    padding-left: 45px;
  }
  #sec4 .group-ttl .btn-link a::before {
    right: 25px;
  }
}
@media screen and (min-width: 768px) {
  #sec4 {
    padding: 232px 0 253px;
  }
  #sec4 .group-ttl .btn-link {
    margin: 82px auto 0;
    width: 400px;
  }
}

#sec5 {
  background: url("../img/index/s5_deco_sp.png") no-repeat top center/100% auto, url("../img/index/gmap_deco_sp.png") no-repeat bottom center/100% auto;
  padding: 22.8vw 0 44vw;
}
#sec5 h2 {
  text-align: center;
  margin: 0 13.3vw 15vw;
}
#sec5 .set {
  position: relative;
}
#sec5 .set .img {
  margin: 23.7vw 7vw 0;
}
#sec5 .set .left {
  text-align: center;
  margin: 0 0 12vw;
}
#sec5 .set .left .logo {
  margin: 0 26vw 6vw 36.67vw;
}
#sec5 .set .left .tel .sub-tel {
  display: block;
  line-height: 1;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: 400;
  margin: 0 0 7px;
}
#sec5 .set .left .tel span {
  display: flex;
  align-items: baseline;
  line-height: 1;
  gap: 5px;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  font-size: 30px;
  letter-spacing: 0.06em;
  justify-content: center;
}
#sec5 .set .left .tel span::before {
  content: "";
  background: url("../img/shared/icon_tel4_sp.png") no-repeat center/100% auto;
  width: 21px;
  height: 21px;
}
#sec5 .set .left .btn-web {
  width: 250px;
  margin: 26px auto 0;
}
#sec5 .set .left .btn-web a {
  border: 0;
  padding-left: 37px;
}
#sec5 .set .left .btn-web a::before {
  right: 35px;
}
#sec5 .set .info {
  margin: 0 -5.3vw 0 -2.8vw;
}
#sec5 .set .info dl {
  line-height: 1.6875;
  padding: 0 0 14px 7px;
  font-size: 13px;
  display: flex;
  align-items: flex-start;
  letter-spacing: 0;
  border-bottom: 1px solid rgba(53, 36, 36, 0.2);
}
#sec5 .set .info dl + dl {
  margin-top: 12px;
}
#sec5 .set .info dl dt {
  width: 70px;
}
#sec5 .set .info dl dd {
  width: calc(100% - 70px);
}
#sec5 .flex {
  margin: 10vw 0 22.7vw;
}
#sec5 .flex .box {
  box-sizing: border-box;
  border: 1px solid #000;
  padding: 30px 0 32px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  #sec5 .flex .box {
    border-radius: 9px;
  }
}
#sec5 .flex .box .tit {
  font-size: 17.5px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin: 0 0 25px;
}
#sec5 .flex .box .txt {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0;
}
#sec5 .flex .group-img {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 5.3vw;
  margin: 12.67vw 0 0;
}
#sec5 .flex .group-img .group-txt {
  width: 25.3vw;
  box-sizing: border-box;
  height: 67.5vw;
  position: relative;
  background: var(--color);
  color: #fff;
  display: flex;
  align-items: flex-start;
  flex-direction: row-reverse;
  padding: 8vw 6vw 0 0;
}
#sec5 .flex .group-img .group-txt:after {
  content: "";
  position: absolute;
  right: -4.5vw;
  bottom: 6.4vw;
  background: url("../img/index/s5_arrow.png") no-repeat center right/100% auto;
  width: 4.9vw;
  height: 4.267vw;
}
#sec5 .flex .group-img .group-txt .txt {
  font-size: 4.5vw;
  line-height: 1.5;
  width: 6.75vw;
  height: 59vw;
  letter-spacing: 0.07em;
}
#sec5 .flex .group-img .group-txt .sub-txt {
  font-size: 3.4vw;
  line-height: 2;
  width: 6.8vw;
  height: 59vw;
  margin: 1vw 1px 0 0;
}
@media screen and (max-width: 767px) {
  #sec5 .flex .group-img .img {
    width: 58.58vw;
  }
}
#sec5 #ggmap h2 {
  font-size: 6.13vw;
  line-height: 1.5;
  margin: 0 0 5vw;
  text-align: left;
  letter-spacing: 0.05em;
}
#sec5 #ggmap .ggmap {
  height: 100vw;
}
#sec5 #ggmap .ggmap iframe {
  width: 100%;
  height: 100%;
}
#sec5 #ggmap .group-btn {
  margin: 9vw 0 0;
}
#sec5 #ggmap .group-btn .btn-link {
  margin: 0 auto;
}
#sec5 #ggmap .group-btn .btn-link a {
  border: 0;
  padding: 13.5px 0 13.5px 70px;
}
@media screen and (max-width: 767px) {
  #sec5 #ggmap .group-btn .btn-link a::before {
    right: 27px;
  }
}
@media screen and (min-width: 768px) {
  #sec5 {
    padding: 139px 0 189px;
    background: url("../img/index/s5_deco.png") no-repeat top center, url("../img/index/gmap_deco.png") no-repeat bottom center;
  }
  #sec5 h2 {
    margin: 0 0 98px;
  }
  #sec5 .set {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 0 0 26px;
  }
  #sec5 .set .img {
    position: absolute;
    left: 0;
    bottom: 0;
    margin: 0;
  }
  #sec5 .set .left {
    text-align: center;
    width: 320px;
    margin: 16px 0 0;
  }
  #sec5 .set .left .logo {
    margin: 0 0 46px;
  }
  #sec5 .set .left .tel .sub-tel {
    font-size: 13px;
  }
  #sec5 .set .left .tel span {
    font-size: 34px;
  }
  #sec5 .set .left .tel span::before {
    background: url("../img/shared/icon_tel4.png") no-repeat center/100% auto;
    width: 25px;
    height: 24px;
  }
  #sec5 .set .left .btn-web {
    width: 286px;
    margin: 26px auto 0;
  }
  #sec5 .set .left .btn-web a {
    padding-left: 40px;
  }
  #sec5 .set .left .btn-web a::before {
    right: 41px;
  }
  #sec5 .set .left .btn-web a:hover::before {
    right: 35px;
  }
  #sec5 .set .info {
    width: 620px;
    margin: 0;
  }
  #sec5 .set .info dl {
    padding: 0 0 14px 8px;
    font-size: 16px;
  }
  #sec5 .set .info dl dt {
    width: 158px;
  }
  #sec5 .set .info dl dd {
    width: calc(100% - 128px);
    margin-right: -30px;
  }
  #sec5 .flex {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin: 83px 0 33px;
  }
  #sec5 .flex .box {
    width: 397px;
    padding: 38px 0 37px;
  }
  #sec5 .flex .box .tit {
    font-size: 20px;
  }
  #sec5 .flex .box .txt {
    font-size: 15px;
  }
  #sec5 .flex .group-img {
    gap: 39px;
    margin: 0;
  }
  #sec5 .flex .group-img .group-txt {
    width: 112px;
    height: 298px;
    padding: 35px 25px 0 0;
  }
  #sec5 .flex .group-img .group-txt:after {
    right: -21px;
    bottom: 28px;
    width: 22px;
    height: 19px;
  }
  #sec5 .flex .group-img .group-txt .txt {
    font-size: 20px;
    width: 30px;
    height: 264px;
  }
  #sec5 .flex .group-img .group-txt .sub-txt {
    font-size: 15px;
    width: 30px;
    height: 264px;
    margin: 4px 1px 0 0;
  }
  #sec5 #ggmap h2 {
    font-size: 32px;
    margin: 0 0 39px;
  }
  #sec5 #ggmap .ggmap {
    height: 500px;
  }
  #sec5 #ggmap .group-btn {
    margin: 68px 0 0;
  }
  #sec5 #ggmap .group-btn .btn-link {
    margin: 0 auto;
  }
  #sec5 #ggmap .group-btn .btn-link a {
    padding: 11px 0 11px 97px;
  }
  #sec5 #ggmap .group-btn .btn2 {
    margin: 12px 0 0;
    text-align: center;
    line-height: 1.5;
  }
  #sec5 #ggmap .group-btn .btn2 a {
    text-decoration: none;
    display: inline-block;
    padding: 0 0 4px;
    border-bottom: 1px solid;
    color: #000;
  }
  #sec5 #ggmap .group-btn .btn2 a:hover {
    border-color: transparent;
  }
}