/* =========================================================
   監修医師プロフィール（hc-doctor）
   医療（YMYL）サイト向けに、信頼感・可読性を優先した落ち着いたトーン。
   すべて .hc-doctor 配下にスコープし、テーマ側と干渉しにくくしています。
   ========================================================= */

.hc-doctor {
    --hc-accent: #0b7285;       /* 医療系の落ち着いたティール */
    --hc-accent-dark: #095a69;
    --hc-ink: #1f2d3d;          /* 見出し */
    --hc-text: #445064;         /* 本文 */
    --hc-muted: #7b8794;        /* 補助テキスト */
    --hc-line: #e3e8ee;         /* 罫線 */
    --hc-bg: #f7fafc;           /* 淡い背景 */

    max-width: 720px;
    margin: 2em auto;
    padding: 1.5em 1.6em;
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(31, 45, 61, .05);
    color: var(--hc-text);
    line-height: 1.75;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
}

/* ---- ヘッダー（バッジ＋監修日） ---- */
.hc-doctor__head {
    display: flex;
    align-items: center;
    gap: .75em;
    flex-wrap: wrap;
    margin-bottom: 1em;
}

.hc-doctor__badge {
    display: inline-block;
    padding: .25em .8em;
    background: var(--hc-accent);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    border-radius: 999px;
}

.hc-doctor__date {
    font-size: 12px;
    color: var(--hc-muted);
}

/* ---- 氏名・肩書き ---- */
.hc-doctor__id {
    padding-bottom: 1.1em;
    border-bottom: 1px solid var(--hc-line);
}

.hc-doctor__name {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--hc-ink);
    line-height: 1.4;
}

.hc-doctor__name a {
    color: inherit;
    text-decoration: none;
}

.hc-doctor__name a:hover {
    color: var(--hc-accent);
    text-decoration: underline;
}

.hc-doctor__reading {
    font-size: 13px;
    font-weight: 500;
    color: var(--hc-muted);
}

.hc-doctor__title {
    margin: .35em 0 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--hc-accent-dark);
}

.hc-doctor__sep {
    color: var(--hc-line);
    font-weight: 400;
    margin: 0 .25em;
}

.hc-doctor__lead {
    margin: .8em 0 0;
    font-size: 14px;
    color: var(--hc-text);
}

/* ---- 各ブロック共通 ---- */
.hc-doctor__block {
    margin-top: 1.3em;
}

.hc-doctor__label {
    margin: 0 0 .7em;
    padding-left: .6em;
    font-size: 15px;
    font-weight: 700;
    color: var(--hc-ink);
    border-left: 4px solid var(--hc-accent);
    line-height: 1.4;
}

/* ---- 略歴タイムライン ---- */
.hc-doctor__timeline {
    list-style: none;
    margin: 0;
    padding: 0;
}

.hc-doctor__event {
    display: flex;
    gap: 1em;
    padding: .45em 0;
    border-bottom: 1px dashed var(--hc-line);
}

.hc-doctor__event:last-child {
    border-bottom: 0;
}

.hc-doctor__year {
    flex: 0 0 5.5em;
    font-weight: 700;
    color: var(--hc-accent-dark);
    font-variant-numeric: tabular-nums;
}

.hc-doctor__event-text {
    flex: 1 1 auto;
}

/* ---- 資格・所属 ---- */
.hc-doctor__quals {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .5em;
}

.hc-doctor__qual {
    padding: .3em .8em;
    background: var(--hc-bg);
    border: 1px solid var(--hc-line);
    border-radius: 6px;
    font-size: 13px;
    color: var(--hc-ink);
}

/* 略歴・資格内のリンク（施設名・学会名など） */
.hc-doctor__event-text a,
.hc-doctor__qual a {
    color: var(--hc-accent-dark);
    text-decoration: none;
    border-bottom: 1px solid rgba(11, 114, 133, .25);
}

.hc-doctor__event-text a:hover,
.hc-doctor__qual a:hover {
    border-bottom-color: currentColor;
}

.hc-doctor__qual a {
    color: var(--hc-ink);
}

.hc-doctor__qual:hover {
    border-color: var(--hc-accent);
}

/* ---- SNS・関連リンク ---- */
.hc-doctor__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .6em;
}

.hc-doctor__link {
    display: inline-flex;
    align-items: center;
    gap: .45em;
    padding: .4em .9em;
    border: 1px solid var(--hc-line);
    border-radius: 8px;
    color: var(--hc-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.hc-doctor__link:hover {
    border-color: var(--hc-accent);
    color: var(--hc-accent);
    background: var(--hc-bg);
}

.hc-doctor__link-icon {
    display: inline-flex;
    width: 18px;
    height: 18px;
    color: var(--hc-muted);
}

.hc-doctor__link:hover .hc-doctor__link-icon {
    color: var(--hc-accent);
}

.hc-doctor__link-icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* ---- 監修体制の注記 ---- */
.hc-doctor__policy {
    margin: 1.4em 0 0;
    padding-top: 1.1em;
    border-top: 1px solid var(--hc-line);
    font-size: 12.5px;
    color: var(--hc-muted);
}

.hc-doctor__policy a {
    color: var(--hc-accent);
    text-decoration: underline;
}

/* ---- モバイル ---- */
@media (max-width: 600px) {
    .hc-doctor {
        padding: 1.2em 1.1em;
        border-radius: 10px;
    }
    .hc-doctor__name { font-size: 18px; }
    .hc-doctor__event { gap: .7em; }
    .hc-doctor__year { flex-basis: 4.8em; }
}

/* ---- アクセシビリティ：フォーカス可視化 & モーション低減 ---- */
.hc-doctor a:focus-visible,
.hc-doctor__link:focus-visible {
    outline: 2px solid var(--hc-accent);
    outline-offset: 2px;
    border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .hc-doctor__link { transition: none; }
}
