@charset "UTF-8";
@media only screen and (min-width: 768px) {
  main {
    overflow: inherit; } }
@media only screen and (min-width: 768px) {
  #key {
    background: url("../img/course/kv_img.jpg") no-repeat center/cover; }
    #key img {
      opacity: 0; } }

#sec1 {
  position: relative;
  z-index: 0;
  padding: 12vw 0 15vw;
  margin-bottom: 20vw; }
  #sec1:before {
    content: "";
    position: absolute;
    z-index: 0;
    background: url("../img/concept/sec2_bg.png");
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  #sec1 .wrap {
    z-index: 1; }
  #sec1 .sec1-img1 {
    margin-left: -5%; }
  #sec1 h2 {
    margin: 3vw 0 4vw; }
  #sec1 .sec1-img2 {
    margin: 5vw 0; }
    #sec1 .sec1-img2 p:nth-child(1) {
      width: 80%;
      margin: 0 0 3vw auto; }
    #sec1 .sec1-img2 p:nth-child(2) {
      width: 60%; }
  #sec1 dt {
    font-size: 4.5vw;
    letter-spacing: 0.2em;
    margin-bottom: 3vw; }
  @media only screen and (min-width: 768px) {
    #sec1 {
      padding: 62px 0 101px;
      margin-top: 55px;
      margin-bottom: 154px;
      overflow: hidden; }
      #sec1:before {
        left: calc(50% - 672px);
        width: 1345px;
        height: 100%; }
      #sec1 .sec1-img1 {
        margin-left: 0;
        position: absolute;
        top: 0;
        left: -250px;
        width: 906px; }
      #sec1 .sec1-1 {
        justify-content: flex-end;
        padding-top: 120px;
        position: relative;
        z-index: 1; }
      #sec1 h2 {
        order: 2;
        margin: 0 -21px 0 28px; }
      #sec1 .sec1-txt1 {
        height: 435px;
        margin-top: 3px; }
      #sec1 .sec1-img2 {
        margin: 42px -103px 0 0;
        width: 515px;
        order: 2; }
        #sec1 .sec1-img2 p:nth-child(1) {
          width: 515px;
          margin: 0 0 30px auto; }
        #sec1 .sec1-img2 p:nth-child(2) {
          width: 324px;
          margin-left: -88px; }
      #sec1 dl {
        width: 400px;
        margin: 271px 0 0 52px;
        line-height: 30px; }
      #sec1 dt {
        font-size: 21px;
        letter-spacing: 8.5px;
        line-height: 45px;
        margin-bottom: 31px; } }
  @media only screen and (min-width: 768px) and (max-width: 1200px) {
    #sec1 h2 {
      margin: 0 10px 0 18px; } }

.ttl-sub {
  text-align: center;
  line-height: 1.8; }
  .ttl-sub span {
    display: block;
    font-size: 156%;
    letter-spacing: 0.1em; }

.price {
  font-size: 4vw; }
  .price span {
    font-size: 95%; }
  @media only screen and (min-width: 768px) {
    .price {
      font-size: 20px; } }

#sec2 {
  margin-bottom: 15vw; }
  #sec2 h2 {
    text-align: center;
    text-transform: uppercase; }
  #sec2 .sec2-txt1 {
    text-align: center;
    margin: 5vw 0 6vw;
    letter-spacing: 0; }
  #sec2 .sec2-item {
    background: url("../img/course/sec2_bg.jpg") repeat-y top center/100% auto;
    position: relative;
    text-align: center;
    color: #fff;
    padding-top: 15vw; }
  #sec2 .sec2-info {
    position: absolute;
    top: 10vw;
    left: 0;
    width: 100%;
    z-index: 1; }
    #sec2 .sec2-info .ttl-en {
      letter-spacing: 0.25em;
      text-transform: none; }
    #sec2 .sec2-info h3 {
      margin: 3vw 0; }
  #sec2 .price {
    margin-bottom: 2vw; }
  #sec2 .sec2-box {
    background: url("../img/concept/sec2_bg.png");
    box-sizing: border-box;
    margin-top: 9vw;
    text-align: center;
    padding: 11vw 7% 9vw; }
    #sec2 .sec2-box .price {
      margin-top: 3vw; }
    #sec2 .sec2-box dl {
      border-top: 1px solid #fff;
      border-bottom: 1px solid #fff;
      padding: 4vw 0 3vw;
      margin-bottom: 4vw; }
  @media only screen and (min-width: 768px) {
    #sec2 {
      margin-bottom: 125px; }
      #sec2 h2 {
        text-align: center;
        text-transform: uppercase; }
      #sec2 .sec2-right {
        order: 2;
        width: 50%; }
        #sec2 .sec2-right img {
          width: 100%; }
      #sec2 .sec2-left {
        width: 50%; }
        #sec2 .sec2-left img {
          width: 100%; }
      #sec2 .sec2-txt1 {
        text-align: center;
        margin: 39px 0 74px;
        letter-spacing: 1px; }
      #sec2 .sec2-item {
        padding-top: 0;
        position: sticky;
        top: 0; }
      #sec2 .sec2-info {
        top: 110px; }
        #sec2 .sec2-info h3 {
          margin: 26px 0 10px; }
      #sec2 .price {
        margin-bottom: 10px; }
      #sec2 .wrap .dis-flex-pc {
        margin: 143px auto 0;
        width: 945px; }
      #sec2 .sec2-box {
        margin-top: 0;
        line-height: 30px;
        padding: 66px 35px;
        width: 300px; }
        #sec2 .sec2-box .price {
          margin-top: 17px; }
        #sec2 .sec2-box dl {
          padding: 37px 0 36px;
          margin-bottom: 27px; }
        #sec2 .sec2-box .ttl-sub span {
          margin-bottom: 6px; } }
  @media only screen and (min-width: 768px) and (max-width: 1350px) {
    #sec2 .sec2-item {
      padding-top: 7vw; }
    #sec2 .sec2-info {
      top: 6vw; } }

.menu-col {
  border: 1px solid #fff;
  box-sizing: border-box;
  padding: 10vw 7%; }
  .menu-col dl {
    border-bottom: 1px solid #fff;
    padding-bottom: 1vw;
    margin-bottom: 5vw; }
    .menu-col dl dt {
      justify-content: center;
      align-items: center; }
      .menu-col dl dt span {
        line-height: 1; }
  .menu-col .price {
    text-align: center;
    line-height: 3; }
  .menu-col ul li {
    position: relative;
    padding-left: 19px; }
    .menu-col ul li:before {
      content: "・";
      position: absolute;
      left: 0;
      top: 0; }
  @media only screen and (min-width: 768px) {
    .menu-col {
      padding: 53px 35px 60px; }
      .menu-col dl {
        padding-bottom: 5px;
        margin-bottom: 35px; }
      .menu-col .price {
        text-align: center;
        line-height: 3; }
      .menu-col ul {
        line-height: 30px; } }

.sec-txt {
  letter-spacing: 0;
  text-align: center;
  margin: 0 -10px; }
  @media only screen and (min-width: 768px) {
    .sec-txt {
      letter-spacing: 1px;
      margin: 80px 0 65px; } }

#sec3 {
  margin-bottom: 13vw; }
  #sec3 h2 {
    text-align: center;
    margin-bottom: 5vw; }
  #sec3 .menu-col {
    margin-bottom: 5vw; }
  @media only screen and (min-width: 768px) {
    #sec3 {
      margin-bottom: 163px; }
      #sec3 h2 {
        margin-bottom: 48px; }
      #sec3 .dis-flex-pc {
        margin: 0 -45px; }
      #sec3 .menu-col {
        width: calc((100% - 56px)/3);
        margin-bottom: 47px; } }
  @media only screen and (min-width: 768px) and (max-width: 1150px) {
    #sec3 .dis-flex-pc {
      margin: 0 20px; }
    #sec3 .menu-col {
      width: calc((100% - 40px)/3); } }

#sec4 {
  padding-bottom: 15vw; }
  #sec4 .sec4-ttl {
    position: relative;
    color: #fff;
    margin-bottom: 5vw; }
    #sec4 .sec4-ttl:before {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 10vw;
      background: rgba(255, 255, 255, 0.7);
      z-index: 1; }
    #sec4 .sec4-ttl p {
      width: 100%;
      height: 60vw; }
      #sec4 .sec4-ttl p img {
        width: 100%;
        height: 100%;
        object-fit: cover; }
  #sec4 h2 {
    position: absolute;
    left: 0;
    width: 100%;
    text-align: center;
    bottom: 17vw; }
  #sec4 .menu-col {
    border-color: #000;
    margin-bottom: 5vw; }
    #sec4 .menu-col dl {
      border-color: #000; }
  #sec4 .sec4-txt {
    margin: 10vw 0;
    text-align: center;
    font-size: 4vw;
    letter-spacing: 0;
    line-height: 2.5; }
    #sec4 .sec4-txt span {
      display: inline-block;
      position: relative; }
      #sec4 .sec4-txt span:before {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 1px;
        background: rgba(0, 0, 0, 0.3); }
  #sec4 .btn-link {
    height: 53px; }
    #sec4 .btn-link:after {
      background: url("../img/course/plus.jpg") no-repeat center/100% auto;
      width: 9px;
      height: 9px;
      bottom: calc(50% - 4px);
      right: 5%; }
  #sec4 .sec4-txt2 {
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
    margin-top: 5vw; }
  @media only screen and (max-width: 767px) {
    #sec4 .menu-col > div {
      height: auto !important; } }
  @media only screen and (min-width: 768px) {
    #sec4 {
      padding-bottom: 150px; }
      #sec4 .sec4-ttl {
        margin-bottom: 79px; }
        #sec4 .sec4-ttl:before {
          height: 90px; }
        #sec4 .sec4-ttl p {
          height: 702px; }
      #sec4 h2 {
        bottom: 242px; }
      #sec4 .sec4-menu {
        margin: 0 52px; }
      #sec4 .sec4-col {
        width: 434px; }
      #sec4 .menu-col {
        margin-bottom: 29px;
        padding: 53px 50px 20px; }
        #sec4 .menu-col dl {
          margin-bottom: 17px; }
      #sec4 .sec-txt {
        margin-top: 38px; }
      #sec4 .sec4-txt {
        margin: 94px 0 92px;
        font-size: 20px;
        letter-spacing: 1.5px;
        line-height: 3; }
        #sec4 .sec4-txt p {
          margin-bottom: 6px; }
      #sec4 .btn-link {
        width: 326px; }
        #sec4 .btn-link:after {
          width: 13px;
          height: 13px;
          bottom: calc(50% - 4px);
          right: 40px; }
        #sec4 .btn-link span {
          letter-spacing: 2.5px;
          padding-right: 27px; }
      #sec4 .sec4-txt2 {
        font-size: 14px;
        line-height: 20px;
        margin-top: 37px; } }

#sec5 {
  padding-top: 10vw;
  padding-bottom: 20vw; }
  #sec5 .sec5-img {
    margin-right: -5%; }
  #sec5 .ttl-line {
    margin: 3vw 0 5vw;
    text-align: left;
    width: 60vw; }
    #sec5 .ttl-line p span {
      padding: 0;
      min-width: inherit; }
      #sec5 .ttl-line p span:before {
        background: rgba(255, 255, 255, 0.4); }
    #sec5 .ttl-line p:nth-child(2) span {
      padding-right: 7vw; }
    #sec5 .ttl-line .ttl-en {
      bottom: 2px; }
  #sec5 .btn-link {
    margin-top: 5vw; }
  #sec5 .sec5-deco1, #sec5 .sec5-deco2 {
    position: absolute;
    z-index: -1;
    width: 50%; }
  #sec5 .sec5-deco1 {
    left: -3%;
    bottom: -36vw; }
  #sec5 .sec5-deco2 {
    right: -21%;
    top: 30vw; }
  @media only screen and (min-width: 768px) {
    #sec5 {
      padding-top: 60px;
      padding-bottom: 130px;
      overflow: hidden; }
      #sec5 .sec5-img {
        width: 1316px;
        margin: 0 -250px 0 -66px; }
      #sec5 .sec5-info {
        position: relative;
        z-index: 1;
        margin: -343px 0 0 60px;
        width: 500px; }
      #sec5 .ttl-line {
        margin: 0 0 43px;
        width: auto;
        display: inline-block; }
        #sec5 .ttl-line p:nth-child(1) span {
          padding-right: 10px; }
        #sec5 .ttl-line p:nth-child(2) span {
          padding-right: 40px; }
        #sec5 .ttl-line .ttl-en {
          padding-right: 0;
          right: -12px; }
      #sec5 .btn-link {
        margin: 41px 0 0 3px; }
      #sec5 .sec5-deco1 {
        width: 606px;
        left: -500px;
        bottom: -344px; }
      #sec5 .sec5-deco2 {
        width: 563px;
        right: -323px;
        top: auto;
        bottom: -45px; } }
