.mv{ position: relative; padding-top: 9rem; background: url(../images/common/webp/bg01.webp); padding-bottom: 7.5rem; }
.mv .main-slide{ width: calc(100vw - 10rem); }
.mv .main-slide li{ overflow: hidden; border-radius: 10rem 10rem 0 0; }
.mv .main-slide li img{ width: 100%; display: block; object-fit: cover; object-position: center; transform: scale(1.1); }
.mv .main-slide li.swiper-slide-active img,
.mv .main-slide li.swiper-slide-duplicate-active img,
.mv .main-slide li.swiper-slide-prev img{ animation: zoom 8s linear 0s 1 normal both; }
.mv .inner{ width: 105rem; margin: -10rem auto 0; position: relative; z-index: 10; }
.mv .inner h1 strong{ font-size: 5rem; color: var(--sub-color01); line-height: 1.3; letter-spacing: .12em; }
.mv .inner h1 small{ display: block; font-size: 2rem; margin-top: 1rem; }
.mv .right{ padding-top: 4rem; }
.mv .right ul{ display: flex; margin-bottom: 1.8rem; }
.mv .right ul li{ width: 12rem; height: 12rem; display: flex; justify-content: center; align-items: center; position: relative; z-index: 0; text-align: center; font-weight: 700; color: var(--sub-color01); line-height: 1.4; }
.mv .right ul li:before{ content: ''; width: 100%; height: 100%; border-radius: 100%; background: url(../images/index/webp/bg-round01.webp) no-repeat center/cover; position: absolute; top: 0; left: 0; z-index: -1; }
.mv .right ul li:after{ content: ''; width: 10rem; height: 2rem; background: url(../images/index/shadow01.png) no-repeat center/contain; position: absolute; bottom: -1rem; left: 50%; transform: translateX(-50%); z-index: -2; }
.mv .right ul li + li{ margin-left: .7rem; }
.mv .right p{ font-size: 1rem; text-align: center; line-height: 1.6; }
@keyframes zoom {
  0% { transform: scale(1.1); }
  100% { transform: scale(1); }
}

h2{ font-size: 3.2rem; color: var(--sub-color01); text-align: center; line-height: 1.5; }
h2.ttl-logo{ padding-top: 7.4rem; background: url(../images/common/ttl-logo01.png) no-repeat top center/10rem; }
h2.ttl-logo + p{ text-align: center; font-size: 1.6rem; margin-top: 1.8rem; }

.en-border{ display: block; text-align: center; font-size: 2rem; letter-spacing: .2em; background: var(--gradation01); -webkit-background-clip: text; -webkit-text-fill-color: transparent; position: relative; }
.en-border:before{ content: ''; width: .4rem; height: 6rem; background: linear-gradient(180deg, rgba(130,190,220,1) 0%, rgba(103,130,237,1) 100%); position: absolute; left: 50%; transform: translateX(-50%); }

.sec-info{ margin-bottom: 10rem; }
.sec-info .en-border{ padding-top: 4.8rem; margin-bottom: 3rem; }
.sec-info .en-border:before{ top: -3rem; }
.sec-info h2 + p{ text-align: center; font-size: 1.6rem; margin-bottom: 4.2rem; }
.sec-info .news-list{ border-top: solid .3rem var(--bg-color01); border-bottom: solid .3rem var(--bg-color01); padding: 2.3rem 0; margin-bottom: 5rem; }
.sec-info .news-list li + li{ margin-top: 2.3rem; padding-top: 2.5rem; background: url(../images/common/border01.png) repeat-x left top/auto .2rem; }
.sec-info .news-list li a{ display: flex; width: 100%; align-items: center; position: relative; min-height: 3rem;  }
.sec-info .news-list li a .time{ display: block; width: 10rem; }
.sec-info .news-list li a .ttl{ display: block; width: calc(100% - 10rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 5rem; }
.sec-info .news-list li a .btn-arrow{ width: 3rem; height: 3rem; border-radius: 100%; position: absolute; top: 50%; right: 0; transform: translateY(-50%); z-index: 0; overflow: hidden; }
.sec-info .news-list li a .btn-arrow:before{ content: ''; width: 200%; height: 100%; background: var(--gradation02); position: absolute; top: 0; left: 0; z-index: -1; transition: .5s; }
.sec-info .news-list li a .btn-arrow:after{ content: ''; width: .6rem; height: .6rem; border-bottom: solid 1px #fff; border-right: solid 1px #fff; position: absolute; top: 50%; left: 50%; transform: translate(-60%,-50%) rotate(-45deg); }
.sec-info .news-list li a:hover{ opacity: 1; }
.sec-info .news-list li a:hover .btn-arrow:before{ transform: translateX(-3rem); }
.sec-info .info-row{ margin-bottom: 4.5rem; }
.sec-info .banner-cerec{ width: 100%; height: 23rem; border-radius: calc(23rem / 2); display: flex; align-items: center; justify-content: center; position: relative; z-index: 0; overflow: hidden; }
.sec-info .banner-cerec:before{ content: ''; width: 200%; height: 100%; background: var(--gradation02); position: absolute; top: 0; left: 0; z-index: -2; transition: .5s; }
.sec-info .banner-cerec:after{ content: ''; width: calc(100% - 1.6rem); height: calc(100% - 1.6rem); border-radius: calc((23rem - 1.6rem) / 2); background: url(../images/index/webp/banner-cerec01.webp) no-repeat center/cover; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: -1; }
.sec-info .banner-cerec dt{ font-size: 1.6rem; text-align: center; margin-bottom: 1.5rem; padding: .2em 1em; position: relative; z-index: 0; }
.sec-info .banner-cerec dt:before{ content: ''; width: 100%; height: 100%; border-radius: 2em; background: #fff; position: absolute; top: 0; left: 0; z-index: -2; box-shadow: 0px 0px 8px -6px rgba(0,0,0,0.6); }
.sec-info .banner-cerec dt:after{ content: ''; width: 2.4rem; height: 1.2rem; background: #fff; clip-path: polygon(50% 100%, 0 0, 100% 0); position: absolute; bottom: -1.2rem; left: 50%; transform: translateX(-50%); }
.sec-info .banner-cerec dd{ line-height: 1.4; font-size: 3.2rem; text-align: center; color: var(--sub-color01); }
.sec-info .banner-cerec .arrow{ width: 3rem; height: 3rem; border-radius: 100%; position: absolute; top: 50%; right: 4rem; transform: translateY(-50%); z-index: 0; overflow: hidden; }
.sec-info .banner-cerec .arrow:before{ content: ''; width: 200%; height: 100%; background: var(--gradation02); position: absolute; top: 0; left: 0; z-index: -1; transition: .5s; }
.sec-info .banner-cerec .arrow:after{ content: ''; width: 0.6rem; height: 0.6rem; border-bottom: solid 1px #fff; border-right: solid 1px #fff; position: absolute; top: 50%; left: 50%; transform: translate(-60%,-50%) rotate(-45deg); }
.sec-info .banner-cerec:hover{ opacity: 1; }
.sec-info .banner-cerec:hover:before{ transform: translateX(-50%); }
.sec-info .banner-cerec:hover .arrow:before{ transform: translateX(-50%); }

.sec-concept{ padding: 14rem 0 13rem; position: relative; z-index: 0; }
.sec-concept .bg01{ width: calc(100vw - 10rem); height: 50%; object-fit: cover; object-position: center; position: absolute; top: 0; right: 0; z-index: -1; border-radius: 10rem 0 0 0; }
.sec-concept .bg02{ width: calc(100vw - 10rem); height: 50%; object-fit: cover; object-position: center; position: absolute; bottom: 0; left: 0; z-index: -1; border-radius: 0 0 10rem 0; }
.sec-concept .en-border{ padding-bottom: 5rem; }
.sec-concept .en-border:before{ bottom: -3rem; }
.sec-concept .white-wrap{ background: #fff; width: 60rem; margin: 0 auto; }
.sec-concept .white-wrap .inner{ padding: 9rem 5rem 5rem; }
.sec-concept .white-wrap .inner h2{ margin-bottom: 3rem; }
.sec-concept .white-wrap .inner h2 + p{ text-align: center; font-size: 1.6rem; line-height: 2.2; margin-bottom: 3.5rem; }
.sec-concept .white-wrap .inner .btn-row .btn-wrap{ width: 24rem; }
.sec-concept .white-wrap .inner .btn-row .btn-wrap small{ font-size: 1.2rem; color: var(--sub-color01); font-weight: 700; display: table; margin: 0 auto .1rem; position: relative; }
.sec-concept .white-wrap .inner .btn-row .btn-wrap small:before{ content: ''; width: 1px; height: 2rem; background: var(--sub-color01); position: absolute; left: -1.4rem; top: 50%; transform: translateY(-50%) rotate(-45deg); }
.sec-concept .white-wrap .inner .btn-row .btn-wrap small:after{ content: ''; width: 1px; height: 2rem; background: var(--sub-color01); position: absolute; right: -1.4rem; top: 50%; transform: translateY(-50%) rotate(45deg); }
.sec-concept .white-wrap .inner .btn-row .btn-wrap .btn{ font-size: 2rem; }
.sec-concept .white-wrap .inner .btn-row .btn-wrap .btn span{ padding-left: 3rem; background: no-repeat center left/2.4rem; }
.sec-concept .white-wrap .inner .btn-row .btn-wrap .btn.tel span{ background-image: url(../images/common/icon-tel01.png); }
.sec-concept .white-wrap .inner .btn-row .btn-wrap .btn.resv span{ background-image: url(../images/common/icon-resv01.png); }
.sec-concept .white-wrap > small{ display: block; padding: 4rem 5rem; background: var(--bg-color01); font-size: 1rem; }

.sec-feature{ padding: 63rem 0 10rem; background: url(../images/common/webp/bg01.webp); margin-top: -510px;}
.sec-feature h2{ margin-bottom: 4rem; }
.sec-feature .point{ display: flex; justify-content: space-between; width: 47rem; margin: 0 auto 2rem; }
.sec-feature .point li{ width: 15rem; height: 15rem; border-radius: 100%; display: flex; justify-content: center; align-items: center; text-align: center; color: #fff; line-height: 1.6; font-weight: 700; position: relative; z-index: 0; }
.sec-feature .point li:before{ content: ''; width: 100%; height: 100%; border-radius: 100%; background: url(../images/index/webp/bg-round02.webp) no-repeat center/cover; position: absolute; top: 0; left: 0; z-index: -1; }
.sec-feature .point li:after{ content: ''; width: 12rem; height: 2.4rem; background: url(../images/index/shadow01.png) no-repeat center/contain; position: absolute; bottom: -1.2rem; left: 50%; transform: translateX(-50%); z-index: -2; }
.sec-feature .white-wrap{ padding-bottom: 3rem; width: 60rem; margin: 0 auto 10rem; position: relative; z-index: 0; }
.sec-feature .white-wrap:before{ content: ''; width: 100%; height: calc(100% - 7.5rem); background: #fff; border-radius: 10rem 10rem 0 0; position: absolute; bottom: 0; left: 0; z-index: -1; }
.sec-feature .white-wrap:after{ content: ''; width: 100%; height: .4rem; background: var(--gradation01); position: absolute; bottom: 0; left: 0; }
.sec-feature .white-wrap p{ font-size: 1.6rem; text-align: center; }
.sec-feature .feature-list{ display: flex; flex-wrap: wrap; margin-bottom: 7rem; }
.sec-feature .feature-list li{ width: 30rem; margin-right: calc((100% - 30rem * 3) / 2); }
.sec-feature .feature-list li:nth-of-type(3n){ margin-right: 0; }
.sec-feature .feature-list li:nth-of-type(n+4){ margin-top: 6rem; }
.sec-feature .feature-list li .no{ font-size: 1rem; color: var(--sub-color01); display: flex; align-items: flex-start; justify-content: flex-end; margin-bottom: -2rem; position: relative; }
.sec-feature .feature-list li .no span{ display: block; padding-top: .2rem; margin-right: .4rem; }
.sec-feature .feature-list li .no strong{ width: 4rem; height: 4rem; border-radius: 100%; display: flex; justify-content: center; align-items: center; font-size: 2rem; color: #fff; background: var(--sub-color01); }
.sec-feature .feature-list li img{ display: block; width: 100%; margin-bottom: 1.6rem; }
.sec-feature .feature-list li h3{ font-size: 2rem; color: var(--sub-color01); text-align: center; line-height: 1.5; margin-bottom: 1rem; }
.sec-feature .feature-list + .btn{ margin: 0 auto; }

.sec-dr{ padding-top: 10rem; padding-bottom: 10rem; z-index: 0; }
.sec-dr:before{ content: ''; width: 100rem; height: calc(100% - 29rem); background: var(--gradation01); opacity: .1; border-radius: 10rem 10rem 0 0; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); z-index: -1; }
.sec-dr .item01{ position: absolute; top: -12.5rem; right: -35rem; }
.sec-dr .en-border{ padding-bottom: 5rem; }
.sec-dr .en-border:before{ bottom: -3rem; }
.sec-dr .dr-row{ align-items: flex-end; margin-bottom: 7rem; }
.sec-dr .dr-row .left{ width: 32rem; position: relative; }
.sec-dr .dr-row .left .name{ width: 20rem; height: 20rem; border-radius: 100%; background: url(../images/index/webp/bg-round01.webp) no-repeat center/cover; display: flex; justify-content: center; align-items: center; text-align: center; position: absolute; bottom: -2rem; left: -5rem; box-shadow: 0px 0px 16px -6px rgba(0,0,0,0.2); }
.sec-dr .dr-row .left .name dt{ font-weight: 700; color: var(--sub-color01); line-height: 1.5; margin-bottom: 1.3rem; }
.sec-dr .dr-row .left .name dd{ font-size: 2rem; color: #000; line-height: 1.5; }
.sec-dr .dr-row .left .name dd small{ display: block; font-size: 1.2rem; }
.sec-dr .dr-row .right{ width: 40rem; padding-bottom: 4.8rem; position: relative; }
.sec-dr .dr-row .right h3{ font-size: 3.2rem; color: var(--sub-color01); margin-bottom: .8rem; }
.sec-dr .dr-row .right p{ font-size: 1.6rem; }
.sec-dr .dr-row .right .item02{ position: absolute; bottom: -3.4rem; left: 0; }
.sec-dr .dr-row ~ p + p{ margin-top: 1.6rem; }
.sec-dr .dr-row ~ p + .btn{ margin: 4rem auto 0; }

.img-box01{ height: 45rem; position: relative; overflow: hidden; margin-bottom: 10rem; }
.img-box01 img{ display: block; width: 100%; height: 100vh; object-fit: cover; object-position: center; }

.sec-treatment{ margin-bottom: 9rem; }
.sec-treatment h2 + p{ margin-bottom: 4.2rem; }

.sec-first{ padding-top: 10rem; z-index: 0; }
.sec-first .bg01{ width: calc(50vw + 8rem); height: 46rem; object-fit: cover; object-position: center; position: absolute; left: calc(-50vw + 50rem); top: 0; z-index: -1; border-radius: 0 10rem 0 0; }
.sec-first .txt{ width: 58rem; margin-left: auto; position: relative; z-index: 0; padding: 9rem 1.4rem 9rem 11.5rem; }
.sec-first .txt:before{ content: ''; width: calc(50vw + 8rem); height: 100%; background: url(../images/common/webp/bg01.webp); position: absolute; left: 0; top: 0; z-index: -1; border-radius: 10rem 0 0 0; }
.sec-first .txt .round-txt{ width: 22rem; height: 22rem; border-radius: 100%; background: url(../images/index/webp/bg-round01.webp) no-repeat center/cover; display: flex; justify-content: center; font-size: 2.2rem; color: #000; line-height: 1.5; text-align: center; padding-top: 10rem; position: absolute; top: -4.4rem; right: 1.4rem; box-shadow: 0px 0px 16px -6px rgb(0 0 0 / 20%); }
.sec-first .txt .round-txt:before{ content: ''; width: 2.6rem; height: 3.4rem; background: url(../images/index/first-icon01.png) no-repeat center/contain; position: absolute; top: 5.5rem; left: 50%; transform: translateX(-50%); }
.sec-first .txt h2{ text-align: left; margin-bottom: 1.8rem; }
.sec-first .txt p{ line-height: 1.8; margin-bottom: 2.4rem; }
.sec-first .txt .btn{ margin: 0 auto; }

.sec-course{ padding-top: 10rem; padding-bottom: 10rem; z-index: 0; }
.sec-course .bg01{ position: absolute; top: 0; right: -56rem; z-index: -1; max-width: none; }
.sec-course .bg02{ position: absolute; bottom: 0; left: -30rem; z-index: -1; }
.sec-course h2 + p{ margin-bottom: 4rem; }
.sec-course h3{ background: var(--sub-color01); font-size: 2rem; color: #fff; text-align: center; border-radius: 2rem 2rem 0 0; padding: .35em 0; margin-bottom: 2rem; }
.sec-course .course-row{ align-items: flex-start; }
.sec-course .course-row table{ width: 51rem; }
.sec-course .course-row table th{ vertical-align: middle; padding-bottom: .3rem; width: 11rem; }
.sec-course .course-row table th span{ width: 10rem; height: 3.4rem; background: var(--bg-color01); font-weight: 700; display: flex; justify-content: center; align-items: center; justify-content: center; border-radius: 2em; }
.sec-course .course-row table td{ padding-bottom: .3rem; vertical-align: middle; background: url(../images/common/border02.png) repeat-x left bottom/auto 1px; }
.sec-course .course-row table tr + tr > *{ padding-top: .3rem; }
.sec-course .course-row table td span{ display: block; padding-left: 2.8rem; position: relative; line-height: 1.6; }
.sec-course .course-row table td span:before{ content: ''; width: 1.8rem; height: 1.8rem; background: no-repeat center/contain; position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.sec-course .course-row table td span.icon01:before{ background-image: url(../images/index/course-icon01.png); }
.sec-course .course-row table td span.icon02:before{ background-image: url(../images/index/course-icon02.png); }
.sec-course .course-row table td span.icon03:before{ background-image: url(../images/index/course-icon03.png); }
.sec-course .course-row + h3{ margin-top: 5rem; }
.sec-course .course-row:last-of-type{ margin-bottom: 7.6rem; }
.sec-course .course-row + small{ display: block; font-size: 1rem; text-align: center; margin-bottom: 2rem; }
.sec-course > .btn{ margin: 0 auto; }

.sec-facility{ padding-top: 10rem; background: url(../images/common/webp/bg01.webp); }
.sec-facility .en-border{ padding-bottom: 5rem; z-index: 1; }
.sec-facility .en-border:before{ bottom: -3rem; }
.sec-facility .wrap{ background: #fff; border-radius: 10rem 10rem 0 0; padding-top: 7.5rem; padding-bottom: 10rem; z-index: 0; box-shadow: 0px 0px 16px -6px rgb(0 0 0 / 20%); }
.sec-facility .bg01{ position: absolute; bottom: 0; right: calc(-50vw + 50rem); z-index: -1; }
.sec-facility h2{ margin-bottom: 3rem; }
.sec-facility h2 + p{ font-size: 1.6rem; text-align: center; line-height: 2.1; margin-bottom: 4rem; }
.sec-facility .btn-row{ width: 62rem; margin: 0 auto; }

.loop-slide{ margin-bottom: 10rem; }
.loop-slide .swiper-wrapper{ transition-timing-function: linear; }
.loop-slide li img{ display: block; width: 100%; }