/* ==========================================================================
   萱島くすのき整体院 lower.css — 下層ページ共通レイヤー
   読み込み順: common.css → top.css（TOP ブロックを再利用するページのみ）→ lower.css
   単位は common.css と同じ calc(N * var(--p))。PC(≥768) は 1280 基準、SP(≤767) は 402 基準の値。
   Figma に下層は無いので TOP の部品・色・書体から組み立てている（詳細は _src/LOWER_CONVENTIONS.md）。

   ■ ページ骨格
     body.page-lower
     .lw-hero                     ページ先頭（パンくず＋写真＋左に裁ち落とす緑帯の h1＋リード＋予約ボタン）
       .lw-hero__crumb            パンくず <nav class="lw-hero__crumb" aria-label="パンくずリスト"><ol><li><a>…</a></li><li aria-current="page">…</li></ol></nav>
       .lw-hero__main             写真＋帯＋本文のラッパー
       .lw-hero__photo            右に裁ち落とす写真（左だけ角丸60）<div class="lw-hero__photo"><img …></div>
       .lw-hero__band             緑帯（左は画面外まで）。中に .c-eyebrow.lw-hero__eyebrow と h1.lw-hero__title
                                  h1 内の <mark> = 帯上の強調（明るい緑 900）
       .lw-hero__body             帯の下の本文カラム（写真の左）
       .lw-hero__lead             リード文。<mark>=黄マーカー / <strong>=緑太字
       .lw-hero__badge            写真に重なる緑の丸バッジ（改善率など）: __badge-num / __badge-unit / __badge-cap
       .lw-hero--simple           写真なし版（帯＋リードのみ）
     .lw-cta                      リード下の予約ボタン行（旧ページの文言のまま）: a.lw-cta__btn.lw-cta__btn--web / --tel / --line
                                  色・形は .c-cta3 と同じ（WEB=白地オレンジ枠 / 電話=オレンジ / LINE=緑）
   ■ セクション
     section.lw-sec + 背景: --white / --pale1(#F4F9F0) / --pale2(#EAEFE6) / --gray(#F5F5F5) / --bg2(#F7F7F7)
                         --bg3(#FAFBFA) / --grad(白→#CDDAC3) / --grad-pale(白→#F4F9F0) / --voice(#CEDAC4→白)
       .lw-sec__inner             中身（1280 中央・左右 85 → 本文幅 1110）/ .lw-sec__inner--narrow（本文幅 900）
     見出し A（中央）: <div class="lw-head"><p class="c-eyebrow lw-head__eyebrow">FAQ</p><h2 class="lw-head__title">…<em>緑強調</em>…</h2><p class="lw-head__lead">…</p></div>
     見出し B（緑帯・左に裁ち落とし／TOP「痛みの“その先”まで、診る。」型）:
                      <div class="lw-band"><p class="c-eyebrow lw-band__eyebrow">WHY US</p><h2 class="lw-band__title">…<em>太字</em>…</h2></div>
                      帯の直後のリードは <p class="lw-band-lead">
   ■ テキスト
     .lw-text（段落群 16/32。strong=緑太字）/ .lw-lead（中央の一文。strong=緑）/ .lw-catch（中央の緑大文字）
     .lw-note（※注記 小さい灰色）/ .lw-note--center / .lw-more（中央のボタン置き場。中に .c-btn-outline）
   ■ 部品
     ul.lw-check > li > img(03-check.svg)+span     チェックリスト（淡緑の角丸パネル・PC 2列）/ .lw-check--1col（1項目が長い時 1列）
     .lw-cards(--2|--3) > .lw-card > .lw-card__head(.lw-card__num + h3.lw-card__title) + .lw-card__text (+ .lw-card__btn)
                                                     TOP「4つの強み」カードの可変版（白・角丸30）
     .lw-profile > .lw-profile__photo + .lw-profile__body(.lw-profile__eyebrow, .lw-profile__title, .lw-profile__text, .lw-profile__name)
                                                     院長写真つきメッセージカード（TOP 院長紹介カードの可変版）
     .lw-staff > article.lw-staff__item > .lw-staff__photo + .lw-staff__body(.lw-staff__role, h3.lw-staff__name>span, .lw-staff__msg, .lw-staff__quals)
     figure.lw-figure > img + figcaption            枠付き画像＋キャプション
     .lw-notes > .lw-notes__item > h3.lw-notes__title + p.lw-notes__text   チェックアイコン付き注意事項カード
                                                     他ブロックの直後なら上余白 PC48/SP28 が自動で付く（.lw-text 等で包まない）
     .lw-cases > article.lw-case                   改善症例カード（白・角丸30。SP は本文幅いっぱい）
       .lw-case__head > p.lw-case__tag（年代・性別）+ h3.lw-case__title（<br>― サブ）
       .lw-case__ba > .lw-case__col.lw-case__col--before / --after > h4.lw-case__label（来院時/現在）+ p.lw-case__text
                                                     PC 2列（間に緑の矢印）/ SP 縦積み（下向き矢印）
       p.lw-case__voice（ご本人の一言。緑）+ p.lw-case__meta（経過・回数の注記）
       .lw-case__more[data-accordion] > button.lw-case__toggle[data-accordion-trigger]（span 文言 + span.lw-case__icon[data-accordion-icon]）
                                      + .lw-case__detail[data-accordion-panel][hidden] > ol.lw-case__steps > li.lw-case__step
                                        > h4.lw-case__step-title + p.lw-case__step-text…   経過の詳細（縦タイムライン）
     .lw-media(--rev) > .lw-media__body(.lw-media__catch>span, .lw-media__text) + .lw-media__img>img   画像＋テキスト行
     .lw-stats > .lw-stats__item > .lw-stats__value(.lw-stats__num/.lw-stats__unit) + .lw-stats__cap   実績タイル
     table.lw-table（th=見出し列）/ .lw-access > (.lw-table) + .lw-access__map>iframe
   ■ TOP ブロックの再利用（top.css を読み込む。マークアップは TOP のセクション HTML をコピーし、下の adapter クラスを足す）
     FAQ         .s-faq__list > .s-faq__item …（20-faq.html と同じ。adapter 不要。.lw-sec 内では見出し直後 0／他ブロック直後 PC48・SP28）
     比較表      .s-diff__table-wrap > table.s-diff__table（06-difference.html と同じ。adapter 不要）
     お客様の声  ul.s-voice__cards.lw-voices > li.s-voice__card …（07-voice.html）。TOP と同一人物なら 07-avatar-N.png、
                 それ以外はイメージイラスト <img class="s-voice__avatar lw-avatar" src="/assets/img/avatar-female.svg"（男性は avatar-male.svg） width="120" height="120" alt="" loading="lazy">
     流れ        ol.s-flow__steps.lw-flow > li.s-flow__step …（10-flow.html）。写真は .s-flow__photo--w(横長 TOP 画像) / --s。
                 TOP 以外の写真は .s-flow__photo--s.lw-flow__fade（左をフェード）
     料金        .s-price__band.lw-price-band / .s-price__card.lw-price-card / .s-price__refund.lw-refund（12-price.html）
                 カード内の追加行: .c-eyebrow.lw-price-card__eyebrow / .lw-price-card__sub / .lw-price-card__limited
     関連症状    ul.s-symptoms__list.lw-related > li > a.s-symptoms__tile …（17-symptoms.html のタイルをそのままコピー）
     最終CTA     section.s-cta.lw-cta-sec（22-cta.html。見出し→サブの順でも可）
   ========================================================================== */

.page-lower { --bleed: max(0px, (100vw - 1280px) / 2); }
@media (max-width: 767px) { .page-lower { --bleed: 0px; } }

/* ==========================================================================
   Hero
   ========================================================================== */
.lw-hero { background: linear-gradient(to bottom, #fff 0%, var(--c-pale-1) 100%); }
.lw-hero__inner { padding-bottom: calc(80 * var(--p)); }

.lw-hero__crumb { position: relative; z-index: 2; padding: calc(18 * var(--p)) calc(85 * var(--p)) 0; font-size: calc(13 * var(--p)); font-weight: 500; line-height: calc(20 * var(--p)); color: var(--c-gray); }
.lw-hero__crumb ol { display: flex; flex-wrap: wrap; }
.lw-hero__crumb li + li::before { content: "›"; margin: 0 calc(10 * var(--p)); color: var(--c-gray-light); }
.lw-hero__crumb a { color: var(--c-green); transition: opacity var(--t); }
.lw-hero__crumb a:hover { opacity: .7; text-decoration: underline; }

.lw-hero__main { position: relative; min-height: calc(470 * var(--p)); }
.lw-hero__photo {
  position: absolute; left: calc(641 * var(--p)); top: calc(26 * var(--p));
  width: calc(639 * var(--p) + var(--bleed)); height: calc(420 * var(--p));
  overflow: hidden; border-radius: calc(60 * var(--p)) 0 0 calc(60 * var(--p));
}
.lw-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }

.lw-hero__band {
  position: relative; z-index: 1;
  width: calc(700 * var(--p) + var(--bleed)); margin: calc(96 * var(--p)) 0 0 calc(-1 * var(--bleed));
  padding: calc(30 * var(--p)) calc(40 * var(--p)) calc(34 * var(--p)) calc(85 * var(--p) + var(--bleed));
  border-radius: 0 calc(40 * var(--p)) calc(40 * var(--p)) 0;
  background: var(--c-green-dark); color: #fff;
}
.lw-hero__eyebrow { color: #fff; opacity: .9; }
.lw-hero__title { margin-top: calc(10 * var(--p)); font-size: calc(40 * var(--p)); font-weight: 500; line-height: calc(58 * var(--p)); }
.lw-hero__title mark { background: none; color: var(--c-green-light); font-weight: 900; }

.lw-hero__body { position: relative; width: calc(548 * var(--p)); margin: calc(36 * var(--p)) 0 0 calc(85 * var(--p)); }
.lw-hero__lead { font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.lw-hero__lead strong { color: var(--c-green); font-weight: 700; }
.lw-hero__lead mark { background: linear-gradient(transparent 55%, var(--c-marker) 55%); color: inherit; font-weight: 700; }

.lw-hero__badge {
  position: absolute; z-index: 1; right: calc(70 * var(--p)); top: calc(300 * var(--p));
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: calc(176 * var(--p)); height: calc(176 * var(--p)); border-radius: 50%;
  background: var(--c-green); color: #fff; border: calc(5 * var(--p)) solid #fff;
  box-shadow: 0 calc(4 * var(--p)) calc(16 * var(--p)) rgba(0, 0, 0, .18);
}
.lw-hero__badge-num { font-family: var(--ff-sen); font-weight: 600; font-size: calc(64 * var(--p)); line-height: 1; }
.lw-hero__badge-unit { font-size: calc(28 * var(--p)); margin-left: calc(2 * var(--p)); }
.lw-hero__badge-cap { margin-top: calc(8 * var(--p)); padding: 0 calc(16 * var(--p)); font-size: calc(14 * var(--p)); font-weight: 700; line-height: 1.3; text-align: center; word-break: auto-phrase; }
.lw-hero__badge sup, .lw-stats__cap sup { font-size: .7em; vertical-align: super; line-height: 0; }

.lw-hero--simple .lw-hero__main { min-height: 0; }
.lw-hero--simple .lw-hero__band { margin-top: calc(40 * var(--p)); }
.lw-hero--simple .lw-hero__body { width: calc(1110 * var(--p)); }

/* 予約ボタン行（色は .c-cta3 と同じ） */
.lw-cta { display: flex; flex-wrap: wrap; gap: calc(10 * var(--p)); margin-top: calc(30 * var(--p)); }
.lw-cta__btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: calc(54 * var(--p)); padding: 0 calc(18 * var(--p)); border-radius: calc(20 * var(--p));
  font-size: calc(15 * var(--p)); font-weight: 700; line-height: 1.3; color: #fff; white-space: nowrap;
  transition: background-color var(--t), color var(--t), opacity var(--t);
}
.lw-cta__btn--web { background: #fff; border: calc(3 * var(--p)) solid var(--c-orange); color: var(--c-orange); }
.lw-cta__btn--web:hover { background: var(--c-orange); color: #fff; }
.lw-cta__btn--tel { background: var(--c-orange); font-family: var(--ff-sen); font-weight: 600; font-size: calc(18 * var(--p)); }
.lw-cta__btn--line { background: var(--c-line); }
.lw-cta__btn--tel:hover, .lw-cta__btn--line:hover { opacity: .8; }

@media (max-width: 767px) {
  .lw-hero__inner { padding-bottom: calc(48 * var(--p)); }
  .lw-hero__crumb { padding: calc(12 * var(--p)) calc(33 * var(--p)) 0; font-size: calc(11 * var(--p)); line-height: calc(18 * var(--p)); }
  .lw-hero__crumb li + li::before { margin: 0 calc(6 * var(--p)); }
  .lw-hero__main { min-height: 0; }
  .lw-hero__photo { position: relative; left: auto; top: auto; width: calc(369 * var(--p)); height: calc(220 * var(--p)); margin: calc(14 * var(--p)) 0 0 auto; border-radius: calc(30 * var(--p)) 0 0 calc(30 * var(--p)); }
  .lw-hero__band { width: calc(369 * var(--p)); margin: calc(-30 * var(--p)) 0 0; padding: calc(16 * var(--p)) calc(20 * var(--p)) calc(18 * var(--p)) calc(33 * var(--p)); border-radius: 0 calc(24 * var(--p)) calc(24 * var(--p)) 0; }
  .lw-hero--simple .lw-hero__band { margin-top: calc(20 * var(--p)); }
  .lw-hero__title { margin-top: calc(6 * var(--p)); font-size: calc(24 * var(--p)); line-height: calc(36 * var(--p)); }
  .lw-hero__body, .lw-hero--simple .lw-hero__body { width: auto; margin: calc(24 * var(--p)) calc(33 * var(--p)) 0; }
  .lw-hero__lead { font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); }
  .lw-hero__badge { right: calc(16 * var(--p)); top: calc(24 * var(--p)); width: calc(104 * var(--p)); height: calc(104 * var(--p)); border-width: calc(3 * var(--p)); }
  .lw-hero__badge-num { font-size: calc(36 * var(--p)); }
  .lw-hero__badge-unit { font-size: calc(16 * var(--p)); }
  .lw-hero__badge-cap { margin-top: calc(4 * var(--p)); padding: 0 calc(10 * var(--p)); font-size: calc(10 * var(--p)); }
  .lw-cta { flex-direction: column; gap: calc(10 * var(--p)); margin-top: calc(24 * var(--p)); }
  .lw-cta__btn { width: 100%; height: calc(52 * var(--p)); font-size: calc(16 * var(--p)); }
  .lw-cta__btn--tel { font-size: calc(19 * var(--p)); }
}

/* ==========================================================================
   Section / headings
   ========================================================================== */
.lw-sec { position: relative; padding: calc(100 * var(--p)) 0; }
.lw-sec--white { background: #fff; }
.lw-sec--pale1 { background: var(--c-pale-1); }
.lw-sec--pale2 { background: var(--c-pale-2); }
.lw-sec--gray { background: var(--c-bg-1); }
.lw-sec--bg2 { background: var(--c-bg-2); }
.lw-sec--bg3 { background: var(--c-bg-3); }
.lw-sec--grad { background: linear-gradient(to bottom, #fff 35%, var(--c-pale-3) 100%); }
.lw-sec--grad-pale { background: linear-gradient(to bottom, #fff 0%, var(--c-pale-1) 100%); }
.lw-sec--voice { background: linear-gradient(to bottom, var(--c-sage), #fff); }
.lw-sec__inner { position: relative; width: calc(1280 * var(--p)); margin-inline: auto; padding: 0 calc(85 * var(--p)); }
.lw-sec__inner--narrow { padding: 0 calc(190 * var(--p)); }

/* 見出し A（中央） */
.lw-head { margin-bottom: calc(56 * var(--p)); text-align: center; }
.lw-head__eyebrow { display: inline-flex; align-items: center; gap: calc(16 * var(--p)); color: var(--c-green); }
.lw-head__eyebrow::before, .lw-head__eyebrow::after { content: ""; width: calc(56 * var(--p)); height: 1px; background: currentColor; opacity: .5; }
.lw-head__title { margin-top: calc(14 * var(--p)); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(54 * var(--p)); }
.lw-head__title em { font-style: normal; font-weight: 700; color: var(--c-green); }
.lw-head__lead { margin-top: calc(24 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.lw-head__lead strong { color: var(--c-green); font-weight: 700; }

/* 見出し B（緑帯・左へ裁ち落とし） */
.lw-band {
  position: relative; width: max-content; min-width: calc(640 * var(--p) + var(--bleed)); max-width: calc(1110 * var(--p) + var(--bleed));
  margin: 0 0 calc(56 * var(--p)) calc(-85 * var(--p) - var(--bleed));
  padding: calc(26 * var(--p)) calc(56 * var(--p)) calc(30 * var(--p)) calc(85 * var(--p) + var(--bleed));
  border-radius: 0 calc(40 * var(--p)) calc(40 * var(--p)) 0; background: var(--c-green); color: #fff;
}
.lw-sec__inner--narrow .lw-band { margin-left: calc(-190 * var(--p) - var(--bleed)); padding-left: calc(190 * var(--p) + var(--bleed)); max-width: calc(1090 * var(--p) + var(--bleed)); }
.lw-band__eyebrow { color: #fff; opacity: .9; }
.lw-band__title { margin-top: calc(8 * var(--p)); font-size: calc(36 * var(--p)); font-weight: 500; line-height: calc(52 * var(--p)); }
.lw-band__title em { font-style: normal; font-weight: 900; }
.lw-band-lead { margin: calc(-24 * var(--p)) 0 calc(48 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.lw-band-lead strong { color: var(--c-green); font-weight: 700; }

@media (max-width: 767px) {
  .lw-sec { padding: calc(56 * var(--p)) 0; }
  .lw-sec__inner, .lw-sec__inner--narrow { width: calc(402 * var(--p)); padding: 0 calc(33 * var(--p)); }
  .lw-head { margin-bottom: calc(28 * var(--p)); }
  .lw-head__eyebrow { gap: calc(10 * var(--p)); }
  .lw-head__eyebrow::before, .lw-head__eyebrow::after { width: calc(32 * var(--p)); }
  .lw-head__title { margin-top: calc(8 * var(--p)); font-size: calc(22 * var(--p)); line-height: calc(34 * var(--p)); }
  .lw-head__lead { margin-top: calc(14 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); text-align: left; }
  .lw-head__lead br { display: none; }
  .lw-band, .lw-sec__inner--narrow .lw-band { width: auto; min-width: 0; max-width: none; margin: 0 calc(20 * var(--p)) calc(28 * var(--p)) calc(-33 * var(--p)); padding: calc(16 * var(--p)) calc(20 * var(--p)) calc(18 * var(--p)) calc(33 * var(--p)); border-radius: 0 calc(24 * var(--p)) calc(24 * var(--p)) 0; }
  .lw-band__title { margin-top: calc(4 * var(--p)); font-size: calc(22 * var(--p)); line-height: calc(34 * var(--p)); }
  .lw-band-lead { margin: calc(-8 * var(--p)) 0 calc(28 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); }
  .lw-band-lead br { display: none; }
}

/* ==========================================================================
   Text
   ========================================================================== */
.lw-text { font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(34 * var(--p)); }
.lw-text p + p { margin-top: calc(22 * var(--p)); }
* + .lw-text { margin-top: calc(48 * var(--p)); }
.lw-head + .lw-text, .lw-band + .lw-text { margin-top: 0; }
.lw-text strong { color: var(--c-green); font-weight: 700; }
.lw-lead { margin-top: calc(40 * var(--p)); font-size: calc(18 * var(--p)); font-weight: 500; line-height: calc(34 * var(--p)); text-align: center; }
.lw-lead strong { color: var(--c-green); font-weight: 700; }
.lw-catch { margin-top: calc(48 * var(--p)); color: var(--c-green); font-size: calc(28 * var(--p)); font-weight: 700; line-height: calc(46 * var(--p)); text-align: center; }
.lw-note { margin-top: calc(16 * var(--p)); color: var(--c-gray); font-size: calc(12 * var(--p)); font-weight: 500; line-height: calc(20 * var(--p)); }
.lw-note--center { text-align: center; }
.lw-more { margin-top: calc(48 * var(--p)); text-align: center; }

@media (max-width: 767px) {
  .lw-text { font-size: calc(14 * var(--p)); line-height: calc(27 * var(--p)); }
  .lw-text p + p { margin-top: calc(16 * var(--p)); }
  * + .lw-text { margin-top: calc(28 * var(--p)); }
  .lw-head + .lw-text, .lw-band + .lw-text { margin-top: 0; }
  .lw-lead { margin-top: calc(24 * var(--p)); font-size: calc(15 * var(--p)); line-height: calc(27 * var(--p)); text-align: left; }
  .lw-catch { margin-top: calc(28 * var(--p)); font-size: calc(19 * var(--p)); line-height: calc(32 * var(--p)); }
  .lw-note { font-size: calc(11 * var(--p)); line-height: calc(18 * var(--p)); }
  .lw-note--center { text-align: left; }
  .lw-more { margin-top: calc(28 * var(--p)); }
  .lw-more .c-btn-outline { width: 100%; }
}

/* ==========================================================================
   Checklist（TOP お悩みリストの可変版）
   ========================================================================== */
.lw-check {
  display: grid; grid-template-columns: 1fr 1fr; gap: calc(24 * var(--p)) calc(40 * var(--p));
  padding: calc(44 * var(--p)) calc(48 * var(--p)); border-radius: calc(30 * var(--p)); background: var(--c-pale-1);
}
.lw-sec--pale1 .lw-check, .lw-sec--grad-pale .lw-check { background: #fff; }
.lw-check--1col { grid-template-columns: 1fr; gap: calc(18 * var(--p)); padding-inline: calc(56 * var(--p)); }
.lw-check li { display: flex; align-items: flex-start; gap: calc(16 * var(--p)); }
.lw-check img { flex: none; width: calc(24 * var(--p)); height: calc(24 * var(--p)); margin-top: calc(4 * var(--p)); }
.lw-check span { font-family: var(--ff-sen); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(30 * var(--p)); }
.lw-check em { font-style: normal; font-weight: 600; color: var(--c-green); }
@media (max-width: 767px) {
  .lw-check { grid-template-columns: 1fr; gap: calc(14 * var(--p)); padding: calc(24 * var(--p)) calc(20 * var(--p)); border-radius: calc(20 * var(--p)); }
  .lw-check li { gap: calc(10 * var(--p)); }
  .lw-check img { width: calc(20 * var(--p)); height: calc(20 * var(--p)); margin-top: calc(2 * var(--p)); }
  .lw-check span { font-size: calc(14 * var(--p)); line-height: calc(24 * var(--p)); }
}

/* ==========================================================================
   Cards（TOP「4つの強み」カードの可変版）
   ========================================================================== */
.lw-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(36 * var(--p)) calc(30 * var(--p)); }
.lw-cards--2 { grid-template-columns: repeat(2, 1fr); }
.lw-card {
  display: flex; flex-direction: column;
  padding: calc(36 * var(--p)) calc(34 * var(--p)) calc(38 * var(--p));
  border-radius: calc(30 * var(--p)); background: #fff;
  box-shadow: 0 calc(4 * var(--p)) calc(24 * var(--p)) rgba(55, 55, 55, .08);
}
.lw-card__head { display: flex; align-items: center; gap: calc(14 * var(--p)); min-height: calc(40 * var(--p)); padding-bottom: calc(20 * var(--p)); border-bottom: 1px solid var(--c-pale-3); }
.lw-card__num { flex: none; min-width: calc(40 * var(--p)); font-family: var(--ff-sen); font-weight: 700; font-size: calc(32 * var(--p)); line-height: 1; color: var(--c-pale-3); }
.lw-card__title { color: var(--c-green); font-size: calc(20 * var(--p)); font-weight: 700; line-height: calc(30 * var(--p)); }
.lw-card__text { margin-top: calc(20 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); }
.lw-card__btn { margin-top: auto; padding-top: calc(24 * var(--p)); }
.lw-card__btn .c-btn-outline { width: 100%; min-width: 0; }
@media (max-width: 767px) {
  .lw-cards, .lw-cards--2 { grid-template-columns: 1fr; gap: calc(16 * var(--p)); }
  .lw-card { padding: calc(22 * var(--p)) calc(22 * var(--p)) calc(24 * var(--p)); border-radius: calc(20 * var(--p)); }
  .lw-card__head { gap: calc(10 * var(--p)); min-height: 0; padding-bottom: calc(14 * var(--p)); }
  .lw-card__num { min-width: calc(28 * var(--p)); font-size: calc(22 * var(--p)); }
  .lw-card__title { font-size: calc(17 * var(--p)); line-height: calc(26 * var(--p)); }
  .lw-card__text { margin-top: calc(14 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(25 * var(--p)); }
  .lw-card__btn { padding-top: calc(18 * var(--p)); }
}

/* ==========================================================================
   Profile（院長写真つきメッセージ）/ Staff / Figure
   ========================================================================== */
.lw-profile {
  display: grid; grid-template-columns: calc(400 * var(--p)) 1fr; overflow: hidden;
  border-radius: calc(30 * var(--p)); background: var(--c-bg-3);
  box-shadow: 0 calc(4 * var(--p)) calc(36 * var(--p)) rgba(0, 0, 0, .14);
}
.lw-profile__photo { position: relative; min-height: calc(440 * var(--p)); }
.lw-profile__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.lw-profile__body { padding: calc(56 * var(--p)) calc(64 * var(--p)) calc(52 * var(--p)) calc(56 * var(--p)); }
.lw-profile__eyebrow {
  display: inline-block; padding: 0 calc(16 * var(--p)); border-radius: calc(20 * var(--p)); background: rgba(83, 157, 86, .1);
  color: var(--c-green); font-size: calc(15 * var(--p)); font-weight: 700; line-height: calc(32 * var(--p));
}
.lw-profile__title { margin-top: calc(16 * var(--p)); font-size: calc(28 * var(--p)); font-weight: 700; line-height: calc(44 * var(--p)); }
.lw-profile__title em { font-style: normal; color: var(--c-green); }
.lw-profile__text { margin-top: calc(20 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(32 * var(--p)); }
.lw-profile__eyebrow + .lw-profile__text, .lw-profile__text:first-child { margin-top: 0; }
.lw-profile__text strong { color: var(--c-green); font-weight: 700; }
.lw-profile__name { margin-top: calc(24 * var(--p)); color: var(--c-gray); font-size: calc(14 * var(--p)); font-weight: 500; text-align: right; }
.lw-profile__name b { color: var(--c-text); font-size: calc(22 * var(--p)); font-weight: 700; }

.lw-staff { display: grid; grid-template-columns: 1fr 1fr; gap: calc(40 * var(--p)); }
.lw-staff__item { overflow: hidden; border-radius: calc(30 * var(--p)); background: #fff; box-shadow: 0 calc(4 * var(--p)) calc(24 * var(--p)) rgba(55, 55, 55, .1); }
.lw-staff__photo { aspect-ratio: 4 / 4.4; background: var(--c-pale-2); }
.lw-staff__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.lw-staff__body { padding: calc(32 * var(--p)) calc(36 * var(--p)) calc(36 * var(--p)); }
.lw-staff__role { display: inline-block; padding: 0 calc(14 * var(--p)); border-radius: calc(20 * var(--p)); background: rgba(83, 157, 86, .1); color: var(--c-green); font-size: calc(14 * var(--p)); font-weight: 700; line-height: calc(30 * var(--p)); }
.lw-staff__name { margin-top: calc(12 * var(--p)); font-size: calc(28 * var(--p)); font-weight: 700; line-height: 1.4; }
.lw-staff__name span { margin-left: calc(10 * var(--p)); color: var(--c-gray); font-size: calc(14 * var(--p)); font-weight: 500; }
.lw-staff__msg { margin-top: calc(14 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(29 * var(--p)); }
.lw-staff__quals { margin-top: calc(20 * var(--p)); padding-top: calc(16 * var(--p)); border-top: 1px solid var(--c-pale-3); color: var(--c-gray); font-size: calc(13 * var(--p)); font-weight: 500; line-height: calc(23 * var(--p)); }

.lw-figure { margin-top: calc(40 * var(--p)); text-align: center; }
.lw-figure img { display: inline-block; max-width: 100%; padding: calc(14 * var(--p)); border: 1px solid var(--c-pale-3); border-radius: calc(20 * var(--p)); background: #fff; box-shadow: 0 calc(4 * var(--p)) calc(16 * var(--p)) rgba(55, 55, 55, .08); }
.lw-figure figcaption { margin-top: calc(12 * var(--p)); color: var(--c-gray); font-size: calc(13 * var(--p)); font-weight: 500; line-height: calc(22 * var(--p)); }

@media (max-width: 767px) {
  .lw-profile { grid-template-columns: 1fr; border-radius: calc(20 * var(--p)); }
  .lw-profile__photo { min-height: 0; height: calc(250 * var(--p)); }
  .lw-profile__body { padding: calc(24 * var(--p)) calc(20 * var(--p)) calc(28 * var(--p)); }
  .lw-profile__eyebrow { font-size: calc(13 * var(--p)); line-height: calc(28 * var(--p)); }
  .lw-profile__title { margin-top: calc(12 * var(--p)); font-size: calc(20 * var(--p)); line-height: calc(32 * var(--p)); }
  .lw-profile__text { margin-top: calc(14 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); }
  .lw-profile__name { margin-top: calc(16 * var(--p)); font-size: calc(12 * var(--p)); }
  .lw-profile__name b { font-size: calc(18 * var(--p)); }
  .lw-staff { grid-template-columns: 1fr; gap: calc(20 * var(--p)); }
  .lw-staff__item { border-radius: calc(20 * var(--p)); }
  .lw-staff__photo { aspect-ratio: 16 / 12; }
  .lw-staff__body { padding: calc(20 * var(--p)) calc(20 * var(--p)) calc(24 * var(--p)); }
  .lw-staff__role { font-size: calc(12 * var(--p)); line-height: calc(26 * var(--p)); }
  .lw-staff__name { font-size: calc(22 * var(--p)); }
  .lw-staff__name span { font-size: calc(12 * var(--p)); }
  .lw-staff__msg { font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); }
  .lw-staff__quals { font-size: calc(12 * var(--p)); line-height: calc(20 * var(--p)); }
  .lw-figure { margin-top: calc(24 * var(--p)); }
  .lw-figure img { padding: calc(8 * var(--p)); border-radius: calc(14 * var(--p)); }
  .lw-figure figcaption { font-size: calc(11 * var(--p)); line-height: calc(18 * var(--p)); text-align: left; }
}

/* ==========================================================================
   Notes（チェックアイコン付きカード）
   ========================================================================== */
.lw-notes { display: grid; gap: calc(16 * var(--p)); }
.lw-notes__item {
  padding: calc(28 * var(--p)) calc(40 * var(--p)) calc(30 * var(--p)) calc(80 * var(--p));
  border-radius: calc(20 * var(--p)); background: #fff url(/assets/img/top/03-check.svg) no-repeat calc(36 * var(--p)) calc(32 * var(--p)) / calc(26 * var(--p));
  box-shadow: 0 calc(4 * var(--p)) calc(16 * var(--p)) rgba(55, 55, 55, .07);
}
.lw-notes__title { color: var(--c-green); font-size: calc(19 * var(--p)); font-weight: 700; line-height: calc(30 * var(--p)); }
.lw-notes__text { margin-top: calc(8 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); }
@media (max-width: 767px) {
  .lw-notes { gap: calc(12 * var(--p)); }
  .lw-notes__item { padding: calc(18 * var(--p)) calc(18 * var(--p)) calc(20 * var(--p)) calc(50 * var(--p)); border-radius: calc(16 * var(--p)); background-position: calc(18 * var(--p)) calc(21 * var(--p)); background-size: calc(20 * var(--p)); }
  .lw-notes__title { font-size: calc(15 * var(--p)); line-height: calc(24 * var(--p)); }
  .lw-notes__text { margin-top: calc(6 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(24 * var(--p)); }
}
/* 他ブロックの直後に置いた注意事項ボックスの上余白 */
* + .lw-notes { margin-top: calc(48 * var(--p)); }
@media (max-width: 767px) { * + .lw-notes { margin-top: calc(28 * var(--p)); } }
.lw-head + .lw-notes, .lw-band + .lw-notes, .lw-band-lead + .lw-notes { margin-top: 0; }

/* ==========================================================================
   Case study（改善症例カード）
   ========================================================================== */
.lw-cases { display: grid; gap: calc(40 * var(--p)); }
.lw-cases + .lw-note { margin-top: calc(24 * var(--p)); }
.lw-case {
  padding: calc(48 * var(--p)) calc(56 * var(--p)) calc(44 * var(--p));
  border-radius: calc(30 * var(--p)); background: #fff;
  box-shadow: 0 calc(4 * var(--p)) calc(24 * var(--p)) rgba(55, 55, 55, .08);
}
.lw-case__tag {
  display: inline-block; padding: 0 calc(16 * var(--p)); border-radius: calc(20 * var(--p)); background: rgba(83, 157, 86, .1);
  color: var(--c-green); font-size: calc(14 * var(--p)); font-weight: 700; line-height: calc(30 * var(--p));
}
.lw-case__title { margin-top: calc(14 * var(--p)); font-size: calc(22 * var(--p)); font-weight: 700; line-height: calc(38 * var(--p)); }
.lw-case__ba { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: calc(44 * var(--p)); margin-top: calc(28 * var(--p)); }
.lw-case__ba::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: calc(16 * var(--p)); height: calc(22 * var(--p));
  background: var(--c-green); clip-path: polygon(0 0, 100% 50%, 0 100%); transform: translate(-40%, -50%);
}
.lw-case__col { padding: calc(24 * var(--p)) calc(26 * var(--p)) calc(26 * var(--p)); border-radius: calc(20 * var(--p)); background: var(--c-bg-1); }
.lw-case__col--after { background: var(--c-pale-1); box-shadow: inset 0 0 0 2px var(--c-green-light); }
.lw-case__label {
  display: inline-block; padding: 0 calc(14 * var(--p)); border-radius: calc(20 * var(--p)); background: #fff;
  color: var(--c-gray); font-size: calc(14 * var(--p)); font-weight: 700; line-height: calc(28 * var(--p));
}
.lw-case__col--after .lw-case__label { background: var(--c-green); color: #fff; }
.lw-case__text { margin-top: calc(12 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); }
.lw-case__voice { margin-top: calc(30 * var(--p)); color: var(--c-green); font-size: calc(20 * var(--p)); font-weight: 700; line-height: calc(34 * var(--p)); text-align: center; }
.lw-case__meta { margin-top: calc(10 * var(--p)); color: var(--c-gray); font-size: calc(13 * var(--p)); font-weight: 500; line-height: calc(22 * var(--p)); text-align: center; }
.lw-case__more { margin-top: calc(28 * var(--p)); padding-top: calc(28 * var(--p)); border-top: 1px dashed var(--c-pale-3); }
.lw-case__toggle {
  display: flex; align-items: center; justify-content: center; gap: calc(12 * var(--p));
  width: 100%; max-width: calc(420 * var(--p)); height: calc(56 * var(--p)); margin-inline: auto; border: 2px solid var(--c-green); border-radius: calc(28 * var(--p));
  background: #fff; color: var(--c-green); font-size: calc(16 * var(--p)); font-weight: 700; line-height: 1.3;
  transition: background-color var(--t);
}
.lw-case__toggle:hover { background: var(--c-pale-1); }
.lw-case__icon { display: grid; place-items: center; flex: none; width: calc(24 * var(--p)); height: calc(24 * var(--p)); border-radius: 50%; background: var(--c-green); color: #fff; font-size: calc(16 * var(--p)); font-weight: 700; line-height: 1; }
.lw-case__detail { margin-top: calc(32 * var(--p)); }
.lw-case__steps { list-style: none; margin: 0; padding: 0; }
.lw-case__step { position: relative; padding: 0 0 calc(28 * var(--p)) calc(40 * var(--p)); }
.lw-case__step:last-child { padding-bottom: 0; }
.lw-case__step::before { content: ""; position: absolute; left: 0; top: calc(8 * var(--p)); width: calc(14 * var(--p)); height: calc(14 * var(--p)); border-radius: 50%; background: var(--c-green); box-shadow: 0 0 0 calc(4 * var(--p)) var(--c-pale-1); }
.lw-case__step::after { content: ""; position: absolute; left: calc(6 * var(--p)); top: calc(30 * var(--p)); bottom: calc(2 * var(--p)); width: 2px; background: var(--c-pale-3); }
.lw-case__step:last-child::after { content: none; }
.lw-case__step-title { color: var(--c-green); font-size: calc(17 * var(--p)); font-weight: 700; line-height: calc(30 * var(--p)); }
.lw-case__step-text { margin-top: calc(8 * var(--p)); font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(29 * var(--p)); }
.lw-case__step-text + .lw-case__step-text { margin-top: calc(12 * var(--p)); }
.lw-case__step-text strong { color: var(--c-green); font-weight: 700; }
@media (max-width: 767px) {
  .lw-cases { gap: calc(20 * var(--p)); }
  .lw-cases + .lw-note { margin-top: calc(16 * var(--p)); }
  .lw-case { padding: calc(24 * var(--p)) calc(20 * var(--p)) calc(26 * var(--p)); border-radius: calc(20 * var(--p)); }
  .lw-case__tag { padding: 0 calc(12 * var(--p)); font-size: calc(12 * var(--p)); line-height: calc(26 * var(--p)); }
  .lw-case__title { margin-top: calc(10 * var(--p)); font-size: calc(17 * var(--p)); line-height: calc(28 * var(--p)); }
  .lw-case__ba { grid-template-columns: 1fr; gap: calc(30 * var(--p)); margin-top: calc(20 * var(--p)); }
  .lw-case__ba::after { width: calc(22 * var(--p)); height: calc(14 * var(--p)); clip-path: polygon(0 0, 100% 0, 50% 100%); transform: translate(-50%, -40%); }
  .lw-case__col { padding: calc(16 * var(--p)) calc(16 * var(--p)) calc(18 * var(--p)); border-radius: calc(16 * var(--p)); }
  .lw-case__label { padding: 0 calc(12 * var(--p)); font-size: calc(12 * var(--p)); line-height: calc(24 * var(--p)); }
  .lw-case__text { margin-top: calc(8 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(25 * var(--p)); }
  .lw-case__voice { margin-top: calc(20 * var(--p)); font-size: calc(16 * var(--p)); line-height: calc(28 * var(--p)); text-align: left; }
  .lw-case__meta { margin-top: calc(8 * var(--p)); font-size: calc(12 * var(--p)); line-height: calc(20 * var(--p)); text-align: left; }
  .lw-case__more { margin-top: calc(20 * var(--p)); padding-top: calc(20 * var(--p)); }
  .lw-case__toggle { max-width: none; height: calc(50 * var(--p)); font-size: calc(14 * var(--p)); }
  .lw-case__icon { width: calc(22 * var(--p)); height: calc(22 * var(--p)); font-size: calc(14 * var(--p)); }
  .lw-case__detail { margin-top: calc(24 * var(--p)); }
  .lw-case__step { padding: 0 0 calc(22 * var(--p)) calc(26 * var(--p)); }
  .lw-case__step::before { top: calc(6 * var(--p)); width: calc(12 * var(--p)); height: calc(12 * var(--p)); box-shadow: 0 0 0 calc(3 * var(--p)) var(--c-pale-1); }
  .lw-case__step::after { left: calc(5 * var(--p)); top: calc(24 * var(--p)); }
  .lw-case__step-title { font-size: calc(15 * var(--p)); line-height: calc(24 * var(--p)); }
  .lw-case__step-text { margin-top: calc(6 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(26 * var(--p)); }
}

/* ==========================================================================
   Media row（画像＋テキスト）
   ========================================================================== */
.lw-media { display: grid; grid-template-columns: 1fr calc(520 * var(--p)); gap: calc(60 * var(--p)); align-items: center; }
.lw-media--rev { grid-template-columns: calc(520 * var(--p)) 1fr; }
.lw-media--rev .lw-media__img { order: -1; }
.lw-media__catch { font-size: calc(24 * var(--p)); font-weight: 700; line-height: calc(42 * var(--p)); }
.lw-media__catch span { background: linear-gradient(transparent 60%, var(--c-marker) 60%); }
.lw-media__text { margin-top: calc(22 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(34 * var(--p)); }
.lw-media__text strong { color: var(--c-green); font-weight: 700; }
.lw-media__img { overflow: hidden; aspect-ratio: 4 / 3; border-radius: calc(30 * var(--p)); box-shadow: 0 calc(4 * var(--p)) calc(24 * var(--p)) rgba(55, 55, 55, .12); }
.lw-media__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) {
  .lw-media, .lw-media--rev { grid-template-columns: 1fr; gap: calc(20 * var(--p)); }
  .lw-media__img { order: -1; aspect-ratio: 16 / 10; border-radius: calc(20 * var(--p)); }
  .lw-media__catch { font-size: calc(18 * var(--p)); line-height: calc(31 * var(--p)); }
  .lw-media__text { margin-top: calc(14 * var(--p)); font-size: calc(14 * var(--p)); line-height: calc(27 * var(--p)); }
}

/* ==========================================================================
   Stats（実績タイル）
   ========================================================================== */
.lw-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(20 * var(--p)); }
.lw-stats__item { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: calc(30 * var(--p)) calc(12 * var(--p)) calc(26 * var(--p)); border-radius: calc(20 * var(--p)); background: #fff; box-shadow: 0 calc(4 * var(--p)) calc(16 * var(--p)) rgba(55, 55, 55, .08); text-align: center; }
.lw-stats__value { display: flex; align-items: baseline; justify-content: center; min-height: calc(52 * var(--p)); color: var(--c-green); font-size: calc(30 * var(--p)); font-weight: 700; line-height: calc(52 * var(--p)); white-space: nowrap; }
.lw-stats__num { font-family: var(--ff-sen); font-weight: 500; font-size: calc(46 * var(--p)); }
.lw-stats__unit { margin-left: calc(2 * var(--p)); font-size: calc(18 * var(--p)); font-weight: 700; }
.lw-stats__cap { margin-top: calc(10 * var(--p)); font-size: calc(14 * var(--p)); font-weight: 500; line-height: calc(22 * var(--p)); }
@media (max-width: 767px) {
  .lw-stats { grid-template-columns: 1fr 1fr; gap: calc(12 * var(--p)); }
  .lw-stats__item { padding: calc(18 * var(--p)) calc(6 * var(--p)) calc(16 * var(--p)); border-radius: calc(16 * var(--p)); }
  .lw-stats__value { min-height: calc(36 * var(--p)); font-size: calc(20 * var(--p)); line-height: calc(36 * var(--p)); }
  .lw-stats__num { font-size: calc(32 * var(--p)); }
  .lw-stats__unit { font-size: calc(13 * var(--p)); }
  .lw-stats__cap { margin-top: calc(6 * var(--p)); font-size: calc(12 * var(--p)); line-height: calc(18 * var(--p)); }
}

/* ==========================================================================
   Table / Access
   ========================================================================== */
.lw-table { width: 100%; font-size: calc(15 * var(--p)); font-weight: 500; line-height: calc(26 * var(--p)); }
.lw-table th, .lw-table td { padding: calc(16 * var(--p)) calc(20 * var(--p)); border: 1px solid var(--c-pale-3); text-align: left; vertical-align: top; }
.lw-table th { width: calc(140 * var(--p)); background: var(--c-pale-2); font-weight: 700; white-space: nowrap; }
.lw-table td { background: #fff; }
.lw-table a { color: var(--c-green); text-decoration: underline; transition: opacity var(--t); }
.lw-table a:hover { opacity: .7; }
.lw-access { display: grid; grid-template-columns: 1fr 1fr; gap: calc(40 * var(--p)); align-items: stretch; }
.lw-access__map { overflow: hidden; min-height: calc(320 * var(--p)); border-radius: calc(20 * var(--p)); box-shadow: 0 calc(4 * var(--p)) calc(16 * var(--p)) rgba(55, 55, 55, .1); }
.lw-access__map iframe { display: block; width: 100%; height: 100%; min-height: calc(320 * var(--p)); border: 0; }
@media (max-width: 767px) {
  .lw-table { font-size: calc(13 * var(--p)); line-height: calc(22 * var(--p)); }
  .lw-table th, .lw-table td { padding: calc(12 * var(--p)); }
  .lw-table th { width: calc(88 * var(--p)); }
  .lw-access { grid-template-columns: 1fr; gap: calc(20 * var(--p)); }
  .lw-access__map, .lw-access__map iframe { min-height: calc(260 * var(--p)); border-radius: calc(16 * var(--p)); }
}

/* ==========================================================================
   TOP ブロック再利用 adapter（top.css の固定高さ・Figma 座標を下層用に可変化）
   ※ TOP の SP ルールは既に可変なので、adapter は基本 PC(≥768) のみ
   ========================================================================== */
/* FAQ（20-faq）: 見出し直後は 0、他ブロックの直後は PC 48 / SP 28（ラッパーで余白を作らない） */
.lw-sec .s-faq__list { margin-top: 0; }
.lw-sec * + .s-faq__list { margin-top: calc(48 * var(--p)); }
.lw-sec .lw-head + .s-faq__list, .lw-sec .lw-band + .s-faq__list, .lw-sec .lw-band-lead + .s-faq__list { margin-top: 0; }
@media (max-width: 767px) {
  .lw-sec * + .s-faq__list { margin-top: calc(28 * var(--p)); }
  .lw-sec .lw-head + .s-faq__list, .lw-sec .lw-band + .s-faq__list, .lw-sec .lw-band-lead + .s-faq__list { margin-top: 0; }
}

/* 最終 CTA（22-cta） */
.lw-cta-sec { background: #4a4541; }
.lw-cta-sec .s-cta__bg { bottom: 0; aspect-ratio: auto; }
.lw-cta-sec .s-cta__bg img { object-fit: cover; object-position: 50% 30%; }
.lw-cta-sec .s-cta__sub, .lw-cta-sec .s-cta__title { padding-left: 0; }
.lw-cta-sec .s-cta__title:first-child { margin-top: 0; }
.lw-cta-sec .s-cta__title + .s-cta__sub { margin-top: calc(22 * var(--p)); }

/* お客様の声カード（07-voice） */
/* TOP 以外の人物: イメージイラスト（/assets/img/avatar-female.svg / avatar-male.svg。カードの「女性/男性」で選ぶ） */
.lw-avatar { border-radius: 50%; object-fit: contain; }
@media (min-width: 768px) {
  .s-voice__cards.lw-voices { justify-content: center; align-items: stretch; margin: 0; }
  .lw-voices .s-voice__card { display: flex; flex-direction: column; height: auto; margin: 0; padding-bottom: calc(34 * var(--p)); }
  .lw-voices .s-voice__card .s-voice__card-head { height: auto; margin-bottom: calc(22 * var(--p)); }
  .lw-voices .s-voice__card .s-voice__avatar { width: calc(100 * var(--p)); height: calc(100 * var(--p)); margin-left: calc(31 * var(--p)); }
  .lw-voices .s-voice__card .s-voice__name { margin: calc(20 * var(--p)) 0 0 calc(22 * var(--p)); }
  .lw-voices .s-voice__card .s-voice__body { width: auto; margin: 0 calc(33 * var(--p)); }
  .lw-voices .s-voice__card .s-voice__note { position: static; margin: auto calc(33 * var(--p)) 0; padding-top: calc(14 * var(--p)); white-space: normal; }
}

/* 流れ（10-flow） */
@media (min-width: 768px) {
  .s-flow__steps.lw-flow { width: calc(980 * var(--p)); margin: 0 auto; }
  .lw-flow .s-flow__step { height: auto; min-height: calc(212 * var(--p)); margin: 0; padding: calc(47 * var(--p)) calc(40 * var(--p)) calc(44 * var(--p)) calc(128 * var(--p)); }
  .lw-flow .s-flow__step .s-flow__photo { top: 0; bottom: 0; right: 0; height: auto; }
  .lw-flow .s-flow__photo--s { width: calc(379 * var(--p)); }
  .lw-flow .s-flow__text { max-width: calc(560 * var(--p)); white-space: normal; }
  .lw-flow .s-flow__photo--s ~ .s-flow__text, .lw-flow .s-flow__photo--s ~ .s-flow__step-title { max-width: calc(450 * var(--p)); white-space: normal; }
  .lw-flow__fade img { -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 55%); mask-image: linear-gradient(to right, transparent 0%, #000 55%); }
}

/* 料金（12-price） */
.lw-price-card__eyebrow { color: var(--c-green); text-align: center; }
.lw-price-card__sub { margin-top: calc(6 * var(--p)); font-size: calc(16 * var(--p)); font-weight: 500; line-height: calc(28 * var(--p)); text-align: center; }
.lw-price-card__limited { margin-top: calc(18 * var(--p)); color: var(--c-green); font-size: calc(16 * var(--p)); font-weight: 700; line-height: calc(26 * var(--p)); text-align: center; }
.lw-price-card .s-price__was del { text-decoration: line-through; text-decoration-color: var(--c-red); text-decoration-thickness: 2px; }
@media (min-width: 768px) {
  .s-price__band.lw-price-band { width: 100%; height: auto; min-height: calc(205 * var(--p)); margin: calc(90 * var(--p)) 0 0; padding: calc(34 * var(--p)) calc(290 * var(--p)) calc(36 * var(--p)) calc(321.6 * var(--p)); }
  .lw-price-band .s-price__desc { font-size: calc(18 * var(--p)); line-height: calc(32 * var(--p)); }
  .s-price__card.lw-price-card { height: auto; margin: calc(94 * var(--p)) auto 0; padding: calc(66 * var(--p)) calc(81 * var(--p)) calc(44 * var(--p)); }
  .lw-price-card .s-price__body { justify-content: center; align-items: center; gap: calc(36 * var(--p)); height: auto; padding: calc(26 * var(--p)) 0 0; }
  .lw-price-card .s-price__regular { width: auto; }
  .lw-price-card .s-price__was { width: auto; margin: 0; }
  .lw-price-card .s-price__amount { width: auto; margin: 0; line-height: 1.1; }
  .lw-price-card .s-price__foot { position: static; justify-content: center; align-items: center; gap: calc(40 * var(--p)); margin-top: calc(26 * var(--p)); }
  .lw-price-card .s-price__note { width: auto; max-width: calc(560 * var(--p)); white-space: normal; }
  .lw-price-card .s-price__btn { flex: none; width: auto; margin-top: 0; padding: 0 calc(24 * var(--p)); justify-content: center; gap: calc(10 * var(--p)); }
  .s-price__refund.lw-refund { width: calc(911 * var(--p)); height: auto; margin: calc(36 * var(--p)) auto 0; padding: calc(47 * var(--p)) calc(70 * var(--p)) calc(40 * var(--p)); }
  .lw-refund::before { left: calc(7 * var(--p)); right: calc(7 * var(--p)); top: calc(9 * var(--p)); bottom: calc(10 * var(--p)); width: auto !important; height: auto !important; }
  .lw-refund .s-price__refund-title { height: auto; margin-top: calc(26 * var(--p)); line-height: 1.3; }
  .lw-refund .s-price__refund-text { margin: calc(26 * var(--p)) 0 0; }
  .lw-refund .s-price__refund-note { margin: calc(12 * var(--p)) 0 0; }
}
@media (max-width: 767px) {
  .s-price__band.lw-price-band { margin-top: calc(40 * var(--p)); }
  .lw-price-band .s-price__title { font-size: calc(18 * var(--p)); }
  .s-price__card.lw-price-card { padding-top: calc(38 * var(--p)); }
  .lw-price-card .s-price__body { padding-top: calc(16 * var(--p)); }
  .lw-price-card__sub { padding: 0 calc(16 * var(--p)); font-size: calc(13 * var(--p)); line-height: calc(22 * var(--p)); }
  .lw-price-card__limited { padding: 0 calc(16 * var(--p)); font-size: calc(14 * var(--p)); }
  .lw-price-card .s-price__was { text-align: center; }
}

/* 関連症状タイル（17-symptoms） */
.s-symptoms__list.lw-related { justify-content: center; }
@media (min-width: 768px) {
  .s-symptoms__list.lw-related { grid-template-columns: repeat(auto-fit, calc(198 * var(--p))); grid-template-rows: none; grid-auto-rows: calc(277 * var(--p)); margin: 0; }
}
/* お客様の声カード: 改善見出し・お悩みタグ（/voice/ 一覧） */
.lw-voice__title { margin: 0 calc(33 * var(--p)) calc(12 * var(--p)); color: var(--c-green); font-size: calc(18 * var(--p)); font-weight: 700; line-height: calc(29 * var(--p)); }
.lw-voice__tag { align-self: flex-start; width: fit-content; max-width: calc(100% - 66 * var(--p)); margin: 0 calc(33 * var(--p)) calc(14 * var(--p)); padding: calc(4 * var(--p)) calc(12 * var(--p)); border-radius: calc(8 * var(--p)); background: var(--c-pale-1); color: var(--c-gray); font-size: calc(13 * var(--p)); font-weight: 700; line-height: calc(20 * var(--p)); }
@media (max-width: 767px) {
  .lw-voice__title { margin: calc(16 * var(--p)) 0 calc(8 * var(--p)); font-size: calc(16 * var(--p)); line-height: calc(25 * var(--p)); }
  .lw-voice__tag { max-width: 100%; margin: 0; font-size: calc(12 * var(--p)); line-height: calc(18 * var(--p)); }
  .lw-voices .lw-voice__tag + .s-voice__body { margin-top: calc(12 * var(--p)) !important; }
}

/* 注意事項ボックス内の箇条書き（price / privacy） */
.lw-notes__list { list-style: none; padding: 0; }
.lw-notes__list li { padding-left: 1em; text-indent: -1em; }
.lw-notes__list li::before { content: "・"; }

/* 料金帯なしで料金カードをセクション先頭に置いたとき（/price/） */
.lw-sec__inner > .s-price__card.lw-price-card:first-child { margin-top: calc(40 * var(--p)); }
@media (max-width: 767px) { .lw-sec__inner > .s-price__card.lw-price-card:first-child { margin-top: calc(24 * var(--p)); } }

/* 見出しの最終行が 1〜2 文字だけになる（孤立文字）のを避ける */
/* 見出し・キャッチは文節で改行（Chrome 119+ の auto-phrase。未対応ブラウザは通常改行） */
.page-lower main :is(h1, h2, h3, h4) { text-wrap: pretty; word-break: auto-phrase; }
.page-lower main :is(.lw-media__catch, .lw-catch, .lw-case__voice, .lw-lead) { word-break: auto-phrase; }

/* SP: 比較表（.lw-compare）は .lw-sec__inner の左右余白の中に置かれるので、TOP 用の左右 margin 33 を打ち消して本文幅に合わせる */
@media (max-width: 767px) { .s-diff__table-wrap.lw-compare { margin-left: 0; margin-right: 0; } }
