.object-fit-cover,
.object-fit-cover-pc {
  position: relative;
  overflow: hidden;
}

.object-fit-cover img {
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  width: 100%;
}

@media screen and (min-width: 768px) {
  section .wrap {
    width: 100%;
    max-width: 1000px;
  }
  .object-fit-cover-pc {
    position: relative;
  }
  .object-fit-cover-pc img {
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .object-fit-cover-sp {
    position: relative;
  }
  .object-fit-cover-sp img {
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    width: 100%;
  }
}
.cl1 {
  color: #d83b62;
}

.cl2 {
  color: #60bf49;
}

@keyframes fade_tab {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
#key {
  position: relative;
}
#key .tit {
  position: absolute;
  bottom: 2vw;
  left: 0;
  right: 0;
  padding: 0 16%;
  z-index: 1;
}
@media (min-width: 768px) {
  #key .photo {
    height: 708px;
  }
  #key .tit {
    bottom: 0px;
    text-align: center;
    padding: 0;
  }
}

#sec1 .lead {
  position: relative;
  padding: 0px 0 18vw;
}
#sec1 .lead:before {
  content: "";
  background: url(../img/scene/bg1.jpg) repeat center;
  position: absolute;
  top: 47.5vw;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  border-top-right-radius: 14vw;
  border-top-left-radius: 14vw;
}
#sec1 .lead::after {
  content: "";
  background: url(../img/scene/sec1_deco.png) no-repeat center bottom/100%;
  position: absolute;
  bottom: -8vw;
  left: -4vw;
  width: 12vw;
  height: 40vw;
  z-index: 1;
}
#sec1 .lead .photo {
  margin: 0 -4vw -51vw;
  position: relative;
  z-index: 0;
}
#sec1 .lead .tit {
  position: absolute;
  transform: rotate(-90deg);
  width: 16%;
  right: 19vw;
  bottom: -32vw;
  z-index: 1;
}
#sec1 .lead h2 {
  position: absolute;
  top: 33vw;
  left: 0;
  right: 0;
  z-index: 2;
}
#sec1 .lead .txt {
  position: relative;
  z-index: 2;
  padding: 0 4%;
}
#sec1 .lead .txt .t {
  background-color: #fff;
  color: #000;
  font-weight: 700;
  font-size: 16px;
  padding: 0 10px;
}
@media (min-width: 768px) {
  #sec1 {
    position: relative;
    z-index: 0;
  }
  #sec1::before {
    content: '';
    width: 100%;
    background: url(../img/scene/sec1_bg1.png) no-repeat calc(50% - 212px) 0;
    position: absolute;
    top: 0;
    bottom: -200px;
    left: 0;
    right: 0;
    z-index: -1;
  }
  #sec1 .wrap {
    max-width: 1200px;
  }
  #sec1 .lead {
    text-align: center;
    padding: 81px 0px 60px;
  }
  #sec1 .lead:before {
    top: 380px;
    left: 50px;
    right: 50px;
    border-top-right-radius: 180px;
    border-top-left-radius: 180px;
  }
  #sec1 .lead::after {
    bottom: auto;
    top: 643px;
    left: 96px;
    width: 107px;
    height: 399px;
    z-index: 1;
  }
  #sec1 .lead .photo {
    margin: 0 0 67px;
  }
  #sec1 .lead .tit {
    transform: none;
    width: auto;
    right: -10px;
    bottom: auto;
    top: 27px;
  }
  #sec1 .lead h2 {
    position: absolute;
    top: 257px;
    text-align: center;
    padding: 0 0 0 30px;
  }
  #sec1 .lead .txt {
    padding: 0 0;
  }
  #sec1 .lead .txt .t {
    padding: 0 20px;
    font-size: 19px;
  }
}

#sec2 {
  background: url(../img/scene/sec2_bg.jpg) no-repeat center 267vw/230%;
  padding: 15vw 0 5vw;
  position: relative;
}
#sec2:before {
  content: "";
  position: absolute;
  top: -10vw;
  right: 0;
  width: 85vw;
  height: 80vw;
  background: url(../img/scene/bg2.png) repeat center 0;
  z-index: 0;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%);
}
#sec2 .lead {
  padding: 0 0 10vw;
}
#sec2 .lead h2 {
  text-align: center;
  border-bottom: 2px solid #fff;
  letter-spacing: 0.1em;
  line-height: 1.657;
  font-size: 6.5vw;
  position: relative;
  padding: 10vw 0 5vw;
  margin-bottom: 10vw;
  position: relative;
  z-index: 1;
}
#sec2 .lead h2:before {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 0;
  right: 0;
  border-bottom: 2px solid #fff;
}
#sec2 .lead h2 .cl1 {
  font-weight: 700;
}
#sec2 .lead h2 img {
  width: 90vw;
  height: auto;
  position: absolute;
  left: 0vw;
  top: 0vw;
  z-index: -1;
}
#sec2 .lead .graphic {
  position: relative;
  padding: 35vw 0% 32vw;
}
#sec2 .lead .graphic li {
  width: 75vw;
  position: absolute;
  top: 0;
  left: -7vw;
  z-index: 1;
}
#sec2 .lead .graphic li:nth-child(2) {
  left: auto;
  right: -11vw;
  top: auto;
  bottom: 0;
}
#sec2 .lead .txt p {
  padding-bottom: 20px;
}
#sec2 .lead .txt span {
  font-size: 16px;
}
#sec2 .lead .txt .t {
  background-color: #fff;
  color: #000;
  font-weight: 700;
  padding: 0 10px;
}
#sec2 .tabs-switch .tab-link {
  display: flex;
}
#sec2 .tabs-switch .tab-link li {
  flex: 1;
  font-size: 6vw;
  letter-spacing: 0.1em;
  line-height: 1.5;
  padding: 4vw 0;
  text-align: center;
  color: #fff;
  font-weight: 700;
  background: url(../img/scene/tab_bg1.jpg) no-repeat center/cover;
  opacity: 0.5;
  transform: scale(0.85);
  border-radius: 5px;
  position: relative;
}
#sec2 .tabs-switch .tab-link li:hover {
  opacity: 0.8;
}
#sec2 .tabs-switch .tab-link li:after {
  content: "";
  background: url(../img/scene/arow.png) no-repeat center bottom/100%;
  width: 6vw;
  height: 10vw;
  position: absolute;
  left: 50%;
  bottom: -1.5vw;
  transform: translateX(-50%);
  z-index: 1;
}
#sec2 .tabs-switch .tab-link li:nth-child(2) {
  background: url(../img/scene/tab_bg2.jpg) no-repeat center/cover;
}
#sec2 .tabs-switch .tab-link li.active {
  opacity: 1;
  transform: scale(1);
}
#sec2 .tabs-switch .content {
  font-weight: 700;
  padding: 10vw 0 0;
}
#sec2 .tabs-switch .content h3 {
  text-align: center;
  font-weight: 700;
  font-size: 5.5vw;
  border-top: 4px double;
  border-bottom: 4px double;
  margin-bottom: 10vw;
}
#sec2 .tabs-switch .content.active {
  animation: fade_tab 0.3s ease-in-out;
}
#sec2 .tabs-switch .group .item {
  background: url(../img/scene/bg3.jpg) repeat center 0;
  color: #fff;
  text-align: center;
  padding: 5% 3%;
  position: relative;
  margin-bottom: 22vw;
  font-size: 17px;
}
#sec2 .tabs-switch .group .item:last-child {
  margin-bottom: 0;
}
#sec2 .tabs-switch .group .item .tag {
  padding-bottom: 20px;
}
#sec2 .tabs-switch .group .item .tag dt {
  width: 120px;
  position: absolute;
  top: -57px;
  left: -30px;
  z-index: 1;
}
#sec2 .tabs-switch .group .item .tag dt.ext {
  left: auto;
  right: -4vw;
}
#sec2 .tabs-switch .group .item .tag dd {
  background-color: #fff;
  color: #000;
}
#sec2 .tabs-switch .group .item .price {
  line-height: 1.4;
  letter-spacing: 0.1em;
  padding-bottom: 20px;
}
#sec2 .tabs-switch .group .item .price .oswald-medium {
  font-size: 18px;
  letter-spacing: 0;
}
#sec2 .tabs-switch .group .item .price dd .oswald-medium:nth-child(2) {
  padding-left: 15px;
}
#sec2 .tabs-switch .group .item .price dt {
  font-size: 20px;
}
#sec2 .tabs-switch .group .item .price dt .oswald-medium {
  font-size: 28px;
  letter-spacing: 0;
  padding-left: 10px;
}
#sec2 .tabs-switch .group .item .list {
  position: relative;
  padding: 0 4% 20px;
}
#sec2 .tabs-switch .group .item .list:before, #sec2 .tabs-switch .group .item .list:after {
  content: "";
  position: absolute;
  top: 30px;
  bottom: 0;
  width: 20px;
  border: 1px solid #773671;
}
#sec2 .tabs-switch .group .item .list::before {
  border-right: none !important;
  left: 0;
}
#sec2 .tabs-switch .group .item .list::after {
  border-left: none !important;
  right: 0;
}
#sec2 .tabs-switch .group .item .list h4 span {
  display: inline-block;
  position: relative;
  z-index: 1;
  font-size: 18px;
}
#sec2 .tabs-switch .group .item .list h4 span:after {
  content: "";
  position: absolute;
  left: -10px;
  right: -10px;
  bottom: 5px;
  height: 10px;
  background-color: rgba(97, 75, 95, 0.66);
  z-index: -1;
}
#sec2 .tabs-switch .group .item .list ul {
  font-size: 16px;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
}
#sec2 .tabs-switch .group .item .list ul li {
  line-height: 1.4;
  position: relative;
  text-align: left;
  padding: 0 0 14px 27px;
  font-size: 16px;
}
#sec2 .tabs-switch .group .item .list ul li::before {
  content: "+";
  color: #d83b62;
  font-size: 30px;
  position: absolute;
  left: 0;
  top: -11px;
}
#sec2 .tabs-switch .group .item .list .tag_list {
  font-size: 20px;
  line-height: 1.3;
  border-bottom: 1px solid #773671;
  padding: 20px 0;
  margin-bottom: 20px;
}
#sec2 .tabs-switch .group .item .list .tag_list .oswald-medium {
  font-size: 28px;
}
#sec2 .tabs-switch .group .item .list .tag_list dt {
  font-size: 14px;
}
#sec2 .tabs-switch .group .item .list .tag_list dt span {
  font-size: 20px;
}
#sec2 .tabs-switch .group .item .list .tag_list dd .oswald-medium:nth-child(2) {
  padding-left: 15px;
}
#sec2 .tabs-switch .group .item .list .tag_list .f {
  font-size: 16px;
}
#sec2 .tabs-switch .group .item .list .tag_list .f .oswald-medium {
  font-size: 18px;
}
#sec2 .tabs-switch .group .item .list .tag_list .f .oswald-medium:nth-child(2) {
  padding-left: 10px;
}
#sec2 .tabs-switch .group .item.ext {
  background: url(../img/scene/bg4.jpg) repeat center 0;
}
#sec2 .tabs-switch .group .item.ext .list:before, #sec2 .tabs-switch .group .item.ext .list:after {
  border: 1px solid #2b5d4b;
}
#sec2 .tabs-switch .group .item.ext .list h4 span:after {
  background-color: rgba(48, 79, 68, 0.66);
}
#sec2 .tabs-switch .group .item.ext .list .tag_list {
  border-bottom: 1px solid #2b5d4b;
}
#sec2 .tabs-switch .group .item.ext .list ul li::before {
  color: #60bf49;
}
@media (min-width: 768px) {
  #sec2 {
    background-size: auto;
    background-position: center 816px;
    padding: 0;
  }
  #sec2:before {
    top: -80px;
    width: calc(50% + 311px);
    height: 1150px;
    clip-path: polygon(0% 0%, 100% 0%, 107% 100%);
  }
  #sec2 .wrap {
    max-width: 1288px;
  }
  #sec2 .lead {
    padding: 315px 0 0;
  }
  #sec2 .lead h2 {
    position: absolute;
    top: 120px;
    left: calc(50% + 30px);
    line-height: 63px;
    font-size: 38px;
    padding: 0 0 15px;
    margin-bottom: 0;
    width: 482px;
  }
  #sec2 .lead h2 img {
    width: auto;
    left: -401px;
    top: -18px;
    max-width: 967px;
  }
  #sec2 .lead .graphic {
    position: relative;
    padding: 0 0 0 13px;
    text-align: center;
  }
  #sec2 .lead .graphic li {
    width: auto;
    top: -126px;
    left: 9px;
  }
  #sec2 .lead .graphic li:nth-child(2) {
    right: 2px;
    top: auto;
    bottom: -245px;
  }
  #sec2 .lead .txt {
    max-width: 993px;
    margin: -25px auto 0;
    position: relative;
    z-index: 2;
  }
  #sec2 .lead .txt p {
    padding-bottom: 38px;
    max-width: 567px;
  }
  #sec2 .lead .txt span {
    font-size: 19px;
  }
  #sec2 .lead .txt .t {
    padding: 0 16px;
    margin: 0 6px;
  }
  #sec2 .tabs-switch .tab-link {
    justify-content: space-between;
    gap: 30px;
    max-width: 1132px;
    margin: 0 auto;
  }
  #sec2 .tabs-switch .tab-link li {
    font-size: 40px;
    padding: 0px 0 20px;
    border-radius: 33px;
    height: 155px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }
  #sec2 .tabs-switch .tab-link li:after {
    width: 60px;
    height: 42px;
    bottom: -12px;
  }
  #sec2 .tabs-switch .content {
    padding: 35px 0 0;
  }
  #sec2 .tabs-switch .content h3 {
    font-size: 38px;
    padding: 34px 0;
    margin: 0 30px 10px;
    letter-spacing: 0.1em;
  }
  #sec2 .tabs-switch .group {
    display: flex;
    justify-content: space-between;
  }
  #sec2 .tabs-switch .group .item {
    width: calc(50% - 15px);
    padding: 30px 30px 36px;
    margin-bottom: 0;
    font-size: 26px;
    box-sizing: border-box;
  }
  #sec2 .tabs-switch .group .item:last-child {
    margin-bottom: 0;
  }
  #sec2 .tabs-switch .group .item .tag {
    padding-bottom: 36px;
  }
  #sec2 .tabs-switch .group .item .tag dt {
    width: auto;
    top: -107px;
    left: 68px;
  }
  #sec2 .tabs-switch .group .item .tag dt.ext {
    left: auto;
    right: 71px;
  }
  #sec2 .tabs-switch .group .item .price {
    line-height: 55px;
    padding-bottom: 0px;
  }
  #sec2 .tabs-switch .group .item .price .oswald-medium {
    font-size: 29px;
  }
  #sec2 .tabs-switch .group .item .price dt {
    font-size: 31px;
  }
  #sec2 .tabs-switch .group .item .price dt .oswald-medium {
    font-size: 48px;
    padding-left: 17px;
  }
  #sec2 .tabs-switch .group .item .list {
    position: relative;
    padding: 0 20px;
    box-sizing: border-box;
    max-width: 500px;
    margin: 13px auto 0;
  }
  #sec2 .tabs-switch .group .item .list:before, #sec2 .tabs-switch .group .item .list:after {
    top: 30px;
    width: 75px;
  }
  #sec2 .tabs-switch .group .item .list::before {
    border-right: none !important;
    left: 0;
  }
  #sec2 .tabs-switch .group .item .list::after {
    border-left: none !important;
    right: 0;
  }
  #sec2 .tabs-switch .group .item .list h4 span {
    font-size: 26px;
    letter-spacing: 0.1em;
  }
  #sec2 .tabs-switch .group .item .list h4 span:after {
    left: -20px;
    right: -20px;
    bottom: -4px;
    height: 23px;
  }
  #sec2 .tabs-switch .group .item .list ul {
    font-size: 16px;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    padding-bottom: 36px;
  }
  #sec2 .tabs-switch .group .item .list ul li {
    line-height: 1.4;
    position: relative;
    text-align: left;
    padding: 0 0 14px 31px;
    font-size: 21px;
    letter-spacing: 0.1em;
  }
  #sec2 .tabs-switch .group .item .list ul li::before {
    font-size: 40px;
    top: -16px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list {
    font-size: 26px;
    line-height: 1.3;
    padding: 24px 0 30px;
    margin-bottom: 42px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list .oswald-medium {
    font-size: 40px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list dt {
    font-size: 16px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list dt span {
    font-size: 26px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list .f {
    font-size: 21px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list .f .oswald-medium {
    font-size: 23px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list .f .oswald-medium:nth-child(2) {
    padding-left: 20px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list.ext1 {
    padding: 41px 0 50px;
    margin-bottom: 15px;
  }
  #sec2 .tabs-switch .group .item .list .tag_list.ext2 {
    padding: 41px 0 50px;
    margin-bottom: 45px;
  }
}

#sec3 {
  position: relative;
  padding: 15vw 0;
}
#sec3:before {
  content: "";
  position: absolute;
  bottom: -1vw;
  left: 0;
  width: 45vw;
  height: 110vw;
  background: url(../img/scene/bg2.png) repeat center 0;
  z-index: -1;
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}
#sec3 .lead h2 {
  text-align: left;
  letter-spacing: 0.1em;
  line-height: 1.657;
  font-size: 6.5vw;
  position: relative;
  padding: 10vw 0;
  white-space: nowrap;
}
#sec3 .lead h2 .t {
  border-bottom: 2px solid #fff;
  position: relative;
  display: inline-block;
  margin-left: 3vw;
}
#sec3 .lead h2 .t:before {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 0;
  right: 0;
  border-bottom: 2px solid #fff;
}
#sec3 .lead h2 .cl2 {
  font-weight: 700;
}
#sec3 .lead h2 .pad {
  letter-spacing: 0.1em;
  float: right;
}
#sec3 .lead h2 img {
  width: 90vw;
  height: auto;
  position: absolute;
  left: -8vw;
  top: -7vw;
  z-index: -1;
}
#sec3 .lead .photo1 {
  margin-bottom: 5vw;
}
#sec3 .txt p {
  padding-bottom: 20px;
}
#sec3 .point {
  position: relative;
  padding: 0 0 19vw;
}
#sec3 .point h3 {
  position: absolute;
  top: 32vw;
  left: 21vw;
  z-index: 4;
  right: -3vw;
}
#sec3 .point .tit {
  position: absolute;
  width: 36vw;
  top: 16vw;
  left: 5vw;
  z-index: 1;
}
#sec3 .point .photo2 {
  position: absolute;
  width: 74%;
  z-index: 3;
  top: 52vw;
  left: -4vw;
}
#sec3 .point .photo3 {
  padding: 0 0 0 33%;
  position: relative;
}
#sec3 .point .photo3:after {
  content: "";
  background: url(../img/scene/sec3_deco2.png) no-repeat center/100%;
  width: 120vw;
  height: 150vw;
  position: absolute;
  z-index: -1;
  top: -20vw;
  right: -10vw;
}
@media (min-width: 768px) {
  #sec3 {
    padding: 0 0;
  }
  #sec3:before {
    bottom: -521px;
    width: calc(50% - 220px);
    height: 1390px;
    clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  }
  #sec3 .wrap {
    max-width: 1200px;
  }
  #sec3 .lead {
    padding: 130px 0 0;
    max-width: 1097px;
    margin: 0 auto;
    position: relative;
  }
  #sec3 .lead h2 {
    position: relative;
    line-height: 63px;
    font-size: 38px;
    padding: 0;
    margin-bottom: 44px;
  }
  #sec3 .lead h2 > * {
    position: relative;
    z-index: 3;
  }
  #sec3 .lead h2 .t {
    margin-left: 30px;
  }
  #sec3 .lead h2 .pad {
    float: none;
    padding: 10px 0 0 371px;
    display: inline-block;
  }
  #sec3 .lead h2 img {
    width: 996px;
    left: -265px;
    top: -102px;
  }
  #sec3 .lead .photo1 {
    margin-bottom: 0;
    position: absolute;
    top: 157px;
    left: calc(50% - 22px);
    right: -101px;
  }
  #sec3 .txt {
    padding: 0 27px;
  }
  #sec3 .txt p {
    padding-bottom: 38px;
  }
  #sec3 .txt p:nth-child(2) {
    margin-left: 90px;
  }
  #sec3 .point {
    position: relative;
    padding: 0 0;
    text-align: center;
    margin-top: -157px;
  }
  #sec3 .point h3 {
    top: 264px;
    left: auto;
    right: -5px;
  }
  #sec3 .point .tit {
    width: auto;
    top: 114px;
    left: calc(50% - 100px);
    z-index: 4;
  }
  #sec3 .point .photo2 {
    width: auto;
    top: 199px;
    left: calc(50% - 399px);
  }
  #sec3 .point .photo3 {
    padding: 0 0 0;
    margin: 0 -660px 0 0;
  }
  #sec3 .point .photo3:after {
    width: 787px;
    height: 922px;
    top: -200px;
    right: 496px;
  }
}

#sec4 {
  background: url(../img/scene/sec4_deco.png) no-repeat left -44vw bottom -40vw/160%;
  position: relative;
  padding: 10vw 0 0;
}
#sec4 h2 {
  position: absolute;
  top: 36vw;
  right: 4vw;
  width: 60vw;
  z-index: 1;
}
#sec4 .js-fade {
  margin: 0 -4vw 5vw;
}
#sec4 .darts {
  position: relative;
}
#sec4 .darts .tit {
  width: 13vw;
  position: absolute;
  top: -23vw;
  left: -5vw;
  z-index: 1;
}
#sec4 .darts dl:not(:last-child) {
  padding-bottom: 12vw;
}
#sec4 .darts dl dt {
  padding: 0 0 5vw;
}
#sec4 .point {
  position: relative;
  padding: 0 0 5vw 33vw;
}
#sec4 .point .tit {
  position: absolute;
  top: 24vw;
  width: 40vw;
  left: -2vw;
  z-index: 1;
}
#sec4 .point h3 {
  position: absolute;
  top: 38vw;
  left: -1vw;
  width: 98vw;
  z-index: 1;
}
@media (min-width: 768px) {
  #sec4 {
    background-size: auto;
    background-position: calc(50% - 185px) bottom;
    padding: 136px 0 0;
  }
  #sec4 .wrap {
    max-width: 1200px;
  }
  #sec4 h2 {
    top: 409px;
    right: calc(50% - 605px);
    width: auto;
  }
  #sec4 .js-fade {
    margin: 0 -150px 0 50px;
  }
  #sec4 .js-fade .object-fit-cover-pc {
    height: 700px;
  }
  #sec4 .darts {
    position: relative;
    padding: 39px 0 0;
  }
  #sec4 .darts .tit {
    width: auto;
    position: absolute;
    top: -283px;
    left: -32px;
    z-index: 1;
  }
  #sec4 .darts dl {
    display: flex;
    position: relative;
    padding-bottom: 0 !important;
  }
  #sec4 .darts dl dt {
    padding: 0 0;
    height: 424px;
    margin: 0 0 -43px -32px;
    width: 645px;
  }
  #sec4 .darts dl dd {
    text-align: center;
    width: 390px;
    position: absolute;
    top: 48px;
    left: calc(50% + 112px);
  }
  #sec4 .darts dl:last-child {
    padding-bottom: 0;
    justify-content: flex-end;
  }
  #sec4 .darts dl:last-child dt {
    margin-left: 0;
    width: 630px;
    height: 353px;
  }
  #sec4 .darts dl:last-child dd {
    left: calc(50% - 498px);
    top: 120px;
  }
  #sec4 .point {
    max-width: 1000px;
    margin: -86px auto 0;
    position: relative;
    padding: 0 16px 0 0;
    text-align: right;
    box-sizing: border-box;
  }
  #sec4 .point .tit {
    top: 200px;
    width: auto;
    left: 78px;
    z-index: 1;
  }
  #sec4 .point h3 {
    top: 282px;
    left: 167px;
    width: auto;
  }
}

#sec5 {
  padding: 10vw 0;
  position: relative;
}
#sec5 .tit {
  margin: 0 21vw -6vw -2vw;
}
#sec5 h2 {
  margin: 4vw 20vw 5vw -3vw;
}
#sec5 .txt p {
  padding-bottom: 20px;
}
#sec5 .point {
  position: relative;
  padding: 27vw 0 0;
}
#sec5 .point h3 {
  position: absolute;
  top: 16vw;
  left: 1vw;
  width: 91vw;
  z-index: 1;
}
#sec5 .point .tt {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 40vw;
}
@media (min-width: 768px) {
  #sec5 {
    padding: 20px 0 0;
    position: relative;
    z-index: 0;
  }
  #sec5::before {
    content: '';
    width: calc(50% + 267px);
    height: 824px;
    background: rgba(106,106,106,0.25);
    border-radius: 180px 0 0 180px;
    position: absolute;
    top: 225px;
    right: 0;
    z-index: -1;
  }
  #sec5 .wrap {
    max-width: 1200px;
  }
  #sec5 .tit {
    margin: 0;
    position: absolute;
    right: 0;
    top: 116px;
    z-index: 1;
  }
  #sec5 h2 {
    margin: 0;
    position: absolute;
    right: 0;
    top: 328px;
    z-index: 1;
  }
  #sec5 .txt {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    padding: 107px 0 0;
  }
  #sec5 .txt p {
    padding-bottom: 0px;
    width: 361px;
  }
  #sec5 .txt p:nth-child(1) {
    width: 400px;
    position: absolute;
    top: 13px;
    right: -6px;
    z-index: 2;
  }
  #sec5 .photo1 {
    margin: 0 0 0 -150px;
  }
  #sec5 .point {
    padding: 0 0;
    margin: -187px 0 0;
  }
  #sec5 .point .photo {
    text-align: right;
    padding: 0 31px 0 0;
  }
  #sec5 .point h3 {
    top: 320px;
    left: calc(50% - 270px);
    width: auto;
  }
  #sec5 .point .tt {
    width: auto;
    left: calc(50% - 343px);
    top: 213px;
  }
}

#sec6 {
  padding: 10vw 0 0;
  color: #000;
  position: relative;
}
#sec6:before {
  background: url(../img/scene/bg5.jpg) repeat center 0;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  clip-path: polygon(0% 0%, 100% 3%, 100% 100%, 0% 97%);
}
#sec6 .lead h2 {
  z-index: 1;
  text-align: center;
  border-bottom: 2px solid;
  letter-spacing: 0.1em;
  line-height: 1.657;
  font-size: 6.5vw;
  position: relative;
  padding: 10vw 0 5vw;
}
#sec6 .lead h2:before {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 0;
  right: 0;
  border-bottom: 2px solid;
}
#sec6 .lead h2 .cl1 {
  font-weight: 700;
}
#sec6 .lead h2 img {
  width: 90vw;
  height: auto;
  position: absolute;
  left: 0vw;
  top: 0vw;
  z-index: -1;
}
#sec6 .lead .txt p {
  padding-bottom: 20px;
}
#sec6 .course {
  position: relative;
}
#sec6 .course .photo {
  margin: 0 -21vw 5vw -21vw;
}
#sec6 .course .tag {
  text-align: center;
  background: url(../img/scene/circle.png) no-repeat center/100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 41vw;
  height: 41vw;
  font-size: 4.8vw;
  line-height: 1.4;
  letter-spacing: 0.1em;
  position: absolute;
  top: 54vw;
  left: -2vw;
  z-index: 1;
}
#sec6 .course .tag .cl2 {
  font-weight: 700;
}
#sec6 .course .tag dd {
  font-size: 3.6vw;
  font-weight: 500;
}
#sec6 .course .tag dd .num {
  font-size: 4.5vw;
}
#sec6 .course .tag dd .num .oswald-medium {
  letter-spacing: 0;
  font-size: 5.5vw;
}
#sec6 .photo1 {
  padding: 5vw 0;
}
#sec6 .photo2 dt {
  padding: 8vw 0 5vw;
}
#sec6 .point {
  position: relative;
  margin-top: 10vw;
  padding: 0 19vw 0 0;
}
#sec6 .point h3 {
  position: absolute;
  z-index: 1;
  top: 32vw;
  left: -3vw;
  width: 100vw;
}
#sec6 .btnbox {
  margin-top: -12vw;
}
#sec6 .btnbox .btn-link {
  margin-top: 5vw;
}
@media (min-width: 768px) {
  #sec6 {
    padding: 10vw 0 0;
    color: #000;
    position: relative;
  }
  #sec6:before {
    top: 0;
    bottom: -131px;
    clip-path: polygon(0% 0%, 100% 17%, 100% 100%, 0% 83%);
  }
  #sec6 .lead {
    width: 520px;
    text-align: center;
    padding: 29px 0 0;
    margin-left: 30px;
  }
  #sec6 .lead h2 {
    line-height: 63px;
    font-size: 38px;
    position: relative;
    padding: 0 0 20px;
  }
  #sec6 .lead h2 img {
    max-width: 705px;
    left: 493px;
    top: -93px;
  }
  #sec6 .lead .txt {
    text-align: center;
    padding: 7px 0 0;
  }
  #sec6 .lead .txt p {
    padding-bottom: 57px;
  }
  #sec6 .wrap {
    max-width: 1320px;
  }
  #sec6 .course {
    position: absolute;
    top: 74px;
    left: calc(50% - 104px);
    z-index: 2;
  }
  #sec6 .course .photo {
    margin: 0 -100px 0 0;
  }
  #sec6 .course .tag {
    width: 230px;
    height: 230px;
    font-size: 26px;
    line-height: 34px;
    top: 211px;
    left: 0px;
  }
  #sec6 .course .tag dd {
    font-size: 16px;
    line-height: 22px;
    padding: 10px 0 0;
  }
  #sec6 .course .tag dd .num {
    font-size: 21px;
  }
  #sec6 .course .tag dd .num .oswald-medium {
    font-size: 23px;
  }
  #sec6 .course .txt {
    max-width: 410px;
    position: absolute;
    top: 530px;
    left: 174px;
  }
  #sec6 .photo1 {
    padding: 0;
    margin: -11px 0 47px;
  }
  #sec6 .photo2 {
    position: relative;
    display: flex;
    justify-content: flex-end;
    text-align: center;
  }
  #sec6 .photo2 dd {
    max-width: 500px;
    width: 50%;
    margin-right: 50%;
  }
  #sec6 .photo2 dt {
    padding: 0;
    position: absolute;
    top: -145px;
    right: 0;
  }
  #sec6 .point {
    position: relative;
    margin-top: 35px;
    padding: 0 0 0;
  }
  #sec6 .point h3 {
    top: 190px;
    left: calc(50% - 518px);
    width: auto;
  }
  #sec6 .point .photo {
    text-align: right;
    padding-right: calc(50% + 26px);
  }
  #sec6 .btnbox {
    width: max-content;
    margin: -230px 100px 0 auto;
    position: relative;
    z-index: 1;
  }
  #sec6 .btnbox .btn-link {
    width: 520px;
    margin-top: 15px;
  }
  #sec6 .btnbox .btn-link .btn-style-2 {
    max-width: 100%;
    & > span {
      padding: 21px 20px 24px;
    }
  }
}
@media (min-width: 1366px) {
  #sec6 .lead {
    margin-left: calc(50% - 601px);
  }
}

#sec7 {
  padding: 10vw 0 5vw;
  position: relative;
}
#sec7:before {
  content: "";
  position: absolute;
  top: 61vw;
  right: 0;
  width: 61vw;
  height: 100vw;
  background: url(../img/scene/bg2.png) repeat center 0;
  z-index: -1;
  clip-path: polygon(0% 50%, 100% 100%, 100% 0%);
}
#sec7 .lead .tit {
  padding: 0 0 0 52%;
      margin-bottom: -10vw;
    position: relative;
    z-index: 1;
}
#sec7 .lead h2 {
  padding: 5vw 0;
}
#sec7 .lead .photo2 {
  padding: 5vw 0 10vw;
}
#sec7 .point {
  position: relative;
}
#sec7 .point h3 {
  position: absolute;
  top: 42vw;
  left: 0;
  z-index: 1;
}
#sec7 .point .photo {
  margin: -25vw 43vw 0 -12vw;
  position: relative;
}
#sec7 .point .photo:before {
  content: "";
  background: url(../img/scene/sec7_deco.png) no-repeat center/100%;
  width: 101vw;
  height: 107vw;
  position: absolute;
  left: 5vw;
  top: 10vw;
  z-index: -1;
}
@media (min-width: 768px) {
  #sec7 {
    padding: 111px 0 49px;
  }
  #sec7:before {
    top: 0px;
    width: calc(50% + 50px);
    height: 1380px;
    clip-path: polygon(0% 47%, 100% 100%, 100% 0%);
  }
  #sec7 .lead {
    position: relative;
    padding: 73px 0 0;
  }
  #sec7 .lead .tit {
    padding: 0 0 0;
    position: absolute;
    left: -99px;
    top: 583px;
    z-index: 1;
    margin-bottom: 0;
  }
  #sec7 .lead h2 {
    padding: 0;
    position: absolute;
    top: 0;
    right: -7px;
  }
  #sec7 .lead .txt {
    width: 377px;
  }
  #sec7 .lead .photo1 {
    margin: 0 0 178px -250px;
  }
  #sec7 .lead .photo2 {
    padding: 0;
    position: absolute;
    right: -100px;
    top: 789px;
  }
  #sec7 .point {
    margin: -4px 0 0;
  }
  #sec7 .point h3 {
    top: 38px;
    left: 160px;
  }
  #sec7 .point .txt {
    position: absolute;
    top: 342px;
    left: 401px;
  }
  #sec7 .point .photo {
    margin: 0 0 0 -82px;
  }
  #sec7 .point .photo:before {
    width: 810px;
    height: 884px;
    left: -265px;
    top: -243px;
  }
}

#sec8 {
  background: url(../img/scene/sec8_bg.png) no-repeat center 4vw/230%;
  padding: 10vw 0;
}
#sec8 h2 {
     width: 90%;
    margin: 0 auto -17vw 8%;
  position: relative;
  z-index: 1;
}
#sec8 .photo {
  display: flex;
  justify-content: space-between;
  margin: 0 -5vw -3vw -8vw;
  gap: 0 23vw;
}
#sec8 .banner {
  padding: 0vw 2%;
  display: flex;
  flex-wrap: wrap;
  gap: 5vw;
}

@media (max-width: 767px) {
  #sec8 .banner li:nth-child(1) {
    margin-right: 4%
  }
  #sec8 .banner li:nth-child(2) {
    margin-left: 4%
  }
}
@media (min-width: 768px) {
  #sec8 {
    background-size: auto;
    background-position: center 0;
    padding: 0 0 110px;
  }
  #sec8 h2 {
    width: auto;
    margin: 0 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    text-align: center;
  }
  #sec8 .photo {
    gap: 0;
    padding: 20px 0 0;
    margin: 0 0 -49px -40px;
  }
  #sec8 .banner {
    padding: 0vw;
    gap: 0;
    margin: 0 auto;
    max-width: 1358px;
  }
  #sec8 .banner li {
    width: 50%;
  }
}/*# sourceMappingURL=scene.css.map */