.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

#lead {
  padding: 10vw 0 27.6vw;
  position: relative;
}

#lead .wrap {
  padding: 0 5%;
}

#lead h2 {
  color: #faf1df;
  margin-bottom: 16vw;
}

#lead .deco {
  position: absolute;
  z-index: 2;
}

#lead .deco.deco1 {
  width: 26.7vw;
  top: 73vw;
  left: -3vw;
}

#lead .deco.deco2 {
  width: 28.1vw;
  bottom: 9vw;
  left: 0;
}

#lead .deco.deco3 {
  width: 30.6vw;
  top: 32.6vw;
  right: -5vw;
}

#lead .deco.deco4 {
  width: 32.1vw;
  bottom: 73vw;
  right: 1vw;
}

#lead .deco.deco5 {
  width: 30.1vw;
  bottom: -5.5vw;
  right: 4.5vw;
}

#lead .desc {
  color: #faf1df;
  position: relative;
  z-index: 2;
}

#lead .desc .txt {
  text-align: center;
  font-size: 5.3vw;
  font-weight: 900;
  line-height: 1.83em;
  margin-bottom: 7vw;
}

#lead .desc .txt:last-child {
  margin-bottom: 0;
}

#lead .desc .txt2 {
  margin-bottom: 10.8vw;
}

@media only screen and (min-width: 1014px) {
  #lead {
    padding: 120px 0 106px;
  }

  #lead .wrap {
    padding: 0;
  }

  #lead h2 {
    margin-bottom: 53px;
  }

  #lead .deco.deco1 {
    width: 187px;
    top: 206px;
    left: 101px;
  }

  #lead .deco.deco2 {
    width: 201px;
    left: 167px;
    bottom: 131px;
  }

  #lead .deco.deco3 {
    width: 221px;
    top: 99px;
    right: 30px;
  }

  #lead .deco.deco4 {
    width: 228px;
    right: 141px;
    bottom: 278px;
  }

  #lead .deco.deco5 {
    width: 213px;
    right: 87px;
    bottom: 78px;
  }

  #lead .desc .txt {
    font-size: 18px;
    line-height: 1.9em;
    margin-bottom: 30px;
  }

  #lead .desc .txt2 {
    margin-bottom: 30px;
  }
}

#gifu {
  background: #faf1df;
  position: relative;
  padding: 12.7vw 0 14.2vw;
  z-index: 1;
}

#gifu .en {
  position: absolute;
  top: 3vw;
  left: 0;
  right: 0;
  white-space: nowrap;
  font-size: 26.6vw;
  font-family: var(--jose);
  font-weight: 900;
  line-height: 1em;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  z-index: -1;
}

#gifu h2 {
  margin-bottom: 7vw;
}

#gifu .txt {
  margin-bottom: 6.1vw;
}

#gifu .img {
  position: relative;
}

#gifu .loop-img {
  width: 58vw;
  position: absolute;
  top: 2%;
}

#gifu .map {
  width: 112.3vw;
  margin-left: -15.2vw;
}

@media only screen and (min-width: 1014px) {
  #gifu {
    padding: 112px 0 67px;
  }

  #gifu .en {
    top: -84px;
    left: calc(50% - 50vw - 34px);
    right: unset;
    font-size: 150px;
    white-space: nowrap;
  }

  #gifu h2 {
    text-align: left;
    margin-left: 7px;
    margin-bottom: 20px;
    position: relative;
    z-index: 2;
  }

  #gifu .txt {
    width: 402px;
    margin-left: 35px;
    margin-bottom: 0;
    position: relative;
    z-index: 2;
  }

  #gifu .img {
    position: relative;
    z-index: 1;
  }

  #gifu .loop-img {
    width: 562px;
    top: 392px;
    left: 58px;
    z-index: 2;
  }

  #gifu .map {
    width: 887px;
    margin-top: -361px;
    margin-right: -102px;
    margin-left: auto;
  }
}

#traditional {
  padding: 9.3vw 0 46vw;
  position: relative;
}

#traditional::before {
  content: "";
  position: absolute;
  top: 112vw;
  right: -6vw;
  background: url(../img/index/traditional_deco1.png) no-repeat;
  background-size: contain;
  aspect-ratio: 243/228;
  width: 32.5vw;
  height: auto;
  z-index: -1;
}

#traditional .en-all .line {
  width: 100%;
  position: relative;
}

#traditional .en-all .ani-line {
  height: 20vw;
}

#traditional .en-all .line::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 5px;
  border: 4px solid #d52a00;
  border-left: none;
  border-right: none;
}

#traditional h2 {
  font-size: 13.9vw;
  font-weight: 900;
  line-height: 1.59em;
  letter-spacing: 0.05em;
  color: #d52a00;
  margin-bottom: 6.5vw;
}

#traditional h2 .bg {
  padding: 0vw 5vw 2vw;
  background: #d52a00;
  color: #fff;
  font-size: 125%;
}

#traditional .desc {
  color: #d52a00;
  text-align: center;
  line-height: 1.75em;
  margin-bottom: 17vw;
}

#traditional .list {
  position: relative;
  margin-bottom: 61.3vw;
}

#traditional .list::before {
  content: "";
  position: absolute;
  bottom: -49vw;
  left: -12vw;
  background: url(../img/index/traditional_deco2.png) no-repeat;
  background-size: contain;
  aspect-ratio: 298/184;
  width: 68vw;
  height: auto;
}

#traditional .list .item {
  margin-bottom: 9vw;
}

#traditional .list .item:last-child {
  margin-bottom: 0;
}

#traditional .list .item .photo {
  margin-bottom: 4vw;
  height: 59.5vw;
}

#traditional .list .item .photo img {
  border-radius: 7vw;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

#traditional .box {
  padding: 9.2vw 6.5vw 9.3vw;
  position: relative;
  background: #fff;
  border-radius: 7vw;
  box-sizing: border-box;
}

#traditional .box::before {
  content: "";
  position: absolute;
  bottom: -36.4vw;
  right: -1.9vw;
  background: url(../img/index/traditional_deco3.png) no-repeat;
  background-size: contain;
  aspect-ratio: 278/245;
  width: 48.7vw;
  height: auto;
  z-index: 1;
}

#traditional .box::after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  left: 16.1vw;
  width: 5.3vw;
  height: 4.7vw;
  background: #fff;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}

#traditional .box .en-bg {
  position: absolute;
  top: -4.1vw;
  left: 0.6vw;
  z-index: 1;
}

#traditional .box .txt {
  line-height: 1.65em;
}

@media only screen and (min-width: 1014px) {
  #traditional {
    padding: 35px 0 158px;
  }

  #traditional::before {
    top: 516px;
    right: 249px;
    width: 243px;
  }

  #traditional .en-all {
    margin-left: -57px;
    margin-bottom: 33px;
  }

  #traditional .en-all .ani-line {
    height: 150px;
  }

  #traditional .en-all .line::before {
    bottom: 0;
    height: 6px;
  }

  #traditional h2 {
    text-align: center;
    font-size: 48px;
    line-height: 1.59em;
    margin-bottom: 40px;
  }

  #traditional h2 .bg {
    padding: 0px 20px 5px;
    font-size: 125%;
    display: inline-block;
    margin: 0 10px;
    font-size: 125%;
  }

  #traditional .desc {
    line-height: 32px;
    margin-bottom: 84px;
  }

  #traditional .list {
    display: flex;
    justify-content: center;
    gap: 58px;
    flex-wrap: wrap;
    margin-bottom: 127px;
  }

  #traditional .list::before {
    bottom: -4px;
    left: 95px;
    width: 298px;
  }

  #traditional .list .item {
    width: 471px;
    margin-bottom: 20px;
  }

  #traditional .list .item.item2 {
    margin-top: 241px;
  }

  #traditional .list .item.item3 {
    margin-top: -241px;
  }

  #traditional .list .item .photo {
    margin-bottom: 13px;
    height: 306px;
  }

  #traditional .list .item .photo img {
    border-radius: 30px;
  }

  #traditional .list .item .txt {
    box-sizing: border-box;
    padding: 0 24px;
  }

  #traditional .box {
    width: 680px;
    padding: 39px 57px 40px;
    border-radius: 30px;
    margin-left: 84px;
  }

  #traditional .box::before {
    bottom: -10px;
    right: -285px;
    width: 278px;
  }

  #traditional .box::after {
    top: 57px;
    left: calc(100% - 1px);
    width: 23px;
    height: 20px;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
  }

  #traditional .box .en-bg {
    top: -17px;
    left: 12px;
  }

  #traditional .box .txt {
    line-height: 32px;
    letter-spacing: normal;
  }
}

#newwave {
  background: #d52a00;
}

#newwave .en-all {
  margin-top: 5.8vw;
  font-size: 26.7vw;
  color: #fff;
  position: relative;
}

#newwave .en-all .ani-line {
  height: 25vw;
}

#newwave .en-all::before {
  content: "";
  position: absolute;
  bottom: 34.9vw;
  left: 0;
  right: 0;
  background: url(../img/shared/double_line_w_sp.png) repeat-x;
  background-size: contain;
  height: 4.3vw;
}

#newwave h2 {
  text-align: center;
  font-size: 13.9vw;
  font-weight: 900;
  font-family: var(--sans);
  line-height: 2em;
  letter-spacing: 0.05em;
  color: #fff;
  margin-top: -8vw;
  margin-bottom: 8vw;
}

#newwave h2 .uni {
  color: #d52a00;
  font-size: 128.1923076923%;
  position: relative;
  z-index: 2;
}

#newwave h2 .uni::before {
  content: "";
  position: absolute;
  background: url(../img/index/newwave_uni.png) no-repeat;
  background-size: contain;
  background-position: center;
  aspect-ratio: 1/1;
  width: 32.5vw;
  height: auto;
  left: -7.2vw;
  top: -2.7vw;
  z-index: -1;
}

#newwave h2 .ani-line {
  margin-top: -8vw;
}

#newwave h2 .bg {
  font-size: 107.0961538462%;
  position: relative;
  display: block;
  z-index: 1;
  padding: 5vw 3vw 0;
}

#newwave h2 .bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #2b0707;
  z-index: -1;
}

#newwave .desc {
  color: #fff;
  text-align: center;
  line-height: 1.75em;
  margin-bottom: 26.3vw;
}

#newwave .bg-sec {
  margin: 0 -3.1% 19.9vw;
  background: #f9e8df;
  border-radius: 4vw;
  padding-bottom: 9.8vw;
  position: relative;
  z-index: 1;
}

#newwave .bg-sec::before {
  content: "";
  position: absolute;
  background: #f9e8df;
  width: 57.9vw;
  height: 42.1vw;
  border-radius: 100%;
  left: 0;
  right: 0;
  margin: 0 auto;
  top: -13.2vw;
  z-index: -1;
}

#newwave .bg-sec::after {
  content: "";
  position: absolute;
  background: #f9e8df;
  width: 57.9vw;
  height: 42.1vw;
  border-radius: 100%;
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: -6.7vw;
  z-index: -1;
}

#newwave .row {
  margin-bottom: 17vw;
  position: relative;
  z-index: 1;
}
#newwave .row3 {
  margin-bottom: 25vw;
}
#newwave .btn .btn-all.st2 a{
  border-color: #d52a00;
    background: #f9e8df;
    color: #d52a00;
}
#newwave .btn .btn-all.st2 a::before{
  background-image: url(../img/shared/icon_arrow_r.png);
}


#newwave .row::before {
  content: "";
  position: absolute;
  background: url(../img/shared/double_line_r_sp.png) repeat-x;
  background-size: contain;
  width: 38vw;
  height: 4.3vw;
  top: 106.5vw;
  left: 0;
  z-index: 2;
}

#newwave .row.row2::after,
#newwave .row.row3::after,
#newwave .row.row4::after {
  content: "";
  position: absolute;
  background: url(../img/index/newwave_line_deco2.png) no-repeat;
  background-size: contain;
  aspect-ratio: 244/210;
  width: 46vw;
  height: auto;
  top: -19vw;
  left: 15vw;
  z-index: -1;
}

#newwave .row.row3::after {
  background-image: url(../img/index/newwave_line_deco1.png);
}

#newwave .row.row4::before {
  left: unset;
  right: 0;
}

#newwave .row:last-child {
  margin-bottom: 0;
}

#newwave .row .tit-cir {
  margin-bottom: 3.4vw;
}

#newwave .row .tit-cir .circle {
  color: #fff;
  border-color: #fff;
  background: #d52a00;
  margin-bottom: 2.7vw;
}

#newwave .row .tit-cir .circle::before {
  background-image: url(../img/index/newwave_txt.png);
  aspect-ratio: 143/42;
}

#newwave .row .tit-cir .ttl {
  font-size: 9.1vw;
  letter-spacing: 0.05em;
  line-height: 1.25em;
  margin-bottom: 1.4vw;
}

#newwave .row .img {
  width: 73vw;
  margin: 0 auto 5vw;
}

#newwave .row .img img {
  border-radius: 100%;
}

#newwave .row .txt {
  font-size: 14px;
  box-sizing: border-box;
  padding: 0 11%;
  line-height: 1.85em;
}

#newwave .rowbig {
  margin-bottom: 14.5vw;
  position: relative;
}

#newwave .rowbig::before {
  content: "";
  position: absolute;
  background: url(../img/shared/double_line_r_sp.png) repeat-x;
  background-size: contain;
  width: 43vw;
  height: 4.3vw;
  top: 108vw;
  left: unset;
  right: -5.3vw;
  z-index: 2;
}

#newwave .rowbig .img {
  width: unset;
  position: relative;
  z-index: 1;
  margin: 0 -22.6vw -6.4vw;
}

#newwave .rowbig .img img {
  border-radius: 100%;
}

#newwave .rowbig .exp {
  position: relative;
  z-index: 2;
}

#newwave .rowbig .exp .tit-cir .ttl {
  font-size: 12.1vw;
  line-height: 1.4em;
  margin-bottom: 0;
}

#newwave .row-spec {
  padding: 6.7vw 6.5vw 0;
  position: relative;
  color: #fff;
  background: #d52a00;
  border-radius: 4vw;
  box-sizing: border-box;
  margin: 0 4vw 24vw;
}

#newwave .row-spec::before {
  content: "";
  position: absolute;
  bottom: calc(100% - 1px - 5.2vw);
  left: unset;
  right: 5.4vw;
  width: 13.3vw;
  height: 11.7vw;
  background: #d52a00;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

#newwave .row-spec::after {
  content: "";
  position: absolute;
  background: url(../img/shared/double_line_w_sp.png) repeat-x;
  background-size: contain;
  width: 35vw;
  height: 4.3vw;
  top: 30.5vw;
  right: -9.3vw;
  z-index: 2;
}

#newwave .row-spec .ttl2 {
  text-align: center;
  font-size: 7vw;
  font-weight: 900;
  font-family: var(--sans);
  line-height: 1.5em;
  letter-spacing: 0.05em;
  margin-bottom: 10.3vw;
}

#newwave .row-spec .ttl2 span {
  position: relative;
}

#newwave .row-spec .ttl2 span::before {
  content: "";
  position: absolute;
  background: url(../img/index/newwave_sticker.png) no-repeat;
  background-size: contain;
  aspect-ratio: 24/34;
  width: 5.9vw;
  height: auto;
  top: 0;
  left: -9vw;
}

#newwave .row-spec .list {
  margin: 0 11.2% 3vw;
}

#newwave .row-spec .list .item {
  margin-bottom: 7vw;
}

#newwave .row-spec .list .item:last-child {
  margin-bottom: 0;
}

#newwave .row-spec .list .item .photo {
  margin-bottom: 1vw;
  text-align: center;
}

#newwave .row-spec .list .item .photo img {
  border-radius: 3.5vw;
}

#newwave .row-spec .list .item .tit {
  text-align: center;
  font-size: 5.3vw;
  font-weight: 900;
  font-family: var(--sans);
  line-height: 1.2em;
  letter-spacing: 0.05em;
}

#newwave .row-spec .list .item .tit span {
  font-size: 70%;
}

#newwave .row-spec .deco {
  position: absolute;
  z-index: 1;
  bottom: 14vw;
  left: -6vw;
  width: 26vw;
  animation: poyopoyo 2s ease-out infinite;
}

#newwave .row-spec .btn-all {
  margin: 0px -12%;
  position: relative;
  bottom: -5vw;
}
#newwave .btn .btn-all {
  margin: 0px auto;
  position: relative;
  bottom: -5vw;
}
#newwave .btn .btn-all a{
  width: 93%;
  margin: 0 auto;
  height: 60px;
  border-radius: 60px;
}

#newwave .row-spec .btn-all a {
  width: 100%;
  height: 60px;
  border-radius: 60px;
}

#newwave #point {
  padding: 6.2vw 0 29vw;
}

#newwave #point .item {
  padding: 9.2vw 6.5vw 9.3vw;
  position: relative;
  background: #fff;
  border-radius: 7vw;
  box-sizing: border-box;
  margin-bottom: 34vw;
}

#newwave #point .item:last-child {
  margin-bottom: 0;
}

#newwave #point .item::before {
  content: "";
  position: absolute;
  height: auto;
  z-index: 1;
}

#newwave #point .item::after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  left: 16.1vw;
  width: 5.3vw;
  height: 4.7vw;
  background: #fff;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}

#newwave #point .item .en-bg {
  position: absolute;
  top: -4.1vw;
  left: 0.6vw;
  z-index: 1;
}

#newwave #point .item .en-bg .cir::before {
  background: #2b0707;
}

#newwave #point .item .txt {
  line-height: 1.65em;
}

#newwave #point .item.item1::before {
  background: url(../img/index/newwave_deco1.png) no-repeat;
  background-size: contain;
  aspect-ratio: 329/258;
  width: 43.7vw;
  bottom: -25.4vw;
  right: -1.9vw;
}

#newwave #point .item.item2::before {
  background: url(../img/index/newwave_deco2.png) no-repeat;
  background-size: contain;
  aspect-ratio: 339/228;
  width: 45.7vw;
  bottom: -19.4vw;
  left: 4.3vw;
}

#newwave #point .item.item2::after {
  left: unset;
  right: 15vw;
}

#newwave #point .item.item3::before {
  background: url(../img/index/newwave_deco3.png) no-repeat;
  background-size: contain;
  aspect-ratio: 317/182;
  width: 42.7vw;
  bottom: -16.4vw;
  right: 7.1vw;
}

@media only screen and (min-width: 1014px) {
  #newwave .en-all {
    margin-top: 82px;
    font-size: 148px;
    letter-spacing: 0.08em;
  }

  #newwave .en-all .ani-line {
    height: 150px;
  }

  #newwave .en-all::before {
    bottom: 14px;
    background-image: url(../img/shared/double_line_w.png);
    height: 19px;
    left: 25px;
    right: 25px;
  }

  #newwave h2 {
    font-size: 48px;
    line-height: 2em;
    margin-top: 15px;
    margin-bottom: 31px;
  }

  #newwave h2 .uni {
    font-size: 158.3333333333%;
    display: inline-block;
    margin: 0 0 0 33px;
  }

  #newwave h2 .uni::before {
    width: 140px;
    left: -33px;
    top: -15px;
  }

  #newwave h2 .bg {
    font-size: 125%;
    margin-top: 0;
    display: inline-block;
    padding: 0 28px 0 40px;
  }

  #newwave h2 .bg::before {
    inset: 0 0 0;
  }

  #newwave .desc {
    line-height: 32px;
    margin-bottom: 169px;
  }

  #newwave .bg-sec {
    padding-top: 50px;
    margin: 0 -150px 278px;
    border-radius: 30px;
    padding-bottom: 161px;
  }

  #newwave .bg-sec::before {
    width: 990px;
    height: 720px;
    top: -100px;
  }

  #newwave .bg-sec::after {
    width: 990px;
    height: 720px;
    bottom: -126px;
  }

  #newwave .row {
    margin: 0 auto 118px;
    max-width: 1000px;
  }

  #newwave .row::before {
    background-image: url(../img/shared/double_line_r.png);
    width: 634px;
    height: 20px;
    top: unset;
    bottom: -38px;
    left: 49px;
  }
  #newwave .row3::before {
    background-image: url(../img/shared/double_line_r.png);
    width: 634px;
    height: 20px;
    top: unset;
    bottom: -120px;
    left: 49px;
  }

  #newwave .row.reverse .img {
    right: 0;
    left: unset;
  }

  #newwave .row.reverse .tit-cir {
    margin-left: 50px;
  }

  #newwave .row.reverse .txt {
    margin-left: 50px;
  }
  #newwave .row.row3{
    position: relative;
  }
  #newwave .row.row2::after,
  #newwave .row.row3::after,
  #newwave .row.row4::after {
    background-image: url(../img/index/newwave_line_deco1.png);
    width: 244px;
    top: -22px;
    right: unset;
    left: 355px;
  }

  #newwave .row.row3 {
    margin-bottom: 200px;
  }

  #newwave .row.row3 .img {
    top: 23px;
  }

  #newwave .row.row3::before {
    right: 49px;
    left: unset;
  }

  #newwave .row.row3::after {
    top: -40px;
    background-image: url(../img/index/newwave_line_deco2.png);
  }

  #newwave .row.row4::before {
    left: 49px;
    right: unset;
  }

  #newwave .row .tit-cir {
    padding-top: 31px;
    margin-bottom: 20px;
    width: 420px;
    margin-left: auto;
    margin-right: 62px;
  }

  #newwave .row .tit-cir .circle {
    margin-bottom: 13px;
  }

  #newwave .row .tit-cir .circle::before {
    width: 82px;
  }

  #newwave .row .tit-cir .ttl {
    font-size: 48px;
    line-height: 1.4em;
    margin-bottom: 0;
  }

  #newwave .row .img {
    width: 450px;
    margin: 0;
    position: absolute;
    top: 0;
    left: 48px;
  }

  #newwave .row .txt {
    margin-left: auto;
    width: 420px;
    font-size: 16px;
    padding: 0;
    line-height: 32px;
    margin-right: 62px;
  }

  #newwave .rowbig {
    margin-bottom: 143px;
  }

  #newwave .rowbig::before {
    background-image: url(../img/shared/double_line_r.png);
    width: 633px;
    height: 20px;
    top: unset;
    bottom: -38px;
    left: unset;
    right: -29px;
  }

  #newwave .rowbig .img {
    width: 580px;
    margin: 0 0 0 -20px;
    left: 0;
  }

  #newwave .rowbig .exp {
    padding-top: 129px;
    margin-right: -18px;
    margin-left: auto;
    width: 420px;
  }

  #newwave .rowbig .exp .tit-cir {
    padding-top: 0;
    width: 100%;
  }

  #newwave .rowbig .exp .tit-cir .ttl {
    font-size: 48px;
    line-height: 1.4em;
    margin-bottom: 0;
  }

  #newwave .rowbig .exp .txt {
    width: 100%;
  }

  #newwave .row-spec {
    width: 900px;
    padding: 18px 30px 0;
    border-radius: 30px;
    margin: 0 auto 80px;
  }

  #newwave .row-spec::before {
    bottom: calc(100% - 1px - 8px);
    right: 163px;
    width: 56px;
    height: 49px;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  }

  #newwave .row-spec::after {
    background-image: url(../img/shared/double_line_w.png);
    background-position: 20px center;
    width: 274px;
    height: 19px;
    top: unset;
    bottom: 25px;
    right: -155px;
  }

  #newwave .row-spec .ttl2 {
    font-size: 30px;
    margin-bottom: 21px;
  }

  #newwave .row-spec .ttl2 span::before {
    width: 24px;
    top: -4px;
    left: -30px;
  }

  #newwave .row-spec .list {
    margin: 0;
    display: flex;
    justify-content: center;
    gap: 32px;
  }

  #newwave .row-spec .list .item {
    width: 33.3333333333%;
    max-width: 227px;
    margin-bottom: 0;
  }

  #newwave .row-spec .list .item .photo {
    margin-bottom: 6px;
  }

  #newwave .row-spec .list .item .photo img {
    border-radius: 15px;
  }

  #newwave .row-spec .list .item .tit {
    font-size: 20px;
    line-height: 1.2em;
  }

  #newwave .row-spec .list .item .tit span {
    font-size: 70%;
  }

  #newwave .row-spec .deco {
    left: -32px;
    bottom: -23px;
    width: 186px;
  }

  .wrap-anm .btn {
    position: absolute;
    bottom: -10px;
    right: 58px;
  }
  #newwave .btn .btn-all a{
    width: 420px;
  }




  #newwave .row-spec .btn-all {
    margin: 0;
    bottom: -30px;
  }

  #newwave .row-spec .btn-all a {
    padding-left: 0;
    justify-content: center;
    font-size: 16px;
    margin: 0 auto;
    width: 381px;
    height: 65px;
    border-radius: 33px;
    padding-bottom: 6px;
    padding-right: 12px;
  }

  #newwave #point {
    display: flex;
    flex-wrap: wrap;
    gap: 64px 53px;
    padding: 30px 0 300px;
  }

  #newwave #point .item {
    width: 472px;
    padding: 39px 57px 40px;
    border-radius: 30px;
    margin-left: 0;
    margin-bottom: 0;
  }

  #newwave #point .item:nth-child(1) {
    width: 680px;
    margin-left: 17px;
  }

  #newwave #point .item:nth-child(2) {
    margin-bottom: 0;
  }

  #newwave #point .item:last-child {
    margin-bottom: 0;
  }

  #newwave #point .item::after {
    top: 57px;
    left: calc(100% - 1px);
    width: 23px;
    height: 20px;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
  }

  #newwave #point .item .en-bg {
    top: -17px;
    left: 12px;
  }

  #newwave #point .item .ttl-bubble .line::before {
    background: url(../img/shared/single_line_r.png) repeat-x;
    background-size: contain;
    height: 6px;
    border: none;
  }

  #newwave #point .item .txt {
    line-height: 32px;
    letter-spacing: normal;
  }

  #newwave #point .item.item1::before {
    width: 329px;
    bottom: -28px;
    right: -357px;
  }

  #newwave #point .item.item2::before {
    width: 339px;
    bottom: -172px;
    left: 146px;
  }

  #newwave #point .item.item2::after {
    top: calc(100% - 1px);
    left: 97px;
    right: unset;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
  }

  #newwave #point .item.item3::before {
    width: 317px;
    bottom: -139px;
    right: -5px;
  }

  #newwave #point .item.item3::after {
    top: calc(100% - 1px);
    left: 97px;
    right: unset;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
  }
}

#spots {
  padding: 14.3vw 0 37.1vw;
}

#spots .en {
  font-size: 20vw;
  font-weight: bold;
  font-family: var(--jose);
  color: #d52a00;
  text-align: center;
  line-height: 1.05em;
  letter-spacing: 0.05em;
  position: relative;
  padding: 7vw 0 1.1vw;
  margin-bottom: 6.3vw;
}

#spots .en .ani-line {
  height: 16vw;
}

#spots .en::before,
#spots .en::after {
  content: "";
  position: absolute;
  background: url(../img/index/spots_line.png) repeat-x;
  background-size: contain;
  left: 0;
  right: 0;
  height: 4px;
}

#spots .en::before {
  top: 0;
}

#spots .en::after {
  bottom: 0;
}

#spots h2 {
  font-size: 8.8vw;
  font-family: var(--sans);
  font-weight: 900;
  line-height: 1.75em;
  letter-spacing: 0.05em;
  color: #d52a00;
  margin: 0 -2vw 14.8vw;
}

#spots h2 .bg {
  padding: 0.7vw 1.7vw;
  background: #d52a00;
  color: #fff;
}

#spots .list .item {
  width: 66.5vw;
  margin: 0 auto 9.5vw;
}

#spots .list .item:last-child {
  margin-bottom: 0;
}

#spots .list .item:nth-child(odd) .desc {
  margin-left: auto;
  margin-right: -10vw;
}

#spots .list .item .photo img {
  border-radius: 4vw;
}

#spots .list .item .desc {
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46.1vw;
  height: 28.9vw;
  margin-left: -10vw;
  background: #fff;
  box-sizing: border-box;
  border: 2px solid #2b0707;
  border-radius: 5.3vw;
  position: relative;
  z-index: 2;
  margin-top: -12vw;
}

#spots .list .item .desc h3 {
  font-size: 5.6vw;
  font-family: var(--sans);
  font-weight: 900;
  line-height: 1.25em;
  letter-spacing: 0.05em;
  color: #2b0707;
  margin-bottom: 1vw;
}

#spots .list .item .desc .quote {
  font-family: var(--jose);
  font-weight: 500;
  font-size: 2.3vw;
  color: #d52a00;
  line-height: 1.4em;
  letter-spacing: 0.05em;
  position: absolute;
  bottom: 3vw;
  left: 0;
  right: 0;
  text-align: center;
}

@media only screen and (min-width: 1014px) {
  #spots {
    padding: 151px 0 82px;
  }

  #spots .en {
    font-size: 72px;
    padding: 0;
    margin-bottom: 42px;
  }

  #spots .en .ani-line {
    height: 70px;
  }

  #spots .en .line-dash {
    padding-bottom: 7px;
    position: relative;
  }

  #spots .en .line-dash::before {
    content: "";
    position: absolute;
    background: url(../img/index/spots_line.png) repeat-x;
    background-size: contain;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
  }

  #spots .en::before,
  #spots .en::after {
    display: none;
  }

  #spots h2 {
    text-align: center;
    font-size: 36px;
    margin: 0 0 70px;
  }

  #spots h2 .bg {
    display: inline-block;
    padding: 1px 10px;
    margin-right: 10px;
  }

  #spots .list {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 0 -100px 30px;
  }

  #spots .list .item {
    width: 25%;
    max-width: 285px;
    margin: 0 auto;
  }

  #spots .list .item:nth-child(odd) .desc {
    margin-left: auto;
    margin-right: auto;
  }

  #spots .list .item .photo img {
    border-radius: 30px;
  }

  #spots .list .item .desc {
    width: 198px;
    height: 124px;
    margin-left: auto;
    margin-right: auto;
    border-width: 3px;
    border-radius: 23px;
    margin-top: -50px;
  }

  #spots .list .item .desc h3 {
    font-size: 24px;
    margin-bottom: 5px;
  }

  #spots .list .item .desc .quote {
    font-size: 10px;
    bottom: 14px;
  }
}

#shichirin {
  color: #faf1df;
  position: relative;
  padding-top: 4vw;
  padding-bottom: 20.7vw;
  margin-bottom: 25vw;
}

#shichirin::before {
  content: "";
  position: absolute;
  background: #d52a00;
  inset: 29.9vw 0 0;
  border-radius: 0 0 4vw 4vw;
  z-index: -1;
}

#shichirin .txt-loop p {
  margin: 0 2vw;
}

#shichirin .txt-loop.left {
  margin-bottom: -3vw;
}

#shichirin .en {
  margin: 0 calc(50% - 50vw) 2vw;
  font-family: var(--jose);
  font-size: 16.3vw;
  font-weight: bold;
  line-height: 1em;
  letter-spacing: 0.05em;
  color: #d52a00;
  text-align: center;
}

#shichirin h2 {
  font-size: 7.4vw;
  font-family: var(--sans);
  font-weight: 900;
  line-height: 1.85em;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  margin: 4.6vw -5.4vw 28vw;
  white-space: nowrap;
  position: relative;
  z-index: 2;
}

#shichirin h2 .bg {
  background: #2b0707;
  padding: 0 2vw 1vw;
  margin-right: 2vw;
  display: inline-block;
  line-height: 1.4em;
}

#shichirin .img {
  position: relative;
  z-index: 1;
  margin-bottom: 8.6vw;
}

#shichirin .img img {
  border-radius: 3.5vw;
}

#shichirin .img .deco {
  position: absolute;
  top: -36vw;
  right: -11vw;
  width: 65vw;
  z-index: 1;
}

#shichirin .img .deco img {
  border-radius: 0;
}

#shichirin .right-block {
  margin-bottom: 7.8vw;
}

#shichirin .right-block .info {
  margin-bottom: 4.5vw;
}

#shichirin .right-block .info .ttl {
  font-size: 18px;
  font-weight: 900;
  font-family: var(--sans);
  line-height: 1.4em;
  color: #faf1df;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}

#shichirin .right-block .info dl {
  padding: 9px 0;
  border-top: 1px dotted #fff;
  font-size: 14px;
  line-height: 1.65em;
  letter-spacing: 0.05em;
}

#shichirin .right-block .info dl dd {
  font-size: 16px;
  line-height: 1.75em;
}

#shichirin .right-block .btn-all {
  margin-bottom: 8vw;
}

#shichirin .right-block .btn-all a {
  width: 100%;
  border-radius: 60px;
  background: transparent;
  padding-left: 36px;
}

#shichirin .right-block .photo {
  text-align: center;
  margin: 0 auto;
  width: 64vw;
}

#shichirin .right-block .photo img {
  border-radius: 1.9vw;
}

#shichirin .left-block #gmap {
  width: 100%;
  height: 112.1vw;
  margin-bottom: 0.3vw;
}

#shichirin .left-block #gmap iframe {
  width: 100%;
  height: 100%;
  border-radius: 3.5vw;
}

#shichirin .left-block .btn-map {
  text-align: center;
}

#shichirin .left-block .btn-map a {
  display: inline-flex;
  width: unset;
  height: unset;
  font-size: 14px;
  line-height: 1.4em;
  border: none;
  border-radius: 0%;
  border-bottom: 1px solid #fff;
  justify-content: center;
  background: transparent;
  text-align: center;
  padding-left: 0;
  padding-right: 20px;
}

#shichirin .left-block .btn-map a::before {
  right: 0;
}

@media only screen and (min-width: 1014px) {
  #shichirin {
    padding-top: 40px;
    padding-bottom: 56px;
    margin-bottom: 104px;
  }

  #shichirin::before {
    inset: 87px 0 0;
    max-width: 1000px;
    margin: 0 auto;
    border-radius: 30px;
  }

  #shichirin .en {
    margin: 0;
    font-size: 70px;
  }

  #shichirin h2 {
    font-size: 36px;
    line-height: 1.85em;
    margin: 20px 0 79px;
  }

  #shichirin h2 .bg {
    margin: 0 10px;
    display: inline-block;
    padding: 0 10px 2px;
    line-height: 1.4em;
  }

  #shichirin .img {
    margin-bottom: 61px;
    width: 420px;
    margin-left: 154px;
  }

  #shichirin .img img {
    border-radius: 15px;
  }

  #shichirin .img .deco {
    top: -56px;
    right: -196px;
    width: 273px;
  }

  #shichirin .wrap {
    padding: 0 50px;
  }

  #shichirin .row {
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
    gap: 33px;
  }

  #shichirin .right-block {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    width: 470px;
  }

  #shichirin .right-block .info {
    order: 2;
    margin-bottom: 18px;
  }

  #shichirin .right-block .info .ttl {
    font-size: 18px;
    margin-bottom: 10px;
  }

  #shichirin .right-block .info dl {
    display: flex;
    padding: 9px 0;
    border-top-width: 2px;
    font-size: 16px;
    line-height: 1.65em;
  }

  #shichirin .right-block .info dl dt {
    width: 86px;
    flex-shrink: 0;
  }

  #shichirin .right-block .info dl dd {
    line-height: 1.85em;
  }

  #shichirin .right-block .btn-all {
    order: 3;
    margin-bottom: 0;
  }

  #shichirin .right-block .btn-all a {
    font-size: 16px;
    width: 314px;
    height: 46px;
    border-radius: 60px;
    padding-left: 29px;
  }

  #shichirin .right-block .photo {
    order: 1;
    width: 272px;
    padding-right: 48px;
    margin-bottom: 23px;
  }

  #shichirin .right-block .photo img {
    border-radius: 8px;
  }

  #shichirin .left-block {
    width: 400px;
    margin-top: 4px;
  }

  #shichirin .left-block #gmap {
    height: 355px;
    margin-bottom: 0;
  }

  #shichirin .left-block #gmap iframe {
    border-radius: 15px;
  }
}

@media screen and (min-width: 1014px) and (max-width: 1260px) {
  #lead .deco.deco4 {
    right: 55px;
  }

  #lead .deco.deco2 {
    left: 100px;
  }

  #gifu h2 {
    margin-left: 55px;
  }

  #gifu .txt {
    margin-left: 85px;
  }

  #spots .list {
    margin-left: 0;
    margin-right: 0;
  }
}

@supports (-webkit-touch-callout: none) {
  #traditional::before {
    top: 127vw;
  }

  #newwave .en-all::before {
    bottom: 47.9vw;
  }

  .sfr {
    position: relative;
    top: -4.4vw;
  }
}

@media not all and (min-resolution: 0.001dpcm) {
  #traditional::before {
    top: 127vw;
  }

  #newwave .en-all::before {
    bottom: 47.9vw;
  }

  .sfr {
    position: relative;
    top: -4.4vw;
  }
}