/* サービス詳細専用。v3-chic.css の直後に読み込む。 */
:root {
  --detail-line: #d8dadd;
  --detail-mist: #f4f5f6;
}

/* 写真を切り取らず、ページの横幅を揃える。 */
.d-hero-photo img { object-fit: contain; height: auto; aspect-ratio: auto; animation: none; }
.d-pane .wrap { max-width: 1180px; }
.d-pane { color: var(--ink); font-size: 16px; line-height: 1.95; }
.d-pane :where(div, article, section, dl, dt, dd, figure) { min-width: 0; }
.d-pane :where(p, dd, li, a, h2, h3, h4) { overflow-wrap: anywhere; }
.d-pane img { max-width: 100%; object-fit: contain; }
.d-pane .btn { border-radius: 0; box-shadow: none; }

/* 二つの入口も、本文と同じ炭色と赤い線の設計に。 */
.d-choose { background: var(--detail-mist); }
.d-choose-btn { box-shadow: none; border: 1px solid var(--detail-line); border-left: 4px solid var(--red-chic); }
.d-choose-btn:hover, .d-choose-btn:focus-visible, .d-choose-btn[aria-expanded="true"] {
  background: var(--char-chic); border-color: var(--char-chic); border-left-color: var(--red-chic); box-shadow: none; transform: none;
}
.d-choose-btn:before { display: none; }
.d-choose-btn[aria-expanded="true"] .d-choose-no { color: #ff757d; }

/* 大項目：炭色の帯、赤い印、白い太字。両ペインで統一。 */
#pane-quick .v3-title, #pane-detail .detail-content h2 {
  position: relative; display: block; background: var(--char-chic); color: #fff;
  border: 0; border-left: 6px solid var(--red-chic); border-radius: 0;
  padding: 21px 28px; margin: 0 0 32px;
  font-size: 26px; font-weight: 800; line-height: 1.5; letter-spacing: .035em;
}
#pane-quick .v3-title:after { display: none; }
#pane-quick .eyebrow { margin-bottom: 14px; font-family: inherit; color: #595d64; letter-spacing: .12em; }
#pane-quick > .d-sec { padding: 64px 0; background: #fff; }
#pane-quick > .d-sec:nth-child(odd) { background: var(--detail-mist); }
#pane-quick :where(p, li, dd) { font-size: 16px; line-height: 1.95; }

/* 中項目・小項目。 */
#pane-detail .detail-content h3, #pane-quick :where(.d-point, .d-steps) h3,
#pane-detail .dl-subhead {
  font-size: 16px; font-weight: 800; line-height: 1.8; color: var(--ink);
  border: 0; border-left: 3px solid var(--red-chic); border-bottom: 1px solid var(--detail-line);
  padding: 3px 0 12px 16px; margin: 34px 0 20px;
}
#pane-detail .detail-content h4 { position: relative; font-size: 16px; padding-left: 22px; margin: 28px 0 16px; }
#pane-detail .detail-content :where(strong, b) { font-weight: 800; text-decoration: underline; text-decoration-color: var(--red-chic); text-underline-offset: 5px; }
#pane-detail .detail-content h4:before,
#pane-quick .d-pains li:before,
#pane-detail :where(.dl-bullet, .dl-bullet-line, .dl-list dd):before,
#pane-detail .dl-facts dt:before,
#pane-quick .d-price dt:before {
  content: ""; position: absolute; width: 6px; height: 6px;
  background: var(--red-chic); transform: rotate(45deg); left: 3px; top: 1em;
}

/* こんな院長に：カードをやめて、二列のひし形リスト。 */
#pane-quick .d-pains { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 44px; margin: 0; padding: 0; }
#pane-quick .d-pains li { position: relative; margin: 0; padding: 20px 8px 20px 25px; background: none; border: 0; border-bottom: 1px solid var(--detail-line); box-shadow: none; font-weight: 700; }
#pane-quick .d-pains li:before { top: 32px; }

/* できること：大きい番号と横罫線。 */
#pane-quick .d-points { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 44px; margin: 0; }
#pane-quick .d-point { display: block; background: none; border: 0; border-bottom: 1px solid var(--detail-line); padding: 28px 0; box-shadow: none; transform: none; }
#pane-quick .d-point .body { position: relative; padding: 0 0 0 90px; }
#pane-quick .d-point .no { position: absolute; top: 0; left: 0; color: var(--red-chic); font-size: 58px; font-family: var(--font-en); font-weight: 800; letter-spacing: -.05em; }
#pane-quick .d-point h3 { margin: 0 0 16px; }
#pane-quick .d-point p { margin: 0; }
#pane-quick .d-point img { height: auto; aspect-ratio: auto; margin-bottom: 24px; }

/* ご利用の流れ：番号を縦線でつなぐ。 */
#pane-quick .d-steps { display: block; margin: 0; counter-reset: st; }
#pane-quick .d-steps li { position: relative; display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 28px; padding: 0 0 36px; border: 0; background: none; box-shadow: none; }
#pane-quick .d-steps li:before { font-size: 48px; color: var(--red-chic); position: relative; z-index: 1; white-space: nowrap; letter-spacing: -.04em; }
#pane-quick .d-steps li:not(:last-child):after { content: ""; position: absolute; left: 26px; top: 58px; bottom: 12px; width: 1px; background: #bfc2c7; }
#pane-quick .d-steps li:last-child { padding-bottom: 0; }
#pane-quick .d-steps h3 { margin: 0 0 12px; }

/* 医院の声：余白を持たせた写真と引用。医院名は太字。 */
#pane-quick .d-voices { grid-template-columns: minmax(0, 1fr); gap: 28px; margin: 0; }
#pane-quick .d-voice { grid-template-columns: 140px minmax(0, 1fr); gap: 34px; padding: 32px; border: 0; border-top: 1px solid var(--detail-line); border-bottom: 1px solid var(--detail-line); background: #fff; box-shadow: none; }
#pane-quick .d-voice.noimg { grid-template-columns: minmax(0, 1fr); }
#pane-quick .d-voice img { width: 140px; height: auto; max-height: 200px; object-fit: contain; border: 1px solid var(--detail-line); border-radius: 0; padding: 6px; background: #fff; }
#pane-quick .d-voice > div { position: relative; padding: 44px 0 0 16px; }
#pane-quick .d-voice > div:before, #pane-detail .dl-testimonial:before {
  content: "\201C"; position: absolute; top: -18px; left: -6px; font-size: 84px; line-height: 1; font-weight: 700; font-family: Georgia, "Times New Roman", serif; color: var(--red-chic);
}
#pane-quick .d-voice .who { font-size: 16px; font-weight: 800; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--detail-line); }

/* 料金・経歴・日時：上下の罫線で読む二列表。 */
#pane-quick .d-price { margin: 0; background: none; border: 0; border-top: 1px solid #93979e; box-shadow: none; }
#pane-quick .d-price > div { grid-template-columns: 220px minmax(0, 1fr); gap: 32px; padding: 22px 16px; border-bottom: 1px solid var(--detail-line); }
#pane-quick .d-price dt { position: relative; padding-left: 22px; }
#pane-detail .dl-facts, #pane-detail .dl-fact-row { display: grid; grid-template-columns: minmax(120px, .28fr) minmax(0, 1fr); gap: 24px; padding: 20px 16px; margin: 0; border-top: 1px solid var(--detail-line); border-bottom: 1px solid var(--detail-line); }
#pane-detail .dl-facts + .dl-facts, #pane-detail .dl-fact-row + .dl-fact-row { border-top: 0; }
#pane-detail .dl-facts dt { position: relative; padding-left: 20px; }
#pane-detail .dl-facts dd, #pane-detail .dl-fact-row p { margin: 0; }
#pane-detail .dl-fact-row > :first-child { font-weight: 800; }

/* 申込の箱：炭色の帯に白文字。 */
#pane-quick > .d-sec.d-quick-price { background: var(--char-chic); color: #fff; padding: 56px 0; }
#pane-quick .d-qp { background: none; border: 0; border-left: 4px solid var(--red-chic); padding: 4px 0 4px 28px; }
#pane-quick .d-qp-label { background: none; color: #d0d2d6; padding: 0; margin-bottom: 12px; }
#pane-quick .d-qp-main { color: #fff; font-size: 24px; line-height: 1.6; }
#pane-quick .d-qp-note { color: #d0d2d6; }
#pane-quick .d-qp-actions { gap: 14px; }
#pane-quick .d-qp-actions .btn.outline { background: none; color: #fff; border: 1px solid #a7a9ae; }
#pane-quick .d-qp-actions .btn.outline:hover { background: #fff; color: var(--char-chic); }

/* 全文：もとの入れ子を保ちながら、章ごとの余白と面を整える。 */
#pane-detail > .d-sec { background: var(--detail-mist); padding: 64px 0; }
#pane-detail .d-more { margin: 0; }
#pane-detail .detail-content { font-size: 16px; line-height: 1.95; }
#pane-detail .detail-content > div { margin: 0 0 64px; }
#pane-detail .detail-content > div:last-child { margin-bottom: 0; }
#pane-detail .detail-content h2 { margin-top: 64px; }
#pane-detail .detail-content > div:first-child h2:first-child { margin-top: 0; }
#pane-detail .detail-content p { margin: 0 0 24px; }
#pane-detail .detail-content figure { margin: 28px 0; }
#pane-detail .detail-content img { display: block; width: auto; height: auto; max-height: none; max-width: 100%; margin: 28px auto; padding: 10px; background: #fff; border: 1px solid var(--detail-line); object-fit: contain; }
#pane-detail .detail-content :where(ul, ol) { padding-left: 24px; }
#pane-detail .detail-content li::marker { color: var(--red-chic); }
#pane-detail .dl-list { margin: 0; padding: 0; border-bottom: 1px solid var(--detail-line); }
#pane-detail .dl-list dd, #pane-detail .dl-bullet { position: relative; margin: 0; padding: 16px 12px 16px 25px; }
#pane-detail .dl-list dd:before, #pane-detail .dl-bullet:before { top: 29px; }
#pane-detail .dl-bullet { border-bottom: 1px solid var(--detail-line); }
#pane-detail :is(.dl-list, .dl-bullet) + p { margin-top: 24px; }
#pane-detail .dl-feature { padding: 4px 0 20px; }
#pane-detail .dl-feature > .dl-subhead { margin: 20px 0 16px; }
#pane-detail .dl-note { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--detail-line); }
#pane-detail .dl-note dt { color: var(--red-chic); }
#pane-detail .dl-note dd { margin: 0; }
#pane-detail .dl-bullet-line, #pane-detail .dl-rate-line { display: block; position: relative; padding: 12px 16px 12px 25px; border-bottom: 1px solid var(--detail-line); }
#pane-detail .dl-bullet-line:before { top: 25px; }
#pane-detail .dl-lines > span + br { display: none; }
#pane-detail .dl-rate-line { font-weight: 700; padding-left: 16px; }

/* 写真付きの声と講師略歴。本文が長くても写真を引き伸ばさない。 */
#pane-detail .dl-person { padding: 32px; margin: 32px 0; background: #fff; border-top: 1px solid var(--detail-line); border-bottom: 1px solid var(--detail-line); }
#pane-detail .dl-person-grid { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 36px; align-items: start; }
#pane-detail .dl-person .dl-person-photo { margin: 0; }
#pane-detail .dl-person img { max-width: 190px; margin: 0 auto; }
#pane-detail .dl-person h3 { margin-top: 0; }
#pane-detail .dl-person p:last-child { margin-bottom: 0; }
#pane-detail .dl-testimonial { position: relative; background: #fff; padding: 52px 36px 32px; margin: 32px 0; border-bottom: 1px solid var(--detail-line); }
#pane-detail .dl-testimonial:before { top: 8px; left: 12px; font-size: 38px; }
#pane-detail .dl-profile:not(.dl-person-grid) > img { margin-bottom: 28px; }
#pane-detail .dl-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 28px 0; align-items: start; }
#pane-detail .dl-gallery img { margin: 0 auto 12px; width: 100%; height: auto; }
#pane-detail .dl-gallery p { font-size: 14px; font-weight: 700; }

/* 比較表は文字を極端に小さくせず、表の中だけ横に送れる。 */
#pane-detail .table-wrap, #pane-detail .dl-comparison { overflow-x: auto; margin: 28px 0; border-top: 2px solid var(--char-chic); }
#pane-detail .detail-content table { font-size: 14px; line-height: 1.85; background: #fff; }
#pane-detail .detail-content th, #pane-detail .detail-content td { border: 0; border-bottom: 1px solid var(--detail-line); padding: 20px 16px; }
#pane-detail .detail-content thead th { background: var(--char-chic); color: #fff; }
#pane-detail .dl-comparison-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: #fff; }
#pane-detail .dl-comparison-row > * { padding: 18px 14px; border-bottom: 1px solid var(--detail-line); }
#pane-detail .dl-comparison-row:first-child { background: var(--char-chic); color: #fff; font-weight: 800; }
#pane-detail .dl-comparison-row:not(:first-child) > :first-child { background: #e9ebee; font-weight: 800; }

@media (max-width: 767px) {
  .d-pane .wrap { width: calc(100% - 40px); }
  .d-pane, #pane-detail .detail-content, #pane-quick :where(p, li, dd) { font-size: 14px; line-height: 1.95; }
  #pane-quick > .d-sec, #pane-detail > .d-sec { padding: 48px 0; }
  #pane-quick .v3-title, #pane-detail .detail-content h2 { font-size: 20px; line-height: 1.5; padding: 18px 18px; border-left-width: 4px; margin-bottom: 26px; }
  #pane-detail .detail-content h2 { margin-top: 48px; }
  #pane-detail .detail-content > div { margin-bottom: 48px; }
  #pane-quick .d-pains, #pane-quick .d-points { grid-template-columns: minmax(0, 1fr); }
  #pane-quick .d-pains li { padding-top: 16px; padding-bottom: 16px; }
  #pane-quick .d-pains li:before { top: 27px; }
  #pane-quick .d-point { padding: 24px 0; }
  #pane-quick .d-point .body { padding-left: 64px; }
  #pane-quick .d-point .no { font-size: 44px; }
  #pane-quick .d-steps li { grid-template-columns: 56px minmax(0, 1fr); gap: 18px; }
  #pane-quick .d-steps li:before { font-size: 38px; }
  #pane-quick .d-steps li:not(:last-child):after { left: 24px; top: 48px; }
  #pane-quick .d-voice { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 24px 20px; }
  #pane-quick .d-voice img { width: 112px; max-height: none; }
#pane-quick .d-voice > div { padding: 44px 0 0 16px; }
  #pane-quick .d-voice .who { font-size: 14px; }
  #pane-quick .d-price > div, #pane-detail .dl-facts, #pane-detail .dl-fact-row { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 18px 8px; }
  #pane-detail .dl-facts dt { padding-bottom: 6px; }
  #pane-quick .d-qp { padding-left: 18px; }
  #pane-quick .d-qp-main { font-size: 20px; }
  #pane-quick .d-qp-actions { min-width: 0; }
  #pane-quick .d-qp-actions .btn { padding: 14px 16px; gap: 12px; font-size: 14px; }
  #pane-detail .dl-person, #pane-detail .dl-testimonial { padding: 28px 20px; }
  #pane-detail .dl-testimonial { padding-top: 52px; }
  #pane-detail .dl-person-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  #pane-detail .dl-person img { max-width: 160px; }
  #pane-detail .detail-content img { padding: 6px; }
  #pane-detail .dl-gallery { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  #pane-detail .detail-content table { min-width: 620px; font-size: 14px; }
  #pane-detail .dl-comparison-row { min-width: 620px; }
  #pane-detail .dl-note { gap: 4px; }
}

/* ===== 第29回：段落ごとの区切りをはっきり（白い箱＋濃い枠＋左上の赤い札。淡い色の塗りは使わない） ===== */
#pane-quick > .d-sec:not(.d-quick-price),#pane-detail > .d-sec{background:#e4e1db !important;padding:34px 0 !important;border:0 !important}
#pane-quick > .d-sec:not(.d-quick-price):first-child{padding-top:46px !important}
#pane-quick > .d-sec:not(.d-quick-price) > .wrap,#pane-detail > .d-sec > .wrap{position:relative;background:#fff;border:2px solid #1c1d21;padding:58px 48px 46px;box-sizing:border-box}
#pane-quick > .d-sec:not(.d-quick-price) > .wrap > .eyebrow,#pane-detail > .d-sec > .wrap > .eyebrow{position:absolute;top:-18px;left:34px;margin:0;display:inline-block;background:#c8000f;color:#fff !important;padding:7px 18px;font-size:14px;font-weight:800;letter-spacing:.14em;line-height:1.4}
#pane-quick > .d-sec:not(.d-quick-price) > .wrap > .eyebrow:before,#pane-detail > .d-sec > .wrap > .eyebrow:before{display:none}
#pane-quick > .d-quick-price{margin-top:0}
@media(max-width:767px){
  #pane-quick > .d-sec:not(.d-quick-price),#pane-detail > .d-sec{padding:26px 0 !important}
  #pane-quick > .d-sec:not(.d-quick-price) > .wrap,#pane-detail > .d-sec > .wrap{padding:46px 18px 30px}
  #pane-quick > .d-sec:not(.d-quick-price) > .wrap > .eyebrow,#pane-detail > .d-sec > .wrap > .eyebrow{left:16px;font-size:13px;padding:6px 14px}
}
