   :root {
    /* ── Brand palette ──────────────────────────────────────── */
    --pink:        #C85A87;                      /* dusty rose — less candy, more editorial */
    --pink-light:  #fdf4f8;
    --pink-mid:    #e8b4c8;
    --pink-dark:   #9e3d62;
    --pink-ghost:  rgba(200, 90, 135, 0.08);     /* subtle hover fill */
    --blue:        #2C92B9;
    --blue-light:  #e6f1fb;
    --green-light: #e1f5ee;
    --green-dark:  #0F6E56;

    /* ── Editorial neutrals ─────────────────────────────────── */
    --ink:         #0e0e0e;
    --ink-mid:     #3a3a3a;
    --ink-light:   #787878;
    --ink-xlight:  #a8a8a8;
    --surface:     #ffffff;
    --surface-warm:#f3ece5;
    --divider:     rgba(0, 0, 0, 0.07);

    /* ── Radii ──────────────────────────────────────────────── */
    --radius-sm:   6px;
    --radius-md:   14px;
    --radius-pill: 100px;

    /* ── Shadows ────────────────────────────────────────────── */
    --shadow-card:       0 2px 16px rgba(14, 14, 14, 0.06), 0 1px 4px rgba(14, 14, 14, 0.04);
    --shadow-card-hover: 0 12px 40px rgba(14, 14, 14, 0.10), 0 4px 12px rgba(14, 14, 14, 0.06);
    --shadow-dropdown:   0 8px 32px rgba(14, 14, 14, 0.11), 0 2px 8px rgba(14, 14, 14, 0.06);

    /* ── Transitions ────────────────────────────────────────── */
    --ease-out:      cubic-bezier(0.16, 1, 0.3, 1);
    --duration-fast: 0.18s;
    --duration-med:  0.32s;
}

/* ── Layout ─────────────────────────────────────────────── */
.bgo-archive {
    font-family: 'DM Sans', sans-serif;
    background: var(--surface-warm);
    color: var(--ink-mid);
    -webkit-font-smoothing: antialiased;
}

.bgo-archive__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 4rem 2rem 6rem;
}

.bgo-archive__header {
    margin-bottom: 2.5rem;
}

.bgo-archive__title {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.6rem, 4.5vw, 3.8rem);
    font-weight: 400;
    color: var(--ink);
    margin-bottom: 10px;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.bgo-archive__count {
    font-size: var(--bgo-fs-base);
    color: var(--ink-light);
    letter-spacing: 0.02em;
    font-weight: 400;
}

.bgo-archive__count span {
    color: var(--pink);
    font-weight: 500;
}

/* ── Search Input ───────────────────────────────────────── */
.bgo-archive__search {
    margin-bottom: 1rem;
}

.bgo-search-input {
    width: 100%;
    background: var(--surface);
    border: 1px solid var(--divider);
    border-radius: var(--radius-md);
    padding: 14px 18px;
    font: inherit;
    font-size: var(--bgo-fs-base);
    color: var(--ink);
    box-shadow: 0 1px 8px rgba(14, 14, 14, 0.04);
    transition: border-color .2s ease, box-shadow .2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.bgo-search-input::placeholder {
    color: var(--ink-light);
}

.bgo-search-input:focus {
    outline: none;
    border-color: var(--pink);
    box-shadow: 0 1px 12px rgba(14, 14, 14, 0.08);
}

.bgo-search-input::-webkit-search-cancel-button {
    cursor: pointer;
}

/* ── Filter Bar ─────────────────────────────────────────── */
.bgo-filter-bar {
    background: var(--surface);
    border: 1px solid var(--divider);
    border-radius: var(--radius-md);
    padding: 1.125rem 1.5rem;
    margin-bottom: 2rem;
    box-shadow: 0 1px 8px rgba(14, 14, 14, 0.04);
}

.bgo-filter-bar__row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

/* ── Filter dropdowns ───────────────────────────────────── */
.bgo-filter-item {
    position: relative;
}

.bgo-filter-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: var(--surface);
    font-size: var(--bgo-fs-base);
    font-family: 'DM Sans', sans-serif;
    font-weight: 400;
    color: var(--ink-mid);
    cursor: pointer;
    letter-spacing: 0.02em;
    transition:
        border-color var(--duration-fast) var(--ease-out),
        background var(--duration-fast) var(--ease-out),
        color var(--duration-fast) var(--ease-out);
    white-space: nowrap;
}

.bgo-filter-btn:hover {
    border-color: var(--pink);
    background: var(--pink-ghost);
    color: var(--pink-dark);
}

.bgo-filter-btn.is-active {
    border-color: var(--pink);
    background: var(--pink-ghost);
    color: var(--pink-dark);
    font-weight: 500;
}

.bgo-filter-btn svg {
    opacity: 0.4;
    transition: transform var(--duration-fast) var(--ease-out);
}

.bgo-filter-item.is-open .bgo-filter-btn svg {
    transform: rotate(180deg);
}

.bgo-filter-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 210px;
    /* 9. 防止小屏靠右的 filter dropdown 横向溢出 viewport.
       calc(100vw - 32px) 留 16px 左右内边距, 跟 archive__inner 的 padding 协调.
       dropdown 自身仍按 min-width 起步, 只在会溢出时被夹住. */
    max-width: calc(100vw - 32px);
    max-height: 360px;
    overflow-y: auto;
    overscroll-behavior: contain;
    /* 明确告诉 iOS/Android 这是个纵向滚动面, 避免 touch 起手被当成
       其它手势 (横划 / 双指缩放) 处理. 修右半边"划不动"的根因. */
    touch-action: pan-y;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
    background: var(--surface);
    border: 1px solid var(--divider);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-dropdown);
    padding: 8px 0;
    z-index: 40;
}

/* 9b. 当 dropdown 右边会溢出 viewport (filter button 在屏幕右半),
      JS 自动加这个 class 让 dropdown 改从 button 右边对齐, 向左展开. */
.bgo-filter-dropdown--right-anchored {
    left: auto;
    right: 0;
}

/* WebKit (Chrome / Safari / Edge) custom scrollbar */
.bgo-filter-dropdown::-webkit-scrollbar {
    width: 6px;
}

.bgo-filter-dropdown::-webkit-scrollbar-track {
    background: transparent;
}

.bgo-filter-dropdown::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.18);
    border-radius: 100px;
    transition: background var(--duration-fast);
}

.bgo-filter-dropdown::-webkit-scrollbar-thumb:hover {
    background: var(--pink);
}

.bgo-filter-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 20px;
    cursor: pointer;
    font-size: var(--bgo-fs-base);
    color: var(--ink-mid);
    transition: background var(--duration-fast);
}

.bgo-filter-option:hover {
    background: var(--pink-ghost);
}

.bgo-filter-option input {
    accent-color: var(--pink);
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    cursor: pointer;
}

/* ── Specialty inline carousel (desktop) ────────────────────
   电脑端: specialty 不再是 dropdown 按钮, 而是一整行卡片 (2 行, 横向分页),
   参考 Bookimed home-slider —— 卡片 2 个一列、列向右滚、左右箭头翻页.
   手机端 (<768px) 保持原本的 dropdown (本块全在 media query 内, 不影响小屏).
   inline-label 与箭头默认隐藏, 仅桌面显示. */
.bgo-filter-inline-label { display: none; }
.bgo-carousel-arrow      { display: none; }

@media (min-width: 768px) {
    /* 整个 specialty filter 独占一行, 排在其它 filter pill 下方 */
    .bgo-filter-item--inline-desktop {
        order: 1;
        flex: 0 0 100%;
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
        /* 横滚卡片网格 (grid-auto-flow:column) 的溢出会顺着祖先链冒泡, 把整页
           撑出横向滚动条 (dropdown 自身的 overflow-x:auto 只裁自己, 裁不住祖先)。
           在这一层 clip 掉横向溢出, 卡片仍可在 dropdown 内横滚。 */
        overflow-x: clip;
        margin-top: 14px;
        padding-top: 14px;
        border-top: 1px solid var(--divider);
    }

    /* 隐藏 dropdown 触发按钮; 卡片行常驻 */
    .bgo-filter-item--inline-desktop > .bgo-filter-btn { display: none; }

    /* "Specialty" 标签在电脑端也隐藏 (base 规则已是 display:none, 这里显式标注
       是有意为之, 而非漏写). 卡片行直接从左右箭头开始. */
    .bgo-filter-item--inline-desktop .bgo-filter-inline-label {
        display: none;
    }

    /* 把浮层 dropdown 重置成 inline 的 2 行横滚网格 */
    .bgo-filter-item--inline-desktop .bgo-filter-dropdown {
        position: static;
        display: grid;                              /* 覆盖 [hidden] 的 display:none */
        grid-auto-flow: column;
        grid-template-rows: repeat(2, 1fr);
        grid-auto-columns: 260px;                   /* 固定列宽, 对齐参考 UI */
        gap: 8px;
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-x: contain;
        scroll-behavior: smooth;
        scroll-snap-type: x proximity;
        padding: 2px;
        background: none;
        border: none;
        border-radius: 0;
        box-shadow: none;
        z-index: auto;
        /* 箭头负责翻页, 滚动条隐藏 (滚动本身仍可用) */
        scrollbar-width: none;
    }
    .bgo-filter-item--inline-desktop .bgo-filter-dropdown::-webkit-scrollbar { display: none; }

    /* 每个选项变成一张卡片 */
    .bgo-filter-item--inline-desktop .bgo-filter-option {
        gap: 0;
        min-height: 46px;
        padding: 10px 16px;
        border: 1px solid rgba(0, 0, 0, 0.12);
        border-radius: var(--radius-sm);
        background: var(--surface);
        /* 等宽卡片 + 文字居中: 短/长标签都对齐, 比左对齐更工整 */
        justify-content: center;
        text-align: center;
        white-space: normal;
        line-height: 1.3;
        font-size: var(--bgo-fs-sm);
        color: var(--ink-mid);
        scroll-snap-align: start;
        transition:
            border-color var(--duration-fast) var(--ease-out),
            background var(--duration-fast) var(--ease-out),
            color var(--duration-fast) var(--ease-out);
    }

    /* 电脑端隐藏 "Any specialty" (value="") 卡片 —— 复位走 × 标签 / Clear all;
       手机下拉里仍保留该选项. grid display:none 会自动收掉空位, 不留缝. */
    .bgo-filter-item--inline-desktop .bgo-filter-option:has(input[value=""]) {
        display: none;
    }

    /* radio 圆圈视觉隐藏但保持可聚焦 (键盘 Tab/方向键仍可选) */
    .bgo-filter-item--inline-desktop .bgo-filter-option input {
        position: absolute;
        width: 1px;
        height: 1px;
        opacity: 0;
        pointer-events: none;
    }

    .bgo-filter-item--inline-desktop .bgo-filter-option:hover {
        border-color: var(--pink);
        background: var(--pink-ghost);
        color: var(--pink-dark);
    }

    /* 选中卡片 = 高亮 */
    .bgo-filter-item--inline-desktop .bgo-filter-option:has(input:checked) {
        border-color: var(--pink);
        background: var(--pink-ghost);
        color: var(--pink-dark);
        font-weight: 500;
    }

    .bgo-filter-item--inline-desktop .bgo-filter-option:has(input:focus-visible) {
        outline: 2px solid var(--pink);
        outline-offset: 2px;
    }

    /* 左右翻页箭头 (JS 注入) */
    .bgo-filter-item--inline-desktop .bgo-carousel-arrow {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 1px solid rgba(0, 0, 0, 0.12);
        background: var(--surface);
        color: var(--ink-light);
        cursor: pointer;
        transition:
            border-color var(--duration-fast) var(--ease-out),
            background var(--duration-fast) var(--ease-out),
            color var(--duration-fast) var(--ease-out),
            opacity var(--duration-fast) var(--ease-out);
    }

    .bgo-filter-item--inline-desktop .bgo-carousel-arrow:hover {
        border-color: var(--pink);
        background: var(--pink-ghost);
        color: var(--pink-dark);
    }

    /* 滚到头/尾: 变暗且不可点 */
    .bgo-filter-item--inline-desktop .bgo-carousel-arrow:disabled {
        opacity: 0.3;
        cursor: default;
        pointer-events: none;
    }
}

/* ── Toggle (verified only) ─────────────────────────────── */
.bgo-filter-item--toggle {
    margin-left: 4px;
}

.bgo-toggle-label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: var(--bgo-fs-base);
    color: var(--ink-light);
    padding: 9px 18px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: var(--surface);
    letter-spacing: 0.03em;
    transition: border-color var(--duration-fast) var(--ease-out);
}

.bgo-toggle-label:hover {
    border-color: var(--pink);
}

.bgo-toggle-input {
    display: none;
}

.bgo-toggle-track {
    width: 28px;
    height: 16px;
    border-radius: 8px;
    background: #ddd;
    position: relative;
    flex-shrink: 0;
    transition: background var(--duration-med);
}

.bgo-toggle-track::after {
    content: '';
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #fff;
    top: 3px;
    left: 3px;
    transition: transform var(--duration-med) var(--ease-out);
}

.bgo-toggle-input:checked + .bgo-toggle-track {
    background: var(--pink);
}

.bgo-toggle-input:checked + .bgo-toggle-track::after {
    transform: translateX(12px);
}

/* ── Active tags ────────────────────────────────────────── */
.bgo-active-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--divider);
}

/* 4. .bgo-active-tag 现在是 <button> (键盘可达). 补两件事:
     - font-family: inherit, 不要被 UA <button> 默认字体覆盖
     - :focus-visible 一圈粉色 outline, 键盘焦点可见 */
.bgo-active-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    border-radius: var(--radius-pill);
    background: transparent;
    border: 1px solid var(--pink-mid);
    font-family: inherit;
    font-size: var(--bgo-fs-sm);
    color: var(--pink-dark);
    cursor: pointer;
    letter-spacing: 0.03em;
    transition:
        background var(--duration-fast) var(--ease-out),
        border-color var(--duration-fast) var(--ease-out);
}

.bgo-active-tag:hover {
    background: var(--pink-ghost);
    border-color: var(--pink);
}

.bgo-active-tag:focus-visible {
    outline: 2px solid var(--pink);
    outline-offset: 2px;
}

.bgo-active-tag__remove {
    font-size: var(--bgo-fs-sm);
    line-height: 1;
    opacity: 0.6;
}

.bgo-clear-all {
    font-size: var(--bgo-fs-sm);
    color: var(--ink-xlight);
    margin-left: auto;
    cursor: pointer;
    text-decoration: none;
    letter-spacing: 0.05em;
    background: none;
    border: none;
    font-family: 'DM Sans', sans-serif;
    transition: color var(--duration-fast);
}

.bgo-clear-all:hover {
    color: var(--pink-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ── Results grid ───────────────────────────────────────── */
.bgo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 3rem;
}

.bgo-grid--doctors {
    grid-template-columns: repeat(3, minmax(0, 1fr));   /* 居中名片更宽, 给大头像留空间 */
    gap: 20px;
}

/* Loading state */
.bgo-grid.is-loading {
    opacity: 0.5;
    pointer-events: none;
}

/* No results */
.bgo-no-results {
    grid-column: 1 / -1;
    padding: 5rem 3rem;
    text-align: center;
    color: var(--ink-light);
    font-size: 16px;
    letter-spacing: 0.02em;
}

/* ── Cards ──────────────────────────────────────────────── */
.bgo-card {
    background: var(--surface);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    transition:
        border-color var(--duration-med) var(--ease-out),
        box-shadow var(--duration-med) var(--ease-out),
        transform var(--duration-med) var(--ease-out);
}

.bgo-card:hover {
    border-color: rgba(200, 90, 135, 0.25);
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
}

.bgo-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

/* Card media */
.bgo-card__media {
    position: relative;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
}

.bgo-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--duration-med) var(--ease-out);
}

.bgo-card:hover .bgo-card__img {
    transform: scale(1.04);
}

.bgo-card__img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bgo-card__img-placeholder--procedure {
    background: linear-gradient(145deg, #fdf4f8, #f0d8e5);
}

.bgo-card__img-placeholder--hospital {
    background: linear-gradient(145deg, #f0f8f4, #c8e8dc);
}

/* Badges */
.bgo-card__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    font-size: var(--bgo-fs-2xs);
    font-weight: 500;
    letter-spacing: 0.04em;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.bgo-card__badge--type {
    background: rgba(253, 244, 248, 0.92);
    color: var(--pink-dark);
    border: 1px solid rgba(200, 90, 135, 0.2);
}

.bgo-card__badge--verified {
    background: rgba(225, 245, 238, 0.92);
    color: var(--green-dark);
    border: 1px solid rgba(15, 110, 86, 0.2);
}

/* Card body */
.bgo-card__body {
    padding: 18px 20px;
    flex: 1;
}

.bgo-card__body--doctor {
    padding: 28px 22px 22px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.bgo-card__title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 21px;
    font-weight: 400;
    color: var(--ink);
    margin-bottom: 10px;
    line-height: 1.3;
    letter-spacing: 0.01em;
}

.bgo-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 12px;
}

.bgo-tag {
    font-size: var(--bgo-fs-xs);
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.12);
    color: var(--ink-light);
    letter-spacing: 0.02em;
    font-weight: 400;
    max-width: 100%;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Procedure card: 分类不用胶囊, 改成逗号分隔的一行文字。 */
.bgo-card__tagline {
    font-size: var(--bgo-fs-xs);
    color: var(--ink-light);
    letter-spacing: 0.02em;
    font-weight: 400;
    line-height: 1.5;
    margin: 0 0 12px;
}

.bgo-card__meta {
    font-size: var(--bgo-fs-sm);
    color: var(--ink-light);
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    letter-spacing: 0.01em;
}

.bgo-card__meta-dot {
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background: var(--ink-xlight);
    flex-shrink: 0;
}

/* WYSIWYG 版 duration / recovery: 改成上下堆叠的标签行, 内联渲染 ACF
   自动包的 <p>, 去掉默认 margin, 保持卡片紧凑。 */
.bgo-card__meta--rich {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
}

.bgo-card__meta-row { line-height: 1.5; }

.bgo-card__meta-label { font-weight: 600; color: var(--ink-mid); margin-right: 5px; }

.bgo-card__meta-val { display: inline; }
.bgo-card__meta-val p { display: inline; margin: 0; }

/* Benefits 内容常是 WYSIWYG 列表(<ul><li>)或多段, 长短不一会把卡片撑得高低不齐。
   保留原始的项目符号列表外观, 只把整行截断到最多 5 行 + 省略号,
   让网格卡片高度一致。 */
.bgo-card__meta-row--results {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    line-clamp: 5;
    overflow: hidden;
}
/* 保留 <ul> 项目符号, 只收紧默认的缩进和段间距, 让列表更紧凑。 */
.bgo-card__meta-row--results ul,
.bgo-card__meta-row--results ol {
    margin: 2px 0 0;
    padding-left: 1.2em;
}
.bgo-card__meta-row--results li {
    list-style: disc;
}
.bgo-card__meta-row--results p {
    margin: 0;
}

/* Card footer */
.bgo-card__footer {
    padding: 12px 20px;
    border-top: 1px solid var(--divider);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

/* 只剩 View CTA 时(procedure card 去掉了国家行), 让它保持右对齐。 */
.bgo-card__footer--cta-only {
    justify-content: flex-end;
}

.bgo-card__location {
    font-size: var(--bgo-fs-sm);
    color: var(--ink-light);
    display: flex;
    align-items: center;
    gap: 4px;
    letter-spacing: 0.01em;
}

.bgo-card__cta {
    font-size: var(--bgo-fs-sm);
    color: var(--ink-light);
    font-weight: 400;
    letter-spacing: 0.06em;
    transition:
        color var(--duration-fast) var(--ease-out),
        letter-spacing var(--duration-fast) var(--ease-out);
}

.bgo-card:hover .bgo-card__cta {
    color: var(--pink);
    letter-spacing: 0.12em;
}

/* ── Procedure + Hospital + Doctor result cards — 字号比原本大一档 ─
   作用于这三个 archive 的结果卡片, 用各自 card-*.php 自带的
   .bgo-card--procedure / --hospital / --doctor 修饰符限定作用域. 全部走
   bgo-tokens.css 的 token, 只是指向大一档, 不改 token 定义、不动全局字号.
   (destination archive 是独立组件 bgo-dest-*, 在 archive-destination.css 单独处理.) */
.bgo-card--procedure .bgo-card__title,
.bgo-card--hospital .bgo-card__title,
.bgo-card--doctor .bgo-card__title {
    font-size: var(--bgo-fs-lg);                 /* 21px → 22–24px */
}

.bgo-card--procedure .bgo-tag,
.bgo-card--hospital .bgo-tag,
.bgo-card--doctor .bgo-tag {
    font-size: var(--bgo-fs-sm);                 /* xs 14px → sm 15px */
}

.bgo-card--procedure .bgo-card__meta,
.bgo-card--procedure .bgo-card__location,
.bgo-card--procedure .bgo-card__cta,
.bgo-card--hospital .bgo-card__meta,
.bgo-card--hospital .bgo-card__location,
.bgo-card--hospital .bgo-card__cta,
.bgo-card--doctor .bgo-card__meta,
.bgo-card--doctor .bgo-card__location,
.bgo-card--doctor .bgo-card__cta,
.bgo-card--doctor .bgo-doctor-title {                 /* doctor 专属副标题, 一并对齐 */
    font-size: var(--bgo-fs-base);               /* sm 15px → base 18px */
}

.bgo-card--procedure .bgo-card__badge,
.bgo-card--hospital .bgo-card__badge {
    font-size: var(--bgo-fs-xs);                 /* 2xs 13px → xs 14px */
}

/* Doctor card specifics */
/* 居中名片布局: 大头像顶部居中 */
.bgo-doctor-avatar {
    width: 104px;
    height: 104px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    margin-bottom: 16px;
    border: 3px solid var(--surface);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), var(--shadow-card);
}

.bgo-doctor-avatar--initials {
    background: #f0f5fa;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;            /* 随头像放大同步放大首字母 */
    font-weight: 400;
    color: #4a6580;
    letter-spacing: 0.05em;
}

/* 名字 / 标签 / 医院 居中 */
.bgo-card--doctor .bgo-card__title { margin-bottom: 6px; }
.bgo-card--doctor .bgo-card__tags  { justify-content: center; }
.bgo-card--doctor .bgo-card__meta  { justify-content: center; }

.bgo-doctor-title {
    font-size: var(--bgo-fs-sm);
    color: var(--ink-light);
    margin: 0 0 12px;
    letter-spacing: 0.01em;
    /* 居中布局下最多 3 行省略, 防止过长 title 把卡片撑高 */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Pagination ─────────────────────────────────────────── */
.bgo-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.bgo-pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(0, 0, 0, 0.10);
    background: var(--surface);
    font-size: var(--bgo-fs-base);
    color: var(--ink-light);
    text-decoration: none;
    font-family: 'DM Sans', sans-serif;
    letter-spacing: 0.02em;
    transition:
        border-color var(--duration-fast) var(--ease-out),
        background var(--duration-fast) var(--ease-out),
        color var(--duration-fast) var(--ease-out),
        box-shadow var(--duration-fast) var(--ease-out);
}

.bgo-pagination .page-numbers:hover {
    border-color: var(--pink);
    color: var(--pink-dark);
    background: var(--pink-ghost);
}

.bgo-pagination .page-numbers.current {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
    font-weight: 500;
    box-shadow: 0 2px 8px rgba(14, 14, 14, 0.2);
}

.bgo-pagination .page-numbers.dots {
    border: none;
    background: none;
    cursor: default;
    color: var(--ink-xlight);
}

/* ── Loading spinner ────────────────────────────────────── */
.bgo-spinner {
    display: none;
    width: 18px;
    height: 18px;
    border: 1.5px solid rgba(200, 90, 135, 0.15);
    border-top-color: var(--pink);
    border-radius: 50%;
    animation: bgo-spin 0.8s linear infinite;
    margin: 3rem auto;
}

.bgo-spinner.is-visible {
    display: block;
}

@keyframes bgo-spin {
    to { transform: rotate(360deg); }
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 900px) {
    .bgo-archive__inner {
        padding: 3rem 1.5rem 5rem;
    }

    .bgo-archive__title {
        font-size: clamp(2.2rem, 5vw, 3rem);
    }

    .bgo-grid,
    .bgo-grid--doctors {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }
}

@media (max-width: 540px) {
    .bgo-archive__inner {
        padding: 2rem 1.25rem 4rem;
    }

    .bgo-archive__title {
        font-size: clamp(1.9rem, 8vw, 2.4rem);
        letter-spacing: -0.01em;
    }

    .bgo-archive__header {
        margin-bottom: 1.75rem;
    }

    .bgo-grid,
    .bgo-grid--doctors {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .bgo-filter-bar {
        padding: 1rem 1.125rem;
    }

    .bgo-filter-bar__row {
        gap: 5px;
    }

    .bgo-filter-btn {
        font-size: var(--bgo-fs-sm);
        padding: 8px 14px;
    }

    /* 手机给 dropdown 更多可视空间 —— 桌面 360px 在小屏上太矮,
       长列表 (specialty 30+ 项) 只能露 ~5 行非常憋. min(70vh, 480px)
       在大屏 vh 算出来高时也不会无限拉长. */
    .bgo-filter-dropdown {
        max-height: min(70vh, 480px);
    }

    /* 选项加大触感空间 */
    .bgo-filter-option {
        padding: 14px 22px;
        font-size: var(--bgo-fs-sm);
    }

    .bgo-toggle-label {
        font-size: var(--bgo-fs-sm);
        padding: 8px 14px;
    }

    .bgo-card__media {
        height: 180px;
    }

    .bgo-card__title {
        font-size: 20px;
    }

    .bgo-card__meta,
    .bgo-card__location,
    .bgo-card__cta {
        font-size: var(--bgo-fs-sm);
    }

    .bgo-tag {
        font-size: var(--bgo-fs-xs);
    }

    .bgo-pagination .page-numbers {
        width: 38px;
        height: 38px;
        font-size: var(--bgo-fs-sm);
    }
}
