.mv {
  width: 100%;
  height: 60.61493411420204vw;
  max-height: 82.8rem;
  overflow: hidden;
  position: relative; }
  @media (max-width: 768px) {
    .mv {
      height: 131.20000000000002vw;
      max-height: none; } }
  .mv .slider {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    margin-bottom: 0; }
    .mv .slider img {
      width: 100%;
      height: 60.61493411420204vw;
      object-fit: cover;
      object-position: 50% 50%; }
      @media (max-width: 768px) {
        .mv .slider img {
          height: 131.20000000000002vw; } }
  .mv .dots-wrap {
    position: absolute;
    bottom: 4.0rem;
    display: flex;
    justify-content: center;
    right: 4.758418740849195vw;
    list-style: none;
    z-index: 9; }
    @media (max-width: 768px) {
      .mv .dots-wrap {
        display: none !important; } }
    .mv .dots-wrap li {
      width: 1.610541727672035vw;
      height: 1.610541727672035vw;
      margin: 0 0.36603221083455345vw;
      background: #fff;
      border-radius: 50%;
      cursor: pointer;
      border: 0.21961932650073207vw solid #fff; }
      .mv .dots-wrap li:hover {
        background: #20304D; }
      .mv .dots-wrap li.slick-active {
        background: #20304D; }
      .mv .dots-wrap li button {
        display: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        outline: none;
        padding: 0;
        border: none;
        background-color: transparent; }
  .mv .bg {
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#000000+51,000000+100&0+50,0.6+100 */
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.01) 51%, rgba(0, 0, 0, 0.6) 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    bottom: 0; }
  .mv .ttl {
    font-family: "Spectral", serif;
    font-size: 5.856515373352855vw;
    font-weight: 200;
    position: absolute;
    left: 3.6603221083455346vw;
    bottom: 3.0rem; }
    @media (max-width: 768px) {
      .mv .ttl {
        font-size: 8vw;
        left: 0;
        bottom: 4vw;
        width: 100%;
        text-align: center; } }

.concept {
  padding: 6.5rem 0 10.0rem; }
  @media (max-width: 768px) {
    .concept {
      padding: 8vw 0 26.666666666666668vw; } }
  .concept .ttl {
    text-align: center;
    font-size: 5.0rem;
    line-height: 1.72;
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    margin: 0 0 7.5rem; }
    @media (max-width: 768px) {
      .concept .ttl {
        font-size: 6.666666666666667vw;
        margin-bottom: 8vw; } }
  .concept .txt {
    font-size: 1.3177159590043925vw;
    max-width: 90.0rem;
    line-height: 2.1;
    margin: 0 auto 8.3rem; }
    @media (max-width: 768px) {
      .concept .txt {
        font-size: 3.733333333333334vw;
        left: 1.75;
        padding: 0 5.333333333333334vw;
        margin-bottom: 10.666666666666668vw; } }
  .concept .youtube {
    display: flex;
    justify-content: center;
    align-items: center; }
    .concept .youtube iframe {
      width: 100%;
      max-width: 63.3rem;
      aspect-ratio: 16 / 9; }
      @media (max-width: 768px) {
        .concept .youtube iframe {
          width: 85%; } }

.course {
  margin-bottom: 20.0rem; }
  @media (max-width: 768px) {
    .course {
      margin-bottom: 26.666666666666668vw; } }
  .course-list {
    display: flex;
    justify-content: space-between; }
    @media (max-width: 768px) {
      .course-list {
        display: block; } }
    .course-list__item {
      width: 32.2%; }
      @media (max-width: 768px) {
        .course-list__item {
          width: 100%; } }
      .course-list__item .photo-price {
        position: relative; }
        .course-list__item .photo-price .photo img {
          width: 100%; }
        .course-list__item .photo-price .price {
          position: absolute;
          left: 0;
          bottom: 0;
          width: 100%;
          text-align: center;
          background-color: rgba(0, 0, 0, 0.4);
          font-size: 2.5rem;
          font-weight: 500;
          padding: 2.2rem; }
          @media (max-width: 768px) {
            .course-list__item .photo-price .price {
              font-size: 4.8vw;
              padding: 4vw; } }
      .course-list__item .txt-area {
        padding-top: 2.5rem; }
        @media (max-width: 768px) {
          .course-list__item .txt-area {
            padding-top: 5.333333333333334vw; } }
        .course-list__item .txt-area .name {
          text-align: center;
          font-size: 2.5rem;
          font-weight: 600; }
          @media (max-width: 768px) {
            .course-list__item .txt-area .name {
              font-size: 5.333333333333334vw; } }
        .course-list__item .txt-area .txt {
          line-height: 1.875;
          margin-bottom: 2.5rem; }
          @media (max-width: 768px) {
            .course-list__item .txt-area .txt {
              margin-bottom: 8vw; } }
        .course-list__item .txt-area .button {
          text-align: center; }
          .course-list__item .txt-area .button a {
            background-color: #20304D;
            border: 1px solid #fff;
            padding: .5rem 3.5rem .5rem 1.5rem;
            letter-spacing: .2em;
            color: #fff;
            text-decoration: none;
            border-radius: 5.0rem;
            font-weight: 500;
            position: relative; }
            @media (max-width: 768px) {
              .course-list__item .txt-area .button a {
                padding: 2.666666666666667vw 9.333333333333334vw 2.666666666666667vw 6.666666666666667vw; } }
            .course-list__item .txt-area .button a::after {
              content: "";
              position: absolute;
              display: inline-block;
              width: 0;
              height: 0;
              border-style: solid;
              border-width: 5.5px 0px 5.5px 12px;
              border-color: transparent transparent transparent #ffffff;
              top: 50%;
              transform: translateY(-50%);
              right: 1.3rem; }
            .course-list__item .txt-area .button a:hover {
              opacity: .6; }
      @media (max-width: 768px) {
        .course-list__item + .course-list__item {
          margin-top: 13.333333333333334vw; } }

.partner {
  margin-bottom: 20.0rem; }
  @media (max-width: 768px) {
    .partner {
      margin-bottom: 26.666666666666668vw; } }
  .partner-list {
    display: flex;
    justify-content: space-between; }
    @media (max-width: 768px) {
      .partner-list {
        display: block; } }
    .partner-list__item {
      width: 30.8%; }
      @media (max-width: 768px) {
        .partner-list__item {
          width: 100%; } }
      .partner-list__item .photo {
        position: relative; }
        .partner-list__item .photo .photo img {
          width: 100%; }
      .partner-list__item .txt-area {
        padding-top: 2.5rem; }
        .partner-list__item .txt-area .name {
          text-align: center;
          font-size: 2.5rem;
          font-weight: 600;
          margin-bottom: 2.5rem; }
          @media (max-width: 768px) {
            .partner-list__item .txt-area .name {
              font-size: 5.333333333333334vw; } }
        .partner-list__item .txt-area .info {
          font-size: 1.2rem;
          line-height: 1.58;
          margin-bottom: 2.0rem; }
          @media (max-width: 768px) {
            .partner-list__item .txt-area .info {
              margin-bottom: 4vw;
              font-size: 3.2vw; } }
          .partner-list__item .txt-area .info table {
            width: 100%; }
            .partner-list__item .txt-area .info table th {
              width: 17%;
              text-align: left;
              font-weight: normal;
              padding: .5rem;
              vertical-align: top; }
              @media (max-width: 768px) {
                .partner-list__item .txt-area .info table th {
                  width: 20%; } }
            .partner-list__item .txt-area .info table td {
              width: 83%;
              padding: .5rem; }
              @media (max-width: 768px) {
                .partner-list__item .txt-area .info table td {
                  width: 80%; } }
              .partner-list__item .txt-area .info table td a {
                color: #fff; }
              .partner-list__item .txt-area .info table td .add {
                font-size: 1.0rem; }
                @media (max-width: 768px) {
                  .partner-list__item .txt-area .info table td .add {
                    font-size: 2.666666666666667vw; } }
        .partner-list__item .txt-area .point {
          font-size: 1.2rem;
          line-height: 1.58; }
          @media (max-width: 768px) {
            .partner-list__item .txt-area .point {
              font-size: 3.2vw; } }
          .partner-list__item .txt-area .point a {
            color: #fff; }
      @media (max-width: 768px) {
        .partner-list__item + .partner-list__item {
          margin-top: 13.333333333333334vw; } }

.instagram {
  margin-bottom: 13.0rem; }
  @media (max-width: 768px) {
    .instagram {
      margin-bottom: 26.666666666666668vw; } }
  .instagram .link {
    text-align: center;
    margin-bottom: 3.5rem; }
    @media (max-width: 768px) {
      .instagram .link {
        margin-bottom: 6.666666666666667vw; }
        .instagram .link img {
          width: 15%; } }
  .instagram .txt {
    text-align: center;
    margin-bottom: 6.0rem; }
    @media (max-width: 768px) {
      .instagram .txt {
        line-height: 1.5;
        margin-bottom: 8vw; } }
  .instagram .photo-list {
    list-style: none;
    margin: 0 0 8.0rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap; }
    @media (max-width: 768px) {
      .instagram .photo-list {
        margin-bottom: 10.666666666666668vw; } }
    .instagram .photo-list li {
      width: 24%;
      padding: 0;
      margin-right: 1.333%;
      margin-bottom: 1.5rem;
      line-height: 0; }
      @media (max-width: 768px) {
        .instagram .photo-list li {
          width: 48%;
          margin-right: 4%; } }
      .instagram .photo-list li:nth-child(4n) {
        margin-right: 0; }
      @media (max-width: 768px) {
        .instagram .photo-list li:nth-child(2n) {
          margin-right: 0; } }
  .instagram .button {
    text-align: center; }
    .instagram .button a {
      background-color: #20304D;
      border: 1px solid #fff;
      padding: .5rem 5.5rem;
      letter-spacing: .2em;
      color: #fff;
      text-decoration: none;
      border-radius: 5.0rem;
      font-weight: 500;
      position: relative; }
      @media (max-width: 768px) {
        .instagram .button a {
          padding: 2.666666666666667vw 9.333333333333334vw; } }
      .instagram .button a:hover {
        opacity: .6; }

.information {
  margin-bottom: 12.5rem; }
  @media (max-width: 768px) {
    .information {
      margin-bottom: 13.333333333333334vw; } }
  .information .map {
    margin-bottom: 8.5rem; }
    @media (max-width: 768px) {
      .information .map {
        margin-bottom: 8vw; } }
    .information .map iframe {
      width: 100%;
      height: 59.0rem;
      border: none; }
      @media (max-width: 768px) {
        .information .map iframe {
          height: 100vw; } }
  .information .logo-address {
    display: flex;
    justify-content: center; }
    @media (max-width: 768px) {
      .information .logo-address {
        flex-flow: column;
        align-items: center;
        padding: 0 5.333333333333334vw; } }
    .information .logo-address .logo {
      width: 20.27818448023426vw;
      margin-right: 12.079062957540264vw;
      font-size: 2.8rem;
      font-family: "Spectral", serif;
      font-weight: 200;
      text-align: center; }
      @media (max-width: 768px) {
        .information .logo-address .logo {
          width: 75%;
          margin: 0 auto;
          font-size: 6.666666666666667vw;
          margin-bottom: 13.333333333333334vw; } }
      .information .logo-address .logo img {
        width: 100%;
        display: block;
        margin-bottom: 2.0rem; }
    .information .logo-address .address {
      line-height: 1.875; }
      .information .logo-address .address address {
        font-style: normal; }
      .information .logo-address .address table {
        width: 100%; }
        @media (max-width: 768px) {
          .information .logo-address .address table {
            width: auto; } }
        .information .logo-address .address table th {
          width: 5em;
          font-weight: normal;
          text-align: left; }
        .information .logo-address .address table td {
          width: calc(100% - 5em); }
          @media (max-width: 768px) {
            .information .logo-address .address table td {
              width: 10em; } }
