@charset "UTF-8";
/* =========================================================
   イナガキ眼科 院長コラム — テーマ用CSS  v1(モック由来)
   - 配置: wp-content/themes/inagaki-column/assets/css/column.css
   - 用途: archive-column.php / single-column.php / taxonomy-column_category.php 共用
   - 前提: 既存サイトの common.css?=v3.1 を本ファイルより**前に**読み込む
           (inc/enqueue.php で wp_enqueue_style により dependency 指定)
   - 役割: コラム機能固有の見た目だけを定義(ヘッダー/フッター/グローバルナビは
           common.css に委譲)
   - スコープ: <body class="column-page"> 配下のみに作用するよう限定
   - 由来: 04_wordpress/mock/css/mock.css(v2デザイン+v3実写対応+タイトル明朝化)
   - 和文書体: 既存サイト本体と同じ運用にする
       - 本文 → Noto Sans JP(--font-sans-ja)
       - タイトル(一覧H1 / 記事H1 / 一覧カードh3)のみ Shippori Mincho(--font-mincho)
     common.css は Shippori Mincho 400/500/600 のみ読込のため、タイトル太字用に
     700 ウェイトのみここで追加読込する。
   ========================================================= */

/* タイトル太字(700)用に Shippori Mincho 700 を追加読込
   ※ 400/500/600 は common.css 側で読込済 */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@700&display=swap');

/* ---------- 1. カラー&サイズ変数+コラム領域のフォント基準 ---------- */
.column-page {
    /* common.css の html { font-size: 62.5% } 等の影響で rem ベースが
       崩れる事象に対応。font-size は px で絶対指定し、コラム配下の
       未指定要素にも正しい基準を継承させる。 */
    font-size: 16px;
    line-height: 1.85;
    color: var(--col-text);
    letter-spacing: 0.015em;

    /* --- 基本色(医療系ネイビー基調・既存サイトと整合) --- */
    --col-primary: #0F2D52;        /* 深いネイビー(コラム見出し・主色) */
    --col-primary-dark: #08203D;
    --col-primary-light: #2E5A8E;
    --col-primary-soft: #6A86A8;

    /* --- アクセント(院長コラムの格・E-E-A-T) --- */
    --col-gold: #B8965A;           /* 上品なゴールド(章番号・装飾) */
    --col-gold-dark: #957542;
    --col-gold-soft: #E8DCC4;

    /* --- 副アクセント(CTA予約) --- */
    --col-accent: #C66B2E;         /* 落ち着いたオレンジ(暖色アクセント) */
    --col-accent-dark: #A0531F;

    /* --- 文字色 --- */
    --col-text: #1F2937;
    --col-text-soft: #4A5568;
    --col-text-mute: #7E8A99;

    /* --- 背景 --- */
    --col-bg: #ffffff;
    --col-bg-alt: #F7F5F0;         /* 温かみのあるクリーム系オフホワイト */
    --col-bg-soft: #EEF2F8;        /* 薄ネイビーティント */
    --col-bg-cream: #FBF9F4;       /* さらに薄いクリーム */
    --col-border: #D5D8DD;
    --col-border-soft: #E6E2D8;

    /* --- カテゴリ色(彩度を抑え気味で上品に) --- */
    --cat-cataract: #1F5A8C;        /* 白内障:落ち着いた青 */
    --cat-glaucoma: #3F7A55;        /* 緑内障:深緑 */
    --cat-retinal: #6B4783;         /* 網膜:深紫 */
    --cat-pediatric: #C26B2E;       /* 小児:オレンジブラウン */
    --cat-general: #5F6A75;         /* 一般:グレー */

    /* レイアウト */
    --col-wrap-pc: 1140px;
    --col-wrap-narrow: 760px;

    /* シャドウ(やや繊細に) */
    --col-shadow-sm: 0 1px 3px rgba(15, 45, 82, 0.05), 0 1px 2px rgba(15, 45, 82, 0.04);
    --col-shadow: 0 4px 14px rgba(15, 45, 82, 0.07), 0 2px 6px rgba(15, 45, 82, 0.04);
    --col-shadow-hover: 0 12px 28px rgba(15, 45, 82, 0.13), 0 4px 10px rgba(15, 45, 82, 0.06);

    /* セリフ(英数字・章番号用) */
    --font-serif: "Cormorant Garamond", "Times New Roman", "游明朝", "Yu Mincho", "YuMincho", serif;
    /* 和文 本文用 — 既存サイト本体(common.css)の body と同じ Noto Sans JP */
    --font-sans-ja: YakuHanJP, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
    /* 和文 タイトル用 — 既存サイトの .section-ttl / .sub-line と同じ Shippori Mincho */
    --font-mincho: YakuHanJP, "Shippori Mincho", "游明朝", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN W3", serif;
}

/* main 配下にも基準を再宣言(共通CSS側で main にfont-size指定がある場合の保険)
   + common.css の section/main 余白を打ち消し、ブロック間の白スペースを排除 */
.column-page main {
    font-size: 16px;
    line-height: 1.85;
    padding: 0;
    margin: 0;
    font-family: var(--font-sans-ja);
}
.column-page main > * {
    margin-top: 0;
    margin-bottom: 0;
}
.column-page > footer {
    margin-top: 0;
}

/* ---------- 2. レイアウトユーティリティ ---------- */
.column-page .col-wrap {
    max-width: var(--col-wrap-pc);
    margin: 0 auto;
    padding: 0 24px;
}
.column-page .col-wrap-narrow {
    max-width: var(--col-wrap-narrow);
    margin: 0 auto;
    padding: 0 24px;
}

/* ---------- 3. パンくず ---------- */
.column-page .col-breadcrumb {
    background: #fff;
    border-bottom: 1px solid var(--col-border-soft);
    padding: 12px 0;
    font-size: 12.5px;
    line-height: 1.4;
}
.column-page .col-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    list-style: none;
    margin: 0 auto;
    padding: 0 24px;
    max-width: var(--col-wrap-pc);
    color: var(--col-text-soft);
}
.column-page .col-breadcrumb li {
    display: inline-flex;
    align-items: center;
    letter-spacing: 0.04em;
}
.column-page .col-breadcrumb li + li::before {
    content: "/";
    margin-right: 8px;
    color: var(--col-text-mute);
    font-family: var(--font-serif);
    font-style: italic;
}
.column-page .col-breadcrumb a {
    color: var(--col-primary);
    text-decoration: none;
    transition: color 0.15s ease;
}
.column-page .col-breadcrumb a:hover {
    color: var(--col-gold);
}
.column-page .col-breadcrumb li[aria-current="page"] {
    color: var(--col-text-soft);
}

/* ---------- 4. ページヘッド(一覧) — 雑誌風ヒーロー ---------- */
.column-page .col-page-head {
    position: relative;
    background:
        linear-gradient(180deg, var(--col-bg-cream) 0%, #fff 100%);
    padding: 72px 24px 64px;
    text-align: center;
    overflow: hidden;
    border-bottom: 1px solid var(--col-border-soft);
}
/* 装飾的なSVGパターン(微細なドットパターン)を背景に */
.column-page .col-page-head::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle, rgba(184, 150, 90, 0.08) 1px, transparent 1.5px);
    background-size: 28px 28px;
    background-position: center;
    pointer-events: none;
    opacity: 0.7;
    mask-image: radial-gradient(ellipse 60% 80% at center, #000 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 60% 80% at center, #000 30%, transparent 80%);
}
.column-page .col-page-head > * {
    position: relative;
    z-index: 1;
}
.column-page .col-page-head h1 {
    font-family: var(--font-mincho);
    font-size: 38px;
    color: var(--col-primary);
    margin: 0 0 22px;
    letter-spacing: 0.06em;
    line-height: 1.3;
    font-weight: 700;
}
.column-page .col-page-head h1 .en {
    display: block;
    font-family: var(--font-serif);
    font-size: 13px;
    font-weight: 500;
    font-style: italic;
    color: var(--col-gold);
    letter-spacing: 0.32em;
    margin-bottom: 14px;
    text-transform: uppercase;
}
/* H1下の装飾ライン(中央に小さなマーク) */
.column-page .col-page-head h1::after {
    content: "";
    display: block;
    width: 44px;
    height: 1px;
    background: var(--col-gold);
    margin: 18px auto 0;
    position: relative;
}
.column-page .col-page-head .lead {
    max-width: 680px;
    margin: 0 auto;
    font-size: 15px;
    color: var(--col-text-soft);
    line-height: 2.05;
    letter-spacing: 0.04em;
}

/* ---------- 5. カテゴリピル(フィルタ) ---------- */
.column-page .col-cat-filter {
    background: #fff;
    border-bottom: 1px solid var(--col-border-soft);
    padding: 22px 24px;
}
.column-page .col-cat-filter ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 0;
    max-width: var(--col-wrap-pc);
    margin-left: auto;
    margin-right: auto;
}
.column-page .col-cat-filter a {
    display: inline-flex;
    align-items: center;
    padding: 8px 20px;
    border-radius: 999px;
    background: #fff;
    color: var(--col-text-soft);
    font-size: 13.5px;
    font-weight: 600;
    border: 1px solid var(--col-border);
    text-decoration: none;
    transition: all 0.2s ease;
    letter-spacing: 0.04em;
}
.column-page .col-cat-filter a:hover {
    border-color: var(--col-primary);
    color: var(--col-primary);
    background: var(--col-bg-soft);
}
.column-page .col-cat-filter a.is-current {
    background: var(--col-primary);
    color: #fff;
    border-color: var(--col-primary);
}
.column-page .col-cat-filter a[data-cat="cataract"]:hover { border-color: var(--cat-cataract); color: var(--cat-cataract); }
.column-page .col-cat-filter a[data-cat="glaucoma"]:hover { border-color: var(--cat-glaucoma); color: var(--cat-glaucoma); }
.column-page .col-cat-filter a[data-cat="retinal"]:hover { border-color: var(--cat-retinal); color: var(--cat-retinal); }
.column-page .col-cat-filter a[data-cat="pediatric"]:hover { border-color: var(--cat-pediatric); color: var(--cat-pediatric); }
.column-page .col-cat-filter a[data-cat="general"]:hover { border-color: var(--cat-general); color: var(--cat-general); }

/* ---------- 6. 一覧 — カードグリッド(雑誌風) ---------- */
.column-page .col-list {
    padding: 72px 0 96px;
    background: var(--col-bg-cream);
}
.column-page .col-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.column-page .col-card {
    background: #fff;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: var(--col-shadow);
    display: flex;
    flex-direction: column;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    position: relative;
}
/* 上端にカテゴリーカラーのアクセントバー */
.column-page .col-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--col-text-mute);
    z-index: 2;
}
.column-page .col-card:has(.col-thumb[data-cat="cataract"])::before { background: var(--cat-cataract); }
.column-page .col-card:has(.col-thumb[data-cat="glaucoma"])::before { background: var(--cat-glaucoma); }
.column-page .col-card:has(.col-thumb[data-cat="retinal"])::before { background: var(--cat-retinal); }
.column-page .col-card:has(.col-thumb[data-cat="pediatric"])::before { background: var(--cat-pediatric); }
.column-page .col-card:has(.col-thumb[data-cat="general"])::before { background: var(--cat-general); }
.column-page .col-card > a {
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
}
.column-page .col-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--col-shadow-hover);
}

/* サムネイル(実写画像 + 可読性確保オーバーレイ) */
.column-page .col-card .col-thumb {
    aspect-ratio: 16 / 10;
    background: var(--col-bg-soft);
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    color: #fff;
    overflow: hidden;
    font-size: 0;            /* インライン子要素(英ラベル等)以外を非表示化 */
}
/* 写真本体 */
.column-page .col-card .col-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    transition: transform 0.5s ease;
}
.column-page .col-card:hover .col-thumb img {
    transform: scale(1.04);
}
/* 可読性確保:左下に向かって少し暗くなるグラデ(ラベル可読性のみが目的・控えめ) */
.column-page .col-card .col-thumb::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to top,
        rgba(15, 32, 50, 0.62) 0%,
        rgba(15, 32, 50, 0.30) 32%,
        rgba(15, 32, 50, 0.05) 60%,
        rgba(15, 32, 50, 0) 100%);
    pointer-events: none;
}
/* カテゴリ別のごく薄いトーンを右上に1点だけ重ねる(写真の連載感を統一・8〜14%程度) */
.column-page .col-card .col-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    mix-blend-mode: multiply;
}
.column-page .col-card .col-thumb[data-cat="cataract"]::after  { background: linear-gradient(135deg, rgba(31, 90, 140, 0)   55%, rgba(31, 90, 140, 0.14)  100%); }
.column-page .col-card .col-thumb[data-cat="glaucoma"]::after  { background: linear-gradient(135deg, rgba(63, 122, 85, 0)   55%, rgba(63, 122, 85, 0.14)  100%); }
.column-page .col-card .col-thumb[data-cat="retinal"]::after   { background: linear-gradient(135deg, rgba(107, 71, 131, 0)  55%, rgba(107, 71, 131, 0.16) 100%); }
.column-page .col-card .col-thumb[data-cat="pediatric"]::after { background: linear-gradient(135deg, rgba(194, 107, 46, 0)  55%, rgba(194, 107, 46, 0.12) 100%); }
.column-page .col-card .col-thumb[data-cat="general"]::after   { background: linear-gradient(135deg, rgba(95, 106, 117, 0)  55%, rgba(95, 106, 117, 0.14) 100%); }

/* カテゴリFAアイコンは実写と相性が悪いため非表示(構造は維持) */
.column-page .col-card .col-thumb i {
    display: none;
}
/* カテゴリ名(左下に装飾的に配置) */
.column-page .col-card .col-thumb .col-thumb-label {
    position: relative;
    z-index: 3;
    padding: 0 22px 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 16px;
    text-shadow: 0 1px 6px rgba(0,0,0,0.35);
}
.column-page .col-card .col-thumb .col-thumb-label .ja {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.4;
}
.column-page .col-card .col-thumb .col-thumb-label .en {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 11px;
    letter-spacing: 0.25em;
    color: rgba(255,255,255,0.85);
    text-transform: uppercase;
}

.column-page .col-card .col-body {
    padding: 22px 24px 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.column-page .col-card .col-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    font-size: 12px;
    color: var(--col-text-mute);
    margin-bottom: 12px;
}
.column-page .col-card .col-meta time {
    font-family: var(--font-serif);
    font-size: 15px;
    letter-spacing: 0.06em;
    color: var(--col-text-soft);
}
.column-page .col-cat-label {
    display: inline-flex;
    align-items: center;
    padding: 3px 11px;
    border-radius: 2px;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.6;
}
.column-page .col-cat-label[data-cat="cataract"] { background: var(--cat-cataract); }
.column-page .col-cat-label[data-cat="glaucoma"] { background: var(--cat-glaucoma); }
.column-page .col-cat-label[data-cat="retinal"] { background: var(--cat-retinal); }
.column-page .col-cat-label[data-cat="pediatric"] { background: var(--cat-pediatric); }
.column-page .col-cat-label[data-cat="general"] { background: var(--cat-general); }
.column-page .col-card h3 {
    font-family: var(--font-mincho);
    font-size: 17.5px;
    line-height: 1.55;
    margin: 0 0 12px;
    color: var(--col-text);
    font-weight: 700;
    letter-spacing: 0.01em;
}
.column-page .col-card:hover h3 {
    color: var(--col-primary);
}
.column-page .col-card .col-excerpt {
    font-size: 13.5px;
    color: var(--col-text-soft);
    line-height: 1.8;
    flex: 1;
    margin: 0 0 16px;
}
/* 末尾の「…」だけ欧文ベースライン位置に揃える(JPフォントだと中央配置になるため) */
.column-page .col-ellipsis {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.column-page .col-doctor-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border: 1px solid var(--col-gold);
    border-radius: 2px;
    background: #fff;
    font-size: 11.5px;
    color: var(--col-gold-dark);
    font-weight: 700;
    align-self: flex-start;
    line-height: 1.6;
    letter-spacing: 0.06em;
}
.column-page .col-doctor-badge i {
    font-size: 11px;
}

/* ---------- 7. ページネーション ---------- */
.column-page .col-pagination {
    margin-top: 56px;
    display: flex;
    justify-content: center;
    gap: 6px;
}
.column-page .col-pagination a,
.column-page .col-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    border-radius: 2px;
    background: #fff;
    border: 1px solid var(--col-border);
    color: var(--col-primary);
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 16px;
    text-decoration: none;
    transition: all 0.15s ease;
}
.column-page .col-pagination a:hover {
    border-color: var(--col-primary);
    background: var(--col-bg-soft);
}
.column-page .col-pagination .is-current {
    background: var(--col-primary);
    color: #fff;
    border-color: var(--col-primary);
}

/* ---------- 8. 個別記事ページ ---------- */
.column-page .col-article {
    padding: 64px 0 72px;
    background: #fff;
}

/* タイトル領域:中央寄せ・幅制限・縦並びを明示 */
.column-page .col-article-head {
    max-width: var(--col-wrap-narrow);
    margin: 0 auto 36px;
    padding: 0 24px;
    text-align: left;
}
.column-page .col-article-head .col-cat-label {
    display: inline-block;
    padding: 5px 14px;
    font-size: 11.5px;
    margin: 0 0 20px;
}
.column-page .col-article-head .col-article-title {
    display: block;
    font-family: var(--font-mincho);
    font-size: 32px;
    line-height: 1.55;
    color: var(--col-text);
    margin: 0 0 22px;
    padding: 0;
    border: none;
    background: none;
    letter-spacing: 0.025em;
    font-weight: 700;
    text-align: left;
}
.column-page .col-article-head .col-meta-info {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    font-size: 13.5px;
    color: var(--col-text-soft);
    align-items: center;
    margin: 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--col-border-soft);
}
.column-page .col-article-head .col-meta-info time {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    line-height: 1.4;
    font-family: var(--font-serif);
    font-size: 16px;
    letter-spacing: 0.05em;
}
.column-page .col-article-head .col-meta-info time i {
    color: var(--col-gold);
    font-size: 13px;
}
.column-page .col-article-head .col-doctor-badge {
    padding: 5px 12px;
    font-size: 12.5px;
}

/* アイキャッチ — 実写画像 */
.column-page .col-featured {
    max-width: 1000px;
    margin: 0 auto 48px;
    padding: 0 24px;
}
.column-page .col-featured-inner {
    aspect-ratio: 16 / 9;
    background: var(--col-bg-soft);
    border-radius: 6px;
    box-shadow: var(--col-shadow);
    position: relative;
    overflow: hidden;
}
.column-page .col-featured-inner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 目次 — 雑誌的なライン装飾 */
.column-page .col-toc {
    max-width: var(--col-wrap-narrow);
    margin: 0 auto 48px;
    padding: 28px 32px;
    background: var(--col-bg-cream);
    border: 1px solid var(--col-border-soft);
    border-left: 3px solid var(--col-gold);
    border-radius: 2px;
}
.column-page .col-toc-title {
    display: flex;
    align-items: baseline;
    gap: 12px;
    font-size: 14px;
    color: var(--col-primary);
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px dotted var(--col-border);
    letter-spacing: 0.1em;
}
.column-page .col-toc-title::before {
    content: "INDEX";
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 12px;
    color: var(--col-gold);
    letter-spacing: 0.3em;
    font-weight: 500;
}
.column-page .col-toc-title i { display: none; }
.column-page .col-toc ol {
    list-style: none;
    counter-reset: toc-counter;
    padding-left: 0;
    color: var(--col-text);
    margin: 0;
}
.column-page .col-toc li {
    counter-increment: toc-counter;
    padding: 6px 0 6px 36px;
    font-size: 14.5px;
    line-height: 1.65;
    position: relative;
}
.column-page .col-toc li::before {
    content: counter(toc-counter, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 6px;
    font-family: var(--font-serif);
    font-size: 14px;
    font-weight: 500;
    color: var(--col-gold);
    letter-spacing: 0.06em;
}
.column-page .col-toc a {
    color: var(--col-text);
    text-decoration: none;
    transition: color 0.15s ease;
}
.column-page .col-toc a:hover {
    color: var(--col-primary);
}

/* 本文 */
.column-page .col-article-body {
    max-width: var(--col-wrap-narrow);
    margin: 0 auto;
    padding: 0 24px;
    font-size: 16px;
    color: var(--col-text);
    line-height: 2;
    counter-reset: h2-counter;
}

/* 目次リンクからのジャンプ先が固定ヘッダーに隠れないようオフセット。
   既存サイトの header 高さ(common.css)に合わせて段階的に調整。
   PC:80px / ≤960px:68px / ≤896px(landscape):65px / ≤767px:55px に +12px のバッファ。 */
.column-page .col-article-body :where(h2, h3, h4)[id] {
    scroll-margin-top: 92px;
}
@media (max-width: 960px) {
    .column-page .col-article-body :where(h2, h3, h4)[id] {
        scroll-margin-top: 80px;
    }
}
@media screen and (orientation: landscape) and (max-width: 896px) {
    .column-page .col-article-body :where(h2, h3, h4)[id] {
        scroll-margin-top: 77px;
    }
}
@media (max-width: 767px) {
    .column-page .col-article-body :where(h2, h3, h4)[id] {
        scroll-margin-top: 67px;
    }
}

/* リード(本文冒頭の引用風ボックス) */
.column-page .col-article-body .col-lead {
    font-size: 16.5px;
    line-height: 2;
    color: var(--col-text);
    padding: 26px 30px 26px 38px;
    background: var(--col-bg-cream);
    border-left: 3px solid var(--col-gold);
    border-radius: 0 2px 2px 0;
    margin: 0 0 44px;
    position: relative;
    letter-spacing: 0.02em;
}

/* H2 — 章番号付き雑誌レイアウト */
.column-page .col-article-body h2 {
    counter-increment: h2-counter;
    font-size: 23px;
    color: var(--col-primary);
    margin: 56px 0 22px;
    padding: 0 0 16px;
    border: none;
    border-bottom: 1px solid var(--col-border);
    background: none;
    letter-spacing: 0.025em;
    line-height: 1.55;
    font-weight: 700;
    position: relative;
    display: flex;
    align-items: baseline;
    gap: 18px;
}
.column-page .col-article-body h2::before {
    content: counter(h2-counter, decimal-leading-zero);
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 28px;
    font-weight: 500;
    color: var(--col-gold);
    letter-spacing: 0.04em;
    line-height: 1;
    flex: 0 0 auto;
}

/* H3 — H2との階層差を明確に */
.column-page .col-article-body h3 {
    font-size: 17.5px;
    color: var(--col-primary-dark);
    margin: 36px 0 14px;
    padding: 0 0 0 16px;
    border-left: 3px solid var(--col-gold);
    border-bottom: none;
    background: none;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.02em;
}

.column-page .col-article-body p {
    line-height: 2;
    margin: 0 0 1.4em;
}
.column-page .col-article-body strong {
    color: var(--col-primary);
    font-weight: 700;
    background: linear-gradient(transparent 62%, rgba(184, 150, 90, 0.22) 62%);
    padding: 0 2px;
}
.column-page .col-article-body ul {
    list-style: none;
    padding-left: 0;
    margin: 0 0 1.6em;
}
.column-page .col-article-body ul li {
    padding: 6px 0 6px 24px;
    line-height: 1.85;
    position: relative;
}
.column-page .col-article-body ul li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 16px;
    width: 8px;
    height: 1px;
    background: var(--col-gold);
}
.column-page .col-article-body ol {
    list-style: decimal;
    padding-left: 1.4em;
    margin: 0 0 1.6em;
}
.column-page .col-article-body ol li {
    padding: 4px 0;
    line-height: 1.85;
}
.column-page .col-article-body a {
    color: var(--col-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--col-gold);
    transition: color 0.15s ease, border-color 0.15s ease;
}
.column-page .col-article-body a:hover {
    color: var(--col-gold-dark);
    border-bottom-color: var(--col-gold-dark);
}

/* 本文中のテーブル(Gutenberg wp-block-table)
   既存サイト common.css の青ヘッダーを上書きし、コラムのクリーム系パレットへ整合 */
.column-page .col-article-body .wp-block-table {
    margin: 32px 0;
}
.column-page .col-article-body .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
    line-height: 1.75;
    color: var(--col-text);
    background: var(--col-bg);
    border-top: 1px solid var(--col-border-soft);
    border-bottom: 1px solid var(--col-border-soft);
}
.column-page .col-article-body .wp-block-table thead {
    background: var(--col-bg-alt);
    border-bottom: 2px solid var(--col-gold);
}
.column-page .col-article-body .wp-block-table thead th {
    color: var(--col-primary);
    font-family: var(--font-mincho);
    font-weight: 600;
    text-align: left;
    padding: 13px 18px;
    letter-spacing: 0.03em;
}
.column-page .col-article-body .wp-block-table tbody th,
.column-page .col-article-body .wp-block-table tbody td {
    padding: 13px 18px;
    border-bottom: 1px solid var(--col-border-soft);
    vertical-align: top;
    text-align: left;
}
.column-page .col-article-body .wp-block-table tbody tr:last-child th,
.column-page .col-article-body .wp-block-table tbody tr:last-child td {
    border-bottom: none;
}
.column-page .col-article-body .wp-block-table tbody tr:nth-child(even) {
    background: var(--col-bg-cream);
}
.column-page .col-article-body .wp-block-table figcaption {
    margin-top: 10px;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 13px;
    letter-spacing: 0.05em;
    color: var(--col-text-mute);
    text-align: center;
}
@media (max-width: 768px) {
    .column-page .col-article-body .wp-block-table {
        overflow-x: auto;
    }
    .column-page .col-article-body .wp-block-table table {
        min-width: 480px;
        font-size: 14px;
    }
    .column-page .col-article-body .wp-block-table thead th,
    .column-page .col-article-body .wp-block-table tbody th,
    .column-page .col-article-body .wp-block-table tbody td {
        padding: 11px 14px;
    }
}

/* 院長見解(雑誌のドクターコラム風・引用記号を効かせる) */
.column-page .col-doctor-view {
    margin: 44px 0;
    padding: 32px 36px 30px;
    background: linear-gradient(135deg, var(--col-bg-cream) 0%, #fff 100%);
    border: 1px solid var(--col-border-soft);
    border-top: 2px solid var(--col-gold);
    border-radius: 2px;
    position: relative;
    line-height: 1.9;
    box-shadow: var(--col-shadow-sm);
}
/* 大きな引用記号(セリフ) */
.column-page .col-doctor-view::before {
    content: "“";
    position: absolute;
    top: 4px;
    left: 18px;
    font-family: var(--font-serif);
    font-size: 90px;
    font-weight: 700;
    color: var(--col-gold-soft);
    line-height: 1;
    pointer-events: none;
}
/* 元の医師アイコン(円バッジ)は非表示にして上のラベルで代替 */
.column-page .col-doctor-view::after { display: none; }
.column-page .col-doctor-view .col-dv-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--col-gold-dark);
    font-weight: 700;
    letter-spacing: 0.18em;
    margin-bottom: 12px;
    padding-left: 64px;
    position: relative;
    z-index: 1;
    text-transform: uppercase;
}
.column-page .col-doctor-view .col-dv-label::after {
    content: "";
    display: inline-block;
    flex: 1;
    height: 1px;
    background: var(--col-border);
    margin-left: 6px;
}
.column-page .col-doctor-view p {
    margin: 0;
    color: var(--col-text);
    font-size: 15.5px;
    line-height: 1.95;
    position: relative;
    z-index: 1;
}
.column-page .col-doctor-view .col-dv-sign {
    display: block;
    margin-top: 14px;
    text-align: right;
    font-size: 13px;
    color: var(--col-primary);
    font-weight: 600;
    letter-spacing: 0.04em;
    font-family: var(--font-serif);
    font-style: italic;
}

/* インライン内部リンク注釈 — 雑誌のサイドノート風 */
.column-page .col-inline-link {
    display: block;
    margin: 22px 0 24px;
    padding: 16px 20px 16px 56px;
    background: #fff;
    border: 1px solid var(--col-border);
    border-radius: 2px;
    font-size: 14.5px;
    line-height: 1.75;
    color: var(--col-text-soft);
    position: relative;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.column-page .col-inline-link::before {
    content: "→";
    position: absolute;
    left: 22px;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--col-gold);
    line-height: 1;
}
.column-page .col-inline-link i { display: none; }
.column-page .col-inline-link:hover {
    background: var(--col-bg-cream);
    border-color: var(--col-gold);
}
.column-page .col-inline-link a {
    color: var(--col-primary);
    border-bottom: 1px solid var(--col-gold);
    font-weight: 600;
}

/* 出典・免責 */
.column-page .col-references {
    max-width: var(--col-wrap-narrow);
    margin: 56px auto 0;
    padding: 26px 28px;
    background: var(--col-bg-cream);
    border: 1px solid var(--col-border-soft);
    border-radius: 2px;
    font-size: 13.5px;
    color: var(--col-text-soft);
}
.column-page .col-references h3 {
    font-size: 12px;
    color: var(--col-primary);
    margin: 0 0 14px;
    border: none;
    padding: 0;
    background: none;
    letter-spacing: 0.18em;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
}
.column-page .col-references h3 i {
    color: var(--col-gold);
    font-size: 13px;
}
.column-page .col-references ul {
    list-style: disc;
    padding-left: 1.4em;
    margin: 0 0 14px;
}
.column-page .col-references li {
    padding: 3px 0;
    line-height: 1.7;
}
.column-page .col-references .col-disclaimer {
    margin: 0;
    padding-top: 14px;
    border-top: 1px dashed var(--col-border);
    font-size: 12.5px;
    line-height: 1.75;
    color: var(--col-text-mute);
}

/* ---------- 9. 末尾CTAブロック(編集方針 §5) ---------- */
.column-page .col-article-cta {
    max-width: var(--col-wrap-narrow);
    margin: 64px auto 0;
    padding: 0 24px;
}

/* [1] 院長監修クレジット — プレミアム感のあるカード */
.column-page .col-cta-doctor {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 26px 28px;
    background: linear-gradient(135deg, #fff 0%, var(--col-bg-cream) 100%);
    border: 1px solid var(--col-border-soft);
    border-top: 2px solid var(--col-gold);
    border-radius: 2px;
    margin-bottom: 28px;
    box-shadow: var(--col-shadow-sm);
}
.column-page .col-cta-doctor .col-avatar {
    flex: 0 0 84px;
    width: 84px; height: 84px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--col-primary) 0%, var(--col-primary-dark) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 700;
    position: relative;
    box-shadow: 0 4px 12px rgba(15, 45, 82, 0.18);
    overflow: visible;
}
/* 院長写真(監修者アバター) */
.column-page .col-cta-doctor .col-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    display: block;
}
/* リング装飾 */
.column-page .col-cta-doctor .col-avatar::after {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 1px solid var(--col-gold);
}
.column-page .col-cta-doctor .col-cd-info {
    flex: 1;
    min-width: 0;
}
.column-page .col-cta-doctor .col-cd-label {
    font-size: 10.5px;
    color: var(--col-gold-dark);
    letter-spacing: 0.22em;
    margin-bottom: 6px;
    font-weight: 700;
    text-transform: uppercase;
}
.column-page .col-cta-doctor .col-cd-name {
    font-size: 18px;
    font-weight: 700;
    color: var(--col-primary);
    margin-bottom: 6px;
    line-height: 1.5;
    letter-spacing: 0.02em;
}
.column-page .col-cta-doctor .col-cd-qual {
    font-size: 13px;
    color: var(--col-text-soft);
    line-height: 1.7;
    margin-bottom: 10px;
}
.column-page .col-cta-doctor .col-cd-info a {
    font-size: 13px;
    color: var(--col-primary);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid var(--col-gold);
    padding-bottom: 1px;
    transition: color 0.15s ease;
}
.column-page .col-cta-doctor .col-cd-info a:hover {
    color: var(--col-gold-dark);
}

/* [2] 予約導線CTA — 上品なネイビー基調+ゴールドアクセント */
.column-page .col-cta-reservation {
    display: block;
    margin-bottom: 32px;
    padding: 26px 28px;
    background: linear-gradient(135deg, var(--col-primary) 0%, var(--col-primary-dark) 100%);
    color: #fff;
    border-radius: 2px;
    text-align: center;
    font-weight: 700;
    font-size: 18px;
    box-shadow: 0 6px 18px rgba(15, 45, 82, 0.22);
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    line-height: 1.5;
    position: relative;
    overflow: hidden;
    letter-spacing: 0.04em;
}
/* ゴールドの装飾ライン(上端) */
.column-page .col-cta-reservation::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, var(--col-gold) 50%, transparent 100%);
}
.column-page .col-cta-reservation:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15, 45, 82, 0.3);
    color: #fff;
    text-decoration: none;
}
.column-page .col-cta-reservation i {
    margin-right: 12px;
    color: var(--col-gold);
}
.column-page .col-cta-reservation small {
    display: block;
    font-size: 12px;
    font-weight: 500;
    margin-top: 6px;
    opacity: 0.88;
    letter-spacing: 0.06em;
}

/* [3] 関連内部リンク3本 */
.column-page .col-cta-related {
    margin-bottom: 32px;
}
.column-page .col-cta-related h3 {
    font-size: 13px;
    color: var(--col-primary);
    margin: 0 0 16px;
    padding: 0 0 10px;
    border: none;
    border-bottom: 1px solid var(--col-border);
    background: none;
    letter-spacing: 0.18em;
    font-weight: 700;
    line-height: 1.5;
    display: flex;
    align-items: center;
    gap: 10px;
    text-transform: uppercase;
}
.column-page .col-cta-related h3 i {
    color: var(--col-gold);
}
.column-page .col-cta-related ul {
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.column-page .col-cta-related a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid var(--col-border);
    border-left: 3px solid var(--col-gold);
    border-radius: 2px;
    color: var(--col-text);
    font-size: 14.5px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.18s ease;
    line-height: 1.5;
}
.column-page .col-cta-related a:hover {
    background: var(--col-bg-cream);
    border-color: var(--col-primary);
    border-left-color: var(--col-primary);
    transform: translateX(3px);
}
.column-page .col-cta-related a i {
    color: var(--col-gold);
    margin-left: 12px;
    transition: transform 0.18s ease;
}
.column-page .col-cta-related a:hover i {
    color: var(--col-primary);
    transform: translateX(3px);
}

/* [4] 診療時間・住所・地図(短縮版) */
.column-page .col-cta-clinic {
    margin-bottom: 32px;
    padding: 26px 28px;
    background: var(--col-bg-cream);
    border: 1px solid var(--col-border-soft);
    border-radius: 2px;
}
.column-page .col-cta-clinic h3 {
    font-size: 13px;
    color: var(--col-primary);
    margin: 0 0 18px;
    padding: 0 0 10px;
    border: none;
    border-bottom: 1px solid var(--col-border);
    background: none;
    letter-spacing: 0.18em;
    font-weight: 700;
    line-height: 1.5;
    display: flex;
    align-items: center;
    gap: 10px;
    text-transform: uppercase;
}
.column-page .col-cta-clinic h3 i { color: var(--col-gold); }
.column-page .col-cta-clinic .col-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 28px;
}
.column-page .col-cta-clinic dl {
    margin: 0;
    font-size: 14px;
    line-height: 1.75;
}
.column-page .col-cta-clinic dt {
    color: var(--col-gold-dark);
    font-size: 11px;
    margin-bottom: 4px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.column-page .col-cta-clinic dd {
    margin: 0 0 12px;
    color: var(--col-text);
}
.column-page .col-cta-clinic .col-clinic-map {
    grid-column: 1 / -1;
    margin-top: 10px;
    line-height: 0;
}
.column-page .col-cta-clinic .col-clinic-map iframe {
    display: block;
    width: 100%;
    height: 500px;
    border: 0;
    border-radius: 2px;
}
@media (max-width: 767px) {
    .column-page .col-cta-clinic .col-clinic-map iframe {
        height: 320px;
    }
}

/* [5] 最終更新日 */
.column-page .col-cta-updated {
    text-align: center;
    font-size: 14px;
    color: var(--col-text-mute);
    padding: 18px 0;
    border-top: 1px dotted var(--col-border);
    margin: 0;
    font-family: var(--font-serif);
    letter-spacing: 0.08em;
    font-style: italic;
}

/* ---------- 10. 関連記事(個別ページ末尾) ---------- */
.column-page .col-related-columns {
    background: var(--col-bg-cream);
    padding: 72px 0 80px;
    margin-top: 72px;
    border-top: 1px solid var(--col-border-soft);
}
.column-page .col-related-columns h2 {
    text-align: center;
    font-size: 22px;
    color: var(--col-primary);
    margin: 0 0 36px;
    padding: 0;
    border: none;
    background: none;
    letter-spacing: 0.08em;
    font-weight: 700;
    line-height: 1.5;
    position: relative;
}
.column-page .col-related-columns h2::before {
    content: "RELATED";
    display: block;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 12px;
    font-weight: 500;
    color: var(--col-gold);
    letter-spacing: 0.32em;
    margin-bottom: 10px;
}
.column-page .col-related-columns h2::after {
    content: "";
    display: block;
    width: 36px;
    height: 1px;
    background: var(--col-gold);
    margin: 14px auto 0;
}
.column-page .col-related-columns .col-grid {
    grid-template-columns: repeat(3, 1fr);
}

/* ---------- 11. レスポンシブ ---------- */
@media (max-width: 960px) {
    .column-page .col-grid,
    .column-page .col-related-columns .col-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .column-page .col-article-head .col-article-title {
        font-size: 26px;
    }
    .column-page .col-page-head h1 {
        font-size: 32px;
    }
}

@media (max-width: 640px) {
    .column-page .col-grid,
    .column-page .col-related-columns .col-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .column-page .col-breadcrumb ol {
        font-size: 11.5px;
    }
    .column-page .col-page-head {
        padding: 44px 20px 36px;
    }
    .column-page .col-page-head h1 {
        font-size: 26px;
    }
    .column-page .col-page-head h1 .en {
        font-size: 11px;
        letter-spacing: 0.28em;
    }
    .column-page .col-article {
        padding: 40px 0 56px;
    }
    .column-page .col-article-head .col-article-title {
        font-size: 22px;
        line-height: 1.55;
    }
    .column-page .col-article-body h2 {
        font-size: 19px;
        margin: 40px 0 16px;
        padding: 0 0 14px;
        gap: 12px;
    }
    .column-page .col-article-body h2::before {
        font-size: 22px;
    }
    .column-page .col-article-body .col-lead {
        font-size: 15px;
        padding: 22px 24px 22px 28px;
    }
    .column-page .col-doctor-view {
        padding: 28px 24px 24px;
    }
    .column-page .col-doctor-view::before {
        font-size: 70px;
        top: -2px;
        left: 12px;
    }
    .column-page .col-doctor-view .col-dv-label {
        padding-left: 50px;
    }
    .column-page .col-featured-inner {
        font-size: 15px;
    }
    .column-page .col-cta-doctor {
        flex-direction: column;
        text-align: center;
        gap: 18px;
    }
    .column-page .col-cta-clinic .col-info-grid {
        grid-template-columns: 1fr;
    }
    .column-page .col-related-columns {
        padding: 48px 0 56px;
    }
    .column-page .col-cta-reservation {
        font-size: 16px;
        padding: 22px 22px;
    }
}

/* ---------- 12. WordPress 固有のクラスへの上書き ---------- */

/* the_posts_pagination は <nav class="navigation pagination col-pagination">
   <div class="nav-links"> + <a/span class="page-numbers"> を出力する。
   モックの `.col-pagination a` 系セレクタとは別の DOM になるため WP 用にも当てる。 */
.column-page nav.col-pagination {
    margin-top: 56px;
}
.column-page nav.col-pagination .nav-links {
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}
.column-page nav.col-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    border-radius: 2px;
    background: #fff;
    border: 1px solid var(--col-border);
    color: var(--col-primary);
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 16px;
    text-decoration: none;
    transition: all 0.15s ease;
}
.column-page nav.col-pagination a.page-numbers:hover {
    border-color: var(--col-primary);
    background: var(--col-bg-soft);
}
.column-page nav.col-pagination .page-numbers.current {
    background: var(--col-primary);
    color: #fff;
    border-color: var(--col-primary);
}
.column-page nav.col-pagination .page-numbers.dots {
    border-color: transparent;
    background: transparent;
}

/* WP のスクリーンリーダー専用テキストは表示しない */
.column-page nav.col-pagination .screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

