@charset "UTF-8";

body {
  padding-top: 83px;
  font-size: .8125em;
  font-family: "Noto Sans JP", sans-serif;
}
body * {
  font-weight: 500;
}
@media screen and (max-width: 320px) {
  body {
    font-size: .7em;
  }
}

a {
  text-decoration: none;
  color: #000;
  cursor: pointer;
  transition: all .4s ease;
}
a:visited,
a img,
a:before,
a:after {
  text-decoration: none;
  color: #000;
  transition: all .4s ease;
}
a:hover {
  opacity: .6;
}

img {
  max-width: 100%;
  height: auto;
}

.alC {
  text-align: center;
}
.alR {
  text-align: right;
}
.ilB {
  display: inline-block;
}
.fontS {
  font-size: .8em;
}

.pc,
.pcImg {
  display: none;
}

.wrapper {
  width: 100%;
  max-width: 1036px;
  margin: 0 auto;
  padding: 0 18px;
}

sup {
  font-size: .65em;
}


/***** common parts *****/
/* ttl */
.contTtl {
  margin-bottom: 30px;
  line-height: 1.705;
  text-align: center;
  letter-spacing: .05em;
  font-size: 1.307em;
  font-weight: 700;
}
.contDetTtl {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  line-height: 1.5;
  margin-bottom: 20px;
  font-size: 1.23em;
  font-weight: 700;
  letter-spacing: .05em;
  color: #5BB647;
}

/* btn */
a.lessonBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 23px;
  width: 100%;
  max-width: 325px;
  height: 70px;
  line-height: 1.24;
  margin: 0 auto;
  border: 2px solid #fff;
  border-radius: 10px;
  box-shadow: rgba(0,0,0,.15) 2px 2px 1px;
  background: url(../images/bg-red.png) center no-repeat;
  letter-spacing: .1em;
  font-size: 1.23em;
  color: #fff;
}
a.lessonBtn span {
  text-align: center;
}
a.lessonBtn span span {
  font-size: .8125em;
}

a.classroomBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 23px;
  height: 65px;
  line-height: 1.24;
  border-radius: 5px;
  box-shadow: rgba(0,0,0,.15) 2px 2px 1px;
  background: url(../images/bg-green.png) center no-repeat;
  letter-spacing: .1em;
  font-size: 1.0769em;
  color: #fff;
}
a.classroomBtn span {
  text-align: center;
}

a.requestBtn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 80px;
  height: 80px;
  border: 1px solid #eee;
  border-radius: 50%;
  box-shadow: rgba(0,0,0,.15) 2px 2px 1px;
  background-color: #fff;
  font-weight: 700;
  color: #437CE0;
}

.requestBox {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.requestBox p {
  font-weight: 600;
  color: #437CE0;
}
.requestBox a.requestBtn_b {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 225px;
  height: 50px;
  border-radius: 25px;
  box-shadow: rgba(0,0,0,.15) 2px 2px 1px;
  background: url(../images/bg-blue.png) center no-repeat;
  letter-spacing: .1em;
  color: #fff;
}
.requestBox a.requestBtn_b span {
  margin-left: 28px;
  font-size: 1.25em;
}

a.greenBtn,
a.pinkBtn,
a.yellowBtn,
a.orangeBtn,
a.redBtn,
a.blueBtn,
a.light_bBtn,
a.whiteBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: auto;
  width: 280px;
  height: 50px;
  margin: 0 auto;
  border-radius: 25px;
  background: url(../images/bg-green.png) center no-repeat;
  letter-spacing: .1em;
  font-weight: 600;
  color: #fff;
}
a.pinkBtn {background-image: url(../images/bg-pink.png);}
a.yellowBtn {background-image: url(../images/bg-yellow.png); color: #000;}
a.orangeBtn {background-image: url(../images/bg-orange.png);}
a.redBtn {background-image: url(../images/bg-red2.png);}
a.blueBtn {background-image: url(../images/bg-blue.png);}
a.light_bBtn {background-image: url(../images/bg-light_b.png);}
a.whiteBtn {
  gap: 10px;
  background: #fff;
  border: 1px solid #eee;
  box-shadow: rgba(0,0,0,.15) 2px 2px 1px;
  color: #5BB647;
}
a.greenBtn.sizeS {
  width: 120px;
  height: 35px;
  font-size: .923em;
}

/* contents */
.contSec {
  margin-bottom: 75px;
}

.lessonTel {
  display: flex;
  align-items: center;
  gap: 14px;
}
.lessonTel p {
  line-height: 1.3;
  font-size: .769em;
}
.lessonTel p span {
  font-size: 1.3em;
  font-weight: 700;
}
.lessonTel a {
  font-size: 1.92em;
  font-weight: 900;
}

.companyInfo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5em;
  padding: 1em 0;
  border: solid #5BB647;
  border-width: 1px 0;
  font-size: .769em;
}
.companyInfo a {
  color: #5BB647;
}

.snsList {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 25px;
}

.classroom {
  padding: 25px 0;
}
.classroom .ttl {
  text-align: center;
  font-weight: 700;
  color: #5BB647;
}
.classroom .btn {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 730px;
  gap: 10px;
  margin: 13px auto;
}
.classroom .btn li {
  width: calc(50% - 5px);
}
.classroom .btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 40px;
  border: 1px solid #5BB647;
  background-color: #fff;
  box-shadow: rgba(0,0,0,.15) 2px 2px 1px;
  border-radius: 20px;
  font-size: .697em;
  color: #5BB647;
}
.search-classroomBox.classroom .btn a {
  height: 50px;
  border-radius: 25px;
}
.classroom .btn a span {
  line-height: 1.38;
  padding-left: 11px;
  text-align: center;
  font-size: 1.5em;
}
.classroom .note {
  max-width: 730px;
  margin: 0 auto 13px;
  line-height: 1.46;
  font-size: .692em;
}
.classroom h3 {
  margin: 25px 0 11px;
  line-height: 1.4;
  text-align: center;
  font-weight: 600;
}
.classroom .formBox {
  display: flex;
  align-items: center;
  max-width: 450px;
  margin: 0 auto;
  padding: 13px 10px;
  border: 1px solid #A2A2A2;
  background-color: #fff;
  border-radius: 5px;
}
.classroom .formBox .form-input {
  flex: 1;
  border: none;
  border-radius: 5px;
  background-color: #fff;
  font-family: "Noto Sans JP", sans-serif;
}
.classroom .formBox .form-button {
  cursor: pointer;
}

.imgShadow {
  box-shadow: 3px 3px 5px rgba(0,0,0,.15);
}

.slick-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.slick-dots li {
  width: 6px;
  height: 6px;
  margin: 0;
  border-radius: 50%;
  background-color: #5BB647;
  border: 1px solid #fff;
  opacity: .2;
  cursor: pointer;
}
.slick-dots li.slick-active {
  opacity: 1;
}
.slick-dots li button {
  text-indent: -9999px;
}
.slick-arrow {
  position: absolute;
  top: calc(50% - 15px);
  width: 30px;
  height: 30px;
  text-indent: -999px;
  cursor: pointer;
  z-index: 1;
}
.slick-arrow.slick-prev {
  left: 0;
  background: url(../images/ico-arrow_l_g.svg) center / auto 20px no-repeat;
}
.slick-arrow.slick-next {
  right: 0;
  background: url(../images/ico-arrow_r_g.svg) center / auto 20px no-repeat;
}


/***** gHeader *****/
.gHeader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 900;
}
.gHeader.open,
.gHeader.scroll {
  background-color: #fff;
}

/* hLogoBox */
.gHeader .hLogoBox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 15px;
}
.gHeader .hLogoBox .logoBox {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.gHeader .hLogoBox .logoBox .membersBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 23px;
  padding: 8px 20px 8px 10px;
  border: 1px solid #5BB647;
  background: #fff url(../images/ico-arrow_g.svg) right 10px center / 4px auto no-repeat;
  font-size: .682em;
  font-weight: 700;
  color: #5BB647;
}
.gHeader .hLogoBox .spNavToggle {
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  background: url(../images/sp_nav-bg.svg) center / cover no-repeat;
}
.gHeader .hLogoBox .spNavToggle::before,
.gHeader .hLogoBox .spNavToggle::after {
  content: '';
  display: block;
  position: absolute;
  top: calc(50% + 2px);
  right: calc(50% - 15px);
  width: 20px;
  height: 2px;
  border-radius: 1px;
  background-color: #5BB647;
}
.gHeader .hLogoBox .spNavToggle::before {
  box-shadow: #5BB647 0 -7px 0;
}
.gHeader .hLogoBox .spNavToggle::after {
  box-shadow: #5BB647 0 7px 0;
}
.gHeader .hLogoBox .spNavToggle.close::before {
  box-shadow: none;
  transform: rotate(45deg);
}
.gHeader .hLogoBox .spNavToggle.close::after {
  box-shadow: none;
  transform: rotate(-45deg);
}

/* gNav_pc */
.gNav_pc {
  display: none;
}

/* gNav_sp */
.gHeader .gNav_sp {
  display: none;
  position: fixed;
  top: 83px;
  left: 0;
  bottom: 0;
  width: 100%;
  overflow: scroll;
  background-color: #fff;
}
.gHeader .gNav_sp .mainNav {
  background-color: #F8F4EE;
}
.gHeader .gNav_sp .mainNav > li a {
  display: block;
  margin: 0 20px;
  padding: 1.5em 15px;
  border-bottom: 1px  solid #DCD3C5;
  background: #F8F4EE url(../images/ico-arrow_g.svg) right 15px center / 8px auto no-repeat;
  font-size: 1.153em;
}
.gHeader .gNav_sp .mainNav > li:last-child a {
  border-bottom: none;
}
.gHeader .gNav_sp .mainNav > li.hasSub {
  position: relative;
}
.gHeader .gNav_sp .mainNav > li.hasSub .subNavToggle {
  display: block;
  position: absolute;
  right: 15px;
  top: 5px;
  width: 50px;
  height: 50px;
  background-image: radial-gradient(circle, #fff calc(30px / 2 - 1px), transparent calc(30px / 2));
}
.gHeader .gNav_sp .mainNav > li.hasSub .subNavToggle::before,
.gHeader .gNav_sp .mainNav > li.hasSub .subNavToggle::after {
  content: '';
  display: block;
  position: absolute;
  background-color: #5BB647;
  width: 10px;
  height: 1px;
  top: 50%;
  left: calc(50% - 5px);
}
.gHeader .gNav_sp .mainNav > li.hasSub .subNavToggle::after {
  transform: rotate(90deg);
}
.gHeader .gNav_sp .mainNav > li.hasSub .subNavToggle.close::after {
  display: none;
}
.gHeader .gNav_sp .mainNav > li a span {
  font-size: .8em;
}
.gHeader .gNav_sp .mainNav li .subNav {
  background: #FEFAF5;
}
.gHeader .gNav_sp .mainNav li .subNav li a {
  padding: 1.3em 15px 1.3em 40px;
  background: #FEFAF5 url(../images/ico-arrow_g.svg) right 15px center / 8px auto no-repeat;
  border-color: #EFE6DA;
  font-size: 1.076em;
}

.gHeader .gNav_sp .contact {
  padding: 15px 0 50px;
  background-color: #F8F4EE;
}
.gHeader .gNav_sp .contact .lessonTel {
  max-width: 336px;
  margin: 0 auto;
}
.gHeader .gNav_sp .contact .lessonTel p {
  margin-bottom: 0;
}
.gHeader .gNav_sp .contact .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-bottom: 16px;
}
.gHeader .gNav_sp .contact .btn .lessonBtn {
  flex: 1;
  margin: 0;
}
.gHeader .gNav_sp .contact .snsList {
  margin: 20px 0;
}


/***** mainContents *****/
/* topicsList */
.topicsList {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

/* movieBox */
.movieBox {
  max-width: 800px;
  margin: 0 auto 40px;
}
.movieBox .movie {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.movieBox iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* magicDet */
.aboutSec .magicDet .txt {
  position: relative;
  margin: 15px 35px;
}
.aboutSec .magicDet.magic2 {
  padding-bottom: 20px;
}
.aboutSec .magicDet .txt h3 {
  line-height: 1.5;
  margin-bottom: 15px;
  letter-spacing: .05em;
  font-size: 1.23em;
  font-weight: 700;
  color: #5BB647;
}
.aboutSec .magicDet .txt h3 img {
  margin-bottom: 15px;
}
.aboutSec .magicDet .txt p {
  line-height: 1.8;
  letter-spacing: .05em;
}
.aboutSec .magicDet.magic2 .txt h3,
.aboutSec .magicDet.magic2 .txt p {
  text-align: right;
}
.aboutSec .magicDet.magic2 .txt .chara {
  position: absolute;
  bottom: -20px;
  left: 0;
  transform: rotate(-10deg);
}

/* episodeAlbum */
.episodeAlbum {
  margin-top: 1.875em;
  padding: 0 16px;
}
.episodeAlbum .episodeList {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 25px;
  padding-top: 55px;
}
.episodeAlbum .episodeList li {
  position: relative;
  overflow: hidden;
  width: calc((100% - 25px) / 2);
  height: calc((100vw - 25px - 32px) / 2);
}
.episodeAlbum .episodeList li:nth-child(odd) {
  margin-top: -55px;
}
.episodeAlbum .episodeList li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.episodeModalBox {
  position: relative;
  max-width: calc(900px + 32px);
  height: calc(100vh - 40px);
  overflow-y: auto;
  margin: 0 auto;
  padding: 40px 16px 16px;
  overflow: hidden;
}
.episodeModalDet {
  display: flex;
  flex-direction: column;
  height: 100%;
  background-color: #fff;
  box-shadow: 3px 3px 5px rgba(0,0,0,.15);
}
.episodeModalDet .figList {
  position: relative;
  width: 100%;
  flex: 0 1 75%;
  max-height: 75%;
}
.episodeModalDet .figList .slick-list {
  height: 100%;
}
.episodeModalDet .figList .slick-list .slick-track {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
.episodeModalDet .figList .slick-list li,
.episodeModalDet .figList.slide-one li {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  max-height: 100%;
  line-height: 0;
}
.episodeModalDet .figList .slick-list li img,
.episodeModalDet .figList.slide-one li img,
.episodeModalDet .figList .slick-list li video,
.episodeModalDet .figList.slide-one li video {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
}
.episodeModalDet .figList .slick-dots {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 10px;
}
.episodeModalDet .txtBox {
  flex: 1 1 auto;
  min-height: 100px;
  max-height: 25%;
  padding: 16px 8px 16px 16px;
}
.episodeModalDet .txtBox .txtDet {
  overflow-y: auto;
  height: 100%;
  padding-right: 8px;
}
.episodeModalDet .txtBox p {
  line-height: 2;
  margin-bottom: 1em;
}
.episodeModalDet .txtBox p.account a {
  color: #666;
}
.episodeModalBox .mfp-close {
  display: block;
  width: 32px;
  height: 32px;
  position: absolute;
  top: 0;
  right: 16px;
}
.episodeModalBox .mfp-close::before,
.episodeModalBox .mfp-close::after {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 2px;
  background-color: #fff;
}
.episodeModalBox .mfp-close::before {
  transform: rotate(45deg);
}
.episodeModalBox .mfp-close::after {
  transform: rotate(-45deg);
}

/* faqList */
.faqList {
  margin-bottom: 25px;
}
.faqList dt {
  line-height: 1.5;
  padding: .857em 0 .857em 32px;
  border: solid #C8C8C8;
  border-width: 1px 0;
  background: url(../images/ico-faq_q.svg) 6px .857em / 17px auto no-repeat;
  font-size: 1.076em;
}
.faqList dd {
  line-height: 1.5;
  padding: .857em 0 .857em 32px;
  background: url(../images/ico-faq_a.svg) 7px 1.076em / 15px auto no-repeat;
}

/* newsList */
.newsList {
  margin-bottom: 30px;
}
.newsList li {
  padding-top: 15px;
  border-top: 1px solid #C8C8C8;
}
.newsList li + li {
  margin-top: 28px;
}
.catBox {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.catBox span {
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
  padding: 5px 15px;
  border-radius: 1em;
  font-size: .846em;
  font-weight: 600;
}
.catBox span.catItem {color: #fff;}
.catBox.catNews span.catItem {background-color: #FABF15;}
.catBox.catCp span.catItem {background-color: #FF7C5D;}
.catBox.catEvent span.catItem {background-color: #5BB647;}
.catBox.catAll span.catItem {background-color: #437CE0;}
.catBox span.tagItem {color: #666;}
.catBox.catNews span.tagItem {background-color: #FAF2DA;}
.catBox.catCp span.tagItem {background-color: #FFE5DF;}
.catBox.catEvent span.tagItem {background-color: #E1F1DD;}
.newsList .listWrap {
  display: flex;
  gap: 12px;
  margin-top: 15px;
}
.newsList .listWrap figure {
  position: relative;
  width: 125px;
  height: 90px;
  overflow: hidden;
}
.newsList .listWrap figure img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.newsList .listWrap .listInner {
  width: 100%;
}
.newsList li data {
  display: block;
  font-size: .769em;
  color: #A9A8A8;
}
.newsList li .linkTtl {
  line-height: 2;
  margin-top: 1em;
  font-size: .923em;
}
.newsList li .listWrap.inLink .linkTtl {
  text-decoration: underline;
}
.newsList li .linkBlank {
  display: block;
  padding-left: 1.5em;
  font-size: .846em;
  text-decoration: underline;
  color: #5BB647;
  background: url(../images/ico-blank.svg) left center / 1em auto no-repeat;
}
.newsList .listWrap.blank .linkTtl::after {
content: '';
display: inline-block;
width: 20px;
height: 20px;
background: url(../images/ico-blank_bk.svg) center / 1em auto no-repeat;
}

/* bnr */
.episodeImg,
.trialBnrBox {
  max-width: 680px;
  margin: 0 auto;
}
.episodeImg figcaption,
.trialBnrBox figcaption {
  line-height: 1.733;
  margin-top: 1em;
  font-size: 7.5px;
}


/***** gFooter *****/
.gFooter {
  margin-top: 75px;
}

/* lessonBox */
.gFooter .lessonBox {
  padding: 40px 0 50px;
  background: url(../images/bg-f_lesson.png);
}
.gFooter .lessonBox .wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.gFooter .lessonBox p {
  line-height: 1.769;
  margin-bottom: 0;
  text-align: center;
}
.gFooter .lessonBox .lessonBtn{
  margin-top: 30px;
  margin-bottom: 20px;
}
.gFooter .lessonBox .requestBox {
  margin-top: 30px;
}

/* snsBox */
.gFooter .snsBox {
  padding: 63px 16px;
}
.gFooter .snsBox .contTtl {
  margin-bottom: 15px;
  font-size: 1.23em;
  color: #5BB647;
}

/* fNav */
.gFooter .fNav {
  padding: 50px 20px 105px;
  background-color: #5BB647;
  color: #fff;
}
.gFooter .fNav a {
  color: #fff;
}
.gFooter .fNav p.top a {
  font-size: .769em;
  font-weight: 700;
}

.gFooter .fNav .fNav_2nd {
  display: flex;
  flex-wrap: wrap;
  margin-top: 28px;
  row-gap: 50px;
}
.gFooter .fNav .fNav_2nd > li {
  width: 50%;
}
.gFooter .fNav .fNav_2nd li dl dt {
  margin-bottom: 30px;
}
.gFooter .fNav .fNav_2nd li ul li + li {
  margin-top: 25px;
}
.gFooter .fNav .fNav_2nd li dl dt a,
.gFooter .fNav .fNav_2nd li ul li a {
  line-height: 1.4;
  font-size: .769em;
  font-weight: 600;
  letter-spacing: 1px;
}
.gFooter .fNav .fNav_2nd li dl dd {
  margin-top: 1.5em;
}
.gFooter .fNav .fNav_2nd li dl dd a {
  display: block;
  line-height: 1.4;
  padding-left: 12px;
  background: url(../images/ico-arrow.svg) left center / 5px auto no-repeat;
  font-size: .769em;
  font-weight: 400;
  letter-spacing: 1px;
}

.gFooter .fNav .companyInfo {
  margin: 50px 0 25px;
  border-color: #fff;
}

.gFooter .fNav .logo {
  text-align: center;
}
.gFooter .fNav .logo img {
  width: 230px;
}
.gFooter .fNav .copy {
  margin-top: 13px;
  text-align: center;
  letter-spacing: .1em;
  font-size: .6923em;
}

.pagetop {
  position: fixed;
  bottom: 80px;
  right: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-left: auto;
  font-size: .697em;
  font-weight: 700;
  color: #5BB647;
  cursor: pointer;
}
.pagetop.scrollIn {
  color: #fff;
}

.fFixed {
  position: fixed;
  bottom: 8px;
  left: 0;
  width: 100%;
  padding: 0 13px;
  z-index: 800;
}
.fFixed .fixedBtn {
  display: flex;
  align-items: center;
  gap: 5px;
}
.fFixed .fixedBtn li:first-child {
  flex: 1;
}
.fFixed .fixedBtn li:nth-child(2) {
  width: calc((100% - 75px) * .35);
  min-width: 100px;
}
.fFixed .fixedBtn a.lessonBtn {
  flex-direction: column;
  gap: 9px;
  width: 100%;
  border: none;
  font-size: .846em;
}
.fFixed .fixedBtn a.requestBtn {
  width: 65px;
  height: 65px;
  gap: 9px;
  font-size: .697em;
}



@media screen and (min-width: 768px) {
  body {
    font-size: 1em;
  }

  .pc {display: block;}
  .pcImg {display: inline;}
  .sp,
  .spImg {display: none;}


  /***** common parts *****/
  /* ttl */
  .contTtl {
    margin-bottom: 40px;
    font-size: 1.5em;
  }

  /* btn */
  a.lessonBtn {
    gap: 23px;
    max-width: 450px;
    height: 100px;
    border: none;
    border-radius: 12px;
    box-shadow: rgba(0,0,0,.15) 3px 3px 2px;
    font-size: 1.25em;
  }
  a.lessonBtn img {
    width: 28px;
  }

  .classroom .btn {
    gap: 30px;
  }
  .classroom .btn a,
  .search-classroomBox.classroom .btn a {
    height: 90px;
    border-radius: 45px;
    border-width: 2px;
    box-shadow: rgba(0,0,0,.15) 3px 3px 2px;
    font-size: 1em;
  }
  .classroom .btn a span {
    margin-left: 1em;
    font-size: 1.222em;
  }
  .classroom .btn li:first-child img {width: 24px;} 
  .classroom .btn li:nth-child(2) img {width: 36px;} 
  .classroom h3 {
    margin-top: 50px;
    font-size: 1.125em;
  }
  .classroom .formBox .form-input {
    font-size: 1em;
  }

  a.classroomBtn {
    height: 70px;
    border-radius: 10px;
    box-shadow: rgba(0,0,0,.15) 3px 3px 2px;
    font-size: 1em;
  }

  a.requestBtn {
    width: 100px;
    height: 100px;
    box-shadow: rgba(0,0,0,.15) 3px 3px 2px;
  }

  .requestBox {
    gap: 12px;
  }
  .requestBox a.requestBtn_b {
    min-width: 277px;
    height: 62px;
    border-radius: 31px;
    box-shadow: rgba(0,0,0,.15) 3px 3px 2px;
  }
  .requestBox a.requestBtn_b span {
    margin-left: 35px;
  }

  a.greenBtn,
  a.pinkBtn,
  a.yellowBtn,
  a.orangeBtn,
  a.redBtn,
  a.blueBtn,
  a.light_bBtn,
  a.whiteBtn {
    width: 448px;
    height: 90px;
    border-radius: 45px;
    font-size: 1.25em;
  }
  a.greenBtn.sizeS {
    width: 250px;
    height: 50px;
    border-radius: 25px;
    font-size: 1em;
  }

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

  .lessonTel {
    flex-direction: column;
    align-items: flex-start;
    gap: 21px;
  }
  .lessonTel p {
    font-size: .85em;
  }
  .lessonTel p span {
    padding-right: 1em;
  }
  .lessonTel a {
    font-size: 2.5em;
  }

  .companyInfo {
    gap: 100px;
    padding: 1.5em 0;
    font-size: .9375em;
  }

  .snsList {
    gap: 30px;
  }

  .pageH.classroomDet .slick-dots {
    margin-top: 20px;
  }
  .pageH.classroomDet .slick-dots li {
    width: 8px;
    height: 8px;
  }



  /***** mainContents *****/
  /* topicsSec */
  .topicsList {
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px 4.2%;
  }
  .topicsList li {
    width: calc((100% - 4.2%) / 2);
    max-width: 400px;
  }

  /* magicDet */
  .aboutSec {
    overflow-x: hidden;
  }
  .aboutSec .magicDet {
    max-width: 1400px;
    display: flex;
    gap: 30px;
    align-items: center;
    margin: 60px auto 0;
  }
  .aboutSec .magicDet.magic2 {
    flex-direction: row-reverse;
    padding-bottom: 0;
    margin-bottom: 60px;
  }
  .aboutSec .magicDet figure {
    flex: 1;
    max-width: 900px;
  }
  .aboutSec .magicDet .txt {
    margin: 0;
    width: 298px;
  }
  .aboutSec .magicDet .txt h3 {
    margin-bottom: 30px;
    font-size: 1.75em;
  }
  .aboutSec .magicDet .txt h3 img {
    margin-bottom: 20px;
  }
  .aboutSec .magicDet.magic1 .txt h3 img {width: 92px;}
  .aboutSec .magicDet.magic2 .txt h3 img {width: 112px;}
  .aboutSec .magicDet .txt p {
    font-size: 1.125em;
  }
  .aboutSec .magicDet.magic2 .txt .chara {
    bottom: auto;
    top: 70px;
    left: -80px;
    width: 70px;
  }

  /* episodeAlbum */
  .episodeAlbum {
    margin-top: 90px;
    padding: 0;
  }
  .episodeAlbum .episodeList {
    gap: 97px 17px;
  }
  .episodeAlbum .episodeList li {
    width: calc((100% - 17px * 6) / 7);
    height: calc((100vw - 17px * 6) / 7);
  }
  .episodeAlbum .episodeList li:nth-child(8) {
    margin-left: calc((100% - 17px * 6) / 7 / 2);
  }
  .episodeModalBox {
    min-height: 562px;
    height: 100%;
    max-height: calc(100vh - 40px - 16px);
  }
  .episodeModalDet {
    flex-direction: row;
    min-height: 562px;
    max-height: calc(100vh - 96px);
  }
  .episodeModalDet .figList {
    width: 50%;
    flex: 1;
    max-height: 100%;
  }
  .episodeModalDet .txtBox {
    width: 50%;
    flex: 1;
    max-height: 760px;
    padding: 30px 15px 30px 30px;
  }
  .episodeModalDet .txtBox .txtDet {
    height: auto;
    max-height: 100%;
    padding-right: 15px;
  }
  .episodeModalDet .txtBox .txtDet p {
    font-size: .9375em;
  }


  /* faqList */
  .faqList {
    max-width: 800px;
    margin: 0 auto 50px;
  }
  .faqList dt {
    padding: 1em 0 1em 32px;
    background-size: 22px auto;
    background-position: 0 1em;
    font-size: 1.125em;
  }
  .faqList dd {
    margin-bottom: 50px;
    padding: 1em 0 0 32px;
    background-size: 20px auto;
    background-position: 0 1em;
  }

  /* newsList */
  .newsList {
    max-width: 800px;
    margin: 0 auto 80px;
  }
  .newsList li {
    padding-top: 21px;
  }
  .newsList li + li {
    margin-top: 40px;
  }
  .newsList .listWrap {
    gap: 25px;
    margin-top: 21px;
  }
  .newsList .listWrap figure {
    width: 250px;
    height: 180px;
  }
  .catBox {
    gap: 7px;
  }
  .catBox span {
    padding: 7px 21px;
    font-size: .9375em;
  }
  .newsList li data {
    font-size: .875em;
  }
  .newsList li .linkTtl {
    font-size: 1em;
  }

  /* bnr */
  .episodeImg figcaption,
  .trialBnrBox figcaption {
    font-size: 12px;
  }


  /***** gFooter *****/
  .gFooter {
    margin-top: 145px;
  }

  /* lessonBox */
  .gFooter .lessonBox {
    padding: 87px 0 118px;
  }
  .gFooter .lessonBox .contTtl img {
    width: 50px;
  }
  .gFooter .lessonBox .lessonBtn {
    margin-top: 40px;
    margin-bottom: 80px;
  }
  .gFooter .lessonBox .f-contactBox {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 640px;
    gap: 60px;
  }
  .gFooter .lessonBox .requestBox {
    margin-top: 0;
  }

  /* snsBox */
  .gFooter .snsBox {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 88px;
    margin: 0 auto;
    padding: 100px 16px;
  }
  .gFooter .snsBox .contTtl {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 0;
    font-size: 1.125em;
  }
  .gFooter .snsBox .contTtl img {
    width: 36px;
  }
  .gFooter .snsBox .snsList li:first-child img {width: 35px;}
  .gFooter .snsBox .snsList li:nth-child(2) img {width: 40px;}

  /* fNav */
  .gFooter .fNav {
    padding: 40px 0px;
  }
  .gFooter .fNav p.top a {
    font-size: .9375em;
  }

  .gFooter .fNav .fNav_2nd {
    justify-content: space-between;
    row-gap: 1em;
  }
  .gFooter .fNav .fNav_2nd > li {
    width: auto;
    max-width: calc((100% - 3em) / 4);
  }
  .gFooter .fNav .fNav_2nd li dl dt a,
  .gFooter .fNav .fNav_2nd li ul li a {
    font-size: 1em;
  }
  .gFooter .fNav .fNav_2nd li dl dd a {
    padding-left: 30px;
    background-size: 8px auto;
    font-size: .875em;
  }
  .gFooter .fNav .fNav_2nd li dl dd a span {
    font-size: .8em;
  }

  .gFooter .fNav .companyInfo {
    margin: 40px 0 30px;
  }

  .gFooter .fNav .logo img {
    width: 260px;
  }
  .gFooter .fNav .copy {
    font-size: .625em;
  }

  .pagetop {
    bottom: 20px;
    right: 20px;
    font-size: .8125em;
  }
  .pagetop img {
    width: 50px;
  }

  .fFixed {
    left: auto;
    right: 0;
    top: calc(50% - 220px);
    width: 89px;
    height: 440px;
    padding: 0;
    z-index: 800;
  }
  .fFixed .fixedBtn {
    flex-direction: column;
    align-items: flex-end;
    gap: 15px;
  }
  .fFixed .fixedBtn li:nth-child(2) {
    width: 60px;
    min-width: auto;
  }
  .fFixed .fixedBtn a.classroomBtn {
    flex-direction: column;
    gap: 10px;
    width: 60px;
    height: 160px;
    border: solid #fff;
    border-width: 2px 0 2px 2px;
    border-radius: 12px 0 0 12px;
  }
  .fFixed .fixedBtn a.classroomBtn span {
    text-align: left;
     writing-mode: vertical-rl;
  }
  .fFixed .fixedBtn a.lessonBtn {
    flex-direction: row;
    justify-content: center;
    gap: 10px;
    width: 60px;
    height: 160px;
    border: solid #fff;
    border-width: 2px 0 2px 2px;
    border-radius: 12px 0 0 12px;
    writing-mode: vertical-rl;
  }
  .fFixed .fixedBtn a.lessonBtn img {
    margin-left: 10px;
  }
  .fFixed .fixedBtn a.requestBtn {
    width: 80px;
    height: 80px;
    gap: 13px;
    margin-right: 9px;
    font-size: .8125em;
  }
  .fFixed .fixedBtn a.requestBtn img {
    width: 22px;
  }

}



@media screen and (min-width: 1024px) {
  body {
    padding-top: 150px;
  }

  /***** gHeader *****/
  .gHeader {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }

  /* hLogoBox */
  .gHeader .hLogoBox {
    padding: 20px 10px 0 10px;
  }
  .gHeader .hLogoBox .logoBox {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
  .gHeader .hLogoBox .logoBox .logo img {
    width: 275px;
  }
  .gHeader .hLogoBox .logoBox .membersBtn {
    min-width: 100px;
    padding: 10px 18px 10px 15px;
    background-size: 6px auto;
    font-size: .8125em;
  }
  .gHeader .hLogoBox .spNavToggle {
    display: none;
  }

  /* gNav_pc */
  .gNav_pc {
    display: block;
    padding: 20px 10px 0 0;
  }
  .gNav_pc .mainNav {
    display: flex;
    align-items: flex-start;
    gap: 4px;
  }
  .gNav_pc .mainNav > li {
    width: 140px;
    padding: 0 8px;
    border-radius: 25px;
    border: 2px solid #5BB647;
    background-color: #fff;
    box-shadow: rgba(0,0,0,.1) 2px 2px 2px;
  }
  .gNav_pc .mainNav > li > a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 46px;
    line-height: 1.28;
    text-align: center;
    color: #5BB647;
    font-weight: 700;
    font-size: .875em;
  }
  .gNav_pc .mainNav > li.hasSub > a {
    background: url(../images/ico-arrow_g_b.svg) right center / 12px auto no-repeat;
  }
  .gNav_pc .mainNav li .subNav {
    display: none;
    top: 50px;
    padding-bottom: 10px;
    border-top: 1px solid #5BB647;
  }
  .gNav_pc .mainNav > li:hover .subNav {
    display: block;
  }
  .gNav_pc .mainNav li .subNav li a {
    display: block;
    padding: 15px 0 15px 21px;
    background: url(../images/ico-arrow_g.svg) 5px center / 7px auto no-repeat;
    font-size: .8125em;
    font-weight: 600;
    color: #5BB647;
  }
  .gNav_pc .mainNav li .subNav li a span {
    font-size: .8em;
  }

  /* gNav_sp */
  .gHeader .gNav_sp {
    display: none;
  }
}



@media screen and (min-width: 1360px) {
  /* hLogoBox */
  .gHeader .hLogoBox {
    padding-left: 30px;
  }

  /* gNav_pc */
  .gNav_pc {
	padding-right: 20px
  }
  .gHeader .hLogoBox .logoBox {
    gap: 16px;
  }
  .gHeader .hLogoBox .logoBox .membersBtn {
    padding: 10px 26px 10px 15px;
  }
  .gNav_pc .mainNav {
    gap: 18px;
  }
  .gNav_pc .mainNav > li {
    width: 190px;
    padding: 0 15px;
  }

}