@charset "utf-8";

/* ---------------------------------------------
  リセット
--------------------------------------------- */
.l-main section button {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 100%;
  vertical-align: baseline;
  font-family: inherit;
  font-weight: inherit;
  color: inherit;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  vertical-align: top;
}
.l-main section ul, .l-main section ol {
  margin: 0;
  padding: 0;
  list-style: none;
}



/* ---------------------------------------------
  レイアウト
--------------------------------------------- */
.l-main section {
  text-align: center;
}

.l-main section a {
  display: block;
}

.l-main section picture {
  display: block;
}

.l-main .bg_beige {
  background-color: #f5f2e9;
}
.l-main .bg_brown {
  background-color: #66371b;
}


/* ---------------------------------------------
  fv
--------------------------------------------- */
.l-main .fv {
  background-color: #fafbfb;
}
.fv_bnr {
  position: relative;
  z-index: 2;
  margin-top: -2.5%;
}

.l-main .fv video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
}

.l-main .fv .pc{
  display: none;
}

.l-main .fv .sp{
  display: block;
}

@media screen and (min-width: 1024px) {
  .l-main .fv .pc{
    display: block;
  }
  
  .l-main .fv .sp{
    display: none;
  }
}

/* ---------------------------------------------
  キャンペーンバナー
--------------------------------------------- */
.bl_bnrCp {
  width: 100%;
  margin: 0 auto;
}

.bl_bnrCp img {
  margin-top: -15px;
  margin-bottom: 0px;
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (max-width: 1024px) {
  .l-main .bl_bnrCp {
    width: 100%;
    margin: 0 auto;
  }
  .l-main .bl_bnrCp img {
    margin-bottom: 0px;
    width: 100%;
    height: auto;
    display: block;
  }
}


/* ---------------------------------------------
  cv
--------------------------------------------- */
.l-main .cv {
  background-color: #f5f2e9;
  padding-top: min(27px, calc(27 / 1400 * 100vw));
  padding-bottom: min(40px, calc(40 / 1400 * 100vw));
}
.l-main .cv.cv__underFv {
  background-color: #f5f2e9;
  margin-top: -30px;
  padding-top: 0;
  padding-bottom: min(50px, calc(50 / 1400 * 100vw));
}
.l-main .cv__obi {
  line-height: 0;
}
.l-main .cv__obi a{
  display: inline-block;
}
.l-main .cv_text{
  padding-top: min(10%,50px);
}
.l-main .cv_text li {
  display: block;
  max-width: 1400px;
  margin: 0 auto;
  padding: 5px 190px 5px 0;
  color: #06206a;
  font-size: clamp(10px, calc((20 / 750) * 100vw), 12px);
  line-height: 1;
  text-align: right;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
}
.l-main .cv_text li a{
  color: #06206a; 
  text-decoration: underline;
}


.l-main .cv .cv_linkWrapper {
  width: min(650px, calc(650 / 1400 * 100vw));
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.l-main .cv .cv_linkWrapper_item:first-of-type {
  margin-bottom: min(16px, calc(27 / 1400 * 100vw));
}
.l-main .cv.cv__underFv .cv_linkWrapper_item:first-of-type {
  margin-bottom: 0;
}
.l-main .cv .cv_linkWrapper_item:not(:first-of-type) {
  width: min(313px, calc(313 / 1400 * 100vw));
}

.l-main .cv_head_text {
  width: min(76%, 376px);
  margin:  min(5%, 40px) auto min(2%, 15px) auto;
}

/* ---------------------------------------------
  tabs
--------------------------------------------- */
.l-main .tabs {
  padding-top: min(55px, calc(55 / 1400 * 100%));
}
.l-main .tabs_btns {
  width: min(1000px, calc(1000 / 1400 * 100%));
  margin: 0 auto;
  display: flex;
  justify-content: center;
}
.l-main .tabs_btn {
  position: relative;
  width: calc(100% / 3);
}
.l-main .tabs_btn.is_active .tabs_btn_active {
  visibility: visible;
}
.l-main .tabs_btn .tabs_btn_active {
  visibility: hidden;
  cursor: pointer;
  z-index: 1;
  position: relative;
}
.l-main .tabs_btn .tabs_btn_abs {
  position: absolute;
  bottom: 0;
  left: 0;
}

.l-main .tab_content {
  display: none;
}
.l-main .tab_content.is_active {
  display: block;
}


.l-main .tabs .inner_content {
  box-sizing: border-box;
  width: min(1400px, 100%);
  padding: 0 min(250px, calc(250 / 1400 * 100vw));
  margin: 0 auto;
}
.l-main .tabs .tabs_accordions {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.l-main .tabs .tabs_accordions .tabs_accordions_item {
  margin-bottom: min(33px, calc(33 / 1400 * 100vw));
}

.l-main .tabs .tabs_accordions .tabs_accordions_item > button {
  position: relative;
}
.l-main .tabs .tabs_accordions .tabs_accordions_item > button::before,.l-main .tabs .tabs_accordions .tabs_accordions_item > button::after {
  content: '';
  display: block;
  width: min(32px, calc(32 / 1400 * 100vw));
  height: 2px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: min(40px, calc(40 / 1400 * 100vw));
  transition: transform 0.3s ease;
}
.l-main .tabs .tabs_accordions .tabs_accordions_item > button::after {
  transform: translateY(-50%) rotate(90deg);
}
.l-main .tabs .tabs_accordions .tabs_accordions_item > button.is_active::after {
  transform: translateY(-50%) rotate(0deg);
}

.l-main .tabs .acc01_content, .l-main .tabs .acc02_content, .l-main .tabs .acc03_content {
  display: none;
}


.l-main .tabs .elite_carousel {
  width: min(830px, calc(830 / 1400 * 100vw));
  margin: 0 auto;
}
.l-main .tabs .common_carousel .slick-dots {
  bottom: max(-35px, calc(-35 / 1400 * 100vw));
}
.l-main .tabs .common_carousel .slick-dots li {
  width: min(15px, calc(15 / 1400 * 100vw));
  height: min(15px, calc(15 / 1400 * 100vw));
}
.l-main .tabs .common_carousel .slick-dots li button {
  width: 100%;
  height: 100%;
  font-size: 0;
}
.l-main .tabs .common_carousel .slick-dots li button:before{
  font-size: 0;
  line-height: 1;
  width: 100%;
  height: 100%;
  background-color: #99a8d1;
  border-radius: 100%;
}
.l-main .tabs .common_carousel .slick-dots li.slick-active button:before {
  opacity: 1;
  background-color: #213e90;
}

.l-main .tabs .common_carousel .slick-arrow {
  width: min(22px, calc(22 / 1400 * 100vw));
  height: min(37px, calc(37 / 1400 * 100vw));
  font-size: 0;
}
.l-main .tabs .common_carousel .slick-arrow::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background-size: 100% 100%;
  background-image: url(../img/tabs_carousel_arrow.png);
  opacity: 1;
}
.l-main .tabs .common_carousel .slick-prev, .l-main .tabs .common_carousel .slick-next {
  top: min(114px, calc(114 / 1400 * 100vw));
  left: max(-9px, calc(-9 / 1400 * 100vw));
  transform: rotate(180deg);
  z-index: 1;
}
.l-main .tabs .common_carousel .slick-next {
  left: auto;
  right: max(-9px, calc(-9 / 1400 * 100vw));
  transform: rotate(0deg);
}

.l-main .tabs .up_carousel {
  margin-top: min(19px, calc(19 / 1400 * 100vw));
  padding-bottom: min(51px, calc(51 / 1400 * 100vw));
  margin-bottom: 0;
}
.l-main .tabs .up_carousel .slick-dots {
  bottom: min(21px, calc(21 / 1400 * 100vw));
}
.l-main .tabs .up_carousel .slick-prev, .l-main .tabs .up_carousel .slick-next {
  top: min(178px, calc(178 / 1400 * 100vw));
}


/* ---------------------------------------------
  high
--------------------------------------------- */
.l-main .tabs .high .inner_content {
  background-image: url(../img/tab_bg_high__pc.jpg);
  background-size: min(1400px, 100%) 3px;
  background-position: center center;
}


/* ---------------------------------------------
  junior
--------------------------------------------- */
.l-main .tabs .junior .inner_content {
  background-image: url(../img/tab_bg_junior__pc.jpg);
  background-size: min(1400px, 100%) 3px;
  background-position: center center;
}

.l-main .tabs .junior .tabs_accordions .tabs_accordions_item {
  width: min(430px, calc(430 / 1400 * 100vw));
}

.l-main .tabs .junior .common_carousel .slick-arrow::before {
  background-image: url(../img/tabs_carousel_arrow__junior.png);
}

.l-main .tabs .junior .up_carousel .slick-prev, .l-main .tabs .junior .up_carousel .slick-next {
  top: min(180px, calc(180 / 1400 * 100vw));
}

.l-main .tabs .junior .common_carousel .slick-dots li.slick-active button:before {
  background-color: #0f33a2;
}

/* ---------------------------------------------
  elementary
--------------------------------------------- */
.l-main .tabs .elementary .inner_content {
  background-image: url(../img/tab_bg_elementary__pc.jpg);
  background-size: min(1400px, 100%) 3px;
  background-position: center center;
}

.l-main .tabs .elementary .tabs_accordions .tabs_accordions_item {
  width: min(430px, calc(430 / 1400 * 100vw));
}

.l-main .tabs .elementary .common_carousel .slick-arrow::before {
  background-image: url(../img/tabs_carousel_arrow__elementary.png);
}

.l-main .tabs .elementary .up_carousel .slick-prev, .l-main .tabs .elementary .up_carousel .slick-next {
  top: min(120px, calc(120 / 1400 * 100vw));
}

.l-main .tabs .elementary .common_carousel .slick-dots li.slick-active button:before {
  background-color: #008ad1;
}


/* ---------------------------------------------
  flow
--------------------------------------------- */
.l-main .flow_list {
  width: min(1400px, 100%);
  margin: 0 auto;
}
.l-main .flow_item01 {
  position: relative;
}

.l-main .flow_item01 .flow_item01_contact, .l-main .flow_item01 .flow_item01_tel {
  position: absolute;
  width: min(388px, calc(388 / 1400 * 100vw));
}

.l-main .flow_item01 .flow_item01_contact {
  top: min(227px, calc(227 / 1400 * 100vw));
  left: min(321px, calc(321 / 1400 * 100vw));
}

.l-main .flow_item01 .flow_item01_tel {
  top: min(349px, calc(349 / 1400 * 100vw));
  left: min(321px, calc(321 / 1400 * 100vw));
}

/* ---------------------------------------------
  program
--------------------------------------------- */
.l-main .program_desc {
  background-image: url(../img/program_desc_bg__pc.jpg);
  background-size: cover;
  background-position: center center;
}

/* ---------------------------------------------
  faq
--------------------------------------------- */
.l-main .faq_list {
  width: min(1000px, calc(1000 / 1400 * 100vw));
  margin: 0 auto;
  padding-top: min(43px, calc(43 / 1400 * 100vw));
  padding-bottom: min(68px, calc(68 / 1400 * 100vw));
}

.l-main .faq_item {
  margin-bottom: min(33px, calc(33 / 1400 * 100vw));
}
.l-main .faq_item dt {
  position: relative;
  cursor: pointer;
}
.l-main .faq_item dt::before, .l-main .faq_item dt::after {
  content: '';
  display: block;
  width: min(32px, calc(32 / 1400 * 100vw));
  height: 2px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: min(40px, calc(40 / 1400 * 100vw));
  transition: transform 0.3s ease;
}
.l-main .faq_item dt::after {
  transform: translateY(-50%) rotate(90deg);
}
.l-main .faq_item dt.is_active::after {
  transform: translateY(-50%) rotate(0deg);
}
.l-main .faq_item dd {
  display: none;
}


/* ---------------------------------------------
  レスポンシブ
--------------------------------------------- */

@media screen and (max-width: 1024px) {

  .l-main section img {
    display: block;
    width: 100%;
  }
  .l-main .bl_bnrCp span {
    font-size: clamp(5px, calc((14 / 750) * 100vw), 13px);
  }
  /* ---------------------------------------------
    cv
  --------------------------------------------- */
  .l-main .cv {
    padding-top:calc(30 / 750 * 100vw);
    padding-bottom:calc(30 / 750 * 100vw);
  }

  .l-main .cv__obi a{
    display: block;
  }
  .l-main .cv.cv__underFv {
    margin-top: -2.5%;
    padding-top: 0;
  }

  .l-main .cv .cv_linkWrapper {
    width: 100%;
  }

  .l-main .cv .cv_linkWrapper_item:first-of-type {
    margin-bottom: calc(27 / 750 * 100vw);
    margin-left: auto;
    margin-right: auto;
  }

  .l-main .cv .cv_linkWrapper_item:not(:first-of-type) {
    width: 100%;
    margin-bottom: calc(29 / 750 * 100vw);
  }

  .l-main .cv.cv__underFv .cv_linkWrapper_item:not(:first-of-type) {
    width: 100%;
    margin-bottom: 0;
  }

  .l-main .cv .cv_linkWrapper_item:last-of-type {
    margin-bottom: calc(6 / 750 * 100vw);
  }

  .l-main .cv .cv_linkWrapper_item a {
    width: calc(670 / 750 * 100vw);
    margin: 0 auto;
  }

  .l-main .cv_textLink {
    padding-right: 0;
  }
  .l-main .cv_text{
    padding-top: min(4%,50px);
  }
  .l-main .cv_text li {
    display: block;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 2% 0 0;
    color: #06206a;
    font-size: calc((14 / 750) * 100vw);
    line-height: 1.8;
    text-align: right;
  
  }
  .l-main .cv_text li a{
    color: #06206a; 
    text-decoration: underline;
  }
  /* ---------------------------------------------
    tabs
  --------------------------------------------- */
  .l-main .tabs {
    padding-top: calc(70 / 750 * 100%);
  }
  .l-main .tabs_btns {
    width: calc(711 / 750 * 100%);
  }
  .l-main .tabs_btn {
    width: calc(237 / 750 * 100vw);
  }


  .l-main .tabs .inner_content {
    width: 100%;
    padding: 0 calc(60 / 750 * 100vw);
  }
  .l-main .tabs .tabs_accordions {
    display: block;
  }
  .l-main .tabs .tabs_accordions .tabs_accordions_item {
    width: 100%;
    margin-bottom: calc(50 / 750 * 100vw);
  }

  .l-main .tabs .tabs_accordions .tabs_accordions_item > button {
    width: 100%;
  }

  .l-main .tabs .tabs_accordions .tabs_accordions_item > button::before, .l-main .tabs .tabs_accordions .tabs_accordions_item > button::after {
    width: calc(40 / 750 * 100vw);
    right: calc(40 / 750 * 100vw);
  }


  .l-main .tabs .elite_carousel {
    width: calc(590 / 750 * 100vw);
  }
  .l-main .tabs .common_carousel .slick-dots {
    bottom: calc(-38 / 750 * 100vw);
  }
  .l-main .tabs .common_carousel .slick-dots li {
    width: calc(20 / 750 * 100vw);
    height: calc(20 / 750 * 100vw);
    margin: 0 calc(7 / 750 * 100vw);
  }

  .l-main .tabs .common_carousel .slick-arrow {
    width: calc(28 / 750 * 100vw);
    height: calc(47 / 750 * 100vw);
  }

  .l-main .tabs .common_carousel .slick-prev, .l-main .tabs .common_carousel .slick-next {
    top: calc(211 / 750 * 100vw);
    left: calc(-10 / 750 * 100vw);
  }
  .l-main .tabs .common_carousel .slick-next {
    left: auto;
    right: calc(-10 / 750 * 100vw);
  }

  .l-main .tabs .up_carousel {
    margin-top: calc(30 / 750 * 100vw);
    padding-bottom: calc(19 / 750 * 100vw);
  }
  .l-main .tabs .up_carousel .slick-dots {
    bottom: calc(29 / 750 * 100vw);
  }
  .l-main .tabs .up_carousel .slick-prev, .l-main .tabs .up_carousel .slick-next {
    top: calc(419 / 750 * 100vw);
  }


  /* ---------------------------------------------
    high
  --------------------------------------------- */
  .l-main .tabs .high .inner_content {
    background-image: url(../img/sp/tab_bg_high__sp.jpg);
    background-size: 100% 3px;
    background-position: center center;
  }

  .l-main .tabs .high .tabs_accordions .tabs_accordions_item:not(:first-of-type) {
    width: 100%;
  }

  .l-main .tabs .up_carousel {
    width: calc(590 / 750 * 100vw);
    margin-left: auto;
    margin-right: auto;
  }

  /* ---------------------------------------------
    junior
  --------------------------------------------- */
  .l-main .tabs .junior .inner_content {
    background-image: url(../img/sp/tab_bg_junior__sp.jpg);
    background-size: 100% 3px;
    background-position: center center;
  }

  .l-main .tabs .junior .tabs_accordions .tabs_accordions_item {
    width: calc(630 / 750 * 100vw);
  }

  .l-main .tabs .junior .up_carousel .slick-dots {
    bottom: calc(-20 / 750 * 100vw);
  }

  .l-main .tabs .junior .up_carousel .slick-prev, .l-main .tabs .junior .up_carousel .slick-next {
    top: calc(380 / 750 * 100vw);
  }


  /* ---------------------------------------------
    elementary
  --------------------------------------------- */
  .l-main .tabs .elementary .inner_content {
    background-image: url(../img/sp/tab_bg_elementary__sp.jpg);
    background-size: 100% 3px;
    background-position: center center;
  }

  .l-main .tabs .elementary .tabs_accordions .tabs_accordions_item {
    width: calc(630 / 750 * 100vw);
  }

  .l-main .tabs .elementary .up_carousel .slick-dots {
    bottom: calc(-20 / 750 * 100vw);
  }

  .l-main .tabs .elementary .up_carousel .slick-prev, .l-main .tabs .elementary .up_carousel .slick-next {
    top: calc(330 / 750 * 100vw);
  }


  /* ---------------------------------------------
    flow
  --------------------------------------------- */
  .l-main .flow_list {
    width: 100%;
    margin: 0 auto;
  }

  .l-main .flow_item01 .flow_item01_contact, .l-main .flow_item01 .flow_item01_tel {
    width: calc(554 / 750 * 100vw);
  }

  .l-main .flow_item01 .flow_item01_contact {
    top: calc(342 / 750 * 100vw);
    left: calc(156 / 750 * 100vw);
  }

  .l-main .flow_item01 .flow_item01_tel {
    top: calc(503 / 750 * 100vw);
    left: calc(156 / 750 * 100vw);
  }

  /* ---------------------------------------------
    program
  --------------------------------------------- */
  .l-main .program_desc {
    background-image: url(../img/program_desc_bg__pc.jpg);
    background-size: cover;
    background-position: center center;
  }

  /* ---------------------------------------------
    faq
  --------------------------------------------- */
  .l-main .faq_list {
    width: calc(670 / 750 * 100vw);
    padding-top: calc(51 / 750 * 100vw);
    padding-bottom: calc(38 / 750 * 100vw);
  }

  .l-main .faq_item {
    margin-bottom: calc(51 / 750 * 100vw);
  }
  .l-main .faq_item dt::before, .l-main .faq_item dt::after {
    width: calc(40 / 750 * 100vw);
    right: calc(40 / 750 * 100vw);
  }
}

/* ---------------------------------------------
  バナーエリア
--------------------------------------------- */
.banner_area{
  max-width: 100%;
  padding: min(8%, 50px) 0;
}
.banner_area p{
  margin: 0;
}
.banner_area img {
  width: min(100%, 1160px); /* pxのみ実寸の数値を入力する */
  margin: 0 auto;
  display: block;
}

