@charset "UTF-8";
/* ============================================================
   PRP-FD療法 ランディングページ (page-prp.php) 専用スタイル
   デザイン基準: PC 1440 / コンテンツ 1024, SP 375 / コンテンツ 343
   カラー: Base #FBFCFE #EAF5EF #F5F4EA / Main #3A1E08
           Accent #018E4A #FFE902 #00ACDF
   ============================================================ */

.page-prp {
  --prp-main: #3a1e08;
  --prp-green: #018e4a;
  --prp-yellow: #ffe902;
  --prp-blue: #00acdf;
  --prp-base-blue: #fbfcfe;
  --prp-base-green: #eaf5ef;
  --prp-base-beige: #f5f4ea;
  --prp-btn-green: #2da878;

  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
  color: var(--prp-main);
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0;
}

.page-prp img {
  display: block;
  max-width: 100%;
}

/* 共通コンテナ: PC 1024 / SP 343 */
.page-prp .prp-container {
  width: 1024px;
  max-width: 100%;
  margin-inline: auto;
}

/* ============================================================
   共通: CTAボタン
   ============================================================ */
.page-prp .prp-cta-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 423px;
  height: 64px;
  /* ラベル中心・矢印位置はカンプ実測値に合わせる（ラベル中心190 / 矢印は右端から56px） */
  padding-right: 43px;
  border: 4px solid #fff;
  border-radius: 40px;
  background-color: var(--prp-btn-green);
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.page-prp .prp-cta-btn__label {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 1.2px;
  white-space: nowrap;
}

.page-prp .prp-cta-btn__arrow {
  position: absolute;
  top: 50%;
  right: 52px;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
}

.page-prp .prp-cta-btn:hover { opacity: 0.85; }

/* ============================================================
   FV
   ============================================================ */
.page-prp .prp-fv {
  position: relative;
  height: 800px;
  /* 写真をヘッダー領域まで伸ばすためクリップしない（写真は __photo 側でクリップ） */
  overflow: visible;
  background-color: #fff;

  /* #main より上にある余白（ヘッダー）の高さ */
  --prp-header-h: 60px;
}

/* 写真だけをヘッダーぶん上へ拡張し、ロゴの位置で写真が切れないようにする。
   素材は枠より縦に長いので、cover で切り落としていた分が現れるだけ（生成不要）。
   ヘッダーは z-index:1000 なので写真の上に載る */
.page-prp .prp-fv__photo {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(var(--prp-header-h) * -1);
  bottom: 0;
  overflow: hidden;
  pointer-events: none;
}

/* PC/SPそれぞれ専用に書き出された素材をそのまま敷く */
.page-prp .prp-fv__photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
}

.page-prp .prp-fv__overlay { display: none; }

.page-prp .prp-fv__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

/* キャッチコピー */
.page-prp .prp-fv__catch {
  position: absolute;
  left: 0;
  top: 82px;
  margin: 0;
  font-size: 56px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: var(--prp-main);
}

.page-prp .prp-fv__catch-col {
  display: block;
  /* 背景写真に対する視認性確保: 全行に白フチ */
  -webkit-text-stroke: 3px #fff;
  paint-order: stroke fill;
}

.page-prp .prp-fv__catch-col--accent { color: var(--prp-green); }

/* 認定バッジ */
.page-prp .prp-fv__badges {
  position: absolute;
  left: 0;
  top: 386px;
  display: flex;
  gap: 9px;
}

.page-prp .prp-fv__badge {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 207px;
  height: 96px;
  padding: 0 20px;
  border: 2px solid var(--prp-blue);
  background-color: rgba(255, 255, 255, 0.88);
}

.page-prp .prp-fv__badge-icon {
  position: absolute;
  top: -21px;
  left: 50%;
  width: 35px;
  height: 35px;
  transform: translateX(-50%);
}

.page-prp .prp-fv__badge--01 .prp-fv__badge-icon {
  left: 84px;
  transform: none;
}

.page-prp .prp-fv__badge-icon img { width: 35px; height: 35px; }

.page-prp .prp-fv__badge-text {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  color: var(--prp-blue);
  white-space: nowrap;
}

.page-prp .prp-fv__badge--02 .prp-fv__badge-text { line-height: 1.9; }

/* サブコピー */
.page-prp .prp-fv__subcopy {
  position: absolute;
  /* z-index を持たせて自前のスタッキングコンテキストを作る。
     こうしないと ::before(z-index:-1) が .prp-fv__photo の背面に落ちて見えない */
  z-index: 1;
  left: 0;
  top: 496px;
  width: 423px;
  height: 128px;
  margin: 0;
  padding: 16px 18px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--prp-main);
}

.page-prp .prp-fv__subcopy::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: 8px;
  background-color: rgba(255, 255, 255, 0.64);
  filter: blur(4px);
}

/* CTA */
.page-prp .prp-fv__cta {
  position: absolute;
  left: 0;
  top: 664px;
}


/* ============================================================
   共通: 見出し下線
   ============================================================ */
.page-prp .prp-heading__line {
  display: block;
  width: 80px;
  height: 2px;
  background-color: #d9822b;
}

/* ============================================================
   pain-section: こんなお悩みありませんか？
   ============================================================ */
.page-prp .prp-pain {
  position: relative;
  height: 1021px;
  overflow: hidden;
  background-color: var(--prp-base-beige);
}

.page-prp .prp-pain__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  opacity: 0.1;
  pointer-events: none;
}

/* 背景は装飾。<img> だとGoogle検索のサムネイル候補に拾われるので background で描く */
.page-prp .prp-pain__bg::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 105.78%;
  background: url('../images/prp-pain-bg.webp') center / cover no-repeat;
}

.page-prp .prp-pain__leaf {
  position: absolute;
  display: block;
  overflow: hidden;
  pointer-events: none;
}

.page-prp .prp-pain__leaf::before {
  content: '';
  position: absolute;
  background-image: url('../images/prp-leaf.webp');
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

.page-prp .prp-pain__leaf--01 {
  left: 0;
  top: 0;
  width: 338px;
  height: 191px;
}

.page-prp .prp-pain__leaf--01::before {
  left: 0;
  top: 0;
  width: 233.35%;
  height: 292.32%;
}

.page-prp .prp-pain__leaf--02 {
  left: 1102px;
  top: 818px;
  width: 338px;
  height: 203px;
}

.page-prp .prp-pain__leaf--02::before {
  left: -136.3%;
  top: -179.1%;
  width: 236.3%;
  height: 279.1%;
}

.page-prp .prp-pain__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

/* 見出し */
.page-prp .prp-pain__title {
  position: absolute;
  left: 292px;
  top: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 440px;
  margin: 0;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-pain__title-text { display: block; line-height: 1.7; }
.page-prp .prp-pain__title-sm { font-size: 32px; }
.page-prp .prp-pain__title-lg { font-size: 40px; }

/* お悩みカード */
.page-prp .prp-pain__card {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 24px;
  width: 430px;
  height: 98px;
  padding: 18px 22px;
  overflow: hidden;
  background-color: #fff;
  box-shadow: 0 4px 8px 0 #d9ddd7;
  border-radius: 24px 24px 24px 4px;
}

.page-prp .prp-pain__card--02,
.page-prp .prp-pain__card--04 {
  border-radius: 24px 24px 4px 24px;
}

.page-prp .prp-pain__card--01 { left: 80px;  top: 222px; }
.page-prp .prp-pain__card--02 { left: 514px; top: 320px; }
.page-prp .prp-pain__card--03 { left: 80px;  top: 418px; }
.page-prp .prp-pain__card--04 { left: 514px; top: 516px; }
.page-prp .prp-pain__card--05 { left: 80px;  top: 614px; }

.page-prp .prp-pain__check {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
}

.page-prp .prp-pain__check img { width: 32px; height: 32px; }

.page-prp .prp-pain__card-text {
  flex-shrink: 0;
  width: 329px;
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 2;
  color: var(--prp-main);
}

/* 人物カットアウト */
.page-prp .prp-pain__photo {
  position: absolute;
  display: block;
  overflow: hidden;
  opacity: 0.9;
  pointer-events: none;
}

.page-prp .prp-pain__photo::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.page-prp .prp-pain__photo--01::before { background-image: url('../images/prp-pain-01.webp'); }
.page-prp .prp-pain__photo--02::before { background-image: url('../images/prp-pain-02.webp'); }
.page-prp .prp-pain__photo--03::before { background-image: url('../images/prp-pain-03.webp'); }
.page-prp .prp-pain__photo--04::before { background-image: url('../images/prp-pain-04.webp'); }
.page-prp .prp-pain__photo--05::before { background-image: url('../images/prp-pain-05.webp'); }

/* 01 / 05 は Figma 側で拡大・オフセットが入っている（上端基準・見切れ防止） */
.page-prp .prp-pain__photo--01::before,
.page-prp .prp-pain__photo--05::before { background-size: 100% 100%; }

.page-prp .prp-pain__photo--01::before { left: -13.23%; width: 113.53%; height: 100%; }
.page-prp .prp-pain__photo--05::before { left: -0.11%; width: 100.22%; height: 110.96%; }

.page-prp .prp-pain__photo--01 { left: 0;     top: 296px; width: 99px;  height: 120px; }
.page-prp .prp-pain__photo--02 { left: 918px; top: 393px; width: 106px; height: 120px; }
.page-prp .prp-pain__photo--03 { left: 0;     top: 486px; width: 105px; height: 120px; }
.page-prp .prp-pain__photo--04 { left: 909px; top: 603px; width: 115px; height: 120px; transform: scaleX(-1); }
.page-prp .prp-pain__photo--05 { left: 0;     top: 676px; width: 100px; height: 120px; transform: scaleX(-1); }

/* 下向き三角 */
.page-prp .prp-pain__arrow {
  position: absolute;
  left: 412px;
  top: 760px;
  display: block;
  width: 200px;
  height: 53px;
}

.page-prp .prp-pain__arrow img { width: 100%; height: 100%; transform: scaleY(-1); }

/* 結び */
.page-prp .prp-pain__lead {
  position: absolute;
  left: 312px;
  top: 845px;
  width: 400px;
  margin: 0;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
  color: var(--prp-main);
}

.page-prp .prp-pain__lead-sm { font-size: 24px; }
.page-prp .prp-pain__lead-accent { font-size: 28px; color: var(--prp-green); }


/* ============================================================
   qa-01 / qa-02: 院長Q&A
   ============================================================ */
.page-prp .prp-qa {
  position: relative;
  overflow: hidden;
}

.page-prp .prp-qa--01 { height: 535px; background-color: var(--prp-base-green); }
.page-prp .prp-qa--02 { height: 502px; background-color: var(--prp-base-beige); }

.page-prp .prp-qa__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

.page-prp .prp-qa__accent { color: var(--prp-green); }

/* 質問 */
.page-prp .prp-qa__q {
  position: absolute;
  left: 213px;
  display: flex;
  align-items: center;
  gap: 22px;
}

.page-prp .prp-qa--01 .prp-qa__q { top: 80px; }
.page-prp .prp-qa--02 .prp-qa__q { top: 56px; }

.page-prp .prp-qa__q-badge {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 3px solid #fff;
  border-radius: 6px;
  background-color: var(--prp-yellow);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}

.page-prp .prp-qa__q-text {
  flex-shrink: 0;
  margin: 0;
  font-weight: 700;
  line-height: 1.7;
  color: var(--prp-main);
  white-space: nowrap;
}

.page-prp .prp-qa__q-sm { font-size: 32px; }
.page-prp .prp-qa__q-lg { font-size: 40px; }

/* 挿絵 */
.page-prp .prp-qa__illust {
  position: absolute;
  left: 720px;
  top: 0;
  display: block;
  width: 153px;
  height: 154px;
}

.page-prp .prp-qa__illust::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../images/prp-qa-illust.webp') center / cover no-repeat;
}

/* 院長写真（円形） */
.page-prp .prp-qa__doctor {
  position: absolute;
  left: 0;
  display: block;
  width: 189px;
  height: 189px;
  overflow: hidden;
  border-radius: 50%;
}

.page-prp .prp-qa--01 .prp-qa__doctor { top: 180px; }
.page-prp .prp-qa--02 .prp-qa__doctor { top: 156px; }

.page-prp .prp-qa__doctor::before {
  content: '';
  position: absolute;
  left: -10.58%;
  top: -1.59%;
  width: 130.16%;
  height: 147.09%;
  background-image: url('../images/prp-doctor-round.webp');
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

/* 回答の見出し（白フキダシ） */
.page-prp .prp-qa__a-title {
  position: absolute;
  left: 213px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 76px;
  margin: 0;
  padding: 10px 8px;
  border-radius: 24px 24px 24px 4px;
  background-color: #fff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.8;
  color: var(--prp-main);
}

.page-prp .prp-qa__a-title-text { display: block; }

.page-prp .prp-qa--01 .prp-qa__a-title { top: 180px; width: 686px; }
.page-prp .prp-qa--02 .prp-qa__a-title { top: 156px; width: 513px; }

/* 回答本文 */
.page-prp .prp-qa__body {
  position: absolute;
  left: 213px;
  width: 811px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--prp-main);
}

.page-prp .prp-qa--01 .prp-qa__body { top: 272px; }
.page-prp .prp-qa--02 .prp-qa__body { top: 248px; }

.page-prp .prp-qa__body p { margin: 0; }


/* ============================================================
   共通: サブ見出し（両側に線 + オレンジ文字）
   ============================================================ */
.page-prp .prp-heading__sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  color: #d9822b;
  white-space: nowrap;
}

.page-prp .prp-heading__sub-line {
  display: block;
  width: 23px;
  height: 2px;
  background-color: #d9822b;
}

/* ============================================================
   feature-section: PRP-FD療法とは
   ============================================================ */
.page-prp .prp-feat {
  position: relative;
  height: 743px;
  overflow: hidden;
  background-color: #fff;
}

.page-prp .prp-feat__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 776px;
  overflow: hidden;
  pointer-events: none;
}

.page-prp .prp-feat__bg::before {
  content: '';
  position: absolute;
  left: -11.05%;
  top: -54.44%;
  width: 111.05%;
  height: 154.44%;
  background: url('../images/prp-feat-bg.webp') center / cover no-repeat;
}

.page-prp .prp-feat__bg-veil { display: none; }

.page-prp .prp-feat__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

.page-prp .prp-feat__illust {
  position: absolute;
  left: -62px;
  top: 80px;
  display: block;
  width: 102px;
  height: 171px;
  transform: scaleX(-1);
}

.page-prp .prp-feat__illust::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../images/prp-feat-illust.webp') center / cover no-repeat;
}

.page-prp .prp-feat__sub {
  position: absolute;
  left: 419px;
  top: 80px;
  width: 186px;
}

.page-prp .prp-feat__title {
  position: absolute;
  left: 197px;
  top: 114px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 630px;
  margin: 0;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-feat__title-text { display: block; line-height: 1.7; }
.page-prp .prp-feat__title-sm { font-size: 32px; }
.page-prp .prp-feat__title-lg { font-size: 40px; color: var(--prp-green); }

/* カード */
.page-prp .prp-feat__cards {
  position: absolute;
  left: 0;
  top: 280px;
  display: flex;
  gap: 24px;
}

.page-prp .prp-feat__card {
  position: relative;
  flex-shrink: 0;
  width: 238px;
  height: 383px;
  overflow: hidden;
  border: 2px solid var(--prp-btn-green);
  border-radius: 12px;
  background-color: #a8dfc9;
}

.page-prp .prp-feat__num {
  position: absolute;
  left: 16px;
  top: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background-color: #d9822b;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.6;
  color: #fff;
}

.page-prp .prp-feat__card-title {
  position: absolute;
  left: 66px;
  top: 31px;
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--prp-main);
  white-space: nowrap;
}

.page-prp .prp-feat__card-line {
  position: absolute;
  left: 69px;
  top: 65px;
  display: block;
  width: 44px;
  height: 1px;
  background-color: #d9822b;
}

.page-prp .prp-feat__icon {
  position: absolute;
  left: 56px;
  top: 95px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 122px;
  height: 122px;
  border-radius: 50%;
  background-color: #f7f7f7;
}

.page-prp .prp-feat__icon img { width: 80px; height: 80px; }

.page-prp .prp-feat__card-text {
  position: absolute;
  left: 20px;
  top: 249px;
  width: 194px;
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--prp-main);
}


/* ============================================================
   flow-section: 診療・治療の流れ
   ============================================================ */
.page-prp .prp-flow {
  position: relative;
  height: 855px;
  overflow: hidden;
  background-color: #eaf5f2;
}

.page-prp .prp-flow__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

.page-prp .prp-flow__sub {
  position: absolute;
  left: 420px;
  top: 80px;
  width: 184px;
}

.page-prp .prp-flow__title {
  position: absolute;
  left: 197px;
  top: 114px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 630px;
  margin: 0;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-flow__title-text {
  display: block;
  font-size: 32px;
  line-height: 1.7;
}

/* カード */
.page-prp .prp-flow__cards {
  position: absolute;
  left: 0;
  top: 266px;
  display: flex;
  gap: 16px;
}

.page-prp .prp-flow__card {
  position: relative;
  flex-shrink: 0;
  width: 192px;
  height: 280px;
  overflow: hidden;
  border: 1px solid var(--prp-green);
  border-radius: 8px;
  background-color: #fff;
}

.page-prp .prp-flow__card-image {
  position: absolute;
  left: -1px;
  top: -1px;
  display: block;
  width: 192px;
  height: 140px;
  overflow: hidden;
  border-radius: 8px 8px 0 0;
}

.page-prp .prp-flow__card-image img { width: 100%; height: 100%; object-fit: cover; }

.page-prp .prp-flow__num {
  position: absolute;
  left: 80px;
  top: 124px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 2px solid #fff;
  border-radius: 50%;
  background-color: var(--prp-green);
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}

.page-prp .prp-flow__card-body {
  position: absolute;
  left: -1px;
  top: 139px;
  width: 192px;
  height: 140px;
}

.page-prp .prp-flow__card-title {
  position: absolute;
  left: 9px;
  top: 28px;
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--prp-main);
  white-space: nowrap;
}

.page-prp .prp-flow__card-line {
  position: absolute;
  left: 9px;
  top: 54px;
  display: block;
  width: 23px;
  height: 1px;
  background-color: var(--prp-btn-green);
}

.page-prp .prp-flow__card-text {
  position: absolute;
  left: 11px;
  top: 62px;
  width: 172px;
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--prp-main);
}

.page-prp .prp-flow__card:nth-child(1) .prp-flow__card-text,
.page-prp .prp-flow__card:nth-child(2) .prp-flow__card-text {
  font-size: 13px;
  line-height: 1.5;
}

/* 下向き三角 */
.page-prp .prp-flow__arrow {
  position: absolute;
  left: 412px;
  top: 594px;
  display: block;
  width: 200px;
  height: 53px;
}

.page-prp .prp-flow__arrow img { width: 100%; height: 100%; transform: scaleY(-1); }

/* 結び */
.page-prp .prp-flow__lead {
  position: absolute;
  left: 284px;
  top: 679px;
  width: 456px;
  margin: 0;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
  color: var(--prp-main);
}

.page-prp .prp-flow__lead-sm { font-size: 24px; }
.page-prp .prp-flow__lead-lg { font-size: 28px; }


/* ============================================================
   message-section: 院長メッセージ
   ============================================================ */
.page-prp .prp-message {
  position: relative;
  height: 800px;
  overflow: hidden;
  background-color: #fff;
}

.page-prp .prp-message__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

.page-prp .prp-message__sub {
  position: absolute;
  left: 420px;
  top: 80px;
  width: 184px;
}

.page-prp .prp-message__title {
  position: absolute;
  left: 197px;
  top: 114px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 630px;
  margin: 0;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-message__title-text {
  display: block;
  font-size: 32px;
  line-height: 1.7;
}

.page-prp .prp-message__quote {
  position: absolute;
  z-index: 1;
  left: 242px;
  top: 242px;
  width: 552px;
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--prp-main);
}

.page-prp .prp-message__quote-accent { color: var(--prp-blue); }

.page-prp .prp-message__figure {
  position: absolute;
  left: 31px;
  top: 313px;
  width: 323px;
  margin: 0;
}

.page-prp .prp-message__photo {
  width: 323px;
  height: 365px;
  object-fit: contain;
}

.page-prp .prp-message__caption {
  margin-top: 16px;
  padding-left: 89px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--prp-main);
}

.page-prp .prp-message__body {
  position: absolute;
  left: 399px;
  top: 392px;
  width: 594px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--prp-main);
}

.page-prp .prp-message__body p { margin: 0; }

.page-prp .prp-message__note {
  position: absolute;
  left: 399px;
  top: 590px;
  width: 594px;
  height: 130px;
  margin: 0;
  padding: 21px 27px;
  border: 1px solid var(--prp-blue);
  /* 左上のみ 4px、他は 24px */
  border-radius: 4px 24px 24px 24px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--prp-main);
}

.page-prp .prp-pc-block { display: block; }
.page-prp .prp-sp-block { display: none; }


/* ============================================================
   faq-section: よくあるご質問（アコーディオン）
   ============================================================ */
/* 背景は上下ミラーで縦に継ぎ目なくリピートするタイル。
   高さを固定せずリピートで伸ばすため、アコーディオンを開閉しても
   拡縮・移動が一切起きない（開いた分だけ下へパターンが続く）。
   background-size の高さ = 素材1枚あたり1944px 相当 × 2（タイルは上下2枚組） */
.page-prp .prp-faq {
  position: relative;
  overflow: hidden;
  background-color: var(--prp-base-blue);
  background-image: url("../images/prp-faq-bg.webp");
  background-position: center top;
  background-repeat: repeat-y;
  background-size: auto 3888px;
}

.page-prp .prp-faq__illust {
  position: absolute;
  display: block;
  pointer-events: none;
}

.page-prp .prp-faq__illust::before {
  content: '';
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

.page-prp .prp-faq__illust--01::before { background-image: url('../images/doctor-hokari-illust.webp'); }
.page-prp .prp-faq__illust--02::before { background-image: url('../images/feature-04-illust-left.webp'); }

/* 素材の余白込みキャンバス基準。カンプの人物位置に合わせて算出 */
.page-prp .prp-faq__illust--01 { left: 1215px; top: 81px;    width: 132px; height: 209px; }
.page-prp .prp-faq__illust--02 { left: 100px;  bottom: -16px; width: 95px;  height: 209px; }

.page-prp .prp-faq__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  margin-inline: auto;
  padding: 80px 0 72px;
}

.page-prp .prp-faq__sub { width: 186px; margin-inline: auto; }

.page-prp .prp-faq__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  margin: 8px 0 0;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-faq__title-text {
  display: block;
  font-size: 32px;
  line-height: 1.7;
}

/* アコーディオン */
.page-prp .prp-faq__list { margin-top: 56px; }

.page-prp .prp-faq__item {
  margin-bottom: 20px;
  border: 1px solid #e6ece9;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.page-prp .prp-faq__item[open] {
  border: 2px solid var(--prp-btn-green);
}

.page-prp .prp-faq__item:last-child { margin-bottom: 0; }

.page-prp .prp-faq__q {
  display: flex;
  align-items: center;
  gap: 17px;
  min-height: 70px;
  padding: 19px 56px 19px 49px;
  cursor: pointer;
  list-style: none;
}

.page-prp .prp-faq__item[open] > .prp-faq__q { padding: 18px 55px 18px 48px; }

.page-prp .prp-faq__q::-webkit-details-marker { display: none; }

.page-prp .prp-faq__badge {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: #8a5a1e;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.page-prp .prp-faq__q-text {
  flex: 1;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--prp-main);
}

.page-prp .prp-faq__chev {
  position: absolute;
  right: 50px;
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  margin-top: -4px;
  border-right: 2px solid var(--prp-green);
  border-bottom: 2px solid var(--prp-green);
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.page-prp .prp-faq__q { position: relative; }

.page-prp .prp-faq__item[open] .prp-faq__chev {
  margin-top: 4px;
  transform: rotate(-135deg);
}

.page-prp .prp-faq__a {
  padding: 0 60px 18px 48px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--prp-main);
}

.page-prp .prp-faq__a p { margin: 0; }

/* 結び */
.page-prp .prp-faq__closing {
  margin: 56px 0 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
  color: var(--prp-main);
}

.page-prp .prp-faq__closing-accent {
  font-size: 28px;
  color: var(--prp-green);
}

.page-prp .prp-faq__closing-note {
  margin: 32px 0 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
  color: var(--prp-main);
}


/* ============================================================
   cost-section-01: 治療費について
   ============================================================ */
/* cost-01 + cost-02 の共通背景
   背景は「全開時の高さ」で固定し上端基準で敷く。アコーディオンを開くと
   隠れていた下部が現れるだけで、背景自体は拡縮・移動しない。
   1131px = cost-01(422) + cost-02 全開時(709) */
.page-prp .prp-cost-group {
  position: relative;
  overflow: hidden;
}

.page-prp .prp-cost-group::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
  width: 100%;
  height: max(1131px, 100%);
  background-image: url("../images/prp-cost-group-bg.webp");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  pointer-events: none;
}

.page-prp .prp-cost,
.page-prp .prp-costfaq { z-index: 1; }

.page-prp .prp-cost {
  position: relative;
  height: 422px;
  overflow: hidden;
  background-color: transparent;
}

.page-prp .prp-cost__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

.page-prp .prp-cost__sub {
  position: absolute;
  left: 420px;
  top: 80px;
  width: 184px;
}

.page-prp .prp-cost__title {
  position: absolute;
  left: 197px;
  top: 114px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 630px;
  margin: 0;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-cost__title-text { display: block; font-size: 32px; line-height: 1.7; }

.page-prp .prp-cost__price {
  position: absolute;
  left: 272px;
  top: 242px;
  display: flex;
  width: 480px;
  height: 120px;
  border: 1px solid var(--prp-blue);
}

.page-prp .prp-cost__price-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  background-color: var(--prp-blue);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.75;
  color: #fff;
}

.page-prp .prp-cost__price-value {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  background-color: #fff;
  color: var(--prp-main);
}

.page-prp .prp-cost__price-inner {
  display: flex;
  align-items: baseline;
  gap: 8px;
  line-height: 1;
}

.page-prp .prp-cost__price-num { font-size: 28px; font-weight: 500; }
.page-prp .prp-cost__price-unit { font-size: 14px; font-weight: 500; }

/* ============================================================
   cost-section-02: 治療費に関するよくあるご質問
   ============================================================ */
.page-prp .prp-costfaq {
  position: relative;
  background-color: transparent;
}

.page-prp .prp-costfaq__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  margin-inline: auto;
  padding: 80px 0;
}

.page-prp .prp-costfaq__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 476px;
  margin: 0 auto;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-costfaq__title-text { display: block; font-size: 32px; line-height: 1.7; }
.page-prp .prp-costfaq__title-accent { color: var(--prp-blue); }

.page-prp .prp-costfaq__list {
  width: 1024px;
  max-width: 100%;
  margin-top: 54px;
}

.page-prp .prp-costfaq__item {
  margin-bottom: 16px;
  border: 2px solid var(--prp-blue);
  border-radius: 8px;
  background-color: #fff;
}

.page-prp .prp-costfaq__item:last-child { margin-bottom: 0; }

.page-prp .prp-costfaq__q {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 70px;
  padding: 19px 72px 19px 46px;
  cursor: pointer;
  list-style: none;
}

.page-prp .prp-costfaq__q::-webkit-details-marker { display: none; }

.page-prp .prp-costfaq__badge {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: var(--prp-blue);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.page-prp .prp-costfaq__q-text {
  flex: 1;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
  color: var(--prp-main);
}

.page-prp .prp-costfaq__chev {
  position: absolute;
  right: 62px;
  width: 12px;
  height: 12px;
  margin-top: -4px;
  border-right: 2px solid var(--prp-main);
  border-bottom: 2px solid var(--prp-main);
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.page-prp .prp-costfaq__item[open] .prp-costfaq__chev {
  margin-top: 4px;
  transform: rotate(-135deg);
}

.page-prp .prp-costfaq__a {
  padding: 0 48px 27px 46px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--prp-main);
}

.page-prp .prp-costfaq__a p { margin: 0; }

/* ============================================================
   product-section: 使用製品について
   ============================================================ */
.page-prp .prp-product {
  position: relative;
  height: 785px;
  overflow: hidden;
  background-color: var(--prp-base-blue);
}

.page-prp .prp-product__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

.page-prp .prp-product__sub {
  position: absolute;
  left: 420px;
  top: 80px;
  width: 184px;
}

.page-prp .prp-product__title {
  position: absolute;
  left: 197px;
  top: 114px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: 630px;
  margin: 0;
  font-weight: 700;
  color: var(--prp-main);
  text-align: center;
}

.page-prp .prp-product__title-text { display: block; font-size: 32px; line-height: 1.7; }

.page-prp .prp-product__list {
  position: absolute;
  left: 162px;
  top: 242px;
  width: 700px;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background-color: #fff;
  /* Figma: X0 / Y3 / ぼかし12 / 広がり0 / #000000 17% */
  box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.17);
}

.page-prp .prp-product__row {
  display: flex;
  align-items: flex-start;
  padding: 13px 48px;
  background-color: #fff;
}

.page-prp .prp-product__row:nth-child(even) { background-color: var(--prp-base-beige); }

.page-prp .prp-product__row:nth-child(1) { height: 53px; }
.page-prp .prp-product__row:nth-child(2) { height: 82px; }
.page-prp .prp-product__row:nth-child(3) { height: 109px; }
.page-prp .prp-product__row:nth-child(4) { height: 109px; }
.page-prp .prp-product__row:nth-child(5) { height: 109px; }

.page-prp .prp-product__label {
  flex-shrink: 0;
  width: 276px;
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
  color: var(--prp-main);
}

.page-prp .prp-product__value {
  flex: 1;
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--prp-main);
}

/* 縦位置: ラベルは値ブロックに対して中央寄せ */
.page-prp .prp-product__row { align-items: center; }
.page-prp .prp-product__row:nth-child(1) .prp-product__label,
.page-prp .prp-product__row:nth-child(1) .prp-product__value { align-self: center; }

/* ============================================================
   cta-section
   ============================================================ */
.page-prp .prp-cta {
  position: relative;
  height: 384px;
  overflow: hidden;
  background-color: #efefec;
}

.page-prp .prp-cta__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.page-prp .prp-cta__bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../images/prp-cta-bg.webp') center / cover no-repeat;
}

.page-prp .prp-cta__inner {
  position: relative;
  width: 1024px;
  max-width: 100%;
  height: 100%;
  margin-inline: auto;
}

.page-prp .prp-cta__lead {
  position: absolute;
  left: 0;
  top: 80px;
  width: 1024px;
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
  color: var(--prp-main);
}

/* ボタン数が変わっても中央に来るよう左右0＋中央寄せにする
   （2つのとき: (1024-714)/2 = 155px となり従来と同位置） */
.page-prp .prp-cta__buttons {
  position: absolute;
  left: 0;
  right: 0;
  top: 243px;
  display: flex;
  justify-content: center;
  gap: 86px;
}

.page-prp .prp-cta__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 314px;
  height: 58px;
  /* ラベル中心・矢印は参照デザイン実測の比率に合わせる（緑エリア幅比: 中心0.4462 / 矢印右0.0704 / 径0.0787） */
  padding-right: 33px;
  border: 3px solid #fff;
  border-radius: 999px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.page-prp .prp-cta__btn:hover { opacity: 0.85; }

.page-prp .prp-cta__btn--tel {
  background-color: var(--prp-btn-green);
  color: var(--prp-btn-green);
}

.page-prp .prp-cta__btn--tel .prp-cta__btn-label { color: #fff; }

.page-prp .prp-cta__btn--contact {
  background-color: var(--prp-yellow);
  color: #3f3329;
}

.page-prp .prp-cta__btn--contact .prp-cta__btn-label { color: var(--prp-main); }

.page-prp .prp-cta__btn-label {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.page-prp .prp-cta__arrow {
  position: absolute;
  top: 50%;
  right: 22px;
  width: 24px;
  height: 24px;
  margin-top: -12px;
  border-radius: 50%;
  background-color: #fff;
}

.page-prp .prp-cta__arrow::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 11px;
  width: 11px;
  height: 2px;
  background-color: currentColor;
}

.page-prp .prp-cta__arrow::after {
  content: "";
  position: absolute;
  left: 12px;
  top: 8.5px;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

/* ============================================================
   SP
   ============================================================ */
@media (max-width: 768px) {
  .page-prp {
    font-size: 14px;
  }

  .page-prp .prp-container {
    width: 343px;
  }

  /* CTAボタン */
  .page-prp .prp-cta-btn {
    width: 343px;
    max-width: 100%;
    height: 56px;
    /* ラベル中心・矢印位置は参照デザイン実測に合わせる（ラベル中心156 / 矢印は右端から60px） */
    padding-right: 31px;
    border-width: 3px;
    border-radius: 30px;
  }

  .page-prp .prp-cta-btn__label {
    font-size: 15px;
    letter-spacing: 0.9px;
  }

  .page-prp .prp-cta-btn__arrow {
    right: 57px;
    width: 22px;
    height: 22px;
  }

  .page-prp .prp-cta-btn__arrow img { width: 22px; height: 22px; }

  /* FV */
  .page-prp .prp-fv { height: 600px; --prp-header-h: 95px; }

  /* 写真と同じ範囲まで伸ばす。FV上端で止めると白ぼかしの境目が段差になる */
  .page-prp .prp-fv__overlay {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: calc(var(--prp-header-h) * -1);
    bottom: 0;
    background: linear-gradient(144.16deg, rgba(255, 255, 255, 0.6) 15.008%, rgba(255, 255, 255, 0.5) 29.994%, rgba(255, 255, 255, 0) 37.21%);
  }

  .page-prp .prp-fv__inner {
    width: 343px;
  }

  .page-prp .prp-fv__catch {
    top: 32px;
    left: 0;
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 10px;
    font-size: 28px;
    line-height: 1.3;
    letter-spacing: 0;
  }

  .page-prp .prp-fv__catch-col {
    width: 32px;
    text-align: center;
    word-break: break-all;
  }

  .page-prp .prp-fv__catch-col { -webkit-text-stroke-width: 2px; }

  .page-prp .prp-fv__badges {
    top: 312px;
    gap: 8px;
  }

  .page-prp .prp-fv__badge {
    width: auto;
    height: auto;
    padding: 10px 8px;
    border-width: 1px;
  }

  .page-prp .prp-fv__badge--01 { width: 175px; }
  .page-prp .prp-fv__badge--02 { width: 161px; }

  .page-prp .prp-fv__badge-icon {
    top: -21px;
    left: 64px;
    width: 31px;
    height: 31px;
    transform: none;
  }

  /* PC用の .prp-fv__badge--01 .prp-fv__badge-icon (left:84px) が
     詳細度で勝ってしまうため、SPでは明示的に中央へ戻す */
  .page-prp .prp-fv__badge--01 .prp-fv__badge-icon {
    left: 50%;
    transform: translateX(-50%);
  }

  .page-prp .prp-fv__badge-icon img { width: 31px; height: 31px; }

  .page-prp .prp-fv__badge-text {
    font-size: 12px;
    line-height: 1.5;
    white-space: normal;
  }

  .page-prp .prp-fv__badge--02 .prp-fv__badge-text { line-height: 1.5; }

  .page-prp .prp-fv__subcopy {
    top: 398px;
    width: 343px;
    height: 98px;
    padding: 10px 20px;
    font-size: 16px;
  }

  /* 背景写真に対する視認性確保: テキストエリアを囲う白いブラーの四角 */
  .page-prp .prp-fv__subcopy::before {
    inset: -6px -10px;
    border-radius: 12px;
    background-color: rgba(255, 255, 255, 0.7);
    filter: blur(10px);
  }

  .page-prp .prp-fv__cta { top: 520px; }

  /* pain-section */
  .page-prp .prp-pain { height: 1059px; }

  .page-prp .prp-pain__bg { opacity: 0.2; }

  .page-prp .prp-pain__bg::before {
    left: -228.83%;
    top: 0.04%;
    width: 560.02%;
    height: 148.99%;
  }

  .page-prp .prp-pain__leaf--01 { width: 218px; height: 123px; }
  .page-prp .prp-pain__leaf--02 { left: 220px; top: 965px; width: 155px; height: 93px; }

  .page-prp .prp-pain__inner { width: 343px; }

  .page-prp .prp-pain__title {
    left: 87px;
    top: 48px;
    width: 169px;
    gap: 0;
    align-items: flex-start;
    text-align: left;
  }

  .page-prp .prp-pain__title-sm { font-size: 24px; }
  .page-prp .prp-pain__title-lg { font-size: 28px; }

  .page-prp .prp-pain__title .prp-heading__line {
    position: absolute;
    left: 63px;
    top: 104px;
    width: 43px;
  }

  .page-prp .prp-pain__card {
    left: 0;
    width: 343px;
  }

  .page-prp .prp-pain__card--01 { left: 0; top: 180px; }
  .page-prp .prp-pain__card--02 { left: 0; top: 318px; }
  .page-prp .prp-pain__card--03 { left: 0; top: 456px; }
  .page-prp .prp-pain__card--04 { left: 0; top: 594px; }
  .page-prp .prp-pain__card--05 { left: 0; top: 732px; }

  .page-prp .prp-pain__check { width: 22px; height: 22px; }
  .page-prp .prp-pain__check img { width: 22px; height: 22px; }

  .page-prp .prp-pain__card-text {
    width: 270px;
    font-size: 15px;
  }

  .page-prp .prp-pain__card--03 .prp-pain__card-text { line-height: 1.7; }

  .page-prp .prp-pain__photo--01 { left: 0;     top: 250px; width: 72px; height: 77px; }
  .page-prp .prp-pain__photo--02 { left: 257px; top: 378px; width: 70px; height: 79px; }
  .page-prp .prp-pain__photo--03 { left: 16px;  top: 518px; width: 72px; height: 83px; }
  .page-prp .prp-pain__photo--04 { left: 255px; top: 662px; width: 72px; height: 75px; }
  .page-prp .prp-pain__photo--05 { left: 0;     top: 805px; width: 70px; height: 84px; }

  .page-prp .prp-pain__arrow {
    left: 119px;
    top: 854px;
    width: 105px;
    height: 28px;
  }

  .page-prp .prp-pain__lead {
    left: 0;
    top: 930px;
    width: 343px;
  }

  .page-prp .prp-pain__lead-sm { font-size: 20px; }
  .page-prp .prp-pain__lead-accent { font-size: 24px; }

  /* qa-01 / qa-02 */
  .page-prp .prp-qa--01 { height: 592px; }
  .page-prp .prp-qa--02 { height: 572px; }

  .page-prp .prp-qa__inner { width: 335px; }

  .page-prp .prp-qa__q {
    left: 0;
    gap: 20px;
    align-items: flex-start;
  }

  .page-prp .prp-qa--01 .prp-qa__q { top: 48px; width: 335px; }
  .page-prp .prp-qa--02 .prp-qa__q { top: 32px; }

  .page-prp .prp-qa__q-badge {
    width: 34px;
    height: 34px;
    font-size: 15px;
    color: #3f3329;
  }

  .page-prp .prp-qa__q-text { line-height: 1.5; }
  .page-prp .prp-qa__q-sm { font-size: 24px; }
  .page-prp .prp-qa__q-lg { font-size: 28px; }

  /* qa-01 はQバッジを左端に固定し、質問文は中央寄せ */
  .page-prp .prp-qa--01 .prp-qa__q { gap: 0; justify-content: center; }
  .page-prp .prp-qa--01 .prp-qa__q-badge { position: absolute; left: 0; top: 0; }
  .page-prp .prp-qa--01 .prp-qa__q-text { width: 201px; text-align: center; white-space: normal; }

  .page-prp .prp-qa__illust {
    left: 278px;
    top: 14.5px;
    width: 61px;
    height: 62px;
  }

  .page-prp .prp-qa__doctor { width: 80px; height: 80px; }
  .page-prp .prp-qa--01 .prp-qa__doctor { top: 135px; }
  .page-prp .prp-qa--02 .prp-qa__doctor { top: 122px; }

  .page-prp .prp-qa__a-title {
    left: 92px;
    height: auto;
    font-size: 15px;
    line-height: 1.7;
  }

  .page-prp .prp-qa--01 .prp-qa__a-title { top: 141px; width: auto; padding: 8px 10px; }
  .page-prp .prp-qa--01 .prp-qa__a-title-text { white-space: nowrap; }
  .page-prp .prp-qa--02 .prp-qa__a-title-text { width: 201px; }
  .page-prp .prp-qa--02 .prp-qa__a-title { top: 128px; width: 243px; padding: 8px 3px; }

  .page-prp .prp-qa__body {
    left: 0;
    width: 335px;
    font-size: 14px;
    line-height: 1.7;
  }

  .page-prp .prp-qa--01 .prp-qa__body { top: 225px; }
  .page-prp .prp-qa--02 .prp-qa__body { top: 212px; }

  /* feature-section */
  .page-prp .prp-feat { height: 1010px; }

  .page-prp .prp-feat__bg { height: 1010px; }

  .page-prp .prp-feat__bg::before {
    left: 0;
    top: 0;
    width: 421.05%;
    height: 100%;
  }

  .page-prp .prp-feat__bg-veil {
    display: block;
    position: absolute;
    inset: 0;
    background-color: rgba(255, 255, 255, 0.3);
  }

  .page-prp .prp-feat__inner { width: 343px; }

  .page-prp .prp-feat__illust {
    left: 0;
    top: 48px;
    width: 37px;
    height: 62px;
  }

  .page-prp .prp-feat__sub {
    left: 84px;
    top: 48px;
    width: auto;
    font-size: 13px;
  }

  .page-prp .prp-heading__sub-line { height: 1px; }

  .page-prp .prp-feat__title {
    left: 39px;
    top: 78px;
    width: 273px;
    gap: 0;
  }

  .page-prp .prp-feat__title-text { line-height: 1.6; }
  .page-prp .prp-feat__title-sm { font-size: 24px; }
  .page-prp .prp-feat__title-lg { font-size: 28px; }

  .page-prp .prp-feat__title .prp-heading__line {
    position: absolute;
    left: 111px;
    top: 92px;
    width: 43px;
    height: 1px;
  }

  .page-prp .prp-feat__cards {
    top: 198px;
    left: 1px;
    display: block;
  }

  .page-prp .prp-feat__card {
    width: 343px;
    height: 172px;
    margin-bottom: 25px;
    border-width: 1px;
  }

  .page-prp .prp-feat__card:last-child { margin-bottom: 0; }

  .page-prp .prp-feat__num { left: 28px; top: 25px; }
  .page-prp .prp-feat__card-title { left: 78px; top: 31px; }
  .page-prp .prp-feat__card-line { left: 81px; top: 65px; }

  .page-prp .prp-feat__icon {
    left: 28px;
    top: 82px;
    width: 66px;
    height: 66px;
  }

  .page-prp .prp-feat__icon img { width: 40px; height: 40px; }

  .page-prp .prp-feat__card-text {
    left: 120px;
    top: 82px;
    width: 195px;
    font-size: 13px;
  }

  /* flow-section */
  .page-prp .prp-flow { height: 1050px; }

  .page-prp .prp-flow__inner { width: 343px; }

  .page-prp .prp-flow__sub {
    left: 84px;
    top: 48px;
    width: 175px;
    font-size: 13px;
  }

  .page-prp .prp-flow__title {
    left: 27px;
    top: 78px;
    width: 289px;
    gap: 0;
  }

  .page-prp .prp-flow__title-text { font-size: 24px; line-height: 1.6; }

  .page-prp .prp-flow__title .prp-heading__line {
    position: absolute;
    left: 123px;
    top: 54px;
    width: 43px;
    height: 1px;
  }

  .page-prp .prp-flow__cards {
    top: 160px;
    display: block;
  }

  .page-prp .prp-flow__card {
    width: 343px;
    height: 126px;
    margin-bottom: 16px;
  }

  .page-prp .prp-flow__card:last-child { margin-bottom: 0; }

  .page-prp .prp-flow__card-image {
    left: -1px;
    top: -1px;
    width: 115px;
    height: 126px;
    border-radius: 8px 0 0 8px;
  }

  /* 01は被写体が画像の左寄りにあり、中央トリミングだと人物が切れるため寄せを補正 */
  .page-prp .prp-flow__card:nth-child(1) .prp-flow__card-image img {
    object-position: 15% 50%;
  }

  .page-prp .prp-flow__num { left: 8px; top: 8px; }

  .page-prp .prp-flow__card-body {
    left: 115px;
    top: 0;
    width: 228px;
    height: 126px;
  }

  .page-prp .prp-flow__card-title { left: 16px; top: 24px; }
  .page-prp .prp-flow__card-line { left: 16px; top: 50px; }

  .page-prp .prp-flow__card-text {
    left: 16px;
    top: 62px;
    width: 192px;
    font-size: 12px;
    line-height: 1.7;
  }

  .page-prp .prp-flow__card:nth-child(1) .prp-flow__card-text,
  .page-prp .prp-flow__card:nth-child(2) .prp-flow__card-text {
    font-size: 12px;
    line-height: 1.7;
  }

  .page-prp .prp-flow__arrow {
    left: 119px;
    top: 906px;
    width: 105px;
    height: 28px;
  }

  .page-prp .prp-flow__lead {
    left: 0;
    top: 930px;
    width: 343px;
  }

  .page-prp .prp-flow__lead-sm { font-size: 20px; }
  .page-prp .prp-flow__lead-lg { font-size: 24px; }

  /* message-section */
  .page-prp .prp-message { height: 680px; }

  .page-prp .prp-message__inner { width: 343px; }

  .page-prp .prp-message__sub {
    left: 113px;
    top: 48px;
    width: 117px;
    font-size: 13px;
  }

  .page-prp .prp-message__title {
    left: 85px;
    top: 78px;
    width: 173px;
    gap: 0;
  }

  .page-prp .prp-message__title-text { font-size: 24px; line-height: 1.6; }

  .page-prp .prp-message__title .prp-heading__line {
    position: absolute;
    left: 65px;
    top: 54px;
    width: 43px;
    height: 1px;
  }

  .page-prp .prp-message__quote {
    left: 0;
    top: 160px;
    width: 343px;
    font-size: 16px;
    line-height: 1.9;
    letter-spacing: 0.02em;
  }

  .page-prp .prp-message__figure {
    left: 0;
    top: 270px;
    width: 164px;
  }

  .page-prp .prp-message__photo { width: 164px; height: 185px; }
  .page-prp .prp-pc-block { display: none; }
  .page-prp .prp-sp-block { display: block; }

  .page-prp .prp-message__caption {
    margin-top: 28px;
    padding-left: 17px;
    font-size: 12px;
  }

  .page-prp .prp-message__body {
    left: 173px;
    top: 238px;
    width: 170px;
    font-size: 12px;
    line-height: 1.7;
  }

  .page-prp .prp-message__note {
    left: 0;
    top: 534px;
    width: 343px;
    height: 98px;
    padding: 16px 18px;
    font-size: 12px;
    line-height: 1.8;
  }

  /* faq-section */
  .page-prp .prp-faq { background-size: auto 3534px; }

  .page-prp .prp-faq__inner { width: 343px; padding: 48px 0 47px; }

  .page-prp .prp-faq__illust--01 { left: 306px; top: 48px;   width: 53px; height: 83px; }
  .page-prp .prp-faq__illust--02 { left: 15px;  bottom: -5px; width: 38px; height: 84px; }

  .page-prp .prp-faq__sub { width: auto; font-size: 13px; }

  .page-prp .prp-faq__title { gap: 0; margin-top: 6px; }
  .page-prp .prp-faq__title-text { font-size: 24px; line-height: 1.6; }

  .page-prp .prp-faq__title .prp-heading__line {
    width: 43px;
    height: 1px;
    margin-top: 12px;
  }

  .page-prp .prp-faq__list { margin-top: 35px; }

  .page-prp .prp-faq__item { margin-bottom: 13px; }

  .page-prp .prp-faq__q {
    gap: 14px;
    min-height: 60px;
    padding: 16px 44px 16px 22px;
  }

  .page-prp .prp-faq__item[open] > .prp-faq__q { padding: 15px 43px 15px 21px; }

  .page-prp .prp-faq__q-text { line-height: 1.8; }

  .page-prp .prp-faq__badge {
    width: 28px;
    height: 28px;
    font-size: 14px;
  }

  .page-prp .prp-faq__q-text { font-size: 14px; }

  .page-prp .prp-faq__chev { right: 20px; width: 10px; height: 10px; }

  .page-prp .prp-faq__a {
    padding: 0 20px 13px 22px;
    font-size: 13px;
    line-height: 1.8;
  }

  /* 結び: 左揃え + イラスト分の左インデント（参照デザイン実測） */
  .page-prp .prp-faq__closing {
    margin-top: 25px;
    padding-left: 42px;
    /* 1行目の「 をぶら下げて2行目と視覚的な左端を揃える */
    text-indent: -12px;
    font-size: 20px;
    line-height: 1.7;
    text-align: left;
  }

  .page-prp .prp-faq__closing-accent { font-size: inherit; }

  .page-prp .prp-faq__closing-note {
    margin-top: 11px;
    padding-left: 50px;
    max-width: 292px;
    font-size: 14px;
    line-height: 1.7;
    text-align: left;
  }

  /* cost-section-01 */
  .page-prp .prp-cost-group::before { height: max(1030px, 100%); }

  .page-prp .prp-cost { height: 277px; }

  .page-prp .prp-cost__inner { width: 343px; }

  .page-prp .prp-cost__sub {
    left: 101px;
    top: 48px;
    width: 140px;
    font-size: 13px;
  }

  .page-prp .prp-cost__title {
    left: 87px;
    top: 77px;
    width: 169px;
    gap: 0;
  }

  .page-prp .prp-cost__title-text { font-size: 24px; line-height: 1.6; }

  .page-prp .prp-cost__title .prp-heading__line {
    position: absolute;
    left: 62px;
    top: 54px;
    width: 43px;
    height: 1px;
  }

  .page-prp .prp-cost__price {
    left: -1px;
    top: 159px;
    width: 343px;
    height: 70px;
  }

  .page-prp .prp-cost__price-label { width: 170px; font-size: 16px; }
  .page-prp .prp-cost__price-value { width: 171px; }
  .page-prp .prp-cost__price-inner { gap: 5px; }
  .page-prp .prp-cost__price-num { font-size: 20px; }
  .page-prp .prp-cost__price-unit { font-size: 11px; }

  /* cost-section-02 */
  .page-prp .prp-costfaq__inner { width: 343px; padding: 48px 0 49px; }

  .page-prp .prp-costfaq__title {
    position: relative;
    width: 343px;
    gap: 0;
  }

  .page-prp .prp-costfaq__title-text { font-size: 24px; line-height: 1.5; }

  .page-prp .prp-costfaq__title .prp-heading__line {
    position: absolute;
    left: 149px;
    top: 54px;
    width: 45px;
    height: 1px;
  }

  .page-prp .prp-costfaq__list { width: 343px; margin-top: 46px; }

  .page-prp .prp-costfaq__item { margin-bottom: 15px; }

  .page-prp .prp-costfaq__q {
    gap: 8px;
    min-height: 58px;
    padding: 17px 44px 17px 22px;
  }

  .page-prp .prp-costfaq__badge { width: 28px; height: 28px; font-size: 14px; }
  .page-prp .prp-costfaq__q-text { font-size: 14px; line-height: 1.8; }
  .page-prp .prp-costfaq__chev { right: 22px; width: 9px; height: 9px; }

  .page-prp .prp-costfaq__a {
    padding: 0 22px 15px 22px;
    font-size: 13px;
    line-height: 1.8;
  }

  /* product-section */
  .page-prp .prp-product { height: 672px; }
  .page-prp .prp-product__inner { width: 343px; }

  .page-prp .prp-product__sub {
    left: 89px;
    top: 48px;
    width: 165px;
    font-size: 13px;
  }

  .page-prp .prp-product__title {
    left: 75px;
    top: 74px;
    width: 193px;
    gap: 0;
  }

  .page-prp .prp-product__title-text { font-size: 24px; line-height: 1.6; }

  .page-prp .prp-product__title .prp-heading__line {
    position: absolute;
    left: 75px;
    top: 54px;
    width: 43px;
    height: 1px;
  }

  .page-prp .prp-product__list {
    left: 0;
    top: 156px;
    width: 343px;
  }

  .page-prp .prp-product__row { padding: 13px 18px; }

  .page-prp .prp-product__row:nth-child(1) { height: 50px; }
  .page-prp .prp-product__row:nth-child(2) { height: 94px; }
  .page-prp .prp-product__row:nth-child(3) { height: 116px; }
  .page-prp .prp-product__row:nth-child(4) { height: 116px; }
  .page-prp .prp-product__row:nth-child(5) { height: 92px; }

  .page-prp .prp-product__label { width: 120px; font-size: 13px; }
  .page-prp .prp-product__value { font-size: 13px; }

  /* cta-section */
  .page-prp .prp-cta { height: 316px; }

  /* CTAが電話ボタン1つのとき。縦並びで消えた分(ボタン48px + 間隔27px = 75px)を詰める。
     $prp_show_consult_cta を true に戻すとこのクラスが外れ 316px に戻る */
  .page-prp .prp-cta--single { height: 241px; }
  .page-prp .prp-cta__inner { width: 343px; }

  .page-prp .prp-cta__lead {
    top: 48px;
    width: 343px;
    font-size: 18px;
  }

  .page-prp .prp-cta__buttons {
    left: 0;
    right: 0;
    top: 143px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .page-prp .prp-cta__btn {
    width: 272px;
    height: 48px;
    /* ラベル中心・矢印は参照デザイン実測の比率に合わせる */
    padding-right: 29px;
    margin-bottom: 27px;
  }

  .page-prp .prp-cta__btn:last-child { margin-bottom: 0; }

  .page-prp .prp-cta__btn-label { font-size: 14px; }

  .page-prp .prp-cta__arrow {
    right: 19px;
    width: 21px;
    height: 21px;
    margin-top: -10.5px;
  }

  .page-prp .prp-cta__arrow::before { left: 5px; top: 9.5px; width: 10px; }
  .page-prp .prp-cta__arrow::after { left: 10.5px; top: 7.5px; width: 6px; height: 6px; }







}

/* ============================================================
   改行制御ユーティリティ
   ============================================================ */
.page-prp .prp-br-sp { display: none; }
.page-prp .prp-br-pc { display: inline; }

@media (max-width: 768px) {
  .page-prp .prp-br-sp { display: inline; }
  .page-prp .prp-br-pc { display: none; }
}

/* 表示切替ユーティリティ */
.page-prp .prp-sp-only { display: none; }
.page-prp .prp-pc-only { display: inline; }

@media (max-width: 768px) {
  .page-prp .prp-sp-only { display: inline; }
  .page-prp .prp-pc-only { display: none; }
}
