main {
  overflow: hidden;
}

.txt {
  text-align: start;
}

@media screen and (min-width: 768px) {
  #header #key .right {
    min-width: 283px;
  }

  #header #key .right .btn-web {
    margin-top: 21px;
  }
}

@media screen and (max-width: 767px) {
  #header #key .img img {
    -o-object-position: 85% center;
    object-position: 85% center;
  }

  #ft-fixed .web {
    width: 50%;
  }

  #ft-fixed .web a {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: 0;
  }

  #ft-fixed .web a>span {
    padding: 5px 0 0;
  }
}

#sec1 {
  position: relative;
  padding: 20vw 0 0;
}

#sec1 .deco {
  position: absolute;
  width: 120vw;
  top: -10vw;
  left: 20vw;
  mix-blend-mode: color-burn;
}

#sec1 .flex {
  position: relative;
  z-index: 2;
  margin: 0 var(--wrapPadding);
}

#sec1 .flex h2 {
  margin: 0 0 10vw;
  text-align: center;
  font-size: 6vw;
  line-height: 2;
  letter-spacing: 0.2em;
  padding: 0 0 5vw;
  background: url("../img/en/line.png") no-repeat bottom center/20vw auto;
}

#sec1 .txt {
  margin: 10vw var(--wrapPadding) 15vw;
  position: relative;
  z-index: 2;
  letter-spacing: 0.1em;
}

#sec1 .group-img {
  margin: 0 var(--wrapPadding) -15vw;
  position: relative;
  z-index: 2;
}

#sec1 .group-img .img {
  width: 90%;
  margin: 0 0 6vw auto;
}

#sec1 .group-img .img2 {
  width: 75%;
}

#sec1 .para {
  height: 70vw;
}

@media screen and (min-width: 768px) {
  #sec1 {
    padding: 145px 0 0;
  }

  #sec1 .deco {
    width: 1084px;
    top: -78px;
    left: calc(50% - 84px);
  }

  #sec1 .flex {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-start;
    width: 1156px;
    max-width: calc(100% - 60px);
    margin: 0 auto;
    justify-content: space-between;
  }

  #sec1 .flex .img {
    width: 669px;
    height: 453px;
    max-width: calc(100% - 474px);
  }

  #sec1 .flex h2 {
    margin: 54px 20px 0 0;
    font-size: 36px;
    line-height: 75px;
    padding: 0 0 30px;
    background: url("../img/en/line.png") no-repeat bottom center;
  }

  #sec1 .txt {
    margin: 80px auto 194px;
    max-width: calc(100% - 60px);
    width: 500px;
    font-size: 15px;
    line-height: 43px;
    padding-right: 651px;
  }

  #sec1 .group-img {
    position: absolute;
    top: 565px;
    left: calc(50% + 110px);
    width: 529px;
    margin: 0;
    max-width: calc(50% - 140px);
  }

  #sec1 .group-img .img {
    width: 469px;
    max-width: 100%;
    height: 366px;
    margin: 0 0 32px auto;
  }

  #sec1 .group-img .img2 {
    width: auto;
  }

  #sec1 .para {
    height: 523px;
  }
}

#sec2 {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 20vw 0 0;
}

#sec2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  height: 15vw;
  width: 1px;
  background: url("../img/menu/s4_line.png");
}

#sec2 h2 {
  line-height: 1.5;
  font-size: 6vw;
  letter-spacing: 0.2em;
}

#sec2 .price {
  line-height: 1.5;
  margin: 4vw 0 12vw;
  letter-spacing: 0.1em;
  font-size: 5vw;
}

#sec2 .price small {
  font-size: 4vw;
}

#sec2 .flex .box {
  position: relative;
  margin: 0 10vw 10vw;
  box-sizing: border-box;
  padding: 8vw 5vw;
}

#sec2 .flex .box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("../img/shared/bg2.png");
}

#sec2 .flex .box .tit {
  font-size: 15px;
  line-height: 1.6;
  background: url("../img/shared/bg.jpg");
  margin: 0 0 18px;
  position: relative;
  z-index: 2;
}

#sec2 .flex .box ul {
  position: relative;
  z-index: 2;
}

#sec2 .flex .box ul li {
  line-height: 1.6;
  padding: 0 0 9px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

#sec2 .flex .box ul li+li {
  margin-top: 11px;
}

#sec2 .flex .img {
  margin: 0 var(--wrapPadding) 0 0;
}

#sec2 .group-img {
  margin: 10vw 0 0;
  position: relative;
}

#sec2 .group-img .img {
  width: 35vw;
  margin: 0 0 0 9vw;
  text-align: left;
  position: relative;
  z-index: 2;
}

#sec2 .group-img .img2 {
  position: absolute;
  right: 0;
  top: 10vw;
  width: 46vw;
}

#sec2 .group-img .img3 {
  position: relative;
  z-index: 2;
  margin: 10vw 45vw 0 0;
  text-align: left;
}

@media screen and (min-width: 768px) {
  #sec2 {
    padding: 174px 0 0;
  }

  #sec2::before {
    height: 144px;
  }

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

  #sec2 .price {
    margin: 22px 0 100px;
    font-size: 24px;
  }

  #sec2 .price small {
    font-size: 20px;
  }

  #sec2 .flex {
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 118px;
  }

  #sec2 .flex .box {
    width: 417px;
    margin: 59px 0 0;
    box-sizing: border-box;
    padding: 55px 80px 51px;
  }

  #sec2 .flex .box::before {
    right: auto;
    width: 1000px;
  }

  #sec2 .flex .box .tit {
    font-size: 17px;
    line-height: 25px;
  }

  #sec2 .flex .box ul li {
    font-size: 15px;
  }

  #sec2 .flex .img {
    width: calc(50% + 13px);
    height: 421px;
    max-width: calc(100% - 524px);
    margin: 0;
  }

  #sec2 .group-img {
    margin: 11px auto 0;
    width: 1220px;
    max-width: calc(100% - 60px);
  }

  #sec2 .group-img .img {
    width: 814px;
    margin: 0 auto;
  }

  #sec2 .group-img .img2 {
    top: 73px;
    width: auto;
  }

  #sec2 .group-img .img3 {
    margin: 131px auto 0;
    width: 1066px;
    max-width: 100%;
  }
}

#group {
  position: relative;
  margin: 40vw 0 0;
  padding: 0 0 25vw;
}

#group::before {
  content: "";
  position: absolute;
  left: 0;
  top: -100vw;
  background: url("../img/shared/bg2.png");
  right: 70vw;
  bottom: 0;
}

@media screen and (min-width: 768px) {
  #group {
    margin: 236px 0 0;
    padding: 0 0 187px;
  }

  #group::before {
    top: -938px;
    right: calc(50% + 533px);
  }
}

#sec3 {
  position: relative;
  z-index: 2;
}

#sec3 .group-content {
  padding: 0 var(--wrapPadding) 10vw;
}

#sec3 .group-content h2 {
  font-size: 6vw;
  line-height: 1.5;
  margin: 0 0 7vw;
  letter-spacing: 0.2em;
}

#sec3 .group-content .txt {
  /* text-align: justify; */
}

#sec3 .group-content .txt+.txt {
  margin-top: 20px;
}

#sec3 .s3-slide {
  width: calc(100% - 5vw);
  margin: 0 0 0 auto;
}

#sec3 .s3-slide .img {
  margin-right: 2.5vw;
}

@media screen and (max-width: 767px) {
  #sec3 .s3-slide .img img {
    width: 65vw;
  }
}

#sec3 .s3-slide .slick-arrow {
  width: 30px;
  height: 30px;
  bottom: -50px;
  top: auto;
}

#sec3 .s3-slide .slick-arrow.slick-prev {
  background-image: url("../img/shared/left2.png");
  left: calc(50vw - 40px);
}

#sec3 .s3-slide .slick-arrow.slick-next {
  right: auto;
  background-image: url("../img/shared/right2.png");
  left: calc(50vw + 10px);
}

@media screen and (min-width: 768px) {
  #sec3 {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
  }

  #sec3 .group-content {
    width: 358px;
    padding: 48px 0 0;
  }

  #sec3 .group-content h2 {
    font-size: 32px;
    margin: 0 0 46px;
  }

  #sec3 .group-content .txt {
    width: 310px;
    font-size: 15px;
    line-height: 43px;
  }

  #sec3 .s3-slide {
    width: calc(50% + 124px);
    margin: 0;
  }

  #sec3 .s3-slide .img {
    margin-right: 15px;
  }

  #sec3 .s3-slide .slick-arrow {
    width: 30px;
    height: 30px;
    bottom: -10px;
    top: auto;
  }

  #sec3 .s3-slide .slick-arrow.slick-prev {
    left: -9px;
  }

  #sec3 .s3-slide .slick-arrow.slick-next {
    left: 29px;
  }
}

#sec4 {
  margin: 25vw 0 0;
}

#sec4 .border {
  position: relative;
  padding: 10vw 5vw;
}

#sec4 .border::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: url("../img/sightseeing/s3_line.png") repeat-x top left, url("../img/sightseeing/s3_line.png") repeat-x bottom left;
}

#sec4 .group-content {
  padding: 10vw 0 0;
}

#sec4 .group-content h2 {
  font-size: 6vw;
  line-height: 2;
  margin: 0 0 5vw;
  text-align: center;
  letter-spacing: 0.2em;
}

#sec4 .group-content .txt {
  /* text-align: justify; */
}

@media screen and (min-width: 768px) {
  #sec4 {
    margin: 194px 0 0;
  }

  #sec4 .wrap {
    width: 979px;
  }

  #sec4 .border {
    padding: 67px 0 71px 48px;
    display: flex;
    align-items: flex-start;
    gap: 61px;
  }

  #sec4 .group-content {
    padding: 67px 0 0;
    width: 364px;
  }

  #sec4 .group-content h2 {
    font-size: 32px;
    line-height: 65px;
    margin: 0 0 25px;
  }
}

#sec5 {
  margin: 10vw var(--wrapPadding) 25vw;
}

#sec5 .box {
  background: url("../img/shared/bg2.png");
  padding: 12vw var(--wrapPadding);
  text-align: center;
}

#sec5 .box .tit {
  font-size: 5vw;
  line-height: 1.5;
  margin: 0 0 5vw;
  letter-spacing: 0.1em;
}

#sec5 .box .btn-web {
  margin: 0 auto;
  width: 394px;
  max-width: 100%;
}

#sec5 .box2 .box_ko {
  text-align: start;
  display: flex;
  justify-content: center;
}

#sec5 .box2 {
  background-image: none;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

#sec5 .box .btn-web a {
  font-size: 18px;
  padding: 11.5px 0;
  gap: 10px;
}

#sec5 .box .btn-web a::before {
  background-image: url("../img/en/icon_web.png");
  width: 14px;
  height: 15px;
}

@media screen and (min-width: 768px) {
  #sec5 {
    margin: 12px 0 198px;
  }

  #sec5 .box {
    width: 620px;
    margin: 0 auto;
    padding: 81px 0 83px;
  }

  #sec5 .box .tit {
    font-size: 24px;
    margin: 0 0 34px;
  }

  #sec5 .box .btn-web a {
    font-size: 21px;
  }

  #sec5 .box .btn-web a::before {
    width: 17px;
    height: 18px;
  }
}

#sec6 {
  position: relative;
  padding: 15vw 0;
}

#sec6::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background: url("../img/shared/bg2.png");
}

#sec6 .deco {
  mix-blend-mode: overlay;
  position: absolute;
  width: 90vw;
  top: -25vw;
  left: 20vw;
}

#sec6 .flex {
  margin: 0 var(--wrapPadding) 10vw;
  position: relative;
  z-index: 2;
}

#sec6 .flex .group-content {
  margin: 0 0 10vw;
}

#sec6 .flex .group-content h2 {
  font-size: 6vw;
  letter-spacing: 0.2em;
  line-height: 1.5;
  margin: 0 0 6vw;
  text-align: center;
}

#sec6 .flex .group-content .txt {
  /* text-align: justify; */
}

#sec6 .group-img {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 7vw;
  position: relative;
  z-index: 2;
}

#sec6 .group-img .img {
  width: auto;
}

#sec6 .group-img .img2 {
  margin: 10vw 0 0;
}

@media screen and (min-width: 768px) {
  #sec6 {
    padding: 97px 0 111px;
  }

  #sec6::before {
    left: calc(50% - 599px);
  }

  #sec6 .deco {
    width: 622px;
    top: -111px;
    left: calc(50% - 210px);
  }

  #sec6 .flex {
    max-width: calc(100% - 60px);
    margin: 0 auto 22px;
    width: 1182px;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 138px;
  }

  #sec6 .flex .group-content {
    width: 338px;
    margin: 85px 0 0;
  }

  #sec6 .flex .group-content h2 {
    font-size: 36px;
    margin: 0 0 38px;
  }

  #sec6 .group-img {
    gap: 77px;
  }

  #sec6 .group-img .img {
    width: auto;
  }

  #sec6 .group-img .img2 {
    width: calc(50% - 170px);
    height: 481px;
    max-width: calc(100% - 693px);
    margin: 114px 0 0;
  }
}

#sec7 {
  margin: 25vw 0 0;
  padding: 0 0 20vw;
}

#sec7 .img {
  position: relative;
}

#sec7 .img span {
  position: absolute;
  top: 52%;
  transform: translateY(-50%);
  left: 0;
  right: 0;
  text-align: center;
  color: #fff;
  z-index: 2;
  font-size: 6vw;
  line-height: 1.5;
  letter-spacing: 0.2em;
}

#sec7 .logo {
  text-align: center;
  margin: 10vw 32vw 0;
}

#sec7 .name {
  text-align: center;
  font-size: 5vw;
  line-height: 1.5;
  margin: 6vw 0 10vw;
}

#sec7 .box {
  border: 1px solid transparent;
  -o-border-image: url("../img/en/border.png") 1 round;
  border-image: url("../img/en/border.png") 1 round;
  padding: 8vw var(--wrapPadding);
}

#sec7 .box .col {
  padding: 0 0 10vw;
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}

#sec7 .box .col .btn-web {
  margin: 0 auto;
}

#sec7 .box .group {
  text-align: center;
  line-height: 2.1875;
  padding: 10vw 0 0;
}

#sec7 .box .group .txt {
  text-align: start;
}

#sec7 .box .group .tit {
  margin: 0 0 8px;
}

#sec7 .info {
  margin: 15vw 0 0;
}

@media screen and (max-width: 767px) {
  #sec7 .info .col+.col {
    margin-top: 15px;
  }
}

#sec7 .info .col dl {
  padding: 0 0 14px;
  display: flex;
  line-height: 1.875;
  text-align: left;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}

#sec7 .info .col dl+dl {
  margin-top: 15px;
}

#sec7 .info .col dl dt {
  width: 100px;
}

#sec7 .info .col dl dd {
  width: calc(100% - 100px);
}

#sec7 #ggmap {
  width: 100%;
  margin: 15vw 0 0;
  height: 350px;
}

#sec7 #ggmap iframe {
  width: 100%;
  height: 100%;
}

#sec7 .btn-link {
  margin: 12vw auto 0;
}

#sec7 .btn-link a {
  letter-spacing: 0.2em;
}

@media screen and (min-width: 768px) {
  #sec7 {
    margin: 206px 0 0;
    padding: 0 0 190px;
  }

  #sec7 .wrap {
    width: 1040px;
  }

  #sec7 .img span {
    font-size: 36px;
  }

  #sec7 .logo {
    margin: 70px 0 0;
  }

  #sec7 .name {
    font-size: 24px;
    margin: 32px 0 64px;
  }

  #sec7 .box {
    width: 765px;
    margin: 0 auto;
    padding: 39px 0 43px;
    display: flex;
  }

  #sec7 .box .col {
    width: 323px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 0;
    padding: 0;
    border-right: 1px solid rgba(0, 0, 0, 0.3);
  }

  #sec7 .box .col .btn-web {
    position: relative;
    top: 11px;
  }

  #sec7 .box .group {
    width: calc(100% - 410px);
    padding: 0 50px;
  }

  #sec7 .info {
    display: flex;
    justify-content: space-between;
    margin: 122px auto 0;
    width: 1000px;
  }

  #sec7 .info .col {
    width: 474px;
  }

  #sec7 .info .col dl dt {
    width: 168px;
  }

  #sec7 .info .col dl dd {
    width: calc(100% - 168px);
  }

  #sec7 #ggmap {
    width: 990px;
    margin: 120px auto 0;
    height: 458px;
  }

  #sec7 .btn-link {
    margin: 88px auto 0;
  }

  .nav-fixed .right .web {
    width: 150px;
  }
}