/* =========================================================
   やえこふクリニック｜下層ページ専用スタイル (page-sub.css)
   バージョン: v1.0 PartCA
   作成日: 2026-05-16
   
   ★ 重要: styles.css と同名セレクタを定義しないこと
   ★ 重要: !important は使わない
   
   本ファイルの責務:
   - 下層ページのページヘッダー
   - 本文コンテンツ領域
   - カード・ボックス類
   - 業績ページ専用テーブル
   - FAQ Q&A
   - ニュースレターセクション
   ========================================================= */

/* -------------------------------------------------------
   1. ページヘッダー（下層ページ専用）
   ------------------------------------------------------- */
.page-header {
  background: linear-gradient(
    180deg,
    var(--color-paper-warm) 0%,
    var(--color-paper) 100%
  );
  padding: var(--space-9) var(--space-5) var(--space-8);
  text-align: center;
  border-bottom: 1px solid var(--color-border-soft);
}

.page-header__eyebrow {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-gold-deep);
  margin-bottom: var(--space-3);
}

.page-header__title {
  font-family: var(--font-serif);
  font-size: 2rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-3);
  max-width: var(--max-width-narrow);
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 768px) {
  .page-header__title {
    font-size: 2.5rem;
  }
}

.page-header__lede {
  max-width: var(--max-width-narrow);
  margin: var(--space-5) auto 0;
  font-size: 1rem;
  line-height: 1.9;
  color: var(--color-ink-soft);
}

.page-header__ornament {
  width: 40px;
  height: 1px;
  background: var(--color-gold);
  margin: var(--space-5) auto 0;
}

/* -------------------------------------------------------
   2. 本文コンテンツ
   ------------------------------------------------------- */
.page-content {
  background: var(--color-paper);
  padding: var(--space-9) 0;
}

.page-content__body {
  max-width: var(--max-width-narrow);
  margin: 0 auto;
  padding: 0 var(--space-5);
}

.page-content__body p {
  margin-bottom: var(--space-5);
  font-size: 1rem;
  line-height: 1.9;
  color: var(--color-ink);
}

.page-content__body h2 {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  line-height: 1.5;
  color: var(--color-navy-deep);
  margin: var(--space-8) 0 var(--space-5);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border);
  letter-spacing: 0.04em;
}

.page-content__body h2:first-child {
  margin-top: 0;
}

.page-content__body h3 {
  font-family: var(--font-serif);
  font-size: 1.2rem;
  line-height: 1.6;
  color: var(--color-navy);
  margin: var(--space-7) 0 var(--space-4);
  letter-spacing: 0.04em;
}

.page-content__body h4 {
  font-family: var(--font-sans);
  font-size: 1rem;
  color: var(--color-ink);
  margin: var(--space-5) 0 var(--space-3);
  letter-spacing: 0.05em;
}

.page-content__body ul,
.page-content__body ol {
  margin: var(--space-3) 0 var(--space-5) var(--space-5);
  padding: 0;
}

.page-content__body ul li,
.page-content__body ol li {
  margin-bottom: var(--space-2);
  list-style: disc;
  line-height: 1.8;
}

.page-content__body ol li {
  list-style: decimal;
}

.page-content__body blockquote {
  margin: var(--space-7) 0;
  padding: var(--space-5) var(--space-6);
  background: var(--color-paper-warm);
  border-left: 3px solid var(--color-gold);
  color: var(--color-ink-soft);
  font-style: italic;
  font-family: var(--font-serif);
  line-height: 1.9;
}

.page-content__body strong {
  /* §3-2 絶対禁止: <strong> タグは使わない方針だが、
     万一HTMLに残った場合の安全策として通常文字と同じ表示にする */
  font-weight: 500;
  color: var(--color-navy-deep);
}

/* -------------------------------------------------------
   3. プロフィール定型ボックス（院長紹介ページなど）
   ------------------------------------------------------- */
.profile-box {
  background: var(--color-paper-warm);
  padding: var(--space-6);
  margin: var(--space-7) 0;
  border-left: 3px solid var(--color-navy-deep);
}

.profile-box__title {
  font-family: var(--font-serif);
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-3);
}

.profile-box__body {
  font-size: 0.95rem;
  line-height: 1.9;
  color: var(--color-ink-soft);
}

/* -------------------------------------------------------
   4. 業績テーブル（credential ページ専用）
   ------------------------------------------------------- */
.credential-table {
  width: 100%;
  margin: var(--space-5) 0 var(--space-7);
  border-collapse: collapse;
  font-size: 0.9rem;
}

.credential-table th {
  width: 30%;
  padding: var(--space-3);
  background: var(--color-paper-warm);
  border-bottom: 1px solid var(--color-border);
  font-family: var(--font-serif);
  font-weight: 500;
  text-align: left;
  vertical-align: top;
  color: var(--color-navy-deep);
  letter-spacing: 0.05em;
}

.credential-table td {
  padding: var(--space-3);
  border-bottom: 1px solid var(--color-border-soft);
  vertical-align: top;
}

.credential-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin: var(--space-4) 0 var(--space-6);
}

.credential-list__item {
  padding: var(--space-2) 0;
  border-bottom: 1px solid var(--color-border-soft);
}

.credential-list__year {
  display: inline-block;
  width: 80px;
  color: var(--color-gold-deep);
  font-family: var(--font-display);
  font-size: 0.95rem;
}

/* -------------------------------------------------------
   5. プログラムカード（program 親ページ・トップ）
   ------------------------------------------------------- */
.program-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  margin: var(--space-7) 0;
}

@media (min-width: 768px) {
  .program-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.program-card {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  transition: all var(--transition-base);
}

.program-card:hover {
  border-color: var(--color-gold);
  box-shadow: var(--shadow-soft);
}

.program-card__title {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  color: var(--color-navy-deep);
  letter-spacing: 0.05em;
}

.program-card__desc {
  font-size: 0.9rem;
  line-height: 1.8;
  color: var(--color-ink-soft);
  flex: 1;
}

.program-card__meta {
  font-size: 0.8rem;
  color: var(--color-mist);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
}

.program-card__link {
  display: inline-block;
  margin-top: var(--space-3);
  font-size: 0.9rem;
  color: var(--color-navy);
  letter-spacing: 0.05em;
}

/* -------------------------------------------------------
   6. STEP リスト（program 親ページ）
   ------------------------------------------------------- */
.step-list {
  margin: var(--space-7) 0;
}

.step-list__item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-5);
  padding: var(--space-6) 0;
  border-bottom: 1px solid var(--color-border-soft);
}

.step-list__item:last-child {
  border-bottom: none;
}

.step-list__number {
  font-family: var(--font-display);
  font-size: 2rem;
  color: var(--color-gold);
  line-height: 1;
}

.step-list__title {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-3);
  letter-spacing: 0.05em;
}

.step-list__body {
  font-size: 0.95rem;
  line-height: 1.9;
  color: var(--color-ink-soft);
}

/* -------------------------------------------------------
   7. 価格ボックス
   ------------------------------------------------------- */
.price-box {
  background: var(--color-paper-warm);
  padding: var(--space-6);
  margin: var(--space-7) 0;
  text-align: center;
  border-top: 1px solid var(--color-gold);
  border-bottom: 1px solid var(--color-gold);
}

.price-box__label {
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  color: var(--color-ink-soft);
  margin-bottom: var(--space-3);
}

.price-box__amount {
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-navy-deep);
  line-height: 1;
  letter-spacing: 0.02em;
}

.price-box__amount small {
  font-size: 0.4em;
  letter-spacing: 0.05em;
}

.price-box__note {
  margin-top: var(--space-3);
  font-size: 0.8rem;
  color: var(--color-mist);
}

/* -------------------------------------------------------
   8. FAQ Q&A
   ------------------------------------------------------- */
.faq-list {
  margin: var(--space-7) 0;
}

.faq-item {
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-5) 0;
}

.faq-item:first-child {
  border-top: 1px solid var(--color-border);
}

.faq-item__question {
  display: flex;
  gap: var(--space-3);
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-4);
  letter-spacing: 0.03em;
  line-height: 1.6;
}

.faq-item__q-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: var(--color-navy-deep);
  color: var(--color-paper);
  font-family: var(--font-display);
  font-size: 0.95rem;
  border-radius: 50%;
}

.faq-item__answer {
  display: flex;
  gap: var(--space-3);
  padding-left: var(--space-2);
  font-size: 0.95rem;
  line-height: 1.9;
  color: var(--color-ink-soft);
}

.faq-item__a-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: var(--color-paper-warm);
  color: var(--color-gold-deep);
  font-family: var(--font-display);
  font-size: 0.95rem;
  border-radius: 50%;
  border: 1px solid var(--color-gold);
}

.faq-item__answer-body {
  flex: 1;
}

.faq-item__answer-body p {
  margin-bottom: var(--space-3);
}

.faq-item__answer-body p:last-child {
  margin-bottom: 0;
}

/* -------------------------------------------------------
   9. お知らせカード / コラムカード
   ------------------------------------------------------- */
.notice-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  margin: var(--space-7) 0;
}

.notice-card {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.notice-card__date {
  font-family: var(--font-display);
  font-size: 0.9rem;
  color: var(--color-gold-deep);
  letter-spacing: 0.05em;
}

.notice-card__title {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  color: var(--color-navy-deep);
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.notice-card__body {
  font-size: 0.95rem;
  line-height: 1.9;
  color: var(--color-ink-soft);
}

/* コラム一覧 */
.column-category {
  margin-bottom: var(--space-8);
}

.column-category__title {
  font-family: var(--font-serif);
  font-size: 1.2rem;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-5);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-gold);
  letter-spacing: 0.04em;
}

.column-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.column-list__item {
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border-soft);
}

.column-list__item a {
  display: block;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-ink);
}

.column-list__item a:hover {
  color: var(--color-navy);
}

.column-list__date {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.8rem;
  color: var(--color-mist);
  margin-right: var(--space-3);
  letter-spacing: 0.05em;
}

/* -------------------------------------------------------
   10. 説明リスト（dl/dt/dd）
   ------------------------------------------------------- */
.info-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: var(--space-5) 0;
  border-top: 1px solid var(--color-border);
}

@media (min-width: 600px) {
  .info-list {
    grid-template-columns: 180px 1fr;
  }
}

.info-list dt {
  padding: var(--space-4) var(--space-3);
  font-family: var(--font-serif);
  font-weight: 500;
  color: var(--color-navy-deep);
  background: var(--color-paper-warm);
  border-bottom: 1px solid var(--color-border-soft);
  letter-spacing: 0.05em;
}

.info-list dd {
  padding: var(--space-4) var(--space-3);
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--color-ink-soft);
  border-bottom: 1px solid var(--color-border);
}

@media (max-width: 599px) {
  .info-list dt {
    border-bottom: none;
    padding-bottom: var(--space-2);
  }
  .info-list dd {
    padding-top: var(--space-2);
  }
}

/* -------------------------------------------------------
   11. ページ固有免責文（心の教室・体の教室）
   ------------------------------------------------------- */
.page-disclaimer {
  margin: var(--space-7) 0;
  padding: var(--space-5);
  background: var(--color-paper-warm);
  border-top: 1px solid var(--color-gold);
  border-bottom: 1px solid var(--color-gold);
  font-size: 0.9rem;
  line-height: 1.9;
  color: var(--color-ink-soft);
  font-family: var(--font-serif);
}

.page-disclaimer__label {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  color: var(--color-gold-deep);
  margin-bottom: var(--space-2);
  text-transform: uppercase;
}

/* -------------------------------------------------------
   12. ニュースレターセクション（全ページ末尾CTA）
   ------------------------------------------------------- */
.newsletter {
  background: var(--color-paper-warm);
  padding: var(--space-9) var(--space-5);
  text-align: center;
  border-top: 1px solid var(--color-border-soft);
}

.newsletter__inner {
  max-width: var(--max-width-narrow);
  margin: 0 auto;
}

.newsletter__eyebrow {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.3em;
  color: var(--color-gold-deep);
  margin-bottom: var(--space-3);
}

.newsletter__title {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-3);
  letter-spacing: 0.05em;
}

.newsletter__text {
  font-size: 0.9rem;
  line-height: 1.9;
  color: var(--color-ink-soft);
  margin-bottom: var(--space-5);
}

.newsletter__note {
  margin-top: var(--space-4);
  font-size: 0.75rem;
  color: var(--color-mist);
  line-height: 1.7;
}

/* -------------------------------------------------------
   13. 業績ページのメディア・論文リスト
   ------------------------------------------------------- */
.media-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: var(--space-4) 0 var(--space-7);
}

.media-list__item {
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border-soft);
  font-size: 0.9rem;
  line-height: 1.8;
}

.media-list__year {
  display: inline-block;
  width: 60px;
  color: var(--color-gold-deep);
  font-family: var(--font-display);
  font-weight: 500;
}

/* -------------------------------------------------------
   14. 受診勧奨ボックス（FAQ親ページ）
   ------------------------------------------------------- */
.guidance-box {
  margin: var(--space-7) 0;
  padding: var(--space-6);
  background: var(--color-paper-warm);
  border: 1px solid var(--color-border);
}

.guidance-box__title {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-4);
  letter-spacing: 0.04em;
}

.guidance-box ul {
  margin-left: var(--space-5);
}

.guidance-box li {
  margin-bottom: var(--space-2);
  font-size: 0.9rem;
  line-height: 1.8;
}

/* -------------------------------------------------------
   15. FAQサブページへのリンク一覧（FAQ親ページ）
   ------------------------------------------------------- */
.faq-nav-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  margin: var(--space-7) 0;
}

@media (min-width: 768px) {
  .faq-nav-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

.faq-nav-list__item a {
  display: block;
  padding: var(--space-5);
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  color: var(--color-ink);
  font-family: var(--font-serif);
  font-size: 1rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
  transition: all var(--transition-base);
}

.faq-nav-list__item a:hover,
.faq-nav-list__item a:focus {
  border-color: var(--color-gold);
  color: var(--color-navy-deep);
  text-decoration: none;
  background: var(--color-paper-warm);
}

/* -------------------------------------------------------
   16. 法的書類用簡素レイアウト（プライバシー/特商法/同意書）
   ------------------------------------------------------- */
.legal-content {
  max-width: var(--max-width-narrow);
  margin: 0 auto;
  padding: var(--space-7) var(--space-5);
}

.legal-content h2 {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  color: var(--color-navy-deep);
  margin: var(--space-7) 0 var(--space-4);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border);
  letter-spacing: 0.04em;
}

.legal-content h2:first-child {
  margin-top: 0;
}

.legal-content h3 {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--color-navy);
  margin: var(--space-5) 0 var(--space-3);
  letter-spacing: 0.03em;
}

.legal-content p {
  margin-bottom: var(--space-4);
  font-size: 0.95rem;
  line-height: 1.9;
}

/* -------------------------------------------------------
   17. お問い合わせ・予約フォーム誘導
   ------------------------------------------------------- */
.form-cta {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  margin: var(--space-7) 0;
}

@media (min-width: 768px) {
  .form-cta {
    grid-template-columns: repeat(2, 1fr);
  }
}

.form-cta__card {
  padding: var(--space-6);
  border: 1px solid var(--color-border);
  background: var(--color-paper-warm);
}

.form-cta__title {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-3);
  letter-spacing: 0.04em;
}

.form-cta__body {
  font-size: 0.9rem;
  line-height: 1.8;
  color: var(--color-ink-soft);
  margin-bottom: var(--space-5);
}

/* -------------------------------------------------------
   18. 404ページ
   ------------------------------------------------------- */
.not-found {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-9) var(--space-5);
}

.not-found__code {
  font-family: var(--font-display);
  font-size: 6rem;
  color: var(--color-gold);
  line-height: 1;
  letter-spacing: 0.05em;
}

.not-found__title {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  color: var(--color-navy-deep);
  margin: var(--space-5) 0 var(--space-3);
}

.not-found__text {
  color: var(--color-ink-soft);
  margin-bottom: var(--space-7);
  max-width: 480px;
}

/* === Article Citation（引用元セクション） === */
.article-citation {
  margin-top: var(--space-7);
  padding: var(--space-5);
  border-left: 3px solid var(--color-navy);
  background: var(--color-paper-cool);
  font-size: 0.9em;
  color: var(--color-ink-soft);
  border-radius: 4px;
}
.article-citation strong,
.article-citation b {
  color: var(--color-navy-deep);
  font-weight: 500;
}
.article-citation a {
  color: var(--color-navy-soft);
  word-break: break-all;
}

/* =========================================================
   コラムハブ（読者ファースト再設計）v1.0 PartCF
   追加日: 2026-05-17
   担当: 読者ファースト再設計
   
   ★ 既存セレクタ（.column-category / .column-list）には一切触れていない
   ★ すべて column-hub-* / column-card * の独立した名前空間
   ========================================================= */

/* -------------------------------------------------------
   コラムハブ① フィルタバー
   ------------------------------------------------------- */
.column-hub-filter {
  background-color: var(--color-paper-warm);
  border-top: 1px solid var(--color-border-soft);
  border-bottom: 1px solid var(--color-border-soft);
  padding: var(--space-5) var(--space-4);
}
.column-hub-filter__inner {
  max-width: var(--max-width-wide);
  margin: 0 auto;
}
.column-hub-filter__label {
  font-family: var(--font-serif);
  font-size: 1rem;
  color: var(--color-navy-deep);
  text-align: center;
  margin-bottom: var(--space-4);
  letter-spacing: 0.05em;
}
.column-hub-filter__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: center;
}
.column-hub-tag {
  display: inline-block;
  padding: 6px 14px;
  background-color: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: 24px;
  color: var(--color-ink);
  font-size: 0.8rem;
  font-family: var(--font-sans);
  cursor: pointer;
  transition: all var(--transition-base);
  letter-spacing: 0.02em;
}
.column-hub-tag:hover {
  background-color: var(--color-navy-soft);
  color: var(--color-paper);
  border-color: var(--color-navy-soft);
}
.column-hub-tag.is-active {
  background-color: var(--color-navy-deep);
  color: var(--color-paper);
  border-color: var(--color-navy-deep);
}
.column-hub-tag--time {
  background-color: var(--color-paper-cool);
  color: var(--color-ink-soft);
}

/* -------------------------------------------------------
   コラムハブ② スターターセット
   ------------------------------------------------------- */
.column-hub-starter {
  background: linear-gradient(180deg, var(--color-paper) 0%, var(--color-paper-warm) 100%);
  padding: var(--space-7) 0 var(--space-7);
  margin-bottom: var(--space-8);
  border-radius: var(--radius-lg);
}
.column-hub-starter__title {
  text-align: center;
  font-family: var(--font-serif);
  color: var(--color-navy-deep);
  font-size: 1.4rem;
  margin-bottom: var(--space-2);
  letter-spacing: 0.05em;
}
.column-hub-starter__lede {
  text-align: center;
  color: var(--color-ink-soft);
  font-size: 0.9rem;
  margin-bottom: var(--space-6);
}

/* -------------------------------------------------------
   コラムハブ③ アンカーリスト
   ------------------------------------------------------- */
.column-hub-anchor {
  background-color: var(--color-paper-warm);
  padding: var(--space-5);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-7);
}
.column-hub-anchor__title {
  font-family: var(--font-serif);
  color: var(--color-navy-deep);
  font-size: 1.05rem;
  margin-bottom: var(--space-3);
  letter-spacing: 0.04em;
}
.column-hub-anchor__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
}
@media (max-width: 600px) {
  .column-hub-anchor__list { grid-template-columns: 1fr; }
}
.column-hub-anchor__list li {
  padding: var(--space-2) 0;
  border-bottom: 1px dotted var(--color-border);
}
.column-hub-anchor__list a {
  color: var(--color-navy);
  text-decoration: none;
  font-size: 0.9rem;
}
.column-hub-anchor__list a:hover {
  color: var(--color-navy-deep);
  text-decoration: underline;
}

/* -------------------------------------------------------
   コラムハブ④ 章セクション
   ------------------------------------------------------- */
.column-hub-chapter {
  margin-bottom: var(--space-8);
  scroll-margin-top: var(--space-5);
}
.column-hub-chapter__title {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-gold);
  letter-spacing: 0.04em;
}
.column-hub-chapter__bookmark {
  background-color: var(--color-paper-warm);
  border-left: 3px solid var(--color-gold);
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-5);
  font-size: 0.92rem;
  color: var(--color-ink);
  line-height: 1.85;
}
.column-hub-chapter__bookmark p {
  margin: 0;
}
.column-hub-chapter__meta {
  display: block;
  font-size: 0.75rem;
  color: var(--color-mist);
  margin-top: var(--space-2) !important;
  letter-spacing: 0.05em;
  font-family: var(--font-display);
}

/* -------------------------------------------------------
   コラムハブ⑤ カードグリッド
   ------------------------------------------------------- */
.column-hub-grid {
  display: grid;
  gap: var(--space-5);
}
.column-hub-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 900px) {
  .column-hub-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .column-hub-grid--3 { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------
   コラムハブ⑥ カード本体
   ------------------------------------------------------- */
.column-card {
  background-color: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.column-card:hover {
  box-shadow: var(--shadow-card);
  transform: translateY(-2px);
}
.column-card.is-hidden {
  display: none;
}
.column-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

/* サムネイル領域（プレースホルダー：章ごとに色違い）*/
.column-card__thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  overflow: hidden;
}
.column-card__thumb--ch1 { background: linear-gradient(135deg, #d4b890 0%, #b08d57 100%); }
.column-card__thumb--ch2 { background: linear-gradient(135deg, #a8b8d0 0%, #6b86b0 100%); }
.column-card__thumb--ch3 { background: linear-gradient(135deg, #c8b5d4 0%, #9d82b3 100%); }
.column-card__thumb--ch4 { background: linear-gradient(135deg, #b0c9b0 0%, #7ea580 100%); }
.column-card__thumb--ch5 { background: linear-gradient(135deg, #8a93a3 0%, #3a4458 100%); }

.column-card__thumb-label {
  font-family: var(--font-serif);
  color: var(--color-paper);
  font-size: 1rem;
  text-align: center;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-shadow: 0 1px 3px rgba(20, 40, 68, 0.3);
}
.column-card__badge {
  position: absolute;
  top: var(--space-2);
  left: var(--space-2);
  background-color: var(--color-gold-deep);
  color: var(--color-paper);
  font-size: 0.7rem;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  letter-spacing: 0.05em;
}
.column-card__time {
  position: absolute;
  bottom: var(--space-2);
  right: var(--space-2);
  background-color: rgba(20, 40, 68, 0.85);
  color: var(--color-paper);
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 12px;
  letter-spacing: 0.05em;
  font-family: var(--font-display);
}

/* カード本文 */
.column-card__body {
  padding: var(--space-4);
  flex: 1;
  display: flex;
  flex-direction: column;
}
.column-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: var(--space-2);
}
.column-card__tag {
  font-size: 0.7rem;
  padding: 2px 8px;
  background-color: var(--color-paper-warm);
  color: var(--color-navy-deep);
  border-radius: var(--radius-sm);
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.column-card__tag--ch {
  background-color: var(--color-paper-cool);
  color: var(--color-ink-soft);
}
.column-card__tag--type {
  background-color: transparent;
  color: var(--color-gold-deep);
  border: 1px solid var(--color-gold);
}
.column-card__date {
  color: var(--color-mist);
  font-size: 0.75rem;
  margin: 0 0 var(--space-2) 0;
  font-family: var(--font-display);
  letter-spacing: 0.05em;
}
.column-card__title {
  font-family: var(--font-serif);
  color: var(--color-navy-deep);
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0 0 var(--space-3) 0;
  font-weight: 500;
  letter-spacing: 0.02em;
}
.column-card__excerpt {
  font-size: 0.82rem;
  color: var(--color-ink-soft);
  line-height: 1.75;
  margin: 0 0 var(--space-3) 0;
  flex: 1;
}
.column-card__more {
  color: var(--color-navy);
  text-decoration: none;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  margin-top: auto;
}
.column-card__link:hover .column-card__more {
  color: var(--color-navy-deep);
}

/* -------------------------------------------------------
   コラムハブ⑦ 該当なしメッセージ
   ------------------------------------------------------- */
.column-hub-empty {
  text-align: center;
  padding: var(--space-7) var(--space-5);
  color: var(--color-ink-soft);
  font-size: 0.92rem;
  background-color: var(--color-paper-warm);
  border-radius: var(--radius-md);
}

/* =========================================================
   end of コラムハブ追加
   ========================================================= */

/* =========================================================
   PartCG 追加 v1.0 PartCG (2026-05-17)
   - page-content__body--wide （カード型ページ用の広幅レイアウト）
   - note-box（重要なお知らせ・補足説明用）
   - newsletter-form（MailerLite埋め込みフォーム）
   ★ 既存セレクタには触れず、すべて追加のみ
   ========================================================= */

/* -------------------------------------------------------
   page-content__body の widthモディファイア
   ------------------------------------------------------- */
.page-content__body--wide {
  max-width: var(--max-width-wide);
}

/* -------------------------------------------------------
   note-box（補足・重要なお知らせ）
   ------------------------------------------------------- */
.note-box {
  background-color: var(--color-paper-warm);
  border: 1px solid var(--color-gold);
  border-left: 4px solid var(--color-gold);
  border-radius: var(--radius-md);
  padding: var(--space-5) var(--space-5);
  margin: var(--space-5) 0;
}
.note-box__title {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--color-navy-deep);
  margin: 0 0 var(--space-3) 0 !important;
  letter-spacing: 0.04em;
}
.note-box p {
  font-size: 0.95rem;
  line-height: 1.85;
  color: var(--color-ink);
  margin-bottom: var(--space-3) !important;
}
.note-box p:last-child {
  margin-bottom: 0 !important;
}

/* -------------------------------------------------------
   newsletter-form（MailerLite 埋め込み・ブランド統一）
   ------------------------------------------------------- */
.newsletter-form {
  margin: var(--space-5) auto 0;
  max-width: 480px;
  width: 100%;
}
.newsletter-form__row {
  display: flex;
  gap: var(--space-2);
  align-items: stretch;
}
.newsletter-form__input {
  flex: 1;
  padding: var(--space-3) var(--space-4);
  font-size: 0.95rem;
  font-family: var(--font-sans);
  color: var(--color-ink);
  background-color: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  outline: none;
  transition: border-color var(--transition-base);
  min-width: 0;
}
.newsletter-form__input:focus {
  border-color: var(--color-navy);
  box-shadow: 0 0 0 2px rgba(31, 58, 95, 0.15);
}
.newsletter-form__input::placeholder {
  color: var(--color-mist);
}
.newsletter-form__submit {
  padding: var(--space-3) var(--space-5);
  font-size: 0.95rem;
  font-family: var(--font-sans);
  font-weight: 500;
  color: var(--color-paper);
  background-color: var(--color-navy);
  border: 1px solid var(--color-navy);
  border-radius: var(--radius-md);
  cursor: pointer;
  white-space: nowrap;
  transition: background-color var(--transition-base);
  letter-spacing: 0.05em;
}
.newsletter-form__submit:hover {
  background-color: var(--color-navy-deep);
  border-color: var(--color-navy-deep);
}
@media (max-width: 520px) {
  .newsletter-form__row {
    flex-direction: column;
  }
  .newsletter-form__submit {
    width: 100%;
  }
}

/* =========================================================
   end of PartCG 追加
   ========================================================= */

/* =========================================================
   PartCH 追加 v1.0 PartCH (2026-05-17)
   - step-list__footnote（はじめての方の流れSTEP01脚注用）
   ========================================================= */
.step-list__footnote {
  font-size: 0.9rem;
  color: #595959;
  margin-top: 0.5em !important;
  line-height: 1.7;
}

/* =========================================================
   end of PartCH 追加
   ========================================================= */

/* =========================================================
   PartCJ 追加 v1.0 PartCJ (2026-05-17)
   - newsletter-gift-cta（フッターCTA・Essay訴求）
   - essay-gift（newsletter LPヒーロー）
   - benefit-list（newsletter LPメリット一覧）
   - newsletter-lp-form-wrap, newsletter-lp-note（LP内フォーム周辺）
   ★ 既存セレクタには触れない
   ========================================================= */

/* -------------------------------------------------------
   フッターCTA（全55ページから /newsletter/ へ誘導）
   ------------------------------------------------------- */
.newsletter-gift-cta {
  display: block;
  max-width: 480px;
  margin: var(--space-5) auto 0;
  padding: var(--space-5) var(--space-5);
  background-color: var(--color-paper);
  border: 1px solid var(--color-gold);
  border-radius: var(--radius-md);
  text-decoration: none;
  color: var(--color-ink);
  text-align: center;
  transition: background-color var(--transition-base), box-shadow var(--transition-base);
}
.newsletter-gift-cta:hover {
  background-color: var(--color-paper-warm);
  box-shadow: var(--shadow-soft);
}
.newsletter-gift-cta__badge {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: var(--color-gold-deep);
  background-color: var(--color-paper-warm);
  padding: 4px 12px;
  border-radius: 24px;
  margin-bottom: var(--space-3);
  font-weight: 500;
}
.newsletter-gift-cta__title {
  display: block;
  font-family: var(--font-serif);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-navy-deep);
  margin-bottom: var(--space-3);
  letter-spacing: 0.03em;
}
.newsletter-gift-cta__arrow {
  display: inline-block;
  font-size: 0.9rem;
  color: var(--color-navy);
  letter-spacing: 0.05em;
  font-weight: 500;
  padding: 6px 0;
  border-bottom: 1px solid var(--color-navy);
}

/* -------------------------------------------------------
   Essay贈呈ヒーロー（newsletter LP内）
   ------------------------------------------------------- */
.essay-gift {
  background: linear-gradient(180deg, var(--color-paper-warm) 0%, var(--color-paper) 100%);
  border: 1px solid var(--color-gold);
  border-radius: var(--radius-lg);
  padding: var(--space-7) var(--space-5);
  margin: var(--space-5) 0 var(--space-7);
  text-align: center;
}
.essay-gift__badge {
  display: inline-block;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: var(--color-paper);
  background-color: var(--color-gold-deep);
  padding: 5px 14px;
  border-radius: 24px;
  margin: 0 0 var(--space-4) 0 !important;
  font-weight: 500;
}
/* page-content__body h2 のグローバル指定（margin/border-bottom/font-size）を
   essay-gift 文脈で打ち消すため、.page-content__body をプレフィックスして specificity を上げる */
.page-content__body .essay-gift__title,
.essay-gift__title {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  color: var(--color-ink-soft);
  margin: 0 0 var(--space-3) 0;
  padding-bottom: 0;
  border-bottom: 0;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
/* 同様の specificity 衝突を解消（カスタム h2 クラスは page-content__body h2 のborder/marginを無効化） */
.page-content__body .guidance-box__title,
.page-content__body .notice-card__title,
.page-content__body .column-hub-starter__title {
  margin-top: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.essay-gift__main {
  display: block;
  font-size: 1.9rem;
  color: var(--color-navy-deep);
  margin-top: var(--space-3);
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.essay-gift__sub {
  font-family: var(--font-display);
  font-size: 0.85rem;
  color: var(--color-mist);
  margin: 0 0 var(--space-5) 0 !important;
  letter-spacing: 0.1em;
}
.essay-gift__text {
  font-size: 0.95rem;
  line-height: 1.9;
  color: var(--color-ink);
  max-width: 620px;
  margin: 0 auto !important;
  text-align: left;
}

/* -------------------------------------------------------
   メリット一覧（newsletter LP）
   ------------------------------------------------------- */
.benefit-list {
  list-style: none;
  padding: 0;
  margin: var(--space-5) 0 var(--space-7);
}
.benefit-list li {
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-3);
  background-color: var(--color-paper-cool);
  border-left: 3px solid var(--color-navy);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.benefit-list__title {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.02rem;
  color: var(--color-navy-deep);
  margin: 0 0 var(--space-2);
  letter-spacing: 0.03em;
  font-weight: 500;
}
.benefit-list__desc {
  display: block;
  font-size: 0.9rem;
  line-height: 1.85;
  color: var(--color-ink);
  margin: 0;
}

/* -------------------------------------------------------
   LP内フォーム周辺
   ------------------------------------------------------- */
.newsletter-lp-form-wrap {
  background-color: var(--color-paper-warm);
  padding: var(--space-6) var(--space-5);
  border-radius: var(--radius-lg);
  margin: var(--space-5) 0;
}
.newsletter-lp-note {
  font-size: 0.8rem;
  color: var(--color-mist);
  line-height: 1.85;
  margin: var(--space-4) 0 var(--space-7) !important;
}
.newsletter-lp-note a {
  color: var(--color-navy);
  text-decoration: underline;
}

/* =========================================================
   end of PartCJ 追加
   ========================================================= */

/* =========================================================
   PartCL 追加 (2026-05-17)
   HOMEヒーロー背景画像対応（休眠中・将来の再採用に備え残置）
   現在は index.html で .hero--has-image を付けていないため、
   このブロックの全ルールは適用されない（dormant）。
   将来画像ヒーローに戻す場合：
     1) index.html の <section class="hero"> に hero--has-image を追加
     2) <picture class="hero__bg"> + <div class="hero__overlay"> を復活
     3) head の preconnect + preload を復活
   ========================================================= */
.hero--has-image {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.hero--has-image .hero__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
}
.hero--has-image .hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.hero--has-image .hero__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  /* PartCL-fix4: 中央帯を厚めにして可読性を確保しつつ、上下は画像を活かす */
  background:
    radial-gradient(
      ellipse 60% 55% at 50% 50%,
      rgba(255, 255, 255, 0.78) 0%,
      rgba(255, 255, 255, 0.30) 70%,
      rgba(255, 255, 255, 0) 100%
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.55) 0%,
      rgba(255, 255, 255, 0.40) 40%,
      rgba(255, 255, 255, 0.30) 100%
    );
}
/* テキスト視認性: 白ハロー(光彩)＋細い影でくっきり浮かせる */
.hero--has-image .hero__title,
.hero--has-image .hero__tagline,
.hero--has-image .hero__eyebrow,
.hero--has-image .hero__note {
  text-shadow:
    0 0 12px rgba(255, 255, 255, 0.95),
    0 0 6px rgba(255, 255, 255, 0.9),
    0 1px 2px rgba(255, 255, 255, 0.8);
}
/* note は元が mist (薄灰) なので濃く差し替え */
.hero--has-image .hero__note {
  color: var(--color-ink-soft);
}
/* モバイル: 縦長画面ではオーバーレイをさらに強化 */
@media (max-width: 768px) {
  .hero--has-image .hero__overlay {
    background:
      radial-gradient(
        ellipse 75% 60% at 50% 50%,
        rgba(255, 255, 255, 0.88) 0%,
        rgba(255, 255, 255, 0.55) 70%,
        rgba(255, 255, 255, 0.30) 100%
      ),
      linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.75) 0%,
        rgba(255, 255, 255, 0.55) 100%
      );
  }
}
/* アクセシビリティ: 動きへの配慮 */
@media (prefers-reduced-motion: reduce) {
  .hero--has-image .hero__bg img {
    transform: none !important;
    animation: none !important;
  }
}
/* =========================================================
   end of PartCL 追加
   ========================================================= */

/* === PartCN 追加 (2026-05-17): 院長活動記録ギャラリー＆業績ページ拡充 === */
/* 既存セレクタは削除せず、追加のみ。styles.css には書かない */

/* 活動記録ギャラリー */
.activity-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-4);
  margin: var(--space-6) 0;
}
.activity-gallery__item {
  margin: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-bg-soft, #fdfbf7);
  border: 1px solid var(--color-line-soft, #e8e3da);
  border-radius: 6px;
  overflow: hidden;
}
.activity-gallery__item img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.activity-gallery__item figcaption {
  padding: var(--space-3) var(--space-4);
  font-size: 0.88em;
  line-height: 1.65;
  color: var(--color-text-soft, #595959);
}
.activity-gallery__year {
  display: inline-block;
  font-family: var(--font-serif-en, "Cormorant Garamond", serif);
  font-weight: 500;
  margin-right: 0.5em;
  color: var(--color-accent, #1f3a5f);
  letter-spacing: 0.04em;
}

/* 折りたたみ（残り24枚） */
.activity-gallery-more {
  margin: var(--space-6) 0;
  border-top: 1px solid var(--color-line-soft, #e8e3da);
  padding-top: var(--space-5);
}
.activity-gallery-more > summary {
  cursor: pointer;
  font-family: var(--font-serif-jp, "Noto Serif JP", serif);
  font-size: 0.95em;
  color: var(--color-accent, #1f3a5f);
  padding: var(--space-3) 0;
  list-style: none;
  position: relative;
  padding-left: 1.5em;
}
.activity-gallery-more > summary::-webkit-details-marker { display: none; }
.activity-gallery-more > summary::before {
  content: "＋";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 300;
  font-size: 1em;
}
.activity-gallery-more[open] > summary::before {
  content: "−";
}

/* 著者論文（年代別折りたたみ） */
.papers-year {
  margin: var(--space-4) 0;
  border-bottom: 1px solid var(--color-line-soft, #e8e3da);
}
.papers-year > summary {
  cursor: pointer;
  font-family: var(--font-serif-jp, "Noto Serif JP", serif);
  font-size: 1em;
  font-weight: 500;
  color: var(--color-accent, #1f3a5f);
  padding: var(--space-3) 0;
  list-style: none;
  position: relative;
  padding-left: 1.5em;
}
.papers-year > summary::-webkit-details-marker { display: none; }
.papers-year > summary::before {
  content: "＋";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 300;
  font-size: 1em;
}
.papers-year[open] > summary::before {
  content: "−";
}
.papers-list {
  list-style: disc;
  padding-left: 1.4em;
  margin: var(--space-3) 0 var(--space-5);
  font-size: 0.92em;
  line-height: 1.85;
  color: var(--color-text-soft, #595959);
}
.papers-list li {
  margin-bottom: 0.6em;
}
.papers-list em {
  font-style: italic;
  color: var(--color-text, #2f2f2f);
}

/* メディア掲載ヘッダー */
.credential-media-header {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--space-3);
  margin: var(--space-5) 0 var(--space-7);
}
.credential-media-header__item {
  margin: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-bg-soft, #fdfbf7);
  border: 1px solid var(--color-line-soft, #e8e3da);
  border-radius: 4px;
  overflow: hidden;
}
.credential-media-header__item img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #fff;
  display: block;
}
.credential-media-header__item figcaption {
  padding: var(--space-2) var(--space-3);
  font-size: 0.78em;
  color: var(--color-text-soft, #595959);
  text-align: center;
  font-family: var(--font-serif-en, "Cormorant Garamond", serif);
  letter-spacing: 0.04em;
}

/* メディア掲載 詳細解説文 */
.media-list__detail {
  margin: 0.5em 0 0.2em;
  padding-left: 0;
  font-size: 0.9em;
  line-height: 1.75;
  color: var(--color-text-soft, #595959);
}

/* モバイル微調整 */
@media (max-width: 640px) {
  .activity-gallery {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: var(--space-3);
  }
  .credential-media-header {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }
}
/* === PartCN 追加 ここまで === */

/* === PartCO 追加 (2026-05-17): 活動記録/メディア カードの hover 高級化 === */
/* 既存 .activity-gallery__item / .credential-media-header__item に
   transform/box-shadow を非破壊的に追加。
   img のスケール拡大は figure 側で overflow:hidden が既存のため安全。 */

.activity-gallery__item,
.credential-media-header__item {
  transition:
    transform var(--transition-smooth, 0.42s cubic-bezier(0.32, 0.72, 0, 1)),
    box-shadow var(--transition-smooth, 0.42s cubic-bezier(0.32, 0.72, 0, 1)),
    border-color var(--transition-smooth, 0.42s cubic-bezier(0.32, 0.72, 0, 1));
  will-change: transform;
}
.activity-gallery__item:hover,
.credential-media-header__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(20, 40, 68, 0.10);
  border-color: var(--color-gold-glow, rgba(176, 141, 87, 0.40));
}

.activity-gallery__item img,
.credential-media-header__item img {
  transition: transform var(--transition-image, 1s cubic-bezier(0.32, 0.72, 0, 1));
}
.activity-gallery__item:hover img,
.credential-media-header__item:hover img {
  transform: scale(1.035);
}

/* 折りたたみ summary：hover で gold accent */
.activity-gallery-more > summary,
.papers-year > summary {
  transition: color var(--transition-smooth, 0.42s cubic-bezier(0.32, 0.72, 0, 1));
}
.activity-gallery-more > summary:hover,
.papers-year > summary:hover {
  color: var(--color-gold-deep, #8a6d3f);
}

/* 図キャプション：図形より控えめなインク色（質感を上げる） */
.activity-gallery__item figcaption {
  border-top: 1px solid var(--color-line-soft, #e8e3da);
  background: linear-gradient(to bottom, transparent, rgba(176, 141, 87, 0.02));
}

/* Reduced motion: disable scale */
@media (prefers-reduced-motion: reduce) {
  .activity-gallery__item:hover img,
  .credential-media-header__item:hover img {
    transform: none;
  }
}
/* === PartCO 追加 ここまで === */

/* === PartCP 追加 (2026-05-17): ギャラリーカード大型化＋credential-media 構造化 === */
/* ① activity-gallery: minmax 220px→360px、aspect-ratio 4/3→3/2 で横長を活かす */
.activity-gallery {
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: var(--space-5);
  margin: var(--space-7) 0;
}
.activity-gallery__item img {
  aspect-ratio: 3 / 2;
}
.activity-gallery__item figcaption {
  padding: var(--space-4) var(--space-5);
  font-size: 0.92em;
  line-height: 1.75;
}

/* ② credential-media-header: 同じく拡大、構造化キャプション */
.credential-media-header {
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-4);
  margin: var(--space-6) 0 var(--space-8);
}
.credential-media-header__item img {
  aspect-ratio: auto;
  height: auto;
  max-height: 320px;
  object-fit: contain;
  background: var(--color-paper-warm, #faf8f5);
  padding: var(--space-3);
}
.credential-media-header__item figcaption {
  padding: var(--space-4) var(--space-4) var(--space-5);
  display: flex;
  flex-direction: column;
  gap: 0.3em;
  font-size: 0.85em;
  line-height: 1.55;
  text-align: left;
  font-family: var(--font-sans);
  letter-spacing: 0;
}
.credential-media__source {
  font-family: var(--font-serif);
  font-weight: 500;
  color: var(--color-ink);
  font-size: 0.95em;
}
.credential-media__date {
  font-family: var(--font-display);
  color: var(--color-gold-deep);
  font-size: 0.82em;
  letter-spacing: 0.06em;
}
.credential-media__subject {
  color: var(--color-ink-soft);
  font-size: 0.86em;
  line-height: 1.7;
}

/* ③ モバイル: minmax を緩和して 1列にしっかり広げる */
@media (max-width: 720px) {
  .activity-gallery {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
  .activity-gallery__item img {
    aspect-ratio: 16 / 10;
  }
  .credential-media-header {
    grid-template-columns: 1fr;
  }
}

/* ④ tablet 中間 */
@media (min-width: 721px) and (max-width: 960px) {
  .activity-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* === PartCP 追加 ここまで === */

/* === PartCQ 追加 (2026-05-17): newsletter修正・HOME 2カラム・料金大型化 === */

/* Newsletter: badge color override - page-content__body p の specificity を上書き */
.page-content__body .essay-gift__badge {
  color: var(--color-paper);
}

/* Newsletter: benefit-list の bullet 削除 (page-content__body ul li の list-style: disc を上書き) */
.page-content__body .benefit-list li {
  list-style: none;
}

/* Newsletter: 著者プロフィール Blogger 風 */
.newsletter-author {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
  padding: var(--space-5);
  margin: var(--space-6) 0 var(--space-5);
  background: var(--color-paper-warm);
  border-radius: var(--radius-lg);
  border-top: 1px solid var(--color-gold-hair, rgba(176,141,87,0.2));
}
.newsletter-author__photo {
  flex: 0 0 84px;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--color-paper);
}
.newsletter-author__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.newsletter-author__body {
  flex: 1 1 auto;
  min-width: 0;
}
.newsletter-author__name {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 500;
  margin: 0 0 var(--space-2);
  color: var(--color-ink);
  letter-spacing: 0.02em;
}
.newsletter-author__bio {
  font-size: 0.86rem;
  line-height: 1.85;
  margin: 0 0 var(--space-2);
  color: var(--color-ink-soft);
}
.newsletter-author__link {
  font-size: 0.84rem;
  color: var(--color-navy);
  font-weight: 500;
  letter-spacing: 0.02em;
}
@media (max-width: 540px) {
  .newsletter-author {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .newsletter-author__photo {
    margin-bottom: var(--space-3);
  }
}

/* HOME: hero 2カラム化 (.hero--split を追加適用) */
.hero--split .hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr; /* PartCU-final: 220px院長写真と拮抗する1:1配分 */
  gap: var(--space-8);
  align-items: center; /* PartCQ-fix5: stretch やめて中央寄せに戻し、縦長を緩和 */
  text-align: left;
  max-width: var(--max-width-wide);
  padding-left: var(--space-6);
  padding-right: var(--space-6);
  padding-top: var(--space-4);
  padding-bottom: var(--space-4);
}
.hero--split .hero__eyebrow,
.hero--split .hero__title,
.hero--split .hero__tagline,
.hero--split .hero__note,
.hero--split .hero__cta {
  text-align: left;
}
.hero--split .hero__ornament {
  margin-left: 0;
  margin-right: auto;
}
.hero--split .hero__cta {
  justify-content: flex-start;
}
@media (max-width: 840px) {
  .hero--split .hero__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .hero--split .hero__eyebrow,
  .hero--split .hero__title,
  .hero--split .hero__tagline,
  .hero--split .hero__note {
    text-align: center;
  }
  .hero--split .hero__ornament {
    margin: var(--space-4) auto;
  }
  .hero--split .hero__cta {
    justify-content: center;
  }
}

/* HOME hero visual (right side) — コンパクト・上品 */
.hero__visual {
  display: flex;
  justify-content: center;
  align-items: center;
}
.hero__visual-card {
  width: 100%;
  max-width: 460px; /* PartCU-final（35fc2b8f相当・確定）: 460px */
  padding: var(--space-6) var(--space-5);
  background: linear-gradient(180deg, var(--color-paper) 0%, var(--color-paper-warm) 100%);
  border: 1px solid var(--color-gold-hair, rgba(176,141,87,0.22));
  border-radius: var(--radius-lg);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}
.hero__visual-photo {
  width: 300px; /* PartCU-final（35fc2b8f相当・確定）: 300px、枠ナシ */
  height: 300px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto var(--space-1);
  /* background / border は意図的に置かない。PNG画像内の淡いラベンダー余白が
     カード地と自然になじむ柔らかいフレーム効果として機能する */
}
@media (max-width: 840px) {
  .hero__visual-photo {
    width: 240px;
    height: 240px;
  }
  .hero__visual-card {
    max-width: 420px;
  }
}
.hero__visual-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero__visual-name {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 500;
  margin: 0 0 var(--space-2);
  color: var(--color-ink);
  letter-spacing: 0.04em;
}
.hero__visual-rule {
  width: 28px;
  height: 1px;
  background: var(--color-gold-deep);
  margin: var(--space-3) auto;
}
.hero__visual-credentials {
  font-size: 0.78rem;
  color: var(--color-ink-soft);
  margin: 0;
  line-height: 1.9;
  letter-spacing: 0.02em;
}

/* 料金: newsletter-gift-cta と同じサイズ感に統一（上品・控えめ） */
.price-box {
  display: block;
  max-width: 480px;
  margin: var(--space-7) auto !important;
  padding: var(--space-5) var(--space-5);
  background: var(--color-paper);
  border: 1px solid var(--color-gold);
  border-radius: var(--radius-md);
  text-align: center;
}
.price-box__label {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--color-gold-deep);
  background-color: var(--color-paper-warm);
  padding: 4px 12px;
  border-radius: 24px;
  margin-bottom: var(--space-3) !important;
  font-weight: 500;
}
.price-box__amount {
  display: block;
  font-family: var(--font-display);
  font-size: 1.85rem !important;
  font-weight: 500;
  color: var(--color-navy-deep);
  line-height: 1.25;
  letter-spacing: 0.02em;
  margin: 0 0 var(--space-3);
}
.price-box__amount small {
  font-size: 0.46em !important;
  letter-spacing: 0.04em;
  display: inline-block;
  margin-left: 0.2em;
  color: var(--color-ink-soft);
  font-style: normal;
  font-weight: 400;
}
.price-box__note {
  display: block;
  font-size: 0.82rem;
  line-height: 1.75;
  color: var(--color-ink-soft);
  margin: var(--space-3) 0 0;
}

/* footer 内ニュースレター CTA */
.footer-newsletter {
  max-width: var(--max-width-content);
  margin: 0 auto var(--space-7);
  padding: var(--space-5) var(--space-6);
  background: var(--color-paper);
  border: 1px solid var(--color-gold-hair, rgba(176,141,87,0.22));
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  text-decoration: none;
  color: var(--color-ink);
  transition: background var(--transition-smooth, 0.4s ease), border-color var(--transition-smooth, 0.4s ease);
}
.footer-newsletter:hover {
  background: var(--color-paper-warm);
  border-color: var(--color-gold);
  text-decoration: none;
}
.footer-newsletter__lead {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.footer-newsletter__badge {
  display: inline-block;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: var(--color-gold-deep);
  font-weight: 500;
}
.footer-newsletter__title {
  font-family: var(--font-serif);
  font-size: 0.98rem;
  color: var(--color-ink);
  letter-spacing: 0.02em;
}
.footer-newsletter__arrow {
  font-family: var(--font-display);
  color: var(--color-gold-deep);
  font-size: 0.92rem;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .footer-newsletter {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* === PartCQ 追加 ここまで === */

/* === PartCQ-fix2 追加 (2026-05-17): credential-fold アコーディオン === */
.credential-fold {
  margin: var(--space-4) 0 var(--space-7);
  border-bottom: 1px solid var(--color-border-soft);
}
.credential-fold > summary {
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: 0.98rem;
  color: var(--color-navy);
  padding: var(--space-3) 0;
  list-style: none;
  position: relative;
  padding-left: 1.5em;
  letter-spacing: 0.02em;
  transition: color var(--transition-smooth, 0.4s ease);
}
.credential-fold > summary::-webkit-details-marker { display: none; }
.credential-fold > summary::before {
  content: "＋";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 300;
  font-size: 1em;
  color: var(--color-gold-deep);
}
.credential-fold[open] > summary::before {
  content: "−";
}
.credential-fold > summary:hover {
  color: var(--color-gold-deep);
}
/* === PartCQ-fix2 ここまで === */

/* === PartCQ-fix3 追加 (2026-05-17): hero visual card 内部レイアウト微調整 === */
.hero__visual-eyebrow {
  display: block;
  font-family: var(--font-display);
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-gold-deep);
  margin-bottom: var(--space-4);
}
.hero__visual-link {
  display: inline-block;
  margin-top: var(--space-4);
  font-size: 0.85rem;
  color: var(--color-navy);
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: color var(--transition-smooth, 0.4s ease);
}
.hero__visual-link:hover {
  color: var(--color-gold-deep);
  text-decoration: none;
}
/* credentials の行間タイト化（カード内のリズム） */
.hero__visual-credentials {
  font-size: 0.78rem;
  line-height: 1.85;
  margin: 0;
}
/* モバイル時の card 高さ伸ばし回避（自然な高さに戻す） */
@media (max-width: 840px) {
  .hero__visual-card {
    justify-content: center;
  }
}
/* === PartCQ-fix3 ここまで === */

/* === PartCQ-fix4 追加 (2026-05-17): hero CTA 下端をカード下端と揃える === */
/* .hero__text を flex column 化、CTA を最下部に push */
.hero--split .hero__text {
  /* 自然な flow に戻す（縦長解消） */
}
/* モバイル時は自然な flow に戻す（margin-top auto 解除） */
@media (max-width: 840px) {
  .hero--split .hero__cta {
    margin-top: var(--space-5);
  }
}
/* === PartCQ-fix4 ここまで === */


/* === PartCQ-fix5 追加 (2026-05-17): hero 縦長を縮める === */
.hero--split { 
  padding: var(--space-7) 0 var(--space-7);
}
@media (max-width: 840px) {
  .hero--split { padding: var(--space-6) 0; }
}
/* === PartCQ-fix5 ここまで === */

/* === PartCQ-fix6 追加 (2026-05-17): hero テキスト 1.5倍大型化（HOME 限定） === */
.hero--split .hero__eyebrow {
  font-size: 1.25rem; /* 0.85rem → 1.25rem */
  line-height: 1.85;
  letter-spacing: 0.04em;
}
.hero--split .hero__title {
  font-size: 3.5rem; /* mobile 2.5rem → 3.5rem */
  line-height: 1.25;
  letter-spacing: 0.04em;
}
@media (min-width: 640px) {
  .hero--split .hero__title {
    font-size: 4.5rem; /* desktop 3.25rem → 4.5rem */
  }
}
.hero--split .hero__tagline {
  font-size: 1.5rem; /* 1.1rem → 1.5rem */
  line-height: 1.85;
  letter-spacing: 0.04em;
}
.hero--split .hero__note {
  font-size: 1rem; /* 0.8rem → 1rem */
  line-height: 1.85;
}

/* card 側も微増（左の大型化とバランス） */
.hero--split .hero__visual-eyebrow {
  font-size: 0.85rem; /* 0.72rem → 0.85rem */
  letter-spacing: 0.32em;
}
.hero--split .hero__visual-name {
  font-size: 1.2rem; /* 1.05rem → 1.2rem */
}
.hero--split .hero__visual-credentials {
  font-size: 0.9rem; /* 0.78rem → 0.9rem */
  line-height: 1.9;
}
.hero--split .hero__visual-link {
  font-size: 0.95rem; /* 0.85rem → 0.95rem */
}

/* hero outer padding 微増（テキスト大型化に合わせて）*/
.hero--split { padding: var(--space-8) 0 var(--space-8); }
@media (max-width: 840px) {
  .hero--split { padding: var(--space-6) 0; }
}
/* === PartCQ-fix6 ここまで === */

/* === PartCQ-fix7 追加 (2026-05-17): section-head__caption (HOME コラム紹介の lede) === */
.section-head__caption {
  margin: var(--space-3) auto 0;
  max-width: 640px;
  font-size: 0.92rem;
  line-height: 1.85;
  color: var(--color-ink-soft);
  letter-spacing: 0.02em;
}
.text-center { text-align: center; }
/* === PartCQ-fix7 ここまで === */

/* === PartCR 追加 (2026-05-17): 9項目デザイン改善 (プロデザイナーレビュー反映) === */

/* 🔴 1. モバイル CTA 折り返し防止 */
@media (max-width: 540px) {
  .hero--split .hero__cta .btn--lg {
    font-size: 0.88rem;
    padding: 14px 18px;
    letter-spacing: 0.04em;
    white-space: nowrap;
    min-height: 52px;
  }
  .hero--split .hero__cta {
    flex-wrap: wrap;
    gap: var(--space-3);
  }
}

/* 🟠 2. ヒーロー価値訴求ライン（既存 .hero__note を価値メッセージ用にリフレッシュ） */
.hero--split .hero__note {
  font-family: var(--font-display);
  letter-spacing: 0.06em;
  color: var(--color-gold-deep);
  font-size: 1.05rem;
  margin-top: var(--space-3);
  margin-bottom: var(--space-5);
}
.hero__note-sep {
  display: inline-block;
  margin: 0 0.6em;
  color: var(--color-gold-hair, rgba(176,141,87,0.4));
  font-weight: 300;
}

/* 🟠 4. .program-card__link を btn--ghost と並べる時に整合性が取れる仕様（HTML側で btn 化） */
.program-card__link.btn {
  margin-top: var(--space-4);
}

/* 🟡 6. FAQ カテゴリをカード型 UI に */
.faq-nav-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-4);
  margin: var(--space-5) 0 var(--space-7);
  padding: 0;
  list-style: none;
}
.page-content__body .faq-nav-cards li {
  list-style: none;
  margin: 0;
}
.faq-nav-cards__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--space-5);
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: 
    transform var(--transition-smooth, 0.4s ease),
    box-shadow var(--transition-smooth, 0.4s ease),
    border-color var(--transition-smooth, 0.4s ease);
  text-decoration: none;
  color: var(--color-ink);
  min-height: 130px;
  justify-content: space-between;
}
.faq-nav-cards__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(20, 40, 68, 0.08);
  border-color: var(--color-gold);
  text-decoration: none;
}
.faq-nav-cards__label {
  font-family: var(--font-display);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-gold-deep);
  margin-bottom: var(--space-3);
}
.faq-nav-cards__title {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--color-ink);
  margin: 0 0 var(--space-3);
  line-height: 1.5;
}
.faq-nav-cards__arrow {
  font-size: 0.85rem;
  color: var(--color-navy);
  letter-spacing: 0.04em;
}

/* 🟡 7. HOME intro のテキスト中央寄せ */
.intro-text-center p {
  text-align: center;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/* 🟡 8. 「選ばれる理由」後の CTA wrapper */
.section-cta {
  margin-top: var(--space-6);
  text-align: center;
}

/* 🟡 9. ニュースレター CTA の「Essayを受け取る」ボタン化（ゴールド） */
.newsletter-gift-cta__arrow {
  display: inline-block !important;
  margin-top: var(--space-4) !important;
  padding: 12px 28px !important;
  background-color: var(--color-gold-deep) !important;
  color: var(--color-paper) !important;
  border-radius: 4px !important;
  font-family: var(--font-sans) !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  transition: background-color var(--transition-smooth, 0.4s ease) !important;
}
.newsletter-gift-cta:hover .newsletter-gift-cta__arrow {
  background-color: var(--color-navy-deep) !important;
}
/* === PartCR 追加 ここまで === */

/* === PartCW 追加 (2026-05-18): 価格直下の説明文 === */
/* hero__note の直下に置く価格の意義説明（index.html） */
.hero__note-justify {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-style: italic;
  font-weight: 400;
  color: var(--color-ink);
  letter-spacing: 0.04em;
  line-height: 1.7;
  margin: var(--space-2) 0 var(--space-4);
}

/* price-box 内の amount 直下に置く価格の意義説明（program / doctor-consultation） */
.price-box__justify {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-style: italic;
  font-weight: 400;
  color: var(--color-ink);
  letter-spacing: 0.04em;
  line-height: 1.7;
  margin: var(--space-3) 0 var(--space-2);
  text-align: center;
}

/* === PartCX 追加 (2026-05-18): 院長カード名前表記の階層化 === */
.hero__visual-name strong {
  display: block;
  font-size: 1.25rem;
  font-weight: 500;
  font-family: var(--font-serif);
  letter-spacing: 0.04em;
}
.hero__visual-name small {
  display: block;
  font-size: 0.78rem;
  font-family: var(--font-sans);
  color: var(--color-ink-soft);
  letter-spacing: 0.18em;
  margin-top: 4px;
  font-weight: 400;
}
