@charset "utf-8";

:root {
  --article_size: 1200px;
  --color_main: #232323;
  --color_text: #232323;
  --color_list_check: #232323;
  --color_list_num: #232323;
  /* リズスポのメインカラー（ティール） */
  --color_green: #00a0a5;
  --color_link: #00a0a5;
  /* リズスポのアクセントカラー（オレンジ） */
  --color_accent: #ff7800;
  /* 薄いティール（背景用） */
  --color_bg_light: #e5f6f7;
  /* 薄いオレンジ（背景用） */
  --color_bg_warm: #f5943d;
  /* 暗めの緑（背景用） */
  --color_bg_green: #0e9494;
  /* フック用：訴求アクセント色 */
  --color_hook_red: #e60012;
  --color_hook_yellow: #fffa66;
  --font_anton: "Anton", sans-serif;
  --color_border--table: #232323;
}

/*////////// 日本語の禁則処理（拗音・促音が行頭/行末で孤立しないように） //////////*/
body {
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
}

/*////////// フック装飾（赤文字・黄色背景・大きな数字） //////////*/
.hook-red {
  color: var(--color_hook_red);
  font-weight: 900;
}
.hook-yellow {
  color: var(--color_hook_red);
  font-weight: 900;
  background: linear-gradient(transparent 60%, var(--color_hook_yellow) 60%);
  padding: 0 0.1em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.hook-yellow-bg {
  display: inline;
  background: linear-gradient(transparent 60%, #fff685 60%);
  color: var(--color_hook_red);
  font-weight: 900;
  padding: 0.05em 0.4em;
  border-radius: 0.2em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.txt-strong-big {
  font-size: min(6vw, 40px);
  font-weight: 700;
  letter-spacing: 0.1em;
}

/*////////// FV（メインビジュアル）— rizusupo.com 同構成 //////////*/
#top_fv .wp-block-cover {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(420px, 90vh, 760px);
  margin-bottom: 0;
  padding: 0;
  overflow: hidden;
  /* 動画読み込み中のポスター画像（SP用） */
  background-image: url('../images/poster_fv_sp.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* PC幅で SWELL/Gutenberg のデフォルトパディングが入るのを打ち消し＆ポスター画像を PC 用に */
@media (min-width: 960px) {
  #top_fv .wp-block-cover {
    padding: 0;
    background-image: url('../images/poster_fv_pc.webp');
  }
}
/* 動画を絶対配置で背景に固定 */
#top_fv .wp-block-cover__video-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  margin: 0;
}
/* 黒の半透明オーバーレイ */
#top_fv .wp-block-cover__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  opacity: 0.2;
  z-index: 1;
}
/* コンテンツを動画より前に */
#top_fv .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.8em;
  text-align: center;
  width: 100%;
  max-width: 760px;
  padding: min(20vw, 100px) min(10vw, 30px) min(10vw, 70px);
  color: #fff;
}
#top_fv .wp-block-image {
  margin: 0 auto;
}
#top_fv .txt_fv_3point {
  margin-bottom: min(3vw, 20px);
}
#top_fv .txt_fv_3point img {
  width: min(62vw, 294px);
  height: auto;
}
#top_fv .txt_fv_change img {
  width: min(80vw, 700px);
  height: auto;
}
#top_fv .supervision {
  background-color: #333;
  padding: .25em 1em;
  border-radius: 50vw;
  font-weight: 700;
  letter-spacing: .1em;
  font-size: min(3.6vw, 18px);
  margin: min(5vw, 30px) auto min(1vw, 10px);
}
#top_fv .target-age,
#top_fv .rhythm-training {
  display: block;
  text-shadow: 0 0 10px rgba(0, 0, 0, 1);
  letter-spacing: .1em;
  font-size: min(4vw, 20px);
}
#top_fv .target-age .txt-yellow {
  padding-right: .5em;
  letter-spacing: 0;
}
#top_fv .rhythm-training {
  font-size: min(6vw, 26px);
}
#top_fv .fv-txt-wrap,
#top_fv .fv-txt-wrap > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8em;
  width: 100%;
  margin-bottom: 0;
}
#top_fv .swell-block-button {
  margin-top: 0.8em;
  width: 100%;
}
#top_fv [class*=is-style-btn_] a.size-l {
  font-size: min(3.5vw, 20px);
}
/* swell-block-fullWide__inner が幅を絞らないように */
#top_fv .swell-block-fullWide__inner {
  max-width: none;
  padding: 0;
}

.top #content {
  padding-top: 0;
}

/*////////// セクション中CTA帯 //////////*/
.cta-band {
  background: linear-gradient(135deg, #fff5e6 0%, #ffd9a7 100%);
  padding: 2em 1em;
}
.cta-band-headline {
  position: relative;
  color: var(--color_green);
  font-size: clamp(18px, 4vw, 26px);
  font-weight: 900;
  margin-bottom: min(8vw, 45px);
  padding-bottom: min(5vw, 20px);
}
.cta-band-headline::after {
  content: '';
  position: absolute;
  width: 60px;
  height: 3px;
  background-color: var(--color_green);
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

/*////////// パーソナル×リズム 提供価値ボックス //////////*/
#value-prop {
  position: relative;
}
.value-prop-deco {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  height: auto;
  user-select: none;
}
/* PC レイアウト：左右に振り分け */
@media (min-width: 769px) {
  .value-prop-deco--1 {
    left: 5%;
    top: 25%;
    width: 18%;
    max-width: 180px;
    transform: translateY(-50%);
  }
  .value-prop-deco--2 {
    right: 4%;
    top: 16%;
    width: 18%;
    max-width: 180px;
    transform: translateY(-50%);
  }
}
/* SP レイアウト：上下の角に小さく配置 */
@media (max-width: 768px) {
  .value-prop-deco--1 {
    top: -37vw;
    left: -4vw;
    width: 24%;
    max-width: 110px;
  }
  .value-prop-deco--2 {
    top: -34vw;
    right: -6vw;
    width: 24%;
    max-width: 110px;
  }
  .page-about .value-prop-deco--1 {
    top: -24vw;
    left: -4vw;
  }
  .page-about .value-prop-deco--2 {
    top: -24vw;
    right: -6vw;
  }
}
.value-cross-box-head {
  position: relative;
  border-top: solid 2px var(--color_green);
  border-bottom: solid 2px var(--color_green);
  padding-top: min(1.2vw, 10px);
  margin-bottom: min(3vw, 23px);
  background: white;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
}
.value-cross-box {
  position: relative;
  z-index: 1;
  width: min(100%, 720px);
  margin: 0 auto -11vw;
  padding: 2.2em 0 0;
  transform: translateY(-7vw);
}
.page-about .value-cross-box {
  margin: 0 auto;
  transform: translateY(0);
}
@media (min-width: 769px) {
  .value-cross-box-head {
    width: 100%;
    left: auto;
    transform: translateX(0);
  }
  .value-cross-box {
    margin: 0 auto;
    transform: translateY(0);
  }
}
.value-cross-eyebrow {
  width: min(62%, 278px);
  position: absolute;
  font-size: min(3.6vw, 17px);
  background-color: white;
  left: 50%;
  top: -0.8rem;
  transform: translateX(-50%);
  color: var(--color_green);
  font-weight: 700;
  letter-spacing: 0.12em;
}
.value-cross-formula {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 min(2vw, 20px);
  font-family: var(--font_anton);
  font-size: clamp(12px, 5vw, 32px);
  line-height: 1.1;
  margin: 0.5rem 0 0.7em;
  border: none;
}
.value-cross-formula::before,
.value-cross-formula::after {
  content: none;
}
.value-cross-item {
  color: var(--color_green);
  font-size: clamp(28px, 8.5vw, 62px);
  letter-spacing: .15em;
}
.value-cross-times {
  width: min(5vw, 38px);
  height: min(5vw, 38px);
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48.43 48.43"><path fill="%23ff7800" d="M246.05,650.54l20.68,20.68-3.53,3.54-20.68-20.68-20.68,20.68-3.54-3.54L239,650.54,218.3,629.86l3.54-3.53L242.52,647l20.68-20.68,3.53,3.53Z" transform="translate(-218.3 -626.33)"></path></svg>');
}
.value-cross-result {
  font-size: clamp(16px, 4.6vw, 30px);
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 0;
}
.logo-about {
  width: min(38vw, 200px);
  height: auto;
  margin: 0 auto;
  transform: translateY(2rem);
}

/*////////// ゴールデンエイジ訴求セクション //////////*/
#golden-age {
  min-height: min(246vw, 1600px);
  text-align: center;
  background-image: url('../images/bg_about_sp.webp?20260510-1043');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* PC 表示では背景画像を切替＋下合わせ */
@media (min-width: 769px) {
  #golden-age {
    background-image: url('../images/bg_about.webp');
    background-position: center bottom 32%;
  }
}
.golden-age-description {
  padding: 0 0 min(5vw, 40px);
}

.golden-age-description h3 {
  display: inline;
  background-color: #333333;
  padding: 0.5em 1em;
  color: white;
  font-size: min(4.2vw, 26px);
  letter-spacing: 0.15em;
}
.golden-age-description p {
  padding: min(5vw, 30px) min(2vw, 30px);
  color: white;
  font-size: min(3.5vw, 18px);
}

/*////////// 3つのベネフィット（試合のキレ・どこでも・自信） //////////*/
#benefits {
  position: relative;
  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.25);
  z-index: 1;
}
.bg-warm {
  background-color: var(--color_bg_warm);
}
.benefit-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.2em;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (min-width: 768px) {
  .benefit-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.benefit-list > li {
  background-color: #fff;
  border-radius: 1em;
  padding: 1.6em 1.2em;
  text-align: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
  position: relative;
}
.benefit-num {
  font-family: var(--font_anton);
  font-size: min(10vw, 45px);
  color: var(--color_accent);
  line-height: 1;
  margin-bottom: 0.4em;
}
.benefit-tit {
  font-size: clamp(16px, 4.4vw, 20px);
  font-weight: 900;
  line-height: 1.4;
  margin-bottom: 0.6em;
}
.benefit-tit + p {
  text-align: left;
  font-size: min(3.5vw, 15px);
  padding: min(2vw, 10px) min(2vw, 10px) 0;
}

/*////////// ゴールデンエイジ訴求（4ステップ） //////////*/
.golden-points {
  list-style: none;
  padding: 0;
  margin: 1em auto 0;
  max-width: 760px;
  display: grid;
  gap: 1em;
}
.golden-points > li {
  background-color: #fff;
  border-left: 6px solid var(--color_accent);
  padding: 1.2em 1.4em;
  border-radius: 0 0.8em 0.8em 0;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}
.point-label {
  display: inline-block;
  font-family: var(--font_anton);
  font-size: clamp(13px, 3.4vw, 16px);
  color: #fff;
  background-color: var(--color_main);
  padding: 0.15em 0.8em;
  letter-spacing: 0.08em;
  margin-bottom: 0.5em;
  border-radius: 0.2em;
}
.point-tit {
  font-size: clamp(17px, 4.6vw, 22px);
  font-weight: 900;
  line-height: 1.45;
  margin-bottom: 0.4em;
}

/*////////// 比較表（チェックの理由併記） //////////*/
.compare-table {
  margin: 1em auto;
  max-width: 760px;
}
.compare-table table {
  background-color: #fff;
}
.compare-table th,
.compare-table td {
  vertical-align: middle;
  padding: 0.8em 0.6em;
}
.compare-table thead th {
  background-color: #636363;
  color: #fff;
  font-weight: 700;
  font-size: min(2.8vw, 16px);
  border-radius: 0.6em 0.6em 0 0;
}
.compare-table thead th.cell-red-pastel {
  background-color: var(--color_green);
  color: #fff;
  padding: 0.8em 0 0.5em 0.2em;
  border-radius: 0.6em 0.6em 0 0;
}
/* 左上の空セル：上と左のボーダーを消し背景透過 */
.compare-table thead th.cell-empty {
  background-color: transparent;
  border-top: none;
  border-left: none;
  box-shadow: none;
}
/* 比較表内のロゴ画像 */
.compare-table__logo {
  display: block;
  width: min(15vw, 117px);
  height: auto;
  margin: 0 auto;
}
.compare-table thead th {
  border-left: solid 1px #fff;
}
.compare-table tr {
  border-bottom: solid 1px #666;
}
.compare-reason {
  display: block;
  font-size: 0.85em;
  font-weight: 400;
  color: #555;
  margin-top: 0.3em;
  line-height: 1.5;
}
.inline-icon.circle-double {
  display: inline-block;
  width: min(4.2vw, 20px);
  height: min(4.2vw, 20px);
  margin: 0 0.25rem;
  vertical-align: -0.1rem;
}

/* スマホ表示時：左列（説明セル）を狭くしてチェック列に余白を確保 */
@media (max-width: 600px) {
  .compare-table th:first-child,
  .compare-table td:first-child {
    width: 38%;
    padding-left: 0.4em;
    padding-right: 0.4em;
    font-size: 0.85em;
  }
  .compare-table .compare-reason {
    font-size: 0.78em;
  }
}

/*////////// お悩みリスト //////////*/
.worries-list > li {
  text-align: center;
}
.worries-list > li > img {
  width: min(48vw, 180px);
  height: auto;
  border-radius: 50%;
  margin-bottom: 0.6em;
  display: block;
  margin-left: auto;
  margin-right: auto;
  opacity: 0.85;
}

/*////////// ベネフィット画像 //////////*/
.benefit-img {
  width: 100%;
  height: auto;
  border-radius: 0.6em;
  margin-bottom: 1em;
  object-fit: cover;
  aspect-ratio: 5 / 4;
}

/*////////// 料金プランのレッスンタイプアイコン //////////*/
.lesson-type-icon {
  display: inline-block;
  vertical-align: middle;
  width: 60px;
  height: 60px;
  margin-right: 0.6em;
  border-radius: 50%;
}

/*////////// 料金プランページ //////////*/
.h2-price-next {
  position: relative;
  width: min(90%, 800px);
  margin: 0 auto;
  text-align: center;
  font-size: min(6vw, 32px);
  letter-spacing: .1em;
  padding: min(5vw, 30px);
  font-weight: 700;
}
.h2-price-next::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 2px;
  background-color: var(--color_main);
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.h2-price-next span {
  position: relative;
  padding: 0 min(5.882vw, 30px);
  background-color: #f5f2e6;
}
.plan-store-note {
  font-size: 0.95em;
  line-height: 1.8;
  margin: 0.8em 0;
}
.plan-store-note strong {
  color: var(--color_green);
}
.group-first-price {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(5vw, 40px);
  color: var(--color_accent);
  font-size: min(6.5vw, 30px);
  font-weight: 700;
}
.group-first-price .txt-price-wrap {
  display: flex;
  align-items: center;
  margin-top: 0;
}
.group-first-price .txt-price {
  font-size: min(9vw, 48px);
}
.common-dl {
  display: flex !important;
  flex-wrap: wrap;
  width: min(75%, 380px);
  margin: 0 auto;
  padding-top: min(1.5vw, 20px) !important;
  font-size: min(3.5vw, 18px) !important;
  align-items: flex-end;
  justify-content: center;
}
.common-dl dt,
.common-dl dd {
  width: 50%;
  padding: 0 min(2vw, 20px);
}
.common-dl dt:first-of-type,
.common-dl dd:first-of-type {
  border-bottom: solid 1px #555;
}
.common-dl dt {
  display: flex;
  align-items: baseline;
  gap: min(3vw, 20px);
}
.monthly-fee {
  gap: 0 !important;
}
.monthly-fee .cell-red-pastel {
  padding: min(2vw, 10px) min(3vw, 20px) min(3vw, 20px) !important;
}
.monthly-fee .cell-red-pastel .txt-price {
  color: var(--color_hook_red);
  font-size: min(14vw, 40px);
}
.monthly-fee .cell-red-pastel .txt-price + .unit {
  font-size: min(4vw, 24px);
}
.group-ticket .txt-price-wrap,
.group-ticket .per-lesson {
  text-align: center;
}
.group-ticket .radius {
  background-color: #333333;
  padding: min(2.5vw, 10px) min(5vw, 30px) min(1.5vw, 10px);
  border-top-left-radius: min(4.5vw, 25px);
  border-top-right-radius: min(4.5vw, 25px);
}
.group-ticket .radius-left {
  border-top-left-radius: min(4.5vw, 25px);
}
.group-ticket td {
  padding: min(1.8vw, 8px) min(1vw, 5px) !important;
}
.lesson-timetable .txt-description {
  padding: min(5vw, 40px) min(3vw, 40px) min(4vw, 30px);
}
.lesson-timetable .txt-description .txt-bold {
  font-size: min(5vw, 25px);
}

/*////////// タブ切替（ラジオボタン + CSS） //////////*/
.plan-tabs {
  position: relative;
  margin: 1.6em auto;
  max-width: 1000px;
}
.plan-tabs > input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.plan-tabs__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 1em;
}
.plan-tab-label {
  position: relative;
  display: block;
  align-self: center;
  padding: 0.7em 0.4em;
  text-align: center;
  background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(216,216,216,1) 100%);
  color: var(--color_green);
  border: solid 2px var(--color_green);
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}
.plan-tab-label:hover {
  background-color: #fffbdd;
}
#tab-personal:checked ~ .plan-tabs__nav label[for="tab-personal"],
#tab-group:checked ~ .plan-tabs__nav label[for="tab-group"] {
  background: var(--color_green);
  border-radius: 0.6em;
  padding: 1.1em;
  color: #fff;
}
.plan-tabs__nav label[for="tab-personal"] {
  border-radius: 0.6em 0 0 0.6em;
  border-right: none;
}
.plan-tabs__nav label[for="tab-group"] {
  border-radius: 0 0.6em 0.6em 0;
  border-left: none;
}
.plan-tab-content { display: none; padding: 1em 0.4em; }
#tab-personal:checked ~ .plan-tab-content--personal {
  display: block;
}
#tab-group:checked ~ .plan-tab-content--group {
  display: block;
}
/* 店舗詳細ページ用：.store-plan 内では常に表示（タブ切替なし） */
.store-plan .plan-tab-content {
  display: block;
}

#tab-personal:checked ~ .plan-tabs__nav label[for="tab-personal"]::after,
#tab-group:checked ~ .plan-tabs__nav label[for="tab-group"]::after,
.plan-preview-title::after {
  border: 12px solid transparent;
  border-top: 12px solid var(--color_green);
  bottom: -22px;
  content: "";
  height: 0;
  left: 50%;
  position: absolute;
  visibility: visible;
  transform: translateX(-50%);
  width: 0
}

/*////////// 1回あたり表示 //////////*/
.per-lesson {
  font-size: min(2.5vw, 12px);
  text-align: right;
  color: #555;
  margin-bottom: 0;
  padding-right: min(1vw, 6px);
}
.per-lesson .per-price {
  font-family: var(--font_anton);
  color: rgba(0, 0, 0, 0.4);
  font-size: min(3.2vw, 20px);
  line-height: 0;
}

/*////////// 学割・一般の縦並びスタック（バクトレ参考） //////////*/
.price-stack {
  display: flex;
  flex-direction: column;
  gap: 0.4em;
}
.price-stack__item {
  position: relative;
  display: flex;
  align-items: center;
}
.price-stack__item + .price-stack__item {
  border-top: 1px dashed rgba(0, 0, 0, 0.15);
}
.price-stack__item > .icon-gakuwari,
.price-stack__item > .rank-label {
  flex-shrink: 0;
  margin: 0;
}
.price-stack__body {
  flex: 1;
  min-width: 0;
}
.price-stack__body .txt-price-wrap {
  margin-bottom: 0;
}
/* 1回あたりの料金は txt-price-wrap の右下に揃える */
.price-stack__body .per-lesson {
  text-align: right;
  margin-top: 0.1em;
  margin-bottom: 0;
}
.rank-label {
  display: inline-block;
  font-size: min(2.8vw, 12px);
  padding: 0.1em 0.5em;
  color: #696969;
  border-radius: 0.2em;
}

/*////////// 学割アイコン //////////*/
.icon-gakuwari {
  display: inline-block;
  width: auto;
  vertical-align: middle;
}

/*////////// 表が親コンテナを超えたら横スクロールでフィット //////////*/
.plan-table {
  max-width: 100%;
}
.plan-table table {
  margin: 0 auto;
}
.price-single .cont-ticket {
  display: inline-block;
  white-space: nowrap;
}
.price-single .price-info {
  display: block; 
  padding-top: 3px;
  font-size: min(2.2vw, 11px);
  line-height: 1.2;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: break-word;
  transform: rotate(-5deg);
}
.price-single .course-label {
  font-size: 0.75em;
  margin: 0.2em 0 0;
  white-space: nowrap;
}
.price-single .icon-gakuwari {
  width: min(9vw, 50px);
}

/*////////// 学割セル（オレンジ背景） //////////*/
.cell-tit-orange {
  background-color: var(--color_accent);
  color: #fff;
  text-align: center;
}
.cell-tit-gray .icon-gakuwari,
.cell-dark-gray .icon-gakuwari,
.cell-tit-orange .icon-gakuwari {
  display: inline-block;
  margin: 0;
}
.cell-tit-orange.radius {
  padding: min(2.5vw, 10px) min(5vw, 30px) min(1.5vw, 10px);
  border-top-left-radius: min(4.5vw, 25px);
  border-top-right-radius: min(4.5vw, 25px);
  font-size: min(3.922vw, 20px);
}
.txt-center .txt-price-wrap,
.txt-center .per-lesson {
  text-align: center;
}

/*////////// インラインCTA帯 //////////*/
.cta-band-inline {
  padding: 2em 1em;
  border-radius: 1em;
  margin: 2em auto;
  max-width: 760px;
}

/*////////// Kidsページ ヒーロー画像・トレーナー写真 //////////*/
.kids-hero-img {
  text-align: center;
  margin: 1.2em 0;
}
.kids-hero-img > img {
  width: min(70vw, 320px);
  height: auto;
  border-radius: 50%;
}
.trainer-photo {
  text-align: center;
  margin: 1em 0 1.4em;
}
.trainer-photo > img {
  width: min(86vw, 480px);
  height: auto;
  border-radius: 0.8em;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

body {
  font-size: clamp(12px, 3.5vw, 16px);
  line-height: 1.7;
  letter-spacing: 0.04em;
  -webkit-tap-highlight-color: transparent;
}

img {
  vertical-align: bottom;
}

[class^="icon-"] {
  line-height: 0;
}

.l-content {
  margin-bottom: 0;
  padding-top: min(1.961vw, 14px);
}

main {
  padding: 4em 0 6em;
}

main.page-top,
main.page-store,
main.page-voice {
  padding: 0;
}

.swell-block-fullWide.padding-lage {
  padding: 3.2em 0;
}

.swell-block-fullWide+.swell-block-fullWide {
  margin-top: 0;
}

.alignfull>.wp-block-cover__inner-container.no-bottom-space>* {
  margin-bottom: 0;
}

.alignfull.w-640>.wp-block-cover__inner-container {
  max-width: 640px;
}

.no-bottom-margin {
  margin-bottom: 0 !important;
}

.no-bottom-padding {
  padding-bottom: 0 !important;
}

.content-inner-wrap {
  padding: 0 2.941vw;
}

.content-inner-wrap-margin {
  padding: 0 6.863vw;
}

.content-inner-indent {
  align-self: center;
  width: 100%;
  padding: min(4.5vw, 40px) min(6.863vw, 50px) min(8.5vw, 80px);
}

.column {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5vw;
  padding: min(4vw, 30px);
}

.wp-block-table {
  margin: 1em 0;
}

.wide-600 {
  max-width: 600px;
  margin: 0 auto;
}

.wide-750 {
  max-width: 750px;
  margin: 0 auto;
}

.wide-90 {
  width: 90%;
  margin: 0 auto;
}

.bottom-space-none {
  padding-bottom: 0 !important;
}

.bottom-space-50 {
  padding-bottom: min(20vw, 190px);
}

.bottom-space-25 {
  padding-bottom: min(10vw, 95px);
}

.bottom-space-5 {
  padding-bottom: min(6vw, 30px);
}

.bottom-margin-3 {
  margin-bottom: min(3vw, 20px);
}

.bottom-margin-10 {
  margin-bottom: min(9.804vw, 80px);
}

.top-space-none {
  padding-top: 0;
}

.top-space-5 {
  padding-top: min(5vw, 50px);
}

.top-space-10 {
  padding-top: min(15vw, 100px);
}

.top-margin-5 {
  margin-top: min(3vw, 25px);
}

.top-margin-10 {
  margin-top: min(9.804vw, 80px) !important;
}

.bg-white {
  background-color: #fff;
}

.bg-verylight-gray {
  background-color: #f9f9f9;
}

.bg-light-gray {
  background-color: #f5f2e6;
}

.bg-dark-green {
  background-color: var(--color_bg_green);
}

.bg-red-pastel {
  background-color: #e5f6f7;
}

.bg-left-top-round {
  margin-top: -9vw !important;
  border-top-left-radius: min(9.804vw, 50px);
}

h2.h2-common {
  position: relative;
  margin-bottom: min(7vw, 50px);
  border-bottom: solid 3px #c0c0c0;
  font-size: clamp(14px, 6vw, 18px);
}

h2.h2-common::after {
  position: absolute;
  content: " ";
  display: block;
  width: min(40%, 300px);
  border-bottom: solid 3px var(--color_green);
  bottom: -3px;
}

h2.h2-common > span {
  display: block;
  padding: 0.5em;
}

.h2-type2 {
  position: relative;
  text-align: center;
  font-size: min(6vw, 40px);
  padding: min(6vw, 50px) min(3vw, 20px);
  line-height: 1.5;
}
.h2-type2.white {
  color: white;
}
.h2-type2.orange {
  color: var(--color_accent);
}
.h2-type2 .sub-txt {
  display: block;
  font-size: min(3.7vw, 16px);
  padding-bottom: min(2vw, 10px);
}
.h2-type2 .txt-big {
  font-size: min(12vw, 60px);
  line-height: 0;
  vertical-align: -0.05em;
}

.h2-two-lines + p {
  display: inline-block;
  position: relative;
  padding: min(3vw, 20px) 0;
  color: var(--color_green);
  font-size: min(4.902vw, 30px);
  font-weight: 700;
  z-index: 1;
}

.h2-two-lines + p::before,
.h2-two-lines + p::after {
  position: absolute;
  content: "";
  width: min(12vw, 50px);
  height: 2px;
  margin: auto;
  background-color: var(--color_green);
  top: 0;
  bottom: 0;
}

.h2-two-lines + p::before {
  left: -15vw;
}

.h2-two-lines + p::after {
  right: -15vw;
}

.h2-red-big {
  position: relative;
  margin-bottom: min(9vw, 70px);
  padding-bottom: min(5vw, 40px);
  text-align: center;
  color: var(--color_green);
  font-size: min(6.863vw, 40px);
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.h2-red-big.thin {
  margin-bottom: min(2vw, 20px);
}

.h2-red-big span {
  font-size: min(8.824vw, 50px);
}

.h2-red-big::after {
  position: absolute;
  content: "";
  width: min(14.706vw, 100px);
  height: min(0.49vw, 3px);
  margin: auto;
  background-color: var(--color_green);
  bottom: 0;
  left: 0;
  right: 0;
}

.h2-red-circle {
  display: flex;
  align-items: center;
  margin-top: min(6vw, 40px);
  margin-bottom: min(8vw, 30px);
  margin-left: -6vw;
  text-align: center;
  color: var(--color_main);
  font-size: min(6.863vw, 40px);
  letter-spacing: 0.1em;
  text-align: left;
}

.bg-dark-gray .h2-red-circle {
  color: #fff;
}

.h2-red-circle::before {
  display: block;
  content: "";
  width: min(6.471vw, 40px);
  height: min(6.471vw, 40px);
  margin-right: min(4.902vw, 30px);
  background-color: var(--color_green);
  border-radius: 100%;
}

.h2-red-circle.type2 {
  align-items: flex-start;
  margin-top: min(8vw, 50px);
}

.h2-red-circle span {
  display: block;
  font-size: min(3.922vw, 20px);
  line-height: 2;
  letter-spacing: 0.05em;
}

h3.h3-red {
  padding: 0 min(3vw, 20px) min(5vw, 40px);
  color: var(--color_green);
  font-size: min(4.902vw, 28px);
  text-align: center;
}

h3.h3-red.left {
  padding: 1em 0 0.5em 0;
  font-size: min(3.922vw, 20px);
  text-align: left;
}

h3.h3-bg-red {
  padding: min(2vw, 14px) min(3vw, 18px);
  background-color: var(--color_green);
  color: #fff;
  font-size: min(4vw, 20px);
  font-weight: 700;
}

h3.h3-bg-gray {
  padding: min(1vw, 6px);
  background-color: #636363;
  color: #fff;
  text-align: center;
}

.h3-common {
  width: min(50%, 300px);
  margin-left: -2.941vw;
  padding: 0.1em 1em;
  background-color: var(--color_main);
  border-radius: 0 50px 50px 0;
  color: #fff;
}

.h3-type3 {
  padding: .5em 1.5em;
  border-left: solid 5px var(--color_green);
  color: var(--color_green);
  margin-bottom: 1em;
}

.h3-left {
  background-color: var(--color_accent);
  width: min(63vw, 400px);
  margin-top: min(10vw, 60px);
  padding: .25rem 1rem;
  color: white;
  font-size: min(4vw, 20px);
  font-weight: 700;
  text-align: left;
  border-radius: 0 50vw 50vw 0;
}

.br-pc {
  display: none;
}

.speech {
  margin-bottom: min(6.863vw, 20px);
  font-weight: 700;
  text-align: center;
}

.speech > * {
  display: inline-block;
  position: relative;
  font-size: min(3.922vw, 20px);
}

.speech > *::before,
.speech > *::after,
.post_content .speech h3::before {
  position: absolute;
  content: "";
  width: 2px;
  height: 100%;
  background-color: #232323;
  bottom: 0;
}

.speech > *::before {
  transform: rotate(-22deg);
  left: -1.5em !important;
}
.speech > *::after {
  transform: rotate(22deg);
  right: -1.5em;
}
.speech.height > *::before {
  transform: rotate(-15deg);
  left: -2em !important;
}
.speech.height > *::after {
  transform: rotate(15deg);
  right: -2em;
}

.speech span {
  padding: 0 min(1vw, 10px);
  font-size: min(4.902vw, 28px);
}

.speech span.hook-yellow-bg {
  padding: 0 min(1vw, 5px);
  font-size: inherit;
}

.speech.red {
  color: var(--color_accent);
}

.speech.red > *::before,
.speech.red > *::after {
  background-color: var(--color_accent);
}

.speech.white {
  color: #fff;
}

.speech.white > *::before,
.speech.white > *::after {
  background-color: #fff;
}

.speech.narrowly {
  margin-bottom: min(2vw, 15px);
}

.speech-type2 {
  position: relative;
  display: inline-block;
  min-width: 240px;
  max-width: 100%;
  padding: 0 min(2.2vw, 25px) min(1.5vw, 20px);
  border-bottom: solid 2px var(--color_main);
  font-size: min(4.902vw, 28px);
  font-weight: 700;
  text-align: center;
}

.speech-type2::before,
.speech-type2::after {
  position: absolute;
  content: "";
  top: 100%;
  left: 50%;
}

.speech-type2::before {
  border: 10px solid transparent;
  border-top: 10px solid var(--color_main);
  transform: translateX(-50%);
}

.speech-type2::after {
  border: 12px solid transparent;
  border-top: 12px solid #fff;
  margin-top: -5px;
  transform: translateX(-50%);
}

.link-inline {
  display: inline-block;
  text-decoration: underline;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.btn-area {
  display: flex;
  justify-content: center;
  gap: min(2.941vw, 15px);
  width: min(87vw, 435px);
  margin: 0 auto;
}

.btn-area [class*=is-style-btn_] {
  width: 100%;
  margin: 0;
}

[class*=is-style-btn_] a {
  border-radius: 50px;
}

.btn-area [class*=is-style-btn_] a {
  width: 100%;
}

.area-share-btn {
  width: min(100%, 750px);
  margin: 5em auto 3em;
}

.btn-icon-under a,
.btn-icon-top a,
.btn-icon-right a,
.btn-icon-left a {
  min-width: 60%;
  padding-right: min(9vw, 50px);
}

.btn-icon-under a::after,
.btn-icon-top a::after,
.btn-icon-right a::after,
.btn-icon-left a::after {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  margin: auto;
  clip-path: polygon(45% 9%, 75% 51%, 45% 90%, 30% 90%, 60% 50%, 30% 10%);
  background-color: var(--color_green);
  top: 0;
  bottom: 0;
  right: min(4vw, 25px);
}

.btn-icon-under a:hover::after,
.btn-icon-top a:hover::after,
.btn-icon-right a:hover::after,
.btn-icon-left a:hover::after {
  background-color: #fff;
}

.btn-icon-under a::after {
  transform: rotate(90deg);
}

.btn-icon-top a::after {
  transform: rotate(-90deg);
}

.btn-icon-left a {
  padding-left: min(9vw, 50px);
  padding-right: .75em 1.5em;
}

.btn-icon-left a::after {
  transform: rotate(180deg);
  left: min(4vw, 25px);
  right: auto;
}

.btn-icon-under a:hover:after,
.btn-icon-top a:hover:after {
  background-color: #fff;
}

.btn-accordion {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: min(3vw, 30px);
  padding: .75em 1.5em;
  background: none;
  border: 1px solid var(--color_green);
  border-radius: min(1.4vw, 5px);
  color: var(--color_green);
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}

[class*=is-style-btn_].-size-s {
  font-size: clamp(12px, 3.5vw, 16px);
}

[class*=is-style-btn_] a.size-l,
.cta-btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(90%, 500px);
  margin: 0 auto;
  font-size: min(4.902vw, 25px);
  line-height: 1.35;
}

[class*=is-style-btn_] a.size-l > span,
.cta-btn a > span {
  display: flex;
  align-items: center;
}

[class*=is-style-btn_].green_ a.size-l,
.cta-btn a {
  background: linear-gradient(to bottom, #00c300 0%, #009600 100%);
}

[class*=is-style-btn_].orange_ a.size-l,
.cta-btn a {
  background: linear-gradient(to bottom, #ee5b00 0%, #f14d11 100%);
  border: solid 2px white;
}

[class*=is-style-btn_] a.grayout {
  background: #d4d4d4;
  pointer-events: none;
}

.form-btn a {
  min-width: var(--the-min-width);
}

.btn-store-name {
  display: block;
  font-size: clamp(10px, 3vw, 16px);
}

.icon-plus-circle,
.icon-minus-circle {
  display: block;
  width: min(5vw, 20px);
  height: min(5vw, 20px);
  margin-left: 0.4em;
}

.icon-plus-circle {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54.29 54.29"><path fill="%23e44141" d="M87.64,815.48h-13v13h-6v-13h-13v-6h13v-13h6v13h13Zm-16-28.14a25.14,25.14,0,1,0,25.14,25.14,25.17,25.17,0,0,0-25.14-25.14m0-2a27.14,27.14,0,1,1-27.15,27.14,27.14,27.14,0,0,1,27.15-27.14Z" transform="translate(-44.47 -785.34)"></path></svg>');
}

.icon-minus-circle {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54.29 54.29"><path fill="%23e44141" d="M206,815.48H174v-6h32Zm-16-28.14a25.14,25.14,0,1,0,25.15,25.14A25.17,25.17,0,0,0,190,787.34m0-2a27.14,27.14,0,1,1-27.14,27.14A27.15,27.15,0,0,1,190,785.34Z" transform="translate(-162.87 -785.34)"></path></svg>');
}

.icon-plus-circle.gray {
  width: min(12.255vw, 50px);
  height: min(12.255vw, 50px);
  margin: 1.5em auto;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54.29 54.29"><path fill="%23333333" d="M87.64,815.48h-13v13h-6v-13h-13v-6h13v-13h6v13h13Zm-16-28.14a25.14,25.14,0,1,0,25.14,25.14,25.17,25.17,0,0,0-25.14-25.14m0-2a27.14,27.14,0,1,1-27.15,27.14,27.14,27.14,0,0,1,27.15-27.14Z" transform="translate(-44.47 -785.34)"></path></svg>');
}

.icon, .icon svg {
  width: 1.6em;
  height: 1.6em;
  vertical-align: top;
}

.icon {
  margin-right: 0.5em;
}

.icon-mail {
  width: 1.4em;
  height: 1.4em;
  margin-left: 0.5em;
}

.icon-phone {
  margin-right: 0.1em;
}

.txt-red {
  color: var(--color_hook_red);
  font-weight: 700;
}

.txt-orange {
  color: var(--color_accent);
  font-weight: 700;
}

.txt-yellow {
  color: var(--color_hook_yellow);
}
.txt-yellow .txt-big {
  font-size: min(6vw, 40px);
  vertical-align: -0.05em;
  padding-right: .1em;
  line-height: 0;
}

.txt-discription {
  margin-bottom: min(4vw, 20px);
  padding: 0 min(4vw, 30px);
}

.txt-discription span {
  font-weight: 700;
}

.txt-spacious {
  line-height: 2.2;
  letter-spacing: 0.1em;
  padding: min(5vw, 30px) min(5vw, 30px) min(10vw, 80px);
}

.txt-amendment {
  padding: min(3vw, 20px) min(5vw, 70px);
}

.default-hide {
  display: none;
}

.paln-frame {
  position: relative;
  background-color: #fff;
  box-shadow: 0 2px 4px rgba(0,0,0,.05), 0 4px 4px -4px rgba(0,0,0,.1);
  border-radius: min(1.4vw, 5px);
}

.important-frame {
  width: 90%;
  padding: 1em;
  background-color: #fff5e6;
  border: solid 1px #ffd9a7;
  border-radius: min(0.8vw, 6px);
  font-size: 1rem;
}

.paln-frame h4 {
  padding: min(0.8vw, 5px);
  background-color: #333333;
  border-radius: min(1.4vw, 5px) min(1.4vw, 5px) 0 0;
  color: #fff;
  font-size: min(5.882vw, 30px);
  text-align: center;
  letter-spacing: 0.1em;
}

.paln-frame h4 span {
  padding: 0 0.15em;
  font-size: min(4.902vw, 28px);
}

.recomend-frame {
  outline: solid 2px var(--color_accent);
  outline-offset: -2px;
}

.recomend-frame h4 {
  background-color: var(--color_accent);
}

.h5-common {
  position: relative;
  margin: min(5vw, 40px) 0;
  padding: min(3vw, 20px);
  font-size: min(4.902vw, 28px);
  font-weight: 700;
  text-align: center;
}

.h5-common::after {
  position: absolute;
  content: "";
  width: min(14.706vw, 100px);
  height: min(0.49vw, 3px);
  margin: auto;
  background-color: var(--color_main);
  bottom: 0;
  left: 0;
  right: 0;
}

.icon-down {
  display: block;
  width: min(7.451vw, 38px);
  height: min(3.137vw, 16px);
  margin: 0 auto min(1.961vw, 20px);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  background-color: var(--color_green);
}

.label-circle {
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: min(20vw, 100px);
  height: min(20vw, 100px);
  background-color: var(--color_green);
  border: solid 2px white;
  border-radius: 100%;
  font-size: min(5vw, 25px);
  color: #fff;
  font-weight: 700;
  line-height: 1.1;
  top: min(10vw, 30px);
  right: 3vw;
}

.label-circle span {
  display: block;
}

.frame-balloon {
  position: relative;
  max-width: 500px;
  margin: min(2vw, 10px) auto 1em;
  padding: 1em 1.5em;
  background-color: #fff5e6;
  border-radius: min(1.5vw, 10px);
}

.frame-balloon::before {
  position: absolute;
  content: "";
  width: min(5vw, 30px);
  height: min(4vw, 22px);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  background-color: #fff5e6;
  top: -3.5vw;
  left: 50%;
  transform: translateX(-50%);
}

.frame-balloon h5 {
  position: relative;
  margin-bottom: .5em;
  color: var(--color_green);
  font-size: 1rem;
}

.frame-balloon h5::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 1px;
  background-color: var(--color_green);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.frame-balloon h5 span {
  position: relative;
  padding: .25em 1em;
  background-color: #fff5e6;
}

.frame-commn {
  overflow: hidden;
  background-color: #fff;
  border-radius: min(1.5vw, 10px);
}

.frame-commn h3 {
  padding: .5rem;
  background-color: var(--color_green);
  color: #fff;
  font-size: 1.1rem;
  text-align: center;
}

.frame-commn > div {
  font-size: 1rem;
  padding: .85em 1.5em 1.5em;
}

.frame-gray {
  background-color: #f8f8f4;
  border-radius: min(2vw, 6px);
}

.list-check li {
  position: relative;
  padding-left: min(9vw, 45px);
  font-size: 1.3rem;
  text-align: left;
  font-weight: 700;
}

.list-check li::before {
  position: absolute;
  content: "";
  width: min(7vw, 25px);
  height: min(7vw, 25px);
  background-color: #fff;
  border: solid 1px #d7d7d7;
  border-radius: min(1.2vw, 5px);
  top: .2rem;
  left: 0;
}

.list-check li::after {
  display: block;
  position: absolute;
  content: "\e923";
  font-family: icomoon !important;
  color: var(--color_green);
  font-size: min(7vw, 31px);
  line-height: .8;
  top: .1rem;
  left: min(.6vw, 5px);
}

.num-list {
  display: flex;
  flex-direction: column;
  gap: .5em;
  margin: 1em 0;
  padding: 1.5em;
}

.num-list li {
  counter-increment: item;
  position: relative;
  padding-left: 1.6em;
}

.num-list li::before {
  content: counter(item) ").";
  position: absolute;
  left: 0;
}

.form-info {
  max-width: 806px;
  margin: 0 auto;
  padding: min(3vw, 30px) 1em min(3vw, 30px);
  font-size: 1rem;
}

/* フォーム */

.search-form-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8em;
  margin-bottom: min(8vw, 60px);
  padding: 20px;
  background-color: white;
  border: solid 1px #c3c3c3;
  border-radius: min(1.5vw, 10px);
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
}

.search-form-wrap.for-middle {
  margin-top: min(5vw, 20px);
  margin-bottom: min(5vw, 20px);
}

.search-form-wrap > p {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(1.2vw, 10px);
}

.search-form-wrap .icon-search {
  font-size: min(4vw, 16px);
}

.search-form-wrap > form,
.search-form-wrap .search-box {
  flex: 1;
  max-width: 300px;
}

.load-wrap {
  position: relative;
}

.loading {
  position: absolute;
  display: none;
  width: 50px;
  height: 50px;
  margin: auto;
  cursor: progress;
  top: min(10vw, 50px);
  right: 0;
  left: 0;
  z-index: 1;
}

.loading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5em;
  height: 5em;
  margin-top: -2.5em;
  margin-left: -2.5em;
  border-radius: 50%;
  border: 0.25em solid #ccc;
  border-top-color: #333;
  animation: spinner 1.5s linear infinite;
}

@keyframes spinner {
  to {
    transform: rotate(360deg);
  }
}

/* ベーススタイル */
* {
  box-sizing: border-box;
}

.wpcf7 {
  font-family: var(--swl-font_family);
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* フォームタイトル部分 */
.wpcf7 h2 {
  text-align: center;
  color: #333;
  margin-bottom: 30px;
  font-size: 28px;
  font-weight: bold;
}

/* ラジオボタン（お問い合わせ目的選択） */
.wpcf7-radio {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.wpcf7-list-item {
  margin: 0 !important;
}

.wpcf7-list-item label {
  display: flex;
  align-items: center;
  padding: 15px 20px;
  background: #f8f9fa;
  border: 2px solid #e9ecef;
  border-radius: 8px;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 500;
}

.wpcf7-list-item label:hover {
  background: #e3f2fd;
  border-color: #2196f3;
}

.wpcf7-list-item input[type="radio"] {
  margin-right: 12px;
  accent-color: #ff6b6b;
  transform: scale(1.2);
  outline: none;
  border: none;
}

.wpcf7-list-item input[type="radio"]:focus {
  outline: none;
  box-shadow: none;
}

.wpcf7-list-item input[type="radio"]:checked + .wpcf7-list-item-label {
  color: #ff6b6b;
  font-weight: bold;
}

.wpcf7-list-item label:has(input:checked) {
  background: #fff0f0;
  border-color: #ff6b6b;
}

/* テーブルスタイル */
.inquiry {
  width: 100%;
  margin-top: 2em;
  border-collapse: collapse;
  background: #fff;
  overflow: hidden;
}

.inquiry th {
  background: #f3f3f3;
  padding: 1rem;
  text-align: left;
  vertical-align: top;
  width: 300px;
  border-bottom: 1px solid #fff;
  font-weight: 700;
  font-size: 1rem;
}

.inquiry td {
  padding: 18px 20px;
  border-bottom: 1px solid #f0f0f0;
  background: #ffffff;
}

/* 必須・任意ラベル */
.haveto, .any {
  display: inline-block;
  margin-right: 8px;
  padding: .25rem .5rem;
  border-radius: 4px;
  font-size: .7rem;
  font-weight: bold;
  color: white;
  line-height: 1;
  letter-spacing: 0.5px;
}

.haveto {
  background: #ff4757;
}

.any {
  background: #858585;
}

/* 入力フィールド共通スタイル */
.wpcf7-text, 
.wpcf7-email, 
.wpcf7-tel, 
.wpcf7-textarea, 
.wpcf7-select,
.wpcf7-date {
  width: 100%;
  padding: .5rem;
  border: 2px solid #e9ecef;
  border-radius: 6px;
  font-size: 1rem;
  font-family: inherit;
  background: #ffffff;
}

.wpcf7-text:focus, 
.wpcf7-email:focus, 
.wpcf7-tel:focus, 
.wpcf7-textarea:focus, 
.wpcf7-select:focus,
.wpcf7-date:focus {
  outline: none;
}

/* プレースホルダー */
.wpcf7-text::placeholder,
.wpcf7-email::placeholder,
.wpcf7-tel::placeholder,
.wpcf7-textarea::placeholder {
  color: #adb5bd;
  font-style: italic;
}

/* セレクトボックス */
.wpcf7-select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 12px center;
  background-repeat: no-repeat;
  background-size: 1.5rem;
  padding-right: 2.5rem;
  appearance: none;
}

/* 日付入力フィールド */
.wpcf7-date {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23666'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'/%3e%3c/svg%3e");
  background-position: right 12px center;
  background-repeat: no-repeat;
  background-size: 1.4rem;
  padding-right: 1rem;
  position: relative;
  /* iOS Safari対応：高さを確保 */
  min-height: 44px;
  line-height: 1.5;
}

.wpcf7-date::-webkit-calendar-picker-indicator {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: none;
  color: transparent;  
  cursor: pointer;
  opacity: 0;
  z-index: 2;
}

.wpcf7-date::-webkit-inner-spin-button {
  display: none;
  -webkit-appearance: none;
}

.wpcf7-date::-webkit-clear-button {
  display: none;
  -webkit-appearance: none; 
}

.wpcf7-date::-webkit-datetime-edit {
  background: none;
  /* iOS Safari対応：テキスト表示を確保 */
  line-height: 1.5;
  padding: 0;
  display: block;
}

.wpcf7-date::-webkit-datetime-edit-fields-wrapper {
  background: none;
}

.wpcf7-date::-webkit-datetime-edit-text {
  background: none;
}

/* Firefoxでの日付入力 */
.wpcf7-date::-moz-focus-inner {
  border: 0;
}

/* 日付入力のプレースホルダー風スタイル */
.wpcf7-date:invalid {
  color: #adb5bd;
}

.wpcf7-date:valid {
  color: #333;
}

/* フォーム幅制御 */
.form-width-m {
  width: 44%;
  max-width: 300px;
}

.form-width-m .wpcf7-date {
  width: 100%;
}

/* 日時選択部分の特別スタイル */
.abc {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.abc .wpcf7-form-control-wrap {
  flex: 1;
  min-width: 120px;
}

.abc br {
  display: none;
}

.form-width-m .wpcf7-select,
.form-width-m .wpcf7-date {
  font-size: 1rem;
}

/* テキストエリア */
.wpcf7-textarea {
  min-height: 120px;
  resize: vertical;
  font-family: inherit;
  line-height: 1.5;
}

/* 経験選択のラジオボタン */
.radio1 {
  display: flex;
  gap: .5rem;
  flex-direction: row;
  margin-bottom: 0;
}

.radio1 .wpcf7-list-item label {
  background: #f8f9fa;
  border: 2px solid #e9ecef;
  border-radius: 25px;
  padding: 10px 20px;
  min-width: 80px;
  justify-content: center;
  font-size: 1rem;
}

/* 同意部分 */
#accep-wrap {
  background: #fff0f0;
  padding: 20px;
  border-radius: 8px;
  margin: 1.5em 0;
  border-left: 4px solid #ff6b6b;
  text-align: center;
}

#accep-wrap p {
  margin: 0 0 10px 0;
  font-size: 1rem;
  line-height: 1.6;
}

#accep-wrap a {
  font-size: 1rem;
  font-weight: 700;
  text-decoration: underline;
}

.wpcf7-acceptance {
  margin-bottom: 10px;
}

.wpcf7-acceptance input[type="checkbox"] {
  margin-right: 10px;
  accent-color: #ff6b6b;
  transform: scale(1.2);
  outline: none !important;;
  border: none !important;; 
}

.wpcf7-acceptance input[type="checkbox"]:focus {
  outline: none !important;
  box-shadow: none !important; 
}

.wpcf7-acceptance input[type="checkbox"]:checked {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

.wpcf7-acceptance input[type="checkbox"]:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

/* 送信ボタン */
.wpcf7-submit {
  width: 100%;
  padding: 18px 30px;
  background: var(--color_green);
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(33, 33, 33, 0.3);
  letter-spacing: 1px;
}

.wpcf7-submit:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(33, 33, 33, 0.4);
}

.wpcf7-submit:disabled {
  background: #adb5bd;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* エラー・成功メッセージ */
.wpcf7-response-output {
  margin-top: 20px;
  padding: 15px;
  border-radius: 6px;
  font-weight: 500;
}

.wpcf7-mail-sent-ok {
  background: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
  background: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

/* バリデーションエラー */
.wpcf7-not-valid {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1) !important;
}

/* スピナー */
.wpcf7-spinner {
  border: 2px solid #f3f3f3;
  border-top: 2px solid #ff6b6b;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  animation: spin 1s linear infinite;
  display: inline-block;
  margin-left: 10px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* 隠されたグループの表示制御 */
.wpcf7cf-hidden {
  display: none !important;
}

/* レスポンシブデザイン */
@media (max-width: 768px) {
  .wpcf7 {
    padding: 15px;
    margin: 10px;
  }
  
  .inquiry th {
    width: auto;
    display: block;
    padding: 12px 15px;
    border-bottom: none;
  }
  
  .inquiry td {
    display: block;
    padding: 15px;
    border-bottom: none;
  }
  
  .inquiry tr {
    display: block;
    margin-bottom: .5em;
  }

  .inquiry tr:last-of-type {
    margin-bottom: 0;
  }
  
  .abc {
    flex-direction: column;
    align-items: stretch;
  }
  
  .abc .wpcf7-form-control-wrap {
    min-width: auto;
  }
  
  .radio1 {
    gap: 10px;
  }

  .radio1 .wpcf7-list-item {
    width: 50%;
  }
  
  .radio1 .wpcf7-list-item label {
    justify-content: flex-start;
  }
  
  .wpcf7-radio {
    gap: 8px;
  }
  
  .wpcf7-list-item label {
    padding: 12px 15px;
  }
}

@media (max-width: 480px) {
  .wpcf7 {
    padding: 10px;
  }
  
  .inquiry th,
  .inquiry td {
    padding: 10px 12px;
  }
  
  .wpcf7-submit {
    font-size: 16px;
    padding: 15px 20px;
  }
}

/* フォーカス時のアクセシビリティ向上（キーボード操作時のみ表示） */
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible {
  outline: 2px solid #ff6b6b;
  outline-offset: 2px;
}

/* タップ/クリック時はアウトラインを非表示 */
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
  outline: none;
}

/* 印刷時のスタイル調整 */
@media print {
  .wpcf7 {
    box-shadow: none;
    border: 1px solid #000;
  }
  
  .inquiry th {
    background: #f0f0f0 !important;
    color: #000 !important;
  }
  
  .wpcf7-submit {
    display: none;
  }
}

/* Contact Form 7用の非表示クラス */
.wpcf7 select.d-none {
    display: none !important;
    visibility: hidden;
}

.wpcf7 input.d-none {
    display: none !important;
    visibility: hidden;
}

.form-width-s {
    width: min(34%, 200px);
}

.inform-txt {
  padding-bottom: 1rem;
}

.form-h3 {
  padding: 1.5rem 1rem .5rem;
  font-size: 1rem;
}

/* テーブル */

table {
  width: 100%;
  table-layout: auto;
}

table li {
  position: relative;
  padding-left: 1.5em;
}

table li::before {
  position: absolute;
  content: "・";
  left: 0;
}

table .txt-bold {
  font-size: min(2.745vw, 14px);
  letter-spacing: 0.02em;
}

.mousikomi,
.checkbox-privacy {
  max-width: 600px;
  margin: 0 auto;
}

.mousikomi tr {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin-bottom: min(4vw, 20px);
}

.mousikomi tr > td:first-of-type {
  margin-bottom: 0.4em;
}

.layout-row {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  width: 100%;
}

.layout-row.bottom-margin {
  margin-bottom: 0.8em;
}

.mousikomi span.b {
  font-weight: 700;
}

.mousikomi .select.select-required {
  background-color: #fff5e6;
}

.plan-table {
  width: 100%;
  max-width: 600px;
}

.plan-table th,
.plan-table td:not(.cell-tit) {
  padding: 0 min(1vw, 5px);
  border: solid min(0.588vw, 3px) #fff;
  font-size: min(3.922vw, 16px);
}

.plan-table.price-single td:not(.cell-tit) {
  padding: min(1vw, 5px);
}

.commn-table.wp-block-table {
  font-size: min(2.353vw, 12px);
}

.commn-table.wp-block-table th {
  padding: 0;
  font-size: min(3.922vw, 18px);
  vertical-align: middle;
}

.commn-table.wp-block-table td {
  padding: .4em 0;
  line-height: 1.4;
  vertical-align: middle;
}

.wp-block-table th.th-no-border {
  border-top: none;
  border-left: none;
}

.commn-table .txt-bold {
  font-size: min(2.745vw, 14px);
}

th.cell-bakutore {
  border: solid 3px #00a0a5;
  border-bottom: none;
}

td.cell-bakutore {
  border-left: solid 3px #00a0a5;
  border-right: solid 3px #00a0a5;
}

.table-check {
  width: min(5.686vw, 30px);
  height: min(5.686vw, 30px);
  margin: .5em auto;
  background-repeat: no-repeat;
  background-position: center;
}

.commn-table tbody > tr:last-of-type td.cell-bakutore {
  border-bottom: solid 3px #00a0a5;
}

.nocheck {
  width: min(4vw, 30px);
  height: min(4vw, 30px);
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42.38 5"><path fill="%23c2c2c2" d="M397.19,818H354.81v-5h42.38Z" transform="translate(-354.81 -812.98)"></path></svg>');
}

.circle-double {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58.35 58.35"><path fill="%23e44141" d="M242.52,552.53a29.18,29.18,0,1,1,29.17-29.18A29.21,29.21,0,0,1,242.52,552.53Zm0-53.35a24.18,24.18,0,1,0,24.17,24.17A24.2,24.2,0,0,0,242.52,499.18Zm0,41.07a16.9,16.9,0,1,1,16.89-16.9A16.92,16.92,0,0,1,242.52,540.25Zm0-28.79a11.9,11.9,0,1,0,11.89,11.89A11.91,11.91,0,0,0,242.52,511.46Z" transform="translate(-213.34 -494.18)"></path></svg>');
}

.circle {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 53.87 53.87"><path fill="%23ffaeae" d="M242.52,616.51a26.94,26.94,0,1,1,26.93-26.93A27,27,0,0,1,242.52,616.51Zm0-48.87a21.94,21.94,0,1,0,21.93,21.94A22,22,0,0,0,242.52,567.64Z" transform="translate(-215.58 -562.64)"></path></svg>');
}

.triangle {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 59.26 51.32"><path fill="%23919191" d="M272.15,736.44H212.89l29.63-51.33Zm-50.6-5h41.94l-21-36.33Z" transform="translate(-212.89 -685.11)"></path></svg>');
}

.cross {
  width: min(5vw, 22px);
  height: min(5vw, 22px);
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48.43 48.43"><path fill="%23919191" d="M246.05,650.54l20.68,20.68-3.53,3.54-20.68-20.68-20.68,20.68-3.54-3.54L239,650.54,218.3,629.86l3.54-3.53L242.52,647l20.68-20.68,3.53,3.53Z" transform="translate(-218.3 -626.33)"></path></svg>');
}

.price-info {
  position: absolute;
  width: min(21vw, 100px);
  height: min(6.2vw, 30px);
  clip-path: polygon(100% 8%, 100% 72%, 52% 78%, 49% 100%, 41% 80%, 0 84%, 0 0);
  background-color: var(--color_accent);
  color: #fff;
  font-size: clamp(10px, 2.549vw, 14px);
  top: 1.5vw;
  left: -7vw;
  z-index: 1;
}

.price-single .price-info {
  line-height: 1.7;
  top: -1.6vw;
}

.price-split {
  position: relative;
}

.price-split > p:first-of-type {
  position: absolute;
  margin: auto;
  top: min(3vw, 12px);
  left: min(1.5vw, 10px);
}

.txt-size-s {
  font-size: min(2.745vw, 14px);
}

.txt-size-ss {
  padding-right: 0.5em;
  font-size: clamp(10px, 2vw, 12px);
  font-weight: normal;
}

.txt-description {
  padding: min(4vw, 30px) min(3vw, 40px);
  font-size: min(3.529vw, 18px);
  text-align: center;
}

.txt-description.left {
  text-align: left;
}

.txt-description.txt-big {
  font-size: min(5vw, 28px);
}

.txt-bold {
  font-size: min(3.922vw, 20px);
  font-weight: 700;
}

.txt-bold-s {
  font-weight: 700;
}

.txt-strong {
  padding: min(3vw, 20px) 0;
  font-size: min(6.863vw, 40px);
}

.txt-price-wrap {
  padding-right: min(1vw, 6px);
  text-align: right;
}

.txt-price {
  font-family: var(--font_anton);
  font-size: min(5.882vw, 28px);
  letter-spacing: 0.01em;
  font-weight: normal !important;
}

.txt-strong .txt-price {
  font-size: min(7.843vw, 50px);
  font-weight: normal;
}

.txt-strong .unit {
  font-size: min(5.882vw, 28px);
}

.txt-price.thin {
  font-size: min(5.392vw, 28px);
}

.unit {
  font-weight: 700;
  font-size: min(2.8vw, 18px);
}
.unit.has-tax {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  font-size: min(6vw, 23px);
  line-height: 1.5;
  padding-top: min(3vw, 20px);
  padding-left: 2px;
}

.unit .tax {
  font-size: 10px;
  line-height: 0;
}

.emphasis {
  display: inline;
  position: relative;
  margin: 0 0.2em;
  background: linear-gradient(transparent 60%, #fff685 60%);
}

.plan-table td.cell-tit {
  padding: min(2.5vw, 10px) min(5vw, 30px) min(1.5vw, 10px);
  background-color: #333333;
  border-right: solid min(0.588vw, 3px) #fff;
  border-top-left-radius: min(4.5vw, 25px);
  border-top-right-radius: min(4.5vw, 25px);
  color: #fff;
  font-size: min(3.922vw, 20px);
}

.txt-price-wrap .txt-small,
.plan-table td.cell-tit .txt-small {
  display: inline-block;
  padding-left: 8px;
  font-size: min(2.5vw, 12px);
}

.cnt-big {
  font-size: min(5.882vw, 30px);
  line-height: 1.2;
  padding: 0 3px;
}

.cell-tit-red {
  background-color: var(--color_green);
  color: #fff;
  text-align: center;
}

.cell-black {
  background-color: #000;
}

.cell-dark-gray,
.cell-tit-gray {
  background-color: #616161;
  color: #fff;
  font-weight: 700;
  text-align: center;
}

.cell-tit-gray.arrow,
.cell-tit-red {
  position: relative;
}

.price-single .cell-tit-gray.arrow {
  width: 20%;
  line-height: 1;
}

/*////////// 料金プラン用アイコン（FasUser/FasUsers/FasChild/FasChildren） //////////*/
.plan-icon {
  display: inline-block;
  vertical-align: -0.12em;
  width: 1em;
  height: 1em;
  margin-right: 0.3em;
  fill: #ffdab0;
}
/* バッジ用アイコン（人気・お得）はラベル色を継承して小さく */
.plan-icon--badge {
  fill: currentColor;
  width: 0.95em;
  height: 0.95em;
  margin-right: 0.2em;
  vertical-align: -0.1em;
}

/*////////// CTAバナー画像 //////////*/
.cta-bnr {
  overflow: hidden;
  max-width: 480px;
  margin: 0 auto 2em;
  background-color: white;
  border-radius: min(3vw, 20px);
}
.bnr-top-balloon {
  position: relative;
  width: 100%;
  margin-bottom: 0;
  padding: min(4vw, 12px) min(5vw, 20px);
  background-color: #057c80;
  color: #fff65a;
  font-size: min(4vw, 18px);
  font-weight: 700;
}
.bnr-top-balloon:before {
  border: 12px solid transparent;
  border-top: 12px solid #057c80;
  bottom: -22px;
  content: "";
  height: 0;
  left: 50%;
  position: absolute;
  visibility: visible;
  transform: translateX(-50%);
  width: 0
}
.cta-bnr img {
  display: inline-block;
  width: 100%;
  max-width: 480px;
  height: auto;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

/*////////// トップページ料金プラン プレビュー（冒頭部分のみ表示・展開可能） //////////*/
.plan-preview {
  position: relative;
  margin: 1.5em auto 0;
  max-width: 1100px;
}
.plan-preview-toggle {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.plan-preview-title {
  position: relative;
  background-color: var(--color_green);
  padding: 1.1em;
  border-radius: 0.6em;
  margin-bottom: 0.6em;
  text-align: center;
}
.plan-preview-title > span {
  display: inline-block;
  padding: 0.3em 1.2em;
  background-color: var(--color_green);
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
  font-size: clamp(15px, 4.2vw, 19px);
}
/* タイトル右上に絶対配置するレッスン画像 */
.plan-preview-icon {
  position: absolute;
  top: -9vw;
  right: 4vw;
  width: clamp(70px, 21vw, 110px);
  height: auto;
  border-radius: 50%;
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  pointer-events: none;
}
/* PC表示時の配置調整：タイトルから大きく浮き出させる */
@media (min-width: 768px) {
  .plan-preview-icon {
    top: -50px;
    right: 40px;
    width: 140px;
  }
}
@media (min-width: 1100px) {
  .plan-preview-icon {
    top: -60px;
    right: 180px;
    width: 160px;
  }
}
.plan-preview-content {
  position: relative;
  max-height: 600px;
  overflow: hidden;
  transition: max-height 0.4s ease;
}
.plan-preview-content::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 240px;
  background: linear-gradient(to bottom, #f5f2e600 0%, #f5f2e6e6 60%, #f5f2e6 100%);
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 2;
}
.plan-preview-toggle:checked ~ .plan-preview-content {
  max-height: 20000px;
}
.plan-preview-toggle:checked ~ .plan-preview-content::after {
  opacity: 0;
}
.plan-preview-btn {
  display: block;
  width: min(90%, 640px);
  margin: 0 auto;
  padding: 0.7em 2.5em;
  background: white;
  border: solid 2px var(--color_accent);
  color: var(--color_accent);
  cursor: pointer;
  font-size: min(5vw, 20px);
  font-weight: bold;
  text-align: center;
  transform: translateY(-20px);
  position: relative;
  box-shadow: 5px 5px 0 rgba(0,0,0,0.25);
  z-index: 2;
  transition: box-shadow 0.2s;
}
.plan-preview-btn::after {
  position: absolute;
  content: "";
  display: inline-block;
  vertical-align: -0.1em;
  width: 0.85em;
  height: 0.85em;
  margin-left: 0.5em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transition: transform 0.2s;
  top: 50%;
  right: min(5vw, 40px);
  transform: translateY(-50%);
}
.plan-preview-btn:hover {
  box-shadow: 10px 10px 0 rgba(0,0,0,0.2);
}
.plan-preview-btn__show { display: inline; }
.plan-preview-btn__hide { display: none; }
/* 展開後はボタン自体を非表示にする（閉じるボタンは出さない） */
.plan-preview-toggle:checked ~ .plan-preview-btn {
  display: none;
}

.plan-preview-btn__show span {
  font-size: min(3.5vw, 14px);
  display: block;
}
/* プレビュー内では plan-tab-content の display:none を打ち消す */
.plan-preview .plan-tab-content {
  display: block !important;
}

/*////////// 親子割テーブル（中央寄せ・列均等幅） //////////*/
.plan-table--pc {
  text-align: center;
}

/* 初回体験 親子割テーブル（price-single以外の plan-table--pc）の「50分」セル幅 */
.plan-table--pc:not(.price-single) tbody th.cell-dark-gray {
  width: 34%;
}

/*////////// 親子割（チケット）の2表をPCで横並び・SPで縦並び //////////*/
.plan-pc-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.4em;
  justify-content: center;
  margin: 1em auto;
  padding: 0 min(4vw, 30px) 0;
}
.plan-pc-item {
  flex: 1 1 0;
  min-width: min(280px, 100%);
  max-width: 600px;
}
.plan-pc-item .plan-table {
  width: 100%;
}
@media (max-width: 768px) {
  .plan-pc-grid {
    flex-direction: column;
    gap: 1em;
  }
  .plan-pc-item {
    flex: 1 1 100%;
    max-width: 100%;
  }
}
.plan-table--pc.price-single .cell-tit-gray.arrow,
.plan-table--pc.price-single .cell-tit-popular.arrow,
.plan-table--pc.price-single .cell-tit-recommend.arrow {
  width: 42%;
}

/*////////// 12回（人気）24回（お得）の回数セル背景色 //////////*/
.cell-tit-popular,
.cell-tit-recommend {
  color: #fff;
  font-weight: 700;
  text-align: center;
  position: relative;
}
.cell-tit-popular  { background-color: #32424b; }
.cell-tit-recommend { background-color: #833f3f; }

/* 同じ位置に配置されている回数列の幅 */
.price-single .cell-tit-popular.arrow,
.price-single .cell-tit-recommend.arrow {
  width: 20%;
  line-height: 1;
}

/* arrow（三角の付け根） */
.cell-tit-popular.arrow,
.cell-tit-recommend.arrow {
  position: relative;
}
.cell-tit-popular.arrow::after,
.cell-tit-recommend.arrow::after {
  position: absolute;
  content: "";
  width: min(2.157vw, 13px);
  height: min(3.922vw, 24px);
  margin: auto;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  top: 0;
  bottom: 0;
  right: -1.4vw;
  z-index: 1;
}
.cell-tit-popular.arrow::after  { background-color: #32424b; }
.cell-tit-recommend.arrow::after { background-color: #833f3f; }

.cell-strong-red {
  background-color: #cce8e9;
  font-weight: 700;
  text-align: center;
}

.cell-tit-gray.arrow::after,
.cell-tit-red.arrow::after {
  position: absolute;
  content: "";
  width: min(2.157vw, 13px);
  height: min(3.922vw, 24px);
  margin: auto;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  top: 0;
  bottom: 0;
  right: -1.4vw;
  z-index: 1;
}

.cell-tit-gray.arrow::after {
  background-color: #616161;
}

.cell-tit-red.arrow::after {
  background-color: var(--color_green);
}

.plan-table th.cell-dark-gray {
  padding-top: min(1.8vw, 8px);
  padding-bottom: min(1vw, 5px);
}

.cell-light-gray {
  background-color: #f7f7f7;
}

.cell-medium-gray {
  background-color: #ececec;
}

.cell-other-gray {
  background-color: #919191;
  color: #fff;
}

.cell-red {
  background-color: #cce8e9;
}

.cell-red-pastel {
  background-color: #ffede3;
}

.cell-yellow {
  background-color: #ffffba
}
.cell-yellow .txt-price-wrap {
  color: var(--color_hook_red);
}

.icon-gakuwari {
  width: min(13vw, 42px);
  height: min(6.961vw, 29px);
  margin-right: 0;
}

.icon-gakuwari.mini {
  width: min(9vw, 50px);
}

.add-note {
  position: relative;
}

.add-note::after {
  position: absolute;
  content: "※";
  font-size: min(2vw, 10px);
  top: -1.5em;
  right: -0.5em;
}

.note-wrap {
  padding: 0 min(4vw, 30px) min(6vw, 30px);
  font-size: min(3vw, 12px);
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.note-wrap.important-frame {
  padding: 1em;
  display: flex;
  flex-direction: column;
  gap: min(2vw, 5px);
  padding: 1em;
}

.note-wrap > p {
  position: relative;
  padding-left: min(3.2vw, 12px);
}

.note-wrap > p::before {
  position: absolute;
  content: "※";
  left: 0;
}

.txt-option {
  font-size: min(4vw, 16px);
  font-weight: 700;
}

.txt-option .txt-price {
  font-size: min(6.5vw, 20px);
}

.memo {
  background-color: #f4f7f6;
  border-left: 8px solid var(--color_green);
  box-shadow: var(--swl-box_shadow);
  min-width: 6em;
  padding: .75em 1em;
  width: 90%;
  font-size: min(3vw, 12px);
  text-align: center;
}

.memo .txt-bold {
  font-size: inherit;
}

.memo.txt-size-m {
  font-size: min(3.4vw, 16px);
}

.memo h5 {
  color: var(--color_green);
  font-size: min(4vw, 18px);
  padding-bottom: min(2vw, 5px);
}


.normal-wrap {
  padding: 0 min(4vw, 30px) min(6vw, 30px);
}

.cont-ticket {
  font-size: min(4.902vw, 28px);
  line-height: 1;
}

.course-label {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  color: #fff31e;
  font-size: min(2.5vw, 14px);
  line-height: 1.8;
  text-align: center;
  left: 0;
}

.price-single .course-label {
  position: relative;
}

.icon-clown,
.icon-toku {
  margin-right: 0.1em;
}

/*////////// ヘッダー //////////*/

@media (min-width: 960px) and (min-width: 600px) {
  #fix_header.-series .c-headLogo {
      width: 50px;
  }

  .-series .c-headLogo {
      margin-right: .85em;
  }

  .c-headLogo__picture source {
    min-width: min(6vw, 120px);
    display: block;
  }
}

@media (min-width:960px) and (max-width:1399px) {
  .c-headLogo__picture source {
    width: 40px;
    display: block;
  }
}

.c-gnav a::after {
  height: 1px;
}

.c-gnav>.menu-item>a .ttl {
  font-size: min(1vw, 14px);
}

.c-gnav>.menu-item>a:after {
  bottom: 20px;
}

.c-gnav a::after {
  background-color: #fff;
}

.c-gnav > .-current > a {
  font-weight: 700;
}

.c-gnav > .-current > a::after {
  transition: none;
}

.c-widget__title.-spmenu {
  display: none;
}

/*////////// パンくず //////////*/

.p-breadcrumb.-bg-on {
  border-bottom: solid 1px #e2e2e2;
}

.p-breadcrumb__list {
  flex-wrap: wrap;
}

.single .p-breadcrumb__item:last-child>span.p-breadcrumb__text {
  display: block!important;
  opacity: 1;
  white-space: pre-wrap;
}

/*////////// メインビジュアル //////////*/

.p-mainVisual {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 70vh;
}

.p-mainVisual__inner {
  height: 100%;
}

.p-mainVisual__textLayer {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  left: 50%;
  position: absolute;
  top: 0;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 100%;
  z-index: 3
}

.p-mainVisual__video {
  display: block;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  pointer-events: none;
  position: relative;
  width: 100%;
  z-index: -1;
}

.top-main-read {
  text-align: center;
  font-size: min(5vw, 25px);
  font-weight: 700;
  letter-spacing: 0.1em;
}

/* スクロール誘導 */

.p-mainVisual__scroll {
  display: none;
  bottom: 16px;
  color: #fff;
  left: 50%;
  opacity: .75;
  position: absolute;
  text-align: center;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  transition: opacity .25s;
  z-index: 9
}

.p-mainVisual__scroll {
  bottom: 24px
}

.p-mainVisual__scroll:hover {
  opacity: 1
}

.p-mainVisual__scrollArrow {
  -webkit-animation: FloatVertical 3s ease-in-out infinite alternate;
  animation: FloatVertical 3s ease-in-out infinite alternate;
  display: block;
  height: 20px;
  margin: 0 auto;
  width: 20px
}

.p-mainVisual__scrollLabel {
  display: block;
  font-size: 12px;
  letter-spacing: var(--swl-letter_spacing,1px);
  line-height: 1;
  padding-top: 4px
}

/*////////// コンテンツ //////////*/

.tit-sub {
  padding: min(2vw, 10px) min(0.98vw, 5px) min(0.8vw, 5px);
  font-size: min(2.353vw, 14px);
  text-align: center;
}

.border-top-red {
  border-top: solid 3px var(--color_green);
}

.tit-sub h1 {
  font-size: clamp(10px, 3.922vw, 30px);
  color: var(--color_bg_green);
  letter-spacing: 0.1em;
}

#page-common .tit-sub {
  padding: min(2vw, 30px) min(2vw, 30px);
}

#page-common .tit-sub h1 {
  padding: min(1vw, 10px);
  font-size: min(6vw, 30px);
  color: var(--color_green);
}

.example-list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(2vw, 15px);
  z-index: 2;
}

.example-list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: min(4vw, 20px);
  background-color: #fff;
  border-radius: min(1.961vw, 14px);
  box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
  font-size: clamp(10px, 3.137vw, 14px);
  letter-spacing: 0.01em;
}

@media (min-width: 750px) {
  .example-list {
    grid-template-columns: repeat(4, 1fr);
  }
}

.example-list li img {
  margin: min(0.5vw, 5px) 0 min(1.2vw, 8px);
}

.txt-poin {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(13vw, 50px);
  color: var(--color_green);
  font-size: clamp(12px, 3.922vw, 16px);
  font-weight: 700;
  text-align: center;
}

.txt-size-common {
  font-size: 1rem;
}

.txt-thin {
  transform: scale(0.9,1);
}

.txt-strong-red {
  color: #ff6b00;
}

.txt-tips {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: min(4vw, 20px);
  color: var(--color_green);
  font-size: clamp(10px, 2.745vw, 14px);
}

.txt-tips.white {
  color: #fff;
}

.solution-wrap {
  margin-bottom: min(30vw, 206px);
}

#about-concept.solution-wrap {
  margin-bottom: min(39vw, 206px);
}

.solution {
  position: absolute;
  width: 100%;
  margin-top: -10vw;
  color: #fff;
  font-size: min(3.922vw, 20px);
  font-weight: 700;
  text-align: center;
}

.solution p {
  position: absolute;
  margin: auto;
  z-index: 1;
  top: 17vw;
  left: 0;
  right: 0;
  line-height: 1.4;
}

.solution span {
  font-size: min(5.882vw, 30px);
}

.solution::after {
  position: absolute;
  content: "";
  width: min(100%, 1020px);
  height: min(40vw, 235px);
  margin: auto;
  clip-path: polygon(0 0, 100% 0%, 100% 77%, 50% 100%, 0 77%);
  background-color: var(--color_green);
  top: 0;
  left: 0;
  right: 0;
}

.solution.normal-type {
  margin-top: auto;
  bottom: 0;
}

.solution.normal-type p {
  top: min(7vw, 50px);
}

.solution.normal-type::after {
  height: min(34vw, 200px);
}

.txt-center {
  text-align: center;
}

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
    to {
    transform: translateX(-100%);
  }
}

.scroll-infinity-wrap {
  display: flex;
  overflow: hidden;
  margin-bottom: -4vw;
}

.scroll-infinity-list {
  display: flex;
  list-style: none;
  padding: 0
}

.scroll-infinity-list--left {
  animation: infinity-scroll-left 80s infinite linear 0.5s both;
}

.scroll-infinity-item {
  width: calc(100vw / 1.2);
}

.scroll-infinity-item > img {
  width: 100%;
}

.point-list > li {
  display: flex;
  flex-direction: column;
}

.point-list > li:first-child {
  counter-reset: number 0;
}

.point-header {
  overflow: hidden;
  align-self: flex-start;
  width: min(93.137vw, 640px)
}

.point-list > li:nth-child(odd) .point-header {
  border-radius: 0 min(6.373vw, 30px) min(6.373vw, 30px) 0;
}

.point-list > li:nth-child(even) .point-header {
  align-self: flex-end;
  border-radius: min(6.373vw, 30px) 0 0 min(6.373vw, 30px);
}

.point-list h3 {
  width: 100%;
  padding: min(3.3vw, 18px) min(6vw, 36px);
  background-color: var(--color_green);
  color: #fff;
  font-size: min(3.922vw, 20px);
}

.img-point {
  position: relative;
  width: 100%;
  height: auto;
}

.point-list > li .img-point::after {
  position: absolute;
  counter-increment: number 1;
  content: counter(number, decimal-leading-zero) "";
  color: #fff;
  font-size: min(24.51vw, 160px);
  font-family: var(--font_anton);
  line-height: 0.75;
  letter-spacing: 0.04em;
  bottom: 0;
}

.point-list > li:nth-child(odd) .img-point::after {
  left: min(3vw, 20px);
}

.point-list > li:nth-child(even) .img-point::after {
  right: min(3vw, 20px);
}

.point-list > li:last-child .content-inner-indent {
  padding-bottom: 0;
}

.layout-right {
  display: flex;
  justify-content: flex-end;
  margin: min(3vw, 30px) 0 0;
}

#price-tab {
  width: min(104%, 750px);
  margin-top: min(5vw, 40px);
  margin-bottom: min(3vw, 20px);
  margin-left: -2vw;
  color: #fff;
  font-size: min(3.922vw, 20px);
  font-weight: 700;
  text-shadow: 0 1px 0 rgba(255,255,255,0.6);
}

#price-tab ul {
  position: relative;
  display: flex;
  z-index: 1000;
}

#price-tab li {
  width: 33.3%;
  padding: min(3vw, 15px);
  text-align: center;
  cursor: pointer;
}

#price-tab li:hover {
  box-shadow: inset 0 0 min(3vw, 6px) rgba(0,0,0,0.3);
}

#bronze-tab {
  position: relative;
  background: linear-gradient(to bottom, #d8987c 0%,#b87f6b 100%);
  border-radius: min(4vw, 10px) 0 0 min(4vw, 10px);
  color: #792618;
}

#silver-tab {
  position: relative;
  background: linear-gradient(to bottom, #dfdfdf 0%,#b6b6b6 100%);
  color: #6a6969;
}

#gold-tab {
  position: relative;
  background: linear-gradient(to bottom, #d1bd75 0%,#ab9a61 100%);
  border-radius: 0 min(4vw, 10px) min(4vw, 10px) 0;
  color: #726431;
}

#bronze-tab.on,
#silver-tab.on,
#gold-tab.on {
  color: #fff;
  text-shadow: none;
  pointer-events: none;
}

#bronze-tab.on {
  background: #a6512d;
}

#silver-tab.on {
  background: #6e7679;
}

#gold-tab.on {
  background: #b7a306;
}

#bronze-tab.on:after,
#silver-tab.on:after,
#gold-tab.on:after {
  position: absolute;
  content: "";
  width: min(4.2vw, 32px);
  height: min(3vw, 24px);
  margin: auto;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  bottom: -3vw;
  left: 0;
  right: 0;
}

#bronze-tab.on:after {
  background-color: #a6512d;
}

#silver-tab.on:after {
  background-color: #6e7679;
}

#gold-tab.on:after {
  background-color: #b7a306;
}

#bronze-tab.on:before,
#silver-tab.on:before,
#gold-tab.on:before {
  position: absolute;
  content: "";
  width: 100%;
  height: 120%;
  margin: auto;
  background: transparent;
  border-radius: min(1.6vw, 10px);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

#bronze-tab.on:before {
  border: solid min(5vw, 10px) #a6512d;
}

#silver-tab.on:before {
  border: solid min(5vw, 10px) #6e7679;
}

#gold-tab.on:before {
  border: solid min(5vw, 10px) #b7a306;
}

#price-silver, #price-gold {
  display: none;
}

#tab-bg {
  position: fixed;
  display: none;
  width: 100vw;
  height: min(25vw, 120px);
  background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 80%,rgba(255,255,255,0) 100%);
  top: 40px;
  left: 0;
  z-index: 999;
}

.fixed {
  position: fixed;
  top: 55px;
  width: 100%;
  background-color: white;
  z-index: 1000;
}

#price-tab.fixed {
  width: 98vw;
  margin: auto;
  left: 0;
  right: 0;
}

#price-tab.fixed #tab-bg {
  display: block;
}

.ticket-wrap-margin {
  margin-top: 250px;
}

#ticket-wrap .tips-frame {
  margin: 0;
}

#ticket-wrap .tips-frame p {
  font-weight: unset;
}

/* キャンペーン */

.initiation-fee {
  margin-top: 0.3em;
  font-size: min(4.902vw, 28px);
  font-weight: 700;
  text-align: center;
}

.initiation-fee .txt-price {
  font-size: min(7.843vw, 50px);
  font-weight: normal;
}

.bnr {
  width: min(100%, 640px);
  margin: 0 auto min(5vw, 30px);
  transition: filter .25s;
}

.bnr a {
  display: block;
  border: solid 1px #000;
  box-shadow: 2px 2px 10px 0 rgba(0,0,0,0.5);
}

.bnr a:hover {
  filter: brightness(1.1);
}

/*////////// リズスポについて //////////*/

#about-concept {
  min-height: min(120vw, 600px);
}

.dreams-list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: min(5vw, 30px);
  z-index: 2;
}

.dreams-list li {
  display: flex;
  gap: min(3vw, 20px);
  width: 100%;
}

.dreams-list li img {
  display: block;
  width: min(23.529vw, 120px);
  height: min(35.294vw, 180px);
}

.label-red {
  display: inline-block;
  margin-left: -6.863vw;
  margin-top: min(3vw, 10px);
  margin-bottom: min(6.863vw, 40px);
  padding: 1.2vw 3.5vw 1.2vw 6.863vw;
  background-color: var(--color_green);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.person-about {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(4.5vw, 50px) 0;
  text-align: center;
  transform: translateY(-10vw);
}
@media (min-width: 769px) {
  .person-about {
    transform: translateY(-63px);
  }
}

.person-about img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tit-representative-wrap {
  color: white;
  font-weight: 700;
}

.tit-champion {
  font-size: min(5vw, 30px) !important;
}

/* 代表者写真：丸トリミング用ラッパー */
.person-photo {
  flex-shrink: 0;
  width: min(50vw, 300px) !important;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
  background: #fff;
}

.person-about > div {
  width: 100%;
}

/* 経歴・実績 */
.person-career {
  padding: min(3vw, 20px) min(4vw, 28px);
  border-radius: 0.6em;
}

.person-career dt {
  font-size: min(4vw, 18px);
  font-weight: 700;
  color: var(--color_green);
  border-bottom: solid 2px var(--color_green);
  padding-bottom: 0.4em;
  margin-bottom: 0.6em;
}

.person-career dd {
  margin: 0;
  font-size: min(3.6vw, 16px);
  line-height: 1.8;
  color: #333;
}

.person-about .speech-type2 {
  width: 100%;
  min-width: auto;
  margin-bottom: min(3vw, 20px);
  padding: 0 0 min(0.5vw, 5px) 0;
  font-size: min(3.333vw, 24px);
  text-align: left;
}

.person-about .speech-type2 > span {
  font-size: min(4.902vw, 40px);
}

.person-about .speech-type2 > span > span.txt-unit {
  font-size: min(4vw, 30px);
}

.person-about .speech-type2::before,
.person-about .speech-type2::after {
  left: 25%;
}

.person-about .speech-type2::before {
  border: 7px solid transparent;
  border-top: 7px solid var(--color_main);
}

.person-about .speech-type2::after {
  border-top: 9px solid #e2e2e2;
}

.person-about h2 {
  font-size: min(3.922vw, 25px);
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.person-about h2 .txt-big {
  font-size: min(4.902vw, 40px);
}

.person-comment {
  padding: 0 min(2vw, 40px) min(6vw, 50px);
  color: white;
}

#representative .person-career dt {
  color: white;
  border-bottom: solid 1px white;
}

#representative .person-career dd {
  color: white;
  font-size: min(3.2vw, 14px);
  padding: min(3vw, 20px);
}

#representative .person-career {
  color: white;
  background: rgba(0, 0, 0, 0.05);
}

#representative .person-career li {
  position: relative;
  padding-left: 1em;
}
#representative .person-career li::before {
  position: absolute;
  content: "・";
  left: 0;
}

/*////////// 技 //////////*/

.technique-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(154px, 1fr));
  justify-content: center;
  gap: clamp(30px, 30px + 15*(100vw - 375px) / 1225, 33px) clamp(20px, 20px + 15*(100vw - 375px) / 1225, 25px);
  list-style-type: none;
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.technique-list li {
  overflow: hidden;
  position: relative;
  display: list-item;
  background-color: #000;
  outline: solid 1px #636363;
  outline-offset: -1px;
  border-radius: min(0.8vw, 5px) min(0.8vw, 5px) 0 0;
}

/*////////// レッスンの流れ //////////*/

.lesson-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(2vw, 20px) 1.5%;
  margin-bottom: min(5vw, 30px);
}

.lesson-list li {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(48.5%, 300px);
}

.lesson-list li::after {
  position: absolute;
  content: "";
  width: min(2.941vw, 15px);
  height: min(5.294vw, 27px);
  margin: auto;
  clip-path: polygon(100% 50%, 0 0, 0 100%);
  background-color: var(--color_green);
  top: 0;
  bottom: 0;
  left: -1vw;
  z-index: 1;
}

.lesson-list li:first-child::after {
  display: none;
}

.lesson-tit {
  border-radius: min(0.8vw, 5px) min(0.8vw, 5px) 0 0;
}

.lesson-txt {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  padding: .8em;
  background-color: #fff;
  border-radius: 0 0 min(0.8vw, 5px) min(0.8vw, 5px);
  font-size: clamp(10px, 3.137vw, 14px);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  letter-spacing: 0.02em;
}

/*////////// インストラクター //////////*/

.tips-frame {
  width: 100%;
  margin-bottom: min(8.333vw, 40px);
  padding: min(2.941vw, 15px) min(4vw, 30px);
  background-color: #efefef;
  border: solid 1px #e2e2e2;
  border-radius: min(0.98vw, 10px);
}

.tips-frame p {
  margin-bottom: 0.2em;
  font-weight: 700;
}

.rank-list {
  display: flex;
  gap: 1.6em;
  margin: 0 0.9em;
}

.rank-list li {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
}

.instructors-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  justify-content: center;
  gap: min(15vw, 100px) min(5vw, 40px);
  list-style-type: none;
  width: 92%;
  margin: min(20vw, 150px) auto min(12vw, 100px);
  padding: 0;
}

.instructors-list li {
  position: relative;
  display: list-item;
  background-color: white;
  padding: 0 0 min(1.2vw, 10px);
  border-radius: 0.4em;
}

.instructors-list li a,
.instructors-list li .modal-open {
  display: block;
}

.instructors-list li a > img,
.instructors-list li .modal-open > img {
  width: 100%;
  height: auto;
  border-radius: 0.4em 0.4em 0 0;
}

.tap-area-shadow {
  box-shadow: 2px 5px min(3vw, 10px) 0 rgba(0, 0, 0, 0.15);
}

.instructors-data {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  padding-top: min(1.2vw, 5px);
  text-align: center;
}

.instructors-rank {
  display: inline-block;
  position: relative;
  width: min(2.451vw, 12px);
  height: min(3.039vw, 15px);
}

.instructors-rank.bronze::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25.42 31.53"><path fill="%23a6512d" d="M249.2,475.18,240,470.05a1.81,1.81,0,0,0-1.72,0L229,475.18a1.76,1.76,0,0,1-2.62-1.54v-28a1.77,1.77,0,0,1,1.77-1.77h21.88a1.77,1.77,0,0,1,1.77,1.77v28A1.77,1.77,0,0,1,249.2,475.18Z" transform="translate(-226.41 -443.88)"></path></svg>');
  background-repeat: no-repeat;
  top: 0;
  left: 0;
}

.instructors-rank.silver::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25.42 31.53"><path fill="%236d838a" d="M249.2,475.18,240,470.05a1.81,1.81,0,0,0-1.72,0L229,475.18a1.76,1.76,0,0,1-2.62-1.54v-28a1.77,1.77,0,0,1,1.77-1.77h21.88a1.77,1.77,0,0,1,1.77,1.77v28A1.77,1.77,0,0,1,249.2,475.18Z" transform="translate(-226.41 -443.88)"></path></svg>');
  background-repeat: no-repeat;
  top: 0;
  left: 0;
}

.instructors-rank.gold::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25.42 31.53"><path fill="%23b59424" d="M249.2,475.18,240,470.05a1.81,1.81,0,0,0-1.72,0L229,475.18a1.76,1.76,0,0,1-2.62-1.54v-28a1.77,1.77,0,0,1,1.77-1.77h21.88a1.77,1.77,0,0,1,1.77,1.77v28A1.77,1.77,0,0,1,249.2,475.18Z" transform="translate(-226.41 -443.88)"></path></svg>');
  background-repeat: no-repeat;
  top: 0;
  left: 0;
}

.instructor-location-name {
  margin-top: min(2vw, 10px);
}

.instructor-location-name span {
  font-size: min(3vw, 16px);
  font-weight: 700;
}

.instructor-language-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  display: inline-block;
  padding: 4px 8px;
  background: #3498db;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  border-radius: 4px;
  white-space: nowrap;
  z-index: 2;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* 吹き出しの三角形 */
.instructor-language-badge::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 30%;
  transform: translateX(-50%);
  border-width: 12px 10px 0 0;
  border-style: solid;
  border-color: #3498db transparent transparent;
}

.instructors-name {
  display: inline-block;
  color: var(--color_green);
  font-weight: 700;
  text-align: center;
}

.instructors-list li a.btn-insta,
.single-instructor a.btn-insta  {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  width: min(11.275vw, 50px);
  height: min(11.275vw, 50px);
  padding: 0.5em;
  background: linear-gradient(45deg, #fec41e 10%, #f30005 50%, #c0009f 90%);
  border-radius: 100%;
  font-size: 1.5rem;
  color: #fff;
  bottom: min(6vw, 30px);
  left: 0;
}

/* インストラクターの外国語対応バッジ（吹き出し） */
.instructor-language-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  display: inline-block;
  padding: 4px 8px;
  background: #3498db;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  border-radius: 4px;
  white-space: nowrap;
  z-index: 2;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* 吹き出しの三角形 */
.instructor-language-badge::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 30%;
  transform: translateX(-50%);
  border-width: 12px 10px 0 0;
  border-style: solid;
  border-color: #3498db transparent transparent;
}

.is-style-btn_normal a {
  font-size: min(4vw, 20px);
}

.is-style-btn_normal.red_.btn-icon-right a::after {
  position: absolute;
  content: "";
  width: 15px;
  height: 15px;
  margin: auto;
  clip-path: polygon(45% 9%, 75% 51%, 45% 90%, 30% 90%, 60% 50%, 30% 10%);
  background-color: #fff;
  top: 0;
  bottom: 0;
  right: min(4vw, 25px);
}

.icon-insta {
  margin-right: 0;
}

/* モーダル */

.modal-open {
  cursor: pointer
}

.modal {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 3
}

.modal-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,.8);
  top: 0;
  left: 0
}

.modal-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  width: min(95%, 750px);
  height: auto;
  padding: 1em 1em 2em;
  background: #fff;
  border-radius: min(3vw, 10px);
  top: 70px;
  bottom: 15vw;
  left: 50%;
  transform: translate(-50%,0);
}

.modal-close,
.voice-modal-close {
  position: absolute;
  width: min(25vw, 40px);
  height: min(25vw, 40px);
  margin: auto;
  background: var(--color_green);
  border: 1px solid var(--color_green);
  border-radius: 80px;
  top: -2vw;
  right: min(2vw, 30px);
  cursor: pointer;
}

.modal-content .instructor-layout {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.modal-content .instructor-layout > p {
  text-align: center;
}

.modal-content .instructor-layout > p.name {
  padding-bottom: min(2.2vw, 10px);
  font-size: min(4.902vw, 28px);
  font-weight: 700;
}

.modal-content .instructor-layout #modal-name {
  display: block;
  font-size: min(4.902vw, 28px);
  line-height: 1.5;
}

.modal-content .instructor-layout #modal-kana {
  display: block;
  font-size: clamp(10px, 2.2vw, 12px);
  line-height: 1.1;
}

.modal-close::after,
.voice-modal-close::after {
  position: absolute;
  content: "";
  width: min(3vw, 13px);
  height: min(3vw, 13px);
  margin: auto;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48.43 48.43"><path fill="%23ffffff" d="M246.05,650.54l20.68,20.68-3.53,3.54-20.68-20.68-20.68,20.68-3.54-3.54L239,650.54,218.3,629.86l3.54-3.53L242.52,647l20.68-20.68,3.53,3.53Z" transform="translate(-218.3 -626.33)"></path></svg>');
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

#modal-main-image {
  width: min(18vw, 80px);
  height: min(18vw, 80px);
  margin: 0 auto min(2vw, 15px);
  border: solid 1px #ededed;
  border-radius: 50%;
}

#modal-main-image.main-img-large {
  width: min(100%, 380px);
  height: auto;
  margin: 0 auto min(5vw, 25px);
  border: none;
  border-radius: 0.4em;
}

.trainer-data {
  overflow-y: scroll;
  flex: auto;
  width: 100%;
  padding: 0 min(3vw, 40px);
}

.trainer-data::-webkit-scrollbar {
  width: 3px;
  height: 3px;
}

.trainer-data::-webkit-scrollbar-thumb {
  --bg-opacity: 1;
  background-color: #333;
}

.trainer-data dl {
  display: flex;
  flex-wrap: wrap;
}

.trainer-data dt,
.trainer-data dd {
  width: 100%;
}

.trainer-data dt {
  font-weight: 700;
}

.trainer-data dt:first-of-type {
  margin-top: 0 !important;
}

.trainer-data .dt-rank {
  width: auto;
  min-width: min(16vw, 80px);
  padding-left: 0.4em;
}

.trainer-data .dd-rank {
  width: auto;
  font-weight: 700;
}


.txt-label-bronze,
.txt-label-silver,
.txt-label-gold {
  display: inline-block;
  padding: 0 0.6em;
  border-radius: min(0.5vw, 3px);
  color: #fff;
}

.txt-label-bronze {
  background-color: #a6512d;
}

.txt-label-silver {
  background-color: #6e7679;
}

.txt-label-gold {
  background-color: #b7a306;
}

.tit-in-profile {
  margin-top: 2em;
  padding: 0 0.6em 0.2em;
  color: var(--color_green);
}

.tit-in-profile + dd {
  padding: 1em;
  font-size: min(3vw, 14px);
}

.profile-item {
  width: 100%;
}

/* スライダー */

.instructor-slider {
  position: relative;
  width: 39vh;
  max-width: 380px;
  margin: 0 auto;
}

.swiper-instructor {
  width: min(34vh, 500px);
  padding-bottom: min(7vw, 27px);
}

.instructor-slider .swiper {
  position: static;
  max-width: 320px;
}

.swiper-instructor img {
  width: min(80vw, 320px);
  height: auto;
}

.swiper {
  text-align: center;
}

.swiper-button-next,
.swiper-button-prev {
  width: min(10.588vw, 50px);
  height: min(10.588vw, 50px);
  padding: 0;
  background: #333333;
  border: solid 1px #666;
  border-radius: 100%;
  top: 50%;
}

.swiper-button-next:after,
.swiper-button-prev:after {
  position: absolute;
  width: min(2.255vw, 10px);
  height: min(4.608vw, 22px);
  margin: auto;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.56 16.13"><path fill="%23ffffff" d="M195.37,463.43a1,1,0,0,1-.78-1.62l5.07-6.44-5.07-6.45a1,1,0,1,1,1.57-1.24l5.56,7.07a1,1,0,0,1,0,1.23l-5.56,7.07A1,1,0,0,1,195.37,463.43Z" transform="translate(-194.37 -447.3)"></path></svg>');
  background-repeat: no-repeat;
  border: none;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  transform: none;
}

.swiper-button-prev:after {
  transform: scaleX(-1);
}

.swiper-horizontal>.swiper-pagination-bullets {
  bottom: min(8vw, 40px);
}

.swiper-pagination-bullet-active {
  background: #333;
}

.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
  display: none;
}

.instructor-slider .swiper-slide {
  align-self: center;
}

video {
  width: 100%;
  height: auto;
}

.instructor-slider video {
  /* aspect-ratio: 1 / 1; */
  max-height: 32vh;
}

/* インストラクター詳細ページ */

.sub-store-name {
  font-size: clamp(12px, 3vw, 16px);
}

#instructor-skill-movies {
  margin-bottom: 4em;
}

.instructor-movies-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5em;
}

.instructor-movies-list li {
  width: 90%;
  max-width: 640px;
}

#single-instructor .trainer-data {
  width: min(100%, 800px);
  margin: 0 auto 3em;
  padding: 0;
}

dl.tit-red dt.tit-in-profile {
  color: var(--color_green);
  font-size: clamp(14px, 6vw, 18px);
  border-bottom: solid 2px var(--color_green);
}

.instructor-sns-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  padding: 0 0 2em;
}

.single-instructor a.btn-insta {
  position: static;
}

/*////////// 店舗 //////////*/

[id^="area-"],
[id^="prefecture-"] {
  scroll-margin-top: var(--top-offset, 0px);
}

.area-navigation {
  display: flex;
  gap: .65em;
  width: min(90%, 400px);
  margin: 2em auto 0;
}

.area-navigation > i {
  font-size: min(5vw, 26px);
  color: #7e7e7e;
}

.area-navigation > p {
  width: 100%;
}

.prefecture-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5em;
  margin-bottom: min(7vw, 30px);
}

.prefecture-links a {
  position: relative;
  width: calc(33% - 0.5em);
  padding: .5em 1em;
  border: solid 1px var(--color_green);
  font-weight: bold;
}

.prefecture-links a::after {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  margin: auto;
  clip-path: polygon(45% 9%, 75% 51%, 45% 90%, 30% 90%, 60% 50%, 30% 10%);
  background-color: var(--color_green);
  top: 0;
  bottom: 0;
  right: min(4vw, 25px);
  transform: rotate(90deg);
}

#store .h2-section-head {
  margin-bottom: 2.5em;
}

.area-title {
  margin: 2.5em 0 1.5em;
  padding: .5em 1em;
  color: var(--color_green);
  background-color: #f2f2f2;
  border-bottom: solid 2px var(--color_green);
  font-size: min(4vw, 20px);
}

.stores-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(42vw, 1fr));
  gap: 5vw 4vw;
  width: 100%;
  margin: 0 auto min(10vw, 50px);
}

.stores-list.filter-target {
  margin-bottom: min(10vw, 50px) !important;
}

.stores-list li {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  width: 100%;
  background-color: #fff;
  border-radius: min(1.961vw, 14px);
}

.prefecture-header {
  border-radius: 0 !important;
  grid-column: 1 / -1;
}

.store-photo {
  overflow: hidden;
  width: min(93.333vw, 571px);
  height: min(50.98vw, 312px);
  margin-left: -2.941vw;
  border-radius: 0 min(6.373vw, 30px) min(6.373vw, 30px) 0;
}

.store-info {
  display: flex;
  flex-wrap: wrap;
  padding: 0 min(3vw, 20px);
  font-size: clamp(10px, 2.6vw, 12px);
}

.store-info > p,
.store-info > div {
  width: 100%;
}

.store-info .width-100 > p {
  width: 100%;
}

.stores-data.minimum {
  flex: 1;
  padding: 1em 0;
  font-size: min(3vw, 12px);
  font-weight: 700;
}

.stores-data.minimum .srore-address {
  padding-bottom: 0.5em;
  border-bottom: solid 1px #c0c0c0;
  font-weight: normal;
}

.stores-data.minimum .srore-access {
  padding: 0.5em 0;
}

.stores-data.minimum .srore-tel {
  display: flex;
  flex-wrap: wrap;
  gap: .25em;
  padding: 0.5em 0;
  border-top: solid 1px #c0c0c0;
}

.srore-tel-inner {
  width: 100%;
}

.stores-data.minimum .srore-time {
  padding-top: 0.5em;
  border-top: solid 1px #c0c0c0;
}

.srore-info dt {
  width: 30%;
  font-weight: 700;
}

.stores-list .srore-info dd {
  width: 70%;
}

.stores-list .swell-block-button {
  margin: 0 auto min(4vw, 30px);
  font-size: clamp(10px, 3vw, 16px);
}

dl.store-info {
  justify-content: space-between;
  margin-top: 2em;
  margin-bottom: 3em;
  margin-right: -2.941vw;
  padding-right: 0;
  font-size: clamp(12px, 3.137vw, 16px);
}

.store-info dt {
  width: 20%;
  padding: 0.5em 0 0.5em 1em;
  font-weight: 700;
}

.store-info dd {
  display: flex;
  flex-wrap: wrap;
  gap: .25em 1em;
  width: 80%;
  padding: 0.5em 2.941vw 0.5em 0.5em;
}

.store-info dt:nth-of-type(odd),
.store-info dd:nth-of-type(odd) {
  background-color: #f7f7f7;
}

.google-map-wrap {
  width: 100%;
  height: min(30vw, 300px);
}

.google-map-wrap iframe {
  width: 100%;
  height: 100%;
}

/*////////// 店舗詳細 //////////*/

#top_fv.top_fv--store .wp-block-cover__inner-container {
  padding: 0 min(10vw, 30px) min(8vw, 50px);
}

.root-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5em;
  list-style: none;
  padding: 0;
  margin: 0;
}

.root-list li {
  counter-increment: list-counter;
  position: relative;
  padding-left: 1.5em;
}

.root-list li::before {
  content: counter(list-counter) ".";
  position: absolute;
  left: 0;
  color: var(--color_green);
  font-weight: bold;
}

.img-root {
  border: solid 1px #000;
}

.txt-root {
  padding-top: 1em;
  font-size: clamp(10px, 3.137vw, 14px);
  font-weight: 700;
  line-height: 1.4;
}

.ti-widget {
  width: 100% !important;
}

.store-last-txt {
  background-image: url(../images/bg_store_last.webp);
  background-size: cover;
  color: white;
}

.store-last-txt .wide-750 {
  padding-bottom: 1.5em;
}

.store-last-txt .is-style-btn_line a {
  min-width: auto;
  background: none;
  border: 1px solid white;
  color: white;
}

#ticket-wrap .tips-frame {
  margin-bottom: 0;
}

.store-column {
  display: flex;
  flex-direction: column;
  gap: min(3vw, 20px) 0;
}

/*////////// よくある質問 //////////*/

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 1em;
  width: min(100%, 960px);
  margin: 0 auto;
}

.faq-list li {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* アコーディオン形式の faq 項目 */
.faq-accordion {
  width: 100%;
}

.faq-accordion .plan-accordion {
  font-size: min(3.8vw, 16px);
}

.faq-accordion__body {
  padding: 1.2em 1.4em;
  background: #fff;
  border: 1px solid rgba(0, 160, 165, 0.18);
  border-top: none;
  border-radius: 0 0 0.6em 0.6em;
  margin-top: -0.2em;
  font-size: min(3.5vw, 16px);
}

.faq-accordion__body > *:last-child {
  margin-bottom: 0;
}

.faq-accordion__body p {
  margin: 0 0 0.8em;
}

.faq-accordion__body p:last-child {
  margin-bottom: 0;
}

.faq-accordion__body li {
  position: relative;
  padding-left: 1em;
}

.faq-accordion__body li::before {
  position: absolute;
  content: "・";
  left: 0;
}

.faq-q,
.faq-a {
  position: relative;
}

.faq-q {
  padding: 0.8em 3em 0.8em 3em;
  background-color: var(--color_green);
  color: #fff;
  font-weight: 700;
}

.faq-q::before,
.faq-a::before {
  position: absolute;
  font-family: var(--font_anton);
  font-size: min(4.902vw, 28px);
  font-weight: normal;
  left: 0.7em;
}

.faq-q::before {
  content: "Q";
  top: min(1.2vw, 2px);
}

.faq-a {
  padding: 1em 3em 1em 3em;
  background-color: #fff;
}

.faq-a::before {
  content: "A";
  color: var(--color_green);
  top: min(2vw, 5px);
}

#faq .swell-block-button {
  margin: 0.8em 0 1em;
}

/*////////// ブログ //////////*/

.post-type-archive-blog .u-mt-40 {
  margin-top: 0.5em !important;
}

.single-blog .l-container {
  max-width: 960px;
}

.single-blog .c-postTitle {
  align-items: normal;
}

.single-blog main {
  padding: 1.5em 0 2em;
}

.single-blog .l-mainContent__inner>.post_content {
  margin: 2em 0;
}

.widget_blog_category_widget {
  margin-bottom: 3em;
}

.widget_blog_category_widget a {
  display: inline-block;
  padding: .5em;
  color: #333;
}

.widget_blog_category_widget a::before {
  content: "\e92f";
  padding-right: .5em;
  font-family: icomoon !important;
}

.cta-h3.speech h3::before {
  display: none !important;
}

@media not all and (min-width: 600px) {
  .c-postThumb__cat {
      -webkit-transform: scale(1);
      transform: scale(1);
  }
}

.single-blog .wp-block-video {
  padding: 3em 0;
}

/* JSによって「is-vertical」がついた時だけ、PCで幅制限 */
@media screen and (min-width: 960px) {
  video.is-vertical {
    max-width: 350px;
  }
}

/* 画面下部・固定ボタン */

#fix_bottom_menu {
  position: fixed;
  display: none;
  width: 100%;
  bottom: -60px;
  left: 0;
  z-index: 9;
  transition: bottom 0.4s ease;
}

/* 一定量スクロール後に表示 */
.is-scrolled #fix_bottom_menu {
  bottom: 0;
}

/* 店舗詳細ページではコンテンツ上部の余白を0に */
.single-store #content.l-content {
  padding-top: 0;
}

/* SWELL親テーマの ::before / ::after 疑似要素がクリックを阻害するため打ち消し */
#fix_bottom_menu::before,
#fix_bottom_menu::after {
  content: none !important;
  display: none !important;
  pointer-events: none !important;
}

/* TOPページのセクションアイコンと統一したインラインSVGアイコン */
#fix_bottom_menu .bottom-menu-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: #fff;
}

#fix_bottom_menu .bottom-menu-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

@media not all and (min-width: 960px) {

  [data-scrolled=true] [data-spfix="1"] .c-headLogo__img.-top {
      display: block;
  }

  #fix_bottom_menu {
      display: block;
      padding-bottom: calc(env(safe-area-inset-bottom)* .5);
  }
}

#fix_bottom_menu .menu_list {
  display: flex;
  height: 50px;
  min-height: 45px;
  padding: 0;
}

#fix_bottom_menu .menu-item,
#fix_bottom_menu .menu-item a {
  width: 100%;
  height: 100%;
}


#fix_bottom_menu .menu-item {
  flex: auto;
}

#fix_bottom_menu .menu-item a {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  color: white;
  font-size: 10px;
  line-height: 1;
}

#fix_bottom_menu .menu-item i {
  font-size: 30px;
  height: 30px;
  line-height: 30px;
}

#fix_bottom_menu .menu-item .icon {
  width: 30px;
  height: 30px;
  margin-right: 0.1em;
}

#fix_bottom_menu span {
  display: inline-block;
  width: auto;
  margin-top: 0;
}

#fix_bottom_menu a > span {
  margin-left: min(2vw, 8px);
}

#fix_bottom_menu .menu-item.bottom-line span.footer-btn-txt-min {
  padding-bottom: 0.5em;
  font-size: 10px;
}

#fix_bottom_menu .menu-item.bottom-line {
  width: 100%;
  background: linear-gradient(to bottom, #00c300 0%, #009600 100%);
}

#fix_bottom_menu.store-bottom-menu .menu-item.bottom-line {
  width: 50%;
}

#fix_bottom_menu .menu-item.bottom-other {
  width: 25%;
  background: linear-gradient(to bottom, #4d4d4d 0%, #1f1f1f 100%);
}

#fix_bottom_menu .menu-item.bottom-other {
  border-right: solid 2px #000000;
}

#fix_bottom_menu .menu-item:nth-child(3) {
  border-right: none;
}

#fix_bottom_menu .menu-item.bottom-other a {
  flex-direction: column;
}

#fix_bottom_menu .menu-item.bottom-line span {
  font-size: min(4vw, 16px); 
  text-align: left;
}

#fix_bottom_menu .menu-item.bottom-other i {
  width: 22px;
  height: 22px;
}

#fix_bottom_menu .menu-item.bottom-other .icon {
  width: 100%;
  height: 100%;
  margin-right: 0;
}

#fix_bottom_menu .bottom-other a > span {
  margin-left: 0;
  margin-top: 0.5em;
  font-weight: 500;
}

/*////////// お問い合わせ //////////*/

.contact-area-title {
  margin-bottom: 1em;
  padding: 1em;
  background-color: #eee;
  color: var(--color_green);
  border-left: solid 6px var(--color_green);
}

.recommend-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.recommend-line img {
  display: block;
  width: clamp(90px, 29.804vw, 150px);
  height: clamp(90px, 29.804vw, 150px);
}

.recommend-line .txt-description {
  width: min(59vw, 700px);
}

.icon-tap {
  margin-right: 0.5em;
}

/*////////// 見出しアコーディオン（plan-accordion） //////////*/
.plan-accordion-summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  z-index: 1;
}
.plan-accordion-summary::-webkit-details-marker {
  display: none;
}
.plan-accordion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6em;
  margin: 0;
  padding: min(2.5vw, 14px) min(3vw, 20px);
  background: linear-gradient(to bottom, rgba(0,160,165,1) 0%,rgba(0,147,155,1) 100%);
  color: white;
  border-radius: 0.6em;
  font-size: min(4vw, 20px);
}
.plan-accordion__label {
  flex: 1;
}
.plan-accordion__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6em;
  height: 1.6em;
  flex-shrink: 0;
  color: #fff;
  border-radius: 50%;
  transition: transform 0.2s ease, background-color 0.2s ease;
}
/* アイコン2つを重ねて配置し、フェード＋回転で切り替え */
.plan-accordion__icon-plus,
.plan-accordion__icon-minus {
  position: absolute;
  width: 1em;
  height: 1em;
  top: 50%;
  left: 50%;
  transition: opacity 0.25s ease, transform 0.35s ease;
}
.plan-accordion__icon-plus {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0deg);
}
.plan-accordion__icon-minus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-90deg);
}
.plan-accordion-wrap[open] .plan-accordion__icon-plus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}
.plan-accordion-wrap[open] .plan-accordion__icon-minus {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0deg);
}
.plan-accordion-summary:hover .plan-accordion__icon {
  transform: scale(1.08);
}

/*////////// 店舗カード共通デザイン（archive-store / front-page / page-contact 等） //////////*/
.store-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.4em;
  margin: 1em auto 2em;
  width: 95%;
  max-width: 760px;
}
@media (min-width: 768px) {
  .store-cards-grid {
    grid-template-columns: 1fr 1fr;
    max-width: 98%;
  }
  /* 単一店舗詳細では1カラムのまま中央表示 */
  .store-cards-grid--single {
    grid-template-columns: 1fr;
    max-width: 760px;
  }
}
/* 単一店舗詳細では地図・LINE・店舗詳細ボタンは不要 */
.store-cards-grid--single .store-card__actions {
  display: none;
}
.store-card {
  background-color: #fff;
  border-radius: 0.8em;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
}
.store-card__photo {
  display: block;
  margin: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background-color: #f7f7f7;
}
.store-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.store-card__photo:hover img {
  transform: scale(1.04);
}
.store-card__body {
  flex: 1;
}
.store-card__title {
  font-size: clamp(16px, 4.6vw, 20px);
  font-weight: 700;
  margin: 0 0 0.6em;
  background-color: #333333;
  padding: .5em;
  color: white;
}
.store-card__title a {
  color: white;
  text-decoration: none;
}
.store-card__prefecture {
  border-right: solid 2px white;
  display: inline-block;
  color: #fff;
  font-size: 0.65em;
  font-weight: 700;
  padding: 0.15em 0.6em;
  margin-right: 0.4em;
  vertical-align: 0.15em;
  line-height: 1.4;
}
.store-card__title a:hover {
  text-decoration: underline;
}
.store-card__dl {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1rem;
  margin: 0;
  font-size: 0.9em;
  line-height: 1.6;
  padding: min(2vw, 10px) min(5vw, 40px) min(4vw, 20px);
}
.store-card__dl dt {
  width: 25%;
  font-weight: 700;
  margin-top: 0.4em;
  font-size: 0.85em;
  padding-left: 0.5em;
}
.store-card__dl dd {
  width: calc(75% - 1rem);
  margin: 0.2em 0 0.4em 0;
  padding-left: 0.5em;
}
.store-card__address-note {
  display: block;
  margin-top: 0.2em;
  color: #888;
  font-size: 0.85em;
  line-height: 1.5;
}
/* 店舗詳細ボタンの右矢印アイコン */
.store-card__detail-link span {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
}
.store-card__detail-arrow {
  width: 0.7em;
  height: 0.7em;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.store-card__detail-link:hover .store-card__detail-arrow {
  transform: translateX(3px);
}
.store-card__dl .btn-phone {
  color: var(--color_accent);
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
}
.store-card__dl .btn-phone .icon-phone {
  width: 0.85em;
  height: 0.85em;
  flex-shrink: 0;
}
.store-card__actions {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  align-items: stretch;
}
.store-card__actions > div {
  width: 50%;
}
.store-card__actions > div > a {
  display: flex;
  width: 100%;
  height: 100%;
  border-radius: 0;
  text-align: center;
  background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(216,216,216,1) 100%);
  align-items: center;
  justify-content: center;
  border-top: solid 1px #dddddd;
  font-weight: 700;
  font-size: min(4vw, 18px);
  letter-spacing: .1em;
  padding: 1rem;
}
.store-card__actions > div > a.line-btn {
  background: linear-gradient(to bottom, #00c300 0%, #009600 100%);
}
.store-card__actions > div > a.store-btn {
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
}
.store-card__map-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  color: var(--color_green);
  font-weight: 700;
  font-size: 0.85em;
  text-decoration: none;
  padding: 0.4em 0.8em;
  border: 1px solid var(--color_green);
  border-radius: 999px;
  transition: all 0.2s;
}
.store-card__map-link:hover {
  background-color: var(--color_green);
  color: #fff;
}
/* 店舗詳細ページ：Googleマップ iframe 埋め込み */
.store-card__map {
  border-radius: 0.5em;
  overflow: hidden;
  aspect-ratio: 22 / 9;
  padding: 0 1em 1em;
}
.store-card__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.store-card__btn {
  flex: 1;
  min-width: 120px;
  margin: 0 !important;
}

.stores-list-simple {
  display: flex;
  flex-direction: column;
  gap: min(3vw, 20px);
  margin: min(5vw, 20px) auto min(10vw, 50px);
  width: min(95%, 700px);
}

.stores-list-simple li {
  background-color: white;
  width: 100%;
  font-size: min(3.922vw, 20px);
  font-weight: 700;
  align-items: center;
  padding: min(5vw, 16px) min(5vw, 20px);
  border-radius: 0.4em;
}

.store-about {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.store-about__prefecture {
  border-right: solid 2px var(--color_green);
  display: inline-block;
  color: var(--color_green);
  font-size: 0.65em;
  font-weight: 700;
  padding: 0.15em 0.6em;
  margin-right: 0.4em;
  vertical-align: 0.15em;
  line-height: 1.4;
}

.store-about.btn-accordion {
  justify-content: space-between;
  margin-top: 0;
  padding: min(2vw, 10px) min(3vw, 20px);
  border-top: none;
  border-left: none;
  border-right: none;
  border-bottom: solid 2px var(--color_green);
  border-radius: 0;
}

.stores-list-simple [class*=is-style-btn_] {
  margin: 0 0.4em 0 0;
}

.stores-list-simple .is-style-btn_normal a {
  padding: min(1.2vw, 8px) min(4vw, 20px);
  border-radius: 50px;
  background: linear-gradient(to bottom, #00c300 0%, #009600 100%);
}

.stores-list-simple .icon-line {
  margin-right: 0.25em;
}

.store-about.btn-accordion > div {
  display: flex;
  align-items: center;
}

.stores-list-simple .default-hide {
  padding: min(2vw, 10px) 0 min(6vw, 50px);
}

.stores-list-simple .store-info {
  font-size: clamp(12px, 3.137vw, 16px);
}

.stores-list-simple img {
  width: 50%;
}

.grecaptcha-badge {
  z-index: 1;
}

#store-news {
  padding: min(10vw, 50px) 0 0;
}

#store-news .h5-common {
  margin: 0 0 min(5vw, 40px);
}

#store-news .modal-content {
  top: 50%;
  left: 50%;
  bottom: auto;
  transform: translate(-50%, -50%);
}

.news-modal-wrap {
  overflow-y: auto;
  max-height: 75vh;
  padding: 1em;
}

.news-modal-wrap.scroll-bar {
  border-right: solid 1px #777777;
}

.news-modal-wrap::-webkit-scrollbar {
  width: 3px;
  height: 3px;
}

.news-modal-wrap::-webkit-scrollbar-thumb {
  --bg-opacity: 1;
  background-color: #333;
}

.news-modal-wrap h4 {
  position: relative;
  margin-bottom: 1.5em;
  padding: .5em 1em .5em 1.5em;
}

.news-modal-wrap h4:before {
  position: absolute;
  content: "";
  width: .25em;
  height: 100%;
  background-color: var(--color_main);
  top: 0;
  left: 0;
}

/*////////// お客様の声 //////////*/

.voice-list {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1.5em;
  list-style: none;
  width: min(100%, 960px);
  padding: 0;
  margin: 0 auto;
}

.voice-list.wide {
  width: 100%;
}

.voice-list li {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-self: flex-start;
  width: 100%;
  background-color: #fff;
  border-radius: min(1.2vw, 6px);
  box-shadow: 0 2px 4px rgba(0,0,0,.05), 0 4px 4px -4px rgba(0,0,0,.1);
}

.voice-head {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  width: 100%;
  height: auto;
  min-height: min(53vw, 248px);
  background-color: var(--color_green);
}

.voice-head > img {
  position: absolute;
  width: auto;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 0.6 / 1;
  top: 0;
  left: 0;
}

.voice-head > .voice-customer-video {
  position: absolute;
  width: auto;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 0.6 / 1;
  top: 0;
  left: 0;
}

.poster-img {
  position: absolute;
  width: min(25vw, 120px);
  height: min(38vw, 180px);
  box-shadow: 0 0 .5em rgba(0,0,0,.5);
  top: 50%;
  left: 2em;
  transform: translateY(-50%);
  z-index: 1;
}
.voice-headline {
  width: 56%;
  margin-left: min(39%, 172px);
}
.voice-head h3 {
  position: relative;
  padding: .8rem 1rem .8rem 0;
  color: #fff;
  font-size: 1.3rem;
  line-height: 1.4;
  z-index: 1;
}
.voice-age {
  color: white;
  font-size: min(2.6vw, 12px);
  text-align: right;
}
.voice-body {
  padding: 1.25em;
}

.voice-list dl {
  display: flex;
  flex-wrap: wrap;
  gap: .65em 1em;
  margin-bottom: 1.5em;
  padding: .5em .5em 1.5em;
  font-weight: 700;
  border-bottom: solid 2px #cbcbcb;
}

.voice-list dt {
  align-self: baseline;
  width: 20%;
  color: var(--color_green);
  border: solid 1px var(--color_green);
  border-radius: 50vw;
  font-size: .85rem;
  text-align: center;
}

/* 動機：グレー背景・白文字 */
.voice-list .voice-dt--motive {
  background: #888;
  border-color: #888;
  color: #fff;
}

/* 成果：アクセントカラー背景・白文字 */
.voice-list .voice-dt--results {
  background: var(--color_accent);
  border-color: var(--color_accent);
  color: #fff;
}

.voice-list dd {
  width: calc(80% - 1em);
}

.voice-body .swell-block-button {
  margin: 1rem 0 0;
  font-size: .8rem;
}

.voice-body .swell-block-button a {
  width: 100%;
  border-radius: min(1.4vw, 5px);
}

.voice-body .more-btn {
  width: 100%;
  border-radius: 0.2em;
  margin-top: min(3.2vw, 15px);
}

.page-voice .alignfull>.wp-block-cover__inner-container {
  max-width: 960px;
}

.voice-single-head {
  position: relative;
  padding-bottom: 0;
}

.voice-single-tit {
  width: 100%;
}

.name_age {
  width: 100%;
  padding: 0;
  color: #fff;
  font-weight: 700;
  background-color: var(--color_green);
}

.name_age > p {
  width: min(100%, 960px);
  margin: 0 auto;
  padding: .5em min(40%, 208px) .5em min(5%, 50px);
}

.motive-wrap {
  width: min(100%, 960px);
  margin: 0 auto;
}

.motive {
  padding: .5em min(40%, 208px) .5em 5%;
  color: var(--color_green);
  font-size: min(4.5vw, 30px);
}

.voice-poster-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  position: absolute;
  width: min(33vw, 150px);
  height: min(49vw, 225px);
  background-color: black;
  border: solid 1px #fff;
  top: 0;
  right: min(3vw, 30px);
  z-index: 1;
  cursor: pointer;
}

#voiceModal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.9);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}

.icon-film {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  bottom: .25em;
  right: .25em;
  z-index: 1;
  color: #fff;
  font-size: min(5.5vw, 25px);
  background-color: rgba(147, 147, 147, .8);
  width: min(8vw, 40px);
  height: min(8vw, 40px);
  text-align: center;
  border-radius: .1em;
}

.photo-frame {
  overflow: hidden;
  position: absolute;
  width: min(33vw, 150px);
  height: min(49.5vw, 225px);
  border: none;
  box-shadow: 0 0 min(1vw, 5px) 0 rgba(0, 0, 0, 0.2);
  top: 0;
  right: min(3vw, 30px);
  z-index: 1;
}

.photo-frame > img {
  display: block;
  width: auto;
  height: 100%;
  max-width: none;
}

.photo-frame > .voice-customer-video {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.interview-wrap > div:nth-child(odd) {
  background-color: #eaeaea;
}

.interview-wrap > div:nth-child(even) {
  background-color: white;
}

.interview {
  margin-bottom: 0 !important;
}

.interview h3 {
  position: relative;
  margin-bottom: 1em;
  padding: .5em 1em .5em 2.5em;
}

.interview h3::before {
  position: absolute;
  content: "";
  width: min(2vw, 4px);
  height: 100%;
  background-color: var(--color_green);
  top: 0;
  left: 1em;
}

.interview > div {
  display: flex;
  gap: 1em;
}

.interview > div p {
  padding-top: 1em;
  padding-right: 1em;
}

.user-avatar {
  overflow: hidden;
  flex: none;
  width: min(16vw, 70px);
  height: min(16vw, 70px);
  border: solid min(.5vw, 2px) var(--color_green);
  border-radius: 100%;
}

.voice-photo {
  display: block;
  width: min(100%, 640px);
  margin: 1.5em auto 1em;
  border: solid min(2vw, 10px) white;
  box-shadow: 0 0 min(1vw, 5px) 0 rgba(0, 0, 0, 0.2);
}

.instructor-comment {
  padding: 2em 1.5em;
}

.instructor-comment h3 {
  padding-bottom: 1em;
}

/* Vodeo用モーダル */

.voice-modal {
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.95); z-index:9999;
}

.voice-modal.is-open {
  display:flex;
}

.voice-modal-close {
  top: 12vh;
  right: 10vw;
  z-index: 99;
}

.voice-modal video {
  max-height: 70vh !important;
}

/*////////// お知らせ //////////*/

.single-news .-type-card .p-postList__thumb {
  display: none;
}

.single-news .p-relatedPosts .p-postList__item {
  margin-bottom: .5em;
  padding: 0 .25em;
}

.single-news .p-postList__link {
  padding: 0 1em 1em;
  border: solid 1px #e2e2e2;
}

.-type-simple .p-postList__link {
  padding: 1em;
}

/*////////// 診断 //////////*/

.card {
  width: 100%;
  max-width: 600px;
  background-color: white;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  overflow: hidden;
  margin: 0 auto;
}

.card-header {
  background-color: var(--color_green);
  color: white;
  padding: .5em 1em;
  text-align: center;
}

.card-header.has-meter {
  padding: 1em 1em .5em;
}

.card-title {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 10px;
}

.progress-container {
  height: 8px;
  width: 100%;
  background-color: #7fcfd2;
  border-radius: 4px;
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  background-color: white;
  transition: width 0.3s ease;
}

.progress-text {
  font-size: 0.875rem;
  margin-top: 8px;
}

.card-content {
  padding: 1em;
  text-align: center;
}

.post_content .question-title {
  background-color: transparent;
  color: inherit;
  font-size: 1rem !important;
  font-weight: 600;
  margin: 0 0 1em !important;
  text-align: center;
}

.question-description {
  font-size: 0.875rem;
  color: #4b5563;
  margin-bottom: 24px;
  text-align: center;
}

.options {
  display: flex;
  flex-direction: column;
  gap: .25em;
}

.option-button {
  width: 100%;
  padding: .5em;
  background-color: white;
  color: var(--color_green);
  border: 2px solid var(--color_green);
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s;
}

.option-button:hover {
  background-color: #e5f6f7;
}

.result {
  text-align: center;
  margin-bottom: 32px;
}

.result-heading {
  font-size: 1.125rem;
}

.result-count {
  font-size: 2.4rem;
  font-weight: bold;
  color: var(--color_green);
}

.result-assessment {
  font-size: 1.125rem;
  font-weight: 600;
  color: #374151;
  margin-bottom: .5em;
}

.advice-box {
  background-color: #fff5e6;
  padding: 1em;
  border-radius: 8px;
  text-align: left;
  margin-bottom: 1.2em;
}

.advice-title {
  font-size: 1rem !important;
  font-weight: 600;
  margin: 0 0 .5em !important;
}

.advice-list {
  font-size: 0.875rem;
  color: #4b5563;
}

.advice-list li {
  margin-bottom: 8px;
  list-style-type: none;
}

.disclaimer {
  margin-bottom: 1em;
  font-size: 0.74rem;
  color: #6b7280;
  text-align: left;
}

.reset-button {
  width: 100%;
  padding: 12px;
  background-color: var(--color_green);
  color: white;
  border: none;
  border-radius: 6px;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.2s;
}

.reset-button:hover {
  background-color: var(--color_green);
}

.ticket-box {
  padding: 1em;
  background-color: #fff5e6;
  border: solid 1px #ffd9a7;
  border-radius: 8px;
  margin-bottom: 1em;
}

.ticket-title {
  width: 65%;
  margin: 0 auto .85em !important;
  padding-bottom: .5rem;
  font-size: 1rem !important;
  border-bottom: solid 2px #ffd9a7;
}

.ticket-title::before,
.advice-title::before {
  content: none !important;
}

.ticket-item {
  font-weight: 700;
  display: flex;
  justify-content: space-between;
  width: min(98%, 320px);
  margin: 0 auto;
  align-items: baseline;
  flex-wrap: wrap;
}

.ticket-price {
  color: var(--color_green);
}

.ticket-price .txt-price {
  font-size: 1.3rem !important;
}

.price-per-lesson .txt-price {
  font-size: 1rem !important;
}

.ticket-ctn {
  position: relative;
}

.recommended-badge {
  position: absolute;
  width: 2.8rem;
  padding: 0 .5em;
  background-color: var(--color_green);
  border-radius: 50vw;
  color: #fff;
  font-size: .5rem;
  font-weight: normal;
  bottom: 1.2rem;
  right: -2.5rem;
}

.shindan-cta {
  margin: 0 0 1.5em;
}

.shindan-cta .speech.narrowly {
  margin-bottom: .25rem;
}

.shindan-cta .speech.narrowly h3 {
  font-size: 1rem;
}

.shindan-cta .speech.narrowly h3 span {
  padding: 0 .15rem;
  font-size: 1.5rem;
}

.shindan-cta .swell-block-button__link {
  display: inline-flex;
  gap: .25rem;
  align-items: center;
  justify-content: center;
}

.shindan-cta .icon-line {
  font-size: 1.5rem;
  line-height: 1.5rem;
}

/*////////// フッター //////////*/

#footer-list-wrap {
  width: 94%;
  margin: 0 auto;
  padding: min(9.804vw, 50px) 0;
}

#footer-list-wrap a {
  font-size: clamp(12px, 3vw, 14px);
}

a.footer-logo {
  display: block;
  width: min(30.098vw, 153px);
  height: min(10vw, 51px);
  margin: 0 auto min(9.804vw, 50px);
}

.footer-links {
  display: flex;
  justify-content: space-between;
  flex-direction: column-reverse;
}

.footer-links > div {
  width: 100%;
}

.footer-links a {
  position: relative;
  display: block;
  padding: min(2.941vw, 10px);
  border-bottom: solid  min(0.294vw,1px) #939393;
}

.footer-links a::after {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  margin: auto;
  clip-path: polygon(45% 9%, 75% 51%, 45% 90%, 30% 90%, 60% 50%, 30% 10%);
  background-color: var(--color_green);
  top: 0;
  bottom: 0;
  right: min(0.98vw, 10px);
}

.footer-store-wrap > div a {
  border-bottom: solid 1px #424242;
}

.l-footer__nav {
  gap: 1rem 0;
}

.l-footer__nav a {
  padding: 0 min(2.745vw, 20px);
  border-right: solid 1px #939393;
  font-size: clamp(12px, 3vw, 14px);
  line-height: 1;
}

.l-footer__nav li:last-child a {
  border-right: none;
}

.l-footer .copyright {
  font-size: 10px;
  color: #a9a9a9;
}

/* エリア分け */

.footer-store-title {
  font-size: 24px;
  margin-bottom: 20px;
  border-bottom: 1px solid #666;
  padding-bottom: 10px;
}

.footer-area {
  margin-bottom: 40px;
}

.footer-area-title {
  background-color: var(--color_green);
  color: #fff;
  padding: .5em .5em .5em 1em;
  margin-bottom: 20px;
}

.footer-region {
  margin-bottom: 25px;
}

.footer-region-title {
  margin-left: .5em;
  padding: 0 0 0 .8em;
  border-left: solid 3px white;
  color: white;
}

.footer-stores {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1em;
  padding-left: 2.5em;
}

.footer-store-item a {
  display: flex;
  align-items: center;
  transition: color 0.25s ease;
  padding: 5px 10px;
}

.footer-store-item a:hover {
  color: #bdbdbd;
}

.footer-store-item a::after {
  content: '>';
  margin-left: auto;
  color: var(--color_green);
}

/*//////////////////////////////////////// タブレット用 ////////////////////////////////////////*/

@media (min-width: 800px) {

  /*////////// レッスンの流れ //////////*/

  .lesson-list li {
    width: min(32%, 300px);
  }

}

/*//////////////////////////////////////// PC用 ////////////////////////////////////////*/

@media (min-width: 960px) {

  .column {
    gap: 30px 0;
  }

  .plan-table {
    width: 48%;
  }

  .wide-l {
    width: 600px;
    margin-bottom: 40px;
  }

  .column > figure:last-of-type {
    margin-bottom: 0;
  }

  #price-tab {
    width: 90%;
    margin: 2em auto 0;
  }

  #bronze-tab.on:after,
  #silver-tab.on:after,
  #gold-tab.on:after {
    bottom: -16px;
  }

  .price-info {
    top: 8px;
    left: -19px;
  }

  .price-info::after {
    bottom: -10px;
    left: 40px;
  }

  .price-single .price-info {
    top: -10px;
  }

  .bg-left-top-round {
    margin-top: -90px !important;
  }

  .h2-two-lines + p::before {
    left: -90px;
  }
  
  .h2-two-lines + p::after {
    right: -90px;
  }

  .h2-red-circle {
    margin-left: 0
  }

  .h3-common {
    margin-left: 0;
  }

  btn-icon-under a,
  .btn-icon-top a,
  .btn-icon-right a,
  .btn-icon-left a {
    min-width: 30%;
  }

  .br-sp {
    display: none;
  }

  .br-pc {
    display: block;
  }

  .solution {
    max-width: 100%;
    height: 200px;
    margin: -50px auto 0;
    left: 0;
    right: 0;
  }

  .solution p {
    top: 84px;
  }

  .solution-wrap {
    margin-bottom: 150px;
  }

  #about-concept.solution-wrap {
    margin-bottom: 170px;
    padding-bottom: 80px;
  }

  .solution::after {
    height: 200px;
    top: 0;
  }

  .solution.normal-type {
    bottom: -124px;
  }

  .solution.normal-type p {
    top: 50px;
  }

  .solution.normal-type::after {
    height: 200px;
  }

  .scroll-infinity-wrap {
    margin-bottom: -40px;
  }

  .scroll-infinity-item {
    width: calc(100vw / 3.5);
  }

  .content-inner-indent {
    width: 40%;
  }

  .point-list {
    display: flex;
    flex-direction: column;
    gap: 60px;
  }

  .point-list > li:nth-child(odd) {
    flex-direction: row;
  }

  .point-list > li:nth-child(even) {
    flex-direction: row-reverse;
  }

  .point-list > li:nth-child(odd) .point-header,
  .point-list > li:nth-child(even) .point-header {
    border-radius: min(6.373vw, 30px);
  }

  .point-list > li:nth-child(odd) .content-inner-indent {
    padding-left: 4.6%;
    padding-right: 0;
  }
  
  .point-list > li:nth-child(even) .content-inner-indent {
    padding-right: 4.6%;
    padding-left: 0;
  }

  .voice-poster-wrap {
    right: 50%;
    transform: translateX(450px);
  }

  #tab-bg {
    top: 67px;
  }

  .fixed {
    top: 80px;
    width: 100%;
  }
  
  #price-tab.fixed {
    width: min(98vw, 800px);
  }

  /* テーブル */
  .cell-tit-gray.arrow::after,
  .cell-tit-red.arrow::after,
  .cell-tit-popular.arrow::after,
  .cell-tit-recommend.arrow::after  {
    right: -10px;
  }

  /*////////// ヘッダー //////////*/

  .-series .l-header__logo {
    margin-right: 0;
  }

  /*////////// メインビジュアル //////////*/

  .p-mainVisual {
    height: 100vh;
    min-height: 600px;
  }

  /* スクロール誘導 */

  .p-mainVisual__scroll {
    display: block;
  }

  /*////////// リズスポについて //////////*/

  #about-concept {
    display: flex;
    align-items: center;
    background-position: bottom 106px left 8vw, bottom 103px right 8vw;
  }

  .dreams-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 60px;
  }

  .label-red {
    margin-left: 0;
    padding: 0.2em 1em;
  }

  .label-red + div {
    padding: 0 30px;
  }

  .person-about .speech-type2 {
    display: inline-block;
    width: auto;
  }

  /*////////// 技 //////////*/
  .technique-list {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  }

  /*////////// レッスンの流れ //////////*/

  .lesson-list {
    flex-wrap: nowrap;
  }

  .lesson-list li::after {
    left: -10px;
  }

  /*////////// インストラクター //////////*/

  .instructors-list {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  }

  /* モーダル */

  .modal-content {
    top: 110px;
    bottom: 30px;
  }

  .modal-close {
    top: -14px;
  }

  /* インストラクター詳細ページ */

  .instructor-movies-list {
    flex-wrap: nowrap;
  }

  .instructor-movies-list li {
    width: 100%;
    max-width: 320px;
  }

  /*////////// 店舗 //////////*/

  .stores-list {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 30px;
  }

  .store-photo {
    border-radius: min(6.373vw, 30px);
    margin-left: 0;
  }

  dl.store-info {
    width: min(100%, 750px);
    margin: 3em 0 4em auto;
    padding-left: 0;
  }

  .srore-tel-inner {
    width: auto;
  }

  .root-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .voice-list {
    grid-template-columns: repeat(2, 1fr);
  }

  /*////////// お問い合わせ //////////*/

  .recommend-line {
    align-items: center;
  }

  /*////////// フッター //////////*/

  .l-footer__foot {
    padding-bottom: 1em !important;
  }

  #body_wrap.single-store .l-footer__foot {
    padding-bottom: 6em !important;
  }

  a.footer-logo {
    margin: 0 0 min(9.804vw, 50px);
  }

  .l-footer__nav a {
    padding: 0 min(2.745vw, 20px);
    border-right: solid 1px #939393;
    font-size: clamp(12px, 3vw, 14px);
    line-height: 1;
  }

  .l-footer__nav li:first-child a {
    border-left: none;
  }

  .footer-store-list {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: flex-start;
    margin-top: 20px;
  }

  .footer-area {
    width: calc(50% - 20px);
    margin-bottom: 40px;
  }

  .footer-links {
    flex-direction: row;
    gap: 50px;
  }

  .footer-links > div[class^="menu-"] {
    max-width: 280px;
  }

  .footer-stores {
    grid-template-columns: 1fr;
  }

  /* 画面下部・固定ボタン */

  #fix_bottom_menu {
    overflow: hidden;
    display: block;
    max-width: 300px;
    margin: 0 auto 20px;
    border-radius: 50px 0 0 50px;
    bottom: -80px;
    left: auto;
    right: 0;
  }

  #fix_bottom_menu.store-bottom-menu {
    overflow: hidden;
    display: block;
    max-width: 640px;
  }

  #fix_bottom_menu .menu_list {
    height: 60px;
  }

  #fix_bottom_menu .menu-item.bottom-other a {
    flex-direction: row;
  }

  #fix_bottom_menu .bottom-other a > span {
    margin-top: 0;
    margin-left: 0.6em;
    font-size: 16px;
  }

  #fix_bottom_menu.store-bottom-menu .menu-item.bottom-line span {
    font-size: 18px;
  }

  #fix_bottom_menu .menu-item.bottom-line {
    width: 42%;
  }

  #fix_bottom_menu .menu-item.bottom-line span.footer-btn-txt-min {
    font-size: 14px;
  }
  
}

@media (min-width: 1300px) {

  /*////////// フッター //////////*/

  .footer-area {
    width: calc(33% - 20px);
  }

}

@media (min-width: 1700px) {

  /*////////// フッター //////////*/

  .footer-stores {
    grid-template-columns: 1fr 1fr;
  }

}

/*////////// モバイルメニュー応答性改善 //////////*/
/* ハンバーガーメニューはJSが読み込まれるまで非表示 */
.l-header__menuBtn,
.c-navBtn,
.c-gnavBtn,
.-menuBtn,
[class*="menuBtn"] {
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.2s ease;
}

/* JS読み込み完了後に表示 */
.js-ready .l-header__menuBtn,
.js-ready .c-navBtn,
.js-ready .c-gnavBtn,
.js-ready .-menuBtn,
.js-ready [class*="menuBtn"] {
  visibility: visible;
  opacity: 1;
}

/* ハンバーガーメニューのタッチ応答性を向上 */
.l-header__menuBtn,
.c-navBtn,
.c-gnavBtn,
.-menuBtn,
[class*="menuBtn"] {
  touch-action: manipulation;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  will-change: transform;
}

/* スマホメニューのアニメーション最適化 */
.p-spMenu,
.l-spMenu,
.-spMenu,
[class*="spMenu"] {
  padding-top: 1.5em;
  will-change: transform, opacity;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* ヘッダー固定時のパフォーマンス改善 */
.l-header,
#fix_header,
.l-fixHeader {
  will-change: auto;
  contain: layout style;
}

/*////////// インストラクター一覧「もっと見る」機能 //////////*/
/* 初期非表示のインストラクター（詳細度を上げて確実に非表示にする） */
.instructors-list li.instructor-hidden {
  display: none;
}

/* 「もっと見る」ボタンラッパー */
.instructor-show-more-wrap {
  width: 100%;
  text-align: center;
  padding: 1.5em 0 0;
}

/* 「もっと見る」ボタン */
.btn-show-more-instructors {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3em;
  padding: 0.8em 2em;
  background: var(--color_green, #00a0a5);
  color: #fff;
  font-size: 1em;
  font-weight: bold;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.2s ease;
  touch-action: manipulation;
}

.btn-show-more-instructors:hover {
  background: #c73535;
}

.btn-show-more-instructors:active {
  transform: scale(0.98);
}

.btn-show-more-instructors .remaining-count {
  font-size: 0.85em;
  font-weight: normal;
}

/*////////// LPモード（?lp パラメータ時） //////////*/

/* FVの高さ調整 */
body.is-lp-mode .page-store .wp-block-cover {
  min-height: min(140vw, 600px);
}

/* 非表示要素 */
body.is-lp-mode .tit-sub,
body.is-lp-mode #recruit {
  display: none;
}

body.is-lp-mode #voice li .swell-block-button {
  display: none;
}

/* ページ最下部の余白 */

body.is-lp-mode {
  padding-bottom: 50px;
}

body.is-lp-mode .fixed {
  top: 14px;
}

body.is-lp-mode #tab-bg {
  top: 0;
}

@media (min-width: 960px) {

  body.is-lp-mode {
    padding-bottom: 100px;
  }

}

/* ===========================
   レッスンフロー（6ステップ・縦タイムライン）
   =========================== */
.lesson-flow-card {
  background: #fff;
  border-radius: 18px;
  padding: 48px 56px;
  margin: 0 auto;
  max-width: 760px;
  box-shadow: 0 4px 20px rgba(0, 32, 64, 0.05);
}

.lesson-flow-list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

/* タイムラインの縦線 */
.lesson-flow-list::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 9px;
  width: 2px;
  background: #00a0a5;
}

.lesson-flow-item {
  position: relative;
  padding-left: 36px;
  padding-bottom: 36px;
}

.lesson-flow-item:last-child {
  padding-bottom: 0;
}

/* タイムラインの丸マーカー */
.lesson-flow-item::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #00a0a5;
  box-sizing: border-box;
  z-index: 1;
}

.lesson-flow-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lesson-flow-step {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  color: #888;
  line-height: 1.4;
}

.lesson-flow-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 12px;
  line-height: 1.4;
  color: #00a0a5;
}

.lesson-flow-body {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}

.lesson-flow-img {
  flex-shrink: 0;
  width: 200px;
  border-radius: 8px;
  overflow: hidden;
  background: #f4f7f8;
}

.lesson-flow-img img,
.lesson-flow-img video {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.lesson-flow-img--video {
  background: #000;
}

/* メディアの表示位置（object-position で表示領域内の見せる部分を制御） */
.lesson-flow-img--align-top img,
.lesson-flow-img--align-top video {
  object-position: center top;
}

.lesson-flow-img--align-center img,
.lesson-flow-img--align-center video {
  object-position: center center;
}

.lesson-flow-img--align-bottom img,
.lesson-flow-img--align-bottom video {
  object-position: center bottom;
}

.lesson-flow-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 4px;
}

.lesson-flow-time {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.85rem;
  font-weight: 500;
  color: #888;
  line-height: 1.4;
}

.lesson-flow-desc {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.8;
  color: #333;
}

.lesson-flow-desc p {
  margin: 0 0 0.5em;
}

.lesson-flow-desc p:last-child {
  margin-bottom: 0;
}

.lesson-flow-desc strong {
  font-weight: 700;
  color: #222;
}

@media (max-width: 768px) {
  .lesson-flow-card {
    padding: 32px 20px;
    border-radius: 14px;
  }

  .lesson-flow-item {
    padding-left: 28px;
    padding-bottom: 28px;
  }

  .lesson-flow-item::before {
    width: 16px;
    height: 16px;
    top: 3px;
  }

  .lesson-flow-list::before {
    left: 7px;
  }

  .lesson-flow-title {
    font-size: 1.1rem;
    margin-bottom: 10px;
  }

  .lesson-flow-body {
    flex-direction: column;
    gap: 12px;
  }

  .lesson-flow-img {
    width: 100%;
  }

  .lesson-flow-desc {
    font-size: 0.9rem;
    line-height: 1.7;
  }
}

/* ===========================
   セクション見出し（左アイコン付き）
   =========================== */
.h2-section-icon {
  display: flex;
  align-items: center;
  gap: min(3vw, 18px);
  margin-top: min(6vw, 40px);
  margin-bottom: min(8vw, 30px);
  color: var(--color_main);
  font-size: min(6.863vw, 40px);
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-align: left;
}

.h2-section-icon.no-bottom-margin {
  margin-bottom: 0;
}

.bg-dark-green .h2-section-icon,
.bg-dark-gray .h2-section-icon {
  color: #fff;
}

.h2-section-icon__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(9.5vw, 56px);
  height: min(9.5vw, 56px);
  border-radius: 50%;
  background: var(--color_green);
  color: #fff;
  flex-shrink: 0;
}

.h2-section-icon__icon svg {
  width: 58%;
  height: 58%;
  display: block;
}

.h2-section-icon__text {
  display: inline-block;
  font-weight: 700;
  font-size: min(6.5vw, 40px);
}

/* セクション別アクセント */
.h2-section-icon--plan .h2-section-icon__icon,
.h2-section-icon--instructor .h2-section-icon__icon {
  background: #ff6b00;
}

.h2-section-icon--store .h2-section-icon__icon,
.h2-section-icon--faq .h2-section-icon__icon {
  background: var(--color_green);
}

.h2-section-icon--voice .h2-section-icon__icon {
  background: var(--color_accent);
}

@media (max-width: 768px) {
  .h2-section-icon {
    gap: 12px;
    font-size: 1.5rem;
    margin-left: min(2vw, 20px);
  }

  .h2-section-icon__icon {
    width: 44px;
    height: 44px;
  }
}

/* ===========================
   インストラクターカード セリフ吹き出し
   =========================== */
.instructor-speech {
  position: absolute;
  top: -22%;
  left: -8%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(95%, 240px);
  padding: 6% 8% 11%;
  box-sizing: border-box;
  background-color: var(--color_accent);
  clip-path: polygon(100% 8%, 100% 72%, 52% 78%, 49% 100%, 41% 80%, 0 84%, 0 0);
  pointer-events: none;
  text-align: center;
  transform: rotate(-5deg);
}

.instructor-speech__text {
  display: block;
  color: #fff;
  font-size: clamp(0.6rem, 2.6vw, 15px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
  word-break: break-word;
}

/* ===========================
   汎用「もっと読む」ボタン（SWELL非依存）
   =========================== */
.more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
  position: relative;
  padding: 0.6em 2.6em 0.6em 1.4em;
  border: 2px solid var(--color_accent);
  border-radius: 999px;
  background: #fff;
  color: var(--color_accent);
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: background-color 0.2s ease, color 0.2s ease;
  line-height: 1.4;
}

.more-btn::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 1em;
  width: 10px;
  height: 10px;
  margin: auto;
  clip-path: polygon(45% 9%, 75% 51%, 45% 90%, 30% 90%, 60% 50%, 30% 10%);
  background-color: var(--color_accent);
  transition: background-color 0.2s ease;
}

.more-btn:hover,
.more-btn:focus-visible {
  background: var(--color_accent);
  color: #fff;
}

.more-btn:hover::after,
.more-btn:focus-visible::after {
  background-color: #fff;
}

/* 中央揃えしたい場合に親要素へ付与するヘルパー */
.more-btn-wrap {
  display: flex;
  justify-content: center;
}

/* 戻るボタン（矢印を左側に表示） */
.more-btn--back {
  padding: 0.6em 1.4em 0.6em 2.6em;
}

.more-btn--back::after {
  right: auto;
  left: 1em;
  transform: rotate(180deg);
}

/* ===========================
   各種ステップ（基礎・応用）
   =========================== */
#step .plan-accordion {
  background: linear-gradient(to bottom, rgb(255 255 255) 0%, rgb(219 219 219) 100%);
  color: var(--color_green);
}
#step .plan-accordion__icon {
  color: var(--color_green);
}
.step-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(4vw, 20px);
}
.step-group {
  width: min(100%, 960px);
}
.step-group:last-of-type {
  margin-bottom: 0;
}
.step-list {
  list-style: none;
  width: 95%;
  margin: min(5vw, 30px) auto min(3vw, 30px);
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

@media (min-width: 769px) {
  .step-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.step-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 32, 64, 0.06);
  display: flex;
  flex-direction: column;
}

.step-card__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #000;
  overflow: hidden;
}

.step-card__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.step-card__body {
  padding: 0.8em 1em 1em;
  display: flex;
  flex-direction: column;
  gap: 0.4em;
}

.step-card__title {
  margin: 0;
  font-size: clamp(10px, 3vw, 16px);
  font-weight: 700;
  color: #222;
  line-height: 1.4;
}

.step-card__difficulty {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-size: 0.85em;
}

.step-card__difficulty-label {
  color: #666;
  font-weight: 600;
}

/* ★の重ね合わせで部分的に色を付けて難易度を表現 */
.step-card__stars {
  position: relative;
  display: inline-block;
  color: #d6d6d6;
  letter-spacing: 0.05em;
  line-height: 1;
  white-space: nowrap;
}

.step-card__stars-base {
  display: inline-block;
}

.step-card__stars-filled {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  color: var(--color_accent);
  white-space: nowrap;
}