@charset "UTF-8";
/* -----------------------------------------------
* home Module
* homeページ用
-------------------------------------------------- */
/* ベース
-----------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Viga&family=Zen+Maru+Gothic:wght@400;500;700&family=Noto+Sans+JP:wght@400;500;700&display=swap");
:root {
  --cl-white: #fff;
  --cl-txt: #3c3c3c;
  --cl-theme01: #2cbdec;
  --cl-theme01-bg: #85d9f4;
  --cl-theme01-bg02: #2ca2ec;
  --cl-theme01-txt: #1088ff;
  --cl-theme02: #3bbcb3;
  --cl-theme02-bg: #3bbcb3;
  --cl-theme02-bg02: #00a1b3;
  --cl-theme03: #99a0ff;
  --cl-theme03-bg: #a2a8ff;
  --cl-theme03-bg02: #717bff;
  --cl-theme04: #6285ff;
  --ft-helvetica: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --ft-noto: "Noto Sans JP", sans-serif;
}

/* -----------------------------------------------
* Plugins エントリーポイント
-------------------------------------------------- */
/* -----------------------------------------------
* Modules エントリーポイント
-------------------------------------------------- */
.Nav__wrap {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.Navbtn--box {
  margin: 0 auto 0 0;
}

.NavBtn {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: 6px solid #ff8600;
  background-color: #ffb05b;
  width: 84px;
  height: 100%;
  cursor: pointer;
  -webkit-transition: 0.4s ease;
  transition: 0.4s ease;
}
.NavBtn_line {
  display: block;
  position: relative;
  width: 26px;
  height: 3px;
  border-radius: 3px;
  background: #fff;
  -webkit-transition: background 0.3s, -webkit-transform 0.3s;
  transition: background 0.3s, -webkit-transform 0.3s;
  transition: background 0.3s, transform 0.3s;
  transition: background 0.3s, transform 0.3s, -webkit-transform 0.3s;
}
.NavBtn_line::before, .NavBtn_line::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 3px;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
.NavBtn_line::before {
  top: -9px;
}
.NavBtn_line::after {
  bottom: -9px;
}
.NavBtn.is-open {
  background: #a64d00;
}
.NavBtn.is-open .NavBtn_line {
  background: transParent;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.NavBtn.is-open .NavBtn_line::before {
  -webkit-transform: translateY(9px) rotate(35deg);
          transform: translateY(9px) rotate(35deg);
}
.NavBtn.is-open .NavBtn_line::after {
  -webkit-transform: translateY(-9px) rotate(-35deg);
          transform: translateY(-9px) rotate(-35deg);
}

html.is-fixed {
  position: fixed;
  z-index: -1;
  width: 100%;
  height: 100%;
}

.nav {
  --headerH: 80px;
}
.nav {
  background: rgba(25, 25, 25, 0.5);
  opacity: 0;
  pointer-events: none;
  position: fixed;
  top: var(--headerH);
  left: 0;
  width: 100%;
  height: calc(var(--vh) * 100 - var(--headerH));
  -webkit-transition: 0.4s;
  transition: 0.4s;
  z-index: 100;
}
.nav.is-open {
  opacity: 1;
  pointer-events: auto;
}
.nav .inner {
  width: 100%;
  height: 100%;
  overflow-y: auto;
}
.nav .list {
  background: -webkit-gradient(linear, left top, left bottom, from(#5eabcd), to(#8394ff));
  background: linear-gradient(#5eabcd, #8394ff);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 45px;
  text-align: center;
  padding: 40px;
  min-height: 100%;
}
.nav .list li:first-child a::before, .nav .list li:first-child a::after {
  display: none;
}
.nav .list a {
  color: var(--cl-white);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 5px;
  line-height: 1;
  padding-bottom: 20px;
  position: relative;
  -webkit-transition: 0.4s color;
  transition: 0.4s color;
  width: 395px;
}
.nav .list a::before, .nav .list a::after {
  content: "";
  background: currentColor;
  -webkit-mask: no-repeat center/contain;
          mask: no-repeat center/contain;
  position: absolute;
  bottom: 0;
  width: 37px;
  height: 47px;
}
.nav .list a::before {
  -webkit-mask-image: url(../images/point-ttl-left.svg);
          mask-image: url(../images/point-ttl-left.svg);
  left: 0;
}
.nav .list a::after {
  -webkit-mask-image: url(../images/point-ttl-right.svg);
          mask-image: url(../images/point-ttl-right.svg);
  right: 0;
}
.nav .list .en {
  font-family: var(--ft-helvetica);
  font-size: 36px;
  font-weight: 300;
  letter-spacing: 0.25em;
}
.nav .list .ttl {
  font-size: 25px;
  font-weight: 500;
  margin-right: -0.8em;
}

.mfp-movie .mfp-container {
  padding: 40px 0 80px;
}
.mfp-movie .mfp-content {
  background: transparent;
  border-radius: 0;
  height: 100%;
  max-height: calc(100vh - 80px);
}
.mfp-movie .mfp-iframe-scaler {
  width: auto;
  height: auto;
  overflow: hidden;
  padding-top: 0;
}
.mfp-movie .mfp-iframe-scaler iframe {
  margin: auto;
  bottom: 0;
  right: 0;
  width: auto;
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: 9/16;
}
.mfp-movie .mfp-arrow {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  margin: auto;
  top: auto;
  bottom: 0;
  left: 0;
  right: 0;
  height: 80px;
}
.mfp-movie .mfp-arrow::before, .mfp-movie .mfp-arrow::after {
  position: static;
  margin: 0;
  width: auto;
  height: auto;
}
.mfp-movie .mfp-arrow::before {
  border: none;
  color: var(--cl-white);
  letter-spacing: 0.13em;
}
.mfp-movie .mfp-arrow-left {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: row-reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  left: -200px;
}
.mfp-movie .mfp-arrow-left::before {
  content: "PREV";
}
.mfp-movie .mfp-arrow-right {
  right: -200px;
}
.mfp-movie .mfp-arrow-right::before {
  content: "NEXT";
}
.mfp-movie .mfp-close-movie {
  position: absolute;
  top: 0;
  right: max(50% - 270px, 5px);
  width: 40px;
  height: 40px;
  font-size: 0;
}

.mfp-movie.mfp-bg {
  opacity: 0;
  -webkit-transition: all 0.15s ease-out;
  transition: all 0.15s ease-out;
}
.mfp-movie.mfp-bg.mfp-ready {
  opacity: 1;
}
.mfp-movie.mfp-bg.mfp-removing {
  opacity: 0;
}
.mfp-movie.mfp-wrap .mfp-content {
  opacity: 0;
  -webkit-transition: all 0.15s ease-out;
  transition: all 0.15s ease-out;
}
.mfp-movie.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
}
.mfp-movie.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0;
}

.mfp-zoom-img .mfp-container {
  padding: inherit;
}
.mfp-zoom-img .mfp-content {
  background: none;
  border-radius: 0;
  width: inherit;
}
.mfp-zoom-img .mfp-figure:after {
  content: none;
}
.mfp-zoom-img .mfp-img {
  width: 100%;
  max-width: 1020px;
}
.mfp-zoom-img .mfp-close {
  top: -12px;
  right: max(50% - 560px, 6px);
  width: 44px;
  font-size: 0;
}

/* -----------------------------------------------
* Page エントリーポイント
-------------------------------------------------- */
main {
  color: var(--cl-txt);
  font-weight: 500;
  container-type: inline-size;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
}

.inner-block {
  max-width: 1104px;
  margin: 0 auto;
  padding-inline: 40px;
}

.ib {
  display: inline-block;
}

/* コンテンツ
-----------------------------*/
.kv-section {
  overflow: hidden;
  position: relative;
}
.kv-section .img-wrap {
  background: url(../images/kv-img@2x.jpg.webp) no-repeat center center/cover;
  height: 914px;
  position: relative;
}
.kv-section .slider {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: absolute;
  top: 530px;
}
.kv-section .slider .slide {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.kv-section .slider .slide:nth-child(1) {
  -webkit-animation: loop1 120s linear infinite;
          animation: loop1 120s linear infinite;
}
.kv-section .slider .slide:nth-child(2) {
  -webkit-animation: loop2 120s -60s linear infinite;
          animation: loop2 120s -60s linear infinite;
}
.kv-section .slider .slide img {
  max-width: initial;
  width: min(2130px, 568vw);
}
@-webkit-keyframes loop1 {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@keyframes loop1 {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@-webkit-keyframes loop2 {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-200%);
            transform: translateX(-200%);
  }
}
@keyframes loop2 {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-200%);
            transform: translateX(-200%);
  }
}
.kv-section .ttl {
  background-image: linear-gradient(120deg, rgb(236, 137, 255), rgb(171, 176, 255) 60%, rgb(127, 202, 215) 75%, rgb(112, 209, 205));
  border-radius: 0 500px 500px 0;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 27px;
  position: absolute;
  top: 0;
  left: 0;
  color: var(--cl-white);
  font-weight: 500;
  line-height: 1;
  padding: 53px 110px 54px 91px;
}
.kv-section .ttl .main {
  font-size: 56px;
}
.kv-section .ttl .sub {
  font-size: 32px;
}
.kv-section .txt {
  font-family: var(--ft-noto);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8333333333;
  letter-spacing: 0.13em;
  text-align: center;
}

.point-section {
  --bg-start: 497px;
  --bg-end: 100px;
}
.point-section {
  background: linear-gradient(var(--cl-white) calc(var(--bg-start) - 0.1px), var(--theme-bg) var(--bg-start), var(--theme-bg) calc(100% - var(--bg-end) - 0.1px), var(--cl-white) var(--bg-end));
  position: relative;
  overflow-x: hidden;
}
.point-section .point-ttl {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 0;
  margin: 0 auto 12px;
  padding-top: 99px;
  position: relative;
  text-align: center;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
.point-section .point-ttl .num {
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
  text-align: center;
  width: 100%;
  height: 87px;
}
.point-section .point-ttl::before, .point-section .point-ttl::after {
  content: "";
  background: var(--theme);
  -webkit-mask: no-repeat center/contain;
          mask: no-repeat center/contain;
  display: block;
  width: 75px;
  height: 94px;
}
.point-section .point-ttl::before {
  -webkit-mask-image: url(../images/point-ttl-left.svg);
          mask-image: url(../images/point-ttl-left.svg);
}
.point-section .point-ttl::after {
  -webkit-mask-image: url(../images/point-ttl-right.svg);
          mask-image: url(../images/point-ttl-right.svg);
}
.point-section .point-ttl .inn {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 6px;
  padding-bottom: 25px;
}
.point-section .point-ttl .main {
  font-size: 56px;
  letter-spacing: -0.05em;
  margin-right: -0.8em;
}
.point-section .point-ttl .sub {
  font-family: var(--ft-noto);
  font-size: 20px;
  letter-spacing: 0.13em;
}
.point-section .main-img {
  position: relative;
  z-index: 3;
}
.point-section .main-img img {
  border-radius: 50px;
}
.point-section .main-txt {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 50px;
  position: relative;
  padding: 125px 0 112px 224px;
  margin: -65px 0 -75px 106px;
  text-align: justify;
  z-index: 2;
}
.point-section .main-txt::after {
  content: "";
  background: var(--cl-white);
  border-radius: 1000px 0 0 1000px;
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% + 100vw);
  height: 100%;
  z-index: -1;
}
.point-section .main-txt .num {
  width: 83px;
  height: 126px;
}
.point-section .main-txt .ttl {
  font-size: 36px;
  line-height: 1.4444444444;
  letter-spacing: -0.05em;
}
.point-section .main-txt .txt {
  font-family: var(--ft-noto);
  font-size: 18px;
  line-height: 1.8333333333;
  letter-spacing: 0.13em;
  margin: 20px 0 0 10px;
}
.point-section .movie-list {
  margin-top: 173px;
  position: relative;
}
.point-section .movie-list .head {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: var(--cl-white);
  font-family: var(--ft-helvetica);
  font-size: 161px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0;
  margin-bottom: -31px;
  text-align: center;
  white-space: nowrap;
}
.point-section .movie-list .movie-card {
  background: rgba(0, 0, 0, 0.33);
  border-radius: 50px;
  display: block;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.point-section .movie-list .movie-card::after {
  content: "";
  border-radius: 50px;
  border: 6px solid var(--cl-white);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  -webkit-transition: 0.4s background-color;
  transition: 0.4s background-color;
}
.point-section .movie-list .movie-card .ttl {
  color: var(--cl-white);
  font-size: 38px;
  letter-spacing: 0.15em;
  line-height: 1.5;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding-top: 90px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.point-section .movie-list .movie-card .ttl::after {
  content: "";
  background: url(../images/ico-play.svg) no-repeat center/contain;
  position: absolute;
  margin: auto;
  bottom: 54px;
  left: 0;
  right: 0;
  width: 83px;
  height: 83px;
}
.point-section .movie-list .list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 30px;
}
.point-section .movie-list .list li {
  width: 320px;
}
.point-section .movie-list .list .txt {
  background: rgba(255, 255, 255, 0.25);
  border-radius: 100%;
  color: var(--cl-txt);
  font-family: var(--ft-noto);
  font-size: 18px;
  line-height: 1.7777777778;
  letter-spacing: 0.13em;
  text-align: justify;
  margin-top: -42px;
  padding: 102px 38px 0;
  aspect-ratio: 1/1;
}
.point-section .detail-box {
  color: var(--cl-white);
  position: relative;
  z-index: 2;
}
.point-section .detail-box::after {
  content: "";
  background: var(--theme-bg02);
  border-radius: 0 1000px 1000px 0;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  left: calc(50% - 50cqw);
  width: 100vw;
  width: 100cqw;
  z-index: -1;
}
.point-section .detail-box .box {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 40px;
}
.point-section .detail-box .ico {
  border-radius: 100px;
  background: var(--cl-white);
  color: var(--theme-bg02);
  font-family: var(--ft-noto);
  font-size: 19px;
  line-height: 1;
  margin-bottom: 11px;
  padding: 10px 27px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.point-section .detail-box .ttl {
  font-size: 36px;
  line-height: 1.4444444444;
  letter-spacing: 0.05em;
  margin-bottom: 19px;
}
.point-section .detail-box .txt {
  font-family: var(--ft-noto);
  font-size: 18px;
  line-height: 1.7777777778;
  letter-spacing: 0.18em;
  text-align: justify;
}
.point-section .detail-box .img img {
  border-radius: 20px;
  display: block;
}

.interview-box {
  background: -webkit-gradient(linear, left top, right top, from(#f2e3ff), to(#d9f1f2));
  background: linear-gradient(to right, #f2e3ff 0%, #d9f1f2 100%);
  margin-top: 170px;
  position: relative;
  z-index: 1;
}
.interview-box .inner-block {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 31px;
}
.interview-box .img {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-block: -66px -60px;
  margin-left: calc(50% - 50vw);
  width: 83.984375%;
}
.interview-box .img img {
  border-radius: 0 1000px 1000px 0;
  -o-object-fit: cover;
     object-fit: cover;
}
.interview-box .txt-wrap {
  padding-block: 75px 56px;
  white-space: nowrap;
}
.interview-box .ttl {
  color: var(--cl-theme01-txt);
  font-family: var(--ft-helvetica);
  font-weight: bold;
  font-size: 55px;
  line-height: 1;
}
.interview-box .txt {
  font-family: var(--ft-noto);
  margin-top: 20px;
}
.interview-box .txt .info {
  font-size: 20px;
  line-height: 1.55;
}
.interview-box .txt .name {
  display: block;
  margin-top: 20px;
  font-size: 27px;
  line-height: 1.5925925926;
}
.interview-box .txt .year {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.13em;
}

.course-box {
  background: linear-gradient(135deg, #78bbd0 0%, #9da4ff 100%);
  color: var(--cl-white);
  overflow: hidden;
}
.course-box .inner-block {
  padding-block: 107px 76px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 40px;
}
.course-box .head {
  color: #fff;
  font-size: 20px;
  margin-bottom: 26px;
  padding-block: 15px;
  position: relative;
}
.course-box .head::after {
  content: "";
  background: linear-gradient(135deg, #78bbd0 0%, #9da4ff 100%);
  border-radius: 100px;
  position: absolute;
  top: 0;
  left: -36px;
  right: -50%;
  height: 100%;
  mix-blend-mode: multiply;
  opacity: 0.3;
}
.course-box .head .inn {
  position: relative;
  z-index: 1;
}
.course-box .ttl {
  font-size: 34px;
  line-height: 1.6176470588;
  font-weight: bold;
  letter-spacing: 0.06em;
  line-height: 1.4117647059;
  margin-bottom: 11px;
}
.course-box .txt {
  font-family: var(--ft-noto);
  font-size: 18px;
  line-height: 1.8333333333;
  letter-spacing: 0.13em;
}
.course-box .c-btn01 {
  background: var(--cl-white);
  border-radius: 100px;
  color: var(--cl-txt);
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.4;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 46px;
  margin-top: 31px;
  padding: 25px 22px 22px 37px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  -webkit-transition-property: background-color, color;
  transition-property: background-color, color;
}
.course-box .c-btn01 .ico {
  background: var(--cl-theme01-txt);
  border-radius: 50%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 29px;
  aspect-ratio: 1/1;
  -webkit-transition: 0.4s background-color;
  transition: 0.4s background-color;
}
.course-box .c-btn01 .ico::after {
  content: "";
  background: url(../images/ico-arrow.svg) no-repeat center/contain;
  width: 7px;
  height: 10px;
}
.course-box .image-popup-fit-width {
  display: block;
  position: relative;
}
.course-box .image-popup-fit-width::after {
  content: "";
  background: url(../images/ico-zoom.svg) no-repeat center/contain;
  position: absolute;
  bottom: 12px;
  right: 17px;
  width: 67px;
  height: 67px;
}
.course-box .image-popup-fit-width::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  -webkit-transition: 0.4s background-color;
  transition: 0.4s background-color;
}

.point01 {
  --theme: var(--cl-theme01);
  --theme-bg: var(--cl-theme01-bg);
  --theme-bg02: var(--cl-theme01-bg02);
  margin-top: 69px;
}
.point01 .detail-box {
  margin-top: 123px;
}

.point02 {
  --theme: var(--cl-theme02);
  --theme-bg: var(--cl-theme02-bg);
  --theme-bg02: var(--cl-theme02-bg02);
  margin-top: 118px;
}
.point02 .point-ttl .inn {
  padding-inline: 65px;
}
.point02 .movie-list .list li:first-child .txt {
  translate: calc(50% + 15px) 0;
}
.point02 .detail-box {
  margin-top: 124px;
  padding-block: 90px;
}

.point03 {
  --theme: var(--cl-theme03);
  --theme-bg: var(--cl-theme03-bg);
  --theme-bg02: var(--cl-theme03-bg02);
  margin-top: 186px;
}
.point03 .point-ttl .inn {
  padding-inline: 35px;
}
.point03 .detail-box {
  margin-top: 120px;
  padding-block: 83px 115px;
}

.point04 {
  --theme: var(--cl-theme04);
  margin-block: 122px;
}
.point04 .movie-list {
  margin-top: 0;
}
.point04 .movie-list .head {
  color: var(--theme);
}
.point04 .movie-list .img-wrap {
  background: url(../images/point04-img@2x.jpg.webp) no-repeat center/cover;
  margin: 0 calc(50% - 50vw);
  padding: 1px calc(50vw - 50%);
  height: 1040px;
}
.point04 .movie-list .movie-card {
  margin: 106px 193px 0 auto;
  width: 320px;
  height: 610px;
  z-index: 3;
}
.point04 .movie-list .txt {
  color: var(--cl-white);
  font-family: var(--ft-noto);
  font-size: 18px;
  line-height: 2.1111111111;
  letter-spacing: 0.13em;
  margin: -412px 0 157px auto;
  padding: 142px 28px 80px 128px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  z-index: 2;
}
.point04 .movie-list .txt::after {
  content: "";
  background: var(--theme);
  border-radius: 1000px 0 0 1000px;
  position: absolute;
  top: 0;
  bottom: -157px;
  left: 0;
  width: calc(100% + 100vw);
  z-index: -1;
}
@media not print {
  .anm-zoom,
  .anmlist-zoom > li {
    -webkit-transform: scale(0.6);
            transform: scale(0.6);
    opacity: 0;
    -webkit-transition: 0.4s ease;
    transition: 0.4s ease;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    transition-property: opacity, transform;
    transition-property: opacity, transform, -webkit-transform;
  }
  .anm-zoom.is-animated,
  .anmlist-zoom.is-animated > li {
    opacity: 1;
    -webkit-transform: translateZ(0) scale(1);
            transform: translateZ(0) scale(1);
  }
}
@media only screen and (max-width: 959.9px) {
  .NavBtn {
    border-width: 4px;
    width: 72px;
  }
  .NavBtn_line {
    width: 23px;
    height: 2px;
  }
  .nav {
    --headerH: 60px;
  }
  .nav .list {
    gap: 27px;
  }
  .nav .list a::before, .nav .list a::after {
    width: min(30px, 8vw);
    height: min(39px, 10.4vw);
  }
  .nav .list .en {
    font-size: 26px;
  }
  .nav .list .ttl {
    font-size: 18px;
  }
  .mfp-movie .mfp-container {
    padding: 40px 0;
  }
  .mfp-movie .mfp-arrow {
    height: 40px;
  }
  .mfp-movie .mfp-close-movie {
    top: -34px;
    width: 30px;
    height: 30px;
  }
  .inner-block {
    padding-inline: 25px;
  }
  .kv-section .ttl .main {
    font-size: min(30px, 8vw);
    line-height: 1.2666666667;
  }
  .kv-section .ttl .sub {
    font-size: min(16px, 4.2666666667vw);
  }
  .kv-section .txt {
    font-size: 12px;
    line-height: 2;
  }
  .point-section .point-ttl {
    margin-bottom: 20px;
    padding-top: 72px;
  }
  .point-section .point-ttl .num {
    height: 60px;
  }
  .point-section .point-ttl::before, .point-section .point-ttl::after {
    width: min(30px, 8vw);
    height: min(39px, 10.4vw);
  }
  .point-section .point-ttl::before {
    margin-right: max(-10px, -2.6666666667vw);
  }
  .point-section .point-ttl::after {
    margin-left: max(-10px, -2.6666666667vw);
  }
  .point-section .point-ttl .main {
    font-size: min(26px, 6.9333333333vw);
  }
  .point-section .point-ttl .sub {
    font-size: min(12px, 3.2vw);
  }
  .point-section .main-img img {
    border-radius: 16px;
  }
  .point-section .main-txt .num {
    margin-top: 10px;
    width: min(34px, 9.0666666667vw);
    height: min(54px, 14.4vw);
  }
  .point-section .main-txt .ttl {
    font-size: min(18px, 4.8vw);
  }
  .point-section .main-txt .txt {
    font-size: 12px;
    margin: 10px 0 0;
  }
  .point-section .movie-list {
    margin-top: 110px;
  }
  .point-section .movie-list .head {
    font-size: min(45px, 12vw);
    margin-bottom: max(-10px, -2.6666666667vw);
  }
  .point-section .movie-list .movie-card {
    border-radius: 25px;
  }
  .point-section .movie-list .movie-card::after {
    border-radius: 25px;
    border-width: 3px;
  }
  .point-section .movie-list .movie-card .ttl {
    font-size: min(20px, 5.3333333333vw);
    letter-spacing: 0.1em;
    padding-top: min(46px, 12.2666666667vw);
  }
  .point-section .movie-list .movie-card .ttl::after {
    bottom: min(26px, 6.9333333333vw);
    width: min(42px, 11.2vw);
    height: min(42px, 11.2vw);
  }
  .point-section .movie-list .list {
    gap: 10px 14px;
    margin-inline: -5px;
  }
  .point-section .movie-list .list li {
    width: calc(50% - 7px);
    max-width: 160px;
  }
  .point-section .movie-list .list .txt {
    font-size: 10px;
    line-height: 1.6;
    margin-top: max(-20px, -5.3333333333vw);
    padding: min(50px, 13.3333333333vw) min(18px, 4.8vw) 0;
  }
  .point-section .detail-box::after {
    border-radius: 0 80vw 80vw 0;
    width: calc(100vw + 70px);
    width: calc(100cqw + 70px);
  }
  .point-section .detail-box .box {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 22px;
  }
  .point-section .detail-box .txt-wrap {
    padding-right: 52px;
    max-width: 450px;
  }
  .point-section .detail-box .ico {
    font-size: 13px;
    padding: 10px 18px;
  }
  .point-section .detail-box .ttl {
    font-size: min(18px, 4.8vw);
    margin-bottom: 9px;
  }
  .point-section .detail-box .txt {
    font-size: 12px;
  }
  .point-section .detail-box .img {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -webkit-align-items: flex-end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
  .point-section .detail-box .img img {
    border-radius: 8px;
  }
  .interview-box .ttl {
    font-size: min(24px, 6.4vw);
  }
  .interview-box .txt {
    line-height: 1.2;
    margin-top: 6px;
  }
  .interview-box .txt .info {
    font-size: min(12px, 3.2vw);
  }
  .interview-box .txt .name {
    font-size: min(18px, 4.8vw);
    margin-top: 12px;
  }
  .interview-box .txt .year {
    font-size: 11px;
  }
  .course-box .inner-block {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 21px;
    padding-inline: 35px;
  }
  .course-box .head {
    font-size: 14px;
    margin-bottom: 13px;
    padding-block: 10px;
  }
  .course-box .head::after {
    left: -20px;
  }
  .course-box .ttl {
    font-size: min(17px, 4.5333333333vw);
  }
  .course-box .txt {
    font-size: 12px;
  }
  .course-box .c-btn01 {
    font-size: min(13px, 3.4666666667vw);
    gap: 15px;
    margin-top: 20px;
    padding: 11px 10px 10px 18px;
  }
  .point01 {
    margin-top: 97px;
  }
  .point01 .detail-box {
    margin-top: 60px;
    padding-bottom: 75px;
  }
  .point01 .detail-box .box01 .img {
    margin-top: -42px;
    gap: 7px;
  }
  .point01 .detail-box .box01 .img img:first-child {
    width: 42.4615384615%;
  }
  .point01 .detail-box .box01 .img img:last-child {
    width: 42.4615384615%;
  }
  .point01 .detail-box .box02 {
    margin-top: 24px;
  }
  .point01 .detail-box .box02 .img img {
    width: 60.3076923077%;
  }
  .point02 {
    margin-top: 97px;
  }
  .point02 .point-ttl .inn {
    padding-inline: min(20px, 5.3333333333vw);
  }
  .point02 .movie-list .list li:first-child .txt {
    translate: calc(50% + 7px) 0;
  }
  .point02 .detail-box {
    margin-top: 66px;
    padding-block: 22px 88px;
  }
  .point02 .detail-box .box .img img {
    width: 80%;
  }
  .point02 .detail-box .box02 {
    margin-top: 50px;
  }
  .point03 {
    margin-top: 97px;
  }
  .point03 .point-ttl .inn {
    padding-inline: min(18px, 4.8vw);
    padding-bottom: 5px;
  }
  .point03 .detail-box {
    margin-top: 50px;
    padding-block: 22px 88px;
  }
  .point03 .detail-box .box .img img {
    width: 80%;
  }
  .point03 .detail-box .box02 {
    margin-top: 50px;
  }
  .point04 {
    margin-top: 97px;
  }
  .point04 .movie-list .movie-card {
    max-width: 160px;
    max-height: 305px;
  }
  .point04 .movie-list .txt {
    font-size: 12px;
  }
}
@media (any-hover: hover) {
  .NavBtn:hover {
    background-color: #e45b00;
  }
  .nav .list a:hover {
    color: var(--cl-txt);
  }
  .point-section .movie-list .movie-card:hover::after {
    background-color: rgba(0, 0, 0, 0.5);
  }
  .course-box .c-btn01:hover {
    background: var(--cl-theme01-txt);
    color: #fff;
  }
  .course-box .c-btn01:hover .ico {
    background: var(--cl-theme01);
  }
  .course-box .image-popup-fit-width:hover::before {
    background-color: rgba(0, 0, 0, 0.5);
  }
}
@media only screen and (min-width: 960px) {
  .nav .inner {
    margin-left: auto;
    max-width: 614px;
  }
  .point-section .detail-box .img {
    -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
            flex-shrink: 0;
  }
  .course-box .img {
    -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
            flex-shrink: 0;
    width: 54.6875%;
  }
  .course-box .txt-wrap {
    margin-top: 16px;
  }
  .point01 .detail-box .box01 .txt-wrap {
    padding-top: 210px;
  }
  .point01 .detail-box .box01 .img {
    margin-top: -45px;
    width: 45.1171875%;
  }
  .point01 .detail-box .box01 .img img:first-child {
    width: 75.3246753247%;
  }
  .point01 .detail-box .box01 .img img:last-child {
    margin: -45px 0 0 auto;
    width: 69.4805194805%;
  }
  .point01 .detail-box .box02 {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    margin: 13px 55px 0 0;
  }
  .point01 .detail-box .box02 .txt-wrap {
    padding-block: 98px 115px;
  }
  .point01 .detail-box .box02 .img {
    width: 47.0588235294%;
  }
  .point02 .detail-box .box .img {
    width: 57.8125%;
  }
  .point02 .detail-box .box01 {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    margin-bottom: 50px;
  }
  .point02 .detail-box .box01 .txt-wrap {
    padding-top: 50px;
  }
  .point02 .detail-box .box02 .txt-wrap {
    padding-top: 30px;
  }
  .point03 .detail-box .box .txt-wrap {
    padding-top: 4px;
  }
  .point03 .detail-box .box01 {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    margin-bottom: 62px;
  }
  .point03 .detail-box .box01 .img {
    width: 57.8125%;
  }
  .point03 .detail-box .box02 .img {
    width: 53.7109375%;
  }
}
@media only screen and (max-width: 766.9px) {
  .nav .list {
    padding: 40px 20px;
  }
  .nav .list a {
    width: 294px;
  }
  .kv-section .inner-block {
    padding-inline: 20px;
  }
  .kv-section .img-wrap {
    background-image: url(../images/kv-img--sp@2x.jpg.webp);
    height: auto;
    aspect-ratio: 375/412;
    margin-bottom: 127px;
  }
  .kv-section .slider {
    top: 89.3333333333vw;
  }
  .kv-section .slider .slide img {
    width: min(1150px, 306.6666666667vw);
  }
  .kv-section .ttl {
    gap: min(11px, 2.9333333333vw);
    top: 36vw;
    padding: min(17px, 4.5333333333vw) min(30px, 8vw) min(21px, 5.6vw) min(43px, 11.4666666667vw);
  }
  .point-section {
    --bg-start: 257px;
    --bg-end: 120px;
  }
  .point-section .main-txt {
    gap: min(30px, 8vw);
    padding: 53px 18px 56px 40px;
    margin: -36px -25px -50px -25px;
  }
  .interview-box {
    margin-top: 100px;
  }
  .interview-box .inner-block {
    gap: min(20px, 5.3333333333vw);
  }
  .interview-box .img {
    margin-block: -40px 0;
    width: 57.5384615385%;
  }
  .interview-box .img img {
    height: min(223px, 59.4666666667vw);
  }
  .interview-box .txt-wrap {
    padding-block: 40px;
  }
  .course-box .inner-block {
    padding-block: 33px;
  }
  .course-box .image-popup-fit-width::after {
    bottom: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
  }
  .point04 .movie-list {
    margin-top: 0;
  }
  .point04 .movie-list .img-wrap {
    background-image: url(../images/point04-img--sp@2x.jpg.webp);
    height: min(470px, 125.3333333333vw);
  }
  .point04 .movie-list .movie-card {
    margin: 54px -6px 0 auto;
    width: min(160px, 42.6666666667vw);
    height: min(305px, 81.3333333333vw);
  }
  .point04 .movie-list .txt {
    line-height: 1.85;
    margin: -36px -25px 0 -25px;
    padding: 54px 26px 58px 73px;
  }
  .point04 .movie-list .txt::after {
    bottom: 0;
  }
}
@media only screen and (min-width: 767px) {
  .kv-section .img-wrap {
    -webkit-mask: url(../images/kv-clip.svg) no-repeat center top/100% 100%;
            mask: url(../images/kv-clip.svg) no-repeat center top/100% 100%;
  }
}
@media only screen and (min-width: 767px) and (max-width: 1300px) {
  .point-section .detail-box::after {
    min-width: 120vw;
    min-width: 120cqw;
  }
}
@media only screen and (max-width: 766.9px) and (max-width: 420px) {
  .interview-box .img img {
    -o-object-position: calc(100% + 70px) center;
       object-position: calc(100% + 70px) center;
  }
}
@media only screen and (max-width: 959.9px) and (min-width: 767px) {
  .point04 .movie-list .movie-card {
    margin: 380px 140px 0 auto;
  }
}