@charset "utf-8";
/* ===============================
  入学の流れ
=============================== */
.l_flow {}
.l_flow_inner {
 padding-top: 45px;
}
.m_read_txt {
 font-size: 16px;
 text-align: center;
}
.m_read_txt + .m_read_txt {
 margin-top: 2em;
}
.m_read_txt strong {
 font-weight: 700;
 color: #8d1e16;
}
/*ステップ*/
.l_flow_step {
 width: 1436px;
 margin: 0 auto;
 background: url("../images/flow/img_faq_1.png") no-repeat left top, url("../images/flow/img_faq_2.png") no-repeat right bottom;
 background-size: 354px auto, 354px auto;
 padding: 70px 0 70px 0;
 margin-bottom: 30px;
}
.l_flow_step_inner {
 width: 860px;
 margin: 0 auto;
}
.m_step_detail {
 border: #e1e1e1 1px solid;
 border-radius: 20px;
 box-shadow: 0px 0px 3px 0px rgba(66, 66, 66, 0.2);
 background-color: rgb(255, 255, 255, 0.8);
 padding: 25px 32px;
 display: flex;
 justify-content: space-between;
 align-items: center;
 position: relative;
}
.m_step_detail + .m_step_detail {
 margin-top: 46px; /* 矢印が入るための余白（適宜調整してください） */
}
.m_step_detail + .m_step_detail::before {
 content: "";
 display: block;
 position: absolute;
 top: -31px; /* 配置場所の調整： (余白 - 画像高さ) / 2 */
 left: 50%;
 transform: translateX(-50%); /* 真ん中寄せ */
 /* 画像の指定 */
 width: 45px;
 height: 16px;
 background: url('../images/flow/step_cursor.png') no-repeat center center;
 background-size: contain;
}
.step_num {
 width: 100px;
}
.step_sbox {
 width: 670px;
 text-align: left;
}
.step_ttl {
 font-size: 20px;
 font-weight: 700;
 margin-bottom: 5px;
}
.step_txt {
 font-size: 16px;
 font-feature-settings: "palt";
}
/*よくあるご質問*/
.l_faq_wrap {
 background: #f4eaea;
 padding: 54px 0 150px 0;
 counter-reset: faq-counter;
}
.ttl_faq_cat {
 font-size: 20px;
 font-weight: 700;
 color: #5c3822;
 margin-bottom: 25px;
}
.faq_detail {
 width: 860px;
 margin: 0 auto;
}
.faq_qa {
 background: #fff;
 border: #d0c8c8 1px solid;
 border-radius: 20px;
 padding: 30px;
 margin-bottom: 30px;
 text-align: left;
 counter-increment: faq-counter; /* ブロックごとにカウントアップ */
}
.faq_qa dt {
 font-size: 16px;
 color: #5c3822;
 border-bottom: #d0c8c8 1px solid;
 padding-bottom: 20px;
 margin-bottom: 20px;
 display: flex; /* Qとテキストを横並びにする */
 align-items: baseline;
}
/* Qの連番設定 */
.faq_qa dt::before {
 content: "Q"counter(faq-counter); /* Q + 連番 */
 width: 40px;
 min-width: 40px; /* 幅を固定 */
 text-align: center;
 margin-right: 30px; /* テキストとの間隔 */
 display: inline-block;
 /* ベース参照 */
 font-size: 22px;
 font-weight: 700;
 color: #5c3822;
}
.faq_qa dd {
 font-size: 16px;
 display: flex; /* Aとテキストを横並びにする */
 align-items: baseline;
 margin-left: 0; /* ブラウザ標準のインデントをリセット */
}
/* Aの設定 */
.faq_qa dd::before {
 content: "A";
 width: 40px;
 min-width: 40px; /* 幅を固定 */
 text-align: center;
 margin-right: 30px; /* テキストとの間隔 */
 display: inline-block;
 /* ベース参照 */
 font-size: 22px;
 font-weight: 700;
 color: #8d1e16;
}
.faq_qa dd {
 font-size: 16px;
}
@media screen and (max-width: 767px) {
 .l_flow_inner {
  padding-top: 8vw;
  width: 86.6vw;
  margin: 0 auto;
 }
 .m_read_txt {
  font-size: 16px;
  text-align: center;
  margin-bottom: 8vw;
 }
 .m_read_txt + .m_read_txt {
  margin-top: inherit;
 }
 .m_read_txt strong {
  font-weight: 700;
  color: #8d1e16;
 }
 /*ステップ*/
 .l_flow_step {
  width: auto;
  margin: 0 auto;
  background: url("../images/flow/img_faq_1.png") no-repeat left top, url("../images/flow/img_faq_2.png") no-repeat right top;
  background-size: 39.3vw auto, 39.3vw auto;
  padding: 48vw 0 13vw 0;
  margin-bottom: 30px;
 }
 .l_flow_step_inner {
  width: auto;
  margin: 0 auto;
 }
 .m_step_detail {
  border: #e1e1e1 1px solid;
  border-radius: 20px;
  box-shadow: 0px 0px 3px 0px rgba(66, 66, 66, 0.2);
  background-color: rgb(255, 255, 255, 0.8);
  padding: 5.3vw 6.6vw;
  display: block;
  position: relative;
 }
 .m_step_detail + .m_step_detail {
  margin-top: 13vw; /* 矢印が入るための余白（適宜調整してください） */
 }
 .m_step_detail + .m_step_detail::before {
  content: "";
  display: block;
  position: absolute;
  top: -8vw; /* 配置場所の調整： (余白 - 画像高さ) / 2 */
  left: 50%;
  transform: translateX(-50%); /* 真ん中寄せ */
  /* 画像の指定 */
  width: 45px;
  height: 16px;
  background: url('../images/flow/step_cursor.png') no-repeat center center;
  background-size: contain;
 }
 .step_num {
  width: 21.3vw;
  margin: 0 auto 5.3vw auto;
 }
 .step_sbox {
  width: auto;
  text-align: left;
 }
 .step_ttl {
  font-size: 4.53vw;
  margin-bottom: 5px;
 }
 .step_txt {
  font-size: 3.46vw;
  font-feature-settings: none;
 }
 /*よくあるご質問*/
 .l_faq_wrap {
  padding: 9vw 0 20vw 0;
  counter-reset: faq-counter;
 }
 .ttl_faq_cat {
  font-size: 4.53vw;
  font-weight: 700;
  color: #5c3822;
  margin-bottom: 7.3vw;
 }
 .faq_detail {
  width: auto;
  margin: 0 6.6vw 13vw 6.6vw;
 }
 .faq_qa {
  background: #fff;
  border: #d0c8c8 1px solid;
  border-radius: 20px;
  padding: 6vw 4vw 7vw 4vw;
  margin-bottom: 6.6vw;
  text-align: left;
  counter-increment: faq-counter; /* ブロックごとにカウントアップ */
 }
 .faq_qa dt {
  font-size: 3.46vw;
  color: #5c3822;
  border-bottom: #d0c8c8 1px solid;
  padding-bottom: 4.6vw;
  margin-bottom: 4.6vw;
  display: flex; /* Qとテキストを横並びにする */
  align-items: baseline;
 }
 /* Qの連番設定 */
 .faq_qa dt::before {
  content: "Q"counter(faq-counter); /* Q + 連番 */
  width: 7.6vw;
  min-width: 7.6vw; /* 幅を固定 */
  text-align: center;
  margin-right: 2.6vw; /* テキストとの間隔 */
  display: inline-block;
  /* ベース参照 */
  font-size: 4.5vw;
  font-weight: 700;
  color: #5c3822;
 }
 .faq_qa dd {
  font-size: 3.46vw;
  display: flex; /* Aとテキストを横並びにする */
  align-items: baseline;
  margin-left: 0; /* ブラウザ標準のインデントをリセット */
 }
 /* Aの設定 */
 .faq_qa dd::before {
  content: "A";
  width: 7.6vw;
  min-width: 7.6vw; /* 幅を固定 */
  text-align: center;
  margin-right: 2.6vw; /* テキストとの間隔 */
  display: inline-block;
  /* ベース参照 */
  font-size: 4.5vw;
  font-weight: 700;
  color: #8d1e16;
 }
 .faq_qa dd {
  font-size: 16px;
 }
}
/* ===============================
  受講生の声
=============================== */
.l_voice {}
.l_voice_read {
 width: 100%;
 height: 440px;
 overflow: hidden;
 position: relative;
 /* 背景画像の設定 */
 background-image: url("../images/voice/bg_voice_pc.jpg");
 background-repeat: no-repeat;
 /* 画像本来のサイズで固定（広がらないようにする） */
 background-size: 990px auto;
 /* 【重要】中央(50%)から、1920pxの半分(960px)マイナスした地点を起点にする */
 /* これでブラウザを広げても「1920pxデザインの左端」に画像が固定されます */
 background-position: calc(50% - 480px) top;
 background-color: #fff; /* 画像の外側の色 */
}
.l_voice_read_inner {
 /* メインコンテンツ幅（1000px）を中央配置 */
 max-width: 1000px;
 margin: 0 auto;
 height: 100%;
 position: relative;
 display: flex;
 justify-content: flex-end; /* テキストを右側の1000px内に配置 */
}
.l_voice_read_box {
 width: 470px;
 padding-top: 50px;
 box-sizing: border-box;
 text-align: left;
}
.voice_ttl {
 font-size: 28px;
 color: #8d1e16;
 margin-bottom: 20px;
 font-weight: 700;
 line-height: 1.6;
}
.voice_txt {
 width: 440px;
 font-size: 16px;
}
.l_voice_inner {
 width: 1000px;
 margin: 0 auto;
}
.m_case_detail {
 padding: 30px 0 0 0;
 margin-bottom: 50px;
 border: #d9d9d9 1px solid;
 border-radius: 20px;
 text-align: left;
 position: relative;
}
.case_num {
 width: 180px;
 margin-bottom: 30px;
}
.case_sbox {
 padding: 0 30px 30px 30px;
}
.case_ttl {
 width: 640px;
 font-size: 24px;
 font-weight: 700;
 color: #8d1e16;
 line-height: 1.5;
 margin-bottom: 20px;
 padding-bottom: 20px;
 border-bottom: #8d1e16 1px solid;
}
.case_name {
 font-size: 17px;
 margin-bottom: 50px;
 line-height: 1;
 font-weight: 700;
}
.case_name strong {
 font-size: 20px;
}
.case_sttl {
 font-size: 18px;
 background: #f4eaea;
 padding: 10px 0 10px 20px;
 line-height: 1.2;
 margin-bottom: 20px;
 font-weight: 700;
}
.case_img {
 width: 255px;
 position: absolute;
 top: 30px;
 right: 30px;
}
.case_list {
 margin-bottom: 30px;
}
.case_list li, .case_txt {
 font-size: 16px;
 line-height: 2.2;
 padding: 0 10px;
}
.case_list li {
 list-style: disc inside;
 padding-left: 2em;
 text-indent: -1em;
}
.case_list strong, .case_txt strong {
 color: #8d1e16;
}
.at_case {
 width: 1000px;
 margin: -30px auto 110px auto;
 font-size: 14px;
 text-align: left;
}
@media screen and (max-width: 767px) {
 .l_voice_read {
  width: 100%;
  min-height: 78vw;
  height: auto;
  overflow: hidden;
  position: relative;
  /* 背景画像の設定 */
  background-image: url("../images/voice/bg_voice_sp.jpg");
  background-repeat: no-repeat;
  /* 画像本来のサイズで固定（広がらないようにする） */
  background-size: 100% auto;
  /* 【重要】中央(50%)から、1920pxの半分(960px)マイナスした地点を起点にする */
  /* これでブラウザを広げても「1920pxデザインの左端」に画像が固定されます */
  background-position: center top;
  background-color: #fff; /* 画像の外側の色 */
  margin-bottom: 12vw;
 }
 .l_voice_read_inner {
  /* メインコンテンツ幅（1000px）を中央配置 */
  max-width: auto;
  margin: 0 0 0 6.6vw;
  height: 100%;
  position: relative;
  display: block;
 }
 .l_voice_read_box {
  width: auto;
  padding-top: 10vw;
  box-sizing: border-box;
  text-align: left;
 }
 .voice_ttl {
  font-size: 5.3vw;
  color: #8d1e16;
  margin-bottom: 18.7vw;
  font-weight: 700;
  line-height: 1.6;
 }
 .voice_txt {
  width: 80vw;
  font-size: 3.5vw;
 }
 .l_voice_inner {
  width: auto;
  margin: 0 6.6vw;
 }
 .m_case_detail {
  padding: 6.6vw 0 0 0;
  margin-bottom: 6.6vw;
  border: #d9d9d9 1px solid;
  border-radius: 20px;
  text-align: left;
  position: inherit;
 }
 .case_num {
  width: 33vw;
  margin-bottom: 6vw;
 }
 .case_sbox {
  padding: 0 4vw 4vw 4vw;
 }
 .case_ttl {
  width: auto;
  font-size: 4.26vw;
  font-weight: 700;
  color: #8d1e16;
  line-height: 1.5;
  margin-bottom: 3.5vw;
  padding-bottom: 3.5vw;
  border-bottom: #8d1e16 1px solid;
 }
 .case_name {
  font-size: 3.46vw;
  margin-bottom: 6.6vw;
  line-height: 1;
  font-weight: 700;
 }
 .case_name strong {
  font-size: 4.8vw;
 }
 .case_sttl {
  font-size: 3.46vw;
  background: #f4eaea;
  padding: 2vw 0 2vw 4vw;
  line-height: 1.2;
  margin-bottom: 3.46vw;
  font-weight: 700;
 }
 .case_img {
  width: 71.3vw;
  position: inherit;
  top: auto;
  right: auto;
  margin: 0 auto 8vw auto;
 }
 .case_list {
  margin-bottom: 8vw;
 }
 .case_list li, .case_txt {
  font-size: 3.46vw;
  line-height: 2;
  padding: 0 0 0 1vw;
  font-feature-settings: "palt";
  letter-spacing: 0.7px;
 }
 .case_list li {
  list-style: disc inside;
  padding-left: 1.5em;
  text-indent: -1em;
 }
 .case_list strong, .case_txt strong {
  color: #8d1e16;
 }
 .at_case {
  width: 1000px;
  margin: -4vw auto 13vw auto;
  font-size: 2.7vw;
  text-align: left;
 }
}
/* ===============================
  講座内容・料金
=============================== */
.l_plan {}
.l_plan_read {
 margin-bottom: 70px;
 width: 100%;
 height: 712px;
 overflow: hidden;
 position: relative;
 /* 背景画像の設定 */
 background-image: url("../images/plan/bg_plan_pc.jpg");
 background-repeat: no-repeat;
 /* 画像本来のサイズで固定（広がらないようにする） */
 background-size: 990px auto;
 /* 【重要】中央(50%)から、1920pxの半分(960px)マイナスした地点を起点にする */
 /* これでブラウザを広げても「1920pxデザインの左端」に画像が固定されます */
 background-position: calc(50% - 480px) top;
 background-color: #fff; /* 画像の外側の色 */
}
.l_plan_read_inner {
 /* メインコンテンツ幅（1000px）を中央配置 */
 max-width: 1000px;
 margin: 0 auto;
 height: 100%;
 position: relative;
 display: flex;
 justify-content: flex-end; /* テキストを右側の1000px内に配置 */
}
.l_plan_read_box {
 width: 470px;
 padding-top: 50px;
 box-sizing: border-box;
 text-align: left;
}
.plan_ttl {
 font-size: 28px;
 color: #8d1e16;
 margin-bottom: 20px;
 font-weight: 700;
 line-height: 1.6;
}
.plan_txt {
 width: 440px;
 font-size: 16px;
}
.plan_txt strong {
 color: #8d1e16;
 font-weight: 700;
}
.l_plan_point {
 position: absolute;
 left: 50%;
 transform: translateX(-50%);
 top: 375px;
 text-align: left;
 width: 1000px;
 display: flex;
 justify-content: space-between;
 gap: 22px 20px;
 flex-wrap: wrap;
}
.m_plan_point_detail {
 width: 488px;
 height: 98px;
 background: #f4eaea;
 border-radius: 20px;
 padding: 0 0 0 20px;
 display: flex;
 justify-content: space-between;
 align-items: center;
}
.m_plan_point_detail p {
 position: relative;
 padding-left: 85px;
 font-size: 17px;
 font-weight: 500;
 line-height: 1.6;
}
.m_plan_point_detail strong {
 color: #8d1e16;
 font-weight: 700;
}
.m_plan_point_detail:first-child {
 padding: 0;
 justify-content: center;
 background: #bb676b;
}
.m_plan_point_detail:first-child p {
 padding: 0;
 background: #bb676b;
 font-size: 22px;
 color: #fff;
	margin-top: -0.6vw;
}
.m_plan_point_detail:first-child strong {
 padding: 0;
 justify-content: center;
 background: #bb676b;
 font-size: 30px;
 color: #fff;
}
.plan_1 p::before {
 content: "";
 display: block;
 position: absolute;
 top: 50%;
 left: 0px;
 transform: translateY(-50%);
 width: 72px;
 height: 60px;
 background: url('../images/plan/plan_ic_1.png') no-repeat center center;
 background-size: contain;
}
.plan_2 p::before {
 content: "";
 display: block;
 position: absolute;
 top: 50%;
 left: 0px;
 transform: translateY(-50%);
 width: 72px;
 height: 60px;
 background: url('../images/plan/plan_ic_2.png') no-repeat center center;
 background-size: contain;
}
.plan_3 p::before {
 content: "";
 display: block;
 position: absolute;
 top: 50%;
 left: 0px;
 transform: translateY(-50%);
 width: 72px;
 height: 60px;
 background: url('../images/plan/plan_ic_3.png') no-repeat center center;
 background-size: contain;
}
.plan_4 p::before {
 content: "";
 display: block;
 position: absolute;
 top: 50%;
 left: 0px;
 transform: translateY(-50%);
 width: 72px;
 height: 60px;
 background: url('../images/plan/plan_ic_4.png') no-repeat center center;
 background-size: contain;
}
.plan_5 p::before {
 content: "";
 display: block;
 position: absolute;
 top: 50%;
 left: 0px;
 transform: translateY(-50%);
 width: 72px;
 height: 60px;
 background: url('../images/plan/plan_ic_5.png') no-repeat center center;
 background-size: contain;
}
/*プランの違い*/
.l_plan_comparison {
 padding: 35px 0 60px 0;
 background: linear-gradient(to right, #d2a4a6 0%, #bc696c 100%);
}
.plan_comparison_ttl {
 font-size: 24px;
 color: #fff;
 font-weight: 700;
 margin-bottom: 15px;
}
.plan_comparison_ttl strong {
 font-size: 40px;
 color: #fff;
 font-weight: 700;
}
.l_plan_detail {
 padding: 60px 0 5px 0;
 background: linear-gradient(to bottom, #ffffff, #f4eaea);
}
.m_plan_detail {
 width: 1000px;
 margin: 0 auto;
 text-align: left;
 border: #d9d9d9 1px solid;
 background: #fff;
 border-radius: 20px;
 margin-bottom: 50px;
 padding: 0 35px 40px 35px;
}
.m_plan_name_box {
 background: url("../images/plan/bar_obi.png") no-repeat left top;
 background-size: 25px auto;
 height: 75px;
 padding: 45px 0 0 50px;
 display: flex;
 justify-content: flex-start;
 line-height: 1;
 margin-bottom: 40px;
}
.m_plan_name {
 font-size: 24px;
 color: #8d1e16;
 font-weight: 700;
 padding-right: 30px;
 margin-right: 30px;
 border-right: #0f0f0f 1px solid;
 line-height: 1;
}
.m_plan_read {
 font-size: 22px;
 font-weight: 500;
}
.m_plan_ttl {
 font-size: 18px;
 background: #f4eaea;
 padding: 10px 0 10px 20px;
 line-height: 1.2;
 margin-bottom: 20px;
 font-weight: 700;
}
.m_plan_list {
 margin-bottom: 30px;
}
.m_plan_list li {
 list-style: disc inside;
 padding-left: 2em;
 text-indent: -1em;
 font-size: 16px;
}
.m_plan_list2 {
 padding-left: 1em;
}
.m_plan_list2 li {
 font-size: 16px;
 position: relative;
 padding: 5px 0 10px 44px;
}
.m_plan_list2 li::after {
 content: "";
 position: absolute;
 left: 0px;
 top: 50%;
 transform: translateY(-50%);
 width: 28px;
 height: 26px;
 background: url("../images/common/ic_chk.png") no-repeat center / contain;
}
.l_plan_price {
 padding: 60px 0 120px 0;
}
.l_plan_price .ttl_outer {
 margin-bottom: 60px;
}
.l_price_pay {
 padding-top: 60px;
}
.price_pay_ttl {
 font-size: 18px;
 color: #8d1e16;
 font-weight: 700;
 margin-bottom: 5px;
}
.price_pay_txt {
 font-size: 16px;
}
/*プラン　問い合わせブロック*/
.plan .l_contact {
 padding: 60px 0 80px 0;
 background: linear-gradient(to right, #d2a4a6 0%, #bc696c 100%);
}
.plan .l_contact_inner {
 display: block;
}
.m_contact_tbox2 {
 width: 740px;
 text-align: left;
 margin: 0 auto;
}
.plan_contact_ttl {
 display: flex;
 align-items: center; /* 垂直中央揃え */
 justify-content: center; /* 全体を中央寄せ */
 font-size: 21px;
 color: #fff; /* テキストも白と仮定 */
 text-align: center;
 font-feature-settings: "palt";
 font-weight: 700;
 letter-spacing: 1px;
 margin-bottom: 30px;
}
/* 左右の線の共通設定 */
.plan_contact_ttl::before, .plan_contact_ttl::after {
 content: "";
 height: 1px; /* 線の太さ */
 width: 274px; /* 線の幅 */
 background-color: #fff; /* 線の色 */
}
/* テキストの左側の余白 */
.plan_contact_ttl::before {
 margin-right: 26px;
}
/* テキストの右側の余白 */
.plan_contact_ttl::after {
 margin-left: 26px;
}
.plan_contact_txt {
 color: #fff;
 font-size: 21px;
 font-weight: 700;
 margin-bottom: 30px;
 text-align: center;
}
.plan_contact_list {
 width: 805px;
 margin: 0 auto 30px auto;
 display: flex;
 justify-content: space-between;
}
.plan_contact_list li {
 width: 180px;
 height: 180px;
 background: #f4eaea;
 border-radius: 50%;
 display: flex;
 justify-content: center;
 align-items: center;
 font-size: 16px;
 font-weight: 700;
 color: #8d1e16;
 line-height: 1.6;
 letter-spacing: 1px;
}
@media screen and (max-width: 767px) {
 .l_plan_read {
  margin-bottom: 8vw;
  width: 100%;
  height: auto;
  overflow: hidden;
  position: inherit;
  background-image: url("../images/plan/bg_plan_sp.jpg");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center top;
  background-color: #fff;
 }
 .l_plan_read_inner {
  max-width: auto;
  margin: 0 auto;
  height: 100%;
  position: inherit;
  display: block;
  padding-left: 8vw;
 }
 .l_plan_read_box {
  width: auto;
  padding-top: 10vw;
  box-sizing: border-box;
  text-align: left;
 }
 .plan_ttl {
  font-size: 5.3vw;
  color: #8d1e16;
  margin-bottom: 4vw;
 }
 .plan_txt {
  width: auto;
  font-size: 3.466vw;
  margin-bottom: 12vw;
 }
 .l_plan_point {
  position: inherit;
  left: auto;
  top: auto;
  text-align: left;
  width: auto;
  display: block;
  transform: none;
  padding: 0 5.3vw;
 }
 .m_plan_point_detail {
  width: auto;
  height: 17.3vw;
  padding: 0 0 0 4vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4vw;
 }
 .m_plan_point_detail p {
  position: relative;
  padding-left: 12vw;
  font-size: 3.46vw;
  font-weight: 500;
  line-height: 1.6;
 }
 .m_plan_point_detail:first-child p {
  font-size: 4vw;
  line-height: 1;
 }
 .m_plan_point_detail:first-child strong {
  font-size: 6vw;
 }
 .plan_1 p::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
  width: 10vw;
  height: 10vw;
  background: url('../images/plan/plan_ic_1.png') no-repeat center center;
  background-size: contain;
 }
 .plan_2 p::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
  width: 10vw;
  height: 10vw;
  background: url('../images/plan/plan_ic_2.png') no-repeat center center;
  background-size: contain;
 }
 .plan_3 p::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
  width: 10vw;
  height: 10vw;
  background: url('../images/plan/plan_ic_3.png') no-repeat center center;
  background-size: contain;
 }
 .plan_4 p::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
  width: 10vw;
  height: 10vw;
  background: url('../images/plan/plan_ic_4.png') no-repeat center center;
  background-size: contain;
 }
 .plan_5 p::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
  width: 10vw;
  height: 10vw;
  background: url('../images/plan/plan_ic_5.png') no-repeat center center;
  background-size: contain;
 }
 /*プランの違い*/
 .l_plan_comparison {
  padding: 6vw 0 8vw 0;
 }
 .plan_comparison_ttl {
  font-size: 3.6vw;
  margin-bottom: 3.6vw;
  font-feature-settings: "palt";
		line-height: 1.2;
 }
 .plan_comparison_ttl strong {
  font-size: 6.6vw;
 }
 .l_plan_detail {
  padding: 6vw 5.3vw 1vw 5.3vw;
  background: #fff;
 }
 .m_plan_detail {
  width: auto;
  margin: 0 auto;
  text-align: left;
  border: #d9d9d9 1px solid;
  background: #fff;
  border-radius: 20px;
  margin-bottom: 9vw;
  padding: 0 3.6vw 4vw 3.6vw;
 }
 .m_plan_name_box {
  background: url("../images/plan/bar_obi.png") no-repeat left top;
  background-size: 4.2vw auto;
  height: auto;
  padding: 8vw 0 0 0;
  display: block;
  line-height: 1;
  margin-bottom: 10vw;
 }
 .m_plan_name {
  font-size: 4.8vw;
  padding-right: 0;
  margin-right: 0;
  border-right: none;
  line-height: 1;
  margin-bottom: 4.6vw;
  padding: 0 0 4.6vw 8vw;
  border-bottom: #8d1e16 1px solid;
 }
 .m_plan_read {
  font-size: 4vw;
  font-weight: 500;
  line-height: 1.6;
 }
 .m_plan_ttl {
  font-size: 3.46vw;
  background: #f4eaea;
  padding: 2vw 0 2vw 4vw;
  line-height: 1.2;
  margin-bottom: 3.46vw;
  font-weight: 700;
 }
 .m_plan_list {
  margin-bottom: 30px;
 }
 .m_plan_list li {
  list-style: disc inside;
  padding: 0 0.5em 1vw 1.5em;
  text-indent: -1em;
  font-size: 3.46vw;
  font-feature-settings: "palt";
 }
 .m_plan_list2 {
  padding-left: 1em;
 }
 .m_plan_list2 li {
  font-size: 3.46vw;
  position: relative;
  padding: 0.6vw 0.5em 1vw 7.6vw;
  font-feature-settings: "palt";
 }
 .m_plan_list2 li::after {
  content: "";
  position: absolute;
  left: 0px;
  top: 0.9vw;
  transform: none;
  width: 5.3vw;
  height: 4.9vw;
  background: url("../images/common/ic_chk.png") no-repeat center / contain;
 }
 .l_plan_price {
  padding: 0 0 24vw 0;
 }
 .l_plan_price .ttl_outer {
  margin-bottom: 60px;
 }
 .l_price_pay {
  padding-top: 60px;
 }
 .price_pay_ttl {
  font-size: 3.2vw;
  color: #8d1e16;
  font-weight: 700;
  margin-bottom: 5px;
 }
 .price_pay_txt {
  font-size: 3.2vw;
 }
 /*プラン　問い合わせブロック*/
 .plan .l_contact {
  padding: 7.4vw 0 10vw 0;
 }
 .plan .l_contact_inner {
  display: block;
 }
 .m_contact_tbox2 {
  width: 88vw;
  text-align: left;
  margin: 0 auto;
 }
 .plan_contact_ttl {
  display: flex;
  align-items: center; /* 垂直中央揃え */
  justify-content: center; /* 全体を中央寄せ */
  font-size: 4.2vw;
  color: #fff; /* テキストも白と仮定 */
  text-align: center;
  font-feature-settings: "palt";
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 5vw;
 }
 /* 左右の線の共通設定 */
 .plan_contact_ttl::before, .plan_contact_ttl::after {
  content: "";
  height: 1px; /* 線の太さ */
  width: 5.6vw; /* 線の幅 */
  background-color: #fff; /* 線の色 */
 }
 /* テキストの左側の余白 */
 .plan_contact_ttl::before {
  margin-right: 3vw;
 }
 /* テキストの右側の余白 */
 .plan_contact_ttl::after {
  margin-left: 3vw;
 }
 .plan_contact_txt {
  color: #fff;
  font-size: 4.2vw;
  font-weight: 700;
  margin-bottom: 5vw;
  text-align: center;
 }
 .plan_contact_list {
  width: 80vw;
  margin: 0 auto 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
 }
 .plan_contact_list li {
  width: 37.3vw;
  height: 37.3vw;
  background: #f4eaea;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3.2vw;
  font-weight: 700;
  color: #8d1e16;
  line-height: 1.6;
  letter-spacing: 1px;
  margin-bottom: 5.3vw;
 }
}
/*各テーブル設定*/
/* 共通スタイル */
.plan-table-wrapper {
 width: 1000px;
 margin: 0 auto;
 overflow-x: auto;
 background: #fff;
 border-radius: 20px 20px 0 0;
}
.plan-grid-v2 {
 display: grid;
 border-top: 1px solid #dcdcdc;
 border-left: 1px solid #dcdcdc;
}
.p-cell {
 padding: 15px 10px;
 border-right: 1px solid #dcdcdc;
 border-bottom: 1px solid #dcdcdc;
 display: flex;
 align-items: center;
 justify-content: center;
 font-size: 14px;
}
.p-label {
 background-color: #8B1A14;
 color: #fff;
 font-weight: bold;
}
.p-title {
 background-color: #FDF2F2;
 color: #8B1A14;
 font-weight: bold;
}
.p-title a {
 position: relative;
 padding-left: 30px;
 color: #8d1e16;
}
.p-title a::before {
 content: "";
 display: block;
 position: absolute;
 top: 50%;
 left: 0px;
 transform: translateY(-50%);
 width: 24px;
 height: 24px;
 background: url('../images/plan/ic_curosr_name.png') no-repeat center center;
 background-size: contain;
}
.stars {
 color: #8B1A14;
 font-size: 1.1rem;
 letter-spacing: 1px;
}
/* --- PC版：pc.png のレイアウト再現 --- */
@media screen and (min-width: 769px) {
 .plan-grid-v2 {
  /* プラン名、スピード、両立、自由度、最適 */
  grid-template-columns: 210px 140px 140px 190px 1fr;
 }
 /* ヘッダー行の固定 */
 .label-name {
  grid-column: 1;
  grid-row: 1;
  border-radius: 20px 0 0 0;
 }
 .label-speed {
  grid-column: 2;
  grid-row: 1;
 }
 .label-life {
  grid-column: 3;
  grid-row: 1;
 }
 .label-flex {
  grid-column: 4;
  grid-row: 1;
 }
 .label-target {
  grid-column: 5;
  grid-row: 1;
  border-radius: 0 20px 0 0;
 }
 /* 行ごとの配置（プラン単位） */
 [class^="plan-1-"] {
  grid-row: 2;
 }
 [class^="plan-2-"] {
  grid-row: 3;
 }
 [class^="plan-3-"] {
  grid-row: 4;
 }
 [class^="plan-4-"] {
  grid-row: 5;
 }
 /* 列ごとの配置（項目単位） */
 [class$="-name"] {
  grid-column: 1;
  justify-content: flex-start;
  padding-left: 15px;
 }
 [class$="-speed"] {
  grid-column: 2;
 }
 [class$="-life"] {
  grid-column: 3;
 }
 [class$="-flex"] {
  grid-column: 4;
 }
 [class$="-target"] {
  grid-column: 5;
  justify-content: flex-start;
  text-align: left;
 }
}
/* --- スマホ版：sp.png のレイアウト再現 --- */
@media screen and (max-width: 768px) {
 .plan-grid-v2 {
  /* 項目列 + 4つのプラン列 */
  grid-template-columns: 110px repeat(4, 160px);
 }
 /* 項目ラベル列を左端に固定 */
 .label-name {
  grid-row: 1;
  grid-column: 1;
 }
 .label-speed {
  grid-row: 2;
  grid-column: 1;
 }
 .label-life {
  grid-row: 3;
  grid-column: 1;
 }
 .label-flex {
  grid-row: 4;
  grid-column: 1;
 }
 .label-target {
  grid-row: 5;
  grid-column: 1;
 }
 /* 列ごとの配置（プラン単位） */
 [class^="plan-1-"] {
  grid-column: 2;
 }
 [class^="plan-2-"] {
  grid-column: 3;
 }
 [class^="plan-3-"] {
  grid-column: 4;
 }
 [class^="plan-4-"] {
  grid-column: 5;
 }
 /* 行ごとの配置（項目単位） */
 [class$="-name"] {
  grid-row: 1;
  flex-direction: column;
  font-size: 12px;
 }
 [class$="-speed"] {
  grid-row: 2;
 }
 [class$="-life"] {
  grid-row: 3;
 }
 [class$="-flex"] {
  grid-row: 4;
 }
 [class$="-target"] {
  grid-row: 5;
 }
}
/* 共通スタイル */
.price-table-wrapper {
 width: 1000px;
 margin: 0 auto;
 overflow-x: auto;
 border-radius: 20px 20px 0 0;
}
.price-grid {
 display: grid;
 border-top: 1px solid #dcdcdc;
 border-left: 1px solid #dcdcdc;
}
.p-cell {
 padding: 20px 20px;
 border-right: 1px solid #dcdcdc;
 border-bottom: 1px solid #dcdcdc;
 display: flex;
 align-items: center;
 justify-content: flex-start;
 font-size: 16px;
}
.p-label {
 background-color: #8B1A14;
 color: #fff;
 font-weight: bold;
}
.p-title {
 background-color: #FDF2F2;
 color: #8B1A14;
 font-weight: bold;
 justify-content: flex-start;
}
.p-price {
 color: #8B1A14;
 font-weight: bold;
}
/* --- PC版：pc2.png のレイアウト再現 --- */
@media screen and (min-width: 769px) {
 .price-grid {
  grid-template-columns: 220px 1fr 200px 196px; /* プラン名、特徴、税抜、税込 */
 }
 /* ヘッダー行 */
 .label-name {
  grid-column: 1;
  grid-row: 1;
 }
 .label-desc {
  grid-column: 2;
  grid-row: 1;
 }
 .label-price-ex {
  grid-column: 3;
  grid-row: 1;
 }
 .label-price-in {
  grid-column: 4;
  grid-row: 1;
 }
 /* データの行配置 (行ごとにプランをまとめる) */
 .plan-1-name, .plan-1-desc, .plan-1-ex, .plan-1-in {
  grid-row: 2;
 }
 .plan-2-name, .plan-2-desc, .plan-2-ex, .plan-2-in {
  grid-row: 3;
 }
 .plan-3-name, .plan-3-desc, .plan-3-ex, .plan-3-in {
  grid-row: 4;
 }
 .plan-4-name, .plan-4-desc, .plan-4-ex, .plan-4-in {
  grid-row: 5;
 }
 /* データの列配置 (項目ごとに縦を揃える) */
 [class$="-name"] {
  grid-column: 1;
 }
 [class$="-desc"] {
  grid-column: 2;
  text-align: left;
  justify-content: flex-start;
 }
 [class$="-ex"] {
  grid-column: 3;
 }
 [class$="-in"] {
  grid-column: 4;
 }
}
/* --- スマホ版：スマホ2.png のレイアウト再現 --- */
@media screen and (max-width: 768px) {
 .plan-table-wrapper {
  width: 88vw;
 }
 .price-table-wrapper {
  width: 88vw;
 }
 .price-grid {
  grid-template-columns: 100px repeat(4, 180px); /* 項目列 + 4プラン列 */
 }
 /* 項目ラベル列を左に固定 */
 .label-name {
  grid-row: 1;
  grid-column: 1;
 }
 .label-desc {
  grid-row: 2;
  grid-column: 1;
 }
 .label-price-ex {
  grid-row: 3;
  grid-column: 1;
 }
 .label-price-in {
  grid-row: 4;
  grid-column: 1;
 }
 /* プランごとの列配置 (列ごとにプランをまとめる) */
 .plan-1-name, .plan-1-desc, .plan-1-ex, .plan-1-in {
  grid-column: 2;
 }
 .plan-2-name, .plan-2-desc, .plan-2-ex, .plan-2-in {
  grid-column: 3;
 }
 .plan-3-name, .plan-3-desc, .plan-3-ex, .plan-3-in {
  grid-column: 4;
 }
 .plan-4-name, .plan-4-desc, .plan-4-ex, .plan-4-in {
  grid-column: 5;
 }
 /* 項目の行配置 (行ごとに項目を揃える) */
 [class$="-name"] {
  grid-row: 1;
  padding-top: 3vw !important;
  flex-direction: column;
 }
 [class$="-desc"] {
  grid-row: 2;
 }
 [class$="-ex"] {
  grid-row: 3;
 }
 [class$="-in"] {
  grid-row: 4;
 }
 /* スマホ版のプラン見出し調整（矢印を上に配置する等） */
 .p-title a {
  position: relative;
  padding-left: 0;
  padding-top: 4.5vw;
  text-align: center;
  display: block;
 }
 .p-title a::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: none;
  transform: translateX(-50%);
  width: 3.7vw;
  height: 3.7vw;
  background: url('../images/plan/ic_curosr_name.png') no-repeat center center;
  background-size: contain;
 }
 .p-cell {
  padding: 2vw 1.5vw;
  font-size: 2.3vw;
  text-align: left;
  line-height: 1.5;
  align-items: flex-start;
  justify-content: flex-start;
 }
 .p-label {
  font-weight: 400;
 }
 .p-cell.p-label.label-name {
  padding-top: 6vw !important;
  align-items: flex-start;
  border-radius: 20px 0 0 0;
 }
 .p-cell.p-label.label-target, .p-cell.label-desc {
  align-items: center !important;
 }
 .p-cell.plan-1-name, .p-cell.plan-2-name, .p-cell.plan-3-name, .p-cell.plan-4-name {
  align-items: center;
 }
 .p-title {
  justify-content: flex-start;
 }
 .p-cell.label-name {
  justify-content: flex-start !important;
  align-content: flex-start !important;
 }
 .stars {
  color: #8B1A14;
  font-size: 2.3vw;
  letter-spacing: 1px;
 }
 .price-grid {
  grid-template-columns: 18vw 16.5vw 16.5vw 17vw 17vw; /* プラン名、特徴、税抜、税込 */
 }
 .plan-grid-v2 {
  /* 項目列 + 4つのプラン列 */
  grid-template-columns: 20vw repeat(4, 17vw);
 }
}
/* ===============================
  プライバシーポリシー
=============================== */
.l_privacypolicy {
 padding: 60px 0;
}
.l_privacypolicy_inner {
 width: 940px;
 margin: 0 auto;
 text-align: left;
}
.privacy_ttl {
 font-size: 17px;
 background: #efefef;
 padding: 12px 20px;
 line-height: 1.2;
 margin-bottom: 20px;
 font-weight: 500;
}
.privacy_txt {
 font-size: 16px;
 padding: 0 0 0 20px;
 line-height: 2.2;
 margin-bottom: 50px;
}
@media screen and (max-width: 767px) {
 .l_privacypolicy {
  padding: 9.3vw 6.6vw;
 }
 .l_privacypolicy_inner {
  width: auto;
  margin: 0 auto;
  text-align: left;
 }
 .privacy_ttl {
  font-size: 3.46vw;
  background: #efefef;
  padding: 3vw 3vw;
  line-height: 1.2;
  margin-bottom: 4.6vw;
  font-weight: 500;
 }
 .privacy_txt {
  font-size: 3.46vw;
  padding: 0 0 0 3vw;
  line-height: 2.2;
  margin-bottom: 10vw;
 }
}
/* ===============================
  アクセス
=============================== */
.l_access {}
.l_access_inner {
 padding-top: 45px;
}
.l_access_detail {
 padding: 60px 0 70px 0;
}
.m_access_detail {
 width: 1000px;
 margin: 0 auto;
 text-align: left;
 border: #d9d9d9 1px solid;
 background: #fff;
 border-radius: 20px;
 margin-bottom: 50px;
 padding: 0 30px 50px 30px;
 box-sizing: border-box;
}
.m_access_name_box {
 background: url("../images/plan/bar_obi.png") no-repeat left top;
 background-size: 25px auto;
 height: 95px;
 padding: 45px 0 20px 50px;
 display: flex;
 justify-content: flex-start;
 align-items: center;
 line-height: 1;
 margin-bottom: 35px;
 border-bottom: #8d1e16 1px solid;
}
.m_access_name {
 font-size: 24px;
 color: #8d1e16;
 font-weight: 700;
 padding-right: 30px;
 line-height: 1;
}
.m_access_read {
 font-size: 20px;
 font-weight: 400;
 color: #8d1e16;
}
.m_access_shop_box {
 display: flex;
 justify-content: space-between;
 margin-bottom: 50px;
}
.m_shop_img {
 width: 430px;
}
.m_shop_detail {
 width: 470px;
 letter-spacing: 1px;
}
.m_shop_tel {
 font-size: 28px;
 font-weight: 500;
 color: #8d1e16;
 margin-bottom: 10px;
}
.m_shop_data {
 margin-bottom: 0;
}
.m_shop_data dt {
 font-size: 16px;
 font-weight: 700;
 color: #8d1e16;
 line-height: 1.5;
}
.m_shop_data dd {
 font-size: 16px;
 margin-bottom: 20px;
 line-height: 1.8;
}
.m_shop_root li {
 font-size: 16px;
 line-height: 1.7;
}
.gmap {
 width: 940px;
}
@media screen and (max-width: 767px) {
 .l_access_inner {
  padding-top: 8vw;
  width: 86.6vw;
  margin: 0 6.6vw 6.6vw 6.6vw;
 }
 .l_access_detail {
  padding: 0 0 1vw 0;
  background: #fff;
 }
 .m_access_detail {
  width: auto;
  margin: 0 auto;
  text-align: left;
  border: #d9d9d9 1px solid;
  background: #fff;
  border-radius: 20px;
  margin-bottom: 6.6vw;
  padding: 0 3.6vw 4vw 3.6vw;
 }
 .m_access_name_box {
  background: url("../images/plan/bar_obi.png") no-repeat left top;
  background-size: 4.2vw auto;
  height: auto;
  padding: 8vw 0 0 9vw;
  display: block;
  line-height: 1;
  margin-bottom: 10vw;
  margin-bottom: 5.3vw;
  border-bottom: #8d1e16 1px solid;
 }
 .m_access_name {
  font-size: 4.5vw;
  padding-right: 0;
  line-height: 1;
  margin-bottom: 3vw;
 }
 .m_access_read {
  font-size: 3.6vw;
  margin-bottom: 4.4vw;
 }
 .m_access_shop_box {
  display: block;
  margin-bottom: 50px;
 }
 .m_shop_img {
  width: auto;
  margin-bottom: 4vw;
 }
 .m_shop_detail {
  width: auto;
  letter-spacing: 1px;
 }
 .m_shop_tel {
  font-size: 5.6vw;
  font-weight: 500;
  color: #8d1e16;
  margin-bottom: 10px;
 }
 .m_shop_data {
  margin-bottom: 0;
 }
 .m_shop_data dt {
  font-size: 3.46vw;
  font-weight: 700;
  color: #8d1e16;
  line-height: 1.5;
 }
 .m_shop_data dd {
  font-size: 3.46vw;
  margin-bottom: 4.8vw;
  line-height: 1.8;
 }
 .m_shop_root li {
  font-size: 3.46vw;
  line-height: 1.7;
 }
 .gmap {
  width: auto;
 }
 .gmap iframe {
  width: 100%;
 }
}
/* ===============================
  アカデミーの魅力
=============================== */
.l_school_inner {
 padding-top: 45px;
}
.school_appeal_ttl {
 font-size: 32px;
 color: #8d1e16;
 font-weight: 700;
 padding-top: 40px;
 margin-bottom: 10px;
}
.school_appeal_ttl strong {
 font-size: 50px;
 color: #8d1e16;
 font-weight: 700;
 margin-bottom: 25px;
}
.m_school_appeal {
 background: #f4eaea;
 padding: 20px 0;
 margin-bottom: 10px;
}
.m_school_appeal_inner {
 width: 990px;
 margin: 0 auto;
 display: flex;
 justify-content: space-between;
}
.m_appeal_tbox {
 width: 545px;
 text-align: left;
 order: 2;
 padding-top: 15px;
}
.m_appeal_img {
 width: 405px;
 order: 1;
}
.m_appeal_num {
 width: 320px;
 margin-bottom: 15px;
}
.m_appeal_ttl {
 font-size: 28px;
 font-weight: 700;
 color: #8d1e16;
 margin-bottom: 10px;
 font-feature-settings: "palt";
 letter-spacing: 1px;
 line-height: 1.4;
}
.m_appeal_txt {
 font-size: 17px;
 font-weight: 400;
}
.at_appeal_txt {
 font-size: 16px;
 font-weight: 400;
 padding: 30px 0 100px 0;
}
@media screen and (max-width: 767px) {
 .l_school_inner {
  padding-top: 8vw;
  width: auto;
  margin: 0 0 6.6vw 0;
 }
 .school_appeal_ttl {
  font-size: 6.4vw;
  color: #8d1e16;
  font-weight: 700;
  padding-top: 4vw;
  margin-bottom: 2vw;
 }
 .school_appeal_ttl strong {
  font-size: 10vw;
 }
 .m_school_appeal {
  padding: 6vw 0 4vw 0;
  margin-bottom: 5vw;
 }
 .m_school_appeal_inner {
  width: auto;
  margin: 0 3.4vw;
  display: block;
 }
 .m_appeal_tbox {
  width: auto;
  padding: 0 3.2vw 0 3.2vw;
  text-align: left;
 }
 .m_appeal_img {
  width: auto;
 }
 .m_appeal_num {
  width: 67vw;
  margin-bottom: 4vw;
 }
 .m_appeal_ttl {
  font-size: 5.6vw;
  margin-bottom: 4vw;
  letter-spacing: 0;
 }
 .m_appeal_txt {
  font-size: 3.46vw;
  margin-bottom: 6vw;
  font-feature-settings: "palt";
 }
 .at_appeal_txt {
  font-size: 3.46vw;
  padding: 3vw 0 24vw 0;
 }
}