@charset "utf-8";
/* CSS Document */
/* ============================================================ */
/* common
/* ============================================================ */
body {
  overflow-x: hidden;
}
a.text_a_under {
  color: #32AE47;
  text-decoration: underline;
}
a.text_a_under:hover {
  color: inherit;
  text-decoration: inherit;
}
@media screen and (max-width: 769px) {
  #index #flow h2:before {
    left: 0px;
  }
  #index #flow .step ul.flex_4rows li {
    font-size: 1.4rem;
  }
  #index #flow .step_end p {
    font-size: 1.6rem;
  }
  #index #point h2 {
    font-size: 3rem;
    margin-bottom: 10px;
  }
  #index #point h2 span {
    font-size: 1.8rem;
  }
  #index #point h2::after {
    bottom: 10px;
  }
  #index #point h3 {
    font-size: 2.6rem;
  }
  .side_menu {
    z-index: 200;
  }
}
/* ============================================================ */
/* main
/* ============================================================ */
#index .visual {
  position: relative;
  min-height: 600px;
  background: url(/kids/img/main_bg.webp) no-repeat center;
  background-size: cover;
}
#index .visual .main {
  max-width: 640px;
  top: 52%;
  padding: inherit;
}
#index .visual .main .mainBox {
  padding: 4.5rem 4.5rem 3rem;
  background: #fff;
  box-shadow: 3px 3px 40px rgb(188 193 163 / 60%);
  border-radius: 2rem;
  width: 100%;
  position: relative;
  margin-bottom: 1.5rem;
}
#index .visual .main::before {
  content: '';
  background: url(/kids/img/main_img.webp) no-repeat center;
  width: 480px;
  height: 550px;
  position: absolute;
  top: -1rem;
  right: -66rem;
  background-size: 100%;
  transform: translateX(-50%) translateX(20%);
}
#index .visual .main .mainBox h1 {
  color: #32AE47;
  font-weight: bold;
  font-size: 5.4rem;
  line-height: 0.8;
  position: relative;
}
#index .visual .main .mainBox h1::before {
  content: '';
  width: 110px;
  border-bottom: 1px #A2A2A2 solid;
  position: absolute;
  bottom: -2.5rem;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
}
#index .visual .main .mainBox h1 > span {
  font-size: 2rem;
  font-weight: normal;
  color: #666666;
}
#index .visual .main .mainBox h1 > span span {
  font-size: 1.6rem;
}
#index .visual .main p.main_copyline {
  font-size: 2rem;
  text-align: center;
  margin: 5rem 0 1.5rem;
  line-height: 1.4;
  font-weight: bold;
}
#index .visual .main .main_subject {
  border: #829C86 solid 1px;
  border-radius: 1rem;
  display: flex;
  flex-wrap: wrap;
  max-width: 240px;
  margin: 0 auto 1rem;
}
#index .visual .main .main_subject li.item--narrow {
  width: 100px;
  background: #829C86;
  color: #fff;
  border-radius: 0.8rem 0 0 0.8rem;
  font-weight: normal;
  line-height: 2;
}
#index .visual .main .main_subject li.item--wide {
  color: #333333;
  flex: 1;
  font-size: 1.8rem;
}
#index .visual .main .main_price {
  position: absolute;
  right: -8rem;
  top: 10rem;
  width: 180px;
  height: 180px;
  background: url(/kids/img/main_price_bg.svg) no-repeat center;
  color: #32AE47;
  font-size: 1.8rem;
  padding: 3rem 2rem;
  line-height: 1.2;
}
#index .visual .main .main_price .main_price_tit {
  margin: 0 auto 0.5rem;
  display: block;
}
#index .visual .main .main_price span {
  font-size: 3.2rem;
  display: block;
  margin: 0 0.2rem;
}
#index .visual .main p.satisfaction {
  margin-bottom: 2rem;
}
#index .visual .main a {
  max-width: 360px;
  display: inline-block;
  padding: 1rem 6rem 1rem 3rem;
  background: linear-gradient(to right, #FF492C 0%, #FF4D2D 70%, #FFCB3D 100%);
  font-weight: bold;
  font-size: 2.2rem;
  color: #fff;
  position: relative;
  border-radius: 50px;
}
#index .visual .main a span {
  font-size: 1.8rem;
  margin: 0 0.3rem;
}
#index .visual .main a::after {
  content: "";
  display: inline-block;
  width: 27px;
  height: 22px;
  background: url("/kids/assets/img/icon_arrow_right_white.svg") no-repeat right;
  position: absolute;
  right: 8%;
  top: 35%;
}
#index .visual .main a:hover::after {
  background: url(/kids/assets/img/icon_arrow_right_white_ov.svg) no-repeat right;
}
#index .visual .main .notes {
  font-size: 1rem;
  text-align: left;
}
@media screen and (max-width: 769px) {
  #index .visual {
    padding-top: inherit;
  }
  #index .visual::before {
    content: '';
    background: url(/kids/img/main_img_sp_top.webp) no-repeat center;
    width: 90%;
    height: 135px;
    position: absolute;
    top: 1rem;
    /* right: 50%; */
    left: 5%;
    background-size: 100%;
    transform: translateX(-50%) translateX(50%);
  }
  #index .visual::after {
    content: '';
    background: url(/kids/img/main_img_sp_btm.webp) no-repeat center;
    width: 90%;
    height: 100px;
    position: absolute;
    left: 5%;
    bottom: 4.5rem;
    background-size: 100%;
    transform: translateX(-50%) translateX(50%);
  }
  #index .visual .main {
    max-width: 100%;
    z-index: 100;
    min-height: 600px;
    padding-top: 9rem;
  }
  #index .visual .main a {
    padding: 0.8rem 3rem 0.8rem 2rem;
    font-size: 1.6rem;
  }
  #index .visual .main a::after {
    top: 25%;
  }
  #index .visual .main a span {
    font-size: 1.4rem;
  }
  #index .visual .main .main_price {
    position: absolute;
    right: -2.5rem;
    top: 8rem;
    width: 102px;
    height: 102px;
    background: url(/kids/img/main_price_bg.svg) no-repeat center;
    color: #32AE47;
    font-size: 1.2rem;
    padding: 0;
    line-height: 1.2;
    background-size: 100%;
    margin-bottom: 1rem;
  }
  #index .visual .main .main_price .main_price_tit {
    width: 70%;
    margin: 1.4rem auto 0.3rem;
  }
  #index .visual .main .main_price span {
    font-size: 1.8rem;
  }
  #index .visual .main .mainBox {
    padding: 3rem 2rem 2rem;
    max-width: 85%;
    margin: 0 auto;
  }
  #index .visual .main .mainBox h1 {
    font-size: 3rem;
  }
  #index .visual .main .mainBox h1 > span {
    font-size: 1.4rem;
  }
  #index .visual .main .mainBox h1 > span span {
    font-size: 1.2rem;
  }
  #index .visual .main .mainBox h1::before {
    width: 60px;
  }
  #index .visual .main p.main_copyline {
    font-size: 1.4rem;
  }
  #index .visual .main .main_subject {
    max-width: 50%;
    border-radius: 0.5rem;
  }
  #index .visual .main .main_subject li.item--narrow {
    font-size: 1.1rem;
    width: 45%;
    border-radius: 0.4rem 0 0 0.4rem;
  }
  #index .visual .main .main_subject li.item--wide {
    font-size: 1.3rem;
    line-height: 1.7;
  }
  #index .visual .main::before {
    content: inherit;
  }
  #index .visual .main .notes {
    font-size: 0.8rem;
    position: absolute;
    bottom: 0;
    margin-bottom: 2rem;
    width: 100%;
    text-align: center;
  }
}
/* ============================================================ */
/* .about
/* ============================================================ */
#index .about {
  margin: 40px 0 30px;
}
#index .about p {
  font-size: 2.2rem;
}
#index .about p span:nth-of-type(1) {
  font-size: 3.5rem;
}
#index .about p span:nth-of-type(2) {
  position: relative;
  font-size: 3.5rem;
  margin: 0 10px;
}
@media screen and (max-width: 769px) {
  #index .about {
    margin: 20px 0 10px;
  }
  #index .about p span:nth-of-type(1) {
    font-size: 2rem;
  }
  #index .about p span:nth-of-type(2) {
    font-size: 2rem;
    margin: 0 5px;
  }
  #index .about p {
    font-size: 1.4rem;
  }
  #index .experience_box {
    padding: 1.5rem 1rem !important;
    font-size: 1.6rem !important;
  }
}
/* ============================================================ */
/* #top_flow       .experience_box
/* ============================================================ */
/*.experience_box*/
#index .experience_box {
  background: #F1F8D5;
  padding: 20px 0;
  text-align: center;
  margin: 0 0 20px;
  font-size: 2.4rem;
  font-weight: bold;
}
#index .experience_box span {
  text-align: center;
  color: #32AE47;
  padding: 0 0.5rem;
}
/*#top_flow*/
#index section#top_flow {
  margin: 7rem 0 10rem;
}
#index #top_flow .wrap {
  background-color: #F5F5F5;
  padding: 40px 0;
  width: 100%;
}
#index #top_flow h2 {
  max-width: 500px;
  margin: 0 auto 30px;
}
#index #top_flow h2 span {
  position: relative;
}
#index #top_flow h2 span:before {
  position: absolute;
  top: -50px;
  left: -50%;
  content: "";
  display: inline-block;
  background-size: contain;
  width: 87px;
  height: 87px;
  background: url(/kids/img/flow02.svg) no-repeat left;
  margin: 0 20px 0 0;
  vertical-align: top;
}
#index #top_flow .step_lead {
  text-align: center;
  color: #333;
  margin: 4rem 0 3rem;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.4;
}
#index #top_flow .step ul.flex_4rows {
  display: flex;
  flex-wrap: wrap;
  max-width: 640px;
  margin: 0 auto 2rem;
}
#index #top_flow .step ul.flex_4rows li {
  flex: 0 0 20%;
  margin: 0 auto;
  text-align: center;
  font-weight: bold;
  line-height: 1.4;
  font-size: 1.8rem;
  position: relative;
  color: #333;
}
#index #top_flow .step ul.flex_4rows li figure {
  position: relative;
}
#index #top_flow .step ul.flex_4rows li:not(:last-child) figure::after {
  position: absolute;
  content: "";
  top: 50%;
  left: calc(100% + 18px);
  transform: translate(-50%, -50%);
  width: 25px;
  height: 25px;
  background: url(/kids/assets/img/icon_arrow_right.svg) no-repeat center / contain;
}
#index #top_flow .step ul.flex_4rows li figure {
  margin: 0 0 1rem;
}
#index #top_flow .btnL {
  max-width: 520px;
  position: relative;
  margin: 6rem auto 0;
}
#index #top_flow .btnL p.btn_txt {
  position: absolute;
  right: 4rem;
  top: -3.5rem;
  font-size: 1.8rem;
}
#index #top_flow a {
  position: relative;
  max-width: 520px;
  padding: 2rem;
  border-radius: 50px;
}
#index #top_flow a .btnL_bubble {
  position: absolute;
  top: -3.5rem;
  left: -5rem;
  font-size: 1.6rem;
  width: 133px;
  color: #fff;
  background: #32ae47;
  font-weight: bold;
  border-radius: 1rem;
  padding: 1rem 2rem;
  line-height: 1.2;
  box-shadow: 4px 4px 0 rgba(51, 51, 51, 0.3);
}
#index #top_flow a .btnL_bubble span {
  font-size: 1.8rem;
  color: #ffeb36;
}
#index #top_flow a .btnL_bubble::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 60%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 0px solid transparent;
  border-top: 10px solid #32ae47;
}
#index #top_flow a .btnL_bubble::before {
  content: "";
  position: absolute;
  bottom: -10px;
  /*left: calc(60% + 5px);*/
  left: 60%;
  border-left: 10px solid transparent;
  border-right: 0 solid transparent;
  border-top: 10px solid rgba(51, 51, 51, 0.3); /* ←影の色 */
}
#index #top_flow .btnL p.btn_note {
  line-height: 1.4;
  margin-top: 1rem;
}
#index #top_flow .btnL p.btn_note {
  font-size: 1.2rem;
}
#index #point ul.flex_3rows li {
  margin: 0 auto 2%;
}
@media screen and (max-width: 769px) {
  h2 span {
    font-size: 2.4rem;
  }
  #index #top_flow h2 span:before {
    position: absolute;
    top: -50px;
    left: -50%;
    content: "";
    display: inline-block;
    width: 87px;
    height: 87px;
    background: url(/kids/img/flow02.svg) no-repeat left;
    margin: 0 20px 0 0;
    vertical-align: top;
    background-size: 100%;
  }
  #index section#top_flow {
    margin: 5rem 0 20px;
    padding: 0;
  }
  #index #top_flow ul {
    width: 100%;
  }
  #index #top_flow ul li div {
    border-top: 60px solid #32AE47;
    border-right: 50px solid transparent;
  }
  #index #top_flow ul li div p {
    font-size: 0.7rem;
    bottom: 30px;
    left: 5px;
  }
  #index #top_flow ul li div p span {
    font-size: 1.4rem;
  }
  #index #top_flow ul li p {
    font-size: 1rem;
  }
  #index #top_flow .step ul.flex_4rows li {
    flex: 0 0 25%;
    font-size: 1.4rem;
  }
  #index #top_flow .step ul.flex_4rows li figure {
    margin: 0 auto 0.5rem;
    width: 85%;
  }
  #index #top_flow .step ul.flex_4rows li:not(:last-child) figure::after {
    left: calc(100% + 8px);
    width: 13px;
    height: 13px;
    background: url(/kids/assets/img/icon_arrow_right.svg) no-repeat center / contain;
  }
  #index #top_flow .step {
    padding: 0 2rem;
  }
  #index #top_flow a {
    width: 90%;
    padding: 1rem;
    font-size: 1.6rem;
  }
  #index #top_flow a::before {
    margin: 0 -10px 0 -20px;
    background-size: 50%;
  }
  #index #top_flow a::after {
    width: 18px;
    height: 22px;
    right: 15px;
  }
  #index #top_flow a .btnL_bubble {
    width: 85px;
    font-size: 1.2rem;
    padding: 1rem 0.5rem;
    top: -4rem;
  }
  #index #top_flow a .btnL_bubble span {
    font-size: 1.6rem;
  }
  #index #top_flow .btnL p.btn_txt {
    position: absolute;
    right: 2rem;
    top: -2.5rem;
    font-size: 1.2rem;
  }
  #index #top_flow .btnL p.btn_txt::before {
    left: -10px;
  }
  #index #top_flow .btnL p.btn_txt::after {
    right: -10px;
  }
  #index #top_flow .btnL p.btn_txt::before, #index #top_flow .btnL p.btn_txt::after {
    height: 15px;
  }
  #index #top_flow .btnL p.btn_note {
    font-size: 1rem;
  }
  #index #top_flow .step_lead {
    margin: 3rem 0 2rem;
  }
}
/* ============================================================ */
/* #top_price
/* ============================================================ */
#top_price .wrap03 {
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
  color: #333;
}
#top_price #price_list .point_0yen_textBox {
  max-width: 500px;
  text-align: center;
  margin: 0 auto 1rem;
}
#top_price #price_list .point_0yen_text .text_poit2 {
  background: linear-gradient(transparent 75%, #ffcac6 30%);
  margin: 0 0 0 1rem;
}
#top_price #price_list .point_0yen_text {
  position: relative;
  display: inline-block;
  font-size: 2.2rem;
  text-align: center;
  font-weight: bold;
}
#top_price #price_list .point_0yen_text::before, #top_price #price_list .point_0yen_text::after {
  content: "";
  width: 20px;
  height: 20px;
  margin-top: -1.4rem;
  display: block;
  position: absolute;
  top: 50%;
}
#top_price #price_list .point_0yen_text::before {
  left: -20px;
  border-left: 2px solid;
  transform: rotate(-30deg);
}
#top_price #price_list .point_0yen_text::after {
  right: -20px;
  border-right: 2px solid;
  transform: rotate(30deg);
}
#top_price #price_list ul.point_0yen_ver2 {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
#top_price #price_list ul.point_0yen_ver2 li {
  flex: 0 0 31.33333%;
  margin: 0 2% 0 0;
  background: #FFFEED;
  border: 2px solid #333333;
  border-radius: 1rem;
  padding: 1.5rem 3rem;
  text-align: center;
  margin-bottom: 0.5rem;
}
#top_price #price_list ul.point_0yen_ver2 li p {
  font-weight: bold;
  margin-bottom: 1rem;
  font-size: 2rem;
}
#top_price #price_list .point_0yen_ver2 img {
  width: inherit;
  height: inherit;
}
#top_price #price_list .point_0yen_note {
  margin-bottom: 4rem;
}
#top_price #price_plan ul.slide_3rows li.slide-item {
  background: #fff;
  border-radius: 1.2rem 1.2rem 0 0;
}
@media screen and (max-width: 769px) {
  #top_price h3 {
    margin-bottom: 0.5em;
  }
  #top_price .wrap03 {
    margin: 0 auto 2rem;
  }
  #top_price #price_list .point_0yen_text {
    font-size: 1.6rem;
    line-height: 1.4;
  }
  #top_price #price_list ul.point_0yen_ver2 li {
    border: 1px solid #333333;
    border-radius: 1rem;
    padding: 1rem;
  }
  #top_price #price_list ul.point_0yen_ver2 li p {
    font-size: 1.3rem;
  }
  #top_price #price_list .point_0yen_ver2 img {
    width: 80%;
  }
  #top_price #price_list .point_0yen_text::before, #top_price #price_list .point_0yen_text::after {
    content: "";
    width: 20px;
    height: 50px;
    margin-top: -3rem;
    display: block;
    position: absolute;
    top: 50%;
  }
  #index #top_step .step {
    padding: 0;
  }
  #index #top_step .step_end:before {
    border-top: 20px solid #f7f8fb;
  }
  #index #top_step ul.slide_3rows {
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    display: inherit;
    flex-flow: inherit;
    justify-content: inherit;
  }
  #price_plan ul.slide_3rows li.slide-item {
    width: 135px !important;
  }
  #top_price #price_list .point_0yen_note {
    margin-bottom: 0;
  }
}
#price_plan section#price_list {
  margin: 0;
}
#price_plan #price_list .point_0yen {
  background: #FFF7E1;
  border: 2px solid #F2D88F;
  border-radius: 1rem;
  padding: 1.5rem 3rem;
  text-align: center;
  margin-bottom: 0.5rem;
}
#price_plan .text_poit {
  background: linear-gradient(transparent 70%, #A7DFF9 30%);
}
.price_plan_slide_2rows {
  display: flex;
  gap: 2rem;
}
.price_plan_slide_2rows li.item--narrow {
  flex: 1;
  position: relative;
}
.price_plan_slide_2rows li.item--narrow::before {
  content: '';
  position: absolute;
  border-right: 2px dotted #6E6E6E;
  height: 30rem;
  right: -1.5rem;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
}
#top_price .price_plan_tit {
  position: relative;
  font-size: 2rem;
  padding: 0 0 1rem 2rem;
}
#top_price .price_plan_tit::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.8rem;
  width: 0.5rem;
  height: 2rem;
  background: #32AE47;
}
.price_plan_slide_2rows li.item--wide {
  flex: 3;
}
/*tab*/
#price_plan #price_list ul.tab_kids {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin-bottom: 6px;
  border-bottom: 4px solid #333;
}
#price_plan #price_list ul.tab_kids li {
  cursor: pointer;
  -webkit-box-flex: 0;
  flex: 0 0 45%;
  text-align: center;
  background: #9E9E9E;
  color: #fff;
  margin: 0 auto;
  font-size: 1.6rem;
  padding: 1rem;
  border-radius: 10px 10px 0 0;
}
#price_plan #price_list ul.tab_kids li:hover {
  font-weight: bold;
  transition: 0.3s ease-in-out;
}
#price_plan #price_list ul.tab_kids li.active {
  font-weight: bold;
  position: relative;
  /*background: #fff;*/
  color: #333;
  border-top: 4px solid #333;
  border-right: 4px solid #333;
  border-left: 4px solid #333;
  border-radius: 10px 10px 0 0;
  background: linear-gradient(180deg, rgb(255 238 242) 36%, rgb(255 255 255) 100%);
}
#price_plan #price_list ul.tab_kids li.active {
  background: linear-gradient(180deg, rgb(244 251 215) 36%, rgb(255 255 255) 100%);
}
#price_plan #price_list ul.tab_kids li.active::after {
  content: "";
  position: absolute;
  z-index: 2;
  border-bottom: 4px solid #fff;
  bottom: -4px;
  width: 100%;
  left: 0;
}
#price_plan #price_list div.tab_box_kids {
  clear: both;
  display: none;
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  background: #fff;
  margin-top: 6rem;
}
#price_plan #price_list div.active {
  display: block;
}
/*/tab*/
#price_plan ul.slide_3rows {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  margin: 0 0 3rem 0;
}
#price_plan ul.slide_3rows li.slide-item {
  /* 横スクロール用 */
  display: inline-block;
  width: 155px;
}
#price_plan ul.slide_3rows li.w2, #price_plan ul.slide_3rows li.w2 .planlist {
  width: 200px;
}
#price_plan ul.slide_3rows li.w3, #price_plan ul.slide_3rows li.w3 .planlist {
  width: 300px;
}
#price_plan ul.slide_3rows li.slide-item:not(:last-child) {
  margin-right: 1rem;
}
#price_plan .planlist {
  width: 155px;
  position: relative;
  padding: 50px 0 0 0;
  font-feature-settings: "palt";
}
#price_plan .planlist_best {
  border: 2px solid #009FE8;
  border-radius: 15px;
  padding: 1rem 0.5rem;
  text-align: center;
  font-weight: bold;
  font-size: 1.5rem;
  position: absolute;
  top: 0;
  width: 100%;
  background: #fff;
  line-height: 1.4;
}
#price_plan .planlist_red .planlist_best {
  border: 2px solid #F9184E;
}
#price_plan .planlist_pin .planlist_best {
  border: 2px solid #FB8686;
}
#price_plan .planlist_yel .planlist_best {
  border: 2px solid #FFC936;
}
#price_plan .planlist_gre .planlist_best {
  border: 2px solid #32AE47;
}
#price_plan .star {
  padding: 1rem 0.5rem 1rem 2.5rem;
}
#price_plan .star::before {
  background: url(/price/img/icon_best.svg) no-repeat left;
  content: "";
  display: inline-block;
  width: 27px;
  height: 32px;
  vertical-align: middle;
  top: -0.5rem;
  left: 10px;
  position: absolute;
}
#price_plan .star.star_yel::before {
  background: url(/price/img/icon_best_yel.svg) no-repeat left;
}
#price_plan .star.star_pin::before {
  background: url(/price/img/icon_best_pin.svg) no-repeat left;
}
#price_plan .planlist_container {
  border: 1px solid #EBEBEB;
  text-align: center;
}
#price_plan .planlist_container_blu {
  border: 2px solid #009FE8;
}
#price_plan .planlist_container_red {
  border: 2px solid #f9184e;
}
#price_plan .planlist_container_pin {
  border: 2px solid #FB8686;
}
#price_plan .planlist_container_yel {
  border: 2px solid #FFC936;
}
#price_plan .planlist_container_gre {
  border: 2px solid #32AE47;
  border-radius: 0 0 0.8rem 0.8rem;
}
#price_plan .planlist_plan {
  background: #009FE8;
  padding: 1rem 0.5rem 0;
}
#price_plan .planlist_red .planlist_plan {
  background: #F9184E;
}
#price_plan .planlist_pin .planlist_plan {
  background: #FB8686;
}
#price_plan .planlist_yel .planlist_plan {
  background: #FFC936;
}
#price_plan .planlist_gre .planlist_plan {
  background: #32AE47;
}
#price_plan .planlist_plan_teacher {
  color: #fff;
  font-size: 1.0rem;
  line-height: 1.4;
  vertical-align: middle;
  margin: -0.8rem 0 0.8rem 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 3rem;
}
#price_plan .planlist_plan_plan {
  border-radius: 20px;
  background: #fff;
  line-height: 1.2;
  padding: 0.5rem;
}
#price_plan .planlist_plan_plan2 {
  color: #fff;
  font-size: 1.6rem;
  font-weight: bold;
  padding: 1rem 0;
}
#price_plan ul.planlist_price li {
  padding: 0.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 6rem;
}
#price_plan ul.planlist_price li:nth-child(1) p {
  font-size: 2.4rem;
  font-weight: bold;
  padding: 1rem 0;
}
#price_plan ul.planlist_price li:nth-child(1) p span {
  font-size: 1.4rem;
  margin: 0 0 0 0.3rem;
}
#price_plan ul.planlist_price li:nth-child(2), #price_plan ul.planlist_price li:nth-child(4) {
  background: #ECF9FF;
}
#price_plan .planlist_red ul.planlist_price li:nth-child(2), #price_plan .planlist_red ul.planlist_price li:nth-child(4) {
  background: #FFEEF2;
}
#price_plan .planlist_pin ul.planlist_price li:nth-child(2), #price_plan .planlist_pin ul.planlist_price li:nth-child(4) {
  background: #FFEEF2;
}
#price_plan .planlist_yel ul.planlist_price li:nth-child(2), #price_plan .planlist_yel ul.planlist_price li:nth-child(4) {
  background: #FFF7E1;
}
#price_plan .planlist_gre ul.planlist_price li:nth-child(2), #price_plan .planlist_gre ul.planlist_price li:nth-child(4) {
  background: #F4FBD7;
}
#price_plan ul.planlist_price li:nth-child(2) p {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.4;
}
#price_plan ul.planlist_price li:nth-child(2) p span {
  font-size: 1.0rem;
  font-weight: normal;
}
#price_plan ul.planlist_price li:nth-child(3) {
  font-size: 1.3rem;
}
#price_plan ul.planlist_price li:nth-child(4) p {
  font-size: 1.3rem;
}
#price_plan ul.planlist_price li:nth-child(4) p span {
  font-size: 1.0rem;
  margin-right: 0.5rem;
}
#price_plan ul.planlist_price li:nth-child(4) p span.emphasis {
  font-size: inherit;
  margin-right: 0.5rem;
  font-weight: bold;
}
#price_plan .planlist_container_red ul.planlist_price li:nth-child(4) p span.emphasis {
  border-bottom: 2px solid #f9184e;
}
#price_plan .planlist_container_blu ul.planlist_price li:nth-child(4) p span.emphasis {
  border-bottom: 2px solid #009FE8;
}
#price_plan ul.planlist_price li:nth-child(5) p {
  font-size: 1.4rem;
}
#price_plan ul.planlist_price li:nth-child(5) p span {
  font-size: 1.0rem;
}
#price_plan ul.planlist_price li:nth-child(5) p.check {
  font-weight: bold;
}
#price_plan ul.planlist_price li:nth-child(5) p.check span {
  font-weight: initial;
}
#price_plan ul.planlist_price li:nth-child(6) div {}
/*吹き出し*/
.annotation_area {
  position: relative;
  text-align: center;
}
.annotation_area a {
  transition: 0.3s ease-in-out;
}
a.annotation_icon::before {
  background: url(/price/img/icon_annotation.svg) no-repeat left;
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin: 0 0 3px 3px;
  vertical-align: middle;
}
.tooltip {
  position: absolute;
  background-color: rgb(0, 0, 0, 0.8);
  color: white;
  border-radius: 0.5em;
  padding: 1rem;
  margin: 0.3em 0 0 0;
  display: none;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  animation-name: fade-in;
  animation-duration: 0.5s;
  font-size: 1.0rem;
  width: 130px;
  text-align: initial;
  z-index: 10;
  white-space: normal;
}
.tooltip:after {
  content: "";
  position: absolute;
  top: 100%;
  left: 52%;
  margin-left: -10px;
  border: 10px solid transparent;
  border-top: 10px solid rgb(0, 0, 0, 0.8);
}
/*吹き出し end*/
#price_plan li.ml_s a {
  width: 100%;
  display: inline-block;
  padding: 0.5rem 0;
  background: #009FE8;
  font-size: 1.3rem;
  color: #fff;
  position: relative;
}
#price_plan .planlist_red li.ml_s a {
  background: #F9184E;
}
#price_plan .planlist_pin li.ml_s a {
  background: #FB8686;
}
#price_plan .planlist_yel li.ml_s a {
  background: #FFC936;
}
#price_plan .planlist_gre li.ml_s a {
  background: linear-gradient(to right, #FF492C 0%, #FF4D2D 70%, #FFCB3D 100%);
  border-radius: 5rem;
}
#price_plan li.ml_s a::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  right: 15px;
  top: 37%;
}
#price_plan .point_teacher {
  background: #ECF9FF;
  padding: 5rem 5rem 2rem;
  position: relative;
  background-image: url(/price/img/point_teacher.webp);
  background-repeat: no-repeat;
  background-position: 15% 8%;
}
#price_plan .point_teacher_kids {
  background: #F4FBD7;
  background-image: url(/price/img/point_teacher_gre.webp);
  background-repeat: no-repeat;
  background-position: 15% 8%;
}
#price_plan .point_teacher_pic {
  position: absolute;
  top: 2rem;
  right: 3%;
}
#price_plan .point_teacher_tit {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  color: #009FE8;
  padding: 0 0 4rem;
}
#price_plan .point_teacher_tit2 {
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
}
#price_plan .point_teacher_kids .point_teacher_tit {
  color: #32AE47;
}
#price_plan .point_teacher_txt {
  width: 85%;
  margin: 0 auto 1em;
  display: block;
}
#price_plan .point_teacher_kids .btnS a::after {
  border-top: 1px solid #32AE47;
  border-right: 1px solid #32AE47;
}
#price_plan .point_teacher_kids .btnS:hover {
  background: #fff;
  border: 1px solid #32AE47;
}
#price_plan .point_teacher_kids .btnS a:hover {
  color: #32AE47;
}
#price_plan .point_teacher_kids .btnS {
  background: #fff;
}
#price_plan .point_teacher_kids .btnS {
  border: 1px solid #32AE47;
}
#price_plan .point_teacher_kids .btnS a {
  color: #32AE47;
}
#price_plan section#catch_area {
  margin: 0;
  background: #F7F8FB;
  padding: 30px 20px;
}
#price_plan #catch_area .catch {
  font-size: 2.4rem;
  font-weight: bold;
  text-align: center;
  display: flex;
  align-items: center; /* 垂直中心 */
  justify-content: center; /* 水平中心 */
}
#price_plan #catch_area .catch:before, #price_plan #catch_area .catch:after {
  border-top: 1px solid;
  content: "";
  width: 3em; /* 線の長さ */
}
#price_plan #catch_area .catch:before {
  margin-right: 1em; /* 文字の右隣 */
}
#price_plan #catch_area .catch:after {
  margin-left: 1em; /* 文字の左隣 */
}
.planlist_note {
  margin-bottom: 1rem;
  font-weight: bold;
}
.planlist_note2 {
  font-size: 1.3rem;
}
@media screen and (max-width: 768px) {
  #price_plan #inpage_link {
    margin: 0;
  }
  section#price_list {
    margin: 20px 0 0;
  }
  #price_plan #inpage_link ul {
    width: 95%;
    margin-bottom: 1rem;
  }
  #price_plan #inpage_link ul li a {
    font-size: 1.3rem;
    padding: 0.8rem 0.3rem 1.2rem;
  }
  #price_plan #inpage_link ul li {
    flex: 0 0 48%;
    margin: 0 1% 0.5rem;
  }
  #price_plan .point_teacher_pic {
    position: initial;
    text-align: center;
    margin-bottom: 2rem;
  }
  #price_plan ul.slide_3rows {
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    display: inherit;
    flex-flow: inherit;
    justify-content: inherit;
  }
  #price_plan ul.slide_3rows {
    margin: 0 0 1rem 0;
  }
  .price_plan_slide_2rows {
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    padding-top: 4rem;
    gap: 2.8rem;
  }
  #top_price .price_plan_tit {
    font-size: 1.8rem;
    padding: 0 0 0rem 2rem;
  }
  .planlist_note {
    font-size: 1.4rem;
    margin-bottom: 1rem;
  }
  .planlist_note2 {
    font-size: 1rem;
  }
}
@media screen and (max-width: 480px) {
  #price_plan .wrap {
    padding: 0 20px;
  }
  #price_plan #price_menu ul li {
    flex: 0 0 100%;
  }
  #price_plan .visual {
    background: url(/assets/img/main_sp.webp) no-repeat center;
    padding-top: 26.7441%;
    width: 100%;
    height: 0;
    background-size: cover;
    min-height: 0;
    margin-top: 70px;
  }
  #price_plan .visual .main {
    width: 100%;
    font-size: 2rem;
    padding: 0 20px;
    max-width: 1000px;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    font-weight: bold;
  }
  #price_plan #price_list div.tab_box_kids {
    margin-top: 1rem;
  }
  #price_plan .tooltip:after {
    left: 70%;
  }
  #price_plan .tooltip {
    left: -70%;
  }
  #price_plan .planlist_best {
    font-size: 1.4rem;
  }
  #price_plan .planlist {
    width: 135px;
    padding: 30% 0 0 0;
  }
  #price_plan .planlist_plan_plan2 {
    font-size: 1.4rem;
  }
  #price_plan ul.planlist_price li {
    height: 5rem;
  }
  #price_plan ul.planlist_price li:nth-child(1) p {
    font-size: 2.2rem;
  }
  #price_plan ul.planlist_price li:nth-child(1) p span {
    font-size: 1.4rem;
  }
  #price_plan ul.planlist_price li:nth-child(2) p {
    font-size: 1.4rem;
  }
  #price_plan .point_teacher {
    padding: 5rem 2rem 2rem;
    background-position: 15% 0%;
  }
  #price_plan .point_teacher_tit {
    padding: 0 0 2rem;
  }
  #price_plan .point_teacher_txt {
    width: inherit;
    font-size: 1.3rem;
  }
  #price_plan #price_list ul.tab_kids li {
    font-size: 1.2rem;
  }
  #price_plan .planlist_plan_plan {
    font-size: 1.0rem;
  }
  #price_plan ul.slide_3rows li.w3 .planlist_best {
    top: 43px;
  }
  #price_plan .planlist_plan {
    padding: 1.5rem 0.5rem 0;
  }
  #price_plan ul.slide_3rows li.w2, #price_plan ul.slide_3rows li.w2 .planlist {
    width: 155px;
  }
  #price_plan #catch_area .catch:before, #price_plan #catch_area .catch:after {
    border-top: 1px solid;
    content: "";
    width: 1em;
  }
  #price_plan #catch_area .catch {
    font-size: 2.2rem;
  }
}
#price_plan #top_priceinfo {
  margin: 2rem auto 4rem;
}
#price_plan #top_priceinfo .wrap02 {
  border: 3px solid #d2d3d5;
  padding: 2rem 3rem;
  margin-bottom: 2rem;
}
#price_plan #top_priceinfo h2 {
  font-weight: bold;
  font-size: 2rem;
  text-align: center;
  margin-bottom: 1rem;
}
#price_plan #top_priceinfo .bold {
  background: linear-gradient(transparent 70%, #d4eefa 30%);
  font-weight: bold;
  color: #009fe8;
}
#price_plan #top_priceinfo .more {
  width: 160px;
  position: relative;
  vertical-align: middle;
  text-align: center;
  font-size: 1.3rem;
  border: 1px solid #707070;
  border-radius: 30px;
  margin: 0 auto;
  padding: 0.4rem 1rem 0.4rem 0;
  background: #fff;
  line-height: 1;
}
#price_plan #top_priceinfo .more::after {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "";
  right: 10%;
  width: 6px;
  height: 6px;
  border-top: 1px solid #707070;
  border-right: 1px solid #707070;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
@media screen and (max-width: 769px) {
  #price_plan #top_priceinfo {
    width: 90%;
  }
  #price_plan #top_priceinfo h2 {
    font-size: 1.8rem;
  }
  #price_plan #top_priceinfo .wrap02 {
    padding: 2rem 2rem;
    margin-bottom: 0;
  }
}