@charset "UTF-8";

.txt {
   text-align: justify;
}

@media only screen and (max-width: 767px) {
   .txt br {
      display: none;
   }
}

@media only screen and (min-width: 768px) {
   .txt-c .txt {
      text-align: center;
   }
}

.key-parallax .slide-item1 {
   background: url("../img/course/key-img1.jpg") no-repeat center top/cover;
}

.key-parallax .slide-item2 {
   background: url("../img/course/key-img2.jpg") no-repeat center top/cover;
}

.key-parallax .slide-item3 {
   background: url("../img/course/key-img3.jpg") no-repeat center top/cover;
}

@media only screen and (max-width: 767px) {

   .key-parallax .slide-item2 {
      background-position: center left 27%;
   }

   .key-parallax .slide-item3 {
      background-position: center left 78%;
   }
}

section {
   background: url("../img/shared/body-bg.jpg") repeat center top;
}

@media only screen and (max-width: 767px) {
   section {
      padding-top: 16vw;
   }
}

@media only screen and (min-width: 768px) {
   section {
      padding-top: 102px;
   }
}

#sec1 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec1 {
      background: #000 url("../img/course/sec1-bg-img.jpg") no-repeat top right/200% auto;
      padding: 116vw 0 20vw;
	   margin-top: 100px;
   }

   #sec1:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec1-deco.png") no-repeat top left/50% auto;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec1 h2 {
      font-size: 5vw;
   }

   #sec1 .txt {
      padding-top: 8vw;
   }
}

@media only screen and (min-width: 768px) {
   #sec1 {
      background: url("../img/course/sec1-bg-img.jpg") no-repeat center top/cover;
      padding: 175px 140px 150px;
   }

   #sec1:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec1-deco.png") no-repeat top left;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec1 h2 {
      line-height: 55px;
   }

   #sec1 .txt {
      width: 530px;
      padding-top: 40px;
   }
}

#sec2 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec2 {
      padding: 16vw 0;
   }

   #sec2:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec2-deco.png") no-repeat center top/100% auto;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec2 h3 {
      font-size: 3.2vw;
      padding-top: 3vw;
   }

   #sec2 .box-1 {
      padding-top: 8vw;
   }

   #sec2 .box-1 .col {
      padding: 8vw 4vw;
      position: relative;
      overflow: hidden;
   }

   #sec2 .box-1 .col+.col {
      margin-top: 8vw;
   }

   #sec2 .box-1 .col-border {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec2 .box-1 .col-border span {
      display: block;
      position: absolute;
      transition: 0.3s ease-in;
   }

   #sec2 .box-1 .col-border span:nth-child(1) {
      width: 0;
      height: 0;
      border-top: 1px solid #fff;
      top: 0;
      left: 0;
      transition-delay: 0s;
   }

   #sec2 .box-1 .col-border span:nth-child(2) {
      width: 0;
      height: 0;
      border-left: 1px solid #fff;
      top: 0;
      right: 0;
      transition-delay: 0.3s;
   }

   #sec2 .box-1 .col-border span:nth-child(3) {
      width: 0;
      height: 0;
      border-top: 1px solid #fff;
      right: 0;
      bottom: 0;
      transition-delay: 0.6s;
   }

   #sec2 .box-1 .col-border span:nth-child(4) {
      width: 0;
      height: 0;
      border-left: 1px solid #fff;
      bottom: 0;
      left: 0;
      transition-delay: 0.9s;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(1) {
      width: 100%;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(2) {
      height: 100%;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(3) {
      width: 100%;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(4) {
      height: 100%;
   }

   #sec2 .box-1 .no {
      width: 12vw;
      border-bottom: 1px solid;
      position: relative;
      z-index: 1;
      margin: 0 auto;
      padding-bottom: 0;
      color: #afafaf;
   }

   #sec2 .box-1 h4 {
      padding-top: 6vw;
   }

   #sec2 .box-1 .txt {
      text-align: justify;
      padding-top: 6vw;
   }

   #sec2 .box-2 {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8vw;
      padding-top: 12vw;
   }

   #sec2 .box-2 figure {
      width: 100%;
   }

   #sec2 .box-2 .col {
      width: 100%;
   }

   #sec2 .box-2 h4 {
      padding-bottom: 6vw;
   }
}

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

   #sec2:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec2-deco.png") no-repeat center top;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec2 .wrap {
      width: 1080px;
   }

   #sec2 h3 {
      letter-spacing: 0.3em;
      padding-top: 20px;
   }

   #sec2 .box-1 {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 20px;
      padding-top: 70px;
   }

   #sec2 .box-1 .col {
      padding: 62px 40px 95px;
      position: relative;
      overflow: hidden;
   }

   #sec2 .box-1 .col-border {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec2 .box-1 .col-border span {
      display: block;
      position: absolute;
      transition: 0.3s ease-in;
   }

   #sec2 .box-1 .col-border span:nth-child(1) {
      width: 0;
      height: 0;
      border-top: 1px solid #fff;
      top: 0;
      left: 0;
      transition-delay: 0.3s;
   }

   #sec2 .box-1 .col-border span:nth-child(2) {
      width: 0;
      height: 0;
      border-left: 1px solid #fff;
      top: 0;
      right: 0;
      transition-delay: 0.6s;
   }

   #sec2 .box-1 .col-border span:nth-child(3) {
      width: 0;
      height: 0;
      border-top: 1px solid #fff;
      right: 0;
      bottom: 0;
      transition-delay: 0.9s;
   }

   #sec2 .box-1 .col-border span:nth-child(4) {
      width: 0;
      height: 0;
      border-left: 1px solid #fff;
      bottom: 0;
      left: 0;
      transition-delay: 1.2s;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(1) {
      width: 100%;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(2) {
      height: 100%;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(3) {
      width: 100%;
   }

   #sec2 .box-1 .col[style*="visible"] .col-border span:nth-child(4) {
      height: 100%;
   }

   #sec2 .box-1 .no {
      width: 50px;
      border-bottom: 1px solid;
      position: relative;
      z-index: 1;
      margin: 0 auto;
      padding-bottom: 0;
      color: #afafaf;
      line-height: 42px;
   }

   #sec2 .box-1 .txt {
      text-align: justify;
      padding-top: 14px;
   }

   #sec2 .box-2 {
      display: flex;
      justify-content: center;
      gap: 60px;
      padding-top: 100px;
   }

   #sec2 .box-2 figure {
      width: 452px;
   }

   #sec2 .box-2 .col {
      width: 445px;
   }

   #sec2 .box-2 h4 {
      letter-spacing: 0.3em;
      line-height: 50px;
      padding: 38px 0 45px;
   }
}

#sec3 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec3 {
      padding: 16vw 0;
   }

   #sec3 .box-1 {
      padding-top: 6vw;
   }

   #sec3 .box-1 h3 {
      text-align: center;
   }

   #sec3 .box-1 .txt {
      padding-top: 6vw;
   }

   #sec3 .box-1 figure {
      padding-top: 8vw;
   }

   #sec3 .box-2 {
      padding-top: 12vw;
   }

   #sec3 .box-2 figure {
      width: 90%;
      margin-top: 6vw;
   }

   #sec3 .box-2 figure:nth-child(3) {
      margin: 6vw 0 0 auto;
   }

   #sec3 .box-2 .price {
      font-size: 4vw;
      letter-spacing: 0.3em;
      padding: 3vw 0;
   }

   #sec3 .box-2 .price span {
      line-height: inherit;
      letter-spacing: inherit;
   }

   #sec3 .box-2 .note {
      padding-bottom: 6vw;
   }

   #sec3 .box-2 .example {
      background-color: rgba(0, 0, 0, 0.5);
      box-sizing: border-box;
      padding: 8vw 4vw;
   }

   #sec3 .box-2 .example h4 {
      font-size: 5vw;
      line-height: 1.5;
   }

   #sec3 .box-2 .example h4 small {
      font-size: 4vw;
   }

   #sec3 .box-2 .example ul {
      padding-top: 4vw;
   }

   #sec3 .box-2 .example ul li {
      text-indent: -10px;
      padding-left: 10px;
   }

   #sec3 .box-2 .example ul li+li {
      padding-top: 5px;
   }
}

@media only screen and (min-width: 768px) {
   #sec3 {
      padding: 123px 0 122px;
   }

   #sec3 .vertical-l {
      left: 50%;
      transform: translateX(-50%);
   }

   #sec3 .box-1 {
      display: flex;
      gap: 53px;
      position: relative;
      margin-bottom: 80px;
      padding: 48px 195px 196px 127px;
      z-index: 1;
   }

   #sec3 .box-1 h3 {
      width: 60px;
      height: 378px;
      order: 2;
   }

   #sec3 .box-1 .txt {
      width: 342px;
      height: 378px;
      order: 1;
      padding-top: 40px;
   }

   #sec3 .box-1 figure {
      width: 790px;
      position: absolute;
      bottom: 0;
      right: -140px;
      z-index: -1;
   }

   #sec3 .box-2 {
      position: relative;
   }

   #sec3 .box-2 figure {
      width: 540px;
      position: absolute;
   }

   #sec3 .box-2 figure:nth-child(2) {
      top: 0;
      left: -114px;
   }

   #sec3 .box-2 figure:nth-child(3) {
      top: 360px;
      left: -70px;
   }

   #sec3 .box-2 .col {
      width: 464px;
      margin-left: auto;
   }

   #sec3 .box-2 h3 {
      line-height: 40px;
   }

   #sec3 .box-2 .price {
      font-size: 18px;
      letter-spacing: 0.3em;
      line-height: 40px;
      padding: 23px 0 2px 4px;
   }

   #sec3 .box-2 .price span {
      line-height: inherit;
      letter-spacing: inherit;
   }

   #sec3 .box-2 .note {
      padding-bottom: 34px;
   }

   #sec3 .box-2 .example {
      width: 410px;
      background-color: rgba(0, 0, 0, 0.5);
      box-sizing: border-box;
      padding: 80px 62px 75px;
   }

   #sec3 .box-2 .example h4 {
      font-size: 20px;
      line-height: 30px;
   }

   #sec3 .box-2 .example h4 small {
      font-size: 16px;
   }

   #sec3 .box-2 .example ul {
      line-height: 24px;
      padding-top: 37px;
   }

   #sec3 .box-2 .example ul li {
      text-indent: -12px;
      padding-left: 12px;
   }

   #sec3 .box-2 .example ul li+li {
      padding-top: 11px;
   }
}

#sec4 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec4 .slick-slide {
      height: 65vw;
   }

   #sec4 .slick-dots {
      position: absolute;
      bottom: 4vw;
      right: 4vw;
   }

   #sec4 .slick-dots li {
      display: flex;
      align-items: flex-end;
   }
}

@media only screen and (min-width: 768px) {
   #sec4 .slick-slide {
      height: 650px;
   }

   #sec4 .slick-dots {
      position: absolute;
      bottom: 42px;
      right: 47px;
   }

   #sec4 .slick-dots li {
      display: flex;
      align-items: flex-end;
   }
}

#sec5 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec5 .slick-slide {
      height: 65vw;
   }

   #sec5 .slick-dots {
      position: absolute;
      bottom: 4vw;
      right: 4vw;
   }

   #sec5 .slick-dots li {
      display: flex;
      align-items: flex-end;
   }
}

@media only screen and (min-width: 768px) {
   #sec5 .slick-slide {
      height: 650px;
   }

   #sec5 .slick-dots {
      position: absolute;
      bottom: 42px;
      right: 47px;
   }

   #sec5 .slick-dots li {
      display: flex;
      align-items: flex-end;
   }
}

#sec6 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec6 {
      min-height: inherit;
      padding: 32vw 0;
      z-index: 1;
   }

   #sec6:before {
      content: '';
      border: 7vw solid rgba(0, 0, 0, 0.5);
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
   }

   #sec6 h2>span {
      display: inline-block;
      font-size: 4vw;
      border-bottom: 1px solid #fff;
      position: relative;
      padding: 0 4vw 4vw 0;
   }

   #sec6 h2>span:before {
      content: '';
      width: 4.8vw;
      height: 3.3vw;
      background: url("../img/course/sec6-arrow.png") no-repeat center bottom/100% auto;
      position: absolute;
      bottom: -1px;
      right: 0;
   }
}

@media only screen and (min-width: 768px) {
   #sec6 {
      background-image: url("../img/course/sec6-bg-img.jpg");
      padding: 310px 0 285px;
      min-height: inherit;
   }

   #sec6:before {
      content: '';
      border: 50px solid rgba(0, 0, 0, 0.5);
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
   }

   #sec6 h2 {
      padding: 0 37px;
   }

   #sec6 h2>span {
      display: inline-block;
      line-height: 55px;
      border-bottom: 1px solid #fff;
      position: relative;
      padding: 0 100px 40px 0;
      cursor: pointer;
      transition: opacity 0.3s;
   }

   #sec6 h2>span:before {
      content: '';
      width: 37px;
      height: 19px;
      background: url("../img/course/sec6-arrow.png") no-repeat center top/cover;
      position: absolute;
      bottom: -1px;
      right: 0;
   }

   #sec6 h2>span:hover {
      opacity: 0.7;
   }
}

#sec7 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec7 {
      padding: 20vw 0;
   }

   #sec7:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec7-deco.png") no-repeat center top/100% auto;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec7 h2 {
      font-size: 5.2vw;
   }

   #sec7 .txt {
      padding-top: 6vw;
   }

   #sec7 .photo {
      padding-top: 8vw;
   }

   #sec7 .photo .slick-dots {
      gap: 6vw;
      padding-top: 6vw;
   }

   #sec7 .photo .slick-dots li {
      width: 3vw;
      height: 3vw;
   }

   #sec7 .photo .slick-dots li button {
      height: 100%;
      border-radius: 50%;
   }

   #sec7 .photo .slick-dots li.slick-active button {
      background-color: #fff;
   }
}

@media only screen and (min-width: 768px) {
   #sec7 {
      padding: 213px 0 157px;
   }

   #sec7:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec7-deco.png") no-repeat center top;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec7 .txt {
      padding-top: 62px;
   }

   #sec7 .photo {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 20px;
      max-width: 1300px;
      margin: 0 auto;
      padding-top: 100px;
   }
}

#sec8 {
   position: relative;
}

@media only screen and (max-width: 767px) {
   #sec8 {
      background: #000;
      padding: 20vw 14vw;
   }

   #sec8:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec8-deco.png") no-repeat top left/100% auto;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec8 .wrap {
      padding: 0;
   }

   #sec8 .box-1 {
      padding: 6vw 0 12vw;
   }

   #sec8 .box-1 ul {
      font-size: 4vw;
      line-height: 1.5;
      padding-top: 10px;
   }

   #sec8 .box-1 ul li {
      position: relative;
      padding-left: 8vw;
   }

   #sec8 .box-1 ul li:before {
      content: '■';
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec8 .box-1 ul li+li {
      margin-top: 20px;
   }

   #sec8 .box-1 .col {
      padding-top: 8vw;
   }

   #sec8 .box-1 .col h3 {
      font-size: 4vw;
      line-height: 1.5;
      letter-spacing: 0.3em;
   }

   #sec8 .box-1 .col .note {
      padding: 2vw 0 4vw;
   }

   #sec8 .box-1 .col dl {
      display: flex;
      justify-content: space-between;
      border-top: 1px solid;
      border-bottom: 1px solid;
      padding: 10px 0;
   }

   #sec8 .box-1 .col dl+dl {
      border-top: 0;
   }

   #sec8 .box-1 .col .button {
      padding-top: 6vw;
   }

   #sec8 .box-1 .col .button a:after {
      content: '';
      width: 3.5vw;
      height: 3.5vw;
      background: url("../img/course/icon-plus.png") no-repeat center top/cover;
      position: absolute;
      top: 50%;
      right: 4vw;
      transform: translateY(-50%);
   }

   #sec8 .box-2 {
      position: relative;
      padding: 8vw 0 12vw;
   }

   #sec8 .box-2 .tel .fnt-shippori-mincho {
      font-weight: 400;
      font-size: 4.4vw;
      letter-spacing: 0.2em;
   }

   #sec8 .box-2 .tel .fnt-encode-sans-sc {
      font-weight: 300;
      font-size: 6.8vw;
      letter-spacing: 0.24em;
   }

   #sec8 .box-2 .tel .fnt-encode-sans-sc:before {
      content: 'TEL:';
      font-size: 5vw;
   }

   #sec8 .box-2 .tel small {
      display: inline-block;
      font-size: 3.5vw;
      line-height: 1.2;
   }

   #sec8 .box-2 .button {
      padding-top: 6vw;
   }

   #sec8 .cancel {
      padding-top: 12vw;
   }

   #sec8 .cancel h3 {
      font-size: 5.6vw;
   }

   #sec8 .cancel .txt {
      padding-top: 4vw;
   }
}

@media only screen and (min-width: 768px) {
   #sec8 {
      background: #000;
      padding: 155px 0 196px;
   }

   #sec8:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/course/sec8-deco.png") no-repeat top left;
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec8 h2 {
      padding-left: 70px;
   }

   #sec8 .box-1 {
      display: flex;
      justify-content: space-between;
      padding: 35px 40px 0 70px;
   }

   #sec8 .box-1 ul {
      width: 450px;
      font-size: 18px;
      padding-top: 10px;
   }

   #sec8 .box-1 ul li {
      position: relative;
      padding-left: 30px;
   }

   #sec8 .box-1 ul li:before {
      content: '■';
      position: absolute;
      top: 0;
      left: 0;
   }

   #sec8 .box-1 ul li+li {
      margin-top: 34px;
   }

   #sec8 .box-1 .col {
      width: 421px;
   }

   #sec8 .box-1 .col h3 {
      font-size: 18px;
      letter-spacing: 0.3em;
   }

   #sec8 .box-1 .col .note {
      padding: 3px 0 33px;
   }

   #sec8 .box-1 .col dl {
      display: flex;
      justify-content: space-between;
      border-top: 1px solid;
      border-bottom: 1px solid;
      padding: 7px 0 8px;
   }

   #sec8 .box-1 .col dl+dl {
      border-top: 0;
   }

   #sec8 .box-1 .col .button {
      padding-top: 38px;
   }

   #sec8 .box-1 .col .button a:after {
      content: '';
      width: 15px;
      height: 15px;
      background: url("../img/course/icon-plus.png") no-repeat center top/cover;
      position: absolute;
      top: 50%;
      right: 28px;
      transform: translateY(-50%);
   }

   #sec8 .box-2 {
      width: 680px;
      margin: 120px auto 0;
      padding: 0 0 45px;
      position: relative;
   }

   #sec8 .box-2 .tel {
      padding: 33px 0 35px;
      position: relative;
      line-height: 31px;
   }

   #sec8 .box-2 .tel .fnt-shippori-mincho {
      font-weight: 400;
      font-size: 20px;
      letter-spacing: 0.2em;
   }

   #sec8 .box-2 .tel .fnt-encode-sans-sc {
      font-weight: 300;
      font-size: 32px;
      letter-spacing: 0.24em;
   }

   #sec8 .box-2 .tel .fnt-encode-sans-sc:before {
      content: 'TEL:';
      font-size: 23px;
   }

   #sec8 .box-2 .tel small {
      font-size: inherit;
   }

   #sec8 .box-2 .button a {
      margin: 0 auto;
   }

   #sec8 .cancel {
      width: 552px;
      box-sizing: border-box;
      margin: 0 auto;
      padding-top: 77px;
   }

   #sec8 .cancel .txt {
      padding-top: 6px;
   }
}

@media only screen and (min-width: 1301px) {
   #sec8 h2 {
      padding-left: 0;
   }

   #sec8 .box-1 {
      padding: 35px 0 0;
   }

   #sec8 .box-1 ul {
      width: 500px;
      font-size: 20px;
   }
}

@media only screen and (max-width: 767px) {
   .popup-course .box {
      padding-top: 8vw;
   }

   .popup-course .box .item + .item {
      padding-top: 8vw;
   }
	.popup-course .box .col {
		margin-top: 8vw;
	}
   .popup-course .box h3 {
      font-size: 4vw;
      line-height: 1.2;
      letter-spacing: 0.15em;
      border-bottom: 1px solid #7b7b7b;
      padding-bottom: 12px;
   }

   .popup-course .box dl {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      line-height: 22px;
      letter-spacing: 0.15em;
      border-bottom: 1px solid #7b7b7b;
      padding: 12px 0;
   }

   .popup-course .box dl dt {
      flex: 1 0 0;
   }
}

@media only screen and (min-width: 768px) {
   .popup-course .box {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 35px;
      padding-top: 60px;
   }

   .popup-course .box .item+.item {
      padding-top: 60px;
   }

   .popup-course .box h3 {
      font-size: 17px;
      line-height: 22px;
      letter-spacing: 0.15em;
      border-bottom: 1px solid #7b7b7b;
      padding-bottom: 12px;
   }

   .popup-course .box dl {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: 15px;
      line-height: 22px;
      letter-spacing: 0.15em;
      border-bottom: 1px solid #7b7b7b;
      padding: 12px 0;
   }

   .popup-course .box dl dt {
      flex: 1 0 0;
   }
}