@charset "UTF-8";

/* ----------------------------------------------------------mv */
.mv {
  position: relative;
  background-image: url('../images/mv_bg@2x.png');
  background-size: 1040px 383px;
  background-repeat: no-repeat;
  background-position: center 60px;
  text-align: center;
  margin-bottom: 100px;
}

.mv::before {
  position: absolute;
  display: block;
  content :'';
  background-color: #ff6e82 ;
  top: 0;
  left: 0;
  width: 100%;
  height: 500px;
  z-index: -1;
}

.mv_wrapper {
  position: relative;
  height: 700px;
  margin-bottom: 30px;
}

.mv .mv_title {
  position: absolute;
  top: 50px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 35px;
  text-align: center;
  color: #fff;
  width: 100%;
  font-weight: 500;
  letter-spacing: .15em;
  text-indent: .15em;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate(-50%, 30px);
  -webkit-transform-style: preserve-3d;
  backface-visibility: hidden;
  filter: alpha(opacity=0);
  opacity: 0;
  transform: translate(-50%, 30px);
  transform-style: preserve-3d;
  -webkit-transition: all .8s linear 0s;
  -ms-transition: all .8s linear 0s;
  -moz-transition: all .8s linear 0s;
  transition: all .8s linear 0s;
}

.mv_title.is-show {
  -webkit-transform: translate(-50%, 0);
  filter: alpha(opacity=100);
  opacity: 1;
  transform: translate(-50%, 0);
}

.mv .mv_title span.frame-white {
  background-color: #fff;
  border-radius: 6px;
  font-size: 26px;
  width: 76px;
  height: 36px;
  line-height: 36px;
  display: inline-block;
  text-align: center;
  margin-right: 10px;
  color: #333;
}

.mv .mv_title span.sub {
  font-size: 26px;
  line-height: 36px;
  color: #333;
}

.mv .mv_title span {
  margin-bottom: 10px;
}

.mv_logo {
  top: 179px;
  left: 290px;
  width: 299px;
  transition: all .8s linear .5s;
}

.mv .mv_caution {
  margin: 20px auto 0;
  text-align: center;
  opacity: 0;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate(0, 30px);
  -webkit-transform-style: preserve-3d;
  backface-visibility: hidden;
  filter: alpha(opacity=0);
  transform: translate(0, 30px);
  transform-style: preserve-3d;
  transition: all .8s linear 3s;
}

.mv .mv_caution.is-show {
  -webkit-transform: translate(0, 0);
  filter: alpha(opacity=100);
  opacity: 1;
  transform: translate(0, 0);
}

.mv_illust1 {
  top: 262px;
  left: 182px;
  width: 519px;
  transition: all .8s linear 1s;
}

.mv_illust2 {
  top: 427px;
  left: -12px;
  width: 225px;
  transition: all .8s linear 1.5s;
}

.mv_illust3 {
  top: 524px;
  right: -14px;
  width: 261px;
  transition: all .8s linear 2s;
}

.mv_logo,
.mv_illust1,
.mv_illust2,
.mv_illust3 {
  position: absolute;
  opacity: 0;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate(0, 30px);
  -webkit-transform-style: preserve-3d;
  backface-visibility: hidden;
  filter: alpha(opacity=0);
  transform: translate(0, 30px);
  transform-style: preserve-3d;
}

.mv_logo.is-show,
.mv_illust1.is-show,
.mv_illust2.is-show,
.mv_illust3.is-show {
  -webkit-transform: translate(0, 0);
  filter: alpha(opacity=100);
  opacity: 1;
  transform: translate(0, 0);
}

.btn-request {
  opacity: 0;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate(0, 30px);
  -webkit-transform-style: preserve-3d;
  backface-visibility: hidden;
  filter: alpha(opacity=0);
  transform: translate(0, 30px);
  transform-style: preserve-3d;
  transition: all .8s linear 3s;
}

.btn-request.is-show {
  -webkit-transform: translate(0, 0);
  filter: alpha(opacity=100);
  opacity: 1;
  transform: translate(0, 0);
}

.btn-request a {
  color: #fff;
  line-height: 60px;
  color: #fff;
  font-size: 20px;
  width: 350px;
  height: 60px;
  margin: 0 auto;
  background: linear-gradient(to right, #6acffe, #5bd1d6);
}


/* ----------------------------------------------------------support*/
.support {

}

.support_lead {
  font-size: 22px;
  line-height: 38px;
  text-align: center;
  margin-bottom: 30px;
  font-weight: 400;
}

.support_main {

}

.support_map {
  position: relative;
  width: 100%;
  height: 517px;
  margin-bottom: 60px;
}

.support_map-bg,
.support_map-link {
  position: absolute;
}

.support_map-link {
  z-index: 2;
}

.support_map-link a {
  display: block;
  transition: all .5s ease;
  transform: scale(1);
  transform-origin: center;
}

.support_map-link a:hover {
  transform: scale(1.27);
}

.support_map-bg {
  width: 100%;
  height: 517px;
  top: 0;
  left: 0;
}

.support_map-link1 {
  top: 250px;
  left: 152px;
  width: 52px;
}

.support_map-link2 {
  top: 343px;
  left: 266px;
  width: 89px;
}

.support_map-link5 {
  top: 230px;
  left: 289px;
  width: 64px;
}

.support_map-link6 {
  top: 172px;
  left: 494px;
  width: 73.5px;
}

.support_map-link7 {
  top: 80px;
  right: 291px;
  width: 66px;
}

.support_map-link8 {
  top: 122px;
  right: 172px;
  width: 73px;
}

.support_map-link9 {
  top: 63px;
  right: 175px;
  width: 59px;
}

.support_map-link10 {
  bottom: 35px;
  right: 0px;
  width: 137.5px;
}

.support_movie,
.support_movie iframe {
  width: 560px;
  height: 315px;
  margin: 0 auto 120px;
  text-align: center;
}

/* ----------------------------------------------------------共通 */
.headings {
  font-size: 44px;
  color: #333;
  font-weight: 500;
  text-align: center;
  letter-spacing: .1em;
  text-indent: .1em;
}

/* ----------------------------------------------------------feature*/
.feature {
  margin-bottom: 150px;
}

.feature_list {
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}

.feature_list-lead {
  font-size: 28px;
  color: #ff6e82;
  text-align: center;
  letter-spacing: .05em;
  text-indent: .05em;
  margin-bottom: 20px;
}

.feature_list-text {
  font-size: 14px;
  text-align: center;
  letter-spacing: .05em;
  text-indent: .05em;
}

.feature_list-item {
  position: relative;
  margin: 70px 0 0;
  padding: 60px 45px 0;
  list-style: none;
  width: 280px;
  height: 280px;
  border: solid 4px #ffe4ed;
  border-radius: 25px;
}

.feature_list-item::before {
  content: '';
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  background-color: #fff;
  width: 80px;
  height: 20px;
}

.feature_list-item::after {
  content: '';
  position: absolute;
  top: -23px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  background-repeat: no-repeat;
}

.feature_list-item:nth-child(2) {
  transition-delay: .5s;
 }
.feature_list-item:nth-child(3) {
  transition-delay: 1s;
 }

.feature_list-item:nth-child(1)::after {
  background-image: url('../images/feature_headings1@2x.png');
  background-size: 23px 44px;
  width: 23px;
  height: 44px;
}

.feature_list-item:nth-child(2)::after {
  background-image: url('../images/feature_headings2@2x.png');
  background-size: 30.5px 44.5px;
  width: 30.5px;
  height: 44.5px;
}

.feature_list-item:nth-child(3)::after {
  background-image: url('../images/feature_headings3@2x.png');
  background-size: 30px 45px;
  width: 30px;
  height: 45px;
}


/* ----------------------------------------------------------service*/
.service {
  padding: 120px 0;
  background-color: #feecf2;
}

#service_1,
#service_2,
#service_3 {
  padding-top: 65px;
  margin-top: 85px;
}

.service_list{
  width: 720px;
  margin: 0 auto 100px;
  display: flex;
  justify-content: space-between;
}

.service_list-item {
  position: relative;
  color: #fff;
}

.service_list-item a {
  display: block;
  width: 220px;
  height: 220px;
  font-size: 22px;
  line-height: 32px;
  letter-spacing: .05em;
  text-indent: .05em;
  text-align: center;
  color: #fff;
  position: relative;
  border-radius: 50%;
  background: linear-gradient( to right, #ff6496, #ff823d);
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}

.service_list-item:nth-child(1) {
  transition-delay: .5s;
 }
.service_list-item:nth-child(2) {
  transition-delay: 1s;
 }
.service_list-item:nth-child(3) {
  transition-delay: 1.5s;
 }


.service_list-item::before {
  content: '';
  position: absolute;
  top: 36px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  z-index: 1;
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
}

.service_list-item:hover::before,
.service_list-item:hover::after {
/*  -webkit-transform: translate(-50%,-5px);
  transform: translate(-50%,-5px);
  -webkit-transition: all .3s ease;
  transition: all .3s ease;*/
}


.service_list-item:nth-child(1)::before {
  background-image: url('../images/service_icon1@2x.png');
  background-repeat: no-repeat;
  background-size: 40px 44px;
  width: 40px;
  height: 44px;
}

.service_list-item:nth-child(2)::before {
  top: 30px;
  background-image: url('../images/service_icon2@2x.png');
  background-repeat: no-repeat;
  background-size: 44px 44px;
  width: 44px;
  height: 44px;
}

.service_list-item:nth-child(3)::before {
  background-image: url('../images/service_icon3@2x.png');
  background-repeat: no-repeat;
  background-size: 36px 44px;
  width: 36px;
  height: 44px;
}


.service_list-item::after {
  content: '';
  position: absolute;
  top: 182px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  background-image: url('../images/service_arrow@2x.png');
  background-repeat: no-repeat;
  background-size: 14px 8px;
  width: 14px;
  height: 8px;
  z-index: 1;
  transition: all .3s ease;
}

.service_list-item:hover:after {
  background-image: url('../images/service_arrow-hover@2x.png');
}

.service_list-item a {
  position: relative;
  transition: all .3s ease;
}

.service_list-item a::before {
  display: block;
  position: absolute;
  content:'';;
  top: 2px;
  left: 2px;
  width: 216px;
  height: 216px;
  border-radius: 50%;
  transition: all .3s ease;
}

.service_list-item:hover a::before {
  background-color: #fff;
}

.service_list-headings {
  position: absolute;
  top: 100px;
  width: 220px;
  left: 0;
  text-align: center;
}

.service_list-item:hover .service_list-headings{
  color: #ff6e82;
}

.service_headings {
  margin-bottom: 20px;
}

.service_lead {
  font-size: 18px;
  text-align: center;
  margin-bottom: 40px;
}

.service_contents_inner {
  display: flex;
}

/* contents共通 */
.contents_list {
  margin: 50px 0 auto;
  position: relative;
}

.contents_title {
  font-size: 28px;
  font-weight: 800;
  line-height: 1.64;
  letter-spacing: 0.05em;
  position: relative;
  z-index: 2;
  margin-bottom: 20px;
}

.contents_title-line {
  position: relative;
  z-index: 1;
}

.contents_title-line::after {
	display: block;
	position: absolute;
	content: '';
	bottom: 2px;
	left: -2px;
	height: 10px;
	background-color: #fff;
  border-radius: 5px;
	z-index: -1;
	width: 0;
	transition: all .5s ease .5s;
}

.is-active .contents_title-line::after {
	width: 102%;
	position: absolute;
	left: -2px;
	bottom: 2px;
}

.contents_number {
  color: #ff6e82;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.2em;
  margin-bottom: 20px;
}

.contents_headings,
.faq_headings-lead {
  color: #ff6e82;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  position: relative;
  letter-spacing: .1em;
  text-indent: .1em;
}

.contents_headings::after,
.faq_headings-lead::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  margin: 0 auto;
  background-color: #ff6e82;
  border-radius: 2px;
  margin-top: 25px;
}

.contents_text {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
}

/* ここまで */
.contents_headings::before {
  content: '';
  position: absolute;
  top: -65px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  z-index: 1;
}

.contents_list-item {
  position: relative;
  padding-left: 30px;
}

.contents_list-item::before {
  content: '●';
  display: block;
  color: #ff6e82;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.service_title-1 .contents_list-item,
.service_title-2 .contents_list-item {
  margin-left:  240px;
}

.service_title-1 .btn-more,
.service_title-2 .btn-more {
  margin: 50px auto 0;
  display: block;
}

.service_title-1 .contents_headings::before {
  background-image: url('../images/service_icon1@2x.png');
  background-repeat: no-repeat;
  background-size: 40px 44px;
  width: 40px;
  height: 44px;
}

.service_title-2 .contents_headings::before {
  background-image: url('../images/service_icon2@2x.png');
  background-repeat: no-repeat;
  background-size: 44px 44px;
  width: 44px;
  height: 44px;
}

.service_title-3 .contents_headings::before {
  background-image: url('../images/service_icon3@2x.png');
  background-repeat: no-repeat;
  background-size: 36px 44px;
  width: 36px;
  height: 44px;
}

.service_title-2 .contents-2 .contents_left .contents_title::after {
  content: "";
  display: block;
  width: 230px;
  height: 10px;
  background-color: #fca2b4;
  border-radius: 5px;
  position: absolute;
  bottom: 7px;
  z-index: -1;
}

.service_title-3 .contents_left .contents_title::after {
  content: "";
  display: block;
  width: 325px;
  height: 10px;
  background-color: #fca2b4;
  border-radius: 5px;
  position: absolute;
  bottom: 7px;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

.service_title-3 .contents_right .contents_title::after {
  content: "";
  display: block;
  width: 298px;
  height: 10px;
  background-color: #fca2b4;
  border-radius: 5px;
  position: absolute;
  bottom: 7px;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

.service_title-1 .contents-1 {
  margin-bottom: 80px;
  position: relative;
  margin-top: 70px;
  justify-content: space-between;
}

.btn-more a {
  color: #fff;
  font-size: 20px;
  width: 260px;
  height: 60px;
  margin: 0 auto;
  background-color: #ff6e82;
  position: relative;
  border-radius: 5px;
}

.btn-more::after {
  content: "";
  background-image: url('../images/btn-arrow@2x.png');
  background-repeat: no-repeat;
  background-size: 6px 11px;
  width: 6px;
  height: 11px;
  position: absolute;
  top: 25px;
  right: 20px;
}

.service_title-2 .contents_headings {
  margin-bottom: 60px;
}

.service_title-2 .service_contents_inner {
  margin-bottom: 120px;
  position: relative;
  z-index: 0;
}

.service_title-3 .service_contents_inner {
  margin: 0 auto;
  position: relative;
  z-index: 0;
  padding-top: 50px;
  width: 830px;
  justify-content: space-between;
}

.service_title-3 .service_contents_inner::before {
  position: absolute;
  display: block;
  content: '';
  height: 380px;
  z-index: -1;
  background-color: #fff;
  width: calc(50vw + 520px);
  right: -80px;
  border-radius: 0 80px 80px 0;
  top: 0px;
}

.service_title-3 .contents_right {
  transition-delay: .5s;
}

.service_title-3 .contents_headings {
  margin-bottom: 70px;
}

.service_title-3 .contents_left .contents_illust,
.service_title-3 .contents_right .contents_illust {
  margin-bottom: 40px;
  box-shadow: 0 5px 8px 5px rgba(0,0,0,.05);
  border-radius: 14px;
  background-color: #fff;
}

.service_title-3 .contents_left,
.service_title-3 .contents_right {
  text-align: center;
  width: 380px;
}

.service_title-3 .contents_title {
  margin-bottom: 30px;
}

.btn-more a {
  color: #fff;
  line-height: 60px;
  display: block;
}

/* ----------------------------------------------------------voice */
.voice {
  background-color: #f3fcfc;
  padding: 100px 0 80px;
}

.voice_headings {

}

.voice_lead {
  font-size: 18px;
  line-height: 32px;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 10px auto 80px;
}

.voice .btn-school {
  display:block;
  width: 260px;
  margin: 0 auto;
  position: relative;
}

.voice .btn-school a {
  display: inline-block;
  text-align: center;
  color: #fff;
  width: 260px;
  height: 60px;
  background-color: #5bd1d6;
  letter-spacing: 0.03em;
  font-size: 20px;
  line-height: 60px;
  border-radius: 5px;
}

.voice .btn-school::after {
  display: block;
  content: '';
  background-image: url('../images/school_btn-arrow@2x.png');
  background-size: 6px 11px;
  width: 6px;
  height: 11px;
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

/* ----------------------------------------------------------swiper */
.voice .school_list {
  margin: 0 auto;
  overflow: hidden;
  max-width: 1240px;
  width: 100%;
}

.voice .school_list-inner {
  width: 1290px;
  margin-left: -25px;
}

.voice .swiper-wrapper {
  width: 1290px;
}

.voice .swiper-wrapper.no-swiper {
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 1080px) {
  .voice .swiper-inner {
    margin-left: -105px
  }
}

@media screen and (min-width: 1081px) and (max-width: 1240px) {
  .voice .swiper-inner {
    margin-left: calc(-1 * (1290px - 100vw) / 2);
  }
}

.voice .school_list-item {
  width: 430px;
  height: auto;
  box-sizing: border-box;
  margin: 0 0 40px;
  padding: 0 25px;
  display: inline-block;
}

.voice .school_list-item .slider_wrapper {
  height: 100%;
  background-color: #fff;
  border-radius: 14px;
  box-shadow: 0 5px 8px 5px rgb(0 0 0 / 5%);
}

.voice .school_list-text {
  padding: 30px 30px 40px;
}

.voice .school_list-name {
  font-size: 24px;
  line-height: 36px;
  letter-spacing: 0.1em;
  font-weight: 900;
  margin-bottom: 10px;
}

.voice .school_list-caption {
  font-size: 16px;
  line-height: 22px;
  letter-spacing: 0.05em;
  margin-bottom: 25px;
}

/* ----------------------------------------------------------faq */
.faq {
  padding: 120px 0 90px;
}

.faq_headings {
  margin-bottom: 70px;
}

.faq_headings-lead {
  margin-bottom: 40px;
}

.faq_question {
  background-color: #f9f9e0;
  position: relative;
  padding-left: 90px;
  height: 60px;
}

.faq_answer  {
  position: relative;
  padding: 20px 90px 40px;
}

.faq_question::before,
.faq_answer::before {
  content: 'Q.';
  position: absolute;
  left: 40px;
  font-size: 30px;
}

.faq_question::before {
  line-height: 60px;
  top: 0;
}

.faq_answer::before  {
  content: 'A.';
  color: #ff6e82;
  top: 10px;
}


.faq_question p {
  font-size: 20px;
  letter-spacing: 0.05em;
  line-height: 60px;
}

.faq_answer p {
  font-size: 16px;
  letter-spacing: 0.05em;
}

.faq_list {
  margin-bottom: 80px;
}

.faq .credit {
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.8;
}

.faq .browser {
  line-height: 1.625;
  letter-spacing: 0.05em;
  padding: 30px 0;
}

/* ----------------------------------------------------------contact */
.contact {
  background: linear-gradient( to right, #6acffe, #5bd1d6);
  color: #fff;
  padding: 60px;
  text-align: center;
}

.contact_lead {
  font-size: 30px;
  line-height: 50px;
  margin-bottom: 30px;
  letter-spacing: .1em;
  text-indent: .1em;
}

.btn-request-contact {
}

.btn-request-contact a {
  background-color: #fff;
  width: 350px;
  height: 60px;
  color: #5bd1d6;
  font-size: 20px;
  line-height: 60px;
  border-radius: 5px;
}

/* ----------------------------------------------------------固定バナー */
.banner-fixed.none {
  display: none;
  opacity: 0;
}

.banner-fixed a {
  z-index: 10;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 500px;
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
}

.banner-fixed a:hover {
  transform: translate(-50%, -5px);
  -webkit-transform: translate(-50%, -5px);
}

