@charset "UTF-8";
@-ms-viewport {
  width: device-width;
}
/*--------------------------------------------------------------------------
CSS　Shape（シェイプ）(style.css)ver.1 2025.7～
--------------------------------------------------------------------------*/
/*■■■■■■ 基本設定 ■■■■■■■*/
/*(基本の緑)*/
/*(緑やや濃い)*/
/*(緑：濃いめ)*/
/*(赤)*/
/*(黄色)*/
/*(水色：背景用)*/
/*(黒に近い緑)*/
/*■■■■■■ fadein ■■■■■■■*/
.fade-in {
  opacity: 0;
  -webkit-transition-duration: 1000ms;
          transition-duration: 1000ms;
}

.fade-in-up {
  -webkit-transform: translate(0, 60px);
          transform: translate(0, 60px);
}

.fade-in-down {
  -webkit-transform: translate(0, -60px);
          transform: translate(0, -60px);
}

.fade-in-left {
  -webkit-transform: translate(-60px, 0);
          transform: translate(-60px, 0);
}

.fade-in-right {
  -webkit-transform: translate(60px, 0);
          transform: translate(60px, 0);
}

.scroll-in {
  opacity: 1;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

/*ディレイアニメーション（スクロールなし）
load-fadein-sequence
*/
.load-fadein-item {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: opacity 1s ease, transform 1s ease;
  transition: opacity 1s ease, transform 1s ease, -webkit-transform 1s ease;
}

.load-fadein-item.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/*ディレイするアニメーション用(スクロール)
複数個所設置の場合は
<div class="fadein-sequence-box">
</div>で囲む
*/
.fadein-sequence-item {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: opacity 1s ease, transform 1s ease;
  transition: opacity 1s ease, transform 1s ease, -webkit-transform 1s ease;
}
.fadein-sequence-item.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/*■■■■■■ 主要タグ設定 ■■■■■■■*/
a:link {
  color: #222;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

a:visited {
  color: #545454;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

a:hover, a:active {
  color: #899881;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

/*■■■■■■ 汎用設定 ■■■■■■■*/
.bg-main {
  background-color: #C8D4C6;
}

.bg-sub {
  background-color: #899881;
  color: #FFF;
}

.bg-ami {
  background-color: #E6ECF2;
}

.bg-dark {
  background-color: #222;
  color: #FFF;
}

.bg-light {
  background-color: #E5F8F1;
}

.contents-in-block {
  padding: 50px 0;
}

/*■■■■■■ TOP ■■■■■■■*/
.main-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100vh; /* ビューポート全体の高さ */
}

/* ヘッダー画像のブロック */
.header-main-img-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; /* 余ったスペースを埋める */
  width: 100%;
  position: relative;
}

/* リード部分のブロック */
.read-contents-block {
  -ms-flex-negative: 0;
      flex-shrink: 0; /* 縮小せずそのままの高さを確保 */
  padding: 24px 0 26px;
  color: #4C4948;
}

.main-title {
  margin: 0 auto;
  padding: 0 80px;
  font-size: 3rem;
  font-weight: 500;
  font-family: "Noto Serif JP", sans-serif;
  position: relative;
    display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  
}
.main-title strong {
  font-size: 3.8rem;
  font-weight: 500;
}
.main-title span {
  font-size: 3.8rem;
  font-weight: 500;
}
.main-title::before {
  content: "";
  display: inline-block;
  width: 56px;
  height: 68px;
  /* background: url("../images/ico-rief-left.webp") center center no-repeat; */
  background-size: cover;
  position: absolute;
  left: 15px;
  top: -10px;
}
.main-title::after {
  content: "";
  display: inline-block;
  width: 56px;
  height: 68px;
  /* background: url("../images/ico-rief-right.webp") center center no-repeat; */
  background-size: cover;
  position: absolute;
  right: 15px;
  top: -10px;
}

/*■■■■■■ HSVG用 ■■■■■■■*/
.header-background-decoration {
  width: 100%;
  height: 100px;
}

.header-background-decoration svg {
  width: 100%;
  height: 100%;
  display: block;
}

.header-bottom-wave {
  position: relative;
  z-index: 0;
}
.header-bottom-wave svg {
  position: absolute;
  bottom: -1px;
}

.background-decoration {
  width: 100%;
  height: 100px;
  overflow: hidden;
  position: relative;
}

.background-decoration svg {
  width: 100%;
  height: 100%;
  display: block;
}

.bg-absolute {
  position: absolute;
  z-index: 1;
}

.bottom-wave {
  position: relative;
  z-index: 0;
}
.bottom-wave svg {
  position: absolute;
  bottom: -1px;
}

.top-wave {
  position: relative;
  z-index: 0;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.top-wave svg {
  position: absolute;
  top: 1px;
}

.radius-top {
  position: relative;
  z-index: 0;
}
.radius-top svg {
  position: absolute;
  top: -1px;
}

.radius-bottom {
  position: relative;
  z-index: 0;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.radius-bottom svg {
  position: absolute;
  bottom: 1px;
}

/*■■■■■■ HEADER ■■■■■■■*/
.head-entry-btn {
  display: block;
  height: 0;
  position: relative;
  z-index: 4;
}
.head-entry-btn a {
  width: 280px;
  position: absolute;
  bottom: 30%;
  right: 5%;
}
.head-entry-btn a img {
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.head-entry-btn a:hover img {
  opacity: 0.9;
}

.head-img-box_1, .head-img-box_3 {
  width: 25%;
  height: 100%;
}

.head-img-box_2 {
  width: 50%;
  height: 100%;
}

.bg-head-img_1 {
  background: url("../images/topimg02.webp") center center no-repeat;
  background-size: cover;
}

.bg-head-img_2 {
  background: url("../images/topimg01.webp") center center no-repeat;
  background-size: cover;
}

.bg-head-img_3 {
  background: url("../images/topimg03.webp") center center no-repeat;
  background-size: cover;
}

/*■■■■■■ CONTENTS MAIN ■■■■■■■*/
.contents-block {
  margin: 50px 0;
}

.contents-name {
  margin: 0;
  padding: 14px 20px;
  border-radius: 30px;
  font-size: 2.3rem;
  color: #222;
  letter-spacing: 1rem;
  line-height: 1.2;
  font-weight: 700;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(50%, rgb(255, 240, 0)), to(rgb(236, 108, 0)));
  background-image: linear-gradient(90deg, rgb(255, 240, 0) 50%, rgb(236, 108, 0));
  -webkit-filter: drop-shadow(#999 0.3rem 0.3rem 0.3rem);
          filter: drop-shadow(#999 0.3rem 0.3rem 0.3rem);
}

.flex-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

/*■■■■■■ 共通素材 ■■■■■■■*/
.text-title-leaf {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-size: 3rem;
  font-weight: 500; /* Medium 相当 */
  margin: 0 auto 30px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  gap: 20px; /* アイコンとの隙間 */
}
.text-title-leaf .leaf-icon {
  display: inline-block;
  width: 56px;
  height: 68px;
  background-image: url("../images/ico-rief-left.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.text-title-leaf .leaf-text {
  padding: 5px 0;
  display: inline-block;
  line-height: 1.2;
  border-bottom: 2px solid #899881;
}

.text-title-leaf-w {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-size: 3rem;
  font-weight: 500; /* Medium 相当 */
  margin: 0 auto 30px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  gap: 20px; /* アイコンとの隙間 */
}
.text-title-leaf-w .leaf-icon-w {
  display: inline-block;
  width: 56px;
  height: 68px;
  background-image: url("../images/ico-rief-left-w.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.text-title-leaf-w .leaf-text-w {
  padding: 5px 0;
  display: inline-block;
  line-height: 1.2;
  border-bottom: 2px solid #C8D4C6;
}

.text-title-leaf_s {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 2rem;
  font-weight: 500; /* Medium 相当 */
  margin: 0 auto 10px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  gap: 20px; /* アイコンとの隙間 */
}
.text-title-leaf_s .leaf-icon {
  display: inline-block;
  width: 56px;
  height: 68px;
  background-image: url("../images/ico-rief-left.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.text-title-leaf_s .leaf-text {
  padding: 5px 0;
  display: inline-block;
  line-height: 1.2;
  border-bottom: 2px solid #899881;
}

/*■■■■■■ #1 セッションについて ■■■■■■■*/
.main-read-block {
  margin: 90px 0 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 30px;
}
.main-read-block p {
  font-size: 1.6rem;
  font-weight: 500;
}

.icon-totonou {
  width: 165px;
  height: 195px;
  min-width: 165px;
  position: relative;
  z-index: 1;
}
.icon-totonou img {
  position: absolute;
  width: 195px;
  height: 195px;
  min-width: 195px;
  z-index: 2;
  top: -60px;
  left: -30px;
}

.cate-title-w {
  position: relative;
  margin: 40px 0;
  font-size: 6rem;
  font-weight: 400;
  font-family: "Noto Serif JP";
  color: #FFF;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2rem; /* 線と文字の間隔 */
}

.text-read-w {
  margin: -30px 0 40px;
  color: #FFF;
  font-size: 1.8rem;
  font-weight: 500;
}

.cate-title-w::before,
.cate-title-w::after {
  content: "";
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  height: 1px;
  background-color: #FFF;
}

.session__flex-box {
  margin: 0 0 60px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 30px;
}

/*オーダー*/
.session-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.session-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.cercle-img-box {
  display: block;
  width: 280px;
  height: 280px;
  border-radius: 140px;
  min-width: 280px;
}

.bg-img-taiken {
  background: url(../images/shape06.webp) center center;
  background-size: cover;
}

.bg-img-private {
  background: url(../images/private.webp) center center;
  background-size: cover;
}

.bg-img-semipl {
  background: url(../images/semipl.webp) center center;
  background-size: cover;
}

.bg-img-instructor {
  background: url(../images/instructor.webp) center center;
  background-size: cover;
}

.bg-img-machine {
  background: url(../images/machine.webp) center center;
  background-size: cover;
}

.bg-img-release {
  background: url(../images/release.webp) center center;
  background-size: cover;
}

.sessino__title {
  margin: 0 0 10px;
  padding: 0 0 5px;
  font-size: 2.6rem;
  font-weight: 500;
  border-bottom: 1px solid #67885D;
  display: inline-block;
}

.session__text_box {
  text-align: left;
}

.session__text {
  font-size: 1.6rem;
  font-weight: 500;
}

.sessino__serif {
  margin: 0 0 15px;
  padding: 5px 10px;
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 500;
  color: #fff;
  background-color: #C44536;
  border-radius: 12px;
  position: relative;
}
.sessino__serif::after {
  content: "";
  margin-left: -10px;
  width: 0;
  height: 0;
  position: absolute;
  left: 15%;
  bottom: -25px;
  border-style: solid;
  border-width: 15px 10px;
  border-color: #C44536 transparent transparent transparent;
}

/*安心してレッスンを受けていただけるように*/
.square-img-box {
  margin: 30px 0;
}

.staff-tre-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.staff-tre-1 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.staff-tre-2 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.staff-tre-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.video-item video {
  width: 260px;
  height: auto;
}
.video-item p {
  color: #FFF;
  font-size: 1.4rem;
  font-weight: 500;
  font-family: "Noto Serif JP";
}

/*■■■■■■　SWIPER　■■■■■■*/
.swiper-container {
  margin-inline: auto;
  width: 100%;
  position: relative;
}

.swiper .swiper-slide {
  height: auto;
}

.swiper .review-box {
  height: 100%;
}

/*矢印*/
.swiper-button-prev,
.swiper-button-next {
  width: 54px; /* ボタンの幅 */
  height: 54px; /* ボタンの高さ */
  background-size: 54px 54px; /* 表示したいサイズ */
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
  margin-top: 0;
}

.swiper-button-prev {
  left: -60px;
}

.swiper-button-next {
  right: -60px;
}

/* 次ページボタンのスタイル */
.swiper-button-next, .swiper-button-prev {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 27px;
  background-color: #C8D4C6;
}

.swiper-button-next:before {
  content: "";
  margin-right: 5px;
  display: block;
  width: 14px;
  height: 14px;
  border-width: 0 3px 3px 0;
  border-color: #FFF;
  border-style: solid;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

/* 前ページボタンのスタイル */
.swiper-button-prev:before {
  content: "";
  margin-left: 5px;
  display: block;
  width: 14px;
  height: 14px;
  border-width: 3px 0 0 3px;
  border-color: #FFF;
  border-style: solid;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.swiper-button-prev:after,
.swiper-button-next:after {
  display: none;
}

/*次のスライダーが無いときは矢印を表示しない*/
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
  opacity: 0;
  cursor: auto;
  pointer-events: none;
}

/*ページネーション*/
.swiper-pagination-bullets {
  position: static;
  margin-top: 16px;
}

.swiper-pagination-bullet {
  background-color: #22331D;
}

/*■■■■■■ #2 キャンペーン ■■■■■■■*/
.cate-title {
  position: relative;
  margin: 40px 0;
  font-size: 6rem;
  font-weight: 400;
  line-height: 1.2;
  font-family: "Noto Serif JP";
  color: #899881;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2rem; /* 線と文字の間隔 */
}
.cate-title br {
  line-height: 0;
}

.text-read {
  margin: 40px 0;
  font-size: 1.8rem;
  font-weight: 500;
}

.cate-title::before,
.cate-title::after {
  content: "";
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  height: 1px;
  background-color: #899881;
}

/*■■■■■■ #3 はじめての方へ ■■■■■■■*/
a.btn-contact {
  margin: 0 auto;
  padding: 0 50px;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  font-size: 2.6rem;
  letter-spacing: 2px;
  font-weight: 700;
  height: 76px;
  border-radius: 38px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background-color: #d38703;
  color: #FFF;
  -webkit-box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
          box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
  /* スムーズな変化用 */
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
a.btn-contact::after {
  margin: auto auto auto 5px;
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  border-width: 3px 3px 0 0;
  border-color: #FFF;
  border-style: solid;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
a.btn-contact:hover, a.btn-contact:active {
  background-color: #C44536;
  color: #FFF;
  -webkit-box-shadow: 0 0 15px rgba(255, 255, 255, 0.9);
          box-shadow: 0 0 15px rgba(255, 255, 255, 0.9);
  /* スムーズな変化用 */
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}

/*■■■■■■ #4 プラン・料金 ■■■■■■■*/
.plan-title {
  margin: 60px auto 30px;
  font-size: 3.6rem;
  font-weight: 400;
  color: #22331D;
  font-family: "Noto Serif JP";
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 10px;
}
.plan-title span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #67885D;
  font-size: 2.6rem;
  line-height: 1;
  color: #FFF;
  wdith: 54px;
  min-width: 54px;
  height: 54px;
  border-radius: 27px;
}
.plan-title span small {
  font-size: 1.2rem;
  line-height: 1;
  color: #E8FB40;
}

.plan-text-read {
  margin: 30px auto;
  font-size: 1.6rem;
  font-weight: 500;
}
.plan-text-read small {
  display: block;
  margin: 20px auto;
  font-size: 1.4rem;
  font-weight: 400;
}

.plan-flex-box {
  margin: 10px auto 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 30px 0;
}

.plan-price-card {
  background-color: #FFF;
  border: 2px solid #67885D;
  border-radius: 12px;
  width: 100%;
  height: 100%;
  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
          box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
}
.plan-price-card hr {
  margin: 0 20px;
  border: 0;
  padding: 10px 0 0;
  border-bottom: 3px solid #67885D;
}

.plan-name {
  background-color: #67885D;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  widt: 100%;
  height: 80px;
  border-radius: 10px 10px 0 0;
  color: #FFF;
  font-size: 2.3rem;
  line-height: 1.2;
  font-weight: 700;
}
.plan-name span {
  margin: 0;
  font-size: 2.3rem;
  line-height: 1.2;
  font-weight: 400;
  color: #E8FB40;
  font-family: "Noto Serif JP";
}

.plan-price-before {
  padding: 10px;
  font-size: 1.5rem;
  font-weight: 500;
  position: relative;
}
.plan-price-before strong {
  margin: 0 0 0 5px;
  font-size: 1.8rem;
}
.plan-price-before::after {
  content: "";
  margin-left: -10px;
  width: 0;
  height: 0;
  position: absolute;
  left: 50%;
  bottom: -20px;
  border-style: solid;
  border-width: 14px 8px;
  border-color: #C44536 transparent transparent transparent;
}

.plan-price {
  font-size: 2rem;
  font-weight: 700;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0;
}
.plan-price strong {
  font-size: 4.5rem;
  line-height: 1.2;
  font-weight: 700;
  color: #A53A2D;
}

.plan-price normal {
  font-size: 3.2rem;
  line-height: 1.3;
  font-weight: 700;
  color: #22331D;
}


.plan-price span {
  margin: auto 10px 7px auto;
  padding: 5px 10px;
　padding-top:5px；
  display: inline-block;
  font-size: 1.4rem;
  line-height: 1.2;
  color: #FFF;
  font-weight: 700;
  background-color: #C44536;
  border-radius: 6px;
}

.plan-text {
  padding: 15px 20px;
  font-size: 1.6rem;
  font-weight: 500;
  text-align: left;
}

.plan-sub-text {
  padding: 10px 20px 20px;
  font-size: 1.4rem;
  font-weight: 400;
  text-align: left;
}

.pay-box {
  margin: 0 auto 40px;
  padding: 20px 50px;
  display: inline-block;
  border-radius: 36px;
  background-color: #fff;
  border: 2px solid #899881;
}
.pay-box p {
  font-size: 1.4rem;
}

.pay-list {
  list-style: none;
  margin: 0 auto 10px;
  padding: 0;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 2.6rem;
  font-weight: 500;
}

.pay-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  padding: 10px 0 5px 0; /* 下の線と余白のため */
  border-bottom: 2px solid #67885D;
}

.pay-list li::before {
  content: counter(item);
  counter-increment: item;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background-color: #899881;
  color: #FFF;
  font-size: 2.6rem;
  margin-right: 1rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.pay-list {
  counter-reset: item;
}

.btn-title-block {
  margin: 10px auto 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.btn-title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  position: relative;
  display: inline-block;
  text-shadow: 0 0 10px #FFF;
}

.title-line {
  width: 40px;
  height: 2px;
  background-color: #222;
  -webkit-transform-origin: center;
  transform-origin: center;
  -webkit-filter: drop-shadow(#FFF 0 0 0.3rem);
          filter: drop-shadow(#FFF 0 0 0.3rem);
}

.title-line.left {
  margin-top: 15px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.title-line.right {
  margin-top: 15px;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

/*■■■■■■ #5 スタジオ案内 ■■■■■■■*/
.video-item p.studio-name_s {
  color: #22331D;
}

.studio-box {
  padding: 20px;
  margin: 20px 0;
  background-color: #fff;
  border: 1px solid #C8D4C6;
  border-radius: 20px;
  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
          box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
}

.studio-name {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.8;
}
.studio-name span {
  border-bottom: 1px solid #899881;
}

.studio-address {
  font-size: 1.6rem;
  font-weight: 400;
}

.studio-map-box {
  margin: 15px 0 0;
  padding: 75% 0 0 0;
  display: block;
  width: 100%;
  height: 0;
  position: relative;
}
.studio-map-box iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

/*■■■■■■ #6 お客様の声 ■■■■■■■*/
.voice-flex-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 30px 0;
}

.voice-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; /* ← 親に合わせて高さを100%にする */
  width: 100%;
  height: 100%;
  background-color: #FFF;
  color: #22331D;
  border-radius: 16px;
  border: 1px solid #subColor;
  padding: 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.voice-img-box {
  margin: 5px auto;
  display: block;
  width: 174px;
  height: 174px;
  border-radius: 87px;
}

.bg-voice-img_1 {
  background: url(../images/voice_1.webp) center center no-repeat;
  background-size: cover;
}

.bg-voice-img_2 {
  background: url(../images/voice_2.webp) center center no-repeat;
  background-size: cover;
}

.bg-voice-img_3 {
  background: url(../images/voice_3.webp) center center no-repeat;
  background-size: cover;
}

.bg-voice-img_4 {
  background: url(../images/vimg_yukosan.webp) center center no-repeat;
  background-size: cover;
}

.bg-voice-img_5 {
  background: url(../images/vimg_nakayamasama.webp) center center no-repeat;
  background-size: cover;
}

.voice-flex-box > .flex-stretch {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.voice-name {
  font-size: 1.3rem;
}
.voice-name strong {
  margin: 0 5px 0 0;
  font-size: 2rem;
}

.voice-sub-name {
  padding: 5px 20px;
  margin: 5px 0 10px;
  font-size: 1.5rem;
  border-top: 3px solid #899881;
}

.voice-text {
  font-size: 1.6rem;
  text-align: left;
  font-weight: 400;
}

/*■■■■■■ #7 FAQ よくある質問 ■■■■■■■*/
.faq-flex-box {
  margin: 40px 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 20px 0;
}

.faq-box {
  margin: 0 auto auto;
  padding: 20px 15px 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 2px dotted #999;
  border-radius: 12px;
}
.faq-box dl {
  margin: 0;
  padding: 0;
}
.faq-box dl dt {
  margin: 0;
  padding: 5px 30px 0 60px;
  font-size: 1.7rem;
  font-weight: 700;
  text-align: left;
  position: relative;
}
.faq-box dl dt:before {
  content: "Q";
  background-color: #899881;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 25px;
  font-size: 2rem;
  font-weight: 700;
  font-family: "Noto Serif JP";
  color: #FFF;
  position: absolute;
  left: 0;
  top: -5px;
}
.faq-box dl dd {
  padding: 30px 0 0 60px;
  font-size: 1.8rem;
  font-weight: 400;
  text-align: left;
  position: relative;
}
.faq-box dl dd:before {
  content: "A";
  background-color: #C44536;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 25px;
  font-size: 2rem;
  color: #FFF;
  font-weight: 700;
  font-family: "Noto Serif JP";
  position: absolute;
  left: 0;
  top: 20px;
}

/* アコーディオン用 */
dt {
  cursor: pointer;
  position: relative;
}
dt .toggle-icon {
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  font-size: 2.4rem;
  font-weight: bold;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

/* dd を最初は非表示に */
dd {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height 0.3s ease;
  transition: max-height 0.3s ease;
}

/* 開いた状態 */
dl.open dd {
  padding-bottom: 20px;
  max-height: 500px;
  opacity: 1;
}

dl.open dt .toggle-icon {
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg); /* + → × に見える */
}

/*■■■■■■ #8 電話番号 ■■■■■■■*/
.freedial {
  font-size: 4.4rem;
  color: #C44536;
  font-family: "Arial";
  font-weight: 700;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 10px;
  position: relative;
}
.freedial::before {
  content: "";
  display: block;
  width: 56px;
  height: 56px;
  background: url(../images/freedial.webp) center center no-repeat;
  background-size: cover;
}

/*■■■■■■ #9 資格取得 ■■■■■■■*/
.academy-box {
  margin: 40px auto;
  padding: 30px 40px;
  background-color: #FFF;
  border: 3px dotted #22331D;
  border-radius: 48px;
}

.academy-title {
  margin: 0 0 30px;
  font-size: 2.8rem;
  line-heigt: 1.8;
  font-weight: 500;
  font-family: "Noto Serif JP";
}
.academy-title span {
  border-bottom: 2px solid #67885D;
}

.academy-flex-box {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 30px;
}

.bg-img-academy {
  background: url(../images/academy.webp) center center;
  background-size: cover;
}

.academy-text {
  margin: 20px 0;
  text-align: left;
}

a.academy-link-btn {
  margin: 0 auto;
  padding: 0 30px;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  font-size: 1.5rem;
  letter-spacing: 2px;
  font-weight: 700;
  height: 46px;
  border-radius: 38px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background-color: #67885D;
  color: #FFF;
  -webkit-box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
          box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
  /* スムーズな変化用 */
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
a.academy-link-btn::after {
  margin: auto auto auto 5px;
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-width: 3px 3px 0 0;
  border-color: #FFF;
  border-style: solid;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
a.academy-link-btn:hover, a.academy-link-btn:active {
  background-color: #C44536;
  color: #FFF;
  -webkit-box-shadow: 0 0 15px rgba(255, 255, 255, 0.9);
          box-shadow: 0 0 15px rgba(255, 255, 255, 0.9);
  /* スムーズな変化用 */
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}

/*■■■■■■ youtube 埋め込み ■■■■■■■*/
.iframe-box {
  margin: 0 auto auto;
  padding: 65.25% 0 0 0; /*16：9の高さに固定*/
  width: 100%;
  height: 0;
  position: relative;
}
.iframe-box iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*■■■■■■ Company 会社概要 ■■■■■■■*/
.company-table {
  display: table;
  width: 100%;
  border-spacing: 10px;
}
.company-table th, .company-table td {
  padding: 10px 30px;
}
.company-table th {
  background: #C8D4C6;
  text-align: center;
  font-family: "Noto Serif JP";
  font-size: 1.8rem;
  font-weight: 500;
}
.company-table td {
  background-color: #EEF2EE;
  font-family: "Noto Serif JP";
  font-size: 1.8rem;
  font-weight: 500;
  text-align: left;
}

.tenpo-list dt {
  margin: 0 0 3px;
  font-family: "Noto Serif JP";
  font-size: 1.8rem;
  font-weight: 700;
  position: relative;
  cursor: none;
}
.tenpo-list dt::before {
  content: "●";
  color: #899881;
  margin: 0 5px 0 0;
}
.tenpo-list dt small {
  margin: 0 0 0 5px;
  font-size: 1.2rem;
  font-weight: 500;
  display: inline-block;
}
.tenpo-list dd {
  margin: 0 0 15px;
  overflow: visible;
  max-height: 100%;
  opacity: 1;
}
.tenpo-list dd p {
  padding-left: 2rem;
  font-family: "Noto Serif JP";
  font-size: 1.6rem;
  font-weight: 400;
}

/*■■■■■■ Policy プライバシーポリシー & 利用規約 ■■■■■■■*/
.policy-text-read {
  margin: 60px 0 0;
  font-weight: 400;
  font-size: 1.8rem;
  text-align: left;
}
.policy-text-read strong {
  font-weight: 500;
}

.policy-list dt {
  margin: 0 0 5px;
  font-size: 2.2rem;
  font-weight: 700;
  position: relative;
  cursor: none;
}
.policy-list dt::before {
  content: "■";
  color: #67885D;
  margin: 0 5px 0 0;
}
.policy-list dt small {
  margin: 0 0 0 5px;
  font-size: 1.2rem;
  font-weight: 500;
  display: inline-block;
}
.policy-list dd {
  margin: 0 0 40px;
  overflow: visible;
  max-height: 100%;
  opacity: 1;
}
.policy-list dd ul {
  margin: 10px 0;
  padding: 0 0 0 2rem;
  list-style: disc;
}

/*===============================
■■　スマホ用　■■
===============================*/
/*------------(XS)------------*/
@media (min-width: 320px) and (max-width: 566px) {
  /*■■■■■■ CONTENTS MAIN ■■■■■■■*/
  .contents-block {
    margin: 20px 0 50px;
  }
  .main-title {
    padding: 10px 0 10px 70px;
    font-size: 2.2rem;
    font-weight: 500;
    font-family: "Noto Serif JP", sans-serif;
    position: relative;
    text-align: left;
    display: inline-block;
  }
  .main-title br {
    line-height: 0;
  }
  .main-title strong {
    font-size: 3rem;
    font-weight: 500;
  }
  .main-title span {
    font-size: 3rem;
    font-weight: 500;
  }
  .main-title::after {
    display: none;
  }
  /*■■■■■■ HSVG用(XS) ■■■■■■■*/
  .header-background-decoration {
    width: 100%;
    height: 50px;
  }
  .header-background-decoration svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  .header-bottom-wave {
    position: relative;
    z-index: 0;
  }
  .header-bottom-wave svg {
    position: absolute;
    bottom: -1px;
  }
  .background-decoration {
    width: 100%;
    height: 50px;
    overflow: hidden;
    position: relative;
  }
  .background-decoration svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  .bg-absolute {
    position: absolute;
    z-index: 1;
  }
  .bottom-wave {
    position: relative;
    bottom: -1px;
    z-index: 0;
  }
  .bottom-wave svg {
    position: absolute;
    bottom: 0;
  }
  .top-wave {
    position: relative;
    top: -1px;
    z-index: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .top-wave svg {
    position: absolute;
    top: 0;
  }
  .radius-top {
    position: relative;
    top: -1px;
    z-index: 0;
  }
  .radius-top svg {
    position: absolute;
    top: 0;
  }
  .radius-bottom {
    position: relative;
    bottom: -1px;
    z-index: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .radius-bottom svg {
    position: absolute;
    bottom: 0;
  }
  /*■■■■■■ HEADER (XS) ■■■■■■■*/
  .head-entry-btn {
    display: block;
    height: 0;
    position: relative;
    z-index: 4;
  }
  .head-entry-btn a {
    width: 200px;
    position: absolute;
    bottom: -35px;
    right: 1%;
  }
  .head-entry-btn a img {
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
  .head-entry-btn a:hover img {
    opacity: 0.9;
  }
  .head-img-box_1, .head-img-box_3 {
    display: none;
  }
  .head-img-box_2 {
    width: 100%;
    height: 100%;
  }
  /*■■■■■■ 共通素材(XS) ■■■■■■■*/
  .text-title-leaf, .text-title-leaf-w {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center;
    font-size: 2.6rem;
    gap: 10px;
  }
  .text-title-leaf .leaf-icon, .text-title-leaf-w .leaf-icon {
    margin: 0 auto;
  }
  .text-title-leaf_s {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 2rem;
    font-weight: 500; /* Medium 相当 */
    margin: 0 auto 10px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    gap: 20px; /* アイコンとの隙間 */
  }
  .text-title-leaf_s .leaf-text {
    padding: 5px 0;
    display: inline-block;
    line-height: 1.2;
    border-bottom: 2px solid #899881;
  }
  /*■■■■■■ #1 セッションについて (XS) ■■■■■■■*/
  .main-read-block {
    margin: 20px 0 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
  }
  .main-read-block p {
    font-size: 1.6rem;
    font-weight: 500;
  }
  .icon-totonou {
    width: 165px;
    height: 165px;
    min-width: 165px;
    position: relative;
  }
  .icon-totonou img {
    position: absolute;
    width: 165px;
    height: 165px;
    min-width: 165px;
    z-index: 2;
    top: 0;
    left: 0;
  }
  .cate-title-w {
    position: relative;
    margin: 40px 0;
    font-size: 4.6rem;
    font-weight: 400;
    line-height: 1.2;
    font-family: "Noto Serif JP";
    color: #FFF;
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 2rem; /* 線と文字の間隔 */
  }
  .text-read-w {
    margin: -30px 0 40px;
    color: #FFF;
    font-size: 1.6rem;
    font-weight: 500;
  }
  .cate-title-w::before,
  .cate-title-w::after {
    content: "";
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: 1px;
    background-color: #FFF;
  }
  .session__flex-box {
    margin: 0 0 60px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 20px;
  }
  /*オーダー（XS）*/
  .session-order-1 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .session-order-2 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .cercle-img-box {
    display: block;
    width: 280px;
    height: 280px;
    border-radius: 140px;
    min-width: 280px;
  }
  .sessino__title {
    margin: 0 0 10px;
    padding: 0 0 5px;
    font-size: 2.6rem;
    font-weight: 500;
    border-bottom: 1px solid #67885D;
    display: block;
    text-align: center;
  }
  .session__text_box {
    text-align: center;
  }
  .session__text {
    font-size: 1.6rem;
    font-weight: 500;
    text-align: left;
  }
  .sessino__serif::after {
    left: 50%;
  }
  /*安心してレッスンを受けていただけるように*/
  .square-img-box {
    margin: 20px 0;
  }
  .staff-tre-block {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .staff-tre-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .staff-tre-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .staff-tre-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  /*■■■■■■ #2 キャンペーン (XS) ■■■■■■■*/
  .cate-title {
    font-size: 4.6rem;
  }
  .text-read {
    margin: 40px 0;
    font-size: 1.6rem;
  }
  /*■■■■■■ #3 はじめての方へ (XS)  ■■■■■■■*/
  a.btn-contact {
    margin: 0 auto;
    padding: 0 30px;
    font-size: 2rem;
    height: 56px;
    border-radius: 28px;
  }
  /*■■■■■■ #4 プラン・料金 (XS)  ■■■■■■■*/
  .plan-title {
    font-size: 3rem;
  }
  .plan-text-read {
    margin: 30px auto;
    font-size: 1.6rem;
    font-weight: 500;
  }
  .plan-text-read small {
    display: block;
    margin: 20px auto;
    font-size: 1.4rem;
    font-weight: 400;
  }
  .plan-flex-box {
    margin: 10px auto;
    display: block;
  }
  .plan-price-card {
    margin-bottom: 30px;
    width: 100%;
    max-width: 320px;
    height: auto;
    -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
            box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  }
  .plan-price-card hr {
    margin: 0 20px;
    border: 0;
    padding: 10px 0 0;
    border-bottom: 3px solid #67885D;
  }
  .plan-name {
    background-color: #67885D;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%;
    height: 80px;
    border-radius: 10px 10px 0 0;
    color: #FFF;
    font-size: 2.3rem;
    line-height: 1.2;
    font-weight: 700;
  }
  .plan-name span {
    margin: 0;
    font-size: 2.3rem;
    line-height: 1.2;
    font-weight: 400;
    color: #E8FB40;
    font-family: "Noto Serif JP";
  }
	 .plan-name begin {
   background-color: #67885D;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%;
    height: 80px;
    border-radius: 10px 10px 0 0;
    color: #FFF;
    font-size: 1.8rem;
    line-height: 1;
    font-weight: 700;
 
  }
	
	
	
  .plan-price-before {
    padding: 10px;
    font-size: 1.5rem;
    font-weight: 500;
    position: relative;
  }
  .plan-price-before strong {
    margin: 0 0 0 5px;
    font-size: 1.8rem;
  }
  .plan-price-before::after {
    content: "";
    margin-left: -10px;
    width: 0;
    height: 0;
    position: absolute;
    left: 50%;
    bottom: -20px;
    border-style: solid;
    border-width: 14px 8px;
    border-color: #C44536 transparent transparent transparent;
  }
  .plan-price {
    font-size: 2rem;
    font-weight: 700;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 0;
  }
  .plan-price strong {
    font-size: 4.5rem;
    line-height: 1.2;
    font-weight: 700;
    color: #A53A2D;
  }
  .plan-price span {
    margin: auto 10px 7px auto;
    padding: 5px 10px;
    display: inline-block;
    font-size: 1.4rem;
    line-height: 1.2;
    color: #FFF;
    font-weight: 700;
    background-color: #C44536;
    border-radius: 6px;
  }
  .plan-text {
    padding: 15px 20px;
    font-size: 1.6rem;
    font-weight: 500;
    text-align: left;
  }
  .plan-sub-text {
    padding: 10px 20px 20px;
    font-size: 1.4rem;
    font-weight: 400;
    text-align: left;
  }
  .pay-box {
    margin: 0 auto 40px;
    padding: 20px 30px;
    display: inline-block;
    border-radius: 36px;
  }
  .pay-box p {
    font-size: 1.4rem;
  }
  .pay-list {
    list-style: none;
    margin: 0 auto 10px;
    padding: 0;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    font-size: 2.2rem;
    font-weight: 500;
  }
  .pay-list li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    padding: 10px 0 5px 0; /* 下の線と余白のため */
    border-bottom: 2px solid #67885D;
  }
  .pay-list li::before {
    width: 36px;
    height: 36px;
    font-size: 2.2rem;
  }
  /*■■■■■■ #5 スタジオ案内 (XS)  ■■■■■■■*/
  .studio-box {
    padding: 20px;
    margin: 20px auto;
    max-width: 320px;
  }
  .studio-name {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.8;
  }
  .studio-name span {
    border-bottom: 1px solid #899881;
  }
  .studio-address {
    font-size: 1.4rem;
    font-weight: 400;
  }
  .studio-map-box {
    margin: 15px 0 0;
    padding: 75% 0 0 0;
    display: block;
    width: 100%;
    height: 0;
    position: relative;
  }
  .studio-map-box iframe {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
  }
  .swiper-wrapper.center-few-slides {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  /*■■■■■■ #6 お客様の声 (XS)  ■■■■■■■*/
  .voice-flex-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 30px 0;
  }
  .voice-card {
    margin: 0 auto;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; /* ← 親に合わせて高さを100%にする */
    width: 100%;
    max-width: 320px;
    height: 100%;
    background-color: #FFF;
    color: #22331D;
    border-radius: 16px;
    border: 1px solid #subColor;
    padding: 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  .voice-img-box {
    margin: 5px auto;
    display: block;
    width: 174px;
    height: 174px;
    border-radius: 87px;
  }
  .voice-flex-box > .flex-stretch {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; /* ← これを追加 */
  }
  .voice-name {
    font-size: 1.3rem;
  }
  .voice-name strong {
    margin: 0 5px 0 0;
    font-size: 2rem;
  }
  .voice-sub-name {
    padding: 5px 20px;
    margin: 5px 0 10px;
    font-size: 1.5rem;
    border-top: 3px solid #899881;
  }
  .voice-text {
    font-size: 1.6rem;
    text-align: left;
    font-weight: 400;
  }
  /*■■■■■■ #7 FAQ よくある質問 (XS)  ■■■■■■■*/
  .faq-flex-box {
    margin: 40px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 20px 0;
  }
  .faq-box {
    margin: 0 auto auto;
    padding: 20px 15px 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 2px dotted #999;
    border-radius: 12px;
  }
  .faq-box dl {
    margin: 0;
    padding: 0;
  }
  .faq-box dl dt {
    margin: 0;
    padding: 5px 30px 0 60px;
    font-size: 1.7rem;
    font-weight: 700;
    text-align: left;
    position: relative;
  }
  .faq-box dl dt:before {
    content: "Q";
    background-color: #899881;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 25px;
    font-size: 2rem;
    font-weight: 700;
    font-family: "Noto Serif JP";
    color: #FFF;
    position: absolute;
    left: 0;
    top: -5px;
  }
  .faq-box dl dd {
    padding: 30px 0 0 60px;
    font-size: 1.8rem;
    font-weight: 400;
    text-align: left;
    position: relative;
  }
  .faq-box dl dd:before {
    content: "A";
    background-color: #C44536;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 25px;
    font-size: 2rem;
    color: #FFF;
    font-weight: 700;
    font-family: "Noto Serif JP";
    position: absolute;
    left: 0;
    top: 20px;
  }
  /* アコーディオン用 */
  dt {
    cursor: pointer;
    position: relative;
  }
  dt .toggle-icon {
    position: absolute;
    right: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    font-size: 2.4rem;
    font-weight: bold;
    -webkit-transition: -webkit-transform 0.3s ease;
    transition: -webkit-transform 0.3s ease;
    transition: transform 0.3s ease;
    transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  }
  /* dd を最初は非表示に */
  dd {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    -webkit-transition: max-height 0.3s ease;
    transition: max-height 0.3s ease;
  }
  /* 開いた状態 */
  dl.open dd {
    padding-bottom: 20px;
    max-height: 500px;
    opacity: 1;
  }
  dl.open dt .toggle-icon {
    -webkit-transform: translateY(-50%) rotate(45deg);
            transform: translateY(-50%) rotate(45deg); /* + → × に見える */
  }
  /*■■■■■■ #8 電話番号 (XS)  ■■■■■■■*/
  .freedial {
    font-size: 4rem;
  }
  /*■■■■■■ #9 資格取得 (XS)  ■■■■■■■*/
  .academy-box {
    margin: 40px auto;
    padding: 20px;
    background-color: #FFF;
    border: 3px dotted #22331D;
    border-radius: 48px;
  }
  .academy-title {
    margin: 0 0 30px;
    font-size: 2.4rem;
    line-heigt: 1.8;
    font-weight: 500;
    font-family: "Noto Serif JP";
  }
  .academy-title span {
    border-bottom: 2px solid #67885D;
  }
  .academy-flex-box {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
  }
  .academy-text {
    margin: 20px 0;
    text-align: left;
  }
  a.academy-link-btn {
    margin: 0 auto;
    padding: 0 30px;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    font-size: 1.5rem;
    letter-spacing: 2px;
    font-weight: 700;
    height: 46px;
    border-radius: 38px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    background-color: #67885D;
    color: #FFF;
    -webkit-box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
            box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
    /* スムーズな変化用 */
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
  }
  a.academy-link-btn::after {
    margin: auto auto auto 5px;
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    border-width: 3px 3px 0 0;
    border-color: #FFF;
    border-style: solid;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  a.academy-link-btn:hover, a.academy-link-btn:active {
    background-color: #C44536;
    color: #FFF;
    -webkit-box-shadow: 0 0 15px rgba(255, 255, 255, 0.9);
            box-shadow: 0 0 15px rgba(255, 255, 255, 0.9);
    /* スムーズな変化用 */
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
  }
  /*swiper(XS)*/
  .swiper-button-prev {
    left: 10px;
    top: 103%;
  }
  .swiper-button-next {
    right: 10px;
    top: 103%;
  }
  /*■■■■■■ Company 会社概要 (XS) ■■■■■■■*/
  .company-table th, .company-table td {
    padding: 10px 20px;
    display: block;
  }
  .company-table th {
    text-align: center;
  }
  .company-table td {
    text-align: center;
  }
  .tenpo-list dt {
    text-align: left;
  }
  .tenpo-list dt small {
    display: block;
  }
  .tenpo-list dd {
    text-align: left;
  }
  /*■■■■■■ Policy プライバシーポリシー & 利用規約 ■■■■■■■*/
  .policy-text-read {
    font-size: 1.7rem;
  }
  .policy-list dt {
    font-size: 1.8rem;
  }
  .policy-list dd {
    font-size: 1.5rem;
  }
} /*xs*/
/*------------(SM)------------*/
@media (min-width: 567px) and (max-width: 767px) {
  /*■■■■■■ CONTENTS MAIN ■■■■■■■*/
  .contents-block {
    margin: 20px 0 50px;
  }
  .main-title {
    padding: 10px 0 10px 70px;
    font-size: 2.2rem;
    font-weight: 500;
    font-family: "Noto Serif JP", sans-serif;
    position: relative;
    text-align: left;
    display: inline-block;
  }
  .main-title br {
    line-height: 0;
  }
  .main-title strong {
    font-size: 3rem;
    font-weight: 500;
  }
  .main-title span {
    font-size: 3rem;
    font-weight: 500;
  }
  .main-title::after {
    display: none;
  }
  /*■■■■■■ HSVG用(SM) ■■■■■■■*/
  .header-background-decoration {
    width: 100%;
    height: 50px;
  }
  .header-background-decoration svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  .header-bottom-wave {
    position: relative;
    z-index: 0;
  }
  .header-bottom-wave svg {
    position: absolute;
    bottom: -1px;
  }
  .background-decoration {
    width: 100%;
    height: 50px;
    overflow: hidden;
    position: relative;
  }
  .background-decoration svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  .bg-absolute {
    position: absolute;
    z-index: 1;
  }
  .bottom-wave {
    position: relative;
    bottom: -1px;
    z-index: 0;
  }
  .bottom-wave svg {
    position: absolute;
    bottom: 0;
  }
  .top-wave {
    position: relative;
    top: -1px;
    z-index: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .top-wave svg {
    position: absolute;
    top: 0;
  }
  .radius-top {
    position: relative;
    top: -1px;
    z-index: 0;
  }
  .radius-top svg {
    position: absolute;
    top: 0;
  }
  .radius-bottom {
    position: relative;
    bottom: -1px;
    z-index: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .radius-bottom svg {
    position: absolute;
    bottom: 0;
  }
  /*■■■■■■ HEADER (SM) ■■■■■■■*/
  .head-entry-btn {
    display: block;
    height: 0;
    position: relative;
    z-index: 4;
  }
  .head-entry-btn a {
    width: 200px;
    position: absolute;
    bottom: -35px;
    right: 1%;
  }
  .head-entry-btn a img {
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
  .head-entry-btn a:hover img {
    opacity: 0.9;
  }
  .head-img-box_1, .head-img-box_3 {
    display: none;
  }
  .head-img-box_2 {
    width: 100%;
    height: 100%;
  }
  /*■■■■■■ 共通素材(SM) ■■■■■■■*/
  .text-title-leaf, .text-title-leaf-w {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center;
    font-size: 2.6rem;
    gap: 10px;
  }
  .text-title-leaf .leaf-icon, .text-title-leaf-w .leaf-icon {
    margin: 0 auto;
  }
  .text-title-leaf_s {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 2rem;
    font-weight: 500; /* Medium 相当 */
    margin: 0 auto 10px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    gap: 20px; /* アイコンとの隙間 */
  }
  .text-title-leaf_s .leaf-text {
    padding: 5px 0;
    display: inline-block;
    line-height: 1.2;
    border-bottom: 2px solid #899881;
  }
  /*■■■■■■ #1 セッションについて (SM) ■■■■■■■*/
  .main-read-block {
    margin: 20px 0 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
  }
  .main-read-block p {
    font-size: 1.6rem;
    font-weight: 500;
  }
  .icon-totonou {
    width: 165px;
    height: 165px;
    min-width: 165px;
    position: relative;
  }
  .icon-totonou img {
    position: absolute;
    width: 165px;
    height: 165px;
    min-width: 165px;
    z-index: 2;
    top: 0;
    left: 0;
  }
  .cate-title-w {
    position: relative;
    margin: 40px 0;
    font-size: 4.6rem;
    font-weight: 400;
    line-height: 1.2;
    font-family: "Noto Serif JP";
    color: #FFF;
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 2rem; /* 線と文字の間隔 */
  }
  .text-read-w {
    margin: -30px 0 40px;
    color: #FFF;
    font-size: 1.6rem;
    font-weight: 500;
  }
  .cate-title-w::before,
  .cate-title-w::after {
    content: "";
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: 1px;
    background-color: #FFF;
  }
  .session__flex-box {
    margin: 0 0 60px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 20px;
  }
  /*オーダー（XS）*/
  .session-order-1 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .session-order-2 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .cercle-img-box {
    display: block;
    width: 280px;
    height: 280px;
    border-radius: 140px;
    min-width: 280px;
  }
  .sessino__title {
    margin: 0 0 10px;
    padding: 0 0 5px;
    font-size: 2.6rem;
    font-weight: 500;
    border-bottom: 1px solid #67885D;
    display: block;
    text-align: center;
  }
  .session__text_box {
    text-align: center;
  }
  .session__text {
    font-size: 1.6rem;
    font-weight: 500;
    text-align: left;
  }
  .sessino__serif::after {
    left: 50%;
  }
  /*安心してレッスンを受けていただけるように*/
  .square-img-box {
    margin: 20px 0;
  }
  .staff-tre-block {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .staff-tre-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .staff-tre-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .staff-tre-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  /*■■■■■■ #2 キャンペーン (SM) ■■■■■■■*/
  .cate-title {
    font-size: 4.6rem;
  }
  .text-read {
    margin: 40px 0;
    font-size: 1.6rem;
  }
  /*■■■■■■ #3 はじめての方へ (SM)  ■■■■■■■*/
  a.btn-contact {
    margin: 0 auto;
    padding: 0 30px;
    font-size: 2rem;
    height: 56px;
    border-radius: 28px;
  }
  /*■■■■■■ #4 プラン・料金 (SM)  ■■■■■■■*/
  .plan-title {
    font-size: 3rem;
  }
  .plan-text-read {
    margin: 30px auto;
    font-size: 1.6rem;
    font-weight: 500;
  }
  .plan-text-read small {
    display: block;
    margin: 20px auto;
    font-size: 1.4rem;
    font-weight: 400;
  }
  .plan-flex-box {
    margin: 10px auto;
    display: block;
  }
  .plan-price-card {
    margin-bottom: 30px;
    width: 100%;
    max-width: 480px;
    height: auto;
    -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
            box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  }
  .plan-price-card hr {
    margin: 0 20px;
    border: 0;
    padding: 10px 0 0;
    border-bottom: 3px solid #67885D;
  }
  .plan-name {
    background-color: #67885D;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    widt: 100%;
    height: 80px;
    border-radius: 10px 10px 0 0;
    color: #FFF;
    font-size: 2.3rem;
    line-height: 1.2;
    font-weight: 700;
  }
  .plan-name span {
    margin: 0;
    font-size: 2.3rem;
    line-height: 1.2;
    font-weight: 400;
    color: #E8FB40;
    font-family: "Noto Serif JP";
  }
  .plan-price-before {
    padding: 10px;
    font-size: 1.5rem;
    font-weight: 500;
    position: relative;
  }
  .plan-price-before strong {
    margin: 0 0 0 5px;
    font-size: 1.8rem;
  }
  .plan-price-before::after {
    content: "";
    margin-left: -10px;
    width: 0;
    height: 0;
    position: absolute;
    left: 50%;
    bottom: -20px;
    border-style: solid;
    border-width: 14px 8px;
    border-color: #C44536 transparent transparent transparent;
  }
  .plan-price {
    font-size: 2rem;
    font-weight: 700;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 0;
  }
  .plan-price strong {
    font-size: 4.5rem;
    line-height: 1.2;
    font-weight: 700;
    color: #A53A2D;
  }
  .plan-price span {
    margin: auto 10px 7px auto;
    padding: 5px 10px;
    display: inline-block;
    font-size: 1.4rem;
    line-height: 1.2;
    color: #FFF;
    font-weight: 700;
    background-color: #C44536;
    border-radius: 6px;
  }
  .plan-text {
    padding: 15px 20px;
    font-size: 1.6rem;
    font-weight: 500;
    text-align: left;
  }
  .plan-sub-text {
    padding: 10px 20px 20px;
    font-size: 1.4rem;
    font-weight: 400;
    text-align: left;
  }
  .pay-box {
    margin: 0 auto 40px;
    padding: 20px 30px;
    display: inline-block;
    border-radius: 36px;
  }
  .pay-box p {
    font-size: 1.4rem;
  }
  .pay-list {
    list-style: none;
    margin: 0 auto 10px;
    padding: 0;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    font-size: 2.2rem;
    font-weight: 500;
  }
  .pay-list li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    padding: 10px 0 5px 0; /* 下の線と余白のため */
    border-bottom: 2px solid #67885D;
  }
  .pay-list li::before {
    width: 36px;
    height: 36px;
    font-size: 2.2rem;
  }
  /*■■■■■■ #5 スタジオ案内 (SM)  ■■■■■■■*/
  .studio-box {
    padding: 20px;
    margin: 20px auto;
    max-width: 480px;
  }
  .studio-name {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.8;
  }
  .studio-name span {
    border-bottom: 1px solid #899881;
  }
  .studio-address {
    font-size: 1.4rem;
    font-weight: 400;
  }
  .studio-map-box {
    margin: 15px 0 0;
    padding: 75% 0 0 0;
    display: block;
    width: 100%;
    height: 0;
    position: relative;
  }
  .studio-map-box iframe {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
  }
  .swiper-wrapper.center-few-slides {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  /*■■■■■■ #6 お客様の声 (SM)  ■■■■■■■*/
  .voice-flex-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 30px 0;
  }
  .voice-card {
    margin: 0 auto;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; /* ← 親に合わせて高さを100%にする */
    width: 100%;
    max-width: 480px;
    height: 100%;
    background-color: #FFF;
    color: #22331D;
    border-radius: 16px;
    border: 1px solid #subColor;
    padding: 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  .voice-img-box {
    margin: 5px auto;
    display: block;
    width: 174px;
    height: 174px;
    border-radius: 87px;
  }
  .voice-flex-box > .flex-stretch {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; /* ← これを追加 */
  }
  .voice-name {
    font-size: 1.3rem;
  }
  .voice-name strong {
    margin: 0 5px 0 0;
    font-size: 2rem;
  }
  .voice-sub-name {
    padding: 5px 20px;
    margin: 5px 0 10px;
    font-size: 1.5rem;
    border-top: 3px solid #899881;
  }
  .voice-text {
    font-size: 1.6rem;
    text-align: left;
    font-weight: 400;
  }
  /*■■■■■■ #9 資格取得 (SM)  ■■■■■■■*/
  .academy-box {
    margin: 40px auto;
    padding: 20px 30px 30px;
  }
  .academy-title {
    font-size: 2.4rem;
  }
  .academy-flex-box {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
  }
  .academy-text {
    margin: 20px 0 30px;
    text-align: left;
  }
  /*swiper(XS)*/
  .swiper-button-prev {
    left: 10px;
    top: 103%;
  }
  .swiper-button-next {
    right: 10px;
    top: 103%;
  }
} /*SM*/
/*------------(MD)------------*/
@media (min-width: 768px) and (max-width: 1023px) {
  /*■■■■■■ CONTENTS MAIN ■■■■■■■*/
  .contents-block {
    margin: 20px 0 50px;
  }
  /*■■■■■■ TOP ■■■■■■■*/
  .main-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 600px; /* ビューポート全体の高さ */
  }
  .main-title {
    padding: 10px 0 10px 70px;
    font-size: 2.2rem;
    font-weight: 500;
    font-family: "Noto Serif JP", sans-serif;
    position: relative;
    text-align: left;
    display: inline-block;
  }
  .main-title br {
    line-height: 0;
  }
  .main-title strong {
    font-size: 3rem;
    font-weight: 500;
  }
  .main-title span {
    font-size: 3rem;
    font-weight: 500;
  }
  .main-title::after {
    display: none;
  }
  /*■■■■■■ HSVG用(MD) ■■■■■■■*/
  .header-background-decoration {
    width: 100%;
    height: 80px;
  }
  .header-background-decoration svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  .header-bottom-wave {
    position: relative;
    z-index: 0;
  }
  .header-bottom-wave svg {
    position: absolute;
    bottom: -1px;
  }
  .background-decoration {
    width: 100%;
    height: 80px;
    overflow: hidden;
    position: relative;
  }
  .background-decoration svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  .bg-absolute {
    position: absolute;
    z-index: 1;
  }
  .bottom-wave {
    position: relative;
    bottom: -1px;
    z-index: 0;
  }
  .bottom-wave svg {
    position: absolute;
    bottom: 0;
  }
  .top-wave {
    position: relative;
    top: -1px;
    z-index: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .top-wave svg {
    position: absolute;
    top: 0;
  }
  .radius-top {
    position: relative;
    top: -1px;
    z-index: 0;
  }
  .radius-top svg {
    position: absolute;
    top: 0;
  }
  .radius-bottom {
    position: relative;
    bottom: -1px;
    z-index: 0;
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .radius-bottom svg {
    position: absolute;
    bottom: 0;
  }
  /*■■■■■■ HEADER (MD) ■■■■■■■*/
  .head-entry-btn {
    display: block;
    height: 0;
    position: relative;
    z-index: 4;
  }
  .head-entry-btn a {
    width: 220px;
    position: absolute;
    bottom: -35px;
    right: 1%;
  }
  .head-entry-btn a img {
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
  .head-entry-btn a:hover img {
    opacity: 0.9;
  }
  .head-img-box_1, .head-img-box_3 {
    width: 25%;
    height: 100%;
  }
  .head-img-box_2 {
    width: 50%;
    height: 100%;
  }
  /*■■■■■■ 共通素材(MD) ■■■■■■■*/
  .text-title-leaf, .text-title-leaf-w {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center;
    font-size: 2.6rem;
    gap: 10px;
  }
  .text-title-leaf .leaf-icon, .text-title-leaf-w .leaf-icon {
    margin: 0 auto;
  }
  .text-title-leaf_s {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 2rem;
    font-weight: 500; /* Medium 相当 */
    margin: 0 auto 10px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    gap: 20px; /* アイコンとの隙間 */
  }
  .text-title-leaf_s .leaf-icon {
    display: inline-block;
    width: 56px;
    height: 68px;
    background-image: url("../images/ico-rief-left.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .text-title-leaf_s .leaf-text {
    padding: 5px 0;
    display: inline-block;
    line-height: 1.2;
    border-bottom: 2px solid #899881;
  }
  /*■■■■■■ #1 セッションについて (SM) ■■■■■■■*/
  .main-read-block {
    margin: 20px 0 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 10px;
  }
  .main-read-block p {
    font-size: 1.6rem;
    font-weight: 500;
  }
  .icon-totonou {
    width: 160px;
    height: 160px;
    min-width: 160px;
    position: relative;
  }
  .icon-totonou img {
    position: absolute;
    width: 160px;
    height: 160px;
    min-width: 160px;
    z-index: 2;
    top: 0;
    left: 0;
  }
  .cate-title-w {
    font-size: 5rem;
  }
  /*■■■■■■ #2 キャンペーン (SM) ■■■■■■■*/
  .cate-title {
    font-size: 5rem;
  }
  /*■■■■■■ #5 スタジオ案内(MD) ■■■■■■■*/
  .studio-name {
    font-size: 2rem;
  }
  .studio-address {
    font-size: 1.3rem;
  }
  /*swiper(MD)*/
  .swiper-button-prev {
    left: 10px;
    top: 103%;
  }
  .swiper-button-next {
    right: 10px;
    top: 103%;
  }
} /*MD*/
/*------------(LG)------------*/
@media (min-width: 1024px) and (max-width: 1215px) {
  .hamburger {
    display: none;
  }
  /*■■■■■■ TOP ■■■■■■■*/
  .main-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 700px; /* ビューポート全体の高さ */
  }
  /* ヘッダー画像のブロック */
  .header-main-img-block {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; /* 余ったスペースを埋める */
    width: 100%;
    position: relative;
  }
  /* リード部分のブロック */
  .read-contents-block {
    -ms-flex-negative: 0;
        flex-shrink: 0; /* 縮小せずそのままの高さを確保 */
    padding: 24px 0 26px;
    color: #4C4948;
  }
  .main-title {
    margin: 0 auto;
    padding: 0 80px;
    font-size: 2.8rem;
    font-weight: 500;
    font-family: "Noto Serif JP", sans-serif;
    position: relative;
    display: inline-block;
    width: auto;
  }
  .main-title strong {
    font-size: 3.2rem;
    font-weight: 500;
  }
  .main-title span {
    font-size: 3.2rem;
    font-weight: 500;
  }
} /*LG*/
/*------------(XL)------------*/
@media (min-width: 1216px) and (max-width: 1440px) {
  .hamburger {
    display: none;
  }
} /*XL*/
/*------------(XXL)------------*/
@media (min-width: 1441px) {
  .hamburger {
    display: none;
  }
} /*XL*/