@charset "UTF-8";

/* ===================================================================
   2026 renewal - price page
   -------------------------------------------------------------------
   Loaded only by page-price.php (/price/), after the theme's own
   css/price.css so these rules win on equal specificity.

   Conventions, kept in step with css/2026-renewal.css and
   css/2026-renewal-tenpo.css:
   - Every selector is guarded by a `renewal-price-*` class so the file
     is inert until the new markup is in place. Nothing here may match
     the page's existing elements on its own.
   - Where a theme rule has to be beaten, scope with `main.price`
     (this page's body wrapper) rather than raising !important.
   - Sections are appended in page order, each under its own
     `===== <name> =====` banner.
   - Values come from the Figma nodes at 1x. SP overrides live in
     `@media screen and (max-width: 767.98px)` at the end of each block.
   - Minimum font size is 15px, same as the store detail pages. Any
     node value below that is raised and noted in a comment.
   =================================================================== */


/* ===== FV (Figma 143:46) =====
   A full-width rule-bounded page title, then the staff photo beside the
   intro copy. The photo is the page's existing `img/price/img_01.png`
   (960x606, the same asset the node was built from).
   No SP node was supplied: the row stacks and the photo goes full width. */

.renewal-price-fv,
.renewal-price-fv * {
  box-sizing: border-box;
}

main.price section.renewal-price-fv {
  width: 100%;
  margin: 0;
  padding: 0 16px 60px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

/* ---- title bar ---- */

/* the bar spans the 1020px content column, not the full viewport */
main.price .renewal-price-fv__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto 40px;
  padding: 16px 0 10px;
  border-top: 2.67px solid #88bd45;
  border-bottom: 2.67px solid #88bd45;
  background: none;
  color: #8fc31f;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 51.2px;
  text-align: center;
}

/* ---- photo + copy ---- */

.renewal-price-fv__inner {
  display: flex;
  gap: 40px;
  align-items: center;
  justify-content: center;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-fv__photo {
  flex: 0 0 469.2px;
  width: 469.2px;
  margin: 0;
  aspect-ratio: 469.2 / 296.19;
  overflow: hidden;
}

main.price .renewal-price-fv__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.renewal-price-fv__copy {
  min-width: 0;
}

main.price .renewal-price-fv__copy p {
  margin: 0;
  color: #000;
  font-size: 18px;
  font-weight: 400;
  line-height: 36px;
  text-align: left;
}

/* the node leaves one empty line between the two paragraphs */
main.price .renewal-price-fv__copy p + p {
  margin-top: 36px;
}

main.price .renewal-price-fv__copy strong {
  font-weight: 700;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-fv {
    padding: 0 15px 40px;
  }

  main.price .renewal-price-fv__heading {
    margin-bottom: 24px;
    padding: 12px 0 8px;
    font-size: 22px;
    line-height: 35.2px;
  }

  .renewal-price-fv__inner {
    flex-direction: column;
    gap: 24px;
    width: 100%;
  }

  main.price .renewal-price-fv__photo {
    flex: 0 0 auto;
    width: 100%;
  }

  main.price .renewal-price-fv__copy p {
    font-size: 16px;
    line-height: 30px;
  }

  main.price .renewal-price-fv__copy p + p {
    margin-top: 30px;
  }
}


/* ===== shared section title (Figma 143:93 / 143:54) =====
   Both blocks below use the same centred title with a green rule under it. */

.renewal-price-care,
.renewal-price-care *,
.renewal-price-fee,
.renewal-price-fee * {
  box-sizing: border-box;
}

main.price .renewal-price-care__title,
main.price .renewal-price-fee__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65.33px;
  margin: 0 0 32px;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}


/* ===== 施術で大事にしていること (Figma PC 143:92 / SP 228:546) =====
   Five leaf-bulleted lines. PC flows them into two content-width columns
   (3 + 2) via a 3-row grid; SP stacks them.
   The leaf is the theme's own `img/common/heading_bg_leaf.png` (16x24,
   exactly the size the node uses). */

main.price section.renewal-price-care {
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-care__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-care__list {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(3, auto);
  gap: 16px 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-care__list li {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  color: #000;
  font-size: 18px;
  font-weight: 400;
  line-height: 30px;
  list-style: none;
}

main.price .renewal-price-care__list li::before {
  content: "";
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 24px;
  background-image: url("../img/common/heading_bg_leaf.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}


/* ===== 明瞭な施術料金 (Figma PC 143:52 / SP 228:508) =====
   A two-row fee table with green label cells, then two bulleted notes and
   the payment-methods strip (the page's existing combined_image2.png).
   The bullets are plain #10AD5A circles, drawn in CSS rather than exported.
   SP sets the 円（税込） / 施術料 runs at 12-14px; both are raised to the
   15px minimum, and the note copy from 14.913px to 15px. */

main.price section.renewal-price-fee {
  width: 100%;
  margin: 0;
  padding: 56px 16px;
  background: #fffdf3;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-fee__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

/* ---- fee table ---- */

main.price table.renewal-price-fee__table {
  width: 732px;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  border-collapse: collapse;
  background: #fff;
  table-layout: fixed;
}

main.price table.renewal-price-fee__table th,
main.price table.renewal-price-fee__table td {
  height: 58px;
  border: 1px solid #dfe8df;
  vertical-align: middle;
}

main.price table.renewal-price-fee__table th {
  width: 180px;
  padding: 0 17px;
  background: #10ad5a;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 27.2px;
  text-align: left;
}

main.price table.renewal-price-fee__table td {
  padding: 0 20px;
  text-align: left;
  white-space: nowrap;
}

.renewal-price-fee__item {
  display: inline-flex;
  gap: 5px;
  align-items: baseline;
}

.renewal-price-fee__label {
  color: #10ad5b;
  font-size: 16px;
  font-weight: 700;
  line-height: 27.2px;
}

.renewal-price-fee__amount {
  color: #000;
  font-size: 26px;
  font-weight: 700;
  line-height: 27.2px;
}

.renewal-price-fee__unit {
  color: #000;
  font-size: 16px;
  font-weight: 700;
  line-height: 27.2px;
}

/* 「＋ 初診料…」をひとまとまりにする箱。PCでは今までどおり1行に流れる */
.renewal-price-fee__run {
  display: inline;
}

.renewal-price-fee__plus {
  display: inline-block;
  margin: 0 9px;
  color: #10ad5b;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
}

/* ---- notes ---- */

main.price .renewal-price-fee__notes {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 732px;
  max-width: 100%;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-fee__notes li {
  position: relative;
  margin: 0;
  padding: 0 0 0 19px;
  border: 0;
  color: #3d493f;
  font-size: 15px;
  font-weight: 400;
  line-height: 28.5px;
  list-style: none;
}

main.price .renewal-price-fee__notes li::before {
  content: "";
  position: absolute;
  top: 8.75px;
  left: 0;
  width: 11px;
  height: 11px;
  border-radius: 999px;
  background: #10ad5a;
}

main.price .renewal-price-fee__notes strong {
  font-weight: 700;
}

.renewal-price-fee__pay {
  display: block;
  width: 577px;
  max-width: 100%;
  margin-top: 5px;
  background: #fff;
}

.renewal-price-fee__pay img {
  display: block;
  width: 100%;
  height: auto;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price .renewal-price-care__title,
  main.price .renewal-price-fee__title {
    height: auto;
    margin-bottom: 24px;
    font-size: 20px;
  }

  main.price section.renewal-price-care {
    padding: 40px 16px;
  }

  /* one per row on SP */
  main.price .renewal-price-care__list {
    grid-auto-flow: row;
    grid-template-rows: none;
    grid-template-columns: 1fr;
    gap: 16px;
    width: 100%;
  }

  main.price .renewal-price-care__list li {
    gap: 5px;
    align-items: flex-start;
    font-size: 15px;
    line-height: 27px;
  }

  main.price .renewal-price-care__list li::before {
    flex: 0 0 12px;
    width: 12px;
    height: 18px;
    margin-top: 6px;
  }

  main.price section.renewal-price-fee {
    padding: 40px 16px;
  }

  main.price table.renewal-price-fee__table {
    width: 100%;
  }

  main.price table.renewal-price-fee__table th {
    width: 93px;
    height: 70px;
    padding: 0 9px;
    font-size: 18px;
  }

  main.price table.renewal-price-fee__table td {
    height: 70px;
    padding: 0 12px;
    white-space: normal;
  }

  main.price table.renewal-price-fee__table tr:last-child th,
  main.price table.renewal-price-fee__table tr:last-child td {
    height: 42px;
    font-size: 16px;
  }

  /* 初回は2行に分ける。1行目=施術料、2行目=「＋ 初診料」をひとまとまりで折り返す */
  main.price table.renewal-price-fee__table tr:first-child .renewal-price-fee__item {
    display: flex;
  }

  main.price table.renewal-price-fee__table tr:first-child .renewal-price-fee__run {
    display: flex;
    gap: 5px;
    align-items: center;
  }

  main.price table.renewal-price-fee__table tr:first-child .renewal-price-fee__plus {
    margin: 0;
    font-size: 20px;
    line-height: 20px;
  }

  main.price table.renewal-price-fee__table tr:first-child td {
    line-height: 1.3;
  }

  /* the node uses 14px / 12px here; raised to the 15px minimum */
  .renewal-price-fee__label,
  .renewal-price-fee__unit {
    font-size: 15px;
  }

  .renewal-price-fee__amount {
    font-size: 22px;
  }

  .renewal-price-fee__plus {
    margin: 0 2px 0 0;
    font-size: 20px;
    line-height: 20px;
  }

  main.price .renewal-price-fee__notes {
    width: 100%;
    gap: 9.94px;
  }

  main.price .renewal-price-fee__notes li {
    padding-left: 18px;
    line-height: 26.84px;
  }

  main.price .renewal-price-fee__notes li::before {
    top: 8px;
    width: 10px;
    height: 10px;
  }

  .renewal-price-fee__pay {
    width: 100%;
  }
}


/* ===== 改善に必要なことをすべて、一つの施術に (Figma PC 143:231) =====
   Leaf-flanked headline, one lead line, then six cards in a 3 x 2 grid.
   The node draws all six card icons from a single 1264x843 sprite with
   nested percentage transforms; they are sliced into six PNGs here so the
   markup stays a plain <img>.
   No usable SP node yet (228:590 is the empty gradient plate), so SP falls
   back to a single column with the leaves hidden. */

.renewal-price-flow,
.renewal-price-flow * {
  box-sizing: border-box;
}

main.price section.renewal-price-flow {
  width: 100%;
  margin: 0;
  padding: 56px 16px 64px;
  background: linear-gradient(to bottom, #f1faf2, #fff);
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-flow__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

/* ---- headline ---- */

main.price .renewal-price-flow__title {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 49px;
  text-align: center;
}

.renewal-price-flow__leaf {
  display: block;
  flex: 0 0 110px;
  width: 110px;
  height: auto;
}

.renewal-price-flow__title-line {
  display: block;
  white-space: nowrap;
}

main.price .renewal-price-flow__title em {
  color: #10ad5b;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
}

/* the second line opens with a 32px run before the accent */
.renewal-price-flow__title-line:last-child {
  font-size: 32px;
}

.renewal-price-flow__title-line:last-child em {
  font-size: 32px;
}

/* ---- lead ---- */

main.price .renewal-price-flow__lead {
  margin: 26px 0 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  text-align: center;
}

main.price .renewal-price-flow__lead strong {
  font-weight: 700;
}

/* ---- cards ---- */

main.price .renewal-price-flow__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px 18px;
  width: 100%;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-flow__card {
  display: flex;
  flex-direction: column;
  gap: 5px;
  justify-content: center;
  margin: 0;
  padding: 16px;
  border: 2px solid #d9efd9;
  border-radius: 12px;
  background: #fff;
  list-style: none;
  filter: drop-shadow(0 6px 8px rgba(79, 171, 99, 0.06));
}

main.price .renewal-price-flow__card-title {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 5px 8px 5px 0;
  border: 0;
  border-bottom: 2.67px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 26.9px;
  text-align: left;
}

.renewal-price-flow__card-body {
  display: flex;
  gap: 5px;
  align-items: center;
}

main.price .renewal-price-flow__card-desc {
  flex: 1 1 auto;
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}

.renewal-price-flow__card-thumb {
  display: flex;
  flex: 0 0 92px;
  align-items: center;
  justify-content: center;
  width: 92px;
  height: 92px;
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
}

.renewal-price-flow__card-thumb img {
  display: block;
  width: 85px;
  height: 75px;
  object-fit: contain;
}

/* ---- SP (Figma 228:589 / 228:591) ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-flow {
    padding: 40px 15px;
  }

  .renewal-price-flow__inner {
    width: 344px;
    align-items: stretch;
  }

  /* the leaves sit at the outer edges and overlap the centred headline,
     so they are taken out of flow rather than laid out as flex siblings */
  main.price .renewal-price-flow__title {
    position: relative;
    display: block;
    gap: 0;
    min-height: 104px;
    padding: 0;
    font-size: 19px;
    line-height: 34.56px;
  }

  .renewal-price-flow__leaf {
    position: absolute;
    top: 35px;
    flex: none;
    width: 97.84px;
  }

  .renewal-price-flow__leaf--left {
    left: 0;
  }

  .renewal-price-flow__leaf--right {
    right: 0;
  }

  .renewal-price-flow__title-text {
    position: relative;
    z-index: 1;
    display: block;
  }

  main.price .renewal-price-flow__title em,
  .renewal-price-flow__title-line:last-child,
  .renewal-price-flow__title-line:last-child em {
    font-size: 21.6px;
  }

  main.price .renewal-price-flow__lead {
    margin-top: 24px;
    font-size: 15px;
    line-height: 27px;
    text-align: left;
  }

  main.price .renewal-price-flow__cards {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 16px;
  }

  main.price .renewal-price-flow__card {
    padding: 16px 16px 10px;
  }

  main.price .renewal-price-flow__card-title {
    padding: 0 8px 5px 0;
    font-size: 17px;
    line-height: 27.2px;
  }

  main.price .renewal-price-flow__card-desc {
    font-size: 15px;
  }

  /* the PC node breaks each description by hand; the SP node lets the same
     sentence flow and wrap on its own, so the hard breaks are switched off */
  main.price .renewal-price-flow__card-desc br {
    display: none;
  }

  .renewal-price-flow__card-thumb {
    flex: 0 0 70px;
    width: 70px;
    height: 70px;
    border-radius: 9.13px;
  }

  .renewal-price-flow__card-thumb img {
    width: 64.64px;
    height: 57.09px;
  }
}


/* ===== 他院との違い (Figma PC 143:131 / SP 228:1407) =====
   The comparison grid is a single exported image — the node group is literally
   named `img` — so it is placed as one picture rather than rebuilt as a table.
   PC uses the 941px wide version; SP swaps in the vertically stacked artwork. */

.renewal-price-compare,
.renewal-price-compare * {
  box-sizing: border-box;
}

main.price section.renewal-price-compare {
  width: 100%;
  margin: 0;
  padding: 0 16px 64px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-compare__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-compare__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65.33px;
  margin: 0 0 32px;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.renewal-price-compare__scroller {
  width: 100%;
  max-width: 941px;
}

main.price .renewal-price-compare__table {
  display: block;
  width: 941px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-compare__table img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

/* 指示バーはSPだけ */
.renewal-price-compare__bar {
  display: none;
}

main.price .renewal-price-compare__note {
  margin: 20px 0 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  text-align: center;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-compare {
    padding: 0 16px 40px;
  }

  main.price .renewal-price-compare__title {
    height: auto;
    margin-bottom: 24px;
    font-size: 20px;
  }

  /* SP版の表は実寸のまま横スクロールさせる。端末のスクロールバーは
     オーバーレイ表示で常時見えないため、指示バーは実体として描画する */
  .renewal-price-compare__scroller {
    width: 100%;
    max-width: none;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .renewal-price-compare__scroller::-webkit-scrollbar {
    display: none;
  }

  /* SP画像は2倍書き出し（1272x804）。表示幅は指定値の710px */
  main.price .renewal-price-compare__table {
    width: 760px;
    max-width: none;
    margin: 0;
  }

  .renewal-price-compare__bar {
    position: relative;
    width: 100%;
    height: 10px;
    margin-top: 12px;
    border-radius: 10px;
    background: #ededed;
  }

  /* 表が収まる幅ではバーを出さない（スクリプトが付けるクラスで判定） */
  .renewal-price-compare.is-scrollable .renewal-price-compare__bar {
    display: block;
  }

  .renewal-price-compare__bar-thumb {
    position: absolute;
    top: 1px;
    left: 0;
    width: 40%;
    height: 8px;
    border-radius: 10px;
    background: #4fab63;
  }

  /* the node sets 12px here; raised to the 15px minimum */
  main.price .renewal-price-compare__note {
    margin-top: 16px;
    font-size: 15px;
    line-height: 24px;
    text-align: left;
  }
}

/* ===== 患者さんからの声 (Figma 143:440) =====
   TOPページ（front-page.php）の声コンポーネントをそのまま流用している。
   TOP の CSS は触らない約束なので、2026-renewal.css から該当ルールだけを抜き
   出し、このセクション配下にスコープし直したものを以下に複製している。
   マークアップ側のクラス名も TOP と同じなので、スライダーとモーダルの JS
   （2026-renewal-voice-cards.js / -voice-videos.js）はそのまま動く。 */

.renewal-price-voice,
.renewal-price-voice * {
  box-sizing: border-box;
}

main.price section.renewal-price-voice {
  --voices-slide-width: 332px;
  --voices-slide-height: 220.93px;
  width: 100%;
  margin: 0;
  padding: 0 16px 80px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-voice__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 37px;
  width: 1040px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-voice__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1020px;
  max-width: 100%;
  height: 65.33px;
  margin: 0;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

/* ---- 以下 2026-renewal.css からの複製（スコープのみ変更） ---- */

main.price .renewal-price-voice .cont2-slider__viewport {
  width: calc(100% - 20px);
  max-width: 1020px;
  height: var(--voices-slide-height);
  margin: 0 auto;
  overflow: hidden;
}

main.price .renewal-price-voice .cont2-slider__track {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: max-content;
  animation: renewal-voices-slide 141.23s linear infinite;
  will-change: transform;
}

main.price .renewal-price-voice .cont2-slider__group {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-start;
  gap: 8px;
}

main.price .renewal-price-voice .cont2-slider__item {
  display: block;
  flex: 0 0 var(--voices-slide-width);
  width: var(--voices-slide-width);
  height: var(--voices-slide-height) !important;
  margin: 0;
  border-radius: 4px;
  object-fit: cover;
}

@media screen and (max-width: 767.98px) {
  main.price .renewal-price-voice .cont2-slider__viewport {
    width: calc(100% - 32px);
    max-width: 370px;
  }
}

@media (prefers-reduced-motion: reduce) {
  main.price .renewal-price-voice .cont2-slider__track {
    animation: none;
  }
}

@keyframes renewal-voices-slide {
  to {
    transform: translate3d(calc(-50% - 4px), 0, 0);
  }
}

main.price .renewal-price-voice .voice-slider {
  width: min(1040px, calc(100vw - 32px));
  margin: 44px auto 0;
  font-family: Meiryo, "Yu Gothic", sans-serif;
}

main.price .renewal-price-voice .voice-slider__viewport {
  overflow: hidden;
  padding: 8px 0 16px;
}

main.price .renewal-price-voice .voice-slider__stage {
  position: relative;
}

main.price .renewal-price-voice .voice-slider__track {
  display: flex;
  gap: 21px;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 0.45s ease;
  will-change: transform;
}

main.price .renewal-price-voice .voice-card {
  box-sizing: border-box;
  display: flex;
  flex: 0 0 calc((100% - 50px) / 3);
  min-width: 0;
  min-height: 356px;
  padding: 14px;
  flex-direction: column;
  color: #1c2b2c;
  background: #fff;
  border: 2px solid #d9efd9;
  border-radius: 12px;
  box-shadow: 0 6px 8px rgba(79, 171, 99, 0.06);
}

main.price .renewal-price-voice .voice-card__header {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

main.price .renewal-price-voice .voice-card__thumb {
  width: 92px;
  height: 92px;
  overflow: hidden;
  border-radius: 12px;
}

main.price .renewal-price-voice .voice-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

main.price .renewal-price-voice .voice-card__summary {
  min-width: 0;
}

main.price .renewal-price-voice .voice-card__ttl {
  box-sizing: border-box;
  display: flex;
  min-height: 65px;
  margin: 0;
  padding: 7px 10px;
  align-items: center;
  color: #1c2b2c;
  background: #eff9df;
  border-left: 6px solid #4fab63;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.45;
}

main.price .renewal-price-voice .voice-card__profile {
  margin: 8px 0 0;
  color: #53615f;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.45;
}

main.price .renewal-price-voice .voice-card__subject {
  margin: 14px 0 0;
  color: #111;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
}

main.price .renewal-price-voice .voice-card__excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 4px 0 12px;
  color: #333;
  font-size: 15px;
  line-height: 1.75;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

main.price .renewal-price-voice .voice-card__link {
  display: inline-flex;
  width: 106px;
  min-height: 35px;
  margin-top: auto;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #4fab63;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

main.price .renewal-price-voice .voice-card__link:hover,
main.price .renewal-price-voice .voice-card__link:focus-visible {
  color: #fff;
  background: #378f4b;
}

main.price .renewal-price-voice .voice-slider__dots {
  display: flex;
  margin-top: 12px;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

main.price .renewal-price-voice .voice-slider__button {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  background: #4fab63;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  transform: translateY(-50%);
}

main.price .renewal-price-voice .voice-slider__button--prev {
  left: -58px;
}

main.price .renewal-price-voice .voice-slider__button--next {
  right: -58px;
}

main.price .renewal-price-voice .voice-slider__button img {
  display: block;
  width: 9px;
  height: auto;
}

main.price .renewal-price-voice .voice-slider__button--prev img {
  transform: rotate(180deg);
}

main.price .renewal-price-voice .voice-slider__button:disabled {
  opacity: 0.32;
  cursor: default;
}

main.price .renewal-price-voice .voice-slider__dot {
  display: block;
  width: 10px;
  height: 10px;
  padding: 0;
  background: #d5e6d8;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}

main.price .renewal-price-voice .voice-slider__dot[aria-current="true"] {
  background: #4fab63;
  transform: scale(1.2);
}

@media (max-width: 767px) {
  main.price .renewal-price-voice .voice-slider {
    width: min(343.33px, calc(100vw - 32px));
    margin-top: 32px;
  }

  main.price .renewal-price-voice .voice-slider__track {
    gap: 16px;
  }

  main.price .renewal-price-voice .voice-slider__button {
    width: 36px;
    height: 36px;
  }

  main.price .renewal-price-voice .voice-slider__button--prev {
    left: -12px;
  }

  main.price .renewal-price-voice .voice-slider__button--next {
    right: -12px;
  }

  main.price .renewal-price-voice .voice-card {
    flex-basis: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  main.price .renewal-price-voice .voice-slider__track {
    transition: none;
  }
}

main.price .renewal-price-voice .renewal-voice-videos__list {
  display: flex;
  gap: 18px;
  align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-voice .renewal-voice-videos__item {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 19px;
  min-width: 0;
  min-height: 442px;
  margin: 0;
  padding: 1px;
  overflow: hidden;
  border: 1px solid #b9e5c9;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(79, 72, 65, 0.08);
  list-style: none;
}

main.price .renewal-price-voice .renewal-voice-videos__item::before,
main.price .renewal-price-voice .renewal-voice-videos__item::after {
  content: none;
}

main.price .renewal-price-voice .renewal-voice-videos__video {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: calc(100% + 2px);
  margin: -1px -1px 0;
  overflow: hidden;
  border: 6px solid #59c68c;
  background: #111;
  cursor: pointer;
}

main.price .renewal-price-voice .renewal-voice-videos__video img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 322 / 176.38;
  margin: 0;
  object-fit: cover;
}

main.price .renewal-price-voice .renewal-voice-videos__video::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.28));
}

main.price .renewal-price-voice .renewal-voice-videos__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 58px;
  height: 40px;
  transform: translate3d(-50%, -50%, 0);
  border-radius: 12px;
  background: #14ad59;
  box-shadow: 0 8px 9px rgba(0, 0, 0, 0.22);
  transition: background-color 0.15s ease;
}

main.price .renewal-price-voice .renewal-voice-videos__play::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 22.15px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid #fff;
}

main.price .renewal-price-voice .renewal-voice-videos__video:hover .renewal-voice-videos__play,
main.price .renewal-price-voice .renewal-voice-videos__video:focus-visible .renewal-voice-videos__play {
  background: #0f9a4d;
}

.renewal-voice-videos__modal .mfp-content {
  width: min(1000px, 92vw);
  max-width: 100%;
}

.renewal-voice-videos__modal .mfp-iframe-scaler {
  padding-top: 56.25%;
}

.renewal-voice-videos__modal .mfp-iframe-holder .mfp-close {
  top: -44px;
  right: -6px;
  padding-right: 0;
  color: #fff;
  opacity: 1;
}

.renewal-voice-videos__modal.mfp-bg {
  background: #000;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.renewal-voice-videos__modal.mfp-bg.mfp-ready {
  opacity: 0.85;
}

.renewal-voice-videos__modal.mfp-bg.mfp-removing {
  opacity: 0;
}

.renewal-voice-videos__modal.mfp-wrap .mfp-content {
  opacity: 0;
  transform: scale(0.97);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.renewal-voice-videos__modal.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
  transform: scale(1);
}

.renewal-voice-videos__modal.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0;
  transform: scale(0.97);
}

@media (prefers-reduced-motion: reduce) {
  .renewal-voice-videos__modal.mfp-bg,
  .renewal-voice-videos__modal.mfp-wrap .mfp-content {
    transition: none;
  }
}

main.price .renewal-price-voice .renewal-voice-videos__body {
  display: flex;
  flex-direction: column;
  gap: 9px;
  width: calc(100% - 27.78px);
  margin: 0 auto;
}

main.price .renewal-price-voice .renewal-voice-videos__heading {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #3f2f2b;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "MS PMincho", serif;
  font-size: 19px;
  font-weight: 600;
  line-height: 26.6px;
}

main.price .renewal-price-voice .renewal-voice-videos__copy {
  color: #333;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 25.9px;
}

main.price .renewal-price-voice .renewal-voice-videos .renewal-voice-videos__copy p {
  margin: 0;
}

main.price .renewal-price-voice .renewal-voice-videos__copy em {
  color: #14ad59;
  font-style: normal;
}

@media screen and (max-width: 767.98px) {
  main.price .renewal-price-voice .renewal-voice-videos__list {
    flex-direction: column;
    gap: 20px;
  }

  main.price .renewal-price-voice .renewal-voice-videos__item {
    flex: 0 0 auto;
    min-height: 0;
    padding-bottom: 20px;
  }

  main.price .renewal-price-voice .renewal-voice-videos__body {
    width: calc(100% - 32px);
  }

  main.price .renewal-price-voice .renewal-voice-videos__heading {
    font-size: 17px;
    line-height: 24px;
  }

  main.price .renewal-price-voice .renewal-voice-videos__copy {
    font-size: 14px;
    line-height: 25.9px;
  }
}

/* ---- 料金ページ向けの調整 ---- */

/* 縦の間隔は __inner の gap が持つので、部品側の margin は殺す */
main.price .renewal-price-voice .voice-slider {
  width: 100%;
  margin: 0;
}

/* ノードでは動画カードは1枚で 762px。TOPは3枚並びなので幅を絞る */
.renewal-price-voice__videos {
  width: 762px;
  max-width: 100%;
}

main.price .renewal-price-voice .renewal-voice-videos__list {
  display: block;
}

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-voice {
    --voices-slide-width: min(332px, calc(100vw - 32px));
    --voices-slide-height: min(220.93px, calc((100vw - 32px) * 0.66545));
    padding: 0 0 40px;
  }

  .renewal-price-voice__inner {
    gap: 24px;
    width: 100%;
  }

  main.price .renewal-price-voice__title {
    width: calc(100vw - 32px);
    max-width: 370px;
    height: auto;
    padding-bottom: 12px;
    font-size: 20px;
    line-height: 1.5;
  }

  main.price .renewal-price-voice .voice-slider {
    width: min(343.33px, calc(100vw - 32px));
    margin: 0 auto;
  }

  .renewal-price-voice__videos {
    width: calc(100vw - 32px);
    max-width: 370px;
  }
}

/* ===== 店舗紹介 (Figma 162:40) =====
   TOPページの店舗ボックス（.renewal-store__box）のSPレイアウトをそのまま流用し、
   PCでは3院を横並びにしている。地図の埋め込みはSP版と同じく省略。 */

.renewal-price-store,
.renewal-price-store * {
  box-sizing: border-box;
}

main.price section.renewal-price-store {
  width: 100%;
  margin: 0;
  padding: 0 16px 80px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-store__inner {
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-store__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65.33px;
  margin: 0 0 30.67px;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.renewal-price-store__list {
  display: flex;
  gap: 5.5px;
  align-items: stretch;
}

.renewal-price-store__box {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: 21px 11px;
  border: 2px solid #bddbcb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 6px rgba(79, 171, 99, 0.08);
}

main.price .renewal-price-store__name {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 31.33px;
  text-align: center;
}

main.price .renewal-price-store__catch {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  text-align: center;
}

.renewal-price-store__photo {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 310 / 154;
}

main.price .renewal-price-store__photo img {
  display: block;
  width: 100%;
  height: 100% !important;
  margin: 0;
  object-fit: cover;
  object-position: center top;
}

main.price .renewal-price-store__hours-ttl {
  display: flex;
  align-items: center;
  height: 23.79px;
  margin: 0;
  padding: 0 0 0 5.33px;
  border: 0;
  border-left: 4.667px solid #14ad59;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 23.8px;
}

.renewal-price-store__table {
  width: 100%;
}

main.price .renewal-price-store__table img {
  display: block;
  width: 100%;
  height: auto !important;
  margin: 0;
}

/* the node sets 14px; kept at the TOP SP value, which also clears the 15px minimum */
main.price .renewal-price-store__notes p {
  margin: 0;
  color: #000;
  font-size: 15px;
  font-weight: 400;
  line-height: 24px;
}

.renewal-price-store__cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 64px;
  margin-top: auto;
  border-radius: 50px;
  background: #10ad5a;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none;
}

.renewal-price-store__cta:hover,
.renewal-price-store__cta:focus-visible {
  color: #fff;
  background: #0d9a4f;
}

.renewal-price-store__cta::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18.34px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-store {
    padding: 0 16px 40px;
  }

  .renewal-price-store__inner {
    width: 100%;
    max-width: 370px;
  }

  main.price .renewal-price-store__title {
    height: auto;
    margin-bottom: 24px;
    padding-bottom: 12px;
    font-size: 20px;
    line-height: 1.5;
  }

  .renewal-price-store__list {
    display: block;
  }

  .renewal-price-store__box + .renewal-price-store__box {
    margin-top: 15px;
  }
}

/* ===== 鍼灸で症状が緩和されるメカニズム (Figma PC 143:294 / SP 228:1511) =====
   ノードの summary.flow-step__head / li.flow-step という命名どおり、
   ネイティブの <details>/<summary> で開閉するアコーディオンとして実装。
   デザインが全項目を開いた状態で描かれているため、初期状態も open にしている。 */

.renewal-price-mechanism,
.renewal-price-mechanism * {
  box-sizing: border-box;
}

main.price section.renewal-price-mechanism {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  overflow: hidden;
  background: #f7fcef;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

main.price .renewal-price-mechanism__leaf {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  display: block;
  width: 380px;
  max-width: none;
  height: 255.6px !important;
  margin: 0;
  object-fit: cover;
  object-position: left top;
  pointer-events: none;
}

.renewal-price-mechanism__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-mechanism__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65.33px;
  margin: 0;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

main.price .renewal-price-mechanism__steps {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  margin: 0;
  padding: 30px;
  background: #fff;
  list-style: none;
}

main.price .renewal-price-mechanism__step {
  margin: 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-mechanism__step::before,
main.price .renewal-price-mechanism__step::after {
  content: none;
}

.renewal-price-mechanism__details {
  border: 1px solid #b9e5c9;
  border-radius: 8px;
  background: #fff;
}

/* ---- head ---- */

main.price .renewal-price-mechanism__head {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 7px 7px 0 0;
  background: #4fab63;
  cursor: pointer;
  list-style: none;
}

main.price .renewal-price-mechanism__head::-webkit-details-marker {
  display: none;
}

/* closed: the card is just the green bar, so all four corners round off */
.renewal-price-mechanism__details:not([open]) .renewal-price-mechanism__head {
  border-radius: 7px;
}

.renewal-price-mechanism__badge {
  display: flex;
  flex: 0 0 38px;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 24px;
  background: #fff;
  color: #10ad5b;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}

main.price .renewal-price-mechanism__head-ttl {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0 16px 0 0;
  border: 0;
  background: none;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 28.8px;
}

/* the chevron flips from down (closed) to up (open) */
main.price .renewal-price-mechanism__head::after {
  content: "";
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  margin-right: 3px;
  border-right: 2.667px solid #fff;
  border-bottom: 2.667px solid #fff;
  transform: translateY(-3px) rotate(-135deg);
}

.renewal-price-mechanism__details:not([open]) .renewal-price-mechanism__head::after {
  transform: translateY(-3px) rotate(45deg);
}

/* ---- body ---- */

/* 写真はPC用（このブロックの直下）とSP用（本文中）の2つを置き、
   メディアクエリで表示を切り替える。SP用は本文の任意の位置に差し込める。 */
.renewal-price-mechanism__body {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  justify-content: center;
  padding: 20px 0;
}

.renewal-price-mechanism__text {
  display: flex;
  flex: 0 1 685px;
  flex-direction: column;
  gap: 16px;
  width: 685px;
  max-width: 685px;
}

.renewal-price-mechanism__block--q:not(:last-child) {
  padding-bottom: 16px;
  border-bottom: 1px solid #dfe8df;
}

main.price .renewal-price-mechanism__q {
  position: relative;
  margin: 0 0 8px;
  padding: 0 0 0 19px;
  border: 0;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
}

.renewal-price-mechanism__q::before {
  content: "";
  position: absolute;
  top: 0.65em;
  left: 0;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #10ad5a;
}

main.price .renewal-price-mechanism__text p {
  margin: 0;
  color: #000;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
}

/* the node marks the paragraph breaks with an empty line.
   写真を段落の途中に挑むと p + p の隣接が切れるので、
   写真の直後の p にも同じ余白を与える（PCは写真が絶対配置なので見た目変化なし） */
main.price .renewal-price-mechanism__text p + p,
main.price .renewal-price-mechanism__text .renewal-price-mechanism__img + p {
  margin-top: 1.7em;
}

main.price .renewal-price-mechanism__text strong {
  color: #10ad5a;
  font-weight: 700;
}

.renewal-price-mechanism__img {
  flex: 0 0 232px;
  width: 232px;
  height: 148.14px;
  overflow: hidden;
  border: 6px solid #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

/* SP用の写真はPCでは出さない */
.renewal-price-mechanism__img--sp {
  display: none;
}

main.price .renewal-price-mechanism__img img {
  display: block;
  width: 100%;
  height: 100% !important;
  margin: 0;
  object-fit: cover;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-mechanism {
    padding: 48px 16px;
  }

  main.price .renewal-price-mechanism__leaf {
    width: 123.85px;
    height: 83.3px !important;
  }

  .renewal-price-mechanism__inner {
    gap: 24px;
    width: 100%;
    max-width: 370px;
  }

  main.price .renewal-price-mechanism__title {
    height: auto;
    font-size: 20px;
    line-height: 1.5;
  }

  main.price .renewal-price-mechanism__steps {
    gap: 16px;
    padding: 18px 11px;
  }

  main.price .renewal-price-mechanism__head {
    gap: 12px;
    padding: 10px 12px;
    min-height: 71px;
  }

  .renewal-price-mechanism__badge {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
    color: #10ad5a;
    font-size: 17px;
  }

  main.price .renewal-price-mechanism__head-ttl {
    padding-right: 8px;
    font-size: 17px;
    line-height: 25.5px;
  }

  main.price .renewal-price-mechanism__head::after {
    width: 10px;
    height: 10px;
    margin-right: 2px;
    border-right-width: 2px;
    border-bottom-width: 2px;
  }

  /* SPは縦積み。PC用の写真は隠し、本文中のSP用を表示する */
  .renewal-price-mechanism__body {
    flex-direction: column;
    gap: 16px;
    align-items: center;
    padding: 16px 0;
  }

  .renewal-price-mechanism__text {
    flex: 0 0 auto;
    width: 290px;
    max-width: 100%;
  }

  main.price .renewal-price-mechanism__q {
    font-size: 16px;
    line-height: 1.6;
  }

  .renewal-price-mechanism__body > .renewal-price-mechanism__img {
    display: none;
  }

  .renewal-price-mechanism__img--sp {
    display: block;
    width: 290px;
    max-width: 100%;
    height: 185px;
    margin: 16px auto;
    border-width: 7.5px;
  }
}

/* ===== 初めての鍼灸治療の流れ (Figma 143:774) =====
   TOPページの sec12（.renewal-flow）をマークアップごと流用している。
   TOP の CSS は触らない約束なので、2026-renewal.css から該当ルールだけを
   抜き出し、このセクション配下にスコープし直したものを複製している。
   ノードどおり STEP1 だけ open。 */

main.price section.renewal-price-visit,
main.price section.renewal-price-visit * {
  box-sizing: border-box;
}

main.price section.renewal-price-visit {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 72px 16px 40px;
  overflow: hidden;
  background-color: #f7fcef;
  /* the node's bottom-left foliage is the same export the TOP page uses */
  background-image: url("../img/renewal/symptom/leaf-bottom.png");
  background-position: left bottom;
  background-repeat: no-repeat;
  background-size: 360px auto;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

/* ---- 以下 2026-renewal.css からの複製（スコープのみ変更） ---- */

@keyframes renewal-voices-slide {
  to {
    transform: translate3d(calc(-50% - 4px), 0, 0);
  }
}

main.price .renewal-price-visit .renewal-flow__inner {
  position: relative;
  z-index: 1;
  width: 1040.33px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-visit .renewal-flow__title {
  width: 1020.33px;
  max-width: 100%;
  height: 68.67px;
  margin: 0 auto;
  padding: 0 0 18px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 48px;
  text-align: center;
}

main.price .renewal-price-visit .renewal-flow__title strong {
  font-size: 32px;
  font-weight: 700;
}

main.price .renewal-price-visit .renewal-flow__steps {
  width: 100%;
  margin: 28.66px 0 0;
  padding: 32px;
  background: #fff;
  list-style: none;
}

main.price .renewal-price-visit .renewal-flow__step {
  position: relative;
  margin: 0 0 40px;
  padding: 0;
  border: 0;
  list-style: none;
}

main.price .renewal-price-visit .renewal-flow__step:last-child {
  margin-bottom: 0;
}

main.price .renewal-price-visit .renewal-flow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  bottom: -30.23px;
  left: 50%;
  width: 14px;
  height: 14px;
  border-right: 2.667px solid #b7b7b7;
  border-bottom: 2.667px solid #b7b7b7;
  transform: translateX(-50%) rotate(45deg);
}

main.price .renewal-price-visit .renewal-flow__details {
  border: 1px solid #b9e5c9;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

main.price .renewal-price-visit .renewal-flow__head {
  position: relative;
  display: flex;
  align-items: center;
  height: 76px;
  padding: 0 48px 0 18px;
  background: #ecf5f0;
  cursor: pointer;
  list-style: none;
}

main.price .renewal-price-visit .renewal-flow__head::-webkit-details-marker {
  display: none;
}

main.price .renewal-price-visit .renewal-flow__head::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 19.51px;
  width: 12px;
  height: 12px;
  border-right: 2.667px solid #14ad59;
  border-bottom: 2.667px solid #14ad59;
  transform: translate(0, -70%) rotate(45deg);
}

main.price .renewal-price-visit .renewal-flow__details[open] .renewal-flow__head::after {
  transform: translate(0, -30%) rotate(-135deg);
}

main.price .renewal-price-visit .renewal-flow__badge {
  display: flex;
  flex: 0 0 48px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 24px;
  background: #10ad5b;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-weight: 700;
}

main.price .renewal-price-visit .renewal-flow__badge small {
  font-size: 10px;
  line-height: 10px;
}

main.price .renewal-price-visit .renewal-flow__badge b {
  margin-top: 6px;
  font-size: 20px;
  font-weight: 700;
  line-height: 20px;
}

main.price .renewal-price-visit .renewal-flow__label {
  margin-left: 16px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 28.8px;
}

main.price .renewal-price-visit .renewal-flow__main {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px 30px 28px 82px;
  background: #fff;
}

main.price .renewal-price-visit .renewal-flow__copy {
  flex: 1 1 auto;
  min-width: 0;
}

main.price .renewal-price-visit .renewal-flow__copy p {
  margin: 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

main.price .renewal-price-visit .renewal-flow__img {
  flex: 0 0 232px;
  width: 232px;
  height: 148.14px;
  overflow: hidden;
  border: 6px solid #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

main.price .renewal-price-visit .renewal-flow__img img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}

main.price .renewal-price-visit .renewal-flow__note {
  width: 100%;
  margin: 16px 0 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 12.8px;
  font-weight: 400;
  line-height: 20.48px;
  text-align: center;
}

@media screen and (max-width: 767.98px) {
  main.price .renewal-price-visit .renewal-flow__inner {
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  main.price .renewal-price-visit .renewal-flow__title {
    width: 100%;
    height: auto;
    padding-bottom: 14px;
    font-size: 17px;
    line-height: 34px;
  }

  main.price .renewal-price-visit .renewal-flow__title strong {
    font-size: 21px;
  }

  main.price .renewal-price-visit .renewal-flow__steps {
    margin-top: 20px;
    padding: 16px;
  }

  main.price .renewal-price-visit .renewal-flow__step {
    margin-bottom: 32px;
  }

  main.price .renewal-price-visit .renewal-flow__step:not(:last-child)::after {
    bottom: -24px;
    width: 11px;
    height: 11px;
  }

  main.price .renewal-price-visit .renewal-flow__head {
    height: auto;
    min-height: 64px;
    padding: 10px 34px 10px 10px;
  }

  main.price .renewal-price-visit .renewal-flow__head::after {
    right: 12px;
    width: 10px;
    height: 10px;
  }

  main.price .renewal-price-visit .renewal-flow__badge {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
  }

  main.price .renewal-price-visit .renewal-flow__badge b {
    margin-top: 4px;
    font-size: 17px;
    line-height: 17px;
  }

  main.price .renewal-price-visit .renewal-flow__label {
    margin-left: 10px;
    font-size: 15px;
    line-height: 22px;
  }

  main.price .renewal-price-visit .renewal-flow__main {
    flex-direction: column;
    gap: 12px;
    padding: 16px;
  }

  main.price .renewal-price-visit .renewal-flow__copy p {
    font-size: 14px;
    line-height: 25.2px;
  }

  main.price .renewal-price-visit .renewal-flow__img {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 232 / 148.14;
  }

  main.price .renewal-price-visit .renewal-flow__note {
    font-size: 12px;
    line-height: 19.2px;
    text-align: left;
  }
}

/* ---- 料金ページ向けの調整 ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-visit {
    padding: 40px 16px 32px;
    background-size: 240px auto;
  }
}

/* ===== 期間と頻度の目安 (Figma PC 143:589 / SP 228:966) =====
   4つのアイコンは1枚のスプライトから切り出して個別のPNGにしている。 */

.renewal-price-freq,
.renewal-price-freq * {
  box-sizing: border-box;
}

main.price section.renewal-price-freq {
  width: 100%;
  margin: 0;
  padding: 56px 16px;
  background: #fffdf3;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-freq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-freq__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65.33px;
  margin: 0;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 30px;
  text-align: center;
}

main.price .renewal-price-freq__lead {
  width: 100%;
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

main.price .renewal-price-freq__lead strong {
  color: #000;
  font-weight: 700;
}

.renewal-price-freq__group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
}

main.price .renewal-price-freq__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: 784.5px;
  max-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-freq__card {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0;
  padding: 16px;
  border: 2px solid #d9efd9;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 8px rgba(79, 171, 99, 0.06);
  list-style: none;
}

main.price .renewal-price-freq__card::before,
main.price .renewal-price-freq__card::after {
  content: none;
}

.renewal-price-freq__icon {
  flex: 0 0 84px;
  width: 84px;
  height: 129px;
}

main.price .renewal-price-freq__icon img {
  display: block;
  width: 100%;
  height: 100% !important;
  margin: 0;
  object-fit: contain;
}

.renewal-price-freq__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

main.price .renewal-price-freq__ttl {
  display: flex;
  align-items: center;
  min-height: 29.33px;
  margin: 0;
  padding: 0 15px;
  border: 0;
  border-left: 4.667px solid #14ad59;
  background: none;
  color: #1c2b2c;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 26.9px;
}

main.price .renewal-price-freq__desc {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}

main.price .renewal-price-freq__desc strong {
  color: #000;
  font-weight: 700;
}

/* the node sets 12.8px here */
main.price .renewal-price-freq__note {
  width: 100%;
  margin: 0;
  color: #000;
  font-size: 12.8px;
  font-weight: 400;
  line-height: 20.48px;
  text-align: center;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-freq {
    padding: 40px 16px;
  }

  .renewal-price-freq__inner {
    gap: 24px;
    width: 100%;
    max-width: 370px;
  }

  main.price .renewal-price-freq__title {
    height: 48.67px;
    font-size: 20px;
    line-height: 1.5;
  }

  main.price .renewal-price-freq__lead {
    font-size: 15px;
    line-height: 27px;
  }

  .renewal-price-freq__group {
    gap: 16px;
    align-items: flex-start;
  }

  /* the SP node stacks the cards in one column */
  main.price .renewal-price-freq__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    width: 100%;
  }

  main.price .renewal-price-freq__card {
    gap: 8px;
  }

  .renewal-price-freq__icon {
    flex-basis: 59.65px;
    width: 59.65px;
    height: 91.6px;
  }

  main.price .renewal-price-freq__ttl {
    font-size: 17px;
    line-height: 23.8px;
  }

  main.price .renewal-price-freq__desc {
    font-size: 15px;
  }

  /* the node sets 12px here */
  main.price .renewal-price-freq__note {
    font-size: 12px;
    line-height: 19.2px;
    text-align: left;
  }
}

/* ===== 施術料金・時間 (Figma 143:632) =====
   既存の cont01-2025 / cont02 / cont03 の内容を移動・改修したもの。
   写真・決済アイコン・見出しの葉はすべて既存アセットを流用している。 */

.renewal-price-menu,
.renewal-price-menu * {
  box-sizing: border-box;
}

main.price section.renewal-price-menu {
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-menu__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-menu__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65.33px;
  margin: 0;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 30px;
  text-align: center;
}

/* ---- コースカード ---- */

main.price .renewal-price-menu__cards {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 964px;
  max-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-menu__card {
  display: flex;
  gap: 20px;
  align-items: center;
  margin: 0;
  padding: 32px;
  overflow: hidden;
  border: 2px solid #d9efd9;
  border-radius: 12px;
  background: #fefdef;
  box-shadow: 0 6px 18px rgba(79, 171, 99, 0.06);
  list-style: none;
}

main.price .renewal-price-menu__card::before,
main.price .renewal-price-menu__card::after {
  content: none;
}

.renewal-price-menu__body {
  display: flex;
  flex: 0 1 480px;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  width: 480px;
}

main.price .renewal-price-menu__ttl {
  display: flex;
  align-items: center;
  min-height: 29px;
  margin: 0;
  padding: 0 15px;
  border: 0;
  border-left: 4.667px solid #14ad59;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 26.88px;
}

main.price .renewal-price-menu__desc p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 25.6px;
}

main.price .renewal-price-menu__link a {
  color: #10ad5a;
  text-decoration: underline;
}

main.price .renewal-price-menu__table {
  width: 473px;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  border-collapse: collapse;
  background: #fff;
  table-layout: fixed;
}

main.price .renewal-price-menu__table th,
main.price .renewal-price-menu__table td {
  height: 44px;
  padding: 8px 19px;
  border: 1px solid #dfe8df;
  font-size: 16px;
  line-height: 27.2px;
  text-align: left;
  vertical-align: middle;
}

main.price .renewal-price-menu__table th {
  width: 180px;
  background: #10ad5a;
  color: #fff;
  font-weight: 700;
}

main.price .renewal-price-menu__table th.renewal-price-menu__th--orange {
  background: #f69607;
}

.renewal-price-menu__num {
  font-size: 26px;
  font-weight: 700;
  line-height: 27.2px;
}

.renewal-price-menu__num--accent {
  color: #f9995c;
}

.renewal-price-menu__unit {
  font-size: 16px;
  font-weight: 700;
  line-height: 27.2px;
}

.renewal-price-menu__photo {
  flex: 0 0 400px;
  width: 400px;
  height: 240px;
  overflow: hidden;
}

main.price .renewal-price-menu__photo img {
  display: block;
  width: 100%;
  height: 100% !important;
  margin: 0;
  object-fit: cover;
}

/* ---- 施術時間のめやす ---- */

.renewal-price-menu__duration {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 964px;
  max-width: 100%;
  padding: 60px 0;
}

main.price .renewal-price-menu__duration-ttl {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #10ad5b;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 33.28px;
  text-align: center;
}

main.price .renewal-price-menu__duration-table {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

main.price .renewal-price-menu__duration-table th,
main.price .renewal-price-menu__duration-table td {
  padding: 8px 11px 8.59px;
  border: 1px solid #dfe8df;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 25.6px;
  text-align: center;
  vertical-align: middle;
}

main.price .renewal-price-menu__duration-table thead th {
  background: #eff9df;
}

main.price .renewal-price-menu__duration-note {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 25.6px;
}

/* ---- おためし鍼灸パネル ---- */

.renewal-price-menu__panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  width: 1020px;
  max-width: 100%;
  padding-bottom: 40px;
  border: 1px solid #10ad5a;
  border-radius: 12px;
  background: #fffdf3;
}

main.price .renewal-price-menu__panel-ttl {
  width: 100%;
  margin: 0;
  padding: 19.39px 0 15.49px;
  border-radius: 11px 11px 0 0;
  background-color: #6bb81e;
  background-image: url("../img/price/img_top-01.png"), url("../img/price/img_top-02.png");
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-size: 18.78% auto, 18.78% auto;
  color: #fff;
  font-size: 32px;
  font-weight: 700;
  line-height: 51.2px;
  text-align: center;
}

.renewal-price-menu__faq {
  width: 960px;
  max-width: calc(100% - 32px);
  border: 1px solid #b9e5c9;
  border-radius: 8px;
  background: #fff;
}

main.price .renewal-price-menu__faq-head {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  padding: 16px 20px;
  border-radius: 7px 7px 0 0;
  background: #ecf5f0;
  color: #000;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}

main.price .renewal-price-menu__faq-head::-webkit-details-marker {
  display: none;
}

.renewal-price-menu__faq:not([open]) .renewal-price-menu__faq-head {
  border-radius: 7px;
}

main.price .renewal-price-menu__faq-head::after {
  content: "";
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  border-right: 2.667px solid #10ad5b;
  border-bottom: 2.667px solid #10ad5b;
  transform: translateY(-3px) rotate(-135deg);
}

.renewal-price-menu__faq:not([open]) .renewal-price-menu__faq-head::after {
  transform: translateY(-3px) rotate(45deg);
}

main.price .renewal-price-menu__faq-head em,
main.price .renewal-price-menu__faq-body em {
  color: #10ad5b;
  font-style: normal;
  font-weight: 700;
}

main.price .renewal-price-menu__faq-head b,
main.price .renewal-price-menu__faq-body b {
  color: #f69607;
  font-weight: 700;
}

.renewal-price-menu__faq-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 920px;
  max-width: calc(100% - 40px);
  margin: 0 auto;
  padding: 20px 0;
}

main.price .renewal-price-menu__faq-body p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 32px;
}

main.price .renewal-price-menu__faq-table {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

main.price .renewal-price-menu__faq-table th,
main.price .renewal-price-menu__faq-table td {
  padding: 9.65px 11.16px 10.66px;
  border: 1px solid #c3c3c3;
  color: #000;
  font-size: 16px;
  line-height: 32px;
  text-align: center;
  vertical-align: middle;
}

main.price .renewal-price-menu__faq-table th {
  padding: 13.5px 15px 14.5px;
  color: #fff;
  font-weight: 700;
}

main.price .renewal-price-menu__faq-th--green {
  background: #10ad5b;
}

main.price .renewal-price-menu__faq-th--orange {
  background: #f69607;
}

/* ---- 注記 ---- */

.renewal-price-menu__notes {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 960px;
  max-width: 100%;
}

main.price .renewal-price-menu__notes p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 25.6px;
}

main.price .renewal-price-menu__pay img {
  display: block;
  width: 577px;
  max-width: 100%;
  height: auto !important;
  margin: 0;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-menu {
    padding: 40px 16px;
  }

  .renewal-price-menu__inner {
    gap: 24px;
    width: 100%;
    max-width: 370px;
  }

  main.price .renewal-price-menu__title {
    height: auto;
    padding-bottom: 12px;
    font-size: 20px;
    line-height: 1.5;
  }

  main.price .renewal-price-menu__cards {
    gap: 16px;
    width: 100%;
  }

  /* the card stacks: copy first, photo underneath */
  main.price .renewal-price-menu__card {
    flex-direction: column;
    gap: 16px;
    align-items: stretch;
    padding: 16px;
  }

  .renewal-price-menu__body {
    flex: 0 0 auto;
    width: 100%;
  }

  main.price .renewal-price-menu__ttl {
    font-size: 17px;
    line-height: 23.8px;
  }

  main.price .renewal-price-menu__desc p {
    font-size: 15px;
    line-height: 25.5px;
  }

  main.price .renewal-price-menu__table th,
  main.price .renewal-price-menu__table td {
    padding: 6px 10px;
    font-size: 15px;
  }

  main.price .renewal-price-menu__table th {
    width: 40%;
  }

  .renewal-price-menu__num {
    font-size: 22px;
  }

  .renewal-price-menu__unit {
    font-size: 15px;
  }

  .renewal-price-menu__photo {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 400 / 240;
  }

  .renewal-price-menu__duration {
    width: 100%;
    padding: 24px 0;
  }

  main.price .renewal-price-menu__duration-ttl {
    font-size: 20px;
    line-height: 1.5;
  }

  main.price .renewal-price-menu__duration-table th,
  main.price .renewal-price-menu__duration-table td {
    padding: 6px 4px;
    font-size: 15px;
    line-height: 1.5;
  }

  .renewal-price-menu__panel {
    gap: 20px;
    width: 100%;
    padding-bottom: 24px;
  }

  main.price .renewal-price-menu__panel-ttl {
    padding: 14px 8px 12px;
    background-size: 24% auto, 24% auto;
    font-size: 20px;
    line-height: 1.5;
  }

  .renewal-price-menu__faq {
    width: calc(100% - 16px);
    max-width: none;
  }

  main.price .renewal-price-menu__faq-head {
    gap: 10px;
    min-height: 0;
    padding: 12px 14px;
    font-size: 17px;
  }

  .renewal-price-menu__faq-body {
    width: calc(100% - 24px);
    max-width: none;
    padding: 16px 0;
  }

  main.price .renewal-price-menu__faq-body p {
    font-size: 15px;
    line-height: 27px;
  }

  main.price .renewal-price-menu__faq-table th,
  main.price .renewal-price-menu__faq-table td {
    padding: 8px 6px;
    font-size: 15px;
    line-height: 1.6;
  }

  .renewal-price-menu__notes {
    width: 100%;
  }

  main.price .renewal-price-menu__notes p {
    font-size: 15px;
    line-height: 25.5px;
  }
}

/* ===== よくあるご質問と回答 (Figma 143:837) =====
   アコーディオンは店舗ページと同じもの（テーマの .faq）。ただし tenpo.css は
   料金ページでは読み込まれないため、該当ルールをこのセクション配下に複製した。
   マークアップと jQuery の挙動は店舗ページと同一。 */

.renewal-price-faq,
.renewal-price-faq * {
  box-sizing: border-box;
}

main.price section.renewal-price-faq {
  width: 100%;
  margin: 0;
  padding: 64px 16px 48px;
  background: #fffdf3;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-price-faq__inner {
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-faq__title {
  display: flex;
  gap: 12px;
  align-items: center;
  width: 100%;
  height: 90.67px;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
}

.renewal-price-faq__icon {
  flex: 0 0 74px;
  width: 74px;
  height: 74px;
}

main.price .renewal-price-faq__icon img {
  display: block;
  width: 100%;
  height: 100% !important;
  margin: 0;
  object-fit: contain;
}

main.price .renewal-price-faq__title strong {
  font-weight: 700;
}

/* the node steps the joining particle down a size */
main.price .renewal-price-faq__title > span:not(.renewal-price-faq__icon) {
  margin: 0 -6px;
  font-size: 25.6px;
}

.renewal-price-faq__intro {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

main.price .renewal-price-faq__intro p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

main.price .renewal-price-faq__intro strong {
  font-weight: 700;
}

/* ---- アコーディオン（tenpo.css の .faq を複製） ---- */

main.price .renewal-price-faq__list {
  width: 100%;
  margin: 0;
}

main.price .renewal-price-faq__list .block {
  width: 100%;
  margin: 0 auto;
  font-weight: 700;
}

main.price .renewal-price-faq__list .q {
  position: relative;
  margin-bottom: 0;
  padding: 13px 40px 13px 15px;
  border: 1px solid #10ad5a;
  border-bottom: none;
  background-color: #eaf8d8;
  color: #000;
  font-size: 14px;
  line-height: 22.4px;
  cursor: pointer;
  user-select: none;
}

main.price .renewal-price-faq__list .block .q::before {
  content: "";
  position: absolute;
  top: 18px;
  right: 15px;
  width: 23px;
  height: 13.5px;
  background: url("../img/home/icon-arrow-down.png") no-repeat;
  background-size: contain;
}

main.price .renewal-price-faq__list .open .q::before {
  background-image: url("../img/home/icon-arrow-up.png");
}

main.price .renewal-price-faq__list .block .a {
  display: none;
}

main.price .renewal-price-faq__list .a .inner {
  padding: 19px 15px;
  border: 1px solid #8fd8b1;
  border-bottom: none;
  background-color: #fff;
  font-size: 14px;
}

main.price .renewal-price-faq__list .a .inner p {
  margin: 0;
  font-weight: 400;
  line-height: 1.8;
}

main.price .renewal-price-faq__list .block-end {
  border-bottom: 1px solid #10ad5a;
}

/* ---- 結び + ボタン ---- */

main.price .renewal-price-faq__note {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

.renewal-price-faq__more {
  display: flex;
  justify-content: center;
}

main.price .renewal-price-faq__more a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  max-width: 100%;
  height: 64px;
  border-radius: 50px;
  background: #10ad5a;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none;
}

main.price .renewal-price-faq__more a:hover,
main.price .renewal-price-faq__more a:focus-visible {
  color: #fff;
  background: #0d9a4f;
}

main.price .renewal-price-faq__more a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18.34px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-faq {
    padding: 40px 16px;
  }

  .renewal-price-faq__inner {
    gap: 24px;
    width: 100%;
    max-width: 370px;
  }

  main.price .renewal-price-faq__title {
    gap: 8px;
    height: auto;
    padding-bottom: 12px;
    font-size: 20px;
  }

  .renewal-price-faq__icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
  }

  main.price .renewal-price-faq__title > span:not(.renewal-price-faq__icon) {
    margin: 0 -3px;
    font-size: 17px;
  }

  .renewal-price-faq__intro {
    gap: 16px;
  }

  main.price .renewal-price-faq__intro p,
  main.price .renewal-price-faq__note {
    font-size: 15px;
    line-height: 27px;
  }

  main.price .renewal-price-faq__more a {
    width: 100%;
    height: 56px;
    font-size: 16px;
  }
}

/* ===== 店舗一覧 (Figma 143:873) =====
   TOPページの sec16（.renewal-store）をマークアップごと流用している。
   TOP の CSS は触らない約束なので、2026-renewal.css から該当ルールだけを
   抜き出し、このセクション配下にスコープし直したものを複製している。
   ページ中ほどの「店舗紹介」(.renewal-price-store) とは別のブロック。 */

main.price section.renewal-price-locations,
main.price section.renewal-price-locations * {
  box-sizing: border-box;
}

main.price section.renewal-price-locations {
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

/* ---- 以下 2026-renewal.css からの複製（スコープのみ変更） ---- */

@keyframes renewal-voices-slide {
  to {
    transform: translate3d(calc(-50% - 4px), 0, 0);
  }
}

main.price .renewal-price-locations .renewal-store__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-locations .renewal-store__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  width: 100%;
}

main.price .renewal-price-locations .renewal-store__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #10ad5b;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-weight: 700;
  text-align: center;
}

main.price .renewal-price-locations .renewal-store__title-lead {
  font-size: 25.6px;
  line-height: 40.96px;
}

main.price .renewal-price-locations .renewal-store__title-main {
  font-size: 25.6px;
  line-height: 56.32px;
}

main.price .renewal-price-locations .renewal-store__title-main strong {
  font-size: 35.2px;
  font-weight: 700;
}

main.price .renewal-price-locations .renewal-store__lead {
  width: 100%;
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

main.price .renewal-price-locations .renewal-store__box {
  width: 100%;
  padding: 30.67px;
  border: 2px solid #bddbcb;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 6px rgba(79, 171, 99, 0.08);
}

main.price .renewal-price-locations .renewal-store__name {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 38.67px;
  text-align: center;
}

main.price .renewal-price-locations .renewal-store__catch {
  margin: 6px 0 0;
  color: #000;
  font-size: 19.2px;
  font-weight: 400;
  line-height: 29.33px;
  text-align: center;
}

main.price .renewal-price-locations .renewal-store__media {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-top: 22px;
}

main.price .renewal-price-locations .renewal-store__photo,
main.price .renewal-price-locations .renewal-store__map {
  flex: 1 1 0;
  min-width: 0;
  height: 225px;
  overflow: hidden;
  border-radius: 4px;
}

main.price .renewal-price-locations .renewal-store__photo img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center top;
}

main.price .renewal-price-locations .renewal-store__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

main.price .renewal-price-locations .renewal-store__hours-ttl {
  display: flex;
  align-items: center;
  height: 26.88px;
  margin: 23px 0 0;
  padding: 0 0 0 10px;
  border: 0;
  border-left: 4.667px solid #14ad59;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 26.88px;
}

main.price .renewal-price-locations .renewal-store__hours {
  display: flex;
  gap: 30px;
  align-items: center;
  margin-top: 20px;
}

main.price .renewal-price-locations .renewal-store__table {
  flex: 0 0 400px;
  width: 400px;
}

main.price .renewal-price-locations .renewal-store__table img {
  display: block;
  width: 100%;
  height: auto !important;
}

main.price .renewal-price-locations .renewal-store__notes {
  flex: 1 1 auto;
  min-width: 0;
}

main.price .renewal-price-locations .renewal-store__notes p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 25.6px;
}

main.price .renewal-price-locations .renewal-store__cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  max-width: 100%;
  height: 64px;
  margin: 20px auto 0;
  border-radius: 50px;
  background: #10ad5a;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none;
}

main.price .renewal-price-locations .renewal-store__cta::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16.68px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

@media screen and (max-width: 767.98px) {
  main.price .renewal-price-locations .renewal-store__inner {
    gap: 15px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  main.price .renewal-price-locations .renewal-store__head {
    gap: 30px;
  }

  main.price .renewal-price-locations .renewal-store__title-lead {
    font-size: 18px;
    line-height: 27.33px;
  }

  main.price .renewal-price-locations .renewal-store__title-main {
    font-size: 18px;
    line-height: 38.4px;
  }

  main.price .renewal-price-locations .renewal-store__title-main strong {
    font-size: 25.6px;
  }

  main.price .renewal-price-locations .renewal-store__lead {
    font-size: 15px;
    line-height: 25.92px;
  }

  main.price .renewal-price-locations .renewal-store__box {
    padding: 20.67px 16.67px 15px;
  }

  main.price .renewal-price-locations .renewal-store__name {
    font-size: 21px;
    line-height: 31.33px;
  }

  main.price .renewal-price-locations .renewal-store__catch {
    margin-top: 6px;
    font-size: 16px;
    line-height: 24px;
  }

  main.price .renewal-price-locations .renewal-store__media {
    display: block;
    margin-top: 18.5px;
  }

  main.price .renewal-price-locations .renewal-store__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 310 / 154;
  }

  main.price .renewal-price-locations .renewal-store__map {
    display: none;
  }

  main.price .renewal-price-locations .renewal-store__hours-ttl {
    height: 23.79px;
    margin-top: 18px;
    padding-left: 14.66px;
    font-size: 17px;
    line-height: 23.79px;
  }

  main.price .renewal-price-locations .renewal-store__hours {
    display: block;
    margin-top: 20.79px;
  }

  main.price .renewal-price-locations .renewal-store__table {
    width: 100%;
  }

  main.price .renewal-price-locations .renewal-store__notes {
    margin-top: 14.65px;
  }

  main.price .renewal-price-locations .renewal-store__notes p {
    font-size: 15px;
    line-height: 27px;
  }

  main.price .renewal-price-locations .renewal-store__cta {
    margin-top: 19.9px;
  }
}

/* ---- 料金ページ向けの調整 ---- */

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-locations {
    padding: 40px 0;
  }
}

/* ===== 施術を受けることが不安な方へ (Figma 143:1004) ===== */

.renewal-price-anxiety,
.renewal-price-anxiety * {
  box-sizing: border-box;
}

main.price section.renewal-price-anxiety {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  overflow: hidden;
  background: #f7fcef;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

main.price .renewal-price-anxiety__leaf {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  display: block;
  width: 380px;
  max-width: none;
  height: 255.6px !important;
  margin: 0;
  object-fit: cover;
  object-position: left top;
  pointer-events: none;
}

.renewal-price-anxiety__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-anxiety__title {
  display: flex;
  align-items: baseline;
  justify-content: center;
  width: 100%;
  height: 68.67px;
  margin: 0;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

main.price .renewal-price-anxiety__title em {
  color: #10ad5a;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
}

.renewal-price-anxiety__body {
  display: flex;
  gap: 40px;
  align-items: center;
  width: 100%;
}

.renewal-price-anxiety__copy {
  display: flex;
  flex: 0 1 502px;
  flex-direction: column;
  gap: 34px;
  width: 502px;
  min-width: 0;
}

main.price .renewal-price-anxiety__copy p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 34px;
}

main.price .renewal-price-anxiety__copy strong {
  font-weight: 700;
}

main.price .renewal-price-anxiety__photo {
  flex: 0 0 469.19px;
  width: 469.19px;
  margin: 0;
}

main.price .renewal-price-anxiety__photo img {
  display: block;
  width: 100%;
  height: auto !important;
  margin: 0;
}

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-anxiety {
    padding: 40px 16px;
  }

  main.price .renewal-price-anxiety__leaf {
    width: 123.85px;
    height: 83.3px !important;
  }

  .renewal-price-anxiety__inner {
    gap: 24px;
    width: 100%;
    max-width: 370px;
  }

  main.price .renewal-price-anxiety__title {
    height: auto;
    padding-bottom: 12px;
    font-size: 17px;
  }

  main.price .renewal-price-anxiety__title em {
    font-size: 21px;
  }

  /* the copy stacks above the photo */
  .renewal-price-anxiety__body {
    flex-direction: column;
    gap: 20px;
  }

  .renewal-price-anxiety__copy {
    flex: 0 0 auto;
    gap: 24px;
    width: 100%;
  }

  main.price .renewal-price-anxiety__copy p {
    font-size: 15px;
    line-height: 27px;
  }

  main.price .renewal-price-anxiety__photo {
    flex: 0 0 auto;
    width: 100%;
  }
}


/* ===== 5つの特徴 (Figma 143:1078) =====
   TOPページの .renewal-staff をマークアップごと流用。TOP の CSS は触らず、
   2026-renewal.css から該当ルールを抜き出してスコープし直している。 */

main.price section.renewal-price-features,
main.price section.renewal-price-features * {
  box-sizing: border-box;
}

main.price section.renewal-price-features {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  overflow: hidden;
  background: #f7fcef;
  color: #333;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
}

/* ---- 以下 2026-renewal.css からの複製（スコープのみ変更） ---- */

@keyframes renewal-voices-slide {
  to {
    transform: translate3d(calc(-50% - 4px), 0, 0);
  }
}

main.price .renewal-price-features .renewal-staff__leaf {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  display: block;
  width: 365px;
  max-width: none;
  height: 236px !important;
  object-fit: cover;
  object-position: left top;
  pointer-events: none;
}

main.price .renewal-price-features .renewal-staff__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 38px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

main.price .renewal-price-features .renewal-staff__title {
  display: flex;
  flex-direction: column;
  /* align-items: center; */
  /* justify-content: center; */
  /* width: 100%; */
  /* height: 181px; */
  margin: 0;
  padding: 0 0 30px;
  /* border: 0; */
  border-bottom: 2.667px solid #88bd45;
  /* background: none; */
  color: #363636;
  /* font-family: "Noto Sans JP", Meiryo, sans-serif; */
  font-weight: 600;
  text-align: center;
}

main.price .renewal-price-features .renewal-staff__title-lead,
main.price .renewal-price-features .renewal-staff__title-name {
  font-size: 29.677px;
}

main.price .renewal-price-features .renewal-staff__title-lead {
  line-height: 69.742px;
}

main.price .renewal-price-features .renewal-staff__title-name {
  line-height: 47.484px;
}

main.price .renewal-price-features .renewal-staff__title-main {
  color: #10ad5a;
  font-size: 53.419px;
  font-weight: 600;
  line-height: 69.742px;
}

main.price .renewal-price-features .renewal-staff__list {
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

main.price .renewal-price-features .renewal-staff__item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  width: 100%;
  margin: 0;
  padding: 12px 12px 12px 0;
  border: 0;
  list-style: none;
}

main.price .renewal-price-features .renewal-staff__media {
  flex: 0 0 320px;
  width: 320px;
}

main.price .renewal-price-features .renewal-staff__item--gallery .renewal-staff__media {
  display: grid;
  grid-template-columns: repeat(3, 100px);
  gap: 10.07px 10px;
}

main.price .renewal-price-features .renewal-staff__item--gallery .renewal-staff__media img {
  display: block;
  width: 100px;
  height: 99.71px !important;
  object-fit: cover;
}

main.price .renewal-price-features .renewal-staff__photo {
  display: block;
  width: 100%;
  height: 159.5px !important;
  object-fit: cover;
}

main.price .renewal-price-features .renewal-staff__photo--02 {
  object-position: center top;
}

main.price .renewal-price-features .renewal-staff__photo--03 {
  height: 167px !important;
  object-position: center 17%;
}

main.price .renewal-price-features .renewal-staff__photo--04 {
  height: 167px !important;
  object-position: center 59%;
}

main.price .renewal-price-features .renewal-staff__photo--05 {
  object-position: center 31%;
}

main.price .renewal-price-features .renewal-staff__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

main.price .renewal-price-features .renewal-staff__head {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
}

main.price .renewal-price-features .renewal-staff__heading {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 47px;
  margin: 0;
}

main.price .renewal-price-features .renewal-staff__num {
  flex: 0 0 auto;
  color: #10ad5a;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 33px;
  white-space: nowrap;
}

main.price .renewal-price-features .renewal-staff__name {
  color: #333;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 19.72px;
  font-weight: 600;
  line-height: 29px;
}

main.price .renewal-price-features .renewal-staff__sub {
  margin: 0;
  color: #10ad5a;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 18px;
}

main.price .renewal-price-features .renewal-staff__desc {
  display: flex;
  align-items: flex-start;
  width: 100%;
  min-height: 72px;
  margin: 0;
  padding:4px 4% 4px 4%;
  border-radius: 7px;
  background: #fff;
  color: #333;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 32px;
}

main.price .renewal-price-features .renewal-staff__desc--tall {
  min-height: 120px;
}

@media screen and (max-width: 767.98px) {
  main.price .renewal-price-features .renewal-staff__leaf {
    width: 123.5px;
    height: 83px !important;
    object-position: left top;
  }

  main.price .renewal-price-features .renewal-staff__inner {
    gap: 30px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  main.price .renewal-price-features .renewal-staff__title {
    width: 342px;
    max-width: 100%;
    height: 124px;
    margin: 0 auto;
    padding: 0 24px 12px;
    border-bottom: 4px solid #10ad5a;
  }

  main.price .renewal-price-features .renewal-staff__title-lead {
    font-size: 20px;
    line-height: 47px;
  }

  main.price .renewal-price-features .renewal-staff__title-name {
    font-size: 20px;
    line-height: 32px;
  }

  main.price .renewal-price-features .renewal-staff__title-main {
    font-size: 36px;
    line-height: 47px;
  }

  main.price .renewal-price-features .renewal-staff__list {
    gap: 36px;
  }

  main.price .renewal-price-features .renewal-staff__item {
    flex-direction: column;
    gap: 16px;
    padding: 0;
  }

  main.price .renewal-price-features .renewal-staff__media {
    flex: 0 0 auto;
    width: 100%;
  }

  main.price .renewal-price-features .renewal-staff__item--gallery .renewal-staff__media {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5.56px 8px;
  }

  main.price .renewal-price-features .renewal-staff__item--gallery .renewal-staff__media img {
    width: 100%;
    height: auto !important;
    aspect-ratio: 1 / 1;
  }

  main.price .renewal-price-features .renewal-staff__photo,
  main.price .renewal-price-features .renewal-staff__photo--03,
  main.price .renewal-price-features .renewal-staff__photo--04 {
    height: auto !important;
    aspect-ratio: 343 / 171;
  }

  main.price .renewal-price-features .renewal-staff__body {
    gap: 5px;
  }

  main.price .renewal-price-features .renewal-staff__head {
    gap: 5px;
  }

  main.price .renewal-price-features .renewal-staff__heading {
    gap: 17px;
    height: auto;
    min-height: 33.6px;
  }

  main.price .renewal-price-features .renewal-staff__num {
    font-size: 24px;
    line-height: 33.6px;
  }

  main.price .renewal-price-features .renewal-staff__name {
    font-size: 20px;
    line-height: 30px;
  }

  main.price .renewal-price-features .renewal-staff__sub {
    margin-left: 51px;
    font-size: 14px;
    font-weight: 400;
    line-height: 19px;
  }

  main.price .renewal-price-features .renewal-staff__desc,
  main.price .renewal-price-features .renewal-staff__desc--tall {
    min-height: 0;
    padding: 10px 12px;
  }
}

/* ---- 料金ページ向けの調整 ---- */

/* このページでは特徴セクションの葉は出さない（マークアップ側でも要素を削除済み） */
main.price .renewal-price-features .renewal-staff__leaf {
  display: none;
}

@media screen and (max-width: 767.98px) {
  main.price section.renewal-price-features {
    padding: 41px 0 40px;
  }
}


/* ===== フッターCV（inc/cta-banner.php）の調整 =====
   footer-banner 先頭の予約バナー画像は料金ページでは出さない。
   cta-banner.php はサイト共通のテンプレートなので、PHPには手を入れず
   このページのスコープだけで非表示にしている。 */

main.price section.footer-banner > p.image {
  display: none;
}

/* PCのみ、特徴セクションとの間に余白を足す（SPは既存の詰まりのままでよい） */
@media screen and (min-width: 768px) {
  main.price section.footer-banner {
    margin-top: 80px;
  }
}


/* ===== 追従ボタンの重なり順 =====
   header .fixed-button は z-index 未指定なので、<main> 内の z-index 付き要素
   （メカニズム/流れ/不安な方へ/5つの特徴の各 inner、声スライダーの矢印）に
   隠れてしまう。TOPページの .home header .fixed-button と同じ 900 に上げる。
   900 は Magnific Popup（1042）より下なので、動画モーダルは従来どおり前面。
   このファイルは料金ページからのみ読み込まれるため、main.price の外側だが
   他ページには影響しない。 */

@media screen and (min-width: 768px) {
  header .fixed-button {
    z-index: 900;
  }
}
