#sec1 {
  position: relative;
  padding-top: 17vw;
}

#sec1::before {
  content: "";
  position: absolute;
  background: url("../img/shared/bg01.jpg") repeat center;
  top: 0;
  left: 0;
  width: 50%;
  height: 70vw;
  z-index: -1;
}

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

#sec1 .group1 .youtube {
  pointer-events: none;
  width: 100%;
  height: 51.6vw;
}

#sec1 .group1 .youtube iframe {
  width: 100% !important;
  height: 100% !important;
}

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

#sec1 .group1 .group-txt .txt {
  margin-top: 9vw;
}

#sec1 .group2 {
  background: url("../img/shared/bg02.jpg") repeat center;
  margin-top: 10vw;
  padding: 10vw 5vw;
}

#sec1 .group2 .col-l {
  position: relative;
  padding-bottom: 7vw;
}

#sec1 .group2 .col-l::before {
  content: "";
  position: absolute;
  background: #000;
  height: 1px;
  bottom: 0;
  left: 0;
  right: 0;
}

#sec1 .group2 .col-l .price {
  text-align: center;
  margin-top: 5vw;
  font-size: 4.53vw;
  line-height: 2.2;
  letter-spacing: 0.15em;
}

#sec1 .group2 .col-l .price small {
  font-size: 3.87vw;
  letter-spacing: 0.15em;
}

#sec1 .group2 .col-l .price small:last-child {
  display: block;
}

#sec1 .group2 .col-r {
  display: flex;
  justify-content: space-between;
  margin-top: 7vw;
}

#sec1 .btn-shared {
  margin: 10vw 8.7% 0;
}

@media screen and (min-width: 1000px) {
  #sec1 {
    padding-top: 140px;
  }

  #sec1::before {
    width: calc(50% - 130px);
    height: 580px;
  }

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

  #sec1 h2 {
    text-align: left;
    font-size: 30px;
  }

  #sec1 .group1 {
    max-width: 968px;
    margin: 0 auto;
  }

  #sec1 .group1 .youtube {
    max-width: 968px;
    height: 545px;
  }

  #sec1 .group1 .group-txt {
    height: 353px;
    padding-right: 9px;
    margin: 96px auto 0;
  }

  #sec1 .group1 .group-txt .txt {
    height: 353px;
    margin: 0 68px 0 0;
  }

  #sec1 .group2 {
    display: flex;
    justify-content: center;
    margin-top: 105px;
    padding: 137px 43px 124px 0;
  }

  #sec1 .group2 .col-l {
    padding: 0 83px 0 0;
  }

  #sec1 .group2 .col-l::before {
    height: auto;
    width: 1px;
    inset: -57px 0 -45px auto;
  }

  #sec1 .group2 .col-l .price {
    text-align: left;
    margin-top: 35px;
    font-size: 25px;
    line-height: 48px;
  }

  #sec1 .group2 .col-l .price small {
    font-size: 20px;
  }

  #sec1 .group2 .col-l .price small:last-child {
    margin-left: -12px;
  }

  #sec1 .group2 .col-r {
    margin: -14px 0 0 90px;
    -moz-column-gap: 66px;
    column-gap: 66px;
  }

  #sec1 .btn-shared {
    margin: 49px 0 0 auto;
  }
}

#sec2 {
  position: relative;
  background: url("../img/menu/sec2_deco.png") no-repeat left top 4vw/70%;
  padding: 40vw 0 31.5vw;
}

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

#sec2 h2 {
  background: url("../img/shared/deco_ttl_b.png") no-repeat center top/5.6vw
    auto;
  padding-top: 11vw;
  text-align: center;
  font-size: 5.2vw;
  line-height: 2.3333333333;
  letter-spacing: 0.15em;
}

#sec2 .group {
  margin-top: 10vw;
}

#sec2 .group h3 {
  position: relative;
  font-size: 4.53vw;
  line-height: 1;
  letter-spacing: 0.15em;
}

#sec2 .group h3::before {
  content: "";
  position: absolute;
  background: rgba(0, 0, 0, 0.5);
  height: 1px;
  top: 50%;
  left: 55%;
  right: 0;
  transform: translateY(-50%);
}

#sec2 .group .sec2-js {
  margin-top: 3vw;
}

#sec2 .group .sec2-js .slick-dots {
  justify-content: flex-end;
  margin-top: 3vw;
}

@media screen and (min-width: 1000px) {
  #sec2 {
    background-position: left top;
    background-size: auto;
    margin-top: -15px;
    padding: 286px 0 187px;
  }

  #sec2::before {
    width: calc(50% - 170px);
    height: 250px;
    bottom: 86px;
  }

  #sec2 .wrap {
    max-width: 1200px;
  }

  #sec2 h2 {
    background-size: auto;
    padding: 71px 0 0 7px;
    font-size: 30px;
  }

  #sec2 .group {
    margin: 65px 40px 0;
  }

  #sec2 .group h3 {
    font-size: 25px;
  }

  #sec2 .group h3::before {
    left: 290px;
  }

  #sec2 .group .sec2-js {
    margin-top: 50px;
  }

  #sec2 .group .sec2-js .slick-dots {
    margin-top: 40px;
  }
}

#sec3 {
  color: #fff;
}

#sec3 .wrap {
  padding-bottom: 15vw;
}

#sec3 .wrap::before {
  content: "";
  position: absolute;
  background: url("../img/menu/sec3_deco.jpg") no-repeat right top 81vw/70% #000;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
}

#sec3 .photo {
  margin: 0 -5% 0;
}

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

#sec3 .group-txt h2 {
  position: relative;
  padding-bottom: 5vw;
  margin-bottom: 5vw;
  font-size: 5.2vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#sec3 .group-txt h2::before {
  content: "";
  position: absolute;
  background: #fff;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 8vw;
}

#sec3 .group-txt .txt {
  margin-top: 0vw;
}

@media screen and (min-width: 1000px) {
  #sec3 {
    padding-bottom: 150px;
  }

  #sec3 .wrap {
    max-width: 1278px;
    padding-bottom: 0;
  }

  #sec3 .wrap::before {
    background-size: auto;
    background-position: right top;
    top: 150px;
    left: 128px;
  }

  #sec3 .photo {
    margin: 0;
    height: 600px;
    top: 0;
    left: -20px;
    right: 558px;
  }

  #sec3 .group-txt {
    width: 352px;
    padding: 291px 0 118px;
    margin: 0 111px 0 auto;
  }

  #sec3 .group-txt h2 {
    padding-bottom: 33px;
    margin-bottom: 23px;
    font-size: 30px;
  }

  #sec3 .group-txt h2::before {
    width: 40px;
  }

  #sec3 .group-txt .txt {
    margin-top: 0vw;
  }
}

#sec4 {
  background: url("../img/menu/sec4_bg.jpg") no-repeat center/cover;
  color: #fff;
  padding-bottom: 15vw;
}

#sec4 h2 {
  position: relative;
  text-align: center;
  padding-top: 20vw;
  text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
  font-size: 5.2vw;
  line-height: 2.3333333333;
  letter-spacing: 0.15em;
}

#sec4 h2::before {
  content: "";
  position: absolute;
  background: rgba(255, 255, 255, 0.5);
  top: 0;
  left: 50%;
  width: 1px;
  height: 20vw;
  transform: translateX(-50%);
}

#sec4 .btn-shared {
  margin: 15vw 8.7% 0;
}

@media screen and (min-width: 1000px) {
  #sec4 {
    padding-bottom: 60px;
  }

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

  #sec4 h2 {
    text-align: left;
    padding: 130px 0 0 50px;
    font-size: 30px;
  }

  #sec4 h2::before {
    top: 0;
    bottom: 21px;
    left: 0;
    height: auto;
    transform: none;
  }

  #sec4 .btn-shared {
    margin: 245px 0 0 auto;
  }
}

#sec5 {
  background: url("../img/shared/bg01.jpg") repeat center;
  padding: 17vw 0;
}

#sec5 .group1 h2 {
  position: relative;
  text-align: center;
  padding-bottom: 5vw;
  margin-bottom: 5vw;
  font-size: 5.2vw;
  line-height: 2;
  letter-spacing: 0.15em;
}

#sec5 .group1 h2::before {
  content: "";
  position: absolute;
  background: #000;
  height: 1px;
  bottom: 0;
  left: 0;
  right: 0;
}

#sec5 .group2 {
  margin-top: 10vw;
}

#sec5 .group2 .col-r .note {
  margin-top: 3vw;
}

#sec5 .group2 .col-l {
  margin-top: 7vw;
}

#sec5 .group2 .col-l .catch {
  text-align: center;
  background: #8dac7c;
  color: #fff;
  width: 110px;
  letter-spacing: 0.15em;
}

#sec5 .group2 .col-l .name-price {
  display: flex;
  margin: 3vw 0 6vw;
  -moz-column-gap: 20px;
  column-gap: 20px;
  font-size: 21px;
}

#sec5 .group2 .col-l .name-price * {
  letter-spacing: 0.15em;
}

#sec5 .group2 .col-l .name-price small {
  font-size: 16px;
}

@media screen and (min-width: 1000px) {
  #sec5 {
    padding: 154px 0 133px;
  }

  #sec5 .wrap {
    max-width: 1260px;
    padding: 0 30px;
  }

  #sec5 .group1 {
    display: flex;
    justify-content: space-between;
    max-width: 951px;
    margin: 0 auto;
  }

  #sec5 .group1 h2 {
    text-align: left;
    padding: 16px 82px 0 12px;
    margin: 0 30px 0 0;
    font-size: 30px;
    line-height: 60px;
  }

  #sec5 .group1 h2::before {
    inset: 12px 0 0 auto;
    height: auto;
    width: 1px;
  }

  #sec5 .group1 .note {
    line-height: 38px;
  }

  #sec5 .group2 {
    display: flex;
    justify-content: space-between;
    -moz-column-gap: 30px;
    column-gap: 30px;
    margin-top: 81px;
  }

  #sec5 .group2 .col-r {
    order: 2;
    flex: 1;
    max-width: 780px;
    margin: 0 -74px 0 0;
  }

  #sec5 .group2 .col-r .photo {
    height: 560px;
  }

  #sec5 .group2 .col-r .note {
    margin-top: 22px;
  }

  #sec5 .group2 .col-l {
    order: 1;
    width: 405px;
    margin-top: 71px;
  }

  #sec5 .group2 .col-l .catch {
    width: 120px;
    line-height: 35px;
  }

  #sec5 .group2 .col-l .name-price {
    -moz-column-gap: 27px;
    column-gap: 27px;
    margin: 12px 0 26px;
    font-size: 25px;
  }

  #sec5 .group2 .col-l .name-price small {
    font-size: 20px;
  }
}

#sec6 {
  position: relative;
  background: url("../img/menu/sec6_deco2.png") no-repeat left bottom/80%;
  padding: 13vw 0 20vw;
}

#sec6 .deco {
  position: absolute;
  width: 50%;
  right: 0;
  top: -15vw;
}

#sec6 .group1 .group-txt {
  margin: 8vw 8.7% 0;
}

#sec6 .group1 .group-txt h2 {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  background: url("../img/shared/deco_ttl_b.png") no-repeat center left/5.6vw
    auto;
  padding-left: 9vw;
  font-size: 8vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#sec6 .group1 .group-txt .txt {
  margin-top: 7vw;
}

#sec6 .group1 .group-txt .btn-shared {
  margin-top: 7vw;
}

#sec6 .group {
  background: #fff;
  padding: 10vw 5% 15vw;
}

#sec6 .group h3 {
  text-align: center;
  font-size: 6.2vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#sec6 .group .txt {
  margin: 7vw 0;
}

#sec6 .group .time {
  background: url("../img/shared/bg02.jpg") repeat center;
  text-align: center;
  padding: 5vw 0 5vw 2.5vw;
  margin-top: 7vw;
}

#sec6 .group2 {
  margin-top: 12vw;
}

#sec6 .group2 h4 {
  text-align: center;
  border-top: 1px solid #000;
  padding-top: 8vw;
  margin-top: 8vw;
  font-size: 5.13vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#sec6 .group2 .btn-tel {
  text-align: center;
  margin-top: 7vw;
}

#sec6 .group2 .btn-tel dl dt {
  font-size: 27px;
}

#sec6 .group2 .btn-tel dl dt img {
  width: 14px;
  margin: -6px 6px 0 0;
}

#sec6 .group2 .btn-tel dl dd {
  margin-top: 5px;
  font-size: 13px;
  line-height: 23px;
}

#sec6 .group3 {
  margin-top: 5vw;
}

#sec6 .group3 .btn-shared {
  margin: 0 8.7%;
}

@media screen and (min-width: 1000px) {
  #sec6 {
    background-size: auto;
    padding: 113px 0 154px;
  }

  #sec6 .deco {
    width: auto;
    top: -113px;
  }

  #sec6 .wrap {
    max-width: 1200px;
  }

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

  #sec6 .group1 .photo {
    flex: 1;
    max-width: 768px;
    height: 576px;
    margin-left: -47px;
  }

  #sec6 .group1 .group-txt {
    width: 352px;
    margin: 66px 47px 0;
  }

  #sec6 .group1 .group-txt h2 {
    margin: 0;
    background-size: auto;
    background-position: left top 25px;
    padding-left: 69px;
    font-size: 50px;
  }

  #sec6 .group1 .group-txt .txt {
    margin-top: 28px;
  }

  #sec6 .group1 .group-txt .btn-shared {
    margin: 54px 0 0;
  }

  #sec6 .group {
    max-width: 900px;
    text-align: center;
    margin: 0 auto;
    padding: 104px 0 80px;
  }

  #sec6 .group h3 {
    font-size: 30px;
  }

  #sec6 .group .txt {
    margin: 33px 0 51px;
  }

  #sec6 .group .time {
    width: -moz-fit-content;
    width: fit-content;
    margin: 32px auto 0;
    padding: 23px 67px 24px;
  }

  #sec6 .group2 {
    margin-top: 86px;
  }

  #sec6 .group2 h4 {
    padding-top: 53px;
    margin-top: 0;
    font-size: 22px;
  }

  #sec6 .group2 .btn-tel {
    margin-top: 19px;
  }

  #sec6 .group2 .btn-tel dl dt {
    font-size: 30px;
  }

  #sec6 .group2 .btn-tel dl dt img {
    width: 17px;
    margin: -5px 8px 0 -8px;
  }

  #sec6 .group2 .btn-tel dl dd {
    margin-top: 4px;
    font-size: 14px;
    line-height: 30px;
  }

  #sec6 .group3 {
    margin-top: 40px;
    padding-bottom: 100px;
  }

  #sec6 .group3 .txt {
    margin: 35px 0 31px;
  }

  #sec6 .group3 .btn-shared {
    margin: 0 auto;
  }

  #sec6 .group3 .btn-shared a {
    text-align: left;
  }

  #sec6 .group3 .time {
    margin-top: 40px;
  }
}

#popup1 {
  padding: 0 4vw 0;
  margin: 10vw 0;
}

#popup1 .wrap {
  background: url("../img/shared/bg02.jpg") repeat center;
  padding: 4vw 4vw 15vw;
}

#popup1 h2 {
  text-align: center;
  margin-top: 3vw;
  font-size: 30px;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#popup1 .note-lead {
  margin: 7vw 0;
}

#popup1 .box-price-1 {
  display: flex;
  flex-wrap: wrap;
  row-gap: 3vw;
}

#popup1 .box-price-1 li {
  text-align: center;
  width: 50%;
  font-size: 18px;
  line-height: 2;
  letter-spacing: 0.15em;
}

#popup1 .box-price-1 li small {
  font-size: 13px;
  letter-spacing: 0.15em;
}

#popup1 .box-price-1 li small:last-child {
  margin-top: 5px;
  display: block;
}

#popup1 .box-price-2 {
  border-top: 1px solid rgba(0, 0, 0, 0.5);
  padding-top: 8vw;
  margin-top: 8vw;
}

#popup1 .box-price-2 .price {
  text-align: center;
  font-size: 21px;
  line-height: 2;
  letter-spacing: 0.15em;
}

#popup1 .box-price-2 .price small {
  font-size: 16px;
  letter-spacing: 0.15em;
}

#popup1 .box-price-2 .note {
  margin-top: 3vw;
}

#popup1 .remodal-close-bot {
  position: relative;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 10vw auto 0;
  padding-right: 25px;
  font-size: 21px;
  line-height: 1;
  letter-spacing: 0.15em;
}

#popup1 .remodal-close-bot::before,
#popup1 .remodal-close-bot:after {
  content: "";
  position: absolute;
  background: #000;
  height: 30px;
  width: 1px;
  right: 0;
  top: calc(50% + 1px);
}

#popup1 .remodal-close-bot::before {
  transform: translateY(-50%) rotate(45deg);
}

#popup1 .remodal-close-bot:after {
  transform: translateY(-50%) rotate(-45deg);
}

@media screen and (min-width: 1000px) {
  #popup1 {
    padding: 0;
    margin: 100px 0;
  }

  #popup1 .wrap {
    max-width: 1390px;
    padding: 26px 20px 127px;
  }

  #popup1 h2 {
    margin-top: 32px;
    font-size: 45px;
  }

  #popup1 .note-lead {
    text-align: center;
    margin: 36px 0 0;
    line-height: 38px;
  }

  #popup1 .box-price-1 {
    justify-content: space-between;
    flex-wrap: nowrap;
    row-gap: 0;
    max-width: 1140px;
    margin: 91px auto 0;
  }

  #popup1 .box-price-1 li {
    width: auto;
    font-size: 25px;
  }

  #popup1 .box-price-1 li small {
    font-size: 20px;
  }

  #popup1 .box-price-1 li small:last-child {
    margin-top: 7px;
  }

  #popup1 .box-price-2 {
    max-width: 1140px;
    margin: 61px auto 0;
    padding-top: 69px;
  }

  #popup1 .box-price-2 .price {
    font-size: 25px;
  }

  #popup1 .box-price-2 .price small {
    font-size: 20px;
  }

  #popup1 .box-price-2 .note {
    text-align: center;
    margin-top: 7px;
    font-size: 14px;
  }

  #popup1 .remodal-close-bot {
    cursor: pointer;
    margin-top: 63px;
    padding-right: 40px;
    font-size: 25px;
  }

  #popup1 .remodal-close-bot::before,
  #popup1 .remodal-close-bot:after {
    height: 40px;
  }

  #popup1 .remodal-close-bot:hover {
    opacity: 0.7;
  }
}

#popup2 {
  padding: 0 4vw 0;
  margin: 10vw 0;
}

#popup2 .wrap {
  background: url("../img/shared/bg02.jpg") repeat center;
  padding: 4vw 4vw 15vw;
}

#popup2 h2 {
  text-align: center;
  margin-top: 3vw;
  font-size: 30px;
  line-height: 1.5;
  letter-spacing: 0.15em;
}

#popup2 .note-lead {
  text-align: center;
  margin: 7vw 0 10vw;
}
#popup2 .row {
  margin-bottom: 10vw;
}
#popup2 .row .item .name-price {
  text-align: center;
  margin-top: 3vw;
  font-size: 21px;
  line-height: 2;
  letter-spacing: 0.15em;
}

#popup2 .row .item .name-price dd small {
  font-size: 16px;
  letter-spacing: 0.15em;
}

#popup2 .row .item + .item {
  margin-top: 7vw;
}
#popup2 .note {
  text-align: center;
}
@media screen and (min-width: 1000px) {
  #popup2 {
    margin: 50px 0;
    padding: 0;
  }

  #popup2 .wrap {
    max-width: 1390px;
    padding: 24px 20px 130px;
  }

  #popup2 h2 {
    margin-top: 33px;
    font-size: 45px;
  }

  #popup2 .note-lead {
    margin: 32px 0 66px;
  }

  #popup2 .row {
    display: flex;
    justify-content: space-between;
    max-width: 1090px;
    margin: 0 auto;
  }

  #popup2 .row .item {
    width: 32.1100917431%;
  }

  #popup2 .row .item .name-price {
    margin-top: 23px;
    font-size: 25px;
  }

  #popup2 .row .item .name-price dd small {
    font-size: 20px;
  }

  #popup2 .row .item + .item {
    margin-top: 0;
  }
}
