@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;700&family=Noto+Sans+JP&family=Noto+Serif+JP:wght@400;600;700&display=swap");
*, :after, :before {
  box-sizing: border-box;
  outline: none
}
a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, html, i, iframe, img, ins, kbd, label, legend, li, main, mark, menu, nav, object, ol, output, p, picture, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  box-sizing: border-box;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline
}
article, aside, audio, canvas, details, dialog, figcaption, figure, footer, header, main, menu, nav, picture, progress, section, video {
  display: block
}
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%
}
body {
  line-height: 1
}
ol, ul {
  list-style: none
}
blockquote, q {
  quotes: none
}
blockquote:after, blockquote:before, q:after, q:before {
  content: "";
  content: none
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show
}
button, img, input, select, svg, textarea {
  vertical-align: middle
}
button, input, optgroup, select, textarea {
  font: inherit
}
button, input, select, textarea {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border-style: none;
  color: inherit
}
input::-ms-clear, input::-ms-reveal, input:focus::-ms-clear, input:focus::-ms-reveal {
  visibility: hidden
}
textarea {
  overflow: auto;
  resize: none
}
a {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
  -webkit-text-decoration-skip: objects
}
img {
  border-style: none;
  vertical-align: top;
  line-height: 0
}
select::-ms-expand {
  display: none
}
input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fff inset
}
body {
  position: relative;
  font-family: "Noto Serif JP", serif;
  width: 100%;
  background-color: #fff
}
body img {
  max-width: 100%;
  height: auto
}
body * {
  letter-spacing: .1em;
  font-size: 1.11111vw;
  line-height: 1.2em
}
/*#stalker {
  position: fixed;
  width: 30px;
  height: 30px;
  margin: -15px 0 0 -15px;
  z-index: 400;
  pointer-events: none;
  transition: transform .1s, margin .5s, width .5s, height .5s;
  opacity: 0;
  background-color: #a22041;
  border-radius: 50%
}
#stalker.active {
  width: 80px;
  height: 80px;
  margin: -40px 0 0 -40px*/
}
#wrap {
  position: relative;
  -webkit-font-smoothing: antialiased;
  top: 0;
  left: 0;
  width: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  overflow: hidden
}
.c__inner {
  width: 83.33333vw;
  margin: 0 auto
}
.c__title {
  position: relative;
  display: inline-block
}
.c__title .en {
  font-size: 7.22222vw;
  font-family: Cormorant Garamond, serif;
  color: #eee;
  letter-spacing: 0
}
.c__title .jp {
  position: absolute;
  bottom: 3em;
  left: 50%;
  transform: translate(-50%);
  letter-spacing: .5em;
  font-size: .97222vw
}
.c__header {
  position: absolute;
  top: 4.16667vw;
  left: 0;
  width: 100%;
  z-index: 100
}
.c__header_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4.16667vw;
  color: #fff
}
.c__header_inner .logo {
  position: relative;
  display: block;
  width: 13.19444vw;
  transition: .5s
}
.c__header_inner .logo path, .c__header_inner .logo svg {
  fill: #fff;
  transition: .5s
}
.c__header_inner .logo:hover {
  opacity: .5
}
.c__header_inner .logo .kagamida {
  width: 100%;
  height: auto
}
.c__header_inner .logo .kagamida svg {
  width: 100%
}
.c__header_inner .logo .kana {
  position: absolute;
  right: -1.73611vw;
  top: 50%;
  transform: translate(100%, -50%)
}
.c__header_inner .logo .kana svg {
  width: 100%
}
.c__header_inner .logo .en {
  position: absolute;
  left: 50%;
  bottom: -2.77778vw;
  transform: translate(-50%)
}
.c__header_inner .logo .en svg {
  width: 100%
}
.c__nav {
  display: flex;
  align-items: center
}
.c__nav_item {
  position: relative;
  font-size: .97222vw;
  margin-right: 1.52778vw
}
.c__nav_item:before {
  content: "";
  display: block;
  width: 0;
  height: .06944vw;
  background-color: #fff;
  position: absolute;
  bottom: -.5em;
  left: 0;
  transition: .5s
}
.c__nav_item:hover:before {
  width: 100%
}
.c__nav_item span {
  font-size: 1em
}
.c__nav_item span.en {
  display: none
}
.c__nav .c__share {
  position: relative;
  padding-left: 1.52778vw
}
.c__nav .c__share:before {
  content: "";
  display: block;
  width: .06944vw;
  height: 1.11111vw;
  background-color: #fff;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%)
}
.c__share {
  display: flex;
  justify-content: center;
  align-items: center
}
.c__share .copyright {
  display: none
}
.c__share a {
  margin-right: 1.52778vw;
  transition: .5s;
  opacity: 1
}
.c__share a:hover {
  opacity: .5
}
.c__share svg {
  height: 1.94444vw;
  max-width: none
}
.c__spmodal, .c__spnav {
  display: none
}
.c__footer {
  background: #2d3539;
  padding: 5.55556vw 0
}
.c__footer_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #fff
}
.c__footer_inner .copyright {
  order: 1
}
.c__footer_inner .copyright small {
  font-size: .69444vw
}
.c__footer_inner .c__nav {
  order: 2
}
.c__footer_inner .c__nav .c__share:before {
  opacity: .1
}
.c__only--pc {
  display: block
}
.c__only--sp {
  display: none
}
.c__mail:before {
  content: "@"
}
.c__cover {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: #fff;
  transition: 5s;
  z-index: 300
}
.c__cover, .c__cover.hidden {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  pointer-events: none
}
.c__cover.hidden {
  opacity: 0
}
.m_pc {
  display: block
}
.m_sp {
  display: none
}
.js-showin {
  transform: translateY(30px) scale(.9) rotate(0deg);
  opacity: 0
}
.js-showin.active {
  opacity: 1;
  -webkit-animation: showin .5s ease forwards;
  animation: showin .5s ease forwards
}
.js-showin_list > * {
  transform: translateY(20px) rotate(0deg);
  opacity: 0
}
.js-showin_list .active {
  opacity: 1;
  transform: translate(0) rotate(0deg)
}
.js-fadein {
  opacity: 0;
  transform: translateY(2.77778vw);
  transition: opacity .5s, transform 2s
}
.js-fadein.active {
  opacity: 1;
  transform: translate(0);
  transition: opacity .55s, transform 2s
}
@-webkit-keyframes fadein {
  0% {
    transform: translateY(2.08333vw);
    opacity: 0;
    @media screen and (max-width: 768px) {
      transform: translateY(9.375vw);
      opacity: 0
    }
  }
  to {
    transform: translate(0);
    opacity: 1;
    @media screen and (max-width: 768px) {
      transform: translate(0);
      opacity: 0
    }
  }
}
@keyframes fadein {
  0% {
    transform: translateY(2.08333vw);
    opacity: 0;
    @media screen and (max-width: 768px) {
      transform: translateY(9.375vw);
      opacity: 0
    }
  }
  to {
    transform: translate(0);
    opacity: 1;
    @media screen and (max-width: 768px) {
      transform: translate(0);
      opacity: 0
    }
  }
}
.kv {
  min-height: 100vh;
  overflow: hidden
}
.kv, .kv__slider {
  position: relative
}
.kv__slider {
  height: 100%;
  z-index: 5
}
.kv__slider .fv-swiper {
  height: 100%;
  overflow: hidden
}
.kv__slider .fv-swiper .item {
  width: 100%;
  height: 100%;
  min-height: 100vh;
  background-repeat: no-repeat !important;
  background-position: 50% !important;
  background-size: cover !important;
  transform: scale(1)
}
.kv__slider .fv-swiper .item.zoom {
  transition: 20s;
  transform: scale(1.1)
}
.kv__layer {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 10;
  background: rgba(0, 0, 0, .2);
  pointer-events: none
}
.kv__scroll {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  right: 3.33333vw;
  bottom: 3.33333vw;
  overflow: hidden;
  z-index: 15
}
.kv__scroll .label {
  display: inline-block;
  margin-right: 1.11111vw;
  padding-top: 1.38889vw;
  font-family: Cormorant Garamond, serif;
  font-weight: 700;
  font-size: .69444vw;
  color: #fff;
  letter-spacing: .2em
}
.kv__scroll .arrow {
  -webkit-animation: arrow 3s ease infinite;
  animation: arrow 3s ease infinite
}
.kv__scroll .arrow img {
  margin-top: 1.38889vw
}
.kv__scroll .arrow img:nth-of-type(2) {
  position: absolute;
  top: -100%;
  right: 0
}
.kv__main {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 15
}
.kv__main .main {
  width: 60.76389vw;
  max-width: none;
  text-align: center
}
.kv__main .main svg {
  fill: #fff;
  width: 100%;
  height: auto
}
.kv__main .main g {
  opacity: 0;
  transition: .5s;
  transform: translateY(.69444vw)
}
.kv__main .main g.active {
  opacity: 1;
  transform: translate(0)
}
.kv__main .main path {
  fill: #fff
}
.kv__main .sub {
  margin-top: 3.33333vw;
  line-height: 2.22222;
  text-align: center
}
.kv__main .sub > span {
  display: inline-block;
  opacity: 0;
  transition: .5s;
  transform: translateY(.69444vw);
  font-size: 1.11111vw;
  color: #fff
}
.kv__main .sub > span + span {
  margin-left: .6em
}
.kv__main .sub > span.active {
  opacity: 1;
  transform: translate(0)
}
@-webkit-keyframes arrow {
  0% {
    transform: translate(0)
  }
  to {
    transform: translateY(100%)
  }
}
@keyframes arrow {
  0% {
    transform: translate(0)
  }
  to {
    transform: translateY(100%)
  }
}
@-webkit-keyframes zoom {
  0% {
    transform: scale(1)
  }
  to {
    transform: scale(1.1)
  }
}
@keyframes zoom {
  0% {
    transform: scale(1)
  }
  to {
    transform: scale(1.1)
  }
}
.banner__inner {
  position: relative;
  width: 66.66667vw;
  margin: 0 auto;
  padding-top: 5.55556vw;
  box-shadow: 0 .55556vw .34722vw -.34722vw rgba(0, 0, 0, .1);
  transition: .5s;
  top: 0
}
.banner__inner:hover {
  top: .20833vw;
  box-shadow: 0 .34722vw .34722vw -.34722vw rgba(0, 0, 0, .1)
}
.concept {
  overflow: hidden
}
.concept__inner {
  padding-top: 8.33333vw
}
.concept__title {
  display: flex;
  justify-content: center;
  align-items: flex-start
}
.concept__title_l {
  position: relative;
  width: 50%;
  padding-right: 3.33333vw;
  text-align: right
}
.concept__title_l:before {
  content: "";
  display: block;
  position: absolute;
  top: 1.8em;
  right: 0;
  width: .06944vw;
  background: #eee;
  height: 17.36111vw;
  z-index: 1
}
.concept__title_r {
  width: 50%;
  padding-left: 3.33333vw;
  padding-top: 1.5em
}
.concept__title_r .txt {
  margin-bottom: 1.66667vw;
  font-size: 1.66667vw;
  letter-spacing: .6em
}
.concept__title_r .sub {
  font-size: .55556vw;
  color: #aaa;
  font-family: Cormorant Garamond, serif
}
.concept__mainimg {
  position: relative;
  padding: 3.33333vw 0 0
}
.concept__mainimg .parts_br, .concept__mainimg .parts_lt {
  position: absolute;
  width: 37.84722vw;
  height: 37.84722vw;
  background: url(../img/concept_pattern.jpg) no-repeat 50%;
  background-size: contain;
  pointer-events: none;
  transition: 2s;
  opacity: 1;
  transform: scale(1)
}
.concept__mainimg .parts_br.hidden, .concept__mainimg .parts_lt.hidden {
  opacity: 0;
  transform: scale(.9)
}
.concept__mainimg .parts_lt {
  top: -1.66667vw;
  left: 4.16667vw
}
.concept__mainimg .parts_br {
  bottom: -11.11111vw;
  right: 4.16667vw
}
.concept__mainimg .mainimg {
  position: relative;
  width: 55.55556vw;
  margin: 0 auto;
  z-index: 5
}
.concept__mainimg .mainimg.hidden:before {
  border: 29.16667vw solid #fff
}
.concept__mainimg .mainimg:after {
  content: "";
  position: absolute;
  background-color: #eee;
  z-index: -1;
  display: none
}
.concept__mainimg .mainimg:before {
  content: "";
  width: 58.75vw;
  height: 58.75vw;
  border-radius: 50%;
  z-index: 1;
  transition: 2s;
  transition-timing-function: ease-out;
  pointer-events: none;
  border: .00001vw solid #fff
}
.concept__mainimg .mainimg .frame, .concept__mainimg .mainimg:before {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}
.concept__mainimg .mainimg .frame {
  width: 58.68056vw;
  height: 58.68056vw;
  border-radius: 50%;
  border: .06944vw solid #eddbff;
  background: #fff;
  z-index: -1
}
.concept__mainimg .mainimg .img {
  position: relative;
  width: 100%;
  height: auto;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: inset 0 0 .34722vw .20833vw rgba(0, 0, 0, .2)
}
.concept__mainimg .mainimg .img > img {
  position: relative;
  z-index: -1
}
.concept__txt {
  position: relative;
  display: flex;
  margin: 0 auto;
  padding: 4.44444vw 0 1.38889vw;
  z-index: 10;
  text-align: center;
  flex-direction: row-reverse;
  justify-content: center
}
.concept__txt > p {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  -webkit-text-orientation: upright;
  text-orientation: upright;
  font-size: 1.11111vw;
  line-height: 3.5;
  white-space: nowrap;
  text-align: left
}
.concept__txt > p > span {
  display: inline-block;
  transition: transform 1.5s, opacity .5s;
  opacity: 0;
  transform: translate(-1.38889vw)
}
.concept__txt > p > span.active {
  opacity: 1;
  transform: translate(0)
}
.concept__txt > p + p {
  margin-right: 4.44444vw
}
.plan {
  padding-top: 8.33333vw;
  padding-bottom: 5.55556vw
}
.plan__item {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 6.94444vw
}
.plan__item:before {
  content: "";
  display: block;
  width: 53.125vw;
  height: 100%;
  position: absolute;
  bottom: -6.94444vw;
  background: url(../img/plan_bg.jpg) repeat 50%;
  background-size: 53.125vw auto;
  z-index: 1
}
.plan__item .img {
  position: relative;
  width: 53.125vw;
  z-index: 2
}
.plan__item .contents {
  position: relative;
  width: 30.55556vw;
  padding: 0 4.16667vw;
  z-index: 2
}
.plan__item .contents .title {
  position: relative;
  padding-bottom: 1.94444vw;
  font-size: 2.22222vw;
  font-weight: 600;
  line-height: 1em
}
.plan__item .contents .title:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 1.66667vw;
  height: 1px;
  background: #a22041;
  display: block
}
.plan__item .contents .title span {
  font-size: .6em
}
.plan__item .contents .copy {
  margin-top: 3.33333vw;
  font-size: 1.38889vw;
  font-weight: 700;
  line-height: 2
}
.plan__item .contents .txt {
  margin-top: 2.22222vw;
  font-size: .90278vw;
  line-height: 1.84615;
  font-family: Noto Sans JP, Noto Sans Japanese, 游ゴシック Medium, Yu Gothic Medium, 游ゴシック体, yugothic, Hiragino Kaku Gothic ProN, メイリオ, meiryo, sans-serif
}
.plan__item.left:before {
  left: 0
}
.plan__item.left .img {
  order: 2
}
.plan__item.left .contents {
  order: 1
}
.plan__item.right:before {
  right: 0
}
.plan__item.right .img {
  order: 1
}
.plan__item.right .contents {
  order: 2
}
.campus {
  padding-top: 2.77778vw;
  padding-bottom: 0
}
.campus__header {
  justify-content: space-between;
  margin-bottom: 2.77778vw;
  padding: 0 4.16667vw
}
.campus__header, .campus__nav {
  display: flex;
  align-items: center
}
.campus__nav .arrow {
  position: relative;
  width: 4.16667vw;
  height: 4.16667vw;
  border-radius: 50%;
  border: .06944vw solid #eee;
  transition: .5s;
  cursor: pointer
}
.campus__nav .arrow svg {
  position: absolute;
  top: 50%;
  left: 50%;
  fill: #1b1b1b;
  transition: .5s;
  transform: translate(-50%, -50%)
}
.campus__nav .arrow.next svg {
  transform: translate(-50%, -50%) rotate(-180deg)
}
.campus__nav .arrow:hover {
  background: #a22041
}
.campus__nav .arrow:hover svg {
  fill: #fff
}
.campus__nav .progressbar {
  position: relative;
  display: block;
  width: 21.875vw;
  height: .13889vw;
  margin: 0 1.38889vw;
  background: #eee;
  overflow: hidden
}
.campus__nav .progressbar .red {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 6.94444vw;
  height: .13889vw;
  background: #a22041;
  transition: .5s
}
.campus__slider {
  padding-bottom: 2.22222vw
}
.campus__slider .swiper-slide-active img {
  box-shadow: 0 .34722vw .69444vw -.20833vw rgba(0, 0, 0, .2)
}
.campus__slider .item {
  padding: 0 2.08333vw .69444vw
}
.campus__slider .item span {
  display: inline-block;
  margin-bottom: 1.11111vw;
  font-size: .97222vw;
  letter-spacing: 1em;
  font-weight: 600
}
.campus__slider .item img {
  transition: .5s;
  width: 100%;
  height: auto;
  overflow: hidden;
  border-radius: .69444vw;
  box-shadow: 0 .13889vw .69444vw -.20833vw rgba(0, 0, 0, .2)
}
.campus__mlmg {
  width: 62.15278vw;
  margin: 0 auto
}
.campus__mlmg .btn {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: .06944vw solid #ccc;
  border-radius: .69444vw;
  padding: 1.66667vw;
  background: url(../img/plan_bg.jpg) repeat 50%;
  background-size: 52.98611vw auto;
  box-shadow: 0 .55556vw .34722vw -.34722vw rgba(0, 0, 0, .1);
  transition: .5s;
  top: 0
}
.campus__mlmg .btn:hover {
  top: .20833vw;
  box-shadow: 0 .20833vw .34722vw -.34722vw rgba(0, 0, 0, .1)
}
.campus__mlmg .txt {
  font-size: 1.11111vw;
  padding-left: 1.80556vw
}
.campus__mlmg .right {
  display: flex;
  justify-content: center;
  align-items: center
}
.campus__mlmg .right .en {
  font-family: Cormorant Garamond, serif;
  padding-right: .69444vw;
  font-size: 1.11111vw;
  color: #ccc;
  border-right: .06944vw solid #ccc;
  letter-spacing: 0
}
.campus__mlmg .right .jp {
  padding-left: .69444vw;
  padding-bottom: .1em;
  font-size: .97222vw
}
.campus__mlmg .right .arrow {
  position: relative;
  display: inline-block;
  margin-left: 1.66667vw;
  width: 2.77778vw;
  height: 2.77778vw;
  background: #1b1b1b;
  border-radius: 50%
}
.campus__mlmg .right .arrow svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-180deg);
  fill: #fff;
  width: 1.25vw
}
.information {
  padding-top: 6.94444vw
}
.information__header {
  padding: 0 4.16667vw
}
.information__contents {
  position: relative;
  background: #fafafa;
  margin-top: -2.08333vw;
  padding: 8.33333vw 4.16667vw
}
.information__contents_bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 37.5vw;
  height: 100%;
  background: url(../img/info_bg.jpg) no-repeat 50%;
  background-size: cover
}
.information__contents_img {
  position: absolute;
  bottom: -26.5625vw;
  right: 0;
  border-radius: 1.5625vw 0 0 1.5625vw;
  width: 92.1875vw
}
.information__contents_item {
  width: 54.16667vw;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start
}
.information__contents_item + .information__contents_item {
  margin-top: 5.13889vw
}
.information__contents_item_l {
  min-width: 11.38889vw
}
.information__contents_item_l .title {
  margin-bottom: .55556vw;
  font-size: 1.38889vw;
  letter-spacing: .4em;
  line-height: 1.2em
}
.information__contents_item_l .sub {
  font-size: .69444vw;
  font-family: Cormorant Garamond, serif;
  color: #aaa
}
.information__contents_item_r {
  border-left: .06944vw solid #eee;
  padding-left: 2.22222vw
}
.information__contents_item_r a, .information__contents_item_r p {
  font-size: .90278vw;
  font-family: Noto Sans JP, Noto Sans Japanese, 游ゴシック Medium, Yu Gothic Medium, 游ゴシック体, yugothic, Hiragino Kaku Gothic ProN, メイリオ, meiryo, sans-serif;
  line-height: 2em
}
.information__contents_item_r a {
  position: relative
}
.information__contents_item_r a:before {
  content: "";
  width: 100%;
  height: 1px;
  background: #1b1b1b;
  position: absolute;
  bottom: -1px;
  left: 0
}
.information__contents_item_r dl {
  display: flex
}
.information__contents_item_r dl + dl {
  margin-top: 2.77778vw
}
.information__contents_item_r dl dt {
  width: 4.16667vw;
  color: #aaa;
  text-align: center
}
.information__contents_item_r dl dd, .information__contents_item_r dl dt {
  font-size: .90278vw;
  font-family: Noto Sans JP, Noto Sans Japanese, 游ゴシック Medium, Yu Gothic Medium, 游ゴシック体, yugothic, Hiragino Kaku Gothic ProN, メイリオ, meiryo, sans-serif;
  line-height: 1.8em
}
.information__contents_item_r dl dd {
  width: 35.76389vw;
  padding-left: 2.22222vw
}
.information__contents_item_r dl dd a.tel, .information__contents_item_r dl dd span {
  font-size: .90278vw;
  font-family: Noto Sans JP, Noto Sans Japanese, 游ゴシック Medium, Yu Gothic Medium, 游ゴシック体, yugothic, Hiragino Kaku Gothic ProN, メイリオ, meiryo, sans-serif
}
.information__contents_item_r dl dd a.tel {
  pointer-events: none
}
.information__contents_item_r dl dd a.tel:before {
  display: none
}
.information__contents_item_r ul {
  max-width: 29.16667vw
}
.information__contents_item_r ul li {
  display: inline-block;
  margin-bottom: 1.38889vw;
  margin-right: 1.38889vw;
  font-size: .90278vw;
  font-family: Noto Sans JP, Noto Sans Japanese, 游ゴシック Medium, Yu Gothic Medium, 游ゴシック体, yugothic, Hiragino Kaku Gothic ProN, メイリオ, meiryo, sans-serif
}
.information__contents_item_r ul li.last {
  margin-bottom: 0
}
.access {
  padding-top: 9.72222vw
}
.access__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 0 4.16667vw
}
.access__link {
  padding-bottom: 2.08333vw
}
.access__link:hover span:before {
  width: 0
}
.access__link span {
  position: relative;
  line-height: 1em;
  font-size: .90278vw
}
.access__link span:before {
  content: "";
  display: block;
  width: 100%;
  height: .06944vw;
  background: #1b1b1b;
  position: absolute;
  left: 0;
  bottom: -.2em;
  transition: .5s
}
.access__link img {
  width: .83333vw;
  margin-left: .4em;
  vertical-align: middle
}
.access__map {
  width: 100%;
  height: 33.33333vw;
  margin-top: 1.38889vw;
  background-color: #eee
}
.access__map #gmap, .access__map iframe {
  width: 100%;
  height: 100%
}
.reserve {
  position: relative;
  display: block;
  background: #1b1b1b
}
.reserve__bg {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/reservation_bg.jpg) no-repeat 0;
  background-size: cover;
  transition: .5s
}
.reserve:hover .reserve__bg {
  opacity: .4
}
.reserve:hover .title span:before {
  width: 0
}
.reserve__inner {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 9.72222vw 4.16667vw
}
.reserve__inner .en {
  opacity: .3
}
.reserve__inner .jp {
  color: #fff
}
.reserve__contents {
  width: 27.08333vw;
  color: #fff
}
.reserve__contents .title {
  margin-bottom: 2.77778vw
}
.reserve__contents .title span {
  font-size: 1.66667vw;
  position: relative
}
.reserve__contents .title span:before {
  content: "";
  display: block;
  width: 100%;
  height: .06944vw;
  background: #fff;
  position: absolute;
  left: 0;
  bottom: -.3em;
  transition: .5s
}
.reserve__contents .txt {
  line-height: 2;
  font-size: .97222vw
}
@media screen and (max-width:768px) {
  body * {
    font-size: 3.75vw;
    letter-spacing: .05em
  }
  #stalker {
    display: none !important
  }
  #wrap {
    min-width: 0;
    top: auto;
    left: auto;
    -webkit-font-smoothing: subpixel-antialiased
  }
  #wrap, .c__inner {
    width: 100%
  }
  .c__title .en {
    font-size: 15.625vw
  }
  .c__title .jp {
    font-size: 3.75vw;
    letter-spacing: .3em;
    bottom: 1.4em;
    width: 100%;
    text-align: center
  }
  .c__header {
    top: 5vw
  }
  .c__header_inner {
    padding: 0 7.5vw
  }
  .c__header_inner .logo {
    width: 40.625vw
  }
  .c__header_inner .logo .kana {
    width: 20.3125vw;
    right: -3.75vw
  }
  .c__header_inner .logo .en {
    width: 31.25vw;
    bottom: -10vw
  }
  .c__header_inner .c__nav {
    display: none
  }
  .c__nav_item span.en {
    font-size: 2.5vw;
    color: #aaa;
    font-family: Cormorant Garamond, serif
  }
  .c__spnav {
    position: fixed;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    top: 0;
    right: 0;
    width: 17.5vw;
    height: 17.5vw;
    background-color: #fff;
    border-radius: 0 0 0 1.5625vw;
    padding: 0 6.25vw;
    z-index: 600
  }
  .c__spnav .bar {
    margin-bottom: 1.25vw
  }
  .c__spnav .bar span {
    display: block;
    width: 0;
    height: 1px;
    background-color: #1b1b1b;
    transition: .5s;
    margin-top: 1.25vw
  }
  .c__spnav.show .bar span:first-of-type {
    transition-delay: 0s;
    width: 6.25vw
  }
  .c__spnav.show .bar span:nth-of-type(2) {
    transition-delay: .2s;
    width: 4.6875vw
  }
  .c__spnav.show .bar span:nth-of-type(3) {
    transition-delay: .4s;
    width: 3.125vw
  }
  .c__spnav.active .bar span:first-of-type {
    transition-delay: 0s;
    transform: translateY(1.5625vw) rotate(45deg)
  }
  .c__spnav.active .bar span:nth-of-type(2) {
    transition-delay: 0s;
    opacity: 0
  }
  .c__spnav.active .bar span:nth-of-type(3) {
    width: 6.25vw;
    transition-delay: 0s;
    transform: translateY(-1.5625vw) rotate(-45deg)
  }
  .c__spmodal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    display: block;
    background: url(../img/plan_bg.jpg) repeat 50%;
    background-size: 92.1875vw auto;
    z-index: 400;
    opacity: 0;
    transition: 1s;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    pointer-events: none
  }
  .c__spmodal.active {
    opacity: 1;
    -webkit-user-select: auto;
    -moz-user-select: auto;
    -ms-user-select: auto;
    user-select: auto;
    pointer-events: auto
  }
  .c__spmodal_inner {
    display: flex;
    align-content: center;
    align-items: center;
    width: 100%;
    padding: 25vw 14.375vw 12.5vw;
    height: 100%
  }
  .c__spmodal .logo {
    position: fixed;
    display: block;
    top: 5vw;
    left: 7.5vw;
    width: 40.625vw
  }
  .c__spmodal .logo:hover {
    opacity: .5
  }
  .c__spmodal .logo .kagamida {
    width: 100%;
    height: auto
  }
  .c__spmodal .logo .kagamida svg {
    width: 100%
  }
  .c__spmodal .logo .kana {
    position: absolute;
    width: 20.3125vw;
    top: 50%;
    right: -3.75vw;
    transform: translate(100%, -50%)
  }
  .c__spmodal .logo .kana svg {
    width: 100%
  }
  .c__spmodal .logo .en {
    position: absolute;
    left: 50%;
    width: 31.25vw;
    bottom: -10vw;
    transform: translate(-50%)
  }
  .c__spmodal .logo .en svg {
    width: 100%
  }
  .c__spmodal .c__nav {
    display: block
  }
  .c__spmodal .c__nav_item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    margin-bottom: 10vw;
    font-size: 5vw
  }
  .c__spmodal .c__nav_item .en {
    display: block;
    margin-left: 3.75vw;
    font-size: 2.5vw;
    font-family: Cormorant Garamond, serif;
    color: #aaa;
    transform: translateY(.3em)
  }
  .c__spmodal .c__nav_item .min {
    font-size: 1em
  }
  .c__spmodal .c__nav svg {
    height: 8.125vw
  }
  .c__spmodal .c__nav svg path {
    fill: #1b1b1b
  }
  .c__spmodal .c__share {
    display: flex;
    justify-content: flex-end;
    align-items: center
  }
  .c__spmodal .c__share .copyright {
    display: inline-block;
    letter-spacing: .2em;
    font-size: 1.875vw
  }
  .c__spmodal .c__share a {
    display: inline-block;
    margin-left: 5vw
  }
  .c__spmodal .nav {
    display: block;
    width: 100%;
    height: auto;
    transition: 1s;
    transform: translateY(3.125vw);
    opacity: 0
  }
  .c__spmodal .nav.active {
    transform: translate(0);
    opacity: 1
  }
  .c__footer {
    padding: 17.5vw 0
  }
  .c__footer_inner .copyright {
    width: 100%;
    text-align: center
  }
  .c__footer_inner .copyright small {
    font-size: 2.5vw;
    letter-spacing: .2em
  }
  .c__footer_inner .c__nav, .c__only--pc {
    display: none
  }
  .c__only--sp {
    display: block
  }
  .m_pc {
    display: none
  }
  .m_sp {
    display: block
  }
  .js-fadein {
    transform: translateY(6.25vw)
  }
  .js-fadein.active {
    transform: translate(0)
  }
  .kv__scroll {
    right: auto;
    left: 6.25vw;
    bottom: 5vw
  }
  .kv__scroll .label {
    order: 2;
    padding-top: 5vw;
    margin-left: 5vw;
    margin-right: 0;
    font-size: 1.875vw
  }
  .kv__scroll .arrow {
    order: 1
  }
  .kv__scroll .arrow img {
    margin-top: 5vw
  }
  .kv__main {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    top: auto;
    bottom: 7.5vw;
    left: auto;
    right: 6.25vw;
    transform: translate(0)
  }
  .kv__main .main {
    width: 18.75vw;
    order: 2
  }
  .kv__main .sub_sp {
    display: flex;
    flex-wrap: wrap;
    height: 75vw;
    margin-top: 0;
    margin-right: 5vw;
    line-height: 2.18182;
    -webkit-writing-mode: vertical-lr;
    -ms-writing-mode: tb-lr;
    writing-mode: vertical-lr;
    order: 1;
    color: #fff
  }
  .kv__main .sub_sp p {
    height: 100%;
    text-align: left
  }
  .kv__main .sub_sp p:first-of-type {
    order: 2
  }
  .kv__main .sub_sp p:nth-of-type(2) {
    order: 1;
    margin-right: .5em
  }
  .kv__main .sub_sp span {
    display: inline-block;
    opacity: 0;
    transition: .5s;
    font-size: 3.4375vw;
    color: #fff;
    transform: translateY(3.125vw)
  }
  .kv__main .sub_sp span + span {
    margin-left: 0;
    margin-top: .6em
  }
  .kv__main .sub_sp span.active {
    opacity: 1;
    transform: translate(0)
  }
  .banner__inner {
    width: 78.125vw;
    padding-top: 12.5vw;
    box-shadow: 0 2.5vw 1.5625vw -1.5625vw rgba(0, 0, 0, .1)
  }
  .banner__inner:hover {
    top: .9375vw;
    box-shadow: 0 1.5625vw 1.5625vw -1.5625vw rgba(0, 0, 0, .1)
  }
  .concept__inner {
    padding-top: 15vw
  }
  .concept__title {
    display: block;
    margin-bottom: 9.375vw;
    padding: 0 6.25vw;
    text-align: center
  }
  .concept__title_l {
    width: 100%;
    padding-right: 0;
    text-align: center
  }
  .concept__title_l:before {
    display: none
  }
  .concept__title_r {
    width: 100%;
    padding-left: 0
  }
  .concept__title_r .txt {
    margin-bottom: 7.5vw;
    font-size: 5vw;
    letter-spacing: .5em
  }
  .concept__title_r .sub {
    font-size: 2.5vw;
    line-height: 2.5;
    letter-spacing: .2em;
    text-align: center
  }
  .concept__mainimg {
    padding: 28.125vw 0 0
  }
  .concept__mainimg .parts_br, .concept__mainimg .parts_lt {
    width: 87.5vw;
    height: 87.5vw
  }
  .concept__mainimg .parts_lt {
    top: 6.25vw;
    left: -43.75vw
  }
  .concept__mainimg .parts_br {
    bottom: -21.875vw;
    right: -43.75vw
  }
  .concept__mainimg .mainimg {
    width: 118.75vw;
    height: 118.75vw;
    margin-left: -9.375vw
  }
  .concept__mainimg .mainimg.hidden:before {
    border: 93.75vw solid #fff
  }
  .concept__mainimg .mainimg:after {
    width: .3125vw;
    height: 28.125vw;
    top: -30.9375vw;
    left: 50%;
    display: block
  }
  .concept__mainimg .mainimg:before {
    width: 125.3125vw;
    height: 125.3125vw;
    border: .00003vw solid #fff
  }
  .concept__mainimg .mainimg .frame {
    width: 125vw;
    height: 125vw;
    border: .3125vw solid #eddbff
  }
  .concept__txt {
    display: block;
    padding: 12.5vw 12.5vw 0
  }
  .concept__txt > p {
    -webkit-writing-mode: horizontal-tb;
    -ms-writing-mode: lr-tb;
    writing-mode: horizontal-tb;
    white-space: normal;
    font-size: 3.75vw;
    line-height: 2.33333;
    letter-spacing: .2em;
    padding-left: .2em;
    opacity: 0;
    transform: translateY(2.77778vw);
    transition: opacity .5s, transform 2s
  }
  .concept__txt > p.active {
    opacity: 1;
    transform: translate(0);
    transition: opacity .55s, transform 2s
  }
  .concept__txt > p.active span {
    opacity: 1
  }
  .concept__txt > p br {
    display: none
  }
  .concept__txt > p > span {
    opacity: 1;
    display: inline;
    font-size: 3.75vw;
    line-height: 2.33333;
    letter-spacing: .2em;
    transform: translate(0)
  }
  .concept__txt > p + p {
    margin-right: 0;
    margin-top: 10vw
  }
  .plan {
    padding-top: 18.75vw;
    padding-bottom: 0
  }
  .plan__item {
    display: block;
    margin-bottom: 18.75vw
  }
  .plan__item:last-child:before {
    height: 92%
  }
  .plan__item:before {
    width: 93.75vw;
    top: 31.25vw;
    bottom: auto;
    background-size: 92.1875vw auto
  }
  .plan__item .img {
    width: 93.75vw
  }
  .plan__item .contents {
    width: 100%;
    padding: 10vw 6.25vw 0
  }
  .plan__item .contents .title {
    padding-bottom: 7.5vw;
    font-size: 7.5vw
  }
  .plan__item .contents .title:before {
    width: 7.5vw;
    height: .3125vw
  }
  .plan__item .contents .copy {
    margin-top: 6.25vw;
    font-size: 4.6875vw;
    line-height: 2.33333
  }
  .plan__item .contents .txt {
    margin-top: 5vw;
    font-size: 3.75vw;
    line-height: 2
  }
  .plan__item.left .img {
    margin-left: auto;
    margin-right: 0
  }
  .plan__item.left .contents {
    padding-right: 18.75vw
  }
  .plan__item.right .img {
    margin-right: auto;
    margin-left: 0
  }
  .plan__item.right .contents {
    padding-left: 18.75vw
  }
  .campus {
    padding-top: 12.5vw;
    padding-bottom: 0
  }
  .campus__header {
    padding: 0 6.25vw
  }
  .campus__nav {
    padding-top: 3.75vw
  }
  .campus__nav .arrow {
    width: 10vw;
    height: 10vw;
    border: .3125vw solid #eee
  }
  .campus__nav .arrow svg {
    width: 4.375vw
  }
  .campus__nav .arrow.next {
    margin-left: 2.5vw;
    background: #a22041
  }
  .campus__nav .arrow.next svg {
    fill: #fff
  }
  .campus__nav .progressbar {
    display: none
  }
  .campus__slider {
    padding-bottom: 5vw
  }
  .campus__slider .swiper-slide-active img {
    box-shadow: 0 1.5625vw 3.125vw -.9375vw rgba(0, 0, 0, .2)
  }
  .campus__slider .item {
    padding: 0 2.5vw 4.375vw
  }
  .campus__slider .item span {
    margin-bottom: 2.5vw;
    font-size: 3.125vw
  }
  .campus__slider .item img {
    border-radius: 1.5625vw;
    box-shadow: 0 .625vw 3.125vw -.9375vw rgba(0, 0, 0, .2)
  }
  .campus__mlmg {
    width: 81.25vw
  }
  .campus__mlmg .btn {
    border: .3125vw solid #ccc;
    border-radius: 1.5625vw;
    padding: 3.125vw 5vw;
    background-size: 92.1875vw auto;
    box-shadow: 0 2.5vw 1.5625vw -1.5625vw rgba(0, 0, 0, .1)
  }
  .campus__mlmg .btn:hover {
    top: .9375vw;
    box-shadow: 0 .9375vw 1.5625vw -1.5625vw rgba(0, 0, 0, .1)
  }
  .campus__mlmg .txt {
    font-size: 3.75vw;
    line-height: 1.75;
    padding-left: 0
  }
  .campus__mlmg .right .en, .campus__mlmg .right .jp {
    display: none
  }
  .campus__mlmg .right .arrow {
    margin-left: 0;
    width: 9.375vw;
    height: 9.375vw
  }
  .campus__mlmg .right .arrow svg {
    width: 4.375vw
  }
  .information {
    padding-top: 4.16667vw;
    padding-bottom: 28.125vw
  }
  .information__header {
    padding: 0 6.25vw
  }
  .information__contents {
    margin-top: -4.375vw;
    padding: 18.75vw 6.25vw 40.625vw
  }
  .information__contents_bg {
    display: none
  }
  .information__contents_item {
    display: block;
    width: 100%
  }
  .information__contents_item + .information__contents_item {
    margin-top: 18.75vw
  }
  .information__contents_item_l {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    min-width: auto;
    min-width: 0;
    width: 100%;
    padding-bottom: 5vw
  }
  .information__contents_item_l .title {
    position: relative;
    margin-right: 3.125vw;
    margin-bottom: 0;
    font-size: 5vw
  }
  .information__contents_item_l .title:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -5vw;
    width: 100%;
    height: .3125vw;
    background-color: #ccc
  }
  .information__contents_item_l .sub {
    padding-top: .5em;
    font-size: 2.5vw
  }
  .information__contents_item_r {
    margin-top: 6.25vw;
    border-left: none;
    padding-left: 0
  }
  .information__contents_item_r a, .information__contents_item_r p {
    font-size: 3.4375vw
  }
  .information__contents_item_r dl + dl {
    margin-top: 5vw
  }
  .information__contents_item_r dl dt {
    width: 25vw;
    font-size: 3.4375vw;
    text-align: left;
    line-height: 1.81818
  }
  .information__contents_item_r dl dd {
    width: 62.5vw;
    padding-left: 0;
    font-size: 3.4375vw;
    line-height: 1.81818
  }
  .information__contents_item_r dl dd a.tel {
    pointer-events: auto;
    font-size: 3.4375vw
  }
  .information__contents_item_r dl dd a.tel:before {
    display: block
  }
  .information__contents_item_r dl dd span {
    font-size: 3.4375vw
  }
  .information__contents_item_r ul {
    max-width: auto;
    max-width: none;
    width: 100%
  }
  .information__contents_item_r ul li {
    margin-bottom: 2.5vw;
    margin-right: 2.5vw;
    font-size: 3.4375vw
  }
  .information__contents_item_r ul li.last {
    margin-bottom: 2.5vw
  }
  .access {
    padding-top: 12.5vw
  }
  .access__inner {
    padding: 0 6.25vw
  }
  .access__link {
    padding-bottom: 7.5vw
  }
  .access__link span {
    font-size: 3.125vw
  }
  .access__link img {
    width: 3.125vw
  }
  .access__map {
    height: 75.625vw;
    margin-top: -4.375vw
  }
  .reserve__bg {
    background: url(../img/reservation_bg_sp.jpg) no-repeat 0;
    background-size: cover
  }
  .reserve__inner {
    display: block;
    padding: 15vw 6.25vw;
    text-align: center
  }
  .reserve__inner .en {
    opacity: .2
  }
  .reserve__contents {
    width: 100%;
    padding-top: 7.5vw;
    text-align: center
  }
  .reserve__contents .title {
    margin-bottom: 10vw
  }
  .reserve__contents .title span {
    font-size: 5vw;
    letter-spacing: .2em
  }
  .reserve__contents .title span:before {
    height: .3125vw
  }
  .reserve__contents .txt {
    font-size: 3.4375vw;
    line-height: 2
  }
}
@media screen and (max-width:768px) and (max-width:768px) {
  .c__spmodal .c__nav_item .min {
    font-size: .6em;
    margin-top: .3em
  }
  .c__spmodal .c__share {
    justify-content: center;
    padding-left: 0;
    padding-right: 5vw
  }
}
@media screen and (min-width:1200px) {
  .plan__item:first-of-type .img {
    padding-bottom: 1em
  }
  .plan__item:nth-of-type(2) .img {
    padding-bottom: 2em
  }
  .plan__item:nth-of-type(3) .img {
    padding-bottom: 3em
  }
}