.txt {
  padding: 0;
}
#course #sec1 {
  z-index: 5;
  padding: 5vw 0 12vw;
  background: url("../img/course/sec1_bg.jpg") repeat center top;
}

#course #sec2 {
  position: relative;
  z-index: 1;
  padding: 15vw 0 10vw;
}

#course #sec2 img {
  width: 100%;
  height: auto;
}

#course #sec2 .set1::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  background: url("../img/course/sec2_deco1.png") no-repeat center top/100%;
  width: 80%;
  height: 200vw;
  z-index: -2;
}
#course #sec2 .set1::after {
  content: "";
  position: absolute;
  top: 76vw;
  left: 0;
  background: url("../img/course/sec2_deco2.jpg") no-repeat center top/100%;
  width: 73%;
  height: 200vw;
  z-index: -2;
}

#course #sec2 .set1 .ttl {
  margin: 0 calc(50% - 50vw);
}

#course #sec2 .set1 .ttl-h {
  height: 13vw;
}

#course #sec2 .set1 .ttl-h img {
  height: 100%;
  width: auto;
}

#course #sec2 .set1 .ttl-v {
  width: 14vw;
}

#course #sec2 .set1 .gr-img1 {
  width: 50vw;
  margin-top: 8vw;
}

#course #sec2 .set1 .gr-img1 .img-ttl {
  margin-top: -4vw;
  margin-bottom: 12vw;
}

#course #sec2 .set1 .gr-img2 {
  width: 60vw;
  margin: 5vw 0 0 auto;
  position: relative;
}

#course #sec2 .set1 .gr-img2 .img-ttl {
  position: absolute;
  top: -9vw;
  left: 1vw;
}

#course #sec2 .set1 .gr-img3 {
  margin: 10vw 0 0 12vw;
  width: 60vw;
  position: relative;
}

#course #sec2 .set1 .gr-img3::before {
  content: "";
  position: absolute;
  bottom: -50vw;
  left: calc(50% - 50vw);
  background: url("../img/course/sec2_deco3.png") no-repeat left bottom / 100%;
  width: 95vw;
  height: 300vw;
}

#course #sec2 .set1 .gr-img3 .img-ttl {
  position: absolute;
  top: 3vw;
  left: -10vw;
}

#course #sec2 .set1 .gr-img4 {
  margin: 40vw 0 0 0;
  position: relative;
}
#course #sec2 .set1 .gr-img4::before {
  content: "";
  position: absolute;
  bottom: -76vw;
  left: calc(50% - 50vw);
  background: url("../img/course/sec2_deco4.png") no-repeat left bottom / 100%;
  width: 100vw;
  height: 400vw;
  z-index: -1;
}
#course #sec2 .set1 .gr-img4 .photo {
  width: 80vw;
}

#course #sec2 .set1 .gr-img4 .img-gr {
  display: flex;
  align-items: flex-end;
  margin-left: calc(50% - 50vw);
  margin-bottom: 5vw;
}

#course #sec2 .set1 .gr-img5 {
  margin: 50vw 0 0;
  position: relative;
  z-index: 1;
}
#course #sec2 .set1 .gr-img5::before {
  content: "";
  position: absolute;
  bottom: -44vw;
  left: calc(50% - 50vw);
  background: url("../img/course/sec2_deco5.jpg") no-repeat left bottom / 100%;
  width: 93vw;
  height: 400vw;
  z-index: -1;
}
#course #sec2 .set1 .gr-img5 .img-gr {
  display: flex;
  align-items: flex-end;
  margin-right: calc(50% - 50vw);
  margin-bottom: 5vw;
}

#course #sec2 .set1 .gr-img5 .img-gr .img-ttl {
  flex-shrink: 0;
  margin-right: -1vw;
  position: relative;
  z-index: 3;
}

#course #sec2 .set1 .gr-img6 {
  margin: 15vw 0 0 18vw;
  width: 66vw;
  position: relative;
  z-index: 1;
}

#course #sec2 .set1 .gr-img6 .img-ttl {
  margin: -3vw 0 0 10vw;
}

#course #sec2 .set1 .gr-img7 {
  margin: 8vw 0 0 0;
  width: 70vw;
  position: relative;
  z-index: 1;
}

#course #sec2 .set1 .gr-img7::before {
  content: "";
  position: absolute;
  bottom: -24vw;
  right: -27vw;
  background: url("../img/course/sec2_deco6.png") no-repeat left bottom / 100%;
  width: 54vw;
  height: 400vw;
  z-index: -1;
}

#course #sec2 .set1 .gr-img7 .img-ttl {
  margin: -3vw 0 0 2vw;
}

#course #sec2 .set2 {
  padding: 14vw 0 16vw;
  position: relative;
  z-index: 1;
}

#course #sec2 .set2::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 90vw;
  background: #c5c4be;
  height: 1px;
  bottom: 0;
}

#course #sec2 .set2 .gr-price1 {
  border-top: 1px solid #b1a25e;
  border-bottom: 1px solid #b1a25e;
  box-sizing: border-box;
  padding: 7vw 4vw 9vw;
  position: relative;
  text-align: center;
  margin: 0 -3.4vw;
}

#course #sec2 .set2 .gr-price1::before {
  content: "";
  border: inherit;
  position: absolute;
  top: 1vw;
  right: 0;
  bottom: 1vw;
  left: 0;
}

#course #sec2 .set2 .gr-price1 .price {
  font-size: 6.5vw;
  line-height: 10vw;
  border-bottom: 1px solid #cbc7c0;
  padding-bottom: 2vw;
  font-weight: 400;
  letter-spacing: 0.06em;
}

#course #sec2 .set2 .gr-price1 .price-txt {
  margin-top: 3vw;
  padding: 0;
  font-size: 3.5vw;
  line-height: 7vw;
}

#course #sec2 .set2 .gr-price2 {
  max-width: 100%;
  border: 1px solid #cbc7c0;
  box-sizing: border-box;
  padding: 6vw 3vw 6vw;
  margin: 8vw auto 0;
  text-align: center;
  white-space: nowrap;
}

#course #sec2 .set2 .gr-price2 .price {
  font-size: 5.5vw;
  line-height: 9vw;
  padding-bottom: 2vw;
  border-bottom: 1px solid #cbc7c0;
  font-weight: 400;
  letter-spacing: 0.06em;
}

#course #sec2 .set2 .gr-price2 .price-txt {
  margin-top: 3vw;
  padding: 0;
  font-size: 3.5vw;
  line-height: 7vw;
}

#course #sec2 .set2 .txt {
  margin-top: 4vw;
  text-align: center;
}

#course #sec2 .set2 .gr-txt {
  position: relative;
  box-sizing: border-box;
  padding: 20vw 18vw 20vw;
  z-index: 1;
  background: url("../img/course/sec2_bg.jpg") repeat center top;
  max-width: 75vw;
  margin: 5vw auto 0;
  z-index: 1;
}

#course #sec2 .set2 .gr-txt::before {
  content: "";
  position: absolute;
  top: 7vw;
  right: 0;
  bottom: 7vw;
  left: 0;
  z-index: -1;
  background: url("../img/course/sec2_bg2.jpg") repeat center top;
}

#course #sec2 .set2 .gr-txt .ttl {
  max-width: 50vw;
  margin: 0 auto 2vw;
}

#course #sec2 .set2 .gr-txt .list {
  display: flex;
  gap: 7vw;
  white-space: nowrap;
}

#course #rss2 {
  padding: 5vw 0 0;
}

#course #rss2 img {
  max-width: 100%;
  height: auto;
}

#course #rss2 .ttl {
  position: absolute;
  top: 14vw;
  left: 18vw;
  width: 8vw;
}

#course #rss2 #feed .rss-img {
  width: 45vw;
  height: 67vw;
  box-sizing: border-box;
  padding: 1vw;
  background: #dfddc5;
  flex-shrink: 0;
  margin: 0 10vw 4vw auto;
}

#course #rss2 #feed .rss-img * {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

#course #rss2 #feed .rss-tit {
  font-size: 18px;
}

#course #rss2 #feed dl dt {
  font-size: 12px;
  width: auto;
}

#course #rss2 #feed dl dd {
  width: auto;
  padding: 0;
}

#course #rss2 #feed .rss-desc {
  margin-top: 3vw;
}

#course #rss2 #feed .rss_more {
  width: 28vw;
  text-align: right;
  display: block;
  margin: 5vw 0 0 auto;
}

#course #sec3 {
  position: relative;
  z-index: 1;
  padding: 0 0 20vw;
  margin-top: 15vw;
}

#course #sec3::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  background: url("../img/course/sec3_deco.png") no-repeat center top/100%;
  width: 100%;
  height: 80vw;
}

#course #sec3 img {
  max-width: 100%;
  height: auto;
}

#course #sec3 .ttl {
  margin: 0 calc(50% - 50vw) 0;
}

#course #sec3 .photo {
  margin-top: 1vw;
}

#course #sec3 .txt {
  padding: 5vw 0 0;
}

#course #sec3 .btn {
  margin-top: 5vw;
}

#course #sec4 {
  padding: 13vw 0 16vw;
  background: url("../img/course/sec2_bg2.jpg") repeat center top;
  position: relative;
}

#course #sec4::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  background: url("../img/course/sec4_deco.jpg") no-repeat right top/100%;
  width: 100%;
  height: 100vw;
}

#course #sec4 img {
  max-width: 100%;
  height: auto;
}

#course #sec4 .gr-img {
  display: flex;
  width: 65vw;
}

#course #sec4 .photo2 {
  margin: 22vw 0 0 4vw;
}

#course #sec4 .ttl {
  width: 15.4vw;
  position: absolute;
  top: 0;
  right: 9vw;
}

#course #sec4 .txt {
  margin-top: 18vw;
}

#course #bnr {
  padding: 15vw 6vw 15vw;
}

#course #bnr .wrap {
  padding: 0;
}

#course #bnr img {
  width: 100%;
  height: auto;
}
