@charset "UTF-8";
/* 西船橋スポーツ接骨院／超音波エコー観察装置ページ（/echo/）
   静的実装。既存SWELLのヘッダー・サイドメニュー・フッターと同居する。

   単位：既存サイトに合わせた上限なしvw（PC 1920設計 / SP 375設計）。
        1単位 = 1px @設計幅。 width: calc(600 * var(--u)) のように書く。
        ※ rules.md の「SWELL案件は min(vw,px)」からの意図的な逸脱。理由は specs/IMPL-NOTES.md
   ブレークポイント：959 / 960px（既存に合わせる） */

/* ===== SWELLレイアウト器の補正 =========================================
   #content には全ページ既定で margin-top:6em が入り、ページID別（.id_10 等）にだけ
   0 で上書きされている。/echo/ は wp-load.php 直読みで #body_wrap に id_XXX が
   付かないため 6em が残る。当ページCSSは /echo/ でしか読まれないので他ページ非影響。

   ⚠ セレクタは `html body div#content`（要素を1つ足して詳細度を上げる）。
   SWELLの追加CSSは全く同じ `html body #content { margin-top:6em !important }` を
   出しており、しかもWPコアが追加CSSを wp_head の優先度101で出す＝当CSS（99）より後。
   同詳細度・同 !important では後勝ちなので、素の `html body #content` では負ける
   （2026-08-20 /echo-test/ で実測。FV上部に96pxの空きが出た）。 */
html body div#content {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ===== スコープ・トークン ============================================== */
.page-echo {
  --u: calc(100vw / 1920);       /* 1単位 = 1px @1920px */

  --blue: #004A96;
  --black: #333333;
  --lightgray: #F4F6FA;
  --white: #FFFFFF;

  /* 明朝＝既存サイトが TypeSquare で読んでいる hiragino-mincho-pron（W6=600 / W3=300）に相乗り。
     ゴシック＝Figma指定の Source Han Sans JP と同一書体である Noto Sans JP を Google Fonts から
     読む（W3/Normal=350・Bold=700）。既存サイトのゴシックはシステムフォントで webfont は無い。 */
  --font-mincho: "hiragino-mincho-pron", "Hiragino Mincho ProN", "游明朝", YuMincho, "Yu Mincho", serif;
  --font-gothic: "Noto Sans JP", "Source Han Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;

  color: var(--black);
  font-family: var(--font-mincho);
  font-weight: 600;              /* 本文＝明朝W6（Figma 本文-明朝） */
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: 0.5px;
  background: var(--white);
  overflow-x: clip;              /* vw設計のわずかな横はみ出しを抑止 */
}

@media screen and (max-width: 959px) {
  .page-echo { --u: calc(100vw / 375); }
}

/* ===== リセット（SWELLからの染み出し対策） =============================
   .page-echo *(0,1,0) で SWELL の素要素規則(0,0,1)を打ち消す。
   色・装飾は :where()(0,0,0) にして、自前のクラス指定(0,1,0)を殺さないようにする。 */
.page-echo * { box-sizing: border-box; margin: 0; padding: 0; }

:where(.page-echo) img { max-width: 100%; display: block; }
:where(.page-echo) a { color: inherit; text-decoration: none; }
:where(.page-echo) :is(h1, h2, h3, h4, h5, h6) { color: inherit; font-size: inherit; font-weight: inherit; }
:where(.page-echo) ul, :where(.page-echo) ol { list-style: none; }

/* ===== 出し分けユーティリティ ========================================== */
.page-echo .sp-only { display: none; }
@media screen and (max-width: 959px) {
  .page-echo .pc-only { display: none; }
  .page-echo .sp-only { display: revert; }
}

/* ===== 共通パーツ ====================================================== */

/* セクション見出し（Figma: title コンポーネント PC 51:795 / SP 53:1693）
   全幅のグレー罫線の上に、見出しの幅ぶんだけ青い罫線が重なる構造 */
.c-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-bottom: 1px solid #CDD6DD;
}
.c-title__inner {
  display: flex;
  align-items: center;
  padding-bottom: calc(30 * var(--u));
  border-bottom: 1px solid var(--blue);
}
.c-title__text {
  font-size: calc(40 * var(--u));
  line-height: calc(60 / 40);
  letter-spacing: calc(0.8 * var(--u));
  white-space: nowrap;
}
@media screen and (max-width: 959px) {
  .c-title__inner { padding-bottom: 0; }
  .c-title__text {
    font-size: calc(25 * var(--u));
    line-height: calc(48 / 25);
    letter-spacing: calc(0.6 * var(--u));
  }
}

/* ===== セクション ======================================================
   以降 Phase 2 でセクション単位に追記する（sec-fv → sec-faq） */

/* ---------- sec-fv（Figma PC 49:473 / SP 53:1661） ---------- */
.sec-fv__inner {
  position: relative;
  overflow: clip;
  border-bottom-left-radius: calc(90 * var(--u));
  padding: calc(225 * var(--u)) calc(80 * var(--u)) calc(221 * var(--u));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(20 * var(--u));
}

.sec-fv__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.sec-fv__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 白文字の可読性を確保する黒25%のオーバーレイ（Figma: rgba(0,0,0,0.25)） */
.sec-fv__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
}

.sec-fv__title,
.sec-fv__en {
  position: relative;   /* オーバーレイより前面 */
  color: var(--white);
  white-space: nowrap;
}
.sec-fv__title {
  font-size: calc(60 * var(--u));
  line-height: calc(90 / 60);
  letter-spacing: calc(1 * var(--u));
}
.sec-fv__en {
  font-weight: 300;     /* 明朝W3 */
  font-size: calc(20 * var(--u));
  line-height: calc(24 / 20);
  letter-spacing: calc(2 * var(--u));
}

/* ---------- sec-intro（Figma PC 49:498 / SP 53:1262） ---------- */
.sec-intro { padding-left: calc(80 * var(--u)); }

.sec-intro__main {
  position: relative;
  overflow: clip;
  padding-top: calc(160 * var(--u));
}

/* 見出し（明朝W6 50/100）＋背後の装飾マーク */
.sec-intro__head {
  position: relative;
  padding: calc(102 * var(--u)) 0 calc(60 * var(--u));
}
.sec-intro__title {
  font-size: calc(50 * var(--u));
  line-height: calc(100 / 50);
  letter-spacing: calc(1.2 * var(--u));
  white-space: nowrap;
}
.sec-intro__title-em { color: var(--blue); }

.sec-intro__mark {
  position: absolute;
  left: calc(60 * var(--u));
  top: 50%;
  transform: translateY(-50%);
  width: calc(298.44 * var(--u));
  height: calc(322.88 * var(--u));
  object-fit: cover;
  pointer-events: none;
}

/* 施術中の写真：PCは右上に絶対配置（右端フラッシュ・左側だけ角丸） */
.sec-intro__treat {
  position: absolute;
  right: 0;
  top: calc(160 * var(--u));
  width: calc(600 * var(--u));
  height: calc(480 * var(--u));
  object-fit: cover;
  border-radius: calc(30 * var(--u)) 0 0 calc(30 * var(--u));
}

.sec-intro__lead {
  display: flex;
  align-items: flex-end;
  gap: calc(99 * var(--u));
  margin-top: calc(67 * var(--u));
}
.sec-intro__room {
  flex: none;
  width: calc(400 * var(--u));
  height: calc(460 * var(--u));
  object-fit: cover;
  border-radius: calc(30 * var(--u));
}
.sec-intro__text {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(50 / 18);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-intro__em {
  color: var(--blue);
  font-weight: 700;
}

/* 補足カード＋機器写真 */
.sec-intro__note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: calc(10 * var(--u));
  padding-right: calc(80 * var(--u));
}
.sec-intro__card {
  border: 3px solid #CDD6DD;          /* 罫線は px 固定（rules.md の例外） */
  border-radius: calc(30 * var(--u));
  padding: calc(50 * var(--u)) calc(53 * var(--u));
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-intro__device {
  flex: none;
  width: calc(340 * var(--u));
  height: calc(340 * var(--u));
  object-fit: cover;
  border-radius: calc(15 * var(--u));
}

/* ---------- sec-about（Figma PC 51:503 / SP 53:1275） ---------- */
.sec-about {
  padding: calc(160 * var(--u)) calc(160 * var(--u)) calc(160 * var(--u)) calc(80 * var(--u));
}

.sec-about__top {
  display: flex;
  align-items: center;
  gap: calc(72 * var(--u));
}
.sec-about__photo {
  flex: none;
  width: calc(420 * var(--u));
  height: calc(420 * var(--u));
  object-fit: cover;
  border-radius: calc(30 * var(--u));
}
.sec-about__body {
  flex: 1;
  min-width: 0;
}
.sec-about__title {
  padding-bottom: calc(22 * var(--u));
  border-bottom: 1px solid #CDD6DD;
  font-size: calc(40 * var(--u));
  line-height: calc(60 / 40);
  letter-spacing: calc(0.8 * var(--u));
}
.sec-about__title-em { color: var(--blue); }
.sec-about__text {
  margin-top: calc(60 * var(--u));
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: calc(0.5 * var(--u));
}

/* 3つの特徴カード */
.sec-about__points {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-top: calc(80 * var(--u));
}
.sec-about__point {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(40 * var(--u));
  width: calc(400 * var(--u));
  height: calc(460 * var(--u));
  border: 3px solid #CDD6DD;
  border-radius: calc(30 * var(--u));
}
.sec-about__icon {
  flex: none;
  height: calc(180 * var(--u));
  width: auto;
  object-fit: cover;
}
.sec-about__point-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(24 * var(--u));
  width: 100%;
}
.sec-about__point-title {
  width: 100%;
  color: var(--blue);
  font-size: calc(24 * var(--u));
  line-height: calc(36 / 24);
  letter-spacing: calc(0.7 * var(--u));
  text-align: center;
}
/* 区切り線：Figmaでは高さ0の軸に2pxのストロークを描いているため、
   レイアウト上の高さを持たせず（height:0）、線は疑似要素で描く */
.sec-about__rule {
  position: relative;
  display: block;
  width: calc(40 * var(--u));
  height: 0;
}
.sec-about__rule::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--blue);
}
.sec-about__point-text {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: calc(0.5 * var(--u));
  text-align: center;
}

/* ---------- sec-use（Figma PC 51:533 / SP 53:1301） ---------- */
.sec-use {
  overflow: clip;
  padding: calc(160 * var(--u));
  background: var(--lightgray);
  border-radius: calc(90 * var(--u)) 0 0 calc(90 * var(--u));   /* 左側だけ角丸・右端フラッシュ */
}
.sec-use__title {
  font-size: calc(40 * var(--u));
  line-height: calc(60 / 40);
  letter-spacing: calc(0.8 * var(--u));
}
.sec-use__list {
  margin-top: calc(60 * var(--u));
  border-top: 1px solid #CDD6DD;
}
.sec-use__item {
  display: flex;
  align-items: center;
  gap: calc(72 * var(--u));
  padding: calc(64 * var(--u)) 0;
  border-bottom: 1px solid #CDD6DD;
}
.sec-use__img {
  flex: none;
  width: calc(350 * var(--u));
  height: calc(300 * var(--u));
  object-fit: cover;
  border-radius: calc(30 * var(--u));
}
.sec-use__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--u));
}
.sec-use__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(20 * var(--u));
}
.sec-use__label {
  color: var(--blue);
  font-size: calc(20 * var(--u));
  line-height: calc(34 / 20);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-use__name {
  font-size: calc(32 * var(--u));
  line-height: calc(36 / 32);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-use__name-sub {
  font-size: calc(24 * var(--u));
  letter-spacing: calc(0.7 * var(--u));
}
.sec-use__text {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: calc(0.5 * var(--u));
}

/* ---------- sec-nayami（Figma PC 51:591 / SP 53:1325） ---------- */
.sec-nayami {
  display: flex;
  align-items: flex-start;
  gap: calc(72 * var(--u));
  padding: calc(160 * var(--u)) 0 calc(160 * var(--u)) calc(80 * var(--u));
}
.sec-nayami__main {
  flex: 1;
  min-width: 0;
}
.sec-nayami__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--u));
}
.sec-nayami__title {
  font-size: calc(40 * var(--u));
  line-height: calc(60 / 40);
  letter-spacing: calc(0.8 * var(--u));
}
.sec-nayami__lead {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(26 / 18);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-nayami__list {
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--u));
  margin-top: calc(60 * var(--u));
}

/* カード：PCは［アイコン｜見出し＋説明］の横並び。
   .sec-nayami__row を display:contents にしてグリッドの直接の子にする */
.sec-nayami__item {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: calc(24 * var(--u));
  row-gap: calc(16 * var(--u));
  align-items: center;
  padding: calc(37 * var(--u)) 0 calc(37 * var(--u)) calc(32 * var(--u));
  background: var(--blue);
  border-radius: calc(10 * var(--u));
  color: var(--white);
}
.sec-nayami__row { display: contents; }
.sec-nayami__icon {
  grid-row: 1 / span 2;
  align-self: center;
  width: calc(32.41 * var(--u));
  height: calc(32.41 * var(--u));
  object-fit: cover;
  border-radius: 999px;
}
.sec-nayami__name {
  grid-column: 2;
  grid-row: 1;
  font-size: calc(24 * var(--u));
  line-height: calc(29 / 24);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-nayami__desc {
  grid-column: 2;
  grid-row: 2;
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(26 / 18);
  letter-spacing: calc(0.5 * var(--u));
}

.sec-nayami__photo {
  flex: none;
  width: calc(620 * var(--u));
  height: calc(1320 * var(--u));
  object-fit: cover;
  border-radius: calc(30 * var(--u)) 0 0 calc(30 * var(--u));
}

/* ---------- sec-case（Figma PC 51:657 / SP 53:1338） ---------- */
.sec-case {
  overflow: clip;
  padding: calc(160 * var(--u));
  background: var(--lightgray);
  border-radius: calc(90 * var(--u)) 0 0 calc(90 * var(--u));
}
.sec-case__lead {
  margin-top: calc(60 * var(--u));
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-case__list {
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--u));
  margin-top: calc(80 * var(--u));
}
.sec-case__item {
  display: flex;
  align-items: center;
  gap: calc(64 * var(--u));
  overflow: clip;
  padding: calc(60 * var(--u)) calc(68 * var(--u));
  background: var(--white);
  border-radius: calc(30 * var(--u));
}
/* PC/SPで写真の縦横比が変わるため <picture> で出し分ける。
   picture 自体を寸法の器にする（display:contents にすると <source> が
   フレックス項目として数えられ、gapが1つ余分に入って本文幅が狭くなる） */
.sec-case__pic {
  flex: none;
  width: calc(360 * var(--u));
  height: calc(460 * var(--u));
  overflow: clip;
  border-radius: calc(30 * var(--u));
}
.sec-case__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sec-case__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--u));
}
.sec-case__title {
  display: flex;
  align-items: baseline;
  gap: calc(8 * var(--u));
  width: 100%;
  padding-bottom: calc(20 * var(--u));
  border-bottom: 1px dashed #98A6B5;
  white-space: nowrap;
}
.sec-case__name {
  font-size: calc(32 * var(--u));
  line-height: calc(38 / 32);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-case__meta {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(26 / 18);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-case__blocks {
  display: flex;
  flex-direction: column;
  gap: calc(32 * var(--u));
  width: 100%;
}
.sec-case__block {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--u));
}
.sec-case__label {
  color: var(--blue);
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(20 * var(--u));
  line-height: calc(29 / 20);
  letter-spacing: calc(0.5 * var(--u));
  white-space: nowrap;
}
.sec-case__text {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(32 / 18);
  letter-spacing: calc(0.5 * var(--u));
}

/* ---------- sec-parts（Figma PC 51:800 / SP 53:1347） ---------- */
.sec-parts {
  padding: calc(160 * var(--u)) calc(160 * var(--u)) calc(160 * var(--u)) calc(80 * var(--u));
}
.sec-parts__list {
  display: grid;
  grid-template-columns: repeat(2, calc(620 * var(--u)));
  gap: calc(40 * var(--u));
  margin-top: calc(60 * var(--u));
}
.sec-parts__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(32 * var(--u));
  min-width: 0;          /* 写真が枠より少し広いため、min-content でカードが膨らむのを防ぐ */
  height: calc(684 * var(--u));
  overflow: clip;
  padding: calc(40 * var(--u)) calc(50 * var(--u)) 0;
  border: 3px solid #CDD6DD;
  border-radius: calc(30 * var(--u));
}
/* Figmaでは写真だけ枠線の内側3pxぶんはみ出して配置されている（本文は x=53 / 写真は x=50）。
   リセットの max-width:100% を解除し、中央寄せでその位置を再現する */
.sec-parts__photo {
  flex: none;
  width: calc(520 * var(--u));
  max-width: none;
  height: calc(340 * var(--u));
  object-fit: cover;
  border-radius: calc(20 * var(--u));
}
.sec-parts__body {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--u));
  white-space: nowrap;
}
.sec-parts__head {
  display: flex;
  align-items: baseline;
  gap: calc(20 * var(--u));
}
.sec-parts__num {
  color: #CDD6DD;
  font-size: calc(56 * var(--u));
  line-height: calc(67 / 56);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-parts__name {
  font-size: calc(32 * var(--u));
  line-height: calc(38 / 32);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-parts__name-sub {
  font-size: calc(24 * var(--u));
  letter-spacing: calc(0.7 * var(--u));
}
.sec-parts__text {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(22 * var(--u));
  line-height: calc(40 / 22);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-parts__note {
  margin-top: calc(60 * var(--u));
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(22 * var(--u));
  line-height: calc(32 / 22);
  letter-spacing: calc(0.5 * var(--u));
}

/* ---------- sec-flow（Figma PC 52:868 / SP 53:1355） ---------- */
.sec-flow {
  overflow: clip;
  padding: calc(160 * var(--u));
  background: var(--lightgray);
  border-radius: calc(90 * var(--u)) 0 0 calc(90 * var(--u));
}
.sec-flow__list {
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--u));
  margin-top: calc(80 * var(--u));
}
.sec-flow__item {
  display: flex;
  align-items: center;
  gap: calc(80 * var(--u));
}
.sec-flow__img {
  flex: none;
  width: calc(400 * var(--u));
  height: calc(320 * var(--u));
  object-fit: cover;
  border-radius: calc(30 * var(--u));
}
.sec-flow__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--u));
}
.sec-flow__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(160 * var(--u));
  padding: calc(8 * var(--u)) 0;
  background: var(--blue);
  border-radius: calc(30 * var(--u));
  color: var(--white);
  font-size: calc(20 * var(--u));
  line-height: calc(24 / 20);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-flow__name {
  font-size: calc(32 * var(--u));
  line-height: calc(38 / 32);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-flow__text {
  width: 100%;
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: calc(0.5 * var(--u));
}

/* ---------- sec-faq（Figma PC 53:932 / SP 53:1363） ---------- */
.sec-faq {
  padding: calc(160 * var(--u)) calc(160 * var(--u)) calc(160 * var(--u)) calc(80 * var(--u));
}
/* カード間の余白は list の gap で持つ（2026-08-20 Figma修正）。
   旧デザインは間隔0で、そのぶんを回答ブロックの下padding（52）に持たせていたため、
   閉じている状態ではカード同士が密着していた。修正後は 下padding 28 ＋ gap 24。 */
.sec-faq__list {
  margin-top: calc(60 * var(--u));
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--u));
}

.sec-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: calc(30 * var(--u)) calc(40 * var(--u));
  background: var(--lightgray);
  border: 0;
  border-radius: calc(15 * var(--u));
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.sec-faq__qinner {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: calc(60 * var(--u));
  white-space: nowrap;
}
.sec-faq__mark {
  color: var(--blue);
  font-size: calc(28 * var(--u));
  line-height: calc(36 / 28);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-faq__qtext {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(22 * var(--u));
  line-height: calc(32 / 22);
  letter-spacing: calc(0.5 * var(--u));
}
.sec-faq__toggle {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(60 * var(--u));
  height: calc(60 * var(--u));
  background: var(--blue);
  border-radius: 999px;
  color: var(--white);
  font-size: calc(28 * var(--u));
  line-height: calc(36 / 28);
  letter-spacing: calc(0.7 * var(--u));
}
.sec-faq__toggle::before { content: "＋"; }
.sec-faq__q[aria-expanded="true"] .sec-faq__toggle::before { content: "−"; }

.sec-faq__a {
  padding: calc(28 * var(--u)) calc(120 * var(--u));
}
.sec-faq__a[hidden] { display: none; }
.sec-faq__atext {
  font-family: var(--font-gothic);
  font-weight: 350;
  font-size: calc(18 * var(--u));
  line-height: calc(36 / 18);
  letter-spacing: calc(0.5 * var(--u));
}

@media screen and (max-width: 959px) {
  .sec-fv { padding-left: calc(24 * var(--u)); }   /* 左24・右フラッシュ */
  .sec-fv__inner {
    border-bottom-left-radius: calc(30 * var(--u));
    padding: calc(100 * var(--u)) calc(20 * var(--u));
  }
  .sec-fv__title {
    font-size: calc(25 * var(--u));
    line-height: calc(48 / 25);
  }
  .sec-fv__en {
    font-size: calc(14 * var(--u));
    line-height: calc(28 / 14);
    letter-spacing: calc(1.6 * var(--u));
  }

  /* ---- sec-intro（SP 53:1262）---- */
  .sec-intro { padding-left: calc(24 * var(--u)); }
  .sec-intro__main { padding-top: calc(80 * var(--u)); }

  .sec-intro__head { padding: calc(60 * var(--u)) 0 0; }
  .sec-intro__title {
    font-size: calc(25 * var(--u));
    line-height: calc(42 / 25);
    letter-spacing: calc(0.6 * var(--u));
  }
  .sec-intro__mark {
    left: 0;
    top: 0;
    transform: none;
    width: calc(175.64 * var(--u));
    height: calc(190.02 * var(--u));
  }

  /* 施術中の写真：SPでは見出しの直下に通常配置（右端フラッシュのまま） */
  .sec-intro__treat {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 351 / 320;
    margin-top: calc(42 * var(--u));
    border-radius: calc(15 * var(--u)) 0 0 calc(15 * var(--u));
  }

  /* SPは 導入文 → 院内写真 の順（PCは 院内写真 → 導入文 の横並び） */
  .sec-intro__lead {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: calc(32 * var(--u));
    margin-top: calc(32 * var(--u));
    padding-right: calc(24 * var(--u));
  }
  .sec-intro__room {
    width: 100%;
    height: auto;
    aspect-ratio: 327 / 280;
    border-radius: calc(15 * var(--u));
  }
  .sec-intro__text {
    font-size: calc(15 * var(--u));
    line-height: calc(36 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  .sec-intro__note {
    flex-direction: column;
    align-items: flex-end;
    gap: calc(24 * var(--u));
    padding-right: calc(24 * var(--u));
  }
  .sec-intro__card {
    align-self: flex-start;
    width: calc(280 * var(--u));
    padding: calc(24 * var(--u)) calc(20 * var(--u));
    border-radius: calc(15 * var(--u));
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }
  .sec-intro__device {
    width: calc(180 * var(--u));
    height: calc(180 * var(--u));
  }

  /* ---- sec-about（SP 53:1275）---- */
  .sec-about { padding: calc(80 * var(--u)) calc(24 * var(--u)); }

  /* SPは 見出し → 本文 → 写真 の縦積み（PCは 写真 → 見出し＋本文 の横並び） */
  .sec-about__top {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: calc(32 * var(--u));
  }
  .sec-about__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: calc(15 * var(--u));
  }
  .sec-about__title {
    padding-bottom: calc(20 * var(--u));
    font-size: calc(25 * var(--u));
    line-height: calc(42 / 25);
  }
  .sec-about__text {
    margin-top: calc(40 * var(--u));
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  .sec-about__points {
    flex-direction: column;
    align-items: stretch;
    gap: calc(24 * var(--u));
    margin-top: calc(40 * var(--u));
  }
  .sec-about__point {
    width: 100%;
    height: auto;
    gap: calc(16 * var(--u));
    padding: calc(32 * var(--u)) 0;
    border-radius: calc(15 * var(--u));
  }
  .sec-about__icon { height: calc(146.67 * var(--u)); }
  .sec-about__point-body { gap: calc(20 * var(--u)); }
  /* SPも24px（行高36）＝PCと同値のまま。Figmaは14pxだが誤りとの判断（鈴木 2026-08-20） */
  .sec-about__point-text {
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  /* ---- sec-use（SP 53:1301）---- */
  .sec-use {
    padding: calc(80 * var(--u)) calc(24 * var(--u));
    border-radius: calc(30 * var(--u)) 0 0 calc(30 * var(--u));
  }
  .sec-use__title {
    font-size: calc(25 * var(--u));
    line-height: calc(42 / 25);
  }
  .sec-use__list { margin-top: calc(40 * var(--u)); }

  /* SPは 見出し → 画像 → 本文 の順（PCは 画像 ｜ 見出し＋本文 の横並び）。
     .sec-use__body を display:contents にして order で並べ替える。 */
  .sec-use__item {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: calc(40 * var(--u)) 0;
  }
  .sec-use__body { display: contents; }
  .sec-use__head { order: 1; gap: calc(16 * var(--u)); }
  .sec-use__img {
    order: 2;
    width: 100%;
    height: auto;
    aspect-ratio: 350 / 300;
    margin: calc(24 * var(--u)) 0 calc(32 * var(--u));
    border-radius: calc(15 * var(--u));
  }
  .sec-use__text {
    order: 3;
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  .sec-use__label {
    font-size: calc(14 * var(--u));
    line-height: calc(28 / 14);
    letter-spacing: calc(1.6 * var(--u));
  }
  .sec-use__name {
    font-size: calc(22 * var(--u));
    line-height: calc(36 / 22);
    letter-spacing: calc(0.5 * var(--u));
  }
  /* 02だけSPで2行になるため行高を詰める（Figma準拠。01・03は1行で行高36）。
     26は実測合わせ＝Figmaの2行ぶんの高さ52pxに一致させるため */
  .sec-use__name--tight { line-height: calc(26 / 22); }
  .sec-use__name-sub {
    font-size: calc(14 * var(--u));
    letter-spacing: calc(0.5 * var(--u));
  }

  /* ---- sec-nayami（SP 53:1325）---- */
  /* SPは 見出し → 写真 → カード の順（PCは 左カラム ｜ 右に縦長写真）。
     .sec-nayami__main を display:contents にして order で並べ替える。 */
  .sec-nayami {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: calc(80 * var(--u)) 0 calc(80 * var(--u)) calc(24 * var(--u));
  }
  .sec-nayami__main { display: contents; }
  .sec-nayami__head {
    order: 1;
    gap: calc(16 * var(--u));
  }
  .sec-nayami__title {
    font-size: calc(25 * var(--u));
    line-height: calc(42 / 25);
  }
  .sec-nayami__lead {
    width: calc(327 * var(--u));
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  /* 写真は右端フラッシュ（左だけ角丸） */
  .sec-nayami__photo {
    order: 2;
    width: 100%;
    height: calc(400 * var(--u));
    margin: calc(40 * var(--u)) 0;
    border-radius: calc(15 * var(--u)) 0 0 calc(15 * var(--u));
  }

  .sec-nayami__list {
    order: 3;
    gap: calc(16 * var(--u));
    margin-top: 0;
    padding-right: calc(24 * var(--u));
  }

  /* カード：SPは［アイコン＋見出し］／［説明］の縦積み */
  .sec-nayami__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(16 * var(--u));
    padding: calc(22 * var(--u)) calc(15 * var(--u));
    border-radius: calc(4 * var(--u));
  }
  .sec-nayami__row {
    display: flex;
    align-items: center;
    gap: calc(10 * var(--u));
  }
  .sec-nayami__icon {
    width: calc(20 * var(--u));
    height: calc(20 * var(--u));
  }
  .sec-nayami__name {
    font-size: calc(17 * var(--u));
    line-height: calc(20 / 17);
    letter-spacing: calc(0.5 * var(--u));
  }
  .sec-nayami__desc {
    width: 100%;
    padding-left: calc(30 * var(--u));
    font-size: calc(15 * var(--u));
    line-height: calc(26 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  /* ---- sec-case（SP 53:1338）---- */
  .sec-case {
    padding: calc(80 * var(--u)) calc(24 * var(--u));
    border-radius: calc(30 * var(--u)) 0 0 calc(30 * var(--u));
  }
  .sec-case__lead {
    margin-top: calc(40 * var(--u));
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }
  .sec-case__list {
    gap: calc(16 * var(--u));
    margin-top: calc(40 * var(--u));
  }

  /* SPは 写真（正方形）→ 見出し → 本文 の縦積み */
  .sec-case__item {
    flex-direction: column;
    align-items: center;
    gap: calc(30 * var(--u));
    padding: calc(32 * var(--u)) calc(20 * var(--u));
    border-radius: calc(15 * var(--u));
  }
  /* 正方形。aspect-ratio ではなく実寸で指定する（中の img が height:100% のため
     親を auto にすると img の固有比が勝ってしまう） */
  .sec-case__pic {
    width: 100%;
    height: calc(287 * var(--u));
    border-radius: calc(15 * var(--u));
  }
  .sec-case__body {
    width: 100%;
    gap: calc(16 * var(--u));
  }
  /* SPは症例名と属性を縦に積む（PCは同じ行にベースライン揃え） */
  .sec-case__title {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(12 * var(--u));
  }
  .sec-case__name {
    font-size: calc(22 * var(--u));
    line-height: calc(26 / 22);
  }
  .sec-case__meta {
    font-size: calc(15 * var(--u));
    line-height: calc(26 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }
  .sec-case__label {
    font-size: calc(17 * var(--u));
    line-height: calc(25 / 17);
  }
  .sec-case__text {
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }
  /* 「症状」ブロックだけ行高32（Figma準拠。2・3ブロックは28） */
  .sec-case__block:first-child .sec-case__text { line-height: calc(32 / 15); }

  /* ---- sec-parts（SP 53:1347）---- */
  .sec-parts { padding: calc(80 * var(--u)) calc(24 * var(--u)); }
  .sec-parts__list {
    grid-template-columns: 1fr;      /* SPは1列 */
    gap: calc(24 * var(--u));
    margin-top: calc(40 * var(--u));
  }
  .sec-parts__item {
    height: auto;
    gap: calc(20 * var(--u));
    padding: calc(32 * var(--u)) calc(26 * var(--u));
    border-radius: calc(15 * var(--u));
  }
  .sec-parts__photo {
    width: calc(276 * var(--u));
    height: calc(160 * var(--u));
    border-radius: calc(15 * var(--u));
  }
  /* SPは幅が足りず 03「大腿・下腿（もも・ふくらはぎ）」の見出しが2行になる（Figma準拠）ため
     nowrap を解除する */
  .sec-parts__body {
    gap: calc(16 * var(--u));
    white-space: normal;
  }
  .sec-parts__num {
    font-size: calc(30 * var(--u));
    line-height: calc(36 / 30);
  }
  .sec-parts__name {
    font-size: calc(22 * var(--u));
    line-height: calc(26 / 22);
  }
  .sec-parts__name-sub { font-size: calc(14 * var(--u)); }
  .sec-parts__text {
    font-size: calc(15 * var(--u));
    line-height: calc(40 / 15);
  }
  .sec-parts__note {
    margin-top: calc(40 * var(--u));
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  /* ---- sec-flow（SP 53:1355）---- */
  .sec-flow {
    padding: calc(80 * var(--u)) calc(24 * var(--u));
    border-radius: calc(30 * var(--u)) 0 0 calc(30 * var(--u));
  }
  .sec-flow__list {
    gap: calc(40 * var(--u));
    margin-top: calc(40 * var(--u));
  }

  /* SPは STEPバッジ → 見出し → 画像 → 本文 の順（PCは 画像 ｜ 本文ブロック の横並び） */
  .sec-flow__item {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(20 * var(--u));
  }
  .sec-flow__body { display: contents; }
  .sec-flow__badge {
    order: 1;
    width: calc(100 * var(--u));
    font-size: calc(14 * var(--u));
    line-height: calc(24 / 14);
    letter-spacing: calc(0.4 * var(--u));
  }
  .sec-flow__name {
    order: 2;
    font-size: calc(22 * var(--u));
    line-height: calc(26 / 22);
  }
  .sec-flow__img {
    order: 3;
    width: 100%;
    height: calc(262 * var(--u));
    border-radius: calc(15 * var(--u));
  }
  .sec-flow__text {
    order: 4;
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }

  /* ---- sec-faq（SP 53:1363）---- */
  .sec-faq { padding: calc(80 * var(--u)) calc(24 * var(--u)); }
  .sec-faq__list {
    margin-top: calc(40 * var(--u));
    gap: calc(10 * var(--u));
  }
  .sec-faq__q {
    padding: calc(20 * var(--u));
    border-radius: calc(4 * var(--u));
  }
  /* SPは質問文が折り返すので nowrap を解除し、Qと縦中央で揃える */
  .sec-faq__qinner {
    align-items: center;
    gap: calc(18 * var(--u));
    white-space: normal;
  }
  .sec-faq__mark {
    font-size: calc(18 * var(--u));
    line-height: calc(24 / 18);
  }
  .sec-faq__qtext {
    flex: 1;
    min-width: 0;
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
  }
  /* トグルは他ページと同じ40px（2026-08-21 萩原指示。Figmaは54のまま） */
  .sec-faq__toggle {
    width: calc(40 * var(--u));
    height: calc(40 * var(--u));
    font-size: calc(18 * var(--u));
    line-height: calc(24 / 18);
  }
  .sec-faq__a {
    padding: calc(20 * var(--u)) calc(50 * var(--u));
  }
  .sec-faq__atext {
    font-size: calc(15 * var(--u));
    line-height: calc(28 / 15);
    letter-spacing: calc(0.4 * var(--u));
  }
}
